genosdb 0.22.8 → 0.22.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/gdb.min.js +1 -1
- package/dist/gdb.min.js.gz +0 -0
- package/dist/genossrv.min.js +11 -11
- package/dist/genossrv.min.js.gz +0 -0
- package/dist/index.js +1 -1
- package/dist/index.js.gz +0 -0
- package/package.json +1 -1
package/dist/genossrv.min.js
CHANGED
|
@@ -4,7 +4,7 @@ var E_=Object.create;var{getPrototypeOf:$_,defineProperty:UA,getOwnPropertyNames
|
|
|
4
4
|
`).join(`
|
|
5
5
|
`+V),W.push(Z+"m+"+$U.exports.humanize(this.diff)+"\x1B[0m")}else W[0]=ih()+G+" "+W[0]}function ih(){if(WT.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function rh(...W){return process.stderr.write(EU.formatWithOptions(WT.inspectOpts,...W)+`
|
|
6
6
|
`)}function ah(W){if(W)process.env.DEBUG=W;else delete process.env.DEBUG}function sh(){return process.env.DEBUG}function th(W){W.inspectOpts={};let G=Object.keys(WT.inspectOpts);for(let X=0;X<G.length;X++)W.inspectOpts[G[X]]=WT.inspectOpts[G[X]]}$U.exports=Rz()(WT);var{formatters:eM}=$U.exports;eM.o=function(W){return this.inspectOpts.colors=this.useColors,EU.inspect(W,this.inspectOpts).split(`
|
|
7
|
-
`).map((G)=>G.trim()).join(" ")};eM.O=function(W){return this.inspectOpts.colors=this.useColors,EU.inspect(W,this.inspectOpts)}});var YT=Z1((ke,Lz)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)Lz.exports=tM();else Lz.exports=XT()});var FU=Z1((VT)=>{Object.defineProperty(VT,"__esModule",{value:!0});var Qb=S8("net");function Jb(W){switch(Qb.isIP(W)){case 4:return Buffer.from(W.split(".").map((Z)=>parseInt(Z,10)));case 6:let G=W.split(":"),X=Buffer.alloc(16),Y=0;if(G[G.length-1]==="")G[G.length-1]="0";for(let Z=0;Z<G.length;Z++){if(G[Z]===""){if(Z+1<G.length&&G[Z+1]!=="")Y=16-(G.length-Z-1)*2;continue}X.writeUInt16BE(parseInt(G[Z],16),Y),Y+=2}return X;default:return null}}VT.bytesFromIP=Jb;function Ub(W){switch(W.length){case 4:return[W[0],W[1],W[2],W[3]].join(".");case 16:let G=[],X=-1,Y=0,Z=-1,V=0;for(let Q=0;Q<W.length;Q+=2){let J=W[Q]<<8|W[Q+1];if(J===0){if(Y++,X===-1)X=G.length;if(Y>V)V=Y,Z=X}else X=-1,Y=0;G.push(J.toString(16))}if(V>0){let Q="",J=G.slice(Z+V);if(G.length=Z,G.length===0)Q+=":";if(J.length===0)Q+=":";G.push(Q,...J)}return G.join(":");default:return""}}VT.bytesToIP=Ub;var A6=Object.create(null),ZT=/^[0-9.]+$/;function qb(W){if(ZT.test(W)&&A6[W]!=="")return W;return A6[W]==null?"":A6[W]}VT.getOID=qb;function Nb(W){if(!ZT.test(W)&&A6[W]!=="")return W;return A6[W]==null?W:A6[W]}VT.getOIDName=Nb;function z0(W,G){A6[W]=G,A6[G]=W}z0("1.2.840.113549.1.1.1","rsaEncryption");z0("1.2.840.113549.1.1.4","md5WithRsaEncryption");z0("1.2.840.113549.1.1.5","sha1WithRsaEncryption");z0("1.2.840.113549.1.1.8","mgf1");z0("1.2.840.113549.1.1.10","RSASSA-PSS");z0("1.2.840.113549.1.1.11","sha256WithRsaEncryption");z0("1.2.840.113549.1.1.12","sha384WithRsaEncryption");z0("1.2.840.113549.1.1.13","sha512WithRsaEncryption");z0("1.2.840.10045.2.1","ecEncryption");z0("1.2.840.10045.4.1","ecdsaWithSha1");z0("1.2.840.10045.4.3.2","ecdsaWithSha256");z0("1.2.840.10045.4.3.3","ecdsaWithSha384");z0("1.2.840.10045.4.3.4","ecdsaWithSha512");z0("1.2.840.10040.4.3","dsaWithSha1");z0("2.16.840.1.101.3.4.3.2","dsaWithSha256");z0("1.3.14.3.2.7","desCBC");z0("1.3.14.3.2.26","sha1");z0("2.16.840.1.101.3.4.2.1","sha256");z0("2.16.840.1.101.3.4.2.2","sha384");z0("2.16.840.1.101.3.4.2.3","sha512");z0("1.2.840.113549.2.5","md5");z0("1.3.101.110","X25519");z0("1.3.101.111","X448");z0("1.3.101.112","Ed25519");z0("1.3.101.113","Ed448");z0("1.2.840.113549.1.7.1","data");z0("1.2.840.113549.1.7.2","signedData");z0("1.2.840.113549.1.7.3","envelopedData");z0("1.2.840.113549.1.7.4","signedAndEnvelopedData");z0("1.2.840.113549.1.7.5","digestedData");z0("1.2.840.113549.1.7.6","encryptedData");z0("1.2.840.113549.1.9.1","emailAddress");z0("1.2.840.113549.1.9.2","unstructuredName");z0("1.2.840.113549.1.9.3","contentType");z0("1.2.840.113549.1.9.4","messageDigest");z0("1.2.840.113549.1.9.5","signingTime");z0("1.2.840.113549.1.9.6","counterSignature");z0("1.2.840.113549.1.9.7","challengePassword");z0("1.2.840.113549.1.9.8","unstructuredAddress");z0("1.2.840.113549.1.9.14","extensionRequest");z0("1.2.840.113549.1.9.20","friendlyName");z0("1.2.840.113549.1.9.21","localKeyId");z0("1.2.840.113549.1.9.22.1","x509Certificate");z0("1.2.840.113549.1.12.10.1.1","keyBag");z0("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");z0("1.2.840.113549.1.12.10.1.3","certBag");z0("1.2.840.113549.1.12.10.1.4","crlBag");z0("1.2.840.113549.1.12.10.1.5","secretBag");z0("1.2.840.113549.1.12.10.1.6","safeContentsBag");z0("1.2.840.113549.1.5.13","pkcs5PBES2");z0("1.2.840.113549.1.5.12","pkcs5PBKDF2");z0("1.2.840.113549.2.7","hmacWithSha1");z0("1.2.840.113549.2.9","hmacWithSha256");z0("1.2.840.113549.2.10","hmacWithSha384");z0("1.2.840.113549.2.11","hmacWithSha512");z0("1.2.840.113549.3.7","3desCBC");z0("2.16.840.1.101.3.4.1.2","aesCBC128");z0("2.16.840.1.101.3.4.1.42","aesCBC256");z0("2.5.4.3","commonName");z0("2.5.4.5","serialName");z0("2.5.4.6","countryName");z0("2.5.4.7","localityName");z0("2.5.4.8","stateOrProvinceName");z0("2.5.4.10","organizationName");z0("2.5.4.11","organizationalUnitName");z0("2.5.4.15","businessCategory");z0("2.16.840.1.113730.1.1","nsCertType");z0("2.5.29.2","keyAttributes");z0("2.5.29.4","keyUsageRestriction");z0("2.5.29.6","subtreesConstraint");z0("2.5.29.9","subjectDirectoryAttributes");z0("2.5.29.14","subjectKeyIdentifier");z0("2.5.29.15","keyUsage");z0("2.5.29.16","privateKeyUsagePeriod");z0("2.5.29.17","subjectAltName");z0("2.5.29.18","issuerAltName");z0("2.5.29.19","basicConstraints");z0("2.5.29.20","cRLNumber");z0("2.5.29.21","cRLReason");z0("2.5.29.22","expirationDate");z0("2.5.29.23","instructionCode");z0("2.5.29.24","invalidityDate");z0("2.5.29.27","deltaCRLIndicator");z0("2.5.29.28","issuingDistributionPoint");z0("2.5.29.29","certificateIssuer");z0("2.5.29.30","nameConstraints");z0("2.5.29.31","cRLDistributionPoints");z0("2.5.29.32","certificatePolicies");z0("2.5.29.33","policyMappings");z0("2.5.29.35","authorityKeyIdentifier");z0("2.5.29.36","policyConstraints");z0("2.5.29.37","extKeyUsage");z0("2.5.29.46","freshestCRL");z0("2.5.29.54","inhibitAnyPolicy");z0("1.3.6.1.4.1.311.60.2.1.2","jurisdictionST");z0("1.3.6.1.4.1.311.60.2.1.3","jurisdictionC");z0("1.3.6.1.4.1.11129.2.4.2","timestampList");z0("1.3.6.1.5.5.7.1.1","authorityInfoAccess");z0("1.3.6.1.5.5.7.3.1","serverAuth");z0("1.3.6.1.5.5.7.3.2","clientAuth");z0("1.3.6.1.5.5.7.3.3","codeSigning");z0("1.3.6.1.5.5.7.3.4","emailProtection");z0("1.3.6.1.5.5.7.3.8","timeStamping");z0("1.3.6.1.5.5.7.48.1","authorityInfoAccessOcsp");z0("1.3.6.1.5.5.7.48.2","authorityInfoAccessIssuers")});var xU=Z1((ye,SU)=>{(function(W){var G=function(O){var T,M=new Float64Array(16);if(O)for(T=0;T<O.length;T++)M[T]=O[T];return M},X=function(){throw Error("no PRNG")},Y=new Uint8Array(16),Z=new Uint8Array(32);Z[0]=9;var V=G(),Q=G([1]),J=G([56129,1]),U=G([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),q=G([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),N=G([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),A=G([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),H=G([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function I(O,T,M,z){O[T]=M>>24&255,O[T+1]=M>>16&255,O[T+2]=M>>8&255,O[T+3]=M&255,O[T+4]=z>>24&255,O[T+5]=z>>16&255,O[T+6]=z>>8&255,O[T+7]=z&255}function w(O,T,M,z,L){var r,t=0;for(r=0;r<L;r++)t|=O[T+r]^M[z+r];return(1&t-1>>>8)-1}function C(O,T,M,z){return w(O,T,M,z,16)}function D(O,T,M,z){return w(O,T,M,z,32)}function x(O,T,M,z){var L=z[0]&255|(z[1]&255)<<8|(z[2]&255)<<16|(z[3]&255)<<24,r=M[0]&255|(M[1]&255)<<8|(M[2]&255)<<16|(M[3]&255)<<24,t=M[4]&255|(M[5]&255)<<8|(M[6]&255)<<16|(M[7]&255)<<24,H0=M[8]&255|(M[9]&255)<<8|(M[10]&255)<<16|(M[11]&255)<<24,M0=M[12]&255|(M[13]&255)<<8|(M[14]&255)<<16|(M[15]&255)<<24,o0=z[4]&255|(z[5]&255)<<8|(z[6]&255)<<16|(z[7]&255)<<24,v0=T[0]&255|(T[1]&255)<<8|(T[2]&255)<<16|(T[3]&255)<<24,c1=T[4]&255|(T[5]&255)<<8|(T[6]&255)<<16|(T[7]&255)<<24,m0=T[8]&255|(T[9]&255)<<8|(T[10]&255)<<16|(T[11]&255)<<24,q1=T[12]&255|(T[13]&255)<<8|(T[14]&255)<<16|(T[15]&255)<<24,H1=z[8]&255|(z[9]&255)<<8|(z[10]&255)<<16|(z[11]&255)<<24,T1=M[16]&255|(M[17]&255)<<8|(M[18]&255)<<16|(M[19]&255)<<24,C1=M[20]&255|(M[21]&255)<<8|(M[22]&255)<<16|(M[23]&255)<<24,A1=M[24]&255|(M[25]&255)<<8|(M[26]&255)<<16|(M[27]&255)<<24,w1=M[28]&255|(M[29]&255)<<8|(M[30]&255)<<16|(M[31]&255)<<24,z1=z[12]&255|(z[13]&255)<<8|(z[14]&255)<<16|(z[15]&255)<<24,c0=L,a0=r,u0=t,l0=H0,d0=M0,_0=o0,Z0=v0,V0=c1,I0=m0,N0=q1,A0=H1,O0=T1,J1=C1,P1=A1,L1=w1,R1=z1,g;for(var F1=0;F1<20;F1+=2)g=c0+J1|0,d0^=g<<7|g>>>25,g=d0+c0|0,I0^=g<<9|g>>>23,g=I0+d0|0,J1^=g<<13|g>>>19,g=J1+I0|0,c0^=g<<18|g>>>14,g=_0+a0|0,N0^=g<<7|g>>>25,g=N0+_0|0,P1^=g<<9|g>>>23,g=P1+N0|0,a0^=g<<13|g>>>19,g=a0+P1|0,_0^=g<<18|g>>>14,g=A0+Z0|0,L1^=g<<7|g>>>25,g=L1+A0|0,u0^=g<<9|g>>>23,g=u0+L1|0,Z0^=g<<13|g>>>19,g=Z0+u0|0,A0^=g<<18|g>>>14,g=R1+O0|0,l0^=g<<7|g>>>25,g=l0+R1|0,V0^=g<<9|g>>>23,g=V0+l0|0,O0^=g<<13|g>>>19,g=O0+V0|0,R1^=g<<18|g>>>14,g=c0+l0|0,a0^=g<<7|g>>>25,g=a0+c0|0,u0^=g<<9|g>>>23,g=u0+a0|0,l0^=g<<13|g>>>19,g=l0+u0|0,c0^=g<<18|g>>>14,g=_0+d0|0,Z0^=g<<7|g>>>25,g=Z0+_0|0,V0^=g<<9|g>>>23,g=V0+Z0|0,d0^=g<<13|g>>>19,g=d0+V0|0,_0^=g<<18|g>>>14,g=A0+N0|0,O0^=g<<7|g>>>25,g=O0+A0|0,I0^=g<<9|g>>>23,g=I0+O0|0,N0^=g<<13|g>>>19,g=N0+I0|0,A0^=g<<18|g>>>14,g=R1+L1|0,J1^=g<<7|g>>>25,g=J1+R1|0,P1^=g<<9|g>>>23,g=P1+J1|0,L1^=g<<13|g>>>19,g=L1+P1|0,R1^=g<<18|g>>>14;c0=c0+L|0,a0=a0+r|0,u0=u0+t|0,l0=l0+H0|0,d0=d0+M0|0,_0=_0+o0|0,Z0=Z0+v0|0,V0=V0+c1|0,I0=I0+m0|0,N0=N0+q1|0,A0=A0+H1|0,O0=O0+T1|0,J1=J1+C1|0,P1=P1+A1|0,L1=L1+w1|0,R1=R1+z1|0,O[0]=c0>>>0&255,O[1]=c0>>>8&255,O[2]=c0>>>16&255,O[3]=c0>>>24&255,O[4]=a0>>>0&255,O[5]=a0>>>8&255,O[6]=a0>>>16&255,O[7]=a0>>>24&255,O[8]=u0>>>0&255,O[9]=u0>>>8&255,O[10]=u0>>>16&255,O[11]=u0>>>24&255,O[12]=l0>>>0&255,O[13]=l0>>>8&255,O[14]=l0>>>16&255,O[15]=l0>>>24&255,O[16]=d0>>>0&255,O[17]=d0>>>8&255,O[18]=d0>>>16&255,O[19]=d0>>>24&255,O[20]=_0>>>0&255,O[21]=_0>>>8&255,O[22]=_0>>>16&255,O[23]=_0>>>24&255,O[24]=Z0>>>0&255,O[25]=Z0>>>8&255,O[26]=Z0>>>16&255,O[27]=Z0>>>24&255,O[28]=V0>>>0&255,O[29]=V0>>>8&255,O[30]=V0>>>16&255,O[31]=V0>>>24&255,O[32]=I0>>>0&255,O[33]=I0>>>8&255,O[34]=I0>>>16&255,O[35]=I0>>>24&255,O[36]=N0>>>0&255,O[37]=N0>>>8&255,O[38]=N0>>>16&255,O[39]=N0>>>24&255,O[40]=A0>>>0&255,O[41]=A0>>>8&255,O[42]=A0>>>16&255,O[43]=A0>>>24&255,O[44]=O0>>>0&255,O[45]=O0>>>8&255,O[46]=O0>>>16&255,O[47]=O0>>>24&255,O[48]=J1>>>0&255,O[49]=J1>>>8&255,O[50]=J1>>>16&255,O[51]=J1>>>24&255,O[52]=P1>>>0&255,O[53]=P1>>>8&255,O[54]=P1>>>16&255,O[55]=P1>>>24&255,O[56]=L1>>>0&255,O[57]=L1>>>8&255,O[58]=L1>>>16&255,O[59]=L1>>>24&255,O[60]=R1>>>0&255,O[61]=R1>>>8&255,O[62]=R1>>>16&255,O[63]=R1>>>24&255}function h(O,T,M,z){var L=z[0]&255|(z[1]&255)<<8|(z[2]&255)<<16|(z[3]&255)<<24,r=M[0]&255|(M[1]&255)<<8|(M[2]&255)<<16|(M[3]&255)<<24,t=M[4]&255|(M[5]&255)<<8|(M[6]&255)<<16|(M[7]&255)<<24,H0=M[8]&255|(M[9]&255)<<8|(M[10]&255)<<16|(M[11]&255)<<24,M0=M[12]&255|(M[13]&255)<<8|(M[14]&255)<<16|(M[15]&255)<<24,o0=z[4]&255|(z[5]&255)<<8|(z[6]&255)<<16|(z[7]&255)<<24,v0=T[0]&255|(T[1]&255)<<8|(T[2]&255)<<16|(T[3]&255)<<24,c1=T[4]&255|(T[5]&255)<<8|(T[6]&255)<<16|(T[7]&255)<<24,m0=T[8]&255|(T[9]&255)<<8|(T[10]&255)<<16|(T[11]&255)<<24,q1=T[12]&255|(T[13]&255)<<8|(T[14]&255)<<16|(T[15]&255)<<24,H1=z[8]&255|(z[9]&255)<<8|(z[10]&255)<<16|(z[11]&255)<<24,T1=M[16]&255|(M[17]&255)<<8|(M[18]&255)<<16|(M[19]&255)<<24,C1=M[20]&255|(M[21]&255)<<8|(M[22]&255)<<16|(M[23]&255)<<24,A1=M[24]&255|(M[25]&255)<<8|(M[26]&255)<<16|(M[27]&255)<<24,w1=M[28]&255|(M[29]&255)<<8|(M[30]&255)<<16|(M[31]&255)<<24,z1=z[12]&255|(z[13]&255)<<8|(z[14]&255)<<16|(z[15]&255)<<24,c0=L,a0=r,u0=t,l0=H0,d0=M0,_0=o0,Z0=v0,V0=c1,I0=m0,N0=q1,A0=H1,O0=T1,J1=C1,P1=A1,L1=w1,R1=z1,g;for(var F1=0;F1<20;F1+=2)g=c0+J1|0,d0^=g<<7|g>>>25,g=d0+c0|0,I0^=g<<9|g>>>23,g=I0+d0|0,J1^=g<<13|g>>>19,g=J1+I0|0,c0^=g<<18|g>>>14,g=_0+a0|0,N0^=g<<7|g>>>25,g=N0+_0|0,P1^=g<<9|g>>>23,g=P1+N0|0,a0^=g<<13|g>>>19,g=a0+P1|0,_0^=g<<18|g>>>14,g=A0+Z0|0,L1^=g<<7|g>>>25,g=L1+A0|0,u0^=g<<9|g>>>23,g=u0+L1|0,Z0^=g<<13|g>>>19,g=Z0+u0|0,A0^=g<<18|g>>>14,g=R1+O0|0,l0^=g<<7|g>>>25,g=l0+R1|0,V0^=g<<9|g>>>23,g=V0+l0|0,O0^=g<<13|g>>>19,g=O0+V0|0,R1^=g<<18|g>>>14,g=c0+l0|0,a0^=g<<7|g>>>25,g=a0+c0|0,u0^=g<<9|g>>>23,g=u0+a0|0,l0^=g<<13|g>>>19,g=l0+u0|0,c0^=g<<18|g>>>14,g=_0+d0|0,Z0^=g<<7|g>>>25,g=Z0+_0|0,V0^=g<<9|g>>>23,g=V0+Z0|0,d0^=g<<13|g>>>19,g=d0+V0|0,_0^=g<<18|g>>>14,g=A0+N0|0,O0^=g<<7|g>>>25,g=O0+A0|0,I0^=g<<9|g>>>23,g=I0+O0|0,N0^=g<<13|g>>>19,g=N0+I0|0,A0^=g<<18|g>>>14,g=R1+L1|0,J1^=g<<7|g>>>25,g=J1+R1|0,P1^=g<<9|g>>>23,g=P1+J1|0,L1^=g<<13|g>>>19,g=L1+P1|0,R1^=g<<18|g>>>14;O[0]=c0>>>0&255,O[1]=c0>>>8&255,O[2]=c0>>>16&255,O[3]=c0>>>24&255,O[4]=_0>>>0&255,O[5]=_0>>>8&255,O[6]=_0>>>16&255,O[7]=_0>>>24&255,O[8]=A0>>>0&255,O[9]=A0>>>8&255,O[10]=A0>>>16&255,O[11]=A0>>>24&255,O[12]=R1>>>0&255,O[13]=R1>>>8&255,O[14]=R1>>>16&255,O[15]=R1>>>24&255,O[16]=Z0>>>0&255,O[17]=Z0>>>8&255,O[18]=Z0>>>16&255,O[19]=Z0>>>24&255,O[20]=V0>>>0&255,O[21]=V0>>>8&255,O[22]=V0>>>16&255,O[23]=V0>>>24&255,O[24]=I0>>>0&255,O[25]=I0>>>8&255,O[26]=I0>>>16&255,O[27]=I0>>>24&255,O[28]=N0>>>0&255,O[29]=N0>>>8&255,O[30]=N0>>>16&255,O[31]=N0>>>24&255}function l(O,T,M,z){x(O,T,M,z)}function u(O,T,M,z){h(O,T,M,z)}var n=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function c(O,T,M,z,L,r,t){var H0=new Uint8Array(16),M0=new Uint8Array(64),o0,v0;for(v0=0;v0<16;v0++)H0[v0]=0;for(v0=0;v0<8;v0++)H0[v0]=r[v0];while(L>=64){l(M0,H0,t,n);for(v0=0;v0<64;v0++)O[T+v0]=M[z+v0]^M0[v0];o0=1;for(v0=8;v0<16;v0++)o0=o0+(H0[v0]&255)|0,H0[v0]=o0&255,o0>>>=8;L-=64,T+=64,z+=64}if(L>0){l(M0,H0,t,n);for(v0=0;v0<L;v0++)O[T+v0]=M[z+v0]^M0[v0]}return 0}function p(O,T,M,z,L){var r=new Uint8Array(16),t=new Uint8Array(64),H0,M0;for(M0=0;M0<16;M0++)r[M0]=0;for(M0=0;M0<8;M0++)r[M0]=z[M0];while(M>=64){l(t,r,L,n);for(M0=0;M0<64;M0++)O[T+M0]=t[M0];H0=1;for(M0=8;M0<16;M0++)H0=H0+(r[M0]&255)|0,r[M0]=H0&255,H0>>>=8;M-=64,T+=64}if(M>0){l(t,r,L,n);for(M0=0;M0<M;M0++)O[T+M0]=t[M0]}return 0}function W0(O,T,M,z,L){var r=new Uint8Array(32);u(r,z,L,n);var t=new Uint8Array(8);for(var H0=0;H0<8;H0++)t[H0]=z[H0+16];return p(O,T,M,t,r)}function m(O,T,M,z,L,r,t){var H0=new Uint8Array(32);u(H0,r,t,n);var M0=new Uint8Array(8);for(var o0=0;o0<8;o0++)M0[o0]=r[o0+16];return c(O,T,M,z,L,M0,H0)}var Y0=function(O){this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.leftover=0,this.fin=0;var T,M,z,L,r,t,H0,M0;T=O[0]&255|(O[1]&255)<<8,this.r[0]=T&8191,M=O[2]&255|(O[3]&255)<<8,this.r[1]=(T>>>13|M<<3)&8191,z=O[4]&255|(O[5]&255)<<8,this.r[2]=(M>>>10|z<<6)&7939,L=O[6]&255|(O[7]&255)<<8,this.r[3]=(z>>>7|L<<9)&8191,r=O[8]&255|(O[9]&255)<<8,this.r[4]=(L>>>4|r<<12)&255,this.r[5]=r>>>1&8190,t=O[10]&255|(O[11]&255)<<8,this.r[6]=(r>>>14|t<<2)&8191,H0=O[12]&255|(O[13]&255)<<8,this.r[7]=(t>>>11|H0<<5)&8065,M0=O[14]&255|(O[15]&255)<<8,this.r[8]=(H0>>>8|M0<<8)&8191,this.r[9]=M0>>>5&127,this.pad[0]=O[16]&255|(O[17]&255)<<8,this.pad[1]=O[18]&255|(O[19]&255)<<8,this.pad[2]=O[20]&255|(O[21]&255)<<8,this.pad[3]=O[22]&255|(O[23]&255)<<8,this.pad[4]=O[24]&255|(O[25]&255)<<8,this.pad[5]=O[26]&255|(O[27]&255)<<8,this.pad[6]=O[28]&255|(O[29]&255)<<8,this.pad[7]=O[30]&255|(O[31]&255)<<8};Y0.prototype.blocks=function(O,T,M){var z=this.fin?0:2048,L,r,t,H0,M0,o0,v0,c1,m0,q1,H1,T1,C1,A1,w1,z1,c0,a0,u0,l0=this.h[0],d0=this.h[1],_0=this.h[2],Z0=this.h[3],V0=this.h[4],I0=this.h[5],N0=this.h[6],A0=this.h[7],O0=this.h[8],J1=this.h[9],P1=this.r[0],L1=this.r[1],R1=this.r[2],g=this.r[3],F1=this.r[4],p1=this.r[5],l1=this.r[6],E1=this.r[7],b1=this.r[8],m1=this.r[9];while(M>=16)L=O[T+0]&255|(O[T+1]&255)<<8,l0+=L&8191,r=O[T+2]&255|(O[T+3]&255)<<8,d0+=(L>>>13|r<<3)&8191,t=O[T+4]&255|(O[T+5]&255)<<8,_0+=(r>>>10|t<<6)&8191,H0=O[T+6]&255|(O[T+7]&255)<<8,Z0+=(t>>>7|H0<<9)&8191,M0=O[T+8]&255|(O[T+9]&255)<<8,V0+=(H0>>>4|M0<<12)&8191,I0+=M0>>>1&8191,o0=O[T+10]&255|(O[T+11]&255)<<8,N0+=(M0>>>14|o0<<2)&8191,v0=O[T+12]&255|(O[T+13]&255)<<8,A0+=(o0>>>11|v0<<5)&8191,c1=O[T+14]&255|(O[T+15]&255)<<8,O0+=(v0>>>8|c1<<8)&8191,J1+=c1>>>5|z,m0=0,q1=m0,q1+=l0*P1,q1+=d0*(5*m1),q1+=_0*(5*b1),q1+=Z0*(5*E1),q1+=V0*(5*l1),m0=q1>>>13,q1&=8191,q1+=I0*(5*p1),q1+=N0*(5*F1),q1+=A0*(5*g),q1+=O0*(5*R1),q1+=J1*(5*L1),m0+=q1>>>13,q1&=8191,H1=m0,H1+=l0*L1,H1+=d0*P1,H1+=_0*(5*m1),H1+=Z0*(5*b1),H1+=V0*(5*E1),m0=H1>>>13,H1&=8191,H1+=I0*(5*l1),H1+=N0*(5*p1),H1+=A0*(5*F1),H1+=O0*(5*g),H1+=J1*(5*R1),m0+=H1>>>13,H1&=8191,T1=m0,T1+=l0*R1,T1+=d0*L1,T1+=_0*P1,T1+=Z0*(5*m1),T1+=V0*(5*b1),m0=T1>>>13,T1&=8191,T1+=I0*(5*E1),T1+=N0*(5*l1),T1+=A0*(5*p1),T1+=O0*(5*F1),T1+=J1*(5*g),m0+=T1>>>13,T1&=8191,C1=m0,C1+=l0*g,C1+=d0*R1,C1+=_0*L1,C1+=Z0*P1,C1+=V0*(5*m1),m0=C1>>>13,C1&=8191,C1+=I0*(5*b1),C1+=N0*(5*E1),C1+=A0*(5*l1),C1+=O0*(5*p1),C1+=J1*(5*F1),m0+=C1>>>13,C1&=8191,A1=m0,A1+=l0*F1,A1+=d0*g,A1+=_0*R1,A1+=Z0*L1,A1+=V0*P1,m0=A1>>>13,A1&=8191,A1+=I0*(5*m1),A1+=N0*(5*b1),A1+=A0*(5*E1),A1+=O0*(5*l1),A1+=J1*(5*p1),m0+=A1>>>13,A1&=8191,w1=m0,w1+=l0*p1,w1+=d0*F1,w1+=_0*g,w1+=Z0*R1,w1+=V0*L1,m0=w1>>>13,w1&=8191,w1+=I0*P1,w1+=N0*(5*m1),w1+=A0*(5*b1),w1+=O0*(5*E1),w1+=J1*(5*l1),m0+=w1>>>13,w1&=8191,z1=m0,z1+=l0*l1,z1+=d0*p1,z1+=_0*F1,z1+=Z0*g,z1+=V0*R1,m0=z1>>>13,z1&=8191,z1+=I0*L1,z1+=N0*P1,z1+=A0*(5*m1),z1+=O0*(5*b1),z1+=J1*(5*E1),m0+=z1>>>13,z1&=8191,c0=m0,c0+=l0*E1,c0+=d0*l1,c0+=_0*p1,c0+=Z0*F1,c0+=V0*g,m0=c0>>>13,c0&=8191,c0+=I0*R1,c0+=N0*L1,c0+=A0*P1,c0+=O0*(5*m1),c0+=J1*(5*b1),m0+=c0>>>13,c0&=8191,a0=m0,a0+=l0*b1,a0+=d0*E1,a0+=_0*l1,a0+=Z0*p1,a0+=V0*F1,m0=a0>>>13,a0&=8191,a0+=I0*g,a0+=N0*R1,a0+=A0*L1,a0+=O0*P1,a0+=J1*(5*m1),m0+=a0>>>13,a0&=8191,u0=m0,u0+=l0*m1,u0+=d0*b1,u0+=_0*E1,u0+=Z0*l1,u0+=V0*p1,m0=u0>>>13,u0&=8191,u0+=I0*F1,u0+=N0*g,u0+=A0*R1,u0+=O0*L1,u0+=J1*P1,m0+=u0>>>13,u0&=8191,m0=(m0<<2)+m0|0,m0=m0+q1|0,q1=m0&8191,m0=m0>>>13,H1+=m0,l0=q1,d0=H1,_0=T1,Z0=C1,V0=A1,I0=w1,N0=z1,A0=c0,O0=a0,J1=u0,T+=16,M-=16;this.h[0]=l0,this.h[1]=d0,this.h[2]=_0,this.h[3]=Z0,this.h[4]=V0,this.h[5]=I0,this.h[6]=N0,this.h[7]=A0,this.h[8]=O0,this.h[9]=J1},Y0.prototype.finish=function(O,T){var M=new Uint16Array(10),z,L,r,t;if(this.leftover){t=this.leftover,this.buffer[t++]=1;for(;t<16;t++)this.buffer[t]=0;this.fin=1,this.blocks(this.buffer,0,16)}z=this.h[1]>>>13,this.h[1]&=8191;for(t=2;t<10;t++)this.h[t]+=z,z=this.h[t]>>>13,this.h[t]&=8191;this.h[0]+=z*5,z=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=z,z=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=z,M[0]=this.h[0]+5,z=M[0]>>>13,M[0]&=8191;for(t=1;t<10;t++)M[t]=this.h[t]+z,z=M[t]>>>13,M[t]&=8191;M[9]-=8192,L=(z^1)-1;for(t=0;t<10;t++)M[t]&=L;L=~L;for(t=0;t<10;t++)this.h[t]=this.h[t]&L|M[t];this.h[0]=(this.h[0]|this.h[1]<<13)&65535,this.h[1]=(this.h[1]>>>3|this.h[2]<<10)&65535,this.h[2]=(this.h[2]>>>6|this.h[3]<<7)&65535,this.h[3]=(this.h[3]>>>9|this.h[4]<<4)&65535,this.h[4]=(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14)&65535,this.h[5]=(this.h[6]>>>2|this.h[7]<<11)&65535,this.h[6]=(this.h[7]>>>5|this.h[8]<<8)&65535,this.h[7]=(this.h[8]>>>8|this.h[9]<<5)&65535,r=this.h[0]+this.pad[0],this.h[0]=r&65535;for(t=1;t<8;t++)r=(this.h[t]+this.pad[t]|0)+(r>>>16)|0,this.h[t]=r&65535;O[T+0]=this.h[0]>>>0&255,O[T+1]=this.h[0]>>>8&255,O[T+2]=this.h[1]>>>0&255,O[T+3]=this.h[1]>>>8&255,O[T+4]=this.h[2]>>>0&255,O[T+5]=this.h[2]>>>8&255,O[T+6]=this.h[3]>>>0&255,O[T+7]=this.h[3]>>>8&255,O[T+8]=this.h[4]>>>0&255,O[T+9]=this.h[4]>>>8&255,O[T+10]=this.h[5]>>>0&255,O[T+11]=this.h[5]>>>8&255,O[T+12]=this.h[6]>>>0&255,O[T+13]=this.h[6]>>>8&255,O[T+14]=this.h[7]>>>0&255,O[T+15]=this.h[7]>>>8&255},Y0.prototype.update=function(O,T,M){var z,L;if(this.leftover){if(L=16-this.leftover,L>M)L=M;for(z=0;z<L;z++)this.buffer[this.leftover+z]=O[T+z];if(M-=L,T+=L,this.leftover+=L,this.leftover<16)return;this.blocks(this.buffer,0,16),this.leftover=0}if(M>=16)L=M-M%16,this.blocks(O,T,L),T+=L,M-=L;if(M){for(z=0;z<M;z++)this.buffer[this.leftover+z]=O[T+z];this.leftover+=M}};function U0(O,T,M,z,L,r){var t=new Y0(r);return t.update(M,z,L),t.finish(O,T),0}function y(O,T,M,z,L,r){var t=new Uint8Array(16);return U0(t,0,M,z,L,r),C(O,T,t,0)}function o(O,T,M,z,L){var r;if(M<32)return-1;m(O,0,T,0,M,z,L),U0(O,16,O,32,M-32,O);for(r=0;r<16;r++)O[r]=0;return 0}function B(O,T,M,z,L){var r,t=new Uint8Array(32);if(M<32)return-1;if(W0(t,0,32,z,L),y(T,16,T,32,M-32,t)!==0)return-1;m(O,0,T,0,M,z,L);for(r=0;r<32;r++)O[r]=0;return 0}function R(O,T){var M;for(M=0;M<16;M++)O[M]=T[M]|0}function _(O){var T,M,z=1;for(T=0;T<16;T++)M=O[T]+z+65535,z=Math.floor(M/65536),O[T]=M-z*65536;O[0]+=z-1+37*(z-1)}function S(O,T,M){var z,L=~(M-1);for(var r=0;r<16;r++)z=L&(O[r]^T[r]),O[r]^=z,T[r]^=z}function v(O,T){var M,z,L,r=G(),t=G();for(M=0;M<16;M++)t[M]=T[M];_(t),_(t),_(t);for(z=0;z<2;z++){r[0]=t[0]-65517;for(M=1;M<15;M++)r[M]=t[M]-65535-(r[M-1]>>16&1),r[M-1]&=65535;r[15]=t[15]-32767-(r[14]>>16&1),L=r[15]>>16&1,r[14]&=65535,S(t,r,1-L)}for(M=0;M<16;M++)O[2*M]=t[M]&255,O[2*M+1]=t[M]>>8}function P(O,T){var M=new Uint8Array(32),z=new Uint8Array(32);return v(M,O),v(z,T),D(M,0,z,0)}function E(O){var T=new Uint8Array(32);return v(T,O),T[0]&1}function b(O,T){var M;for(M=0;M<16;M++)O[M]=T[2*M]+(T[2*M+1]<<8);O[15]&=32767}function k(O,T,M){for(var z=0;z<16;z++)O[z]=T[z]+M[z]}function f(O,T,M){for(var z=0;z<16;z++)O[z]=T[z]-M[z]}function e(O,T,M){var z,L,r=0,t=0,H0=0,M0=0,o0=0,v0=0,c1=0,m0=0,q1=0,H1=0,T1=0,C1=0,A1=0,w1=0,z1=0,c0=0,a0=0,u0=0,l0=0,d0=0,_0=0,Z0=0,V0=0,I0=0,N0=0,A0=0,O0=0,J1=0,P1=0,L1=0,R1=0,g=M[0],F1=M[1],p1=M[2],l1=M[3],E1=M[4],b1=M[5],m1=M[6],F8=M[7],t1=M[8],D8=M[9],M8=M[10],T8=M[11],u8=M[12],U9=M[13],q9=M[14],N9=M[15];z=T[0],r+=z*g,t+=z*F1,H0+=z*p1,M0+=z*l1,o0+=z*E1,v0+=z*b1,c1+=z*m1,m0+=z*F8,q1+=z*t1,H1+=z*D8,T1+=z*M8,C1+=z*T8,A1+=z*u8,w1+=z*U9,z1+=z*q9,c0+=z*N9,z=T[1],t+=z*g,H0+=z*F1,M0+=z*p1,o0+=z*l1,v0+=z*E1,c1+=z*b1,m0+=z*m1,q1+=z*F8,H1+=z*t1,T1+=z*D8,C1+=z*M8,A1+=z*T8,w1+=z*u8,z1+=z*U9,c0+=z*q9,a0+=z*N9,z=T[2],H0+=z*g,M0+=z*F1,o0+=z*p1,v0+=z*l1,c1+=z*E1,m0+=z*b1,q1+=z*m1,H1+=z*F8,T1+=z*t1,C1+=z*D8,A1+=z*M8,w1+=z*T8,z1+=z*u8,c0+=z*U9,a0+=z*q9,u0+=z*N9,z=T[3],M0+=z*g,o0+=z*F1,v0+=z*p1,c1+=z*l1,m0+=z*E1,q1+=z*b1,H1+=z*m1,T1+=z*F8,C1+=z*t1,A1+=z*D8,w1+=z*M8,z1+=z*T8,c0+=z*u8,a0+=z*U9,u0+=z*q9,l0+=z*N9,z=T[4],o0+=z*g,v0+=z*F1,c1+=z*p1,m0+=z*l1,q1+=z*E1,H1+=z*b1,T1+=z*m1,C1+=z*F8,A1+=z*t1,w1+=z*D8,z1+=z*M8,c0+=z*T8,a0+=z*u8,u0+=z*U9,l0+=z*q9,d0+=z*N9,z=T[5],v0+=z*g,c1+=z*F1,m0+=z*p1,q1+=z*l1,H1+=z*E1,T1+=z*b1,C1+=z*m1,A1+=z*F8,w1+=z*t1,z1+=z*D8,c0+=z*M8,a0+=z*T8,u0+=z*u8,l0+=z*U9,d0+=z*q9,_0+=z*N9,z=T[6],c1+=z*g,m0+=z*F1,q1+=z*p1,H1+=z*l1,T1+=z*E1,C1+=z*b1,A1+=z*m1,w1+=z*F8,z1+=z*t1,c0+=z*D8,a0+=z*M8,u0+=z*T8,l0+=z*u8,d0+=z*U9,_0+=z*q9,Z0+=z*N9,z=T[7],m0+=z*g,q1+=z*F1,H1+=z*p1,T1+=z*l1,C1+=z*E1,A1+=z*b1,w1+=z*m1,z1+=z*F8,c0+=z*t1,a0+=z*D8,u0+=z*M8,l0+=z*T8,d0+=z*u8,_0+=z*U9,Z0+=z*q9,V0+=z*N9,z=T[8],q1+=z*g,H1+=z*F1,T1+=z*p1,C1+=z*l1,A1+=z*E1,w1+=z*b1,z1+=z*m1,c0+=z*F8,a0+=z*t1,u0+=z*D8,l0+=z*M8,d0+=z*T8,_0+=z*u8,Z0+=z*U9,V0+=z*q9,I0+=z*N9,z=T[9],H1+=z*g,T1+=z*F1,C1+=z*p1,A1+=z*l1,w1+=z*E1,z1+=z*b1,c0+=z*m1,a0+=z*F8,u0+=z*t1,l0+=z*D8,d0+=z*M8,_0+=z*T8,Z0+=z*u8,V0+=z*U9,I0+=z*q9,N0+=z*N9,z=T[10],T1+=z*g,C1+=z*F1,A1+=z*p1,w1+=z*l1,z1+=z*E1,c0+=z*b1,a0+=z*m1,u0+=z*F8,l0+=z*t1,d0+=z*D8,_0+=z*M8,Z0+=z*T8,V0+=z*u8,I0+=z*U9,N0+=z*q9,A0+=z*N9,z=T[11],C1+=z*g,A1+=z*F1,w1+=z*p1,z1+=z*l1,c0+=z*E1,a0+=z*b1,u0+=z*m1,l0+=z*F8,d0+=z*t1,_0+=z*D8,Z0+=z*M8,V0+=z*T8,I0+=z*u8,N0+=z*U9,A0+=z*q9,O0+=z*N9,z=T[12],A1+=z*g,w1+=z*F1,z1+=z*p1,c0+=z*l1,a0+=z*E1,u0+=z*b1,l0+=z*m1,d0+=z*F8,_0+=z*t1,Z0+=z*D8,V0+=z*M8,I0+=z*T8,N0+=z*u8,A0+=z*U9,O0+=z*q9,J1+=z*N9,z=T[13],w1+=z*g,z1+=z*F1,c0+=z*p1,a0+=z*l1,u0+=z*E1,l0+=z*b1,d0+=z*m1,_0+=z*F8,Z0+=z*t1,V0+=z*D8,I0+=z*M8,N0+=z*T8,A0+=z*u8,O0+=z*U9,J1+=z*q9,P1+=z*N9,z=T[14],z1+=z*g,c0+=z*F1,a0+=z*p1,u0+=z*l1,l0+=z*E1,d0+=z*b1,_0+=z*m1,Z0+=z*F8,V0+=z*t1,I0+=z*D8,N0+=z*M8,A0+=z*T8,O0+=z*u8,J1+=z*U9,P1+=z*q9,L1+=z*N9,z=T[15],c0+=z*g,a0+=z*F1,u0+=z*p1,l0+=z*l1,d0+=z*E1,_0+=z*b1,Z0+=z*m1,V0+=z*F8,I0+=z*t1,N0+=z*D8,A0+=z*M8,O0+=z*T8,J1+=z*u8,P1+=z*U9,L1+=z*q9,R1+=z*N9,r+=38*a0,t+=38*u0,H0+=38*l0,M0+=38*d0,o0+=38*_0,v0+=38*Z0,c1+=38*V0,m0+=38*I0,q1+=38*N0,H1+=38*A0,T1+=38*O0,C1+=38*J1,A1+=38*P1,w1+=38*L1,z1+=38*R1,L=1,z=r+L+65535,L=Math.floor(z/65536),r=z-L*65536,z=t+L+65535,L=Math.floor(z/65536),t=z-L*65536,z=H0+L+65535,L=Math.floor(z/65536),H0=z-L*65536,z=M0+L+65535,L=Math.floor(z/65536),M0=z-L*65536,z=o0+L+65535,L=Math.floor(z/65536),o0=z-L*65536,z=v0+L+65535,L=Math.floor(z/65536),v0=z-L*65536,z=c1+L+65535,L=Math.floor(z/65536),c1=z-L*65536,z=m0+L+65535,L=Math.floor(z/65536),m0=z-L*65536,z=q1+L+65535,L=Math.floor(z/65536),q1=z-L*65536,z=H1+L+65535,L=Math.floor(z/65536),H1=z-L*65536,z=T1+L+65535,L=Math.floor(z/65536),T1=z-L*65536,z=C1+L+65535,L=Math.floor(z/65536),C1=z-L*65536,z=A1+L+65535,L=Math.floor(z/65536),A1=z-L*65536,z=w1+L+65535,L=Math.floor(z/65536),w1=z-L*65536,z=z1+L+65535,L=Math.floor(z/65536),z1=z-L*65536,z=c0+L+65535,L=Math.floor(z/65536),c0=z-L*65536,r+=L-1+37*(L-1),L=1,z=r+L+65535,L=Math.floor(z/65536),r=z-L*65536,z=t+L+65535,L=Math.floor(z/65536),t=z-L*65536,z=H0+L+65535,L=Math.floor(z/65536),H0=z-L*65536,z=M0+L+65535,L=Math.floor(z/65536),M0=z-L*65536,z=o0+L+65535,L=Math.floor(z/65536),o0=z-L*65536,z=v0+L+65535,L=Math.floor(z/65536),v0=z-L*65536,z=c1+L+65535,L=Math.floor(z/65536),c1=z-L*65536,z=m0+L+65535,L=Math.floor(z/65536),m0=z-L*65536,z=q1+L+65535,L=Math.floor(z/65536),q1=z-L*65536,z=H1+L+65535,L=Math.floor(z/65536),H1=z-L*65536,z=T1+L+65535,L=Math.floor(z/65536),T1=z-L*65536,z=C1+L+65535,L=Math.floor(z/65536),C1=z-L*65536,z=A1+L+65535,L=Math.floor(z/65536),A1=z-L*65536,z=w1+L+65535,L=Math.floor(z/65536),w1=z-L*65536,z=z1+L+65535,L=Math.floor(z/65536),z1=z-L*65536,z=c0+L+65535,L=Math.floor(z/65536),c0=z-L*65536,r+=L-1+37*(L-1),O[0]=r,O[1]=t,O[2]=H0,O[3]=M0,O[4]=o0,O[5]=v0,O[6]=c1,O[7]=m0,O[8]=q1,O[9]=H1,O[10]=T1,O[11]=C1,O[12]=A1,O[13]=w1,O[14]=z1,O[15]=c0}function q0(O,T){e(O,T,T)}function Q0(O,T){var M=G(),z;for(z=0;z<16;z++)M[z]=T[z];for(z=253;z>=0;z--)if(q0(M,M),z!==2&&z!==4)e(M,M,T);for(z=0;z<16;z++)O[z]=M[z]}function $0(O,T){var M=G(),z;for(z=0;z<16;z++)M[z]=T[z];for(z=250;z>=0;z--)if(q0(M,M),z!==1)e(M,M,T);for(z=0;z<16;z++)O[z]=M[z]}function D0(O,T,M){var z=new Uint8Array(32),L=new Float64Array(80),r,t,H0=G(),M0=G(),o0=G(),v0=G(),c1=G(),m0=G();for(t=0;t<31;t++)z[t]=T[t];z[31]=T[31]&127|64,z[0]&=248,b(L,M);for(t=0;t<16;t++)M0[t]=L[t],v0[t]=H0[t]=o0[t]=0;H0[0]=v0[0]=1;for(t=254;t>=0;--t)r=z[t>>>3]>>>(t&7)&1,S(H0,M0,r),S(o0,v0,r),k(c1,H0,o0),f(H0,H0,o0),k(o0,M0,v0),f(M0,M0,v0),q0(v0,c1),q0(m0,H0),e(H0,o0,H0),e(o0,M0,c1),k(c1,H0,o0),f(H0,H0,o0),q0(M0,H0),f(o0,v0,m0),e(H0,o0,J),k(H0,H0,v0),e(o0,o0,H0),e(H0,v0,m0),e(v0,M0,L),q0(M0,c1),S(H0,M0,r),S(o0,v0,r);for(t=0;t<16;t++)L[t+16]=H0[t],L[t+32]=o0[t],L[t+48]=M0[t],L[t+64]=v0[t];var q1=L.subarray(32),H1=L.subarray(16);return Q0(q1,q1),e(H1,H1,q1),v(O,H1),0}function x0(O,T){return D0(O,T,Z)}function N1(O,T){return X(T,32),x0(O,T)}function U1(O,T,M){var z=new Uint8Array(32);return D0(z,M,T),u(O,Y,z,n)}var J0=o,B0=B;function h0(O,T,M,z,L,r){var t=new Uint8Array(32);return U1(t,L,r),J0(O,T,M,z,t)}function Y1(O,T,M,z,L,r){var t=new Uint8Array(32);return U1(t,L,r),B0(O,T,M,z,t)}var w8=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function x1(O,T,M,z){var L=new Int32Array(16),r=new Int32Array(16),t,H0,M0,o0,v0,c1,m0,q1,H1,T1,C1,A1,w1,z1,c0,a0,u0,l0,d0,_0,Z0,V0,I0,N0,A0,O0,J1=O[0],P1=O[1],L1=O[2],R1=O[3],g=O[4],F1=O[5],p1=O[6],l1=O[7],E1=T[0],b1=T[1],m1=T[2],F8=T[3],t1=T[4],D8=T[5],M8=T[6],T8=T[7],u8=0;while(z>=128){for(d0=0;d0<16;d0++)_0=8*d0+u8,L[d0]=M[_0+0]<<24|M[_0+1]<<16|M[_0+2]<<8|M[_0+3],r[d0]=M[_0+4]<<24|M[_0+5]<<16|M[_0+6]<<8|M[_0+7];for(d0=0;d0<80;d0++)if(t=J1,H0=P1,M0=L1,o0=R1,v0=g,c1=F1,m0=p1,q1=l1,H1=E1,T1=b1,C1=m1,A1=F8,w1=t1,z1=D8,c0=M8,a0=T8,Z0=l1,V0=T8,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=(g>>>14|t1<<18)^(g>>>18|t1<<14)^(t1>>>9|g<<23),V0=(t1>>>14|g<<18)^(t1>>>18|g<<14)^(g>>>9|t1<<23),I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,Z0=g&F1^~g&p1,V0=t1&D8^~t1&M8,I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,Z0=w8[d0*2],V0=w8[d0*2+1],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,Z0=L[d0%16],V0=r[d0%16],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,u0=A0&65535|O0<<16,l0=I0&65535|N0<<16,Z0=u0,V0=l0,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=(J1>>>28|E1<<4)^(E1>>>2|J1<<30)^(E1>>>7|J1<<25),V0=(E1>>>28|J1<<4)^(J1>>>2|E1<<30)^(J1>>>7|E1<<25),I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,Z0=J1&P1^J1&L1^P1&L1,V0=E1&b1^E1&m1^b1&m1,I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,q1=A0&65535|O0<<16,a0=I0&65535|N0<<16,Z0=o0,V0=A1,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=u0,V0=l0,I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,o0=A0&65535|O0<<16,A1=I0&65535|N0<<16,P1=t,L1=H0,R1=M0,g=o0,F1=v0,p1=c1,l1=m0,J1=q1,b1=H1,m1=T1,F8=C1,t1=A1,D8=w1,M8=z1,T8=c0,E1=a0,d0%16===15)for(_0=0;_0<16;_0++)Z0=L[_0],V0=r[_0],I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=L[(_0+9)%16],V0=r[(_0+9)%16],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,u0=L[(_0+1)%16],l0=r[(_0+1)%16],Z0=(u0>>>1|l0<<31)^(u0>>>8|l0<<24)^u0>>>7,V0=(l0>>>1|u0<<31)^(l0>>>8|u0<<24)^(l0>>>7|u0<<25),I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,u0=L[(_0+14)%16],l0=r[(_0+14)%16],Z0=(u0>>>19|l0<<13)^(l0>>>29|u0<<3)^u0>>>6,V0=(l0>>>19|u0<<13)^(u0>>>29|l0<<3)^(l0>>>6|u0<<26),I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,L[_0]=A0&65535|O0<<16,r[_0]=I0&65535|N0<<16;Z0=J1,V0=E1,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[0],V0=T[0],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,O[0]=J1=A0&65535|O0<<16,T[0]=E1=I0&65535|N0<<16,Z0=P1,V0=b1,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[1],V0=T[1],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,O[1]=P1=A0&65535|O0<<16,T[1]=b1=I0&65535|N0<<16,Z0=L1,V0=m1,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[2],V0=T[2],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,O[2]=L1=A0&65535|O0<<16,T[2]=m1=I0&65535|N0<<16,Z0=R1,V0=F8,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[3],V0=T[3],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,O[3]=R1=A0&65535|O0<<16,T[3]=F8=I0&65535|N0<<16,Z0=g,V0=t1,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[4],V0=T[4],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,O[4]=g=A0&65535|O0<<16,T[4]=t1=I0&65535|N0<<16,Z0=F1,V0=D8,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[5],V0=T[5],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,O[5]=F1=A0&65535|O0<<16,T[5]=D8=I0&65535|N0<<16,Z0=p1,V0=M8,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[6],V0=T[6],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,O[6]=p1=A0&65535|O0<<16,T[6]=M8=I0&65535|N0<<16,Z0=l1,V0=T8,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[7],V0=T[7],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,O[7]=l1=A0&65535|O0<<16,T[7]=T8=I0&65535|N0<<16,u8+=128,z-=128}return z}function E0(O,T,M){var z=new Int32Array(8),L=new Int32Array(8),r=new Uint8Array(256),t,H0=M;z[0]=1779033703,z[1]=3144134277,z[2]=1013904242,z[3]=2773480762,z[4]=1359893119,z[5]=2600822924,z[6]=528734635,z[7]=1541459225,L[0]=4089235720,L[1]=2227873595,L[2]=4271175723,L[3]=1595750129,L[4]=2917565137,L[5]=725511199,L[6]=4215389547,L[7]=327033209,x1(z,L,T,M),M%=128;for(t=0;t<M;t++)r[t]=T[H0-M+t];r[M]=128,M=256-128*(M<112?1:0),r[M-9]=0,I(r,M-8,H0/536870912|0,H0<<3),x1(z,L,r,M);for(t=0;t<8;t++)I(O,8*t,z[t],L[t]);return 0}function n0(O,T){var M=G(),z=G(),L=G(),r=G(),t=G(),H0=G(),M0=G(),o0=G(),v0=G();f(M,O[1],O[0]),f(v0,T[1],T[0]),e(M,M,v0),k(z,O[0],O[1]),k(v0,T[0],T[1]),e(z,z,v0),e(L,O[3],T[3]),e(L,L,q),e(r,O[2],T[2]),k(r,r,r),f(t,z,M),f(H0,r,L),k(M0,r,L),k(o0,z,M),e(O[0],t,H0),e(O[1],o0,M0),e(O[2],M0,H0),e(O[3],t,o0)}function O1(O,T,M){var z;for(z=0;z<4;z++)S(O[z],T[z],M)}function $1(O,T){var M=G(),z=G(),L=G();Q0(L,T[2]),e(M,T[0],L),e(z,T[1],L),v(O,z),O[31]^=E(M)<<7}function U8(O,T,M){var z,L;R(O[0],V),R(O[1],Q),R(O[2],Q),R(O[3],V);for(L=255;L>=0;--L)z=M[L/8|0]>>(L&7)&1,O1(O,T,z),n0(T,O),n0(O,O),O1(O,T,z)}function H8(O,T){var M=[G(),G(),G(),G()];R(M[0],N),R(M[1],A),R(M[2],Q),e(M[3],N,A),U8(O,M,T)}function A8(O,T,M){var z=new Uint8Array(64),L=[G(),G(),G(),G()],r;if(!M)X(T,32);E0(z,T,32),z[0]&=248,z[31]&=127,z[31]|=64,H8(L,z),$1(O,L);for(r=0;r<32;r++)T[r+32]=O[r];return 0}var B1=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function C8(O,T){var M,z,L,r;for(z=63;z>=32;--z){M=0;for(L=z-32,r=z-12;L<r;++L)T[L]+=M-16*T[z]*B1[L-(z-32)],M=Math.floor((T[L]+128)/256),T[L]-=M*256;T[L]+=M,T[z]=0}M=0;for(L=0;L<32;L++)T[L]+=M-(T[31]>>4)*B1[L],M=T[L]>>8,T[L]&=255;for(L=0;L<32;L++)T[L]-=M*B1[L];for(z=0;z<32;z++)T[z+1]+=T[z]>>8,O[z]=T[z]&255}function k5(O){var T=new Float64Array(64),M;for(M=0;M<64;M++)T[M]=O[M];for(M=0;M<64;M++)O[M]=0;C8(O,T)}function HW(O,T,M,z){var L=new Uint8Array(64),r=new Uint8Array(64),t=new Uint8Array(64),H0,M0,o0=new Float64Array(64),v0=[G(),G(),G(),G()];E0(L,z,32),L[0]&=248,L[31]&=127,L[31]|=64;var c1=M+64;for(H0=0;H0<M;H0++)O[64+H0]=T[H0];for(H0=0;H0<32;H0++)O[32+H0]=L[32+H0];E0(t,O.subarray(32),M+32),k5(t),H8(v0,t),$1(O,v0);for(H0=32;H0<64;H0++)O[H0]=z[H0];E0(r,O,M+64),k5(r);for(H0=0;H0<64;H0++)o0[H0]=0;for(H0=0;H0<32;H0++)o0[H0]=t[H0];for(H0=0;H0<32;H0++)for(M0=0;M0<32;M0++)o0[H0+M0]+=r[H0]*L[M0];return C8(O.subarray(32),o0),c1}function QZ(O,T){var M=G(),z=G(),L=G(),r=G(),t=G(),H0=G(),M0=G();if(R(O[2],Q),b(O[1],T),q0(L,O[1]),e(r,L,U),f(L,L,O[2]),k(r,O[2],r),q0(t,r),q0(H0,t),e(M0,H0,t),e(M,M0,L),e(M,M,r),$0(M,M),e(M,M,L),e(M,M,r),e(M,M,r),e(O[0],M,r),q0(z,O[0]),e(z,z,r),P(z,L))e(O[0],O[0],H);if(q0(z,O[0]),e(z,z,r),P(z,L))return-1;if(E(O[0])===T[31]>>7)f(O[0],V,O[0]);return e(O[3],O[0],O[1]),0}function i7(O,T,M,z){var L,r=new Uint8Array(32),t=new Uint8Array(64),H0=[G(),G(),G(),G()],M0=[G(),G(),G(),G()];if(M<64)return-1;if(QZ(M0,z))return-1;for(L=0;L<M;L++)O[L]=T[L];for(L=0;L<32;L++)O[L+32]=z[L];if(E0(t,O,M),k5(t),U8(H0,M0,t),H8(M0,T.subarray(32)),n0(H0,M0),$1(r,H0),M-=64,D(T,0,r,0)){for(L=0;L<M;L++)O[L]=0;return-1}for(L=0;L<M;L++)O[L]=T[L+64];return M}var i=32,$=24,d=32,X0=16,w0=32,e0=32,K1=32,r0=32,K0=32,F0=$,g0=d,k0=X0,Q1=64,X1=32,k1=64,n1=32,Q7=64;W.lowlevel={crypto_core_hsalsa20:u,crypto_stream_xor:m,crypto_stream:W0,crypto_stream_salsa20_xor:c,crypto_stream_salsa20:p,crypto_onetimeauth:U0,crypto_onetimeauth_verify:y,crypto_verify_16:C,crypto_verify_32:D,crypto_secretbox:o,crypto_secretbox_open:B,crypto_scalarmult:D0,crypto_scalarmult_base:x0,crypto_box_beforenm:U1,crypto_box_afternm:J0,crypto_box:h0,crypto_box_open:Y1,crypto_box_keypair:N1,crypto_hash:E0,crypto_sign:HW,crypto_sign_keypair:A8,crypto_sign_open:i7,crypto_secretbox_KEYBYTES:i,crypto_secretbox_NONCEBYTES:$,crypto_secretbox_ZEROBYTES:d,crypto_secretbox_BOXZEROBYTES:X0,crypto_scalarmult_BYTES:w0,crypto_scalarmult_SCALARBYTES:e0,crypto_box_PUBLICKEYBYTES:K1,crypto_box_SECRETKEYBYTES:r0,crypto_box_BEFORENMBYTES:K0,crypto_box_NONCEBYTES:F0,crypto_box_ZEROBYTES:g0,crypto_box_BOXZEROBYTES:k0,crypto_sign_BYTES:Q1,crypto_sign_PUBLICKEYBYTES:X1,crypto_sign_SECRETKEYBYTES:k1,crypto_sign_SEEDBYTES:n1,crypto_hash_BYTES:Q7,gf:G,D:U,L:B1,pack25519:v,unpack25519:b,M:e,A:k,S:q0,Z:f,pow2523:$0,add:n0,set25519:R,modL:C8,scalarmult:U8,scalarbase:H8};function AW(O,T){if(O.length!==i)throw Error("bad key size");if(T.length!==$)throw Error("bad nonce size")}function JZ(O,T){if(O.length!==K1)throw Error("bad public key size");if(T.length!==r0)throw Error("bad secret key size")}function J9(){for(var O=0;O<arguments.length;O++)if(!(arguments[O]instanceof Uint8Array))throw TypeError("unexpected type, use Uint8Array")}function kJ(O){for(var T=0;T<O.length;T++)O[T]=0}W.randomBytes=function(O){var T=new Uint8Array(O);return X(T,O),T},W.secretbox=function(O,T,M){J9(O,T,M),AW(M,T);var z=new Uint8Array(d+O.length),L=new Uint8Array(z.length);for(var r=0;r<O.length;r++)z[r+d]=O[r];return o(L,z,z.length,T,M),L.subarray(X0)},W.secretbox.open=function(O,T,M){J9(O,T,M),AW(M,T);var z=new Uint8Array(X0+O.length),L=new Uint8Array(z.length);for(var r=0;r<O.length;r++)z[r+X0]=O[r];if(z.length<32)return null;if(B(L,z,z.length,T,M)!==0)return null;return L.subarray(d)},W.secretbox.keyLength=i,W.secretbox.nonceLength=$,W.secretbox.overheadLength=X0,W.scalarMult=function(O,T){if(J9(O,T),O.length!==e0)throw Error("bad n size");if(T.length!==w0)throw Error("bad p size");var M=new Uint8Array(w0);return D0(M,O,T),M},W.scalarMult.base=function(O){if(J9(O),O.length!==e0)throw Error("bad n size");var T=new Uint8Array(w0);return x0(T,O),T},W.scalarMult.scalarLength=e0,W.scalarMult.groupElementLength=w0,W.box=function(O,T,M,z){var L=W.box.before(M,z);return W.secretbox(O,T,L)},W.box.before=function(O,T){J9(O,T),JZ(O,T);var M=new Uint8Array(K0);return U1(M,O,T),M},W.box.after=W.secretbox,W.box.open=function(O,T,M,z){var L=W.box.before(M,z);return W.secretbox.open(O,T,L)},W.box.open.after=W.secretbox.open,W.box.keyPair=function(){var O=new Uint8Array(K1),T=new Uint8Array(r0);return N1(O,T),{publicKey:O,secretKey:T}},W.box.keyPair.fromSecretKey=function(O){if(J9(O),O.length!==r0)throw Error("bad secret key size");var T=new Uint8Array(K1);return x0(T,O),{publicKey:T,secretKey:new Uint8Array(O)}},W.box.publicKeyLength=K1,W.box.secretKeyLength=r0,W.box.sharedKeyLength=K0,W.box.nonceLength=F0,W.box.overheadLength=W.secretbox.overheadLength,W.sign=function(O,T){if(J9(O,T),T.length!==k1)throw Error("bad secret key size");var M=new Uint8Array(Q1+O.length);return HW(M,O,O.length,T),M},W.sign.open=function(O,T){if(J9(O,T),T.length!==X1)throw Error("bad public key size");var M=new Uint8Array(O.length),z=i7(M,O,O.length,T);if(z<0)return null;var L=new Uint8Array(z);for(var r=0;r<L.length;r++)L[r]=M[r];return L},W.sign.detached=function(O,T){var M=W.sign(O,T),z=new Uint8Array(Q1);for(var L=0;L<z.length;L++)z[L]=M[L];return z},W.sign.detached.verify=function(O,T,M){if(J9(O,T,M),T.length!==Q1)throw Error("bad signature size");if(M.length!==X1)throw Error("bad public key size");var z=new Uint8Array(Q1+O.length),L=new Uint8Array(Q1+O.length),r;for(r=0;r<Q1;r++)z[r]=T[r];for(r=0;r<O.length;r++)z[r+Q1]=O[r];return i7(L,z,z.length,M)>=0},W.sign.keyPair=function(){var O=new Uint8Array(X1),T=new Uint8Array(k1);return A8(O,T),{publicKey:O,secretKey:T}},W.sign.keyPair.fromSecretKey=function(O){if(J9(O),O.length!==k1)throw Error("bad secret key size");var T=new Uint8Array(X1);for(var M=0;M<T.length;M++)T[M]=O[32+M];return{publicKey:T,secretKey:new Uint8Array(O)}},W.sign.keyPair.fromSeed=function(O){if(J9(O),O.length!==n1)throw Error("bad seed size");var T=new Uint8Array(X1),M=new Uint8Array(k1);for(var z=0;z<32;z++)M[z]=O[z];return A8(T,M,!0),{publicKey:T,secretKey:M}},W.sign.publicKeyLength=X1,W.sign.secretKeyLength=k1,W.sign.seedLength=n1,W.sign.signatureLength=Q1,W.hash=function(O){J9(O);var T=new Uint8Array(Q7);return E0(T,O,O.length),T},W.hash.hashLength=Q7,W.verify=function(O,T){if(J9(O,T),O.length===0||T.length===0)return!1;if(O.length!==T.length)return!1;return w(O,0,T,0,O.length)===0?!0:!1},W.setPRNG=function(O){X=O},function(){var O=typeof self<"u"?self.crypto||self.msCrypto:null;if(O&&O.getRandomValues){var T=65536;W.setPRNG(function(M,z){var L,r=new Uint8Array(z);for(L=0;L<z;L+=T)O.getRandomValues(r.subarray(L,L+Math.min(z-L,T)));for(L=0;L<z;L++)M[L]=r[L];kJ(r)})}else if(O=S8("crypto"),O&&O.randomBytes)W.setPRNG(function(M,z){var L,r=O.randomBytes(z);for(L=0;L<z;L++)M[L]=r[L];kJ(r)})}()})(typeof SU<"u"&&ye?ye:self.nacl=self.nacl||{})});var Bz=Z1((JT)=>{Object.defineProperty(JT,"__esModule",{value:!0});class QT{constructor(W,G=0,X=0){this.start=G,this.end=X>G?X:G,this.buf=W}get length(){return this.buf.length}reset(W=0,G=0){if(this.start=W,G>=this.start)this.end=G;else if(this.end<this.start)this.end=this.start;return this}walk(W){return this.start=this.end,this.end+=W,this}mustHas(W,G="Too few bytes to parse."){let X=this.end+W;if(X>this.buf.length){let Y=Error(G);throw Y.available=this.buf.length,Y.requested=X,Y}return this.walk(0),this}mustWalk(W,G){return this.mustHas(W,G),this.walk(W),this}}JT.BufferVisitor=QT});var HT=Z1((NT)=>{Object.defineProperty(NT,"__esModule",{value:!0});var UT=S8("util"),qT=64,$z="-----BEGIN ",Fz="-----END ",bZ="-----",Ez="Proc-Type";class Sz{static parse(W){let G=[],X=W.toString("utf8").split(`
|
|
7
|
+
`).map((G)=>G.trim()).join(" ")};eM.O=function(W){return this.inspectOpts.colors=this.useColors,EU.inspect(W,this.inspectOpts)}});var YT=Z1((ke,Lz)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)Lz.exports=tM();else Lz.exports=XT()});var FU=Z1((VT)=>{Object.defineProperty(VT,"__esModule",{value:!0});var Qb=S8("net");function Jb(W){switch(Qb.isIP(W)){case 4:return Buffer.from(W.split(".").map((Z)=>parseInt(Z,10)));case 6:let G=W.split(":"),X=Buffer.alloc(16),Y=0;if(G[G.length-1]==="")G[G.length-1]="0";for(let Z=0;Z<G.length;Z++){if(G[Z]===""){if(Z+1<G.length&&G[Z+1]!=="")Y=16-(G.length-Z-1)*2;continue}X.writeUInt16BE(parseInt(G[Z],16),Y),Y+=2}return X;default:return null}}VT.bytesFromIP=Jb;function Ub(W){switch(W.length){case 4:return[W[0],W[1],W[2],W[3]].join(".");case 16:let G=[],X=-1,Y=0,Z=-1,V=0;for(let Q=0;Q<W.length;Q+=2){let J=W[Q]<<8|W[Q+1];if(J===0){if(Y++,X===-1)X=G.length;if(Y>V)V=Y,Z=X}else X=-1,Y=0;G.push(J.toString(16))}if(V>0){let Q="",J=G.slice(Z+V);if(G.length=Z,G.length===0)Q+=":";if(J.length===0)Q+=":";G.push(Q,...J)}return G.join(":");default:return""}}VT.bytesToIP=Ub;var A6=Object.create(null),ZT=/^[0-9.]+$/;function qb(W){if(ZT.test(W)&&A6[W]!=="")return W;return A6[W]==null?"":A6[W]}VT.getOID=qb;function Nb(W){if(!ZT.test(W)&&A6[W]!=="")return W;return A6[W]==null?W:A6[W]}VT.getOIDName=Nb;function z0(W,G){A6[W]=G,A6[G]=W}z0("1.2.840.113549.1.1.1","rsaEncryption");z0("1.2.840.113549.1.1.4","md5WithRsaEncryption");z0("1.2.840.113549.1.1.5","sha1WithRsaEncryption");z0("1.2.840.113549.1.1.8","mgf1");z0("1.2.840.113549.1.1.10","RSASSA-PSS");z0("1.2.840.113549.1.1.11","sha256WithRsaEncryption");z0("1.2.840.113549.1.1.12","sha384WithRsaEncryption");z0("1.2.840.113549.1.1.13","sha512WithRsaEncryption");z0("1.2.840.10045.2.1","ecEncryption");z0("1.2.840.10045.4.1","ecdsaWithSha1");z0("1.2.840.10045.4.3.2","ecdsaWithSha256");z0("1.2.840.10045.4.3.3","ecdsaWithSha384");z0("1.2.840.10045.4.3.4","ecdsaWithSha512");z0("1.2.840.10040.4.3","dsaWithSha1");z0("2.16.840.1.101.3.4.3.2","dsaWithSha256");z0("1.3.14.3.2.7","desCBC");z0("1.3.14.3.2.26","sha1");z0("2.16.840.1.101.3.4.2.1","sha256");z0("2.16.840.1.101.3.4.2.2","sha384");z0("2.16.840.1.101.3.4.2.3","sha512");z0("1.2.840.113549.2.5","md5");z0("1.3.101.110","X25519");z0("1.3.101.111","X448");z0("1.3.101.112","Ed25519");z0("1.3.101.113","Ed448");z0("1.2.840.113549.1.7.1","data");z0("1.2.840.113549.1.7.2","signedData");z0("1.2.840.113549.1.7.3","envelopedData");z0("1.2.840.113549.1.7.4","signedAndEnvelopedData");z0("1.2.840.113549.1.7.5","digestedData");z0("1.2.840.113549.1.7.6","encryptedData");z0("1.2.840.113549.1.9.1","emailAddress");z0("1.2.840.113549.1.9.2","unstructuredName");z0("1.2.840.113549.1.9.3","contentType");z0("1.2.840.113549.1.9.4","messageDigest");z0("1.2.840.113549.1.9.5","signingTime");z0("1.2.840.113549.1.9.6","counterSignature");z0("1.2.840.113549.1.9.7","challengePassword");z0("1.2.840.113549.1.9.8","unstructuredAddress");z0("1.2.840.113549.1.9.14","extensionRequest");z0("1.2.840.113549.1.9.20","friendlyName");z0("1.2.840.113549.1.9.21","localKeyId");z0("1.2.840.113549.1.9.22.1","x509Certificate");z0("1.2.840.113549.1.12.10.1.1","keyBag");z0("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");z0("1.2.840.113549.1.12.10.1.3","certBag");z0("1.2.840.113549.1.12.10.1.4","crlBag");z0("1.2.840.113549.1.12.10.1.5","secretBag");z0("1.2.840.113549.1.12.10.1.6","safeContentsBag");z0("1.2.840.113549.1.5.13","pkcs5PBES2");z0("1.2.840.113549.1.5.12","pkcs5PBKDF2");z0("1.2.840.113549.2.7","hmacWithSha1");z0("1.2.840.113549.2.9","hmacWithSha256");z0("1.2.840.113549.2.10","hmacWithSha384");z0("1.2.840.113549.2.11","hmacWithSha512");z0("1.2.840.113549.3.7","3desCBC");z0("2.16.840.1.101.3.4.1.2","aesCBC128");z0("2.16.840.1.101.3.4.1.42","aesCBC256");z0("2.5.4.3","commonName");z0("2.5.4.5","serialName");z0("2.5.4.6","countryName");z0("2.5.4.7","localityName");z0("2.5.4.8","stateOrProvinceName");z0("2.5.4.10","organizationName");z0("2.5.4.11","organizationalUnitName");z0("2.5.4.15","businessCategory");z0("2.16.840.1.113730.1.1","nsCertType");z0("2.5.29.2","keyAttributes");z0("2.5.29.4","keyUsageRestriction");z0("2.5.29.6","subtreesConstraint");z0("2.5.29.9","subjectDirectoryAttributes");z0("2.5.29.14","subjectKeyIdentifier");z0("2.5.29.15","keyUsage");z0("2.5.29.16","privateKeyUsagePeriod");z0("2.5.29.17","subjectAltName");z0("2.5.29.18","issuerAltName");z0("2.5.29.19","basicConstraints");z0("2.5.29.20","cRLNumber");z0("2.5.29.21","cRLReason");z0("2.5.29.22","expirationDate");z0("2.5.29.23","instructionCode");z0("2.5.29.24","invalidityDate");z0("2.5.29.27","deltaCRLIndicator");z0("2.5.29.28","issuingDistributionPoint");z0("2.5.29.29","certificateIssuer");z0("2.5.29.30","nameConstraints");z0("2.5.29.31","cRLDistributionPoints");z0("2.5.29.32","certificatePolicies");z0("2.5.29.33","policyMappings");z0("2.5.29.35","authorityKeyIdentifier");z0("2.5.29.36","policyConstraints");z0("2.5.29.37","extKeyUsage");z0("2.5.29.46","freshestCRL");z0("2.5.29.54","inhibitAnyPolicy");z0("1.3.6.1.4.1.311.60.2.1.2","jurisdictionST");z0("1.3.6.1.4.1.311.60.2.1.3","jurisdictionC");z0("1.3.6.1.4.1.11129.2.4.2","timestampList");z0("1.3.6.1.5.5.7.1.1","authorityInfoAccess");z0("1.3.6.1.5.5.7.3.1","serverAuth");z0("1.3.6.1.5.5.7.3.2","clientAuth");z0("1.3.6.1.5.5.7.3.3","codeSigning");z0("1.3.6.1.5.5.7.3.4","emailProtection");z0("1.3.6.1.5.5.7.3.8","timeStamping");z0("1.3.6.1.5.5.7.48.1","authorityInfoAccessOcsp");z0("1.3.6.1.5.5.7.48.2","authorityInfoAccessIssuers")});var xU=Z1((ye,SU)=>{(function(W){var G=function(O){var T,M=new Float64Array(16);if(O)for(T=0;T<O.length;T++)M[T]=O[T];return M},X=function(){throw Error("no PRNG")},Y=new Uint8Array(16),Z=new Uint8Array(32);Z[0]=9;var V=G(),Q=G([1]),J=G([56129,1]),U=G([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),q=G([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),N=G([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),A=G([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),H=G([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function I(O,T,M,z){O[T]=M>>24&255,O[T+1]=M>>16&255,O[T+2]=M>>8&255,O[T+3]=M&255,O[T+4]=z>>24&255,O[T+5]=z>>16&255,O[T+6]=z>>8&255,O[T+7]=z&255}function w(O,T,M,z,L){var r,t=0;for(r=0;r<L;r++)t|=O[T+r]^M[z+r];return(1&t-1>>>8)-1}function C(O,T,M,z){return w(O,T,M,z,16)}function D(O,T,M,z){return w(O,T,M,z,32)}function x(O,T,M,z){var L=z[0]&255|(z[1]&255)<<8|(z[2]&255)<<16|(z[3]&255)<<24,r=M[0]&255|(M[1]&255)<<8|(M[2]&255)<<16|(M[3]&255)<<24,t=M[4]&255|(M[5]&255)<<8|(M[6]&255)<<16|(M[7]&255)<<24,H0=M[8]&255|(M[9]&255)<<8|(M[10]&255)<<16|(M[11]&255)<<24,M0=M[12]&255|(M[13]&255)<<8|(M[14]&255)<<16|(M[15]&255)<<24,o0=z[4]&255|(z[5]&255)<<8|(z[6]&255)<<16|(z[7]&255)<<24,v0=T[0]&255|(T[1]&255)<<8|(T[2]&255)<<16|(T[3]&255)<<24,c1=T[4]&255|(T[5]&255)<<8|(T[6]&255)<<16|(T[7]&255)<<24,m0=T[8]&255|(T[9]&255)<<8|(T[10]&255)<<16|(T[11]&255)<<24,q1=T[12]&255|(T[13]&255)<<8|(T[14]&255)<<16|(T[15]&255)<<24,H1=z[8]&255|(z[9]&255)<<8|(z[10]&255)<<16|(z[11]&255)<<24,P1=M[16]&255|(M[17]&255)<<8|(M[18]&255)<<16|(M[19]&255)<<24,D1=M[20]&255|(M[21]&255)<<8|(M[22]&255)<<16|(M[23]&255)<<24,A1=M[24]&255|(M[25]&255)<<8|(M[26]&255)<<16|(M[27]&255)<<24,w1=M[28]&255|(M[29]&255)<<8|(M[30]&255)<<16|(M[31]&255)<<24,z1=z[12]&255|(z[13]&255)<<8|(z[14]&255)<<16|(z[15]&255)<<24,c0=L,a0=r,u0=t,l0=H0,d0=M0,_0=o0,Z0=v0,V0=c1,I0=m0,N0=q1,A0=H1,O0=P1,J1=D1,R1=A1,B1=w1,L1=z1,g;for(var F1=0;F1<20;F1+=2)g=c0+J1|0,d0^=g<<7|g>>>25,g=d0+c0|0,I0^=g<<9|g>>>23,g=I0+d0|0,J1^=g<<13|g>>>19,g=J1+I0|0,c0^=g<<18|g>>>14,g=_0+a0|0,N0^=g<<7|g>>>25,g=N0+_0|0,R1^=g<<9|g>>>23,g=R1+N0|0,a0^=g<<13|g>>>19,g=a0+R1|0,_0^=g<<18|g>>>14,g=A0+Z0|0,B1^=g<<7|g>>>25,g=B1+A0|0,u0^=g<<9|g>>>23,g=u0+B1|0,Z0^=g<<13|g>>>19,g=Z0+u0|0,A0^=g<<18|g>>>14,g=L1+O0|0,l0^=g<<7|g>>>25,g=l0+L1|0,V0^=g<<9|g>>>23,g=V0+l0|0,O0^=g<<13|g>>>19,g=O0+V0|0,L1^=g<<18|g>>>14,g=c0+l0|0,a0^=g<<7|g>>>25,g=a0+c0|0,u0^=g<<9|g>>>23,g=u0+a0|0,l0^=g<<13|g>>>19,g=l0+u0|0,c0^=g<<18|g>>>14,g=_0+d0|0,Z0^=g<<7|g>>>25,g=Z0+_0|0,V0^=g<<9|g>>>23,g=V0+Z0|0,d0^=g<<13|g>>>19,g=d0+V0|0,_0^=g<<18|g>>>14,g=A0+N0|0,O0^=g<<7|g>>>25,g=O0+A0|0,I0^=g<<9|g>>>23,g=I0+O0|0,N0^=g<<13|g>>>19,g=N0+I0|0,A0^=g<<18|g>>>14,g=L1+B1|0,J1^=g<<7|g>>>25,g=J1+L1|0,R1^=g<<9|g>>>23,g=R1+J1|0,B1^=g<<13|g>>>19,g=B1+R1|0,L1^=g<<18|g>>>14;c0=c0+L|0,a0=a0+r|0,u0=u0+t|0,l0=l0+H0|0,d0=d0+M0|0,_0=_0+o0|0,Z0=Z0+v0|0,V0=V0+c1|0,I0=I0+m0|0,N0=N0+q1|0,A0=A0+H1|0,O0=O0+P1|0,J1=J1+D1|0,R1=R1+A1|0,B1=B1+w1|0,L1=L1+z1|0,O[0]=c0>>>0&255,O[1]=c0>>>8&255,O[2]=c0>>>16&255,O[3]=c0>>>24&255,O[4]=a0>>>0&255,O[5]=a0>>>8&255,O[6]=a0>>>16&255,O[7]=a0>>>24&255,O[8]=u0>>>0&255,O[9]=u0>>>8&255,O[10]=u0>>>16&255,O[11]=u0>>>24&255,O[12]=l0>>>0&255,O[13]=l0>>>8&255,O[14]=l0>>>16&255,O[15]=l0>>>24&255,O[16]=d0>>>0&255,O[17]=d0>>>8&255,O[18]=d0>>>16&255,O[19]=d0>>>24&255,O[20]=_0>>>0&255,O[21]=_0>>>8&255,O[22]=_0>>>16&255,O[23]=_0>>>24&255,O[24]=Z0>>>0&255,O[25]=Z0>>>8&255,O[26]=Z0>>>16&255,O[27]=Z0>>>24&255,O[28]=V0>>>0&255,O[29]=V0>>>8&255,O[30]=V0>>>16&255,O[31]=V0>>>24&255,O[32]=I0>>>0&255,O[33]=I0>>>8&255,O[34]=I0>>>16&255,O[35]=I0>>>24&255,O[36]=N0>>>0&255,O[37]=N0>>>8&255,O[38]=N0>>>16&255,O[39]=N0>>>24&255,O[40]=A0>>>0&255,O[41]=A0>>>8&255,O[42]=A0>>>16&255,O[43]=A0>>>24&255,O[44]=O0>>>0&255,O[45]=O0>>>8&255,O[46]=O0>>>16&255,O[47]=O0>>>24&255,O[48]=J1>>>0&255,O[49]=J1>>>8&255,O[50]=J1>>>16&255,O[51]=J1>>>24&255,O[52]=R1>>>0&255,O[53]=R1>>>8&255,O[54]=R1>>>16&255,O[55]=R1>>>24&255,O[56]=B1>>>0&255,O[57]=B1>>>8&255,O[58]=B1>>>16&255,O[59]=B1>>>24&255,O[60]=L1>>>0&255,O[61]=L1>>>8&255,O[62]=L1>>>16&255,O[63]=L1>>>24&255}function h(O,T,M,z){var L=z[0]&255|(z[1]&255)<<8|(z[2]&255)<<16|(z[3]&255)<<24,r=M[0]&255|(M[1]&255)<<8|(M[2]&255)<<16|(M[3]&255)<<24,t=M[4]&255|(M[5]&255)<<8|(M[6]&255)<<16|(M[7]&255)<<24,H0=M[8]&255|(M[9]&255)<<8|(M[10]&255)<<16|(M[11]&255)<<24,M0=M[12]&255|(M[13]&255)<<8|(M[14]&255)<<16|(M[15]&255)<<24,o0=z[4]&255|(z[5]&255)<<8|(z[6]&255)<<16|(z[7]&255)<<24,v0=T[0]&255|(T[1]&255)<<8|(T[2]&255)<<16|(T[3]&255)<<24,c1=T[4]&255|(T[5]&255)<<8|(T[6]&255)<<16|(T[7]&255)<<24,m0=T[8]&255|(T[9]&255)<<8|(T[10]&255)<<16|(T[11]&255)<<24,q1=T[12]&255|(T[13]&255)<<8|(T[14]&255)<<16|(T[15]&255)<<24,H1=z[8]&255|(z[9]&255)<<8|(z[10]&255)<<16|(z[11]&255)<<24,P1=M[16]&255|(M[17]&255)<<8|(M[18]&255)<<16|(M[19]&255)<<24,D1=M[20]&255|(M[21]&255)<<8|(M[22]&255)<<16|(M[23]&255)<<24,A1=M[24]&255|(M[25]&255)<<8|(M[26]&255)<<16|(M[27]&255)<<24,w1=M[28]&255|(M[29]&255)<<8|(M[30]&255)<<16|(M[31]&255)<<24,z1=z[12]&255|(z[13]&255)<<8|(z[14]&255)<<16|(z[15]&255)<<24,c0=L,a0=r,u0=t,l0=H0,d0=M0,_0=o0,Z0=v0,V0=c1,I0=m0,N0=q1,A0=H1,O0=P1,J1=D1,R1=A1,B1=w1,L1=z1,g;for(var F1=0;F1<20;F1+=2)g=c0+J1|0,d0^=g<<7|g>>>25,g=d0+c0|0,I0^=g<<9|g>>>23,g=I0+d0|0,J1^=g<<13|g>>>19,g=J1+I0|0,c0^=g<<18|g>>>14,g=_0+a0|0,N0^=g<<7|g>>>25,g=N0+_0|0,R1^=g<<9|g>>>23,g=R1+N0|0,a0^=g<<13|g>>>19,g=a0+R1|0,_0^=g<<18|g>>>14,g=A0+Z0|0,B1^=g<<7|g>>>25,g=B1+A0|0,u0^=g<<9|g>>>23,g=u0+B1|0,Z0^=g<<13|g>>>19,g=Z0+u0|0,A0^=g<<18|g>>>14,g=L1+O0|0,l0^=g<<7|g>>>25,g=l0+L1|0,V0^=g<<9|g>>>23,g=V0+l0|0,O0^=g<<13|g>>>19,g=O0+V0|0,L1^=g<<18|g>>>14,g=c0+l0|0,a0^=g<<7|g>>>25,g=a0+c0|0,u0^=g<<9|g>>>23,g=u0+a0|0,l0^=g<<13|g>>>19,g=l0+u0|0,c0^=g<<18|g>>>14,g=_0+d0|0,Z0^=g<<7|g>>>25,g=Z0+_0|0,V0^=g<<9|g>>>23,g=V0+Z0|0,d0^=g<<13|g>>>19,g=d0+V0|0,_0^=g<<18|g>>>14,g=A0+N0|0,O0^=g<<7|g>>>25,g=O0+A0|0,I0^=g<<9|g>>>23,g=I0+O0|0,N0^=g<<13|g>>>19,g=N0+I0|0,A0^=g<<18|g>>>14,g=L1+B1|0,J1^=g<<7|g>>>25,g=J1+L1|0,R1^=g<<9|g>>>23,g=R1+J1|0,B1^=g<<13|g>>>19,g=B1+R1|0,L1^=g<<18|g>>>14;O[0]=c0>>>0&255,O[1]=c0>>>8&255,O[2]=c0>>>16&255,O[3]=c0>>>24&255,O[4]=_0>>>0&255,O[5]=_0>>>8&255,O[6]=_0>>>16&255,O[7]=_0>>>24&255,O[8]=A0>>>0&255,O[9]=A0>>>8&255,O[10]=A0>>>16&255,O[11]=A0>>>24&255,O[12]=L1>>>0&255,O[13]=L1>>>8&255,O[14]=L1>>>16&255,O[15]=L1>>>24&255,O[16]=Z0>>>0&255,O[17]=Z0>>>8&255,O[18]=Z0>>>16&255,O[19]=Z0>>>24&255,O[20]=V0>>>0&255,O[21]=V0>>>8&255,O[22]=V0>>>16&255,O[23]=V0>>>24&255,O[24]=I0>>>0&255,O[25]=I0>>>8&255,O[26]=I0>>>16&255,O[27]=I0>>>24&255,O[28]=N0>>>0&255,O[29]=N0>>>8&255,O[30]=N0>>>16&255,O[31]=N0>>>24&255}function l(O,T,M,z){x(O,T,M,z)}function u(O,T,M,z){h(O,T,M,z)}var n=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function c(O,T,M,z,L,r,t){var H0=new Uint8Array(16),M0=new Uint8Array(64),o0,v0;for(v0=0;v0<16;v0++)H0[v0]=0;for(v0=0;v0<8;v0++)H0[v0]=r[v0];while(L>=64){l(M0,H0,t,n);for(v0=0;v0<64;v0++)O[T+v0]=M[z+v0]^M0[v0];o0=1;for(v0=8;v0<16;v0++)o0=o0+(H0[v0]&255)|0,H0[v0]=o0&255,o0>>>=8;L-=64,T+=64,z+=64}if(L>0){l(M0,H0,t,n);for(v0=0;v0<L;v0++)O[T+v0]=M[z+v0]^M0[v0]}return 0}function p(O,T,M,z,L){var r=new Uint8Array(16),t=new Uint8Array(64),H0,M0;for(M0=0;M0<16;M0++)r[M0]=0;for(M0=0;M0<8;M0++)r[M0]=z[M0];while(M>=64){l(t,r,L,n);for(M0=0;M0<64;M0++)O[T+M0]=t[M0];H0=1;for(M0=8;M0<16;M0++)H0=H0+(r[M0]&255)|0,r[M0]=H0&255,H0>>>=8;M-=64,T+=64}if(M>0){l(t,r,L,n);for(M0=0;M0<M;M0++)O[T+M0]=t[M0]}return 0}function W0(O,T,M,z,L){var r=new Uint8Array(32);u(r,z,L,n);var t=new Uint8Array(8);for(var H0=0;H0<8;H0++)t[H0]=z[H0+16];return p(O,T,M,t,r)}function m(O,T,M,z,L,r,t){var H0=new Uint8Array(32);u(H0,r,t,n);var M0=new Uint8Array(8);for(var o0=0;o0<8;o0++)M0[o0]=r[o0+16];return c(O,T,M,z,L,M0,H0)}var Y0=function(O){this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.leftover=0,this.fin=0;var T,M,z,L,r,t,H0,M0;T=O[0]&255|(O[1]&255)<<8,this.r[0]=T&8191,M=O[2]&255|(O[3]&255)<<8,this.r[1]=(T>>>13|M<<3)&8191,z=O[4]&255|(O[5]&255)<<8,this.r[2]=(M>>>10|z<<6)&7939,L=O[6]&255|(O[7]&255)<<8,this.r[3]=(z>>>7|L<<9)&8191,r=O[8]&255|(O[9]&255)<<8,this.r[4]=(L>>>4|r<<12)&255,this.r[5]=r>>>1&8190,t=O[10]&255|(O[11]&255)<<8,this.r[6]=(r>>>14|t<<2)&8191,H0=O[12]&255|(O[13]&255)<<8,this.r[7]=(t>>>11|H0<<5)&8065,M0=O[14]&255|(O[15]&255)<<8,this.r[8]=(H0>>>8|M0<<8)&8191,this.r[9]=M0>>>5&127,this.pad[0]=O[16]&255|(O[17]&255)<<8,this.pad[1]=O[18]&255|(O[19]&255)<<8,this.pad[2]=O[20]&255|(O[21]&255)<<8,this.pad[3]=O[22]&255|(O[23]&255)<<8,this.pad[4]=O[24]&255|(O[25]&255)<<8,this.pad[5]=O[26]&255|(O[27]&255)<<8,this.pad[6]=O[28]&255|(O[29]&255)<<8,this.pad[7]=O[30]&255|(O[31]&255)<<8};Y0.prototype.blocks=function(O,T,M){var z=this.fin?0:2048,L,r,t,H0,M0,o0,v0,c1,m0,q1,H1,P1,D1,A1,w1,z1,c0,a0,u0,l0=this.h[0],d0=this.h[1],_0=this.h[2],Z0=this.h[3],V0=this.h[4],I0=this.h[5],N0=this.h[6],A0=this.h[7],O0=this.h[8],J1=this.h[9],R1=this.r[0],B1=this.r[1],L1=this.r[2],g=this.r[3],F1=this.r[4],p1=this.r[5],l1=this.r[6],E1=this.r[7],b1=this.r[8],m1=this.r[9];while(M>=16)L=O[T+0]&255|(O[T+1]&255)<<8,l0+=L&8191,r=O[T+2]&255|(O[T+3]&255)<<8,d0+=(L>>>13|r<<3)&8191,t=O[T+4]&255|(O[T+5]&255)<<8,_0+=(r>>>10|t<<6)&8191,H0=O[T+6]&255|(O[T+7]&255)<<8,Z0+=(t>>>7|H0<<9)&8191,M0=O[T+8]&255|(O[T+9]&255)<<8,V0+=(H0>>>4|M0<<12)&8191,I0+=M0>>>1&8191,o0=O[T+10]&255|(O[T+11]&255)<<8,N0+=(M0>>>14|o0<<2)&8191,v0=O[T+12]&255|(O[T+13]&255)<<8,A0+=(o0>>>11|v0<<5)&8191,c1=O[T+14]&255|(O[T+15]&255)<<8,O0+=(v0>>>8|c1<<8)&8191,J1+=c1>>>5|z,m0=0,q1=m0,q1+=l0*R1,q1+=d0*(5*m1),q1+=_0*(5*b1),q1+=Z0*(5*E1),q1+=V0*(5*l1),m0=q1>>>13,q1&=8191,q1+=I0*(5*p1),q1+=N0*(5*F1),q1+=A0*(5*g),q1+=O0*(5*L1),q1+=J1*(5*B1),m0+=q1>>>13,q1&=8191,H1=m0,H1+=l0*B1,H1+=d0*R1,H1+=_0*(5*m1),H1+=Z0*(5*b1),H1+=V0*(5*E1),m0=H1>>>13,H1&=8191,H1+=I0*(5*l1),H1+=N0*(5*p1),H1+=A0*(5*F1),H1+=O0*(5*g),H1+=J1*(5*L1),m0+=H1>>>13,H1&=8191,P1=m0,P1+=l0*L1,P1+=d0*B1,P1+=_0*R1,P1+=Z0*(5*m1),P1+=V0*(5*b1),m0=P1>>>13,P1&=8191,P1+=I0*(5*E1),P1+=N0*(5*l1),P1+=A0*(5*p1),P1+=O0*(5*F1),P1+=J1*(5*g),m0+=P1>>>13,P1&=8191,D1=m0,D1+=l0*g,D1+=d0*L1,D1+=_0*B1,D1+=Z0*R1,D1+=V0*(5*m1),m0=D1>>>13,D1&=8191,D1+=I0*(5*b1),D1+=N0*(5*E1),D1+=A0*(5*l1),D1+=O0*(5*p1),D1+=J1*(5*F1),m0+=D1>>>13,D1&=8191,A1=m0,A1+=l0*F1,A1+=d0*g,A1+=_0*L1,A1+=Z0*B1,A1+=V0*R1,m0=A1>>>13,A1&=8191,A1+=I0*(5*m1),A1+=N0*(5*b1),A1+=A0*(5*E1),A1+=O0*(5*l1),A1+=J1*(5*p1),m0+=A1>>>13,A1&=8191,w1=m0,w1+=l0*p1,w1+=d0*F1,w1+=_0*g,w1+=Z0*L1,w1+=V0*B1,m0=w1>>>13,w1&=8191,w1+=I0*R1,w1+=N0*(5*m1),w1+=A0*(5*b1),w1+=O0*(5*E1),w1+=J1*(5*l1),m0+=w1>>>13,w1&=8191,z1=m0,z1+=l0*l1,z1+=d0*p1,z1+=_0*F1,z1+=Z0*g,z1+=V0*L1,m0=z1>>>13,z1&=8191,z1+=I0*B1,z1+=N0*R1,z1+=A0*(5*m1),z1+=O0*(5*b1),z1+=J1*(5*E1),m0+=z1>>>13,z1&=8191,c0=m0,c0+=l0*E1,c0+=d0*l1,c0+=_0*p1,c0+=Z0*F1,c0+=V0*g,m0=c0>>>13,c0&=8191,c0+=I0*L1,c0+=N0*B1,c0+=A0*R1,c0+=O0*(5*m1),c0+=J1*(5*b1),m0+=c0>>>13,c0&=8191,a0=m0,a0+=l0*b1,a0+=d0*E1,a0+=_0*l1,a0+=Z0*p1,a0+=V0*F1,m0=a0>>>13,a0&=8191,a0+=I0*g,a0+=N0*L1,a0+=A0*B1,a0+=O0*R1,a0+=J1*(5*m1),m0+=a0>>>13,a0&=8191,u0=m0,u0+=l0*m1,u0+=d0*b1,u0+=_0*E1,u0+=Z0*l1,u0+=V0*p1,m0=u0>>>13,u0&=8191,u0+=I0*F1,u0+=N0*g,u0+=A0*L1,u0+=O0*B1,u0+=J1*R1,m0+=u0>>>13,u0&=8191,m0=(m0<<2)+m0|0,m0=m0+q1|0,q1=m0&8191,m0=m0>>>13,H1+=m0,l0=q1,d0=H1,_0=P1,Z0=D1,V0=A1,I0=w1,N0=z1,A0=c0,O0=a0,J1=u0,T+=16,M-=16;this.h[0]=l0,this.h[1]=d0,this.h[2]=_0,this.h[3]=Z0,this.h[4]=V0,this.h[5]=I0,this.h[6]=N0,this.h[7]=A0,this.h[8]=O0,this.h[9]=J1},Y0.prototype.finish=function(O,T){var M=new Uint16Array(10),z,L,r,t;if(this.leftover){t=this.leftover,this.buffer[t++]=1;for(;t<16;t++)this.buffer[t]=0;this.fin=1,this.blocks(this.buffer,0,16)}z=this.h[1]>>>13,this.h[1]&=8191;for(t=2;t<10;t++)this.h[t]+=z,z=this.h[t]>>>13,this.h[t]&=8191;this.h[0]+=z*5,z=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=z,z=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=z,M[0]=this.h[0]+5,z=M[0]>>>13,M[0]&=8191;for(t=1;t<10;t++)M[t]=this.h[t]+z,z=M[t]>>>13,M[t]&=8191;M[9]-=8192,L=(z^1)-1;for(t=0;t<10;t++)M[t]&=L;L=~L;for(t=0;t<10;t++)this.h[t]=this.h[t]&L|M[t];this.h[0]=(this.h[0]|this.h[1]<<13)&65535,this.h[1]=(this.h[1]>>>3|this.h[2]<<10)&65535,this.h[2]=(this.h[2]>>>6|this.h[3]<<7)&65535,this.h[3]=(this.h[3]>>>9|this.h[4]<<4)&65535,this.h[4]=(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14)&65535,this.h[5]=(this.h[6]>>>2|this.h[7]<<11)&65535,this.h[6]=(this.h[7]>>>5|this.h[8]<<8)&65535,this.h[7]=(this.h[8]>>>8|this.h[9]<<5)&65535,r=this.h[0]+this.pad[0],this.h[0]=r&65535;for(t=1;t<8;t++)r=(this.h[t]+this.pad[t]|0)+(r>>>16)|0,this.h[t]=r&65535;O[T+0]=this.h[0]>>>0&255,O[T+1]=this.h[0]>>>8&255,O[T+2]=this.h[1]>>>0&255,O[T+3]=this.h[1]>>>8&255,O[T+4]=this.h[2]>>>0&255,O[T+5]=this.h[2]>>>8&255,O[T+6]=this.h[3]>>>0&255,O[T+7]=this.h[3]>>>8&255,O[T+8]=this.h[4]>>>0&255,O[T+9]=this.h[4]>>>8&255,O[T+10]=this.h[5]>>>0&255,O[T+11]=this.h[5]>>>8&255,O[T+12]=this.h[6]>>>0&255,O[T+13]=this.h[6]>>>8&255,O[T+14]=this.h[7]>>>0&255,O[T+15]=this.h[7]>>>8&255},Y0.prototype.update=function(O,T,M){var z,L;if(this.leftover){if(L=16-this.leftover,L>M)L=M;for(z=0;z<L;z++)this.buffer[this.leftover+z]=O[T+z];if(M-=L,T+=L,this.leftover+=L,this.leftover<16)return;this.blocks(this.buffer,0,16),this.leftover=0}if(M>=16)L=M-M%16,this.blocks(O,T,L),T+=L,M-=L;if(M){for(z=0;z<M;z++)this.buffer[this.leftover+z]=O[T+z];this.leftover+=M}};function U0(O,T,M,z,L,r){var t=new Y0(r);return t.update(M,z,L),t.finish(O,T),0}function y(O,T,M,z,L,r){var t=new Uint8Array(16);return U0(t,0,M,z,L,r),C(O,T,t,0)}function o(O,T,M,z,L){var r;if(M<32)return-1;m(O,0,T,0,M,z,L),U0(O,16,O,32,M-32,O);for(r=0;r<16;r++)O[r]=0;return 0}function B(O,T,M,z,L){var r,t=new Uint8Array(32);if(M<32)return-1;if(W0(t,0,32,z,L),y(T,16,T,32,M-32,t)!==0)return-1;m(O,0,T,0,M,z,L);for(r=0;r<32;r++)O[r]=0;return 0}function R(O,T){var M;for(M=0;M<16;M++)O[M]=T[M]|0}function _(O){var T,M,z=1;for(T=0;T<16;T++)M=O[T]+z+65535,z=Math.floor(M/65536),O[T]=M-z*65536;O[0]+=z-1+37*(z-1)}function S(O,T,M){var z,L=~(M-1);for(var r=0;r<16;r++)z=L&(O[r]^T[r]),O[r]^=z,T[r]^=z}function v(O,T){var M,z,L,r=G(),t=G();for(M=0;M<16;M++)t[M]=T[M];_(t),_(t),_(t);for(z=0;z<2;z++){r[0]=t[0]-65517;for(M=1;M<15;M++)r[M]=t[M]-65535-(r[M-1]>>16&1),r[M-1]&=65535;r[15]=t[15]-32767-(r[14]>>16&1),L=r[15]>>16&1,r[14]&=65535,S(t,r,1-L)}for(M=0;M<16;M++)O[2*M]=t[M]&255,O[2*M+1]=t[M]>>8}function P(O,T){var M=new Uint8Array(32),z=new Uint8Array(32);return v(M,O),v(z,T),D(M,0,z,0)}function E(O){var T=new Uint8Array(32);return v(T,O),T[0]&1}function b(O,T){var M;for(M=0;M<16;M++)O[M]=T[2*M]+(T[2*M+1]<<8);O[15]&=32767}function k(O,T,M){for(var z=0;z<16;z++)O[z]=T[z]+M[z]}function f(O,T,M){for(var z=0;z<16;z++)O[z]=T[z]-M[z]}function e(O,T,M){var z,L,r=0,t=0,H0=0,M0=0,o0=0,v0=0,c1=0,m0=0,q1=0,H1=0,P1=0,D1=0,A1=0,w1=0,z1=0,c0=0,a0=0,u0=0,l0=0,d0=0,_0=0,Z0=0,V0=0,I0=0,N0=0,A0=0,O0=0,J1=0,R1=0,B1=0,L1=0,g=M[0],F1=M[1],p1=M[2],l1=M[3],E1=M[4],b1=M[5],m1=M[6],F8=M[7],t1=M[8],D8=M[9],M8=M[10],T8=M[11],u8=M[12],U9=M[13],q9=M[14],N9=M[15];z=T[0],r+=z*g,t+=z*F1,H0+=z*p1,M0+=z*l1,o0+=z*E1,v0+=z*b1,c1+=z*m1,m0+=z*F8,q1+=z*t1,H1+=z*D8,P1+=z*M8,D1+=z*T8,A1+=z*u8,w1+=z*U9,z1+=z*q9,c0+=z*N9,z=T[1],t+=z*g,H0+=z*F1,M0+=z*p1,o0+=z*l1,v0+=z*E1,c1+=z*b1,m0+=z*m1,q1+=z*F8,H1+=z*t1,P1+=z*D8,D1+=z*M8,A1+=z*T8,w1+=z*u8,z1+=z*U9,c0+=z*q9,a0+=z*N9,z=T[2],H0+=z*g,M0+=z*F1,o0+=z*p1,v0+=z*l1,c1+=z*E1,m0+=z*b1,q1+=z*m1,H1+=z*F8,P1+=z*t1,D1+=z*D8,A1+=z*M8,w1+=z*T8,z1+=z*u8,c0+=z*U9,a0+=z*q9,u0+=z*N9,z=T[3],M0+=z*g,o0+=z*F1,v0+=z*p1,c1+=z*l1,m0+=z*E1,q1+=z*b1,H1+=z*m1,P1+=z*F8,D1+=z*t1,A1+=z*D8,w1+=z*M8,z1+=z*T8,c0+=z*u8,a0+=z*U9,u0+=z*q9,l0+=z*N9,z=T[4],o0+=z*g,v0+=z*F1,c1+=z*p1,m0+=z*l1,q1+=z*E1,H1+=z*b1,P1+=z*m1,D1+=z*F8,A1+=z*t1,w1+=z*D8,z1+=z*M8,c0+=z*T8,a0+=z*u8,u0+=z*U9,l0+=z*q9,d0+=z*N9,z=T[5],v0+=z*g,c1+=z*F1,m0+=z*p1,q1+=z*l1,H1+=z*E1,P1+=z*b1,D1+=z*m1,A1+=z*F8,w1+=z*t1,z1+=z*D8,c0+=z*M8,a0+=z*T8,u0+=z*u8,l0+=z*U9,d0+=z*q9,_0+=z*N9,z=T[6],c1+=z*g,m0+=z*F1,q1+=z*p1,H1+=z*l1,P1+=z*E1,D1+=z*b1,A1+=z*m1,w1+=z*F8,z1+=z*t1,c0+=z*D8,a0+=z*M8,u0+=z*T8,l0+=z*u8,d0+=z*U9,_0+=z*q9,Z0+=z*N9,z=T[7],m0+=z*g,q1+=z*F1,H1+=z*p1,P1+=z*l1,D1+=z*E1,A1+=z*b1,w1+=z*m1,z1+=z*F8,c0+=z*t1,a0+=z*D8,u0+=z*M8,l0+=z*T8,d0+=z*u8,_0+=z*U9,Z0+=z*q9,V0+=z*N9,z=T[8],q1+=z*g,H1+=z*F1,P1+=z*p1,D1+=z*l1,A1+=z*E1,w1+=z*b1,z1+=z*m1,c0+=z*F8,a0+=z*t1,u0+=z*D8,l0+=z*M8,d0+=z*T8,_0+=z*u8,Z0+=z*U9,V0+=z*q9,I0+=z*N9,z=T[9],H1+=z*g,P1+=z*F1,D1+=z*p1,A1+=z*l1,w1+=z*E1,z1+=z*b1,c0+=z*m1,a0+=z*F8,u0+=z*t1,l0+=z*D8,d0+=z*M8,_0+=z*T8,Z0+=z*u8,V0+=z*U9,I0+=z*q9,N0+=z*N9,z=T[10],P1+=z*g,D1+=z*F1,A1+=z*p1,w1+=z*l1,z1+=z*E1,c0+=z*b1,a0+=z*m1,u0+=z*F8,l0+=z*t1,d0+=z*D8,_0+=z*M8,Z0+=z*T8,V0+=z*u8,I0+=z*U9,N0+=z*q9,A0+=z*N9,z=T[11],D1+=z*g,A1+=z*F1,w1+=z*p1,z1+=z*l1,c0+=z*E1,a0+=z*b1,u0+=z*m1,l0+=z*F8,d0+=z*t1,_0+=z*D8,Z0+=z*M8,V0+=z*T8,I0+=z*u8,N0+=z*U9,A0+=z*q9,O0+=z*N9,z=T[12],A1+=z*g,w1+=z*F1,z1+=z*p1,c0+=z*l1,a0+=z*E1,u0+=z*b1,l0+=z*m1,d0+=z*F8,_0+=z*t1,Z0+=z*D8,V0+=z*M8,I0+=z*T8,N0+=z*u8,A0+=z*U9,O0+=z*q9,J1+=z*N9,z=T[13],w1+=z*g,z1+=z*F1,c0+=z*p1,a0+=z*l1,u0+=z*E1,l0+=z*b1,d0+=z*m1,_0+=z*F8,Z0+=z*t1,V0+=z*D8,I0+=z*M8,N0+=z*T8,A0+=z*u8,O0+=z*U9,J1+=z*q9,R1+=z*N9,z=T[14],z1+=z*g,c0+=z*F1,a0+=z*p1,u0+=z*l1,l0+=z*E1,d0+=z*b1,_0+=z*m1,Z0+=z*F8,V0+=z*t1,I0+=z*D8,N0+=z*M8,A0+=z*T8,O0+=z*u8,J1+=z*U9,R1+=z*q9,B1+=z*N9,z=T[15],c0+=z*g,a0+=z*F1,u0+=z*p1,l0+=z*l1,d0+=z*E1,_0+=z*b1,Z0+=z*m1,V0+=z*F8,I0+=z*t1,N0+=z*D8,A0+=z*M8,O0+=z*T8,J1+=z*u8,R1+=z*U9,B1+=z*q9,L1+=z*N9,r+=38*a0,t+=38*u0,H0+=38*l0,M0+=38*d0,o0+=38*_0,v0+=38*Z0,c1+=38*V0,m0+=38*I0,q1+=38*N0,H1+=38*A0,P1+=38*O0,D1+=38*J1,A1+=38*R1,w1+=38*B1,z1+=38*L1,L=1,z=r+L+65535,L=Math.floor(z/65536),r=z-L*65536,z=t+L+65535,L=Math.floor(z/65536),t=z-L*65536,z=H0+L+65535,L=Math.floor(z/65536),H0=z-L*65536,z=M0+L+65535,L=Math.floor(z/65536),M0=z-L*65536,z=o0+L+65535,L=Math.floor(z/65536),o0=z-L*65536,z=v0+L+65535,L=Math.floor(z/65536),v0=z-L*65536,z=c1+L+65535,L=Math.floor(z/65536),c1=z-L*65536,z=m0+L+65535,L=Math.floor(z/65536),m0=z-L*65536,z=q1+L+65535,L=Math.floor(z/65536),q1=z-L*65536,z=H1+L+65535,L=Math.floor(z/65536),H1=z-L*65536,z=P1+L+65535,L=Math.floor(z/65536),P1=z-L*65536,z=D1+L+65535,L=Math.floor(z/65536),D1=z-L*65536,z=A1+L+65535,L=Math.floor(z/65536),A1=z-L*65536,z=w1+L+65535,L=Math.floor(z/65536),w1=z-L*65536,z=z1+L+65535,L=Math.floor(z/65536),z1=z-L*65536,z=c0+L+65535,L=Math.floor(z/65536),c0=z-L*65536,r+=L-1+37*(L-1),L=1,z=r+L+65535,L=Math.floor(z/65536),r=z-L*65536,z=t+L+65535,L=Math.floor(z/65536),t=z-L*65536,z=H0+L+65535,L=Math.floor(z/65536),H0=z-L*65536,z=M0+L+65535,L=Math.floor(z/65536),M0=z-L*65536,z=o0+L+65535,L=Math.floor(z/65536),o0=z-L*65536,z=v0+L+65535,L=Math.floor(z/65536),v0=z-L*65536,z=c1+L+65535,L=Math.floor(z/65536),c1=z-L*65536,z=m0+L+65535,L=Math.floor(z/65536),m0=z-L*65536,z=q1+L+65535,L=Math.floor(z/65536),q1=z-L*65536,z=H1+L+65535,L=Math.floor(z/65536),H1=z-L*65536,z=P1+L+65535,L=Math.floor(z/65536),P1=z-L*65536,z=D1+L+65535,L=Math.floor(z/65536),D1=z-L*65536,z=A1+L+65535,L=Math.floor(z/65536),A1=z-L*65536,z=w1+L+65535,L=Math.floor(z/65536),w1=z-L*65536,z=z1+L+65535,L=Math.floor(z/65536),z1=z-L*65536,z=c0+L+65535,L=Math.floor(z/65536),c0=z-L*65536,r+=L-1+37*(L-1),O[0]=r,O[1]=t,O[2]=H0,O[3]=M0,O[4]=o0,O[5]=v0,O[6]=c1,O[7]=m0,O[8]=q1,O[9]=H1,O[10]=P1,O[11]=D1,O[12]=A1,O[13]=w1,O[14]=z1,O[15]=c0}function q0(O,T){e(O,T,T)}function Q0(O,T){var M=G(),z;for(z=0;z<16;z++)M[z]=T[z];for(z=253;z>=0;z--)if(q0(M,M),z!==2&&z!==4)e(M,M,T);for(z=0;z<16;z++)O[z]=M[z]}function $0(O,T){var M=G(),z;for(z=0;z<16;z++)M[z]=T[z];for(z=250;z>=0;z--)if(q0(M,M),z!==1)e(M,M,T);for(z=0;z<16;z++)O[z]=M[z]}function D0(O,T,M){var z=new Uint8Array(32),L=new Float64Array(80),r,t,H0=G(),M0=G(),o0=G(),v0=G(),c1=G(),m0=G();for(t=0;t<31;t++)z[t]=T[t];z[31]=T[31]&127|64,z[0]&=248,b(L,M);for(t=0;t<16;t++)M0[t]=L[t],v0[t]=H0[t]=o0[t]=0;H0[0]=v0[0]=1;for(t=254;t>=0;--t)r=z[t>>>3]>>>(t&7)&1,S(H0,M0,r),S(o0,v0,r),k(c1,H0,o0),f(H0,H0,o0),k(o0,M0,v0),f(M0,M0,v0),q0(v0,c1),q0(m0,H0),e(H0,o0,H0),e(o0,M0,c1),k(c1,H0,o0),f(H0,H0,o0),q0(M0,H0),f(o0,v0,m0),e(H0,o0,J),k(H0,H0,v0),e(o0,o0,H0),e(H0,v0,m0),e(v0,M0,L),q0(M0,c1),S(H0,M0,r),S(o0,v0,r);for(t=0;t<16;t++)L[t+16]=H0[t],L[t+32]=o0[t],L[t+48]=M0[t],L[t+64]=v0[t];var q1=L.subarray(32),H1=L.subarray(16);return Q0(q1,q1),e(H1,H1,q1),v(O,H1),0}function x0(O,T){return D0(O,T,Z)}function N1(O,T){return X(T,32),x0(O,T)}function U1(O,T,M){var z=new Uint8Array(32);return D0(z,M,T),u(O,Y,z,n)}var J0=o,B0=B;function h0(O,T,M,z,L,r){var t=new Uint8Array(32);return U1(t,L,r),J0(O,T,M,z,t)}function Y1(O,T,M,z,L,r){var t=new Uint8Array(32);return U1(t,L,r),B0(O,T,M,z,t)}var w8=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function x1(O,T,M,z){var L=new Int32Array(16),r=new Int32Array(16),t,H0,M0,o0,v0,c1,m0,q1,H1,P1,D1,A1,w1,z1,c0,a0,u0,l0,d0,_0,Z0,V0,I0,N0,A0,O0,J1=O[0],R1=O[1],B1=O[2],L1=O[3],g=O[4],F1=O[5],p1=O[6],l1=O[7],E1=T[0],b1=T[1],m1=T[2],F8=T[3],t1=T[4],D8=T[5],M8=T[6],T8=T[7],u8=0;while(z>=128){for(d0=0;d0<16;d0++)_0=8*d0+u8,L[d0]=M[_0+0]<<24|M[_0+1]<<16|M[_0+2]<<8|M[_0+3],r[d0]=M[_0+4]<<24|M[_0+5]<<16|M[_0+6]<<8|M[_0+7];for(d0=0;d0<80;d0++)if(t=J1,H0=R1,M0=B1,o0=L1,v0=g,c1=F1,m0=p1,q1=l1,H1=E1,P1=b1,D1=m1,A1=F8,w1=t1,z1=D8,c0=M8,a0=T8,Z0=l1,V0=T8,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=(g>>>14|t1<<18)^(g>>>18|t1<<14)^(t1>>>9|g<<23),V0=(t1>>>14|g<<18)^(t1>>>18|g<<14)^(g>>>9|t1<<23),I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,Z0=g&F1^~g&p1,V0=t1&D8^~t1&M8,I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,Z0=w8[d0*2],V0=w8[d0*2+1],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,Z0=L[d0%16],V0=r[d0%16],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,u0=A0&65535|O0<<16,l0=I0&65535|N0<<16,Z0=u0,V0=l0,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=(J1>>>28|E1<<4)^(E1>>>2|J1<<30)^(E1>>>7|J1<<25),V0=(E1>>>28|J1<<4)^(J1>>>2|E1<<30)^(J1>>>7|E1<<25),I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,Z0=J1&R1^J1&B1^R1&B1,V0=E1&b1^E1&m1^b1&m1,I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,q1=A0&65535|O0<<16,a0=I0&65535|N0<<16,Z0=o0,V0=A1,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=u0,V0=l0,I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,o0=A0&65535|O0<<16,A1=I0&65535|N0<<16,R1=t,B1=H0,L1=M0,g=o0,F1=v0,p1=c1,l1=m0,J1=q1,b1=H1,m1=P1,F8=D1,t1=A1,D8=w1,M8=z1,T8=c0,E1=a0,d0%16===15)for(_0=0;_0<16;_0++)Z0=L[_0],V0=r[_0],I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=L[(_0+9)%16],V0=r[(_0+9)%16],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,u0=L[(_0+1)%16],l0=r[(_0+1)%16],Z0=(u0>>>1|l0<<31)^(u0>>>8|l0<<24)^u0>>>7,V0=(l0>>>1|u0<<31)^(l0>>>8|u0<<24)^(l0>>>7|u0<<25),I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,u0=L[(_0+14)%16],l0=r[(_0+14)%16],Z0=(u0>>>19|l0<<13)^(l0>>>29|u0<<3)^u0>>>6,V0=(l0>>>19|u0<<13)^(u0>>>29|l0<<3)^(l0>>>6|u0<<26),I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,L[_0]=A0&65535|O0<<16,r[_0]=I0&65535|N0<<16;Z0=J1,V0=E1,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[0],V0=T[0],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,O[0]=J1=A0&65535|O0<<16,T[0]=E1=I0&65535|N0<<16,Z0=R1,V0=b1,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[1],V0=T[1],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,O[1]=R1=A0&65535|O0<<16,T[1]=b1=I0&65535|N0<<16,Z0=B1,V0=m1,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[2],V0=T[2],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,O[2]=B1=A0&65535|O0<<16,T[2]=m1=I0&65535|N0<<16,Z0=L1,V0=F8,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[3],V0=T[3],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,O[3]=L1=A0&65535|O0<<16,T[3]=F8=I0&65535|N0<<16,Z0=g,V0=t1,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[4],V0=T[4],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,O[4]=g=A0&65535|O0<<16,T[4]=t1=I0&65535|N0<<16,Z0=F1,V0=D8,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[5],V0=T[5],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,O[5]=F1=A0&65535|O0<<16,T[5]=D8=I0&65535|N0<<16,Z0=p1,V0=M8,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[6],V0=T[6],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,O[6]=p1=A0&65535|O0<<16,T[6]=M8=I0&65535|N0<<16,Z0=l1,V0=T8,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[7],V0=T[7],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,O[7]=l1=A0&65535|O0<<16,T[7]=T8=I0&65535|N0<<16,u8+=128,z-=128}return z}function E0(O,T,M){var z=new Int32Array(8),L=new Int32Array(8),r=new Uint8Array(256),t,H0=M;z[0]=1779033703,z[1]=3144134277,z[2]=1013904242,z[3]=2773480762,z[4]=1359893119,z[5]=2600822924,z[6]=528734635,z[7]=1541459225,L[0]=4089235720,L[1]=2227873595,L[2]=4271175723,L[3]=1595750129,L[4]=2917565137,L[5]=725511199,L[6]=4215389547,L[7]=327033209,x1(z,L,T,M),M%=128;for(t=0;t<M;t++)r[t]=T[H0-M+t];r[M]=128,M=256-128*(M<112?1:0),r[M-9]=0,I(r,M-8,H0/536870912|0,H0<<3),x1(z,L,r,M);for(t=0;t<8;t++)I(O,8*t,z[t],L[t]);return 0}function n0(O,T){var M=G(),z=G(),L=G(),r=G(),t=G(),H0=G(),M0=G(),o0=G(),v0=G();f(M,O[1],O[0]),f(v0,T[1],T[0]),e(M,M,v0),k(z,O[0],O[1]),k(v0,T[0],T[1]),e(z,z,v0),e(L,O[3],T[3]),e(L,L,q),e(r,O[2],T[2]),k(r,r,r),f(t,z,M),f(H0,r,L),k(M0,r,L),k(o0,z,M),e(O[0],t,H0),e(O[1],o0,M0),e(O[2],M0,H0),e(O[3],t,o0)}function O1(O,T,M){var z;for(z=0;z<4;z++)S(O[z],T[z],M)}function $1(O,T){var M=G(),z=G(),L=G();Q0(L,T[2]),e(M,T[0],L),e(z,T[1],L),v(O,z),O[31]^=E(M)<<7}function U8(O,T,M){var z,L;R(O[0],V),R(O[1],Q),R(O[2],Q),R(O[3],V);for(L=255;L>=0;--L)z=M[L/8|0]>>(L&7)&1,O1(O,T,z),n0(T,O),n0(O,O),O1(O,T,z)}function H8(O,T){var M=[G(),G(),G(),G()];R(M[0],N),R(M[1],A),R(M[2],Q),e(M[3],N,A),U8(O,M,T)}function A8(O,T,M){var z=new Uint8Array(64),L=[G(),G(),G(),G()],r;if(!M)X(T,32);E0(z,T,32),z[0]&=248,z[31]&=127,z[31]|=64,H8(L,z),$1(O,L);for(r=0;r<32;r++)T[r+32]=O[r];return 0}var K1=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function j8(O,T){var M,z,L,r;for(z=63;z>=32;--z){M=0;for(L=z-32,r=z-12;L<r;++L)T[L]+=M-16*T[z]*K1[L-(z-32)],M=Math.floor((T[L]+128)/256),T[L]-=M*256;T[L]+=M,T[z]=0}M=0;for(L=0;L<32;L++)T[L]+=M-(T[31]>>4)*K1[L],M=T[L]>>8,T[L]&=255;for(L=0;L<32;L++)T[L]-=M*K1[L];for(z=0;z<32;z++)T[z+1]+=T[z]>>8,O[z]=T[z]&255}function k5(O){var T=new Float64Array(64),M;for(M=0;M<64;M++)T[M]=O[M];for(M=0;M<64;M++)O[M]=0;j8(O,T)}function HW(O,T,M,z){var L=new Uint8Array(64),r=new Uint8Array(64),t=new Uint8Array(64),H0,M0,o0=new Float64Array(64),v0=[G(),G(),G(),G()];E0(L,z,32),L[0]&=248,L[31]&=127,L[31]|=64;var c1=M+64;for(H0=0;H0<M;H0++)O[64+H0]=T[H0];for(H0=0;H0<32;H0++)O[32+H0]=L[32+H0];E0(t,O.subarray(32),M+32),k5(t),H8(v0,t),$1(O,v0);for(H0=32;H0<64;H0++)O[H0]=z[H0];E0(r,O,M+64),k5(r);for(H0=0;H0<64;H0++)o0[H0]=0;for(H0=0;H0<32;H0++)o0[H0]=t[H0];for(H0=0;H0<32;H0++)for(M0=0;M0<32;M0++)o0[H0+M0]+=r[H0]*L[M0];return j8(O.subarray(32),o0),c1}function QZ(O,T){var M=G(),z=G(),L=G(),r=G(),t=G(),H0=G(),M0=G();if(R(O[2],Q),b(O[1],T),q0(L,O[1]),e(r,L,U),f(L,L,O[2]),k(r,O[2],r),q0(t,r),q0(H0,t),e(M0,H0,t),e(M,M0,L),e(M,M,r),$0(M,M),e(M,M,L),e(M,M,r),e(M,M,r),e(O[0],M,r),q0(z,O[0]),e(z,z,r),P(z,L))e(O[0],O[0],H);if(q0(z,O[0]),e(z,z,r),P(z,L))return-1;if(E(O[0])===T[31]>>7)f(O[0],V,O[0]);return e(O[3],O[0],O[1]),0}function i7(O,T,M,z){var L,r=new Uint8Array(32),t=new Uint8Array(64),H0=[G(),G(),G(),G()],M0=[G(),G(),G(),G()];if(M<64)return-1;if(QZ(M0,z))return-1;for(L=0;L<M;L++)O[L]=T[L];for(L=0;L<32;L++)O[L+32]=z[L];if(E0(t,O,M),k5(t),U8(H0,M0,t),H8(M0,T.subarray(32)),n0(H0,M0),$1(r,H0),M-=64,D(T,0,r,0)){for(L=0;L<M;L++)O[L]=0;return-1}for(L=0;L<M;L++)O[L]=T[L+64];return M}var i=32,$=24,d=32,X0=16,w0=32,e0=32,C1=32,r0=32,K0=32,F0=$,g0=d,k0=X0,Q1=64,X1=32,k1=64,n1=32,Q7=64;W.lowlevel={crypto_core_hsalsa20:u,crypto_stream_xor:m,crypto_stream:W0,crypto_stream_salsa20_xor:c,crypto_stream_salsa20:p,crypto_onetimeauth:U0,crypto_onetimeauth_verify:y,crypto_verify_16:C,crypto_verify_32:D,crypto_secretbox:o,crypto_secretbox_open:B,crypto_scalarmult:D0,crypto_scalarmult_base:x0,crypto_box_beforenm:U1,crypto_box_afternm:J0,crypto_box:h0,crypto_box_open:Y1,crypto_box_keypair:N1,crypto_hash:E0,crypto_sign:HW,crypto_sign_keypair:A8,crypto_sign_open:i7,crypto_secretbox_KEYBYTES:i,crypto_secretbox_NONCEBYTES:$,crypto_secretbox_ZEROBYTES:d,crypto_secretbox_BOXZEROBYTES:X0,crypto_scalarmult_BYTES:w0,crypto_scalarmult_SCALARBYTES:e0,crypto_box_PUBLICKEYBYTES:C1,crypto_box_SECRETKEYBYTES:r0,crypto_box_BEFORENMBYTES:K0,crypto_box_NONCEBYTES:F0,crypto_box_ZEROBYTES:g0,crypto_box_BOXZEROBYTES:k0,crypto_sign_BYTES:Q1,crypto_sign_PUBLICKEYBYTES:X1,crypto_sign_SECRETKEYBYTES:k1,crypto_sign_SEEDBYTES:n1,crypto_hash_BYTES:Q7,gf:G,D:U,L:K1,pack25519:v,unpack25519:b,M:e,A:k,S:q0,Z:f,pow2523:$0,add:n0,set25519:R,modL:j8,scalarmult:U8,scalarbase:H8};function AW(O,T){if(O.length!==i)throw Error("bad key size");if(T.length!==$)throw Error("bad nonce size")}function JZ(O,T){if(O.length!==C1)throw Error("bad public key size");if(T.length!==r0)throw Error("bad secret key size")}function J9(){for(var O=0;O<arguments.length;O++)if(!(arguments[O]instanceof Uint8Array))throw TypeError("unexpected type, use Uint8Array")}function kJ(O){for(var T=0;T<O.length;T++)O[T]=0}W.randomBytes=function(O){var T=new Uint8Array(O);return X(T,O),T},W.secretbox=function(O,T,M){J9(O,T,M),AW(M,T);var z=new Uint8Array(d+O.length),L=new Uint8Array(z.length);for(var r=0;r<O.length;r++)z[r+d]=O[r];return o(L,z,z.length,T,M),L.subarray(X0)},W.secretbox.open=function(O,T,M){J9(O,T,M),AW(M,T);var z=new Uint8Array(X0+O.length),L=new Uint8Array(z.length);for(var r=0;r<O.length;r++)z[r+X0]=O[r];if(z.length<32)return null;if(B(L,z,z.length,T,M)!==0)return null;return L.subarray(d)},W.secretbox.keyLength=i,W.secretbox.nonceLength=$,W.secretbox.overheadLength=X0,W.scalarMult=function(O,T){if(J9(O,T),O.length!==e0)throw Error("bad n size");if(T.length!==w0)throw Error("bad p size");var M=new Uint8Array(w0);return D0(M,O,T),M},W.scalarMult.base=function(O){if(J9(O),O.length!==e0)throw Error("bad n size");var T=new Uint8Array(w0);return x0(T,O),T},W.scalarMult.scalarLength=e0,W.scalarMult.groupElementLength=w0,W.box=function(O,T,M,z){var L=W.box.before(M,z);return W.secretbox(O,T,L)},W.box.before=function(O,T){J9(O,T),JZ(O,T);var M=new Uint8Array(K0);return U1(M,O,T),M},W.box.after=W.secretbox,W.box.open=function(O,T,M,z){var L=W.box.before(M,z);return W.secretbox.open(O,T,L)},W.box.open.after=W.secretbox.open,W.box.keyPair=function(){var O=new Uint8Array(C1),T=new Uint8Array(r0);return N1(O,T),{publicKey:O,secretKey:T}},W.box.keyPair.fromSecretKey=function(O){if(J9(O),O.length!==r0)throw Error("bad secret key size");var T=new Uint8Array(C1);return x0(T,O),{publicKey:T,secretKey:new Uint8Array(O)}},W.box.publicKeyLength=C1,W.box.secretKeyLength=r0,W.box.sharedKeyLength=K0,W.box.nonceLength=F0,W.box.overheadLength=W.secretbox.overheadLength,W.sign=function(O,T){if(J9(O,T),T.length!==k1)throw Error("bad secret key size");var M=new Uint8Array(Q1+O.length);return HW(M,O,O.length,T),M},W.sign.open=function(O,T){if(J9(O,T),T.length!==X1)throw Error("bad public key size");var M=new Uint8Array(O.length),z=i7(M,O,O.length,T);if(z<0)return null;var L=new Uint8Array(z);for(var r=0;r<L.length;r++)L[r]=M[r];return L},W.sign.detached=function(O,T){var M=W.sign(O,T),z=new Uint8Array(Q1);for(var L=0;L<z.length;L++)z[L]=M[L];return z},W.sign.detached.verify=function(O,T,M){if(J9(O,T,M),T.length!==Q1)throw Error("bad signature size");if(M.length!==X1)throw Error("bad public key size");var z=new Uint8Array(Q1+O.length),L=new Uint8Array(Q1+O.length),r;for(r=0;r<Q1;r++)z[r]=T[r];for(r=0;r<O.length;r++)z[r+Q1]=O[r];return i7(L,z,z.length,M)>=0},W.sign.keyPair=function(){var O=new Uint8Array(X1),T=new Uint8Array(k1);return A8(O,T),{publicKey:O,secretKey:T}},W.sign.keyPair.fromSecretKey=function(O){if(J9(O),O.length!==k1)throw Error("bad secret key size");var T=new Uint8Array(X1);for(var M=0;M<T.length;M++)T[M]=O[32+M];return{publicKey:T,secretKey:new Uint8Array(O)}},W.sign.keyPair.fromSeed=function(O){if(J9(O),O.length!==n1)throw Error("bad seed size");var T=new Uint8Array(X1),M=new Uint8Array(k1);for(var z=0;z<32;z++)M[z]=O[z];return A8(T,M,!0),{publicKey:T,secretKey:M}},W.sign.publicKeyLength=X1,W.sign.secretKeyLength=k1,W.sign.seedLength=n1,W.sign.signatureLength=Q1,W.hash=function(O){J9(O);var T=new Uint8Array(Q7);return E0(T,O,O.length),T},W.hash.hashLength=Q7,W.verify=function(O,T){if(J9(O,T),O.length===0||T.length===0)return!1;if(O.length!==T.length)return!1;return w(O,0,T,0,O.length)===0?!0:!1},W.setPRNG=function(O){X=O},function(){var O=typeof self<"u"?self.crypto||self.msCrypto:null;if(O&&O.getRandomValues){var T=65536;W.setPRNG(function(M,z){var L,r=new Uint8Array(z);for(L=0;L<z;L+=T)O.getRandomValues(r.subarray(L,L+Math.min(z-L,T)));for(L=0;L<z;L++)M[L]=r[L];kJ(r)})}else if(O=S8("crypto"),O&&O.randomBytes)W.setPRNG(function(M,z){var L,r=O.randomBytes(z);for(L=0;L<z;L++)M[L]=r[L];kJ(r)})}()})(typeof SU<"u"&&ye?ye:self.nacl=self.nacl||{})});var Bz=Z1((JT)=>{Object.defineProperty(JT,"__esModule",{value:!0});class QT{constructor(W,G=0,X=0){this.start=G,this.end=X>G?X:G,this.buf=W}get length(){return this.buf.length}reset(W=0,G=0){if(this.start=W,G>=this.start)this.end=G;else if(this.end<this.start)this.end=this.start;return this}walk(W){return this.start=this.end,this.end+=W,this}mustHas(W,G="Too few bytes to parse."){let X=this.end+W;if(X>this.buf.length){let Y=Error(G);throw Y.available=this.buf.length,Y.requested=X,Y}return this.walk(0),this}mustWalk(W,G){return this.mustHas(W,G),this.walk(W),this}}JT.BufferVisitor=QT});var HT=Z1((NT)=>{Object.defineProperty(NT,"__esModule",{value:!0});var UT=S8("util"),qT=64,$z="-----BEGIN ",Fz="-----END ",bZ="-----",Ez="Proc-Type";class Sz{static parse(W){let G=[],X=W.toString("utf8").split(`
|
|
8
8
|
`).map((Y)=>Y.trim()).filter((Y)=>Y!==""&&!Y.startsWith("#"));while(X.length>0)G.push(jb(X));if(G.length===0)throw Error("PEM: no block");return G}constructor(W,G){this.type=W,this.body=G,this.headers=Object.create(null)}get procType(){return this.getHeader(Ez)}getHeader(W){let G=this.headers[W];return G==null?"":G}setHeader(W,G){if(W.includes(":"))throw Error("pem: cannot encode a header key that contains a colon");if(W===""||G==="")throw Error("pem: invalid header key or value");this.headers[W]=G}toString(){let W=$z+this.type+bZ+`
|
|
9
9
|
`,G=Object.keys(this.headers);if(G.length>0){let Z=this.procType;if(Z!=="")W+=`${Ez}: ${Z}
|
|
10
10
|
`;G.sort();for(let V of G)if(V!==Ez)W+=`${V}: ${this.headers[V]}
|
|
@@ -24,7 +24,7 @@ MERCHANTABLITY OR NON-INFRINGEMENT.
|
|
|
24
24
|
|
|
25
25
|
See the Apache Version 2.0 License for specific language governing permissions
|
|
26
26
|
and limitations under the License.
|
|
27
|
-
***************************************************************************** */var ST;(function(W){(function(G){var X=typeof globalThis==="object"?globalThis:typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:J(),Y=Z(W);if(typeof X.Reflect<"u")Y=Z(X.Reflect,Y);if(G(Y,X),typeof X.Reflect>"u")X.Reflect=W;function Z(U,q){return function(N,A){if(Object.defineProperty(U,N,{configurable:!0,writable:!0,value:A}),q)q(N,A)}}function V(){try{return Function("return this;")()}catch(U){}}function Q(){try{return(0,eval)("(function() { return this; })()")}catch(U){}}function J(){return V()||Q()}})(function(G,X){var Y=Object.prototype.hasOwnProperty,Z=typeof Symbol==="function",V=Z&&typeof Symbol.toPrimitive<"u"?Symbol.toPrimitive:"@@toPrimitive",Q=Z&&typeof Symbol.iterator<"u"?Symbol.iterator:"@@iterator",J=typeof Object.create==="function",U={__proto__:[]}instanceof Array,q=!J&&!U,N={create:J?function(){return i7(Object.create(null))}:U?function(){return i7({__proto__:null})}:function(){return i7({})},has:q?function(i,$){return Y.call(i,$)}:function(i,$){return $ in i},get:q?function(i,$){return Y.call(i,$)?i[$]:void 0}:function(i,$){return i[$]}},A=Object.getPrototypeOf(Function),H=typeof Map==="function"&&typeof Map.prototype.entries==="function"?Map:k5(),I=typeof Set==="function"&&typeof Set.prototype.entries==="function"?Set:HW(),w=typeof WeakMap==="function"?WeakMap:QZ(),C=Z?Symbol.for("@reflect-metadata:registry"):void 0,D=H8(),x=A8(D);function h(i,$,d,X0){if(!k(d)){if(!U1(i))throw TypeError();if(!q0($))throw TypeError();if(!q0(X0)&&!k(X0)&&!f(X0))throw TypeError();if(f(X0))X0=void 0;return d=N1(d),o(i,$,d,X0)}else{if(!U1(i))throw TypeError();if(!B0($))throw TypeError();return y(i,$)}}G("decorate",h);function l(i,$){function d(X0,w0){if(!q0(X0))throw TypeError();if(!k(w0)&&!h0(w0))throw TypeError();v(i,$,X0,w0)}return d}G("metadata",l);function u(i,$,d,X0){if(!q0(d))throw TypeError();if(!k(X0))X0=N1(X0);return v(i,$,d,X0)}G("defineMetadata",u);function n(i,$,d){if(!q0($))throw TypeError();if(!k(d))d=N1(d);return B(i,$,d)}G("hasMetadata",n);function c(i,$,d){if(!q0($))throw TypeError();if(!k(d))d=N1(d);return R(i,$,d)}G("hasOwnMetadata",c);function p(i,$,d){if(!q0($))throw TypeError();if(!k(d))d=N1(d);return _(i,$,d)}G("getMetadata",p);function W0(i,$,d){if(!q0($))throw TypeError();if(!k(d))d=N1(d);return S(i,$,d)}G("getOwnMetadata",W0);function m(i,$){if(!q0(i))throw TypeError();if(!k($))$=N1($);return P(i,$)}G("getMetadataKeys",m);function Y0(i,$){if(!q0(i))throw TypeError();if(!k($))$=N1($);return E(i,$)}G("getOwnMetadataKeys",Y0);function U0(i,$,d){if(!q0($))throw TypeError();if(!k(d))d=N1(d);if(!q0($))throw TypeError();if(!k(d))d=N1(d);var X0=C8($,d,!1);if(k(X0))return!1;return X0.OrdinaryDeleteMetadata(i,$,d)}G("deleteMetadata",U0);function y(i,$){for(var d=i.length-1;d>=0;--d){var X0=i[d],w0=X0($);if(!k(w0)&&!f(w0)){if(!B0(w0))throw TypeError();$=w0}}return $}function o(i,$,d,X0){for(var w0=i.length-1;w0>=0;--w0){var e0=i[w0],K1=e0($,d,X0);if(!k(K1)&&!f(K1)){if(!q0(K1))throw TypeError();X0=K1}}return X0}function B(i,$,d){var X0=R(i,$,d);if(X0)return!0;var w0=$1($);if(!f(w0))return B(i,w0,d);return!1}function R(i,$,d){var X0=C8($,d,!1);if(k(X0))return!1;return D0(X0.OrdinaryHasOwnMetadata(i,$,d))}function _(i,$,d){var X0=R(i,$,d);if(X0)return S(i,$,d);var w0=$1($);if(!f(w0))return _(i,w0,d);return}function S(i,$,d){var X0=C8($,d,!1);if(k(X0))return;return X0.OrdinaryGetOwnMetadata(i,$,d)}function v(i,$,d,X0){var w0=C8(d,X0,!0);w0.OrdinaryDefineOwnMetadata(i,$,d,X0)}function P(i,$){var d=E(i,$),X0=$1(i);if(X0===null)return d;var w0=P(X0,$);if(w0.length<=0)return d;if(d.length<=0)return w0;var e0=new I,K1=[];for(var r0=0,K0=d;r0<K0.length;r0++){var F0=K0[r0],g0=e0.has(F0);if(!g0)e0.add(F0),K1.push(F0)}for(var k0=0,Q1=w0;k0<Q1.length;k0++){var F0=Q1[k0],g0=e0.has(F0);if(!g0)e0.add(F0),K1.push(F0)}return K1}function E(i,$){var d=C8(i,$,!1);if(!d)return[];return d.OrdinaryOwnMetadataKeys(i,$)}function b(i){if(i===null)return 1;switch(typeof i){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return i===null?1:6;default:return 6}}function k(i){return i===void 0}function f(i){return i===null}function e(i){return typeof i==="symbol"}function q0(i){return typeof i==="object"?i!==null:typeof i==="function"}function Q0(i,$){switch(b(i)){case 0:return i;case 1:return i;case 2:return i;case 3:return i;case 4:return i;case 5:return i}var d=$===3?"string":$===5?"number":"default",X0=w8(i,V);if(X0!==void 0){var w0=X0.call(i,d);if(q0(w0))throw TypeError();return w0}return $0(i,d==="default"?"number":d)}function $0(i,$){if($==="string"){var d=i.toString;if(J0(d)){var X0=d.call(i);if(!q0(X0))return X0}var w0=i.valueOf;if(J0(w0)){var X0=w0.call(i);if(!q0(X0))return X0}}else{var w0=i.valueOf;if(J0(w0)){var X0=w0.call(i);if(!q0(X0))return X0}var e0=i.toString;if(J0(e0)){var X0=e0.call(i);if(!q0(X0))return X0}}throw TypeError()}function D0(i){return!!i}function x0(i){return""+i}function N1(i){var $=Q0(i,3);if(e($))return $;return x0($)}function U1(i){return Array.isArray?Array.isArray(i):i instanceof Object?i instanceof Array:Object.prototype.toString.call(i)==="[object Array]"}function J0(i){return typeof i==="function"}function B0(i){return typeof i==="function"}function h0(i){switch(b(i)){case 3:return!0;case 4:return!0;default:return!1}}function Y1(i,$){return i===$||i!==i&&$!==$}function w8(i,$){var d=i[$];if(d===void 0||d===null)return;if(!J0(d))throw TypeError();return d}function x1(i){var $=w8(i,Q);if(!J0($))throw TypeError();var d=$.call(i);if(!q0(d))throw TypeError();return d}function E0(i){return i.value}function n0(i){var $=i.next();return $.done?!1:$}function O1(i){var $=i.return;if($)$.call(i)}function $1(i){var $=Object.getPrototypeOf(i);if(typeof i!=="function"||i===A)return $;if($!==A)return $;var d=i.prototype,X0=d&&Object.getPrototypeOf(d);if(X0==null||X0===Object.prototype)return $;var w0=X0.constructor;if(typeof w0!=="function")return $;if(w0===i)return $;return w0}function U8(){var i;if(!k(C)&&typeof X.Reflect<"u"&&!(C in X.Reflect)&&typeof X.Reflect.defineMetadata==="function")i=B1(X.Reflect);var $,d,X0,w0=new w,e0={registerProvider:K1,getProvider:K0,setProvider:g0};return e0;function K1(k0){if(!Object.isExtensible(e0))throw Error("Cannot add provider to a frozen registry.");switch(!0){case i===k0:break;case k($):$=k0;break;case $===k0:break;case k(d):d=k0;break;case d===k0:break;default:if(X0===void 0)X0=new I;X0.add(k0);break}}function r0(k0,Q1){if(!k($)){if($.isProviderFor(k0,Q1))return $;if(!k(d)){if(d.isProviderFor(k0,Q1))return $;if(!k(X0)){var X1=x1(X0);while(!0){var k1=n0(X1);if(!k1)return;var n1=E0(k1);if(n1.isProviderFor(k0,Q1))return O1(X1),n1}}}}if(!k(i)&&i.isProviderFor(k0,Q1))return i;return}function K0(k0,Q1){var X1=w0.get(k0),k1;if(!k(X1))k1=X1.get(Q1);if(!k(k1))return k1;if(k1=r0(k0,Q1),!k(k1)){if(k(X1))X1=new H,w0.set(k0,X1);X1.set(Q1,k1)}return k1}function F0(k0){if(k(k0))throw TypeError();return $===k0||d===k0||!k(X0)&&X0.has(k0)}function g0(k0,Q1,X1){if(!F0(X1))throw Error("Metadata provider not registered.");var k1=K0(k0,Q1);if(k1!==X1){if(!k(k1))return!1;var n1=w0.get(k0);if(k(n1))n1=new H,w0.set(k0,n1);n1.set(Q1,X1)}return!0}}function H8(){var i;if(!k(C)&&q0(X.Reflect)&&Object.isExtensible(X.Reflect))i=X.Reflect[C];if(k(i))i=U8();if(!k(C)&&q0(X.Reflect)&&Object.isExtensible(X.Reflect))Object.defineProperty(X.Reflect,C,{enumerable:!1,configurable:!1,writable:!1,value:i});return i}function A8(i){var $=new w,d={isProviderFor:function(F0,g0){var k0=$.get(F0);if(k(k0))return!1;return k0.has(g0)},OrdinaryDefineOwnMetadata:K1,OrdinaryHasOwnMetadata:w0,OrdinaryGetOwnMetadata:e0,OrdinaryOwnMetadataKeys:r0,OrdinaryDeleteMetadata:K0};return D.registerProvider(d),d;function X0(F0,g0,k0){var Q1=$.get(F0),X1=!1;if(k(Q1)){if(!k0)return;Q1=new H,$.set(F0,Q1),X1=!0}var k1=Q1.get(g0);if(k(k1)){if(!k0)return;if(k1=new H,Q1.set(g0,k1),!i.setProvider(F0,g0,d)){if(Q1.delete(g0),X1)$.delete(F0);throw Error("Wrong provider for target.")}}return k1}function w0(F0,g0,k0){var Q1=X0(g0,k0,!1);if(k(Q1))return!1;return D0(Q1.has(F0))}function e0(F0,g0,k0){var Q1=X0(g0,k0,!1);if(k(Q1))return;return Q1.get(F0)}function K1(F0,g0,k0,Q1){var X1=X0(k0,Q1,!0);X1.set(F0,g0)}function r0(F0,g0){var k0=[],Q1=X0(F0,g0,!1);if(k(Q1))return k0;var X1=Q1.keys(),k1=x1(X1),n1=0;while(!0){var Q7=n0(k1);if(!Q7)return k0.length=n1,k0;var AW=E0(Q7);try{k0[n1]=AW}catch(JZ){try{O1(k1)}finally{throw JZ}}n1++}}function K0(F0,g0,k0){var Q1=X0(g0,k0,!1);if(k(Q1))return!1;if(!Q1.delete(F0))return!1;if(Q1.size===0){var X1=$.get(g0);if(!k(X1)){if(X1.delete(k0),X1.size===0)$.delete(X1)}}return!0}}function B1(i){var{defineMetadata:$,hasOwnMetadata:d,getOwnMetadata:X0,getOwnMetadataKeys:w0,deleteMetadata:e0}=i,K1=new w,r0={isProviderFor:function(K0,F0){var g0=K1.get(K0);if(!k(g0)&&g0.has(F0))return!0;if(w0(K0,F0).length){if(k(g0))g0=new I,K1.set(K0,g0);return g0.add(F0),!0}return!1},OrdinaryDefineOwnMetadata:$,OrdinaryHasOwnMetadata:d,OrdinaryGetOwnMetadata:X0,OrdinaryOwnMetadataKeys:w0,OrdinaryDeleteMetadata:e0};return r0}function C8(i,$,d){var X0=D.getProvider(i,$);if(!k(X0))return X0;if(d){if(D.setProvider(i,$,x))return x;throw Error("Illegal state.")}return}function k5(){var i={},$=[],d=function(){function r0(K0,F0,g0){this._index=0,this._keys=K0,this._values=F0,this._selector=g0}return r0.prototype["@@iterator"]=function(){return this},r0.prototype[Q]=function(){return this},r0.prototype.next=function(){var K0=this._index;if(K0>=0&&K0<this._keys.length){var F0=this._selector(this._keys[K0],this._values[K0]);if(K0+1>=this._keys.length)this._index=-1,this._keys=$,this._values=$;else this._index++;return{value:F0,done:!1}}return{value:void 0,done:!0}},r0.prototype.throw=function(K0){if(this._index>=0)this._index=-1,this._keys=$,this._values=$;throw K0},r0.prototype.return=function(K0){if(this._index>=0)this._index=-1,this._keys=$,this._values=$;return{value:K0,done:!0}},r0}(),X0=function(){function r0(){this._keys=[],this._values=[],this._cacheKey=i,this._cacheIndex=-2}return Object.defineProperty(r0.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),r0.prototype.has=function(K0){return this._find(K0,!1)>=0},r0.prototype.get=function(K0){var F0=this._find(K0,!1);return F0>=0?this._values[F0]:void 0},r0.prototype.set=function(K0,F0){var g0=this._find(K0,!0);return this._values[g0]=F0,this},r0.prototype.delete=function(K0){var F0=this._find(K0,!1);if(F0>=0){var g0=this._keys.length;for(var k0=F0+1;k0<g0;k0++)this._keys[k0-1]=this._keys[k0],this._values[k0-1]=this._values[k0];if(this._keys.length--,this._values.length--,Y1(K0,this._cacheKey))this._cacheKey=i,this._cacheIndex=-2;return!0}return!1},r0.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=i,this._cacheIndex=-2},r0.prototype.keys=function(){return new d(this._keys,this._values,w0)},r0.prototype.values=function(){return new d(this._keys,this._values,e0)},r0.prototype.entries=function(){return new d(this._keys,this._values,K1)},r0.prototype["@@iterator"]=function(){return this.entries()},r0.prototype[Q]=function(){return this.entries()},r0.prototype._find=function(K0,F0){if(!Y1(this._cacheKey,K0)){this._cacheIndex=-1;for(var g0=0;g0<this._keys.length;g0++)if(Y1(this._keys[g0],K0)){this._cacheIndex=g0;break}}if(this._cacheIndex<0&&F0)this._cacheIndex=this._keys.length,this._keys.push(K0),this._values.push(void 0);return this._cacheIndex},r0}();return X0;function w0(r0,K0){return r0}function e0(r0,K0){return K0}function K1(r0,K0){return[r0,K0]}}function HW(){var i=function(){function $(){this._map=new H}return Object.defineProperty($.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),$.prototype.has=function(d){return this._map.has(d)},$.prototype.add=function(d){return this._map.set(d,d),this},$.prototype.delete=function(d){return this._map.delete(d)},$.prototype.clear=function(){this._map.clear()},$.prototype.keys=function(){return this._map.keys()},$.prototype.values=function(){return this._map.keys()},$.prototype.entries=function(){return this._map.entries()},$.prototype["@@iterator"]=function(){return this.keys()},$.prototype[Q]=function(){return this.keys()},$}();return i}function QZ(){var i=16,$=N.create(),d=X0();return function(){function K0(){this._key=X0()}return K0.prototype.has=function(F0){var g0=w0(F0,!1);return g0!==void 0?N.has(g0,this._key):!1},K0.prototype.get=function(F0){var g0=w0(F0,!1);return g0!==void 0?N.get(g0,this._key):void 0},K0.prototype.set=function(F0,g0){var k0=w0(F0,!0);return k0[this._key]=g0,this},K0.prototype.delete=function(F0){var g0=w0(F0,!1);return g0!==void 0?delete g0[this._key]:!1},K0.prototype.clear=function(){this._key=X0()},K0}();function X0(){var K0;do K0="@@WeakMap@@"+r0();while(N.has($,K0));return $[K0]=!0,K0}function w0(K0,F0){if(!Y.call(K0,d)){if(!F0)return;Object.defineProperty(K0,d,{value:N.create()})}return K0[d]}function e0(K0,F0){for(var g0=0;g0<F0;++g0)K0[g0]=Math.random()*255|0;return K0}function K1(K0){if(typeof Uint8Array==="function"){var F0=new Uint8Array(K0);if(typeof crypto<"u")crypto.getRandomValues(F0);else if(typeof msCrypto<"u")msCrypto.getRandomValues(F0);else e0(F0,K0);return F0}return e0(Array(K0),K0)}function r0(){var K0=K1(i);K0[6]=K0[6]&79|64,K0[8]=K0[8]&191|128;var F0="";for(var g0=0;g0<i;++g0){var k0=K0[g0];if(g0===4||g0===6||g0===8)F0+="-";if(k0<16)F0+="0";F0+=k0.toString(16).toLowerCase()}return F0}}function i7(i){return i.__=void 0,delete i.__,i}})})(ST||(ST={}))});var XR=Z1((w10,Zq)=>{var $P,FP,SP,xP,kP,_P,yP,vP,gP,uP,hP,bP,mP,Xq,HI,fP,cP,pP,FX,lP,dP,oP,nP,iP,rP,aP,sP,tP,Yq,eP,WR,GR;(function(W){var G=typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:{};if(typeof define==="function"&&define.amd)define("tslib",["exports"],function(Y){W(X(G,X(Y)))});else if(typeof Zq==="object"&&typeof w10==="object")W(X(G,X(w10)));else W(X(G));function X(Y,Z){if(Y!==G)if(typeof Object.create==="function")Object.defineProperty(Y,"__esModule",{value:!0});else Y.__esModule=!0;return function(V,Q){return Y[V]=Z?Z(V,Q):Q}}})(function(W){var G=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(V,Q){V.__proto__=Q}||function(V,Q){for(var J in Q)if(Object.prototype.hasOwnProperty.call(Q,J))V[J]=Q[J]};$P=function(V,Q){if(typeof Q!=="function"&&Q!==null)throw TypeError("Class extends value "+String(Q)+" is not a constructor or null");G(V,Q);function J(){this.constructor=V}V.prototype=Q===null?Object.create(Q):(J.prototype=Q.prototype,new J)},FP=Object.assign||function(V){for(var Q,J=1,U=arguments.length;J<U;J++){Q=arguments[J];for(var q in Q)if(Object.prototype.hasOwnProperty.call(Q,q))V[q]=Q[q]}return V},SP=function(V,Q){var J={};for(var U in V)if(Object.prototype.hasOwnProperty.call(V,U)&&Q.indexOf(U)<0)J[U]=V[U];if(V!=null&&typeof Object.getOwnPropertySymbols==="function"){for(var q=0,U=Object.getOwnPropertySymbols(V);q<U.length;q++)if(Q.indexOf(U[q])<0&&Object.prototype.propertyIsEnumerable.call(V,U[q]))J[U[q]]=V[U[q]]}return J},xP=function(V,Q,J,U){var q=arguments.length,N=q<3?Q:U===null?U=Object.getOwnPropertyDescriptor(Q,J):U,A;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")N=Reflect.decorate(V,Q,J,U);else for(var H=V.length-1;H>=0;H--)if(A=V[H])N=(q<3?A(N):q>3?A(Q,J,N):A(Q,J))||N;return q>3&&N&&Object.defineProperty(Q,J,N),N},kP=function(V,Q){return function(J,U){Q(J,U,V)}},_P=function(V,Q,J,U,q,N){function A(c){if(c!==void 0&&typeof c!=="function")throw TypeError("Function expected");return c}var H=U.kind,I=H==="getter"?"get":H==="setter"?"set":"value",w=!Q&&V?U.static?V:V.prototype:null,C=Q||(w?Object.getOwnPropertyDescriptor(w,U.name):{}),D,x=!1;for(var h=J.length-1;h>=0;h--){var l={};for(var u in U)l[u]=u==="access"?{}:U[u];for(var u in U.access)l.access[u]=U.access[u];l.addInitializer=function(c){if(x)throw TypeError("Cannot add initializers after decoration has completed");N.push(A(c||null))};var n=(0,J[h])(H==="accessor"?{get:C.get,set:C.set}:C[I],l);if(H==="accessor"){if(n===void 0)continue;if(n===null||typeof n!=="object")throw TypeError("Object expected");if(D=A(n.get))C.get=D;if(D=A(n.set))C.set=D;if(D=A(n.init))q.unshift(D)}else if(D=A(n))if(H==="field")q.unshift(D);else C[I]=D}if(w)Object.defineProperty(w,U.name,C);x=!0},yP=function(V,Q,J){var U=arguments.length>2;for(var q=0;q<Q.length;q++)J=U?Q[q].call(V,J):Q[q].call(V);return U?J:void 0},vP=function(V){return typeof V==="symbol"?V:"".concat(V)},gP=function(V,Q,J){if(typeof Q==="symbol")Q=Q.description?"[".concat(Q.description,"]"):"";return Object.defineProperty(V,"name",{configurable:!0,value:J?"".concat(J," ",Q):Q})},uP=function(V,Q){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(V,Q)},hP=function(V,Q,J,U){function q(N){return N instanceof J?N:new J(function(A){A(N)})}return new(J||(J=Promise))(function(N,A){function H(C){try{w(U.next(C))}catch(D){A(D)}}function I(C){try{w(U.throw(C))}catch(D){A(D)}}function w(C){C.done?N(C.value):q(C.value).then(H,I)}w((U=U.apply(V,Q||[])).next())})},bP=function(V,Q){var J={label:0,sent:function(){if(N[0]&1)throw N[1];return N[1]},trys:[],ops:[]},U,q,N,A=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return A.next=H(0),A.throw=H(1),A.return=H(2),typeof Symbol==="function"&&(A[Symbol.iterator]=function(){return this}),A;function H(w){return function(C){return I([w,C])}}function I(w){if(U)throw TypeError("Generator is already executing.");while(A&&(A=0,w[0]&&(J=0)),J)try{if(U=1,q&&(N=w[0]&2?q.return:w[0]?q.throw||((N=q.return)&&N.call(q),0):q.next)&&!(N=N.call(q,w[1])).done)return N;if(q=0,N)w=[w[0]&2,N.value];switch(w[0]){case 0:case 1:N=w;break;case 4:return J.label++,{value:w[1],done:!1};case 5:J.label++,q=w[1],w=[0];continue;case 7:w=J.ops.pop(),J.trys.pop();continue;default:if((N=J.trys,!(N=N.length>0&&N[N.length-1]))&&(w[0]===6||w[0]===2)){J=0;continue}if(w[0]===3&&(!N||w[1]>N[0]&&w[1]<N[3])){J.label=w[1];break}if(w[0]===6&&J.label<N[1]){J.label=N[1],N=w;break}if(N&&J.label<N[2]){J.label=N[2],J.ops.push(w);break}if(N[2])J.ops.pop();J.trys.pop();continue}w=Q.call(V,J)}catch(C){w=[6,C],q=0}finally{U=N=0}if(w[0]&5)throw w[1];return{value:w[0]?w[1]:void 0,done:!0}}},mP=function(V,Q){for(var J in V)if(J!=="default"&&!Object.prototype.hasOwnProperty.call(Q,J))Yq(Q,V,J)},Yq=Object.create?function(V,Q,J,U){if(U===void 0)U=J;var q=Object.getOwnPropertyDescriptor(Q,J);if(!q||("get"in q?!Q.__esModule:q.writable||q.configurable))q={enumerable:!0,get:function(){return Q[J]}};Object.defineProperty(V,U,q)}:function(V,Q,J,U){if(U===void 0)U=J;V[U]=Q[J]},Xq=function(V){var Q=typeof Symbol==="function"&&Symbol.iterator,J=Q&&V[Q],U=0;if(J)return J.call(V);if(V&&typeof V.length==="number")return{next:function(){if(V&&U>=V.length)V=void 0;return{value:V&&V[U++],done:!V}}};throw TypeError(Q?"Object is not iterable.":"Symbol.iterator is not defined.")},HI=function(V,Q){var J=typeof Symbol==="function"&&V[Symbol.iterator];if(!J)return V;var U=J.call(V),q,N=[],A;try{while((Q===void 0||Q-- >0)&&!(q=U.next()).done)N.push(q.value)}catch(H){A={error:H}}finally{try{if(q&&!q.done&&(J=U.return))J.call(U)}finally{if(A)throw A.error}}return N},fP=function(){for(var V=[],Q=0;Q<arguments.length;Q++)V=V.concat(HI(arguments[Q]));return V},cP=function(){for(var V=0,Q=0,J=arguments.length;Q<J;Q++)V+=arguments[Q].length;for(var U=Array(V),q=0,Q=0;Q<J;Q++)for(var N=arguments[Q],A=0,H=N.length;A<H;A++,q++)U[q]=N[A];return U},pP=function(V,Q,J){if(J||arguments.length===2){for(var U=0,q=Q.length,N;U<q;U++)if(N||!(U in Q)){if(!N)N=Array.prototype.slice.call(Q,0,U);N[U]=Q[U]}}return V.concat(N||Array.prototype.slice.call(Q))},FX=function(V){return this instanceof FX?(this.v=V,this):new FX(V)},lP=function(V,Q,J){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var U=J.apply(V,Q||[]),q,N=[];return q=Object.create((typeof AsyncIterator==="function"?AsyncIterator:Object).prototype),H("next"),H("throw"),H("return",A),q[Symbol.asyncIterator]=function(){return this},q;function A(h){return function(l){return Promise.resolve(l).then(h,D)}}function H(h,l){if(U[h]){if(q[h]=function(u){return new Promise(function(n,c){N.push([h,u,n,c])>1||I(h,u)})},l)q[h]=l(q[h])}}function I(h,l){try{w(U[h](l))}catch(u){x(N[0][3],u)}}function w(h){h.value instanceof FX?Promise.resolve(h.value.v).then(C,D):x(N[0][2],h)}function C(h){I("next",h)}function D(h){I("throw",h)}function x(h,l){if(h(l),N.shift(),N.length)I(N[0][0],N[0][1])}},dP=function(V){var Q,J;return Q={},U("next"),U("throw",function(q){throw q}),U("return"),Q[Symbol.iterator]=function(){return this},Q;function U(q,N){Q[q]=V[q]?function(A){return(J=!J)?{value:FX(V[q](A)),done:!1}:N?N(A):A}:N}},oP=function(V){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var Q=V[Symbol.asyncIterator],J;return Q?Q.call(V):(V=typeof Xq==="function"?Xq(V):V[Symbol.iterator](),J={},U("next"),U("throw"),U("return"),J[Symbol.asyncIterator]=function(){return this},J);function U(N){J[N]=V[N]&&function(A){return new Promise(function(H,I){A=V[N](A),q(H,I,A.done,A.value)})}}function q(N,A,H,I){Promise.resolve(I).then(function(w){N({value:w,done:H})},A)}},nP=function(V,Q){if(Object.defineProperty)Object.defineProperty(V,"raw",{value:Q});else V.raw=Q;return V};var X=Object.create?function(V,Q){Object.defineProperty(V,"default",{enumerable:!0,value:Q})}:function(V,Q){V.default=Q},Y=function(V){return Y=Object.getOwnPropertyNames||function(Q){var J=[];for(var U in Q)if(Object.prototype.hasOwnProperty.call(Q,U))J[J.length]=U;return J},Y(V)};iP=function(V){if(V&&V.__esModule)return V;var Q={};if(V!=null){for(var J=Y(V),U=0;U<J.length;U++)if(J[U]!=="default")Yq(Q,V,J[U])}return X(Q,V),Q},rP=function(V){return V&&V.__esModule?V:{default:V}},aP=function(V,Q,J,U){if(J==="a"&&!U)throw TypeError("Private accessor was defined without a getter");if(typeof Q==="function"?V!==Q||!U:!Q.has(V))throw TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?U:J==="a"?U.call(V):U?U.value:Q.get(V)},sP=function(V,Q,J,U,q){if(U==="m")throw TypeError("Private method is not writable");if(U==="a"&&!q)throw TypeError("Private accessor was defined without a setter");if(typeof Q==="function"?V!==Q||!q:!Q.has(V))throw TypeError("Cannot write private member to an object whose class did not declare it");return U==="a"?q.call(V,J):q?q.value=J:Q.set(V,J),J},tP=function(V,Q){if(Q===null||typeof Q!=="object"&&typeof Q!=="function")throw TypeError("Cannot use 'in' operator on non-object");return typeof V==="function"?Q===V:V.has(Q)},eP=function(V,Q,J){if(Q!==null&&Q!==void 0){if(typeof Q!=="object"&&typeof Q!=="function")throw TypeError("Object expected.");var U,q;if(J){if(!Symbol.asyncDispose)throw TypeError("Symbol.asyncDispose is not defined.");U=Q[Symbol.asyncDispose]}if(U===void 0){if(!Symbol.dispose)throw TypeError("Symbol.dispose is not defined.");if(U=Q[Symbol.dispose],J)q=U}if(typeof U!=="function")throw TypeError("Object not disposable.");if(q)U=function(){try{q.call(this)}catch(N){return Promise.reject(N)}};V.stack.push({value:Q,dispose:U,async:J})}else if(J)V.stack.push({async:!0});return Q};var Z=typeof SuppressedError==="function"?SuppressedError:function(V,Q,J){var U=Error(J);return U.name="SuppressedError",U.error=V,U.suppressed=Q,U};WR=function(V){function Q(N){V.error=V.hasError?new Z(N,V.error,"An error was suppressed during disposal."):N,V.hasError=!0}var J,U=0;function q(){while(J=V.stack.pop())try{if(!J.async&&U===1)return U=0,V.stack.push(J),Promise.resolve().then(q);if(J.dispose){var N=J.dispose.call(J.value);if(J.async)return U|=2,Promise.resolve(N).then(q,function(A){return Q(A),q()})}else U|=1}catch(A){Q(A)}if(U===1)return V.hasError?Promise.reject(V.error):Promise.resolve();if(V.hasError)throw V.error}return q()},GR=function(V,Q){if(typeof V==="string"&&/^\.\.?\//.test(V))return V.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(J,U,q,N,A){return U?Q?".jsx":".js":q&&(!N||!A)?J:q+N+"."+A.toLowerCase()+"js"});return V},W("__extends",$P),W("__assign",FP),W("__rest",SP),W("__decorate",xP),W("__param",kP),W("__esDecorate",_P),W("__runInitializers",yP),W("__propKey",vP),W("__setFunctionName",gP),W("__metadata",uP),W("__awaiter",hP),W("__generator",bP),W("__exportStar",mP),W("__createBinding",Yq),W("__values",Xq),W("__read",HI),W("__spread",fP),W("__spreadArrays",cP),W("__spreadArray",pP),W("__await",FX),W("__asyncGenerator",lP),W("__asyncDelegator",dP),W("__asyncValues",oP),W("__makeTemplateObject",nP),W("__importStar",iP),W("__importDefault",rP),W("__classPrivateFieldGet",aP),W("__classPrivateFieldSet",sP),W("__classPrivateFieldIn",tP),W("__addDisposableResource",eP),W("__disposeResources",WR),W("__rewriteRelativeImportExtension",GR)})});var zL=Z1(($Z0,fq)=>{/*! *****************************************************************************
|
|
27
|
+
***************************************************************************** */var ST;(function(W){(function(G){var X=typeof globalThis==="object"?globalThis:typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:J(),Y=Z(W);if(typeof X.Reflect<"u")Y=Z(X.Reflect,Y);if(G(Y,X),typeof X.Reflect>"u")X.Reflect=W;function Z(U,q){return function(N,A){if(Object.defineProperty(U,N,{configurable:!0,writable:!0,value:A}),q)q(N,A)}}function V(){try{return Function("return this;")()}catch(U){}}function Q(){try{return(0,eval)("(function() { return this; })()")}catch(U){}}function J(){return V()||Q()}})(function(G,X){var Y=Object.prototype.hasOwnProperty,Z=typeof Symbol==="function",V=Z&&typeof Symbol.toPrimitive<"u"?Symbol.toPrimitive:"@@toPrimitive",Q=Z&&typeof Symbol.iterator<"u"?Symbol.iterator:"@@iterator",J=typeof Object.create==="function",U={__proto__:[]}instanceof Array,q=!J&&!U,N={create:J?function(){return i7(Object.create(null))}:U?function(){return i7({__proto__:null})}:function(){return i7({})},has:q?function(i,$){return Y.call(i,$)}:function(i,$){return $ in i},get:q?function(i,$){return Y.call(i,$)?i[$]:void 0}:function(i,$){return i[$]}},A=Object.getPrototypeOf(Function),H=typeof Map==="function"&&typeof Map.prototype.entries==="function"?Map:k5(),I=typeof Set==="function"&&typeof Set.prototype.entries==="function"?Set:HW(),w=typeof WeakMap==="function"?WeakMap:QZ(),C=Z?Symbol.for("@reflect-metadata:registry"):void 0,D=H8(),x=A8(D);function h(i,$,d,X0){if(!k(d)){if(!U1(i))throw TypeError();if(!q0($))throw TypeError();if(!q0(X0)&&!k(X0)&&!f(X0))throw TypeError();if(f(X0))X0=void 0;return d=N1(d),o(i,$,d,X0)}else{if(!U1(i))throw TypeError();if(!B0($))throw TypeError();return y(i,$)}}G("decorate",h);function l(i,$){function d(X0,w0){if(!q0(X0))throw TypeError();if(!k(w0)&&!h0(w0))throw TypeError();v(i,$,X0,w0)}return d}G("metadata",l);function u(i,$,d,X0){if(!q0(d))throw TypeError();if(!k(X0))X0=N1(X0);return v(i,$,d,X0)}G("defineMetadata",u);function n(i,$,d){if(!q0($))throw TypeError();if(!k(d))d=N1(d);return B(i,$,d)}G("hasMetadata",n);function c(i,$,d){if(!q0($))throw TypeError();if(!k(d))d=N1(d);return R(i,$,d)}G("hasOwnMetadata",c);function p(i,$,d){if(!q0($))throw TypeError();if(!k(d))d=N1(d);return _(i,$,d)}G("getMetadata",p);function W0(i,$,d){if(!q0($))throw TypeError();if(!k(d))d=N1(d);return S(i,$,d)}G("getOwnMetadata",W0);function m(i,$){if(!q0(i))throw TypeError();if(!k($))$=N1($);return P(i,$)}G("getMetadataKeys",m);function Y0(i,$){if(!q0(i))throw TypeError();if(!k($))$=N1($);return E(i,$)}G("getOwnMetadataKeys",Y0);function U0(i,$,d){if(!q0($))throw TypeError();if(!k(d))d=N1(d);if(!q0($))throw TypeError();if(!k(d))d=N1(d);var X0=j8($,d,!1);if(k(X0))return!1;return X0.OrdinaryDeleteMetadata(i,$,d)}G("deleteMetadata",U0);function y(i,$){for(var d=i.length-1;d>=0;--d){var X0=i[d],w0=X0($);if(!k(w0)&&!f(w0)){if(!B0(w0))throw TypeError();$=w0}}return $}function o(i,$,d,X0){for(var w0=i.length-1;w0>=0;--w0){var e0=i[w0],C1=e0($,d,X0);if(!k(C1)&&!f(C1)){if(!q0(C1))throw TypeError();X0=C1}}return X0}function B(i,$,d){var X0=R(i,$,d);if(X0)return!0;var w0=$1($);if(!f(w0))return B(i,w0,d);return!1}function R(i,$,d){var X0=j8($,d,!1);if(k(X0))return!1;return D0(X0.OrdinaryHasOwnMetadata(i,$,d))}function _(i,$,d){var X0=R(i,$,d);if(X0)return S(i,$,d);var w0=$1($);if(!f(w0))return _(i,w0,d);return}function S(i,$,d){var X0=j8($,d,!1);if(k(X0))return;return X0.OrdinaryGetOwnMetadata(i,$,d)}function v(i,$,d,X0){var w0=j8(d,X0,!0);w0.OrdinaryDefineOwnMetadata(i,$,d,X0)}function P(i,$){var d=E(i,$),X0=$1(i);if(X0===null)return d;var w0=P(X0,$);if(w0.length<=0)return d;if(d.length<=0)return w0;var e0=new I,C1=[];for(var r0=0,K0=d;r0<K0.length;r0++){var F0=K0[r0],g0=e0.has(F0);if(!g0)e0.add(F0),C1.push(F0)}for(var k0=0,Q1=w0;k0<Q1.length;k0++){var F0=Q1[k0],g0=e0.has(F0);if(!g0)e0.add(F0),C1.push(F0)}return C1}function E(i,$){var d=j8(i,$,!1);if(!d)return[];return d.OrdinaryOwnMetadataKeys(i,$)}function b(i){if(i===null)return 1;switch(typeof i){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return i===null?1:6;default:return 6}}function k(i){return i===void 0}function f(i){return i===null}function e(i){return typeof i==="symbol"}function q0(i){return typeof i==="object"?i!==null:typeof i==="function"}function Q0(i,$){switch(b(i)){case 0:return i;case 1:return i;case 2:return i;case 3:return i;case 4:return i;case 5:return i}var d=$===3?"string":$===5?"number":"default",X0=w8(i,V);if(X0!==void 0){var w0=X0.call(i,d);if(q0(w0))throw TypeError();return w0}return $0(i,d==="default"?"number":d)}function $0(i,$){if($==="string"){var d=i.toString;if(J0(d)){var X0=d.call(i);if(!q0(X0))return X0}var w0=i.valueOf;if(J0(w0)){var X0=w0.call(i);if(!q0(X0))return X0}}else{var w0=i.valueOf;if(J0(w0)){var X0=w0.call(i);if(!q0(X0))return X0}var e0=i.toString;if(J0(e0)){var X0=e0.call(i);if(!q0(X0))return X0}}throw TypeError()}function D0(i){return!!i}function x0(i){return""+i}function N1(i){var $=Q0(i,3);if(e($))return $;return x0($)}function U1(i){return Array.isArray?Array.isArray(i):i instanceof Object?i instanceof Array:Object.prototype.toString.call(i)==="[object Array]"}function J0(i){return typeof i==="function"}function B0(i){return typeof i==="function"}function h0(i){switch(b(i)){case 3:return!0;case 4:return!0;default:return!1}}function Y1(i,$){return i===$||i!==i&&$!==$}function w8(i,$){var d=i[$];if(d===void 0||d===null)return;if(!J0(d))throw TypeError();return d}function x1(i){var $=w8(i,Q);if(!J0($))throw TypeError();var d=$.call(i);if(!q0(d))throw TypeError();return d}function E0(i){return i.value}function n0(i){var $=i.next();return $.done?!1:$}function O1(i){var $=i.return;if($)$.call(i)}function $1(i){var $=Object.getPrototypeOf(i);if(typeof i!=="function"||i===A)return $;if($!==A)return $;var d=i.prototype,X0=d&&Object.getPrototypeOf(d);if(X0==null||X0===Object.prototype)return $;var w0=X0.constructor;if(typeof w0!=="function")return $;if(w0===i)return $;return w0}function U8(){var i;if(!k(C)&&typeof X.Reflect<"u"&&!(C in X.Reflect)&&typeof X.Reflect.defineMetadata==="function")i=K1(X.Reflect);var $,d,X0,w0=new w,e0={registerProvider:C1,getProvider:K0,setProvider:g0};return e0;function C1(k0){if(!Object.isExtensible(e0))throw Error("Cannot add provider to a frozen registry.");switch(!0){case i===k0:break;case k($):$=k0;break;case $===k0:break;case k(d):d=k0;break;case d===k0:break;default:if(X0===void 0)X0=new I;X0.add(k0);break}}function r0(k0,Q1){if(!k($)){if($.isProviderFor(k0,Q1))return $;if(!k(d)){if(d.isProviderFor(k0,Q1))return $;if(!k(X0)){var X1=x1(X0);while(!0){var k1=n0(X1);if(!k1)return;var n1=E0(k1);if(n1.isProviderFor(k0,Q1))return O1(X1),n1}}}}if(!k(i)&&i.isProviderFor(k0,Q1))return i;return}function K0(k0,Q1){var X1=w0.get(k0),k1;if(!k(X1))k1=X1.get(Q1);if(!k(k1))return k1;if(k1=r0(k0,Q1),!k(k1)){if(k(X1))X1=new H,w0.set(k0,X1);X1.set(Q1,k1)}return k1}function F0(k0){if(k(k0))throw TypeError();return $===k0||d===k0||!k(X0)&&X0.has(k0)}function g0(k0,Q1,X1){if(!F0(X1))throw Error("Metadata provider not registered.");var k1=K0(k0,Q1);if(k1!==X1){if(!k(k1))return!1;var n1=w0.get(k0);if(k(n1))n1=new H,w0.set(k0,n1);n1.set(Q1,X1)}return!0}}function H8(){var i;if(!k(C)&&q0(X.Reflect)&&Object.isExtensible(X.Reflect))i=X.Reflect[C];if(k(i))i=U8();if(!k(C)&&q0(X.Reflect)&&Object.isExtensible(X.Reflect))Object.defineProperty(X.Reflect,C,{enumerable:!1,configurable:!1,writable:!1,value:i});return i}function A8(i){var $=new w,d={isProviderFor:function(F0,g0){var k0=$.get(F0);if(k(k0))return!1;return k0.has(g0)},OrdinaryDefineOwnMetadata:C1,OrdinaryHasOwnMetadata:w0,OrdinaryGetOwnMetadata:e0,OrdinaryOwnMetadataKeys:r0,OrdinaryDeleteMetadata:K0};return D.registerProvider(d),d;function X0(F0,g0,k0){var Q1=$.get(F0),X1=!1;if(k(Q1)){if(!k0)return;Q1=new H,$.set(F0,Q1),X1=!0}var k1=Q1.get(g0);if(k(k1)){if(!k0)return;if(k1=new H,Q1.set(g0,k1),!i.setProvider(F0,g0,d)){if(Q1.delete(g0),X1)$.delete(F0);throw Error("Wrong provider for target.")}}return k1}function w0(F0,g0,k0){var Q1=X0(g0,k0,!1);if(k(Q1))return!1;return D0(Q1.has(F0))}function e0(F0,g0,k0){var Q1=X0(g0,k0,!1);if(k(Q1))return;return Q1.get(F0)}function C1(F0,g0,k0,Q1){var X1=X0(k0,Q1,!0);X1.set(F0,g0)}function r0(F0,g0){var k0=[],Q1=X0(F0,g0,!1);if(k(Q1))return k0;var X1=Q1.keys(),k1=x1(X1),n1=0;while(!0){var Q7=n0(k1);if(!Q7)return k0.length=n1,k0;var AW=E0(Q7);try{k0[n1]=AW}catch(JZ){try{O1(k1)}finally{throw JZ}}n1++}}function K0(F0,g0,k0){var Q1=X0(g0,k0,!1);if(k(Q1))return!1;if(!Q1.delete(F0))return!1;if(Q1.size===0){var X1=$.get(g0);if(!k(X1)){if(X1.delete(k0),X1.size===0)$.delete(X1)}}return!0}}function K1(i){var{defineMetadata:$,hasOwnMetadata:d,getOwnMetadata:X0,getOwnMetadataKeys:w0,deleteMetadata:e0}=i,C1=new w,r0={isProviderFor:function(K0,F0){var g0=C1.get(K0);if(!k(g0)&&g0.has(F0))return!0;if(w0(K0,F0).length){if(k(g0))g0=new I,C1.set(K0,g0);return g0.add(F0),!0}return!1},OrdinaryDefineOwnMetadata:$,OrdinaryHasOwnMetadata:d,OrdinaryGetOwnMetadata:X0,OrdinaryOwnMetadataKeys:w0,OrdinaryDeleteMetadata:e0};return r0}function j8(i,$,d){var X0=D.getProvider(i,$);if(!k(X0))return X0;if(d){if(D.setProvider(i,$,x))return x;throw Error("Illegal state.")}return}function k5(){var i={},$=[],d=function(){function r0(K0,F0,g0){this._index=0,this._keys=K0,this._values=F0,this._selector=g0}return r0.prototype["@@iterator"]=function(){return this},r0.prototype[Q]=function(){return this},r0.prototype.next=function(){var K0=this._index;if(K0>=0&&K0<this._keys.length){var F0=this._selector(this._keys[K0],this._values[K0]);if(K0+1>=this._keys.length)this._index=-1,this._keys=$,this._values=$;else this._index++;return{value:F0,done:!1}}return{value:void 0,done:!0}},r0.prototype.throw=function(K0){if(this._index>=0)this._index=-1,this._keys=$,this._values=$;throw K0},r0.prototype.return=function(K0){if(this._index>=0)this._index=-1,this._keys=$,this._values=$;return{value:K0,done:!0}},r0}(),X0=function(){function r0(){this._keys=[],this._values=[],this._cacheKey=i,this._cacheIndex=-2}return Object.defineProperty(r0.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),r0.prototype.has=function(K0){return this._find(K0,!1)>=0},r0.prototype.get=function(K0){var F0=this._find(K0,!1);return F0>=0?this._values[F0]:void 0},r0.prototype.set=function(K0,F0){var g0=this._find(K0,!0);return this._values[g0]=F0,this},r0.prototype.delete=function(K0){var F0=this._find(K0,!1);if(F0>=0){var g0=this._keys.length;for(var k0=F0+1;k0<g0;k0++)this._keys[k0-1]=this._keys[k0],this._values[k0-1]=this._values[k0];if(this._keys.length--,this._values.length--,Y1(K0,this._cacheKey))this._cacheKey=i,this._cacheIndex=-2;return!0}return!1},r0.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=i,this._cacheIndex=-2},r0.prototype.keys=function(){return new d(this._keys,this._values,w0)},r0.prototype.values=function(){return new d(this._keys,this._values,e0)},r0.prototype.entries=function(){return new d(this._keys,this._values,C1)},r0.prototype["@@iterator"]=function(){return this.entries()},r0.prototype[Q]=function(){return this.entries()},r0.prototype._find=function(K0,F0){if(!Y1(this._cacheKey,K0)){this._cacheIndex=-1;for(var g0=0;g0<this._keys.length;g0++)if(Y1(this._keys[g0],K0)){this._cacheIndex=g0;break}}if(this._cacheIndex<0&&F0)this._cacheIndex=this._keys.length,this._keys.push(K0),this._values.push(void 0);return this._cacheIndex},r0}();return X0;function w0(r0,K0){return r0}function e0(r0,K0){return K0}function C1(r0,K0){return[r0,K0]}}function HW(){var i=function(){function $(){this._map=new H}return Object.defineProperty($.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),$.prototype.has=function(d){return this._map.has(d)},$.prototype.add=function(d){return this._map.set(d,d),this},$.prototype.delete=function(d){return this._map.delete(d)},$.prototype.clear=function(){this._map.clear()},$.prototype.keys=function(){return this._map.keys()},$.prototype.values=function(){return this._map.keys()},$.prototype.entries=function(){return this._map.entries()},$.prototype["@@iterator"]=function(){return this.keys()},$.prototype[Q]=function(){return this.keys()},$}();return i}function QZ(){var i=16,$=N.create(),d=X0();return function(){function K0(){this._key=X0()}return K0.prototype.has=function(F0){var g0=w0(F0,!1);return g0!==void 0?N.has(g0,this._key):!1},K0.prototype.get=function(F0){var g0=w0(F0,!1);return g0!==void 0?N.get(g0,this._key):void 0},K0.prototype.set=function(F0,g0){var k0=w0(F0,!0);return k0[this._key]=g0,this},K0.prototype.delete=function(F0){var g0=w0(F0,!1);return g0!==void 0?delete g0[this._key]:!1},K0.prototype.clear=function(){this._key=X0()},K0}();function X0(){var K0;do K0="@@WeakMap@@"+r0();while(N.has($,K0));return $[K0]=!0,K0}function w0(K0,F0){if(!Y.call(K0,d)){if(!F0)return;Object.defineProperty(K0,d,{value:N.create()})}return K0[d]}function e0(K0,F0){for(var g0=0;g0<F0;++g0)K0[g0]=Math.random()*255|0;return K0}function C1(K0){if(typeof Uint8Array==="function"){var F0=new Uint8Array(K0);if(typeof crypto<"u")crypto.getRandomValues(F0);else if(typeof msCrypto<"u")msCrypto.getRandomValues(F0);else e0(F0,K0);return F0}return e0(Array(K0),K0)}function r0(){var K0=C1(i);K0[6]=K0[6]&79|64,K0[8]=K0[8]&191|128;var F0="";for(var g0=0;g0<i;++g0){var k0=K0[g0];if(g0===4||g0===6||g0===8)F0+="-";if(k0<16)F0+="0";F0+=k0.toString(16).toLowerCase()}return F0}}function i7(i){return i.__=void 0,delete i.__,i}})})(ST||(ST={}))});var XR=Z1((w10,Zq)=>{var $P,FP,SP,xP,kP,_P,yP,vP,gP,uP,hP,bP,mP,Xq,HI,fP,cP,pP,FX,lP,dP,oP,nP,iP,rP,aP,sP,tP,Yq,eP,WR,GR;(function(W){var G=typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:{};if(typeof define==="function"&&define.amd)define("tslib",["exports"],function(Y){W(X(G,X(Y)))});else if(typeof Zq==="object"&&typeof w10==="object")W(X(G,X(w10)));else W(X(G));function X(Y,Z){if(Y!==G)if(typeof Object.create==="function")Object.defineProperty(Y,"__esModule",{value:!0});else Y.__esModule=!0;return function(V,Q){return Y[V]=Z?Z(V,Q):Q}}})(function(W){var G=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(V,Q){V.__proto__=Q}||function(V,Q){for(var J in Q)if(Object.prototype.hasOwnProperty.call(Q,J))V[J]=Q[J]};$P=function(V,Q){if(typeof Q!=="function"&&Q!==null)throw TypeError("Class extends value "+String(Q)+" is not a constructor or null");G(V,Q);function J(){this.constructor=V}V.prototype=Q===null?Object.create(Q):(J.prototype=Q.prototype,new J)},FP=Object.assign||function(V){for(var Q,J=1,U=arguments.length;J<U;J++){Q=arguments[J];for(var q in Q)if(Object.prototype.hasOwnProperty.call(Q,q))V[q]=Q[q]}return V},SP=function(V,Q){var J={};for(var U in V)if(Object.prototype.hasOwnProperty.call(V,U)&&Q.indexOf(U)<0)J[U]=V[U];if(V!=null&&typeof Object.getOwnPropertySymbols==="function"){for(var q=0,U=Object.getOwnPropertySymbols(V);q<U.length;q++)if(Q.indexOf(U[q])<0&&Object.prototype.propertyIsEnumerable.call(V,U[q]))J[U[q]]=V[U[q]]}return J},xP=function(V,Q,J,U){var q=arguments.length,N=q<3?Q:U===null?U=Object.getOwnPropertyDescriptor(Q,J):U,A;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")N=Reflect.decorate(V,Q,J,U);else for(var H=V.length-1;H>=0;H--)if(A=V[H])N=(q<3?A(N):q>3?A(Q,J,N):A(Q,J))||N;return q>3&&N&&Object.defineProperty(Q,J,N),N},kP=function(V,Q){return function(J,U){Q(J,U,V)}},_P=function(V,Q,J,U,q,N){function A(c){if(c!==void 0&&typeof c!=="function")throw TypeError("Function expected");return c}var H=U.kind,I=H==="getter"?"get":H==="setter"?"set":"value",w=!Q&&V?U.static?V:V.prototype:null,C=Q||(w?Object.getOwnPropertyDescriptor(w,U.name):{}),D,x=!1;for(var h=J.length-1;h>=0;h--){var l={};for(var u in U)l[u]=u==="access"?{}:U[u];for(var u in U.access)l.access[u]=U.access[u];l.addInitializer=function(c){if(x)throw TypeError("Cannot add initializers after decoration has completed");N.push(A(c||null))};var n=(0,J[h])(H==="accessor"?{get:C.get,set:C.set}:C[I],l);if(H==="accessor"){if(n===void 0)continue;if(n===null||typeof n!=="object")throw TypeError("Object expected");if(D=A(n.get))C.get=D;if(D=A(n.set))C.set=D;if(D=A(n.init))q.unshift(D)}else if(D=A(n))if(H==="field")q.unshift(D);else C[I]=D}if(w)Object.defineProperty(w,U.name,C);x=!0},yP=function(V,Q,J){var U=arguments.length>2;for(var q=0;q<Q.length;q++)J=U?Q[q].call(V,J):Q[q].call(V);return U?J:void 0},vP=function(V){return typeof V==="symbol"?V:"".concat(V)},gP=function(V,Q,J){if(typeof Q==="symbol")Q=Q.description?"[".concat(Q.description,"]"):"";return Object.defineProperty(V,"name",{configurable:!0,value:J?"".concat(J," ",Q):Q})},uP=function(V,Q){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(V,Q)},hP=function(V,Q,J,U){function q(N){return N instanceof J?N:new J(function(A){A(N)})}return new(J||(J=Promise))(function(N,A){function H(C){try{w(U.next(C))}catch(D){A(D)}}function I(C){try{w(U.throw(C))}catch(D){A(D)}}function w(C){C.done?N(C.value):q(C.value).then(H,I)}w((U=U.apply(V,Q||[])).next())})},bP=function(V,Q){var J={label:0,sent:function(){if(N[0]&1)throw N[1];return N[1]},trys:[],ops:[]},U,q,N,A=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return A.next=H(0),A.throw=H(1),A.return=H(2),typeof Symbol==="function"&&(A[Symbol.iterator]=function(){return this}),A;function H(w){return function(C){return I([w,C])}}function I(w){if(U)throw TypeError("Generator is already executing.");while(A&&(A=0,w[0]&&(J=0)),J)try{if(U=1,q&&(N=w[0]&2?q.return:w[0]?q.throw||((N=q.return)&&N.call(q),0):q.next)&&!(N=N.call(q,w[1])).done)return N;if(q=0,N)w=[w[0]&2,N.value];switch(w[0]){case 0:case 1:N=w;break;case 4:return J.label++,{value:w[1],done:!1};case 5:J.label++,q=w[1],w=[0];continue;case 7:w=J.ops.pop(),J.trys.pop();continue;default:if((N=J.trys,!(N=N.length>0&&N[N.length-1]))&&(w[0]===6||w[0]===2)){J=0;continue}if(w[0]===3&&(!N||w[1]>N[0]&&w[1]<N[3])){J.label=w[1];break}if(w[0]===6&&J.label<N[1]){J.label=N[1],N=w;break}if(N&&J.label<N[2]){J.label=N[2],J.ops.push(w);break}if(N[2])J.ops.pop();J.trys.pop();continue}w=Q.call(V,J)}catch(C){w=[6,C],q=0}finally{U=N=0}if(w[0]&5)throw w[1];return{value:w[0]?w[1]:void 0,done:!0}}},mP=function(V,Q){for(var J in V)if(J!=="default"&&!Object.prototype.hasOwnProperty.call(Q,J))Yq(Q,V,J)},Yq=Object.create?function(V,Q,J,U){if(U===void 0)U=J;var q=Object.getOwnPropertyDescriptor(Q,J);if(!q||("get"in q?!Q.__esModule:q.writable||q.configurable))q={enumerable:!0,get:function(){return Q[J]}};Object.defineProperty(V,U,q)}:function(V,Q,J,U){if(U===void 0)U=J;V[U]=Q[J]},Xq=function(V){var Q=typeof Symbol==="function"&&Symbol.iterator,J=Q&&V[Q],U=0;if(J)return J.call(V);if(V&&typeof V.length==="number")return{next:function(){if(V&&U>=V.length)V=void 0;return{value:V&&V[U++],done:!V}}};throw TypeError(Q?"Object is not iterable.":"Symbol.iterator is not defined.")},HI=function(V,Q){var J=typeof Symbol==="function"&&V[Symbol.iterator];if(!J)return V;var U=J.call(V),q,N=[],A;try{while((Q===void 0||Q-- >0)&&!(q=U.next()).done)N.push(q.value)}catch(H){A={error:H}}finally{try{if(q&&!q.done&&(J=U.return))J.call(U)}finally{if(A)throw A.error}}return N},fP=function(){for(var V=[],Q=0;Q<arguments.length;Q++)V=V.concat(HI(arguments[Q]));return V},cP=function(){for(var V=0,Q=0,J=arguments.length;Q<J;Q++)V+=arguments[Q].length;for(var U=Array(V),q=0,Q=0;Q<J;Q++)for(var N=arguments[Q],A=0,H=N.length;A<H;A++,q++)U[q]=N[A];return U},pP=function(V,Q,J){if(J||arguments.length===2){for(var U=0,q=Q.length,N;U<q;U++)if(N||!(U in Q)){if(!N)N=Array.prototype.slice.call(Q,0,U);N[U]=Q[U]}}return V.concat(N||Array.prototype.slice.call(Q))},FX=function(V){return this instanceof FX?(this.v=V,this):new FX(V)},lP=function(V,Q,J){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var U=J.apply(V,Q||[]),q,N=[];return q=Object.create((typeof AsyncIterator==="function"?AsyncIterator:Object).prototype),H("next"),H("throw"),H("return",A),q[Symbol.asyncIterator]=function(){return this},q;function A(h){return function(l){return Promise.resolve(l).then(h,D)}}function H(h,l){if(U[h]){if(q[h]=function(u){return new Promise(function(n,c){N.push([h,u,n,c])>1||I(h,u)})},l)q[h]=l(q[h])}}function I(h,l){try{w(U[h](l))}catch(u){x(N[0][3],u)}}function w(h){h.value instanceof FX?Promise.resolve(h.value.v).then(C,D):x(N[0][2],h)}function C(h){I("next",h)}function D(h){I("throw",h)}function x(h,l){if(h(l),N.shift(),N.length)I(N[0][0],N[0][1])}},dP=function(V){var Q,J;return Q={},U("next"),U("throw",function(q){throw q}),U("return"),Q[Symbol.iterator]=function(){return this},Q;function U(q,N){Q[q]=V[q]?function(A){return(J=!J)?{value:FX(V[q](A)),done:!1}:N?N(A):A}:N}},oP=function(V){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var Q=V[Symbol.asyncIterator],J;return Q?Q.call(V):(V=typeof Xq==="function"?Xq(V):V[Symbol.iterator](),J={},U("next"),U("throw"),U("return"),J[Symbol.asyncIterator]=function(){return this},J);function U(N){J[N]=V[N]&&function(A){return new Promise(function(H,I){A=V[N](A),q(H,I,A.done,A.value)})}}function q(N,A,H,I){Promise.resolve(I).then(function(w){N({value:w,done:H})},A)}},nP=function(V,Q){if(Object.defineProperty)Object.defineProperty(V,"raw",{value:Q});else V.raw=Q;return V};var X=Object.create?function(V,Q){Object.defineProperty(V,"default",{enumerable:!0,value:Q})}:function(V,Q){V.default=Q},Y=function(V){return Y=Object.getOwnPropertyNames||function(Q){var J=[];for(var U in Q)if(Object.prototype.hasOwnProperty.call(Q,U))J[J.length]=U;return J},Y(V)};iP=function(V){if(V&&V.__esModule)return V;var Q={};if(V!=null){for(var J=Y(V),U=0;U<J.length;U++)if(J[U]!=="default")Yq(Q,V,J[U])}return X(Q,V),Q},rP=function(V){return V&&V.__esModule?V:{default:V}},aP=function(V,Q,J,U){if(J==="a"&&!U)throw TypeError("Private accessor was defined without a getter");if(typeof Q==="function"?V!==Q||!U:!Q.has(V))throw TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?U:J==="a"?U.call(V):U?U.value:Q.get(V)},sP=function(V,Q,J,U,q){if(U==="m")throw TypeError("Private method is not writable");if(U==="a"&&!q)throw TypeError("Private accessor was defined without a setter");if(typeof Q==="function"?V!==Q||!q:!Q.has(V))throw TypeError("Cannot write private member to an object whose class did not declare it");return U==="a"?q.call(V,J):q?q.value=J:Q.set(V,J),J},tP=function(V,Q){if(Q===null||typeof Q!=="object"&&typeof Q!=="function")throw TypeError("Cannot use 'in' operator on non-object");return typeof V==="function"?Q===V:V.has(Q)},eP=function(V,Q,J){if(Q!==null&&Q!==void 0){if(typeof Q!=="object"&&typeof Q!=="function")throw TypeError("Object expected.");var U,q;if(J){if(!Symbol.asyncDispose)throw TypeError("Symbol.asyncDispose is not defined.");U=Q[Symbol.asyncDispose]}if(U===void 0){if(!Symbol.dispose)throw TypeError("Symbol.dispose is not defined.");if(U=Q[Symbol.dispose],J)q=U}if(typeof U!=="function")throw TypeError("Object not disposable.");if(q)U=function(){try{q.call(this)}catch(N){return Promise.reject(N)}};V.stack.push({value:Q,dispose:U,async:J})}else if(J)V.stack.push({async:!0});return Q};var Z=typeof SuppressedError==="function"?SuppressedError:function(V,Q,J){var U=Error(J);return U.name="SuppressedError",U.error=V,U.suppressed=Q,U};WR=function(V){function Q(N){V.error=V.hasError?new Z(N,V.error,"An error was suppressed during disposal."):N,V.hasError=!0}var J,U=0;function q(){while(J=V.stack.pop())try{if(!J.async&&U===1)return U=0,V.stack.push(J),Promise.resolve().then(q);if(J.dispose){var N=J.dispose.call(J.value);if(J.async)return U|=2,Promise.resolve(N).then(q,function(A){return Q(A),q()})}else U|=1}catch(A){Q(A)}if(U===1)return V.hasError?Promise.reject(V.error):Promise.resolve();if(V.hasError)throw V.error}return q()},GR=function(V,Q){if(typeof V==="string"&&/^\.\.?\//.test(V))return V.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(J,U,q,N,A){return U?Q?".jsx":".js":q&&(!N||!A)?J:q+N+"."+A.toLowerCase()+"js"});return V},W("__extends",$P),W("__assign",FP),W("__rest",SP),W("__decorate",xP),W("__param",kP),W("__esDecorate",_P),W("__runInitializers",yP),W("__propKey",vP),W("__setFunctionName",gP),W("__metadata",uP),W("__awaiter",hP),W("__generator",bP),W("__exportStar",mP),W("__createBinding",Yq),W("__values",Xq),W("__read",HI),W("__spread",fP),W("__spreadArrays",cP),W("__spreadArray",pP),W("__await",FX),W("__asyncGenerator",lP),W("__asyncDelegator",dP),W("__asyncValues",oP),W("__makeTemplateObject",nP),W("__importStar",iP),W("__importDefault",rP),W("__classPrivateFieldGet",aP),W("__classPrivateFieldSet",sP),W("__classPrivateFieldIn",tP),W("__addDisposableResource",eP),W("__disposeResources",WR),W("__rewriteRelativeImportExtension",GR)})});var zL=Z1(($Z0,fq)=>{/*! *****************************************************************************
|
|
28
28
|
Copyright (c) Microsoft Corporation.
|
|
29
29
|
|
|
30
30
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -144,7 +144,7 @@ PERFORMANCE OF THIS SOFTWARE.
|
|
|
144
144
|
this.index += bytes;
|
|
145
145
|
return value;
|
|
146
146
|
}
|
|
147
|
-
`),VN.prototype[W]=G.toFunction({assertSize:Pj})});YE.exports=VN;function Pj(W,G){if(W>G)throw new yp(W,G)}});var I8=Z1((pq0,AE)=>{var Rj=IQ(),vp=gB(),gp=mB(),up=cB(),hp=lB(),bp=nB(),VE=rB(),mp=sB(),fp=WE(),{encode:UE}=jQ(),{decode:qE}=zY(),{encodingLength:cp}=OQ(),pp=ZE(),NE=HY(),HE={array:vp,bool:up,buffer:gp,reserved:hp,string:bp,when:mp,select:fp};for(let W of Object.keys(VE))HE[W]=VE[W];var QN=Symbol("schema");function QE(W){let G=new Rj({readableObjectMode:!1,writableObjectMode:!0,transform:lp});return G[QN]=W,G}function JE(W){let G=null,X=Buffer.isBuffer(W);if(!X)G=W;let Y=new Rj({transform:dp,readableObjectMode:!0,writableObjectMode:!1});if(Y[QN]=G,X)Y.append(W);return Y}function lp(W,G,X){try{UE(W,this[QN],this);let Y=this.slice();this.consume(Y.length),X(null,Y)}catch(Y){X(Y)}}function dp(W,G,X){this.append(W);try{while(this.length>0){let Y=new pp(this),Z=qE(Y,this[QN]);Y.commit(),this.push(Z)}X()}catch(Y){if(Y instanceof NE)X();else X(Y)}}AE.exports={createEncodeStream:QE,createDecodeStream:JE,encode:UE,decode:qE,encodingLength:cp,createEncode:QE,createDecode:JE,types:HE,BinaryStream:Rj,NotEnoughDataError:NE}});var H$=Z1((q$)=>{Object.defineProperty(q$,"__esModule",{value:!0});q$.LEB128=q$.SignedLEB128=q$.UnsignedLEB128=void 0;var DY;(function(W){W[W.LOWER_7=127]="LOWER_7",W[W.UPPER_1=128]="UPPER_1"})(DY||(DY={}));var U$=(W)=>Number.isSafeInteger(W);class MY{static decode(W,G=0){let X=this.$scanForNullBytes(W,G),Y=0,Z=0;for(let V=0;V<=X-G;V++){let Q=W[G+V]&DY.LOWER_7;Y|=Q<<Z,Z+=7}return Y}static encode(W){if(this.check(W),W<0)throw Error(`An unsigned number must NOT be negative, ${W} is!`);let G=[],X=W;do{let Y=X&DY.LOWER_7;if(X>>=7,X)Y=Y|DY.UPPER_1;G.push(Y)}while(X);return Uint8Array.from(G)}static check(W){if(!U$(W))throw Error(`${W} is not a safe integer!`)}static $scanForNullBytes(W,G=0){let X=G,Y=0;do{if(X>=W.byteLength)throw Error("This is not a LEB128-encoded Uint8Array, no ending found!");Y=W.slice(X,X+1)[0],X++}while(Y&DY.UPPER_1);return X-1}static getLength(W,G=0){return this.$scanForNullBytes(W,G)-G}}q$.UnsignedLEB128=MY;class DN{static $ceil7mul(W){let G=W;while(G%7)G++;return G}static check(W){if(!U$(W))throw Error(`${W} is not a safe integer!`)}static encode(W){if(this.check(W),W>=0)throw Error(`A signed number must be negative, ${W} isn't!`);let G=Math.ceil(Math.log2(-W));return MY.encode((1<<this.$ceil7mul(G))+W)}static decode(W,G=0){let X=MY.decode(W,G);return-((1<<Math.ceil(Math.log2(X)))-X)}}q$.SignedLEB128=DN;class MN{}q$.LEB128=MN;MN.encode=(W)=>(W>=0?MY:DN).encode(W);MN.decode=(W,G=0,X=!1)=>(X?DN:MY).decode(W,G)});var z$=Z1((dj,A$)=>{/*! MIT License. Copyright 2015-2018 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */(function(W){function G(P){return parseInt(P)===P}function X(P){if(!G(P.length))return!1;for(var E=0;E<P.length;E++)if(!G(P[E])||P[E]<0||P[E]>255)return!1;return!0}function Y(P,E){if(P.buffer&&P.name==="Uint8Array"){if(E)if(P.slice)P=P.slice();else P=Array.prototype.slice.call(P);return P}if(Array.isArray(P)){if(!X(P))throw Error("Array contains invalid value: "+P);return new Uint8Array(P)}if(G(P.length)&&X(P))return new Uint8Array(P);throw Error("unsupported array-like object")}function Z(P){return new Uint8Array(P)}function V(P,E,b,k,f){if(k!=null||f!=null)if(P.slice)P=P.slice(k,f);else P=Array.prototype.slice.call(P,k,f);E.set(P,b)}var Q=function(){function P(b){var k=[],f=0;b=encodeURI(b);while(f<b.length){var e=b.charCodeAt(f++);if(e===37)k.push(parseInt(b.substr(f,2),16)),f+=2;else k.push(e)}return Y(k)}function E(b){var k=[],f=0;while(f<b.length){var e=b[f];if(e<128)k.push(String.fromCharCode(e)),f++;else if(e>191&&e<224)k.push(String.fromCharCode((e&31)<<6|b[f+1]&63)),f+=2;else k.push(String.fromCharCode((e&15)<<12|(b[f+1]&63)<<6|b[f+2]&63)),f+=3}return k.join("")}return{toBytes:P,fromBytes:E}}(),J=function(){function P(k){var f=[];for(var e=0;e<k.length;e+=2)f.push(parseInt(k.substr(e,2),16));return f}var E="0123456789abcdef";function b(k){var f=[];for(var e=0;e<k.length;e++){var q0=k[e];f.push(E[(q0&240)>>4]+E[q0&15])}return f.join("")}return{toBytes:P,fromBytes:b}}(),U={16:10,24:12,32:14},q=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],N=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],A=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],H=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],I=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],w=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],C=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],D=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],x=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],h=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239000,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],l=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998000,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],u=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],n=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],c=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239000,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],p=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998000,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function W0(P){var E=[];for(var b=0;b<P.length;b+=4)E.push(P[b]<<24|P[b+1]<<16|P[b+2]<<8|P[b+3]);return E}var m=function(P){if(!(this instanceof m))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:Y(P,!0)}),this._prepare()};m.prototype._prepare=function(){var P=U[this.key.length];if(P==null)throw Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var E=0;E<=P;E++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var b=(P+1)*4,k=this.key.length/4,f=W0(this.key),e;for(var E=0;E<k;E++)e=E>>2,this._Ke[e][E%4]=f[E],this._Kd[P-e][E%4]=f[E];var q0=0,Q0=k,$0;while(Q0<b){if($0=f[k-1],f[0]^=N[$0>>16&255]<<24^N[$0>>8&255]<<16^N[$0&255]<<8^N[$0>>24&255]^q[q0]<<24,q0+=1,k!=8)for(var E=1;E<k;E++)f[E]^=f[E-1];else{for(var E=1;E<k/2;E++)f[E]^=f[E-1];$0=f[k/2-1],f[k/2]^=N[$0&255]^N[$0>>8&255]<<8^N[$0>>16&255]<<16^N[$0>>24&255]<<24;for(var E=k/2+1;E<k;E++)f[E]^=f[E-1]}var E=0,D0,x0;while(E<k&&Q0<b)D0=Q0>>2,x0=Q0%4,this._Ke[D0][x0]=f[E],this._Kd[P-D0][x0]=f[E++],Q0++}for(var D0=1;D0<P;D0++)for(var x0=0;x0<4;x0++)$0=this._Kd[D0][x0],this._Kd[D0][x0]=u[$0>>24&255]^n[$0>>16&255]^c[$0>>8&255]^p[$0&255]},m.prototype.encrypt=function(P){if(P.length!=16)throw Error("invalid plaintext size (must be 16 bytes)");var E=this._Ke.length-1,b=[0,0,0,0],k=W0(P);for(var f=0;f<4;f++)k[f]^=this._Ke[0][f];for(var e=1;e<E;e++){for(var f=0;f<4;f++)b[f]=H[k[f]>>24&255]^I[k[(f+1)%4]>>16&255]^w[k[(f+2)%4]>>8&255]^C[k[(f+3)%4]&255]^this._Ke[e][f];k=b.slice()}var q0=Z(16),Q0;for(var f=0;f<4;f++)Q0=this._Ke[E][f],q0[4*f]=(N[k[f]>>24&255]^Q0>>24)&255,q0[4*f+1]=(N[k[(f+1)%4]>>16&255]^Q0>>16)&255,q0[4*f+2]=(N[k[(f+2)%4]>>8&255]^Q0>>8)&255,q0[4*f+3]=(N[k[(f+3)%4]&255]^Q0)&255;return q0},m.prototype.decrypt=function(P){if(P.length!=16)throw Error("invalid ciphertext size (must be 16 bytes)");var E=this._Kd.length-1,b=[0,0,0,0],k=W0(P);for(var f=0;f<4;f++)k[f]^=this._Kd[0][f];for(var e=1;e<E;e++){for(var f=0;f<4;f++)b[f]=D[k[f]>>24&255]^x[k[(f+3)%4]>>16&255]^h[k[(f+2)%4]>>8&255]^l[k[(f+1)%4]&255]^this._Kd[e][f];k=b.slice()}var q0=Z(16),Q0;for(var f=0;f<4;f++)Q0=this._Kd[E][f],q0[4*f]=(A[k[f]>>24&255]^Q0>>24)&255,q0[4*f+1]=(A[k[(f+3)%4]>>16&255]^Q0>>16)&255,q0[4*f+2]=(A[k[(f+2)%4]>>8&255]^Q0>>8)&255,q0[4*f+3]=(A[k[(f+1)%4]&255]^Q0)&255;return q0};var Y0=function(P){if(!(this instanceof Y0))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new m(P)};Y0.prototype.encrypt=function(P){if(P=Y(P),P.length%16!==0)throw Error("invalid plaintext size (must be multiple of 16 bytes)");var E=Z(P.length),b=Z(16);for(var k=0;k<P.length;k+=16)V(P,b,0,k,k+16),b=this._aes.encrypt(b),V(b,E,k);return E},Y0.prototype.decrypt=function(P){if(P=Y(P),P.length%16!==0)throw Error("invalid ciphertext size (must be multiple of 16 bytes)");var E=Z(P.length),b=Z(16);for(var k=0;k<P.length;k+=16)V(P,b,0,k,k+16),b=this._aes.decrypt(b),V(b,E,k);return E};var U0=function(P,E){if(!(this instanceof U0))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",!E)E=Z(16);else if(E.length!=16)throw Error("invalid initialation vector size (must be 16 bytes)");this._lastCipherblock=Y(E,!0),this._aes=new m(P)};U0.prototype.encrypt=function(P){if(P=Y(P),P.length%16!==0)throw Error("invalid plaintext size (must be multiple of 16 bytes)");var E=Z(P.length),b=Z(16);for(var k=0;k<P.length;k+=16){V(P,b,0,k,k+16);for(var f=0;f<16;f++)b[f]^=this._lastCipherblock[f];this._lastCipherblock=this._aes.encrypt(b),V(this._lastCipherblock,E,k)}return E},U0.prototype.decrypt=function(P){if(P=Y(P),P.length%16!==0)throw Error("invalid ciphertext size (must be multiple of 16 bytes)");var E=Z(P.length),b=Z(16);for(var k=0;k<P.length;k+=16){V(P,b,0,k,k+16),b=this._aes.decrypt(b);for(var f=0;f<16;f++)E[k+f]=b[f]^this._lastCipherblock[f];V(P,this._lastCipherblock,0,k,k+16)}return E};var y=function(P,E,b){if(!(this instanceof y))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",!E)E=Z(16);else if(E.length!=16)throw Error("invalid initialation vector size (must be 16 size)");if(!b)b=1;this.segmentSize=b,this._shiftRegister=Y(E,!0),this._aes=new m(P)};y.prototype.encrypt=function(P){if(P.length%this.segmentSize!=0)throw Error("invalid plaintext size (must be segmentSize bytes)");var E=Y(P,!0),b;for(var k=0;k<E.length;k+=this.segmentSize){b=this._aes.encrypt(this._shiftRegister);for(var f=0;f<this.segmentSize;f++)E[k+f]^=b[f];V(this._shiftRegister,this._shiftRegister,0,this.segmentSize),V(E,this._shiftRegister,16-this.segmentSize,k,k+this.segmentSize)}return E},y.prototype.decrypt=function(P){if(P.length%this.segmentSize!=0)throw Error("invalid ciphertext size (must be segmentSize bytes)");var E=Y(P,!0),b;for(var k=0;k<E.length;k+=this.segmentSize){b=this._aes.encrypt(this._shiftRegister);for(var f=0;f<this.segmentSize;f++)E[k+f]^=b[f];V(this._shiftRegister,this._shiftRegister,0,this.segmentSize),V(P,this._shiftRegister,16-this.segmentSize,k,k+this.segmentSize)}return E};var o=function(P,E){if(!(this instanceof o))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",!E)E=Z(16);else if(E.length!=16)throw Error("invalid initialation vector size (must be 16 bytes)");this._lastPrecipher=Y(E,!0),this._lastPrecipherIndex=16,this._aes=new m(P)};o.prototype.encrypt=function(P){var E=Y(P,!0);for(var b=0;b<E.length;b++){if(this._lastPrecipherIndex===16)this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0;E[b]^=this._lastPrecipher[this._lastPrecipherIndex++]}return E},o.prototype.decrypt=o.prototype.encrypt;var B=function(P){if(!(this instanceof B))throw Error("Counter must be instanitated with `new`");if(P!==0&&!P)P=1;if(typeof P==="number")this._counter=Z(16),this.setValue(P);else this.setBytes(P)};B.prototype.setValue=function(P){if(typeof P!=="number"||parseInt(P)!=P)throw Error("invalid counter value (must be an integer)");if(P>Number.MAX_SAFE_INTEGER)throw Error("integer value out of safe range");for(var E=15;E>=0;--E)this._counter[E]=P%256,P=parseInt(P/256)},B.prototype.setBytes=function(P){if(P=Y(P,!0),P.length!=16)throw Error("invalid counter bytes size (must be 16 bytes)");this._counter=P},B.prototype.increment=function(){for(var P=15;P>=0;P--)if(this._counter[P]===255)this._counter[P]=0;else{this._counter[P]++;break}};var R=function(P,E){if(!(this instanceof R))throw Error("AES must be instanitated with `new`");if(this.description="Counter",this.name="ctr",!(E instanceof B))E=new B(E);this._counter=E,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new m(P)};R.prototype.encrypt=function(P){var E=Y(P,!0);for(var b=0;b<E.length;b++){if(this._remainingCounterIndex===16)this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment();E[b]^=this._remainingCounter[this._remainingCounterIndex++]}return E},R.prototype.decrypt=R.prototype.encrypt;function _(P){P=Y(P,!0);var E=16-P.length%16,b=Z(P.length+E);V(P,b);for(var k=P.length;k<b.length;k++)b[k]=E;return b}function S(P){if(P=Y(P,!0),P.length<16)throw Error("PKCS#7 invalid length");var E=P[P.length-1];if(E>16)throw Error("PKCS#7 padding byte out of range");var b=P.length-E;for(var k=0;k<E;k++)if(P[b+k]!==E)throw Error("PKCS#7 invalid padding byte");var f=Z(b);return V(P,f,0,0,b),f}var v={AES:m,Counter:B,ModeOfOperation:{ecb:Y0,cbc:U0,cfb:y,ofb:o,ctr:R},utils:{hex:J,utf8:Q},padding:{pkcs7:{pad:_,strip:S}},_arrayTest:{coerceArray:Y,createArray:Z,copyArray:V}};if(typeof dj<"u")A$.exports=v;else if(typeof define==="function"&&define.amd)define([],function(){return v});else{if(W.aesjs)v._aesjs=W.aesjs;W.aesjs=v}})(dj)});var rj=Z1((C$)=>{var s0=C$,{Buffer:LN}=S8("buffer"),Sl=S8("os");s0.toBuffer=function(W,G,X){X=~~X;let Y;if(this.isV4Format(W))Y=G||LN.alloc(X+4),W.split(/\./g).map((Z)=>{Y[X++]=parseInt(Z,10)&255});else if(this.isV6Format(W)){let Z=W.split(":",8),V;for(V=0;V<Z.length;V++){let Q=this.isV4Format(Z[V]),J;if(Q)J=this.toBuffer(Z[V]),Z[V]=J.slice(0,2).toString("hex");if(J&&++V<8)Z.splice(V,0,J.slice(2,4).toString("hex"))}if(Z[0]==="")while(Z.length<8)Z.unshift("0");else if(Z[Z.length-1]==="")while(Z.length<8)Z.push("0");else if(Z.length<8){for(V=0;V<Z.length&&Z[V]!=="";V++);let Q=[V,1];for(V=9-Z.length;V>0;V--)Q.push("0");Z.splice(...Q)}Y=G||LN.alloc(X+16);for(V=0;V<Z.length;V++){let Q=parseInt(Z[V],16);Y[X++]=Q>>8&255,Y[X++]=Q&255}}if(!Y)throw Error(`Invalid ip address: ${W}`);return Y};s0.toString=function(W,G,X){G=~~G,X=X||W.length-G;let Y=[];if(X===4){for(let Z=0;Z<X;Z++)Y.push(W[G+Z]);Y=Y.join(".")}else if(X===16){for(let Z=0;Z<X;Z+=2)Y.push(W.readUInt16BE(G+Z).toString(16));Y=Y.join(":"),Y=Y.replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3"),Y=Y.replace(/:{3,4}/,"::")}return Y};var xl=/^(\d{1,3}\.){3,3}\d{1,3}$/,kl=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i;s0.isV4Format=function(W){return xl.test(W)};s0.isV6Format=function(W){return kl.test(W)};function $Q(W){if(W===4)return"ipv4";if(W===6)return"ipv6";return W?W.toLowerCase():"ipv4"}s0.fromPrefixLen=function(W,G){if(W>32)G="ipv6";else G=$Q(G);let X=4;if(G==="ipv6")X=16;let Y=LN.alloc(X);for(let Z=0,V=Y.length;Z<V;++Z){let Q=8;if(W<8)Q=W;W-=Q,Y[Z]=~(255>>Q)&255}return s0.toString(Y)};s0.mask=function(W,G){W=s0.toBuffer(W),G=s0.toBuffer(G);let X=LN.alloc(Math.max(W.length,G.length)),Y;if(W.length===G.length)for(Y=0;Y<W.length;Y++)X[Y]=W[Y]&G[Y];else if(G.length===4)for(Y=0;Y<G.length;Y++)X[Y]=W[W.length-4+Y]&G[Y];else{for(Y=0;Y<X.length-6;Y++)X[Y]=0;X[10]=255,X[11]=255;for(Y=0;Y<W.length;Y++)X[Y+12]=W[Y]&G[Y+12];Y+=12}for(;Y<X.length;Y++)X[Y]=0;return s0.toString(X)};s0.cidr=function(W){let G=W.split("/"),X=G[0];if(G.length!==2)throw Error(`invalid CIDR subnet: ${X}`);let Y=s0.fromPrefixLen(parseInt(G[1],10));return s0.mask(X,Y)};s0.subnet=function(W,G){let X=s0.toLong(s0.mask(W,G)),Y=s0.toBuffer(G),Z=0;for(let Q=0;Q<Y.length;Q++)if(Y[Q]===255)Z+=8;else{let J=Y[Q]&255;while(J)J=J<<1&255,Z++}let V=2**(32-Z);return{networkAddress:s0.fromLong(X),firstAddress:V<=2?s0.fromLong(X):s0.fromLong(X+1),lastAddress:V<=2?s0.fromLong(X+V-1):s0.fromLong(X+V-2),broadcastAddress:s0.fromLong(X+V-1),subnetMask:G,subnetMaskLength:Z,numHosts:V<=2?V:V-2,length:V,contains(Q){return X===s0.toLong(s0.mask(Q,G))}}};s0.cidrSubnet=function(W){let G=W.split("/"),X=G[0];if(G.length!==2)throw Error(`invalid CIDR subnet: ${X}`);let Y=s0.fromPrefixLen(parseInt(G[1],10));return s0.subnet(X,Y)};s0.not=function(W){let G=s0.toBuffer(W);for(let X=0;X<G.length;X++)G[X]=255^G[X];return s0.toString(G)};s0.or=function(W,G){if(W=s0.toBuffer(W),G=s0.toBuffer(G),W.length===G.length){for(let V=0;V<W.length;++V)W[V]|=G[V];return s0.toString(W)}let X=W,Y=G;if(G.length>W.length)X=G,Y=W;let Z=X.length-Y.length;for(let V=Z;V<X.length;++V)X[V]|=Y[V-Z];return s0.toString(X)};s0.isEqual=function(W,G){if(W=s0.toBuffer(W),G=s0.toBuffer(G),W.length===G.length){for(let Y=0;Y<W.length;Y++)if(W[Y]!==G[Y])return!1;return!0}if(G.length===4){let Y=G;G=W,W=Y}for(let Y=0;Y<10;Y++)if(G[Y]!==0)return!1;let X=G.readUInt16BE(10);if(X!==0&&X!==65535)return!1;for(let Y=0;Y<4;Y++)if(W[Y]!==G[Y+12])return!1;return!0};s0.isPrivate=function(W){if(s0.isLoopback(W))return!0;if(!s0.isV6Format(W)){let G=s0.normalizeToLong(W);if(G<0)throw Error("invalid ipv4 address");W=s0.fromLong(G)}return/^(::f{4}:)?10\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^(::f{4}:)?192\.168\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^(::f{4}:)?172\.(1[6-9]|2\d|30|31)\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^(::f{4}:)?169\.254\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^f[cd][0-9a-f]{2}:/i.test(W)||/^fe80:/i.test(W)||/^::1$/.test(W)||/^::$/.test(W)};s0.isPublic=function(W){return!s0.isPrivate(W)};s0.isLoopback=function(W){if(!/\./.test(W)&&!/:/.test(W))W=s0.fromLong(Number(W));return/^(::f{4}:)?127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/.test(W)||/^0177\./.test(W)||/^0x7f\./i.test(W)||/^fe80::1$/i.test(W)||/^::1$/.test(W)||/^::$/.test(W)};s0.loopback=function(W){if(W=$Q(W),W!=="ipv4"&&W!=="ipv6")throw Error("family must be ipv4 or ipv6");return W==="ipv4"?"127.0.0.1":"fe80::1"};s0.address=function(W,G){let X=Sl.networkInterfaces();if(G=$Q(G),W&&W!=="private"&&W!=="public"){let Z=X[W].filter((V)=>{return $Q(V.family)===G});if(Z.length===0)return;return Z[0].address}let Y=Object.keys(X).map((Z)=>{let V=X[Z].filter((Q)=>{if(Q.family=$Q(Q.family),Q.family!==G||s0.isLoopback(Q.address))return!1;if(!W)return!0;return W==="public"?s0.isPrivate(Q.address):s0.isPublic(Q.address)});return V.length?V[0].address:void 0}).filter(Boolean);return!Y.length?s0.loopback(G):Y[0]};s0.toLong=function(W){let G=0;return W.split(".").forEach((X)=>{G<<=8,G+=parseInt(X)}),G>>>0};s0.fromLong=function(W){return`${W>>>24}.${W>>16&255}.${W>>8&255}.${W&255}`};s0.normalizeToLong=function(W){let G=W.split(".").map((Z)=>{if(Z.startsWith("0x")||Z.startsWith("0X"))return parseInt(Z,16);else if(Z.startsWith("0")&&Z!=="0"&&/^[0-7]+$/.test(Z))return parseInt(Z,8);else if(/^[1-9]\d*$/.test(Z)||Z==="0")return parseInt(Z,10);else return NaN});if(G.some(isNaN))return-1;let X=0;switch(G.length){case 1:X=G[0];break;case 2:if(G[0]>255||G[1]>16777215)return-1;X=G[0]<<24|G[1]&16777215;break;case 3:if(G[0]>255||G[1]>255||G[2]>65535)return-1;X=G[0]<<24|G[1]<<16|G[2]&65535;break;case 4:if(G.some((Z)=>Z>255))return-1;X=G[0]<<24|G[1]<<16|G[2]<<8|G[3];break;default:return-1}return X>>>0}});var M$=Z1((SN0,D$)=>{D$.exports=function W(G,X){if(G===X)return!0;if(G&&X&&typeof G=="object"&&typeof X=="object"){if(G.constructor!==X.constructor)return!1;var Y,Z,V;if(Array.isArray(G)){if(Y=G.length,Y!=X.length)return!1;for(Z=Y;Z--!==0;)if(!W(G[Z],X[Z]))return!1;return!0}if(G.constructor===RegExp)return G.source===X.source&&G.flags===X.flags;if(G.valueOf!==Object.prototype.valueOf)return G.valueOf()===X.valueOf();if(G.toString!==Object.prototype.toString)return G.toString()===X.toString();if(V=Object.keys(G),Y=V.length,Y!==Object.keys(X).length)return!1;for(Z=Y;Z--!==0;)if(!Object.prototype.hasOwnProperty.call(X,V[Z]))return!1;for(Z=Y;Z--!==0;){var Q=V[Z];if(!W(G[Q],X[Q]))return!1}return!0}return G!==G&&X!==X}});var T$=Z1((_l)=>{_l.toString=function(W){switch(W){case 1:return"A";case 10:return"NULL";case 28:return"AAAA";case 18:return"AFSDB";case 42:return"APL";case 257:return"CAA";case 60:return"CDNSKEY";case 59:return"CDS";case 37:return"CERT";case 5:return"CNAME";case 49:return"DHCID";case 32769:return"DLV";case 39:return"DNAME";case 48:return"DNSKEY";case 43:return"DS";case 55:return"HIP";case 13:return"HINFO";case 45:return"IPSECKEY";case 25:return"KEY";case 36:return"KX";case 29:return"LOC";case 15:return"MX";case 35:return"NAPTR";case 2:return"NS";case 47:return"NSEC";case 50:return"NSEC3";case 51:return"NSEC3PARAM";case 12:return"PTR";case 46:return"RRSIG";case 17:return"RP";case 24:return"SIG";case 6:return"SOA";case 99:return"SPF";case 33:return"SRV";case 44:return"SSHFP";case 32768:return"TA";case 249:return"TKEY";case 52:return"TLSA";case 250:return"TSIG";case 16:return"TXT";case 252:return"AXFR";case 251:return"IXFR";case 41:return"OPT";case 255:return"ANY"}return"UNKNOWN_"+W};_l.toType=function(W){switch(W.toUpperCase()){case"A":return 1;case"NULL":return 10;case"AAAA":return 28;case"AFSDB":return 18;case"APL":return 42;case"CAA":return 257;case"CDNSKEY":return 60;case"CDS":return 59;case"CERT":return 37;case"CNAME":return 5;case"DHCID":return 49;case"DLV":return 32769;case"DNAME":return 39;case"DNSKEY":return 48;case"DS":return 43;case"HIP":return 55;case"HINFO":return 13;case"IPSECKEY":return 45;case"KEY":return 25;case"KX":return 36;case"LOC":return 29;case"MX":return 15;case"NAPTR":return 35;case"NS":return 2;case"NSEC":return 47;case"NSEC3":return 50;case"NSEC3PARAM":return 51;case"PTR":return 12;case"RRSIG":return 46;case"RP":return 17;case"SIG":return 24;case"SOA":return 6;case"SPF":return 99;case"SRV":return 33;case"SSHFP":return 44;case"TA":return 32768;case"TKEY":return 249;case"TLSA":return 52;case"TSIG":return 250;case"TXT":return 16;case"AXFR":return 252;case"IXFR":return 251;case"OPT":return 41;case"ANY":return 255;case"*":return 255}if(W.toUpperCase().startsWith("UNKNOWN_"))return parseInt(W.slice(8));return 0}});var P$=Z1((gl)=>{gl.toString=function(W){switch(W){case 0:return"NOERROR";case 1:return"FORMERR";case 2:return"SERVFAIL";case 3:return"NXDOMAIN";case 4:return"NOTIMP";case 5:return"REFUSED";case 6:return"YXDOMAIN";case 7:return"YXRRSET";case 8:return"NXRRSET";case 9:return"NOTAUTH";case 10:return"NOTZONE";case 11:return"RCODE_11";case 12:return"RCODE_12";case 13:return"RCODE_13";case 14:return"RCODE_14";case 15:return"RCODE_15"}return"RCODE_"+W};gl.toRcode=function(W){switch(W.toUpperCase()){case"NOERROR":return 0;case"FORMERR":return 1;case"SERVFAIL":return 2;case"NXDOMAIN":return 3;case"NOTIMP":return 4;case"REFUSED":return 5;case"YXDOMAIN":return 6;case"YXRRSET":return 7;case"NXRRSET":return 8;case"NOTAUTH":return 9;case"NOTZONE":return 10;case"RCODE_11":return 11;case"RCODE_12":return 12;case"RCODE_13":return 13;case"RCODE_14":return 14;case"RCODE_15":return 15}return 0}});var R$=Z1((bl)=>{bl.toString=function(W){switch(W){case 0:return"QUERY";case 1:return"IQUERY";case 2:return"STATUS";case 3:return"OPCODE_3";case 4:return"NOTIFY";case 5:return"UPDATE";case 6:return"OPCODE_6";case 7:return"OPCODE_7";case 8:return"OPCODE_8";case 9:return"OPCODE_9";case 10:return"OPCODE_10";case 11:return"OPCODE_11";case 12:return"OPCODE_12";case 13:return"OPCODE_13";case 14:return"OPCODE_14";case 15:return"OPCODE_15"}return"OPCODE_"+W};bl.toOpcode=function(W){switch(W.toUpperCase()){case"QUERY":return 0;case"IQUERY":return 1;case"STATUS":return 2;case"OPCODE_3":return 3;case"NOTIFY":return 4;case"UPDATE":return 5;case"OPCODE_6":return 6;case"OPCODE_7":return 7;case"OPCODE_8":return 8;case"OPCODE_9":return 9;case"OPCODE_10":return 10;case"OPCODE_11":return 11;case"OPCODE_12":return 12;case"OPCODE_13":return 13;case"OPCODE_14":return 14;case"OPCODE_15":return 15}return 0}});var L$=Z1((cl)=>{cl.toString=function(W){switch(W){case 1:return"IN";case 2:return"CS";case 3:return"CH";case 4:return"HS";case 255:return"ANY"}return"UNKNOWN_"+W};cl.toClass=function(W){switch(W.toUpperCase()){case"IN":return 1;case"CS":return 2;case"CH":return 3;case"HS":return 4;case"ANY":return 255}return 0}});var B$=Z1((dl)=>{dl.toString=function(W){switch(W){case 1:return"LLQ";case 2:return"UL";case 3:return"NSID";case 5:return"DAU";case 6:return"DHU";case 7:return"N3U";case 8:return"CLIENT_SUBNET";case 9:return"EXPIRE";case 10:return"COOKIE";case 11:return"TCP_KEEPALIVE";case 12:return"PADDING";case 13:return"CHAIN";case 14:return"KEY_TAG";case 26946:return"DEVICEID"}if(W<0)return null;return`OPTION_${W}`};dl.toCode=function(W){if(typeof W==="number")return W;if(!W)return-1;switch(W.toUpperCase()){case"OPTION_0":return 0;case"LLQ":return 1;case"UL":return 2;case"NSID":return 3;case"OPTION_4":return 4;case"DAU":return 5;case"DHU":return 6;case"N3U":return 7;case"CLIENT_SUBNET":return 8;case"EXPIRE":return 9;case"COOKIE":return 10;case"TCP_KEEPALIVE":return 11;case"PADDING":return 12;case"CHAIN":return 13;case"KEY_TAG":return 14;case"DEVICEID":return 26946;case"OPTION_65535":return 65535}let G=W.match(/_(\d+)$/);if(G)return parseInt(G[1],10);return-1}});var F$=Z1(($$,aj)=>{var E$=function(W){Object.defineProperty(W,"__esModule",{value:!0}),W.decode=A,W.encode=N,W.familyOf=q,W.name=void 0,W.sizeOf=U,W.v6=W.v4=void 0;let G=/^(\d{1,3}\.){3,3}\d{1,3}$/,X=4,Y=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i,Z=16,V={name:"v4",size:X,isFormat:(H)=>G.test(H),encode(H,I,w){w=~~w,I=I||new Uint8Array(w+X);let C=H.length,D=0;for(let x=0;x<C;){let h=H.charCodeAt(x++);if(h===46)I[w++]=D,D=0;else D=D*10+(h-48)}return I[w]=D,I},decode(H,I){return I=~~I,`${H[I++]}.${H[I++]}.${H[I++]}.${H[I]}`}};W.v4=V;let Q={name:"v6",size:Z,isFormat:(H)=>H.length>0&&Y.test(H),encode(H,I,w){w=~~w;let C=w+Z,D=-1,x=0,h=0,l=!0,u=!1;I=I||new Uint8Array(w+Z);for(let n=0;n<H.length;n++){let c=H.charCodeAt(n);if(c===58){if(l){if(D!==-1){if(w<C)I[w]=0;if(w<C-1)I[w+1]=0;w+=2}else if(w<C)D=w}else{if(u===!0){if(w<C)I[w]=h;w++}else{if(w<C)I[w]=x>>8;if(w<C-1)I[w+1]=x&255;w+=2}x=0,h=0}l=!0,u=!1}else if(c===46){if(w<C)I[w]=h;w++,h=0,x=0,l=!1,u=!0}else{if(l=!1,c>=97)c-=87;else if(c>=65)c-=55;else c-=48,h=h*10+c;x=(x<<4)+c}}if(l===!1)if(u===!0){if(w<C)I[w]=h;w++}else{if(w<C)I[w]=x>>8;if(w<C-1)I[w+1]=x&255;w+=2}else if(D===0){if(w<C)I[w]=0;if(w<C-1)I[w+1]=0;w+=2}else if(D!==-1){w+=2;for(let n=Math.min(w-1,C-1);n>=D+2;n--)I[n]=I[n-2];I[D]=0,I[D+1]=0,D=w}if(D!==w&&D!==-1){if(w>C-2)w=C-2;while(C>D)I[--C]=w<C&&w>D?I[--w]:0}else while(w<C)I[w++]=0;return I},decode(H,I){I=~~I;let w="";for(let C=0;C<Z;C+=2){if(C!==0)w+=":";w+=(H[I+C]<<8|H[I+C+1]).toString(16)}return w.replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}};W.v6=Q;let J="ip";W.name=J;function U(H){if(V.isFormat(H))return V.size;if(Q.isFormat(H))return Q.size;throw Error(`Invalid ip address: ${H}`)}function q(H){return U(H)===V.size?1:2}function N(H,I,w){w=~~w;let C=U(H);if(typeof I==="function")I=I(w+C);if(C===V.size)return V.encode(H,I,w);return Q.encode(H,I,w)}function A(H,I,w){if(I=~~I,w=w||H.length-I,w===V.size)return V.decode(H,I,w);if(w===Q.size)return Q.decode(H,I,w);throw Error(`Invalid buffer size needs to be ${V.size} for v4 or ${Q.size} for v6.`)}return"default"in W?W.default:W}({});if(typeof define==="function"&&define.amd)define([],function(){return E$});else if(typeof aj==="object"&&typeof $$==="object")aj.exports=E$});var S$=Z1((tl)=>{var G1=S8("buffer").Buffer,h4=T$(),il=P$(),rl=R$(),EN=L$(),ej=B$(),jG=F$(),y0=tl.name={};y0.encode=function(W,G,X,{mail:Y=!1}={}){if(!G)G=G1.alloc(y0.encodingLength(W));if(!X)X=0;let Z=X,V=W.replace(/^\.|\.$/gm,"");if(V.length){let Q=[];if(Y){let J="";V.split(".").forEach((U)=>{if(U.endsWith("\\"))J+=(J.length?".":"")+U.slice(0,-1);else if(Q.length===0&&J.length)Q.push(J+"."+U);else Q.push(U)})}else Q=V.split(".");for(let J=0;J<Q.length;J++){let U=G.write(Q[J],X+1);G[X]=U,X+=U+1}}return G[X++]=0,y0.encode.bytes=X-Z,G};y0.encode.bytes=0;y0.decode=function(W,G,{mail:X=!1}={}){if(!G)G=0;let Y=[],Z=G,V=0,Q=0,J=!1;while(!0){if(G>=W.length)throw Error("Cannot decode name (buffer overflow)");let U=W[G++];if(Q+=J?0:1,U===0)break;else if((U&192)===0){if(G+U>W.length)throw Error("Cannot decode name (buffer overflow)");if(V+=U+1,V>254)throw Error("Cannot decode name (name too long)");let q=W.toString("utf-8",G,G+U);if(X)q=q.replace(/\./g,"\\.");Y.push(q),G+=U,Q+=J?0:U}else if((U&192)===192){if(G+1>W.length)throw Error("Cannot decode name (buffer overflow)");let q=W.readUInt16BE(G-1)-49152;if(q>=Z)throw Error("Cannot decode name (bad pointer)");G=q,Z=q,Q+=J?0:1,J=!0}else throw Error("Cannot decode name (bad label)")}return y0.decode.bytes=Q,Y.length===0?".":Y.join(".")};y0.decode.bytes=0;y0.encodingLength=function(W){if(W==="."||W==="..")return 1;return G1.byteLength(W.replace(/^\.|\.$/gm,""))+2};var S1={};S1.encode=function(W,G,X){if(!G)G=G1.alloc(S1.encodingLength(W));if(!X)X=0;let Y=G.write(W,X+1);return G[X]=Y,S1.encode.bytes=Y+1,G};S1.encode.bytes=0;S1.decode=function(W,G){if(!G)G=0;let X=W[G],Y=W.toString("utf-8",G+1,G+1+X);return S1.decode.bytes=X+1,Y};S1.decode.bytes=0;S1.encodingLength=function(W){return G1.byteLength(W)+1};var r5={};r5.encode=function(W,G,X){if(!G)G=r5.encodingLength(W);if(!X)X=0;let Y=(W.flags||0)&32767,Z=W.type==="response"?32768:0;return G.writeUInt16BE(W.id||0,X),G.writeUInt16BE(Y|Z,X+2),G.writeUInt16BE(W.questions.length,X+4),G.writeUInt16BE(W.answers.length,X+6),G.writeUInt16BE(W.authorities.length,X+8),G.writeUInt16BE(W.additionals.length,X+10),G};r5.encode.bytes=12;r5.decode=function(W,G){if(!G)G=0;if(W.length<12)throw Error("Header must be 12 bytes");let X=W.readUInt16BE(G+2);return{id:W.readUInt16BE(G),type:X&32768?"response":"query",flags:X&32767,flag_qr:(X>>15&1)===1,opcode:rl.toString(X>>11&15),flag_aa:(X>>10&1)===1,flag_tc:(X>>9&1)===1,flag_rd:(X>>8&1)===1,flag_ra:(X>>7&1)===1,flag_z:(X>>6&1)===1,flag_ad:(X>>5&1)===1,flag_cd:(X>>4&1)===1,rcode:il.toString(X&15),questions:Array(W.readUInt16BE(G+4)),answers:Array(W.readUInt16BE(G+6)),authorities:Array(W.readUInt16BE(G+8)),additionals:Array(W.readUInt16BE(G+10))}};r5.decode.bytes=12;r5.encodingLength=function(){return 12};var F4=tl.unknown={};F4.encode=function(W,G,X){if(!G)G=G1.alloc(F4.encodingLength(W));if(!X)X=0;return G.writeUInt16BE(W.length,X),W.copy(G,X+2),F4.encode.bytes=W.length+2,G};F4.encode.bytes=0;F4.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G),Y=W.slice(G+2,G+2+X);return F4.decode.bytes=X+2,Y};F4.decode.bytes=0;F4.encodingLength=function(W){return W.length+2};var S4=tl.ns={};S4.encode=function(W,G,X){if(!G)G=G1.alloc(S4.encodingLength(W));if(!X)X=0;return y0.encode(W,G,X+2),G.writeUInt16BE(y0.encode.bytes,X),S4.encode.bytes=y0.encode.bytes+2,G};S4.encode.bytes=0;S4.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G),Y=y0.decode(W,G+2);return S4.decode.bytes=X+2,Y};S4.decode.bytes=0;S4.encodingLength=function(W){return y0.encodingLength(W)+2};var x4=tl.soa={};x4.encode=function(W,G,X){if(!G)G=G1.alloc(x4.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,y0.encode(W.mname,G,X),X+=y0.encode.bytes,y0.encode(W.rname,G,X,{mail:!0}),X+=y0.encode.bytes,G.writeUInt32BE(W.serial||0,X),X+=4,G.writeUInt32BE(W.refresh||0,X),X+=4,G.writeUInt32BE(W.retry||0,X),X+=4,G.writeUInt32BE(W.expire||0,X),X+=4,G.writeUInt32BE(W.minimum||0,X),X+=4,G.writeUInt16BE(X-Y-2,Y),x4.encode.bytes=X-Y,G};x4.encode.bytes=0;x4.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.mname=y0.decode(W,G),G+=y0.decode.bytes,Y.rname=y0.decode(W,G,{mail:!0}),G+=y0.decode.bytes,Y.serial=W.readUInt32BE(G),G+=4,Y.refresh=W.readUInt32BE(G),G+=4,Y.retry=W.readUInt32BE(G),G+=4,Y.expire=W.readUInt32BE(G),G+=4,Y.minimum=W.readUInt32BE(G),G+=4,x4.decode.bytes=G-X,Y};x4.decode.bytes=0;x4.encodingLength=function(W){return 22+y0.encodingLength(W.mname)+y0.encodingLength(W.rname)};var k4=tl.txt={};k4.encode=function(W,G,X){if(!Array.isArray(W))W=[W];for(let Z=0;Z<W.length;Z++){if(typeof W[Z]==="string")W[Z]=G1.from(W[Z]);if(!G1.isBuffer(W[Z]))throw Error("Must be a Buffer")}if(!G)G=G1.alloc(k4.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,W.forEach(function(Z){G[X++]=Z.length,Z.copy(G,X,0,Z.length),X+=Z.length}),G.writeUInt16BE(X-Y-2,Y),k4.encode.bytes=X-Y,G};k4.encode.bytes=0;k4.decode=function(W,G){if(!G)G=0;let X=G,Y=W.readUInt16BE(G);G+=2;let Z=[];while(Y>0){let V=W[G++];if(--Y,Y<V)throw Error("Buffer overflow");Z.push(W.slice(G,G+V)),G+=V,Y-=V}return k4.decode.bytes=G-X,Z};k4.decode.bytes=0;k4.encodingLength=function(W){if(!Array.isArray(W))W=[W];let G=2;return W.forEach(function(X){if(typeof X==="string")G+=G1.byteLength(X)+1;else G+=X.length+1}),G};var _4=tl.null={};_4.encode=function(W,G,X){if(!G)G=G1.alloc(_4.encodingLength(W));if(!X)X=0;if(typeof W==="string")W=G1.from(W);if(!W)W=G1.alloc(0);let Y=X;X+=2;let Z=W.length;return W.copy(G,X,0,Z),X+=Z,G.writeUInt16BE(X-Y-2,Y),_4.encode.bytes=X-Y,G};_4.encode.bytes=0;_4.decode=function(W,G){if(!G)G=0;let X=G,Y=W.readUInt16BE(G);G+=2;let Z=W.slice(G,G+Y);return G+=Y,_4.decode.bytes=G-X,Z};_4.decode.bytes=0;_4.encodingLength=function(W){if(!W)return 2;return(G1.isBuffer(W)?W.length:G1.byteLength(W))+2};var y4=tl.hinfo={};y4.encode=function(W,G,X){if(!G)G=G1.alloc(y4.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,S1.encode(W.cpu,G,X),X+=S1.encode.bytes,S1.encode(W.os,G,X),X+=S1.encode.bytes,G.writeUInt16BE(X-Y-2,Y),y4.encode.bytes=X-Y,G};y4.encode.bytes=0;y4.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.cpu=S1.decode(W,G),G+=S1.decode.bytes,Y.os=S1.decode(W,G),G+=S1.decode.bytes,y4.decode.bytes=G-X,Y};y4.decode.bytes=0;y4.encodingLength=function(W){return S1.encodingLength(W.cpu)+S1.encodingLength(W.os)+2};var n5=tl.ptr={},al=tl.cname=n5,sl=tl.dname=n5;n5.encode=function(W,G,X){if(!G)G=G1.alloc(n5.encodingLength(W));if(!X)X=0;return y0.encode(W,G,X+2),G.writeUInt16BE(y0.encode.bytes,X),n5.encode.bytes=y0.encode.bytes+2,G};n5.encode.bytes=0;n5.decode=function(W,G){if(!G)G=0;let X=y0.decode(W,G+2);return n5.decode.bytes=y0.decode.bytes+2,X};n5.decode.bytes=0;n5.encodingLength=function(W){return y0.encodingLength(W)+2};var v4=tl.srv={};v4.encode=function(W,G,X){if(!G)G=G1.alloc(v4.encodingLength(W));if(!X)X=0;G.writeUInt16BE(W.priority||0,X+2),G.writeUInt16BE(W.weight||0,X+4),G.writeUInt16BE(W.port||0,X+6),y0.encode(W.target,G,X+8);let Y=y0.encode.bytes+6;return G.writeUInt16BE(Y,X),v4.encode.bytes=Y+2,G};v4.encode.bytes=0;v4.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G),Y={};return Y.priority=W.readUInt16BE(G+2),Y.weight=W.readUInt16BE(G+4),Y.port=W.readUInt16BE(G+6),Y.target=y0.decode(W,G+8),v4.decode.bytes=X+2,Y};v4.decode.bytes=0;v4.encodingLength=function(W){return 8+y0.encodingLength(W.target)};var Q5=tl.caa={};Q5.ISSUER_CRITICAL=128;Q5.encode=function(W,G,X){let Y=Q5.encodingLength(W);if(!G)G=G1.alloc(Q5.encodingLength(W));if(!X)X=0;if(W.issuerCritical)W.flags=Q5.ISSUER_CRITICAL;return G.writeUInt16BE(Y-2,X),X+=2,G.writeUInt8(W.flags||0,X),X+=1,S1.encode(W.tag,G,X),X+=S1.encode.bytes,G.write(W.value,X),X+=G1.byteLength(W.value),Q5.encode.bytes=Y,G};Q5.encode.bytes=0;Q5.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G);G+=2;let Y=G,Z={};return Z.flags=W.readUInt8(G),G+=1,Z.tag=S1.decode(W,G),G+=S1.decode.bytes,Z.value=W.toString("utf-8",G,Y+X),Z.issuerCritical=!!(Z.flags&Q5.ISSUER_CRITICAL),Q5.decode.bytes=X+2,Z};Q5.decode.bytes=0;Q5.encodingLength=function(W){return S1.encodingLength(W.tag)+S1.encodingLength(W.value)+2};var o6=tl.mx={};o6.encode=function(W,G,X){if(!G)G=G1.alloc(o6.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,G.writeUInt16BE(W.preference||0,X),X+=2,y0.encode(W.exchange,G,X),X+=y0.encode.bytes,G.writeUInt16BE(X-Y-2,Y),o6.encode.bytes=X-Y,G};o6.encode.bytes=0;o6.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.preference=W.readUInt16BE(G),G+=2,Y.exchange=y0.decode(W,G),G+=y0.decode.bytes,o6.decode.bytes=G-X,Y};o6.encodingLength=function(W){return 4+y0.encodingLength(W.exchange)};var g4=tl.a={};g4.encode=function(W,G,X){if(!G)G=G1.alloc(g4.encodingLength(W));if(!X)X=0;return G.writeUInt16BE(4,X),X+=2,jG.v4.encode(W,G,X),g4.encode.bytes=6,G};g4.encode.bytes=0;g4.decode=function(W,G){if(!G)G=0;G+=2;let X=jG.v4.decode(W,G);return g4.decode.bytes=6,X};g4.decode.bytes=0;g4.encodingLength=function(){return 6};var u4=tl.aaaa={};u4.encode=function(W,G,X){if(!G)G=G1.alloc(u4.encodingLength(W));if(!X)X=0;return G.writeUInt16BE(16,X),X+=2,jG.v6.encode(W,G,X),u4.encode.bytes=18,G};u4.encode.bytes=0;u4.decode=function(W,G){if(!G)G=0;G+=2;let X=jG.v6.decode(W,G);return u4.decode.bytes=18,X};u4.decode.bytes=0;u4.encodingLength=function(){return 18};var n9=tl.option={};n9.encode=function(W,G,X){if(!G)G=G1.alloc(n9.encodingLength(W));if(!X)X=0;let Y=X,Z=ej.toCode(W.code);if(G.writeUInt16BE(Z,X),X+=2,W.data)G.writeUInt16BE(W.data.length,X),X+=2,W.data.copy(G,X),X+=W.data.length;else switch(Z){case 8:let V=W.sourcePrefixLength||0,Q=W.family||jG.familyOf(W.ip),J=jG.encode(W.ip,G1.alloc),U=Math.ceil(V/8);G.writeUInt16BE(U+4,X),X+=2,G.writeUInt16BE(Q,X),X+=2,G.writeUInt8(V,X++),G.writeUInt8(W.scopePrefixLength||0,X++),J.copy(G,X,0,U),X+=U;break;case 11:if(W.timeout)G.writeUInt16BE(2,X),X+=2,G.writeUInt16BE(W.timeout,X),X+=2;else G.writeUInt16BE(0,X),X+=2;break;case 12:let q=W.length||0;G.writeUInt16BE(q,X),X+=2,G.fill(0,X,X+q),X+=q;break;case 14:let N=W.tags.length*2;G.writeUInt16BE(N,X),X+=2;for(let A of W.tags)G.writeUInt16BE(A,X),X+=2;break;default:throw Error(`Unknown roption code: ${W.code}`)}return n9.encode.bytes=X-Y,G};n9.encode.bytes=0;n9.decode=function(W,G){if(!G)G=0;let X={};X.code=W.readUInt16BE(G),X.type=ej.toString(X.code),G+=2;let Y=W.readUInt16BE(G);switch(G+=2,X.data=W.slice(G,G+Y),X.code){case 8:X.family=W.readUInt16BE(G),G+=2,X.sourcePrefixLength=W.readUInt8(G++),X.scopePrefixLength=W.readUInt8(G++);let Z=G1.alloc(X.family===1?4:16);W.copy(Z,0,G,G+Y-4),X.ip=jG.decode(Z);break;case 11:if(Y>0)X.timeout=W.readUInt16BE(G),G+=2;break;case 14:X.tags=[];for(let V=0;V<Y;V+=2)X.tags.push(W.readUInt16BE(G)),G+=2}return n9.decode.bytes=Y+4,X};n9.decode.bytes=0;n9.encodingLength=function(W){if(W.data)return W.data.length+4;switch(ej.toCode(W.code)){case 8:let X=W.sourcePrefixLength||0;return Math.ceil(X/8)+8;case 11:return typeof W.timeout==="number"?6:4;case 12:return W.length+4;case 14:return 4+W.tags.length*2}throw Error(`Unknown roption code: ${W.code}`)};var U5=tl.opt={};U5.encode=function(W,G,X){if(!G)G=G1.alloc(U5.encodingLength(W));if(!X)X=0;let Y=X,Z=BY(W,n9);return G.writeUInt16BE(Z,X),X=FQ(W,n9,G,X+2),U5.encode.bytes=X-Y,G};U5.encode.bytes=0;U5.decode=function(W,G){if(!G)G=0;let X=G,Y=[],Z=W.readUInt16BE(G);G+=2;let V=0;while(Z>0)Y[V++]=n9.decode(W,G),G+=n9.decode.bytes,Z-=n9.decode.bytes;return U5.decode.bytes=G-X,Y};U5.decode.bytes=0;U5.encodingLength=function(W){return 2+BY(W||[],n9)};var y9=tl.dnskey={};y9.PROTOCOL_DNSSEC=3;y9.ZONE_KEY=128;y9.SECURE_ENTRYPOINT=32768;y9.encode=function(W,G,X){if(!G)G=G1.alloc(y9.encodingLength(W));if(!X)X=0;let Y=X,Z=W.key;if(!G1.isBuffer(Z))throw Error("Key must be a Buffer");return X+=2,G.writeUInt16BE(W.flags,X),X+=2,G.writeUInt8(y9.PROTOCOL_DNSSEC,X),X+=1,G.writeUInt8(W.algorithm,X),X+=1,Z.copy(G,X,0,Z.length),X+=Z.length,y9.encode.bytes=X-Y,G.writeUInt16BE(y9.encode.bytes-2,Y),G};y9.encode.bytes=0;y9.decode=function(W,G){if(!G)G=0;let X=G;var Y={},Z=W.readUInt16BE(G);if(G+=2,Y.flags=W.readUInt16BE(G),G+=2,W.readUInt8(G)!==y9.PROTOCOL_DNSSEC)throw Error("Protocol must be 3");return G+=1,Y.algorithm=W.readUInt8(G),G+=1,Y.key=W.slice(G,X+Z+2),G+=Y.key.length,y9.decode.bytes=G-X,Y};y9.decode.bytes=0;y9.encodingLength=function(W){return 6+G1.byteLength(W.key)};var S7=tl.rrsig={};S7.encode=function(W,G,X){if(!G)G=G1.alloc(S7.encodingLength(W));if(!X)X=0;let Y=X,Z=W.signature;if(!G1.isBuffer(Z))throw Error("Signature must be a Buffer");return X+=2,G.writeUInt16BE(h4.toType(W.typeCovered),X),X+=2,G.writeUInt8(W.algorithm,X),X+=1,G.writeUInt8(W.labels,X),X+=1,G.writeUInt32BE(W.originalTTL,X),X+=4,G.writeUInt32BE(W.expiration,X),X+=4,G.writeUInt32BE(W.inception,X),X+=4,G.writeUInt16BE(W.keyTag,X),X+=2,y0.encode(W.signersName,G,X),X+=y0.encode.bytes,Z.copy(G,X,0,Z.length),X+=Z.length,S7.encode.bytes=X-Y,G.writeUInt16BE(S7.encode.bytes-2,Y),G};S7.encode.bytes=0;S7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},Z=W.readUInt16BE(G);return G+=2,Y.typeCovered=h4.toString(W.readUInt16BE(G)),G+=2,Y.algorithm=W.readUInt8(G),G+=1,Y.labels=W.readUInt8(G),G+=1,Y.originalTTL=W.readUInt32BE(G),G+=4,Y.expiration=W.readUInt32BE(G),G+=4,Y.inception=W.readUInt32BE(G),G+=4,Y.keyTag=W.readUInt16BE(G),G+=2,Y.signersName=y0.decode(W,G),G+=y0.decode.bytes,Y.signature=W.slice(G,X+Z+2),G+=Y.signature.length,S7.decode.bytes=G-X,Y};S7.decode.bytes=0;S7.encodingLength=function(W){return 20+y0.encodingLength(W.signersName)+G1.byteLength(W.signature)};var x7=tl.rp={};x7.encode=function(W,G,X){if(!G)G=G1.alloc(x7.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,y0.encode(W.mbox||".",G,X,{mail:!0}),X+=y0.encode.bytes,y0.encode(W.txt||".",G,X),X+=y0.encode.bytes,x7.encode.bytes=X-Y,G.writeUInt16BE(x7.encode.bytes-2,Y),G};x7.encode.bytes=0;x7.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.mbox=y0.decode(W,G,{mail:!0})||".",G+=y0.decode.bytes,Y.txt=y0.decode(W,G)||".",G+=y0.decode.bytes,x7.decode.bytes=G-X,Y};x7.decode.bytes=0;x7.encodingLength=function(W){return 2+y0.encodingLength(W.mbox||".")+y0.encodingLength(W.txt||".")};var n8={};n8.encode=function(W,G,X){if(!G)G=G1.alloc(n8.encodingLength(W));if(!X)X=0;let Y=X;var Z=[];for(var V=0;V<W.length;V++){var Q=h4.toType(W[V]);if(Z[Q>>8]===void 0)Z[Q>>8]=[];Z[Q>>8][Q>>3&31]|=1<<7-(Q&7)}for(V=0;V<Z.length;V++)if(Z[V]!==void 0){var J=G1.from(Z[V]);G.writeUInt8(V,X),X+=1,G.writeUInt8(J.length,X),X+=1,J.copy(G,X),X+=J.length}return n8.encode.bytes=X-Y,G};n8.encode.bytes=0;n8.decode=function(W,G,X){if(!G)G=0;let Y=G;var Z=[];while(G-Y<X){var V=W.readUInt8(G);G+=1;var Q=W.readUInt8(G);G+=1;for(var J=0;J<Q;J++){var U=W.readUInt8(G+J);for(var q=0;q<8;q++)if(U&1<<7-q){var N=h4.toString(V<<8|J<<3|q);Z.push(N)}}G+=Q}return n8.decode.bytes=G-Y,Z};n8.decode.bytes=0;n8.encodingLength=function(W){var G=[];for(var X=0;X<W.length;X++){var Y=h4.toType(W[X]);G[Y>>8]=Math.max(G[Y>>8]||0,Y&255)}var Z=0;for(X=0;X<G.length;X++)if(G[X]!==void 0)Z+=2+Math.ceil((G[X]+1)/8);return Z};var k7=tl.nsec={};k7.encode=function(W,G,X){if(!G)G=G1.alloc(k7.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,y0.encode(W.nextDomain,G,X),X+=y0.encode.bytes,n8.encode(W.rrtypes,G,X),X+=n8.encode.bytes,k7.encode.bytes=X-Y,G.writeUInt16BE(k7.encode.bytes-2,Y),G};k7.encode.bytes=0;k7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},Z=W.readUInt16BE(G);return G+=2,Y.nextDomain=y0.decode(W,G),G+=y0.decode.bytes,Y.rrtypes=n8.decode(W,G,Z-(G-X)),G+=n8.decode.bytes,k7.decode.bytes=G-X,Y};k7.decode.bytes=0;k7.encodingLength=function(W){return 2+y0.encodingLength(W.nextDomain)+n8.encodingLength(W.rrtypes)};var _7=tl.nsec3={};_7.encode=function(W,G,X){if(!G)G=G1.alloc(_7.encodingLength(W));if(!X)X=0;let Y=X,Z=W.salt;if(!G1.isBuffer(Z))throw Error("salt must be a Buffer");let V=W.nextDomain;if(!G1.isBuffer(V))throw Error("nextDomain must be a Buffer");return X+=2,G.writeUInt8(W.algorithm,X),X+=1,G.writeUInt8(W.flags,X),X+=1,G.writeUInt16BE(W.iterations,X),X+=2,G.writeUInt8(Z.length,X),X+=1,Z.copy(G,X,0,Z.length),X+=Z.length,G.writeUInt8(V.length,X),X+=1,V.copy(G,X,0,V.length),X+=V.length,n8.encode(W.rrtypes,G,X),X+=n8.encode.bytes,_7.encode.bytes=X-Y,G.writeUInt16BE(_7.encode.bytes-2,Y),G};_7.encode.bytes=0;_7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},Z=W.readUInt16BE(G);G+=2,Y.algorithm=W.readUInt8(G),G+=1,Y.flags=W.readUInt8(G),G+=1,Y.iterations=W.readUInt16BE(G),G+=2;let V=W.readUInt8(G);G+=1,Y.salt=W.slice(G,G+V),G+=V;let Q=W.readUInt8(G);return G+=1,Y.nextDomain=W.slice(G,G+Q),G+=Q,Y.rrtypes=n8.decode(W,G,Z-(G-X)),G+=n8.decode.bytes,_7.decode.bytes=G-X,Y};_7.decode.bytes=0;_7.encodingLength=function(W){return 8+W.salt.length+W.nextDomain.length+n8.encodingLength(W.rrtypes)};var y7=tl.ds={};y7.encode=function(W,G,X){if(!G)G=G1.alloc(y7.encodingLength(W));if(!X)X=0;let Y=X,Z=W.digest;if(!G1.isBuffer(Z))throw Error("Digest must be a Buffer");return X+=2,G.writeUInt16BE(W.keyTag,X),X+=2,G.writeUInt8(W.algorithm,X),X+=1,G.writeUInt8(W.digestType,X),X+=1,Z.copy(G,X,0,Z.length),X+=Z.length,y7.encode.bytes=X-Y,G.writeUInt16BE(y7.encode.bytes-2,Y),G};y7.encode.bytes=0;y7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},Z=W.readUInt16BE(G);return G+=2,Y.keyTag=W.readUInt16BE(G),G+=2,Y.algorithm=W.readUInt8(G),G+=1,Y.digestType=W.readUInt8(G),G+=1,Y.digest=W.slice(G,X+Z+2),G+=Y.digest.length,y7.decode.bytes=G-X,Y};y7.decode.bytes=0;y7.encodingLength=function(W){return 6+G1.byteLength(W.digest)};var J5=tl.sshfp={};J5.getFingerprintLengthForHashType=function(G){switch(G){case 1:return 20;case 2:return 32}};J5.encode=function(G,X,Y){if(!X)X=G1.alloc(J5.encodingLength(G));if(!Y)Y=0;let Z=Y;Y+=2,X[Y]=G.algorithm,Y+=1,X[Y]=G.hash,Y+=1;let V=G1.from(G.fingerprint.toUpperCase(),"hex");if(V.length!==J5.getFingerprintLengthForHashType(G.hash))throw Error("Invalid fingerprint length");return V.copy(X,Y),Y+=V.byteLength,J5.encode.bytes=Y-Z,X.writeUInt16BE(J5.encode.bytes-2,Z),X};J5.encode.bytes=0;J5.decode=function(G,X){if(!X)X=0;let Y=X,Z={};X+=2,Z.algorithm=G[X],X+=1,Z.hash=G[X],X+=1;let V=J5.getFingerprintLengthForHashType(Z.hash);return Z.fingerprint=G.slice(X,X+V).toString("hex").toUpperCase(),X+=V,J5.decode.bytes=X-Y,Z};J5.decode.bytes=0;J5.encodingLength=function(W){return 4+G1.from(W.fingerprint,"hex").byteLength};var v7=tl.naptr={};v7.encode=function(W,G,X){if(!G)G=G1.alloc(v7.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,G.writeUInt16BE(W.order||0,X),X+=2,G.writeUInt16BE(W.preference||0,X),X+=2,S1.encode(W.flags,G,X),X+=S1.encode.bytes,S1.encode(W.services,G,X),X+=S1.encode.bytes,S1.encode(W.regexp,G,X),X+=S1.encode.bytes,y0.encode(W.replacement,G,X),X+=y0.encode.bytes,v7.encode.bytes=X-Y,G.writeUInt16BE(v7.encode.bytes-2,Y),G};v7.encode.bytes=0;v7.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.order=W.readUInt16BE(G),G+=2,Y.preference=W.readUInt16BE(G),G+=2,Y.flags=S1.decode(W,G),G+=S1.decode.bytes,Y.services=S1.decode(W,G),G+=S1.decode.bytes,Y.regexp=S1.decode(W,G),G+=S1.decode.bytes,Y.replacement=y0.decode(W,G),G+=y0.decode.bytes,v7.decode.bytes=G-X,Y};v7.decode.bytes=0;v7.encodingLength=function(W){return S1.encodingLength(W.flags)+S1.encodingLength(W.services)+S1.encodingLength(W.regexp)+y0.encodingLength(W.replacement)+6};var g7=tl.tlsa={};g7.encode=function(W,G,X){if(!G)G=G1.alloc(g7.encodingLength(W));if(!X)X=0;let Y=X,Z=W.certificate;if(!G1.isBuffer(Z))throw Error("Certificate must be a Buffer");return X+=2,G.writeUInt8(W.usage,X),X+=1,G.writeUInt8(W.selector,X),X+=1,G.writeUInt8(W.matchingType,X),X+=1,Z.copy(G,X,0,Z.length),X+=Z.length,g7.encode.bytes=X-Y,G.writeUInt16BE(g7.encode.bytes-2,Y),G};g7.encode.bytes=0;g7.decode=function(W,G){if(!G)G=0;let X=G,Y={},Z=W.readUInt16BE(G);return G+=2,Y.usage=W.readUInt8(G),G+=1,Y.selector=W.readUInt8(G),G+=1,Y.matchingType=W.readUInt8(G),G+=1,Y.certificate=W.slice(G,X+Z+2),G+=Y.certificate.length,g7.decode.bytes=G-X,Y};g7.decode.bytes=0;g7.encodingLength=function(W){return 5+G1.byteLength(W.certificate)};var WO=tl.record=function(W){switch(W.toUpperCase()){case"A":return g4;case"PTR":return n5;case"CNAME":return al;case"DNAME":return sl;case"TXT":return k4;case"NULL":return _4;case"AAAA":return u4;case"SRV":return v4;case"HINFO":return y4;case"CAA":return Q5;case"NS":return S4;case"SOA":return x4;case"MX":return o6;case"OPT":return U5;case"DNSKEY":return y9;case"RRSIG":return S7;case"RP":return x7;case"NSEC":return k7;case"NSEC3":return _7;case"SSHFP":return J5;case"DS":return y7;case"NAPTR":return v7;case"TLSA":return g7}return F4},Y9=tl.answer={};Y9.encode=function(W,G,X){if(!G)G=G1.alloc(Y9.encodingLength(W));if(!X)X=0;let Y=X;if(y0.encode(W.name,G,X),X+=y0.encode.bytes,G.writeUInt16BE(h4.toType(W.type),X),W.type.toUpperCase()==="OPT"){if(W.name!==".")throw Error("OPT name must be root.");G.writeUInt16BE(W.udpPayloadSize||4096,X+2),G.writeUInt8(W.extendedRcode||0,X+4),G.writeUInt8(W.ednsVersion||0,X+5),G.writeUInt16BE(W.flags||0,X+6),X+=8,U5.encode(W.options||[],G,X),X+=U5.encode.bytes}else{let Z=EN.toClass(W.class===void 0?"IN":W.class);if(W.flush)Z|=32768;G.writeUInt16BE(Z,X+2),G.writeUInt32BE(W.ttl||0,X+4),X+=8;let V=WO(W.type);V.encode(W.data,G,X),X+=V.encode.bytes}return Y9.encode.bytes=X-Y,G};Y9.encode.bytes=0;Y9.decode=function(W,G){if(!G)G=0;let X={},Y=G;if(X.name=y0.decode(W,G),G+=y0.decode.bytes,X.type=h4.toString(W.readUInt16BE(G)),X.type==="OPT")X.udpPayloadSize=W.readUInt16BE(G+2),X.extendedRcode=W.readUInt8(G+4),X.ednsVersion=W.readUInt8(G+5),X.flags=W.readUInt16BE(G+6),X.flag_do=(X.flags>>15&1)===1,X.options=U5.decode(W,G+8),G+=8+U5.decode.bytes;else{let Z=W.readUInt16BE(G+2);X.ttl=W.readUInt32BE(G+4),X.class=EN.toString(Z&-32769),X.flush=!!(Z&32768);let V=WO(X.type);X.data=V.decode(W,G+8),G+=8+V.decode.bytes}return Y9.decode.bytes=G-Y,X};Y9.decode.bytes=0;Y9.encodingLength=function(W){let G=W.data!==null&&W.data!==void 0?W.data:W.options;return y0.encodingLength(W.name)+8+WO(W.type).encodingLength(G)};var i5=tl.question={};i5.encode=function(W,G,X){if(!G)G=G1.alloc(i5.encodingLength(W));if(!X)X=0;let Y=X;return y0.encode(W.name,G,X),X+=y0.encode.bytes,G.writeUInt16BE(h4.toType(W.type),X),X+=2,G.writeUInt16BE(EN.toClass(W.class===void 0?"IN":W.class),X),X+=2,i5.encode.bytes=X-Y,W};i5.encode.bytes=0;i5.decode=function(W,G){if(!G)G=0;let X=G,Y={};if(Y.name=y0.decode(W,G),G+=y0.decode.bytes,Y.type=h4.toString(W.readUInt16BE(G)),G+=2,Y.class=EN.toString(W.readUInt16BE(G)),G+=2,!!(Y.class&32768))Y.class&=-32769;return i5.decode.bytes=G-X,Y};i5.decode.bytes=0;i5.encodingLength=function(W){return y0.encodingLength(W.name)+4};tl.AUTHORITATIVE_ANSWER=1024;tl.TRUNCATED_RESPONSE=512;tl.RECURSION_DESIRED=256;tl.RECURSION_AVAILABLE=128;tl.AUTHENTIC_DATA=32;tl.CHECKING_DISABLED=16;tl.DNSSEC_OK=32768;tl.encode=function(W,G,X){let Y=!G;if(Y)G=G1.alloc(tl.encodingLength(W));if(!X)X=0;let Z=X;if(!W.questions)W.questions=[];if(!W.answers)W.answers=[];if(!W.authorities)W.authorities=[];if(!W.additionals)W.additionals=[];if(r5.encode(W,G,X),X+=r5.encode.bytes,X=FQ(W.questions,i5,G,X),X=FQ(W.answers,Y9,G,X),X=FQ(W.authorities,Y9,G,X),X=FQ(W.additionals,Y9,G,X),tl.encode.bytes=X-Z,Y&&tl.encode.bytes!==G.length)return G.slice(0,tl.encode.bytes);return G};tl.encode.bytes=0;tl.decode=function(W,G){if(!G)G=0;let X=G,Y=r5.decode(W,G);return G+=r5.decode.bytes,G=BN(Y.questions,i5,W,G),G=BN(Y.answers,Y9,W,G),G=BN(Y.authorities,Y9,W,G),G=BN(Y.additionals,Y9,W,G),tl.decode.bytes=G-X,Y};tl.decode.bytes=0;tl.encodingLength=function(W){return r5.encodingLength(W)+BY(W.questions||[],i5)+BY(W.answers||[],Y9)+BY(W.authorities||[],Y9)+BY(W.additionals||[],Y9)};tl.streamEncode=function(W){let G=tl.encode(W),X=G1.alloc(2);X.writeUInt16BE(G.byteLength);let Y=G1.concat([X,G]);return tl.streamEncode.bytes=Y.byteLength,Y};tl.streamEncode.bytes=0;tl.streamDecode=function(W){let G=W.readUInt16BE(0);if(W.byteLength<G+2)return null;let X=tl.decode(W.slice(2));return tl.streamDecode.bytes=tl.decode.bytes,X};tl.streamDecode.bytes=0;function BY(W,G){let X=0;for(let Y=0;Y<W.length;Y++)X+=G.encodingLength(W[Y]);return X}function FQ(W,G,X,Y){for(let Z=0;Z<W.length;Z++)G.encode(W[Z],X,Y),Y+=G.encode.bytes;return Y}function BN(W,G,X,Y){for(let Z=0;Z<W.length;Z++)W[Z]=G.decode(X,Y),Y+=G.decode.bytes;return Y}});var _$=Z1((AH0,k$)=>{var x$=Ad;process.nextTick(Hd,42);k$.exports=Jd;function Jd(W){var G=Y;return X;function X(Z){G(Z||qd)}function Y(Z){var V=[Z];G=Q,W(J);function Q(U){V.push(U)}function J(U){var q=arguments;G=Ud(U)?Y:N;while(V.length)N(V.shift());function N(A){x$(Nd,A,q)}}}}function Ud(W){return Object.prototype.toString.call(W)==="[object Error]"}function qd(){}function Nd(W,G){W.apply(null,G)}function Hd(W){if(W===42)x$=process.nextTick}function Ad(W,G,X){process.nextTick(function(){W(G,X)})}});var g$=Z1((zH0,v$)=>{var GO=S$(),zd=S8("dgram"),Id=_$(),wd=S8("events"),YO=S8("os"),XO=function(){};v$.exports=function(W){if(!W)W={};var G=new wd.EventEmitter,X=typeof W.port==="number"?W.port:5353,Y=W.type||"udp4",Z=W.ip||W.host||(Y==="udp4"?"224.0.0.251":null),V={address:Z,port:X},Q={},J=!1,U=null;if(Y==="udp6"&&(!Z||!W.interface))throw Error("For IPv6 multicast you must specify `ip` and `interface`");var q=W.socket||zd.createSocket({type:Y,reuseAddr:W.reuseAddr!==!1,toString:function(){return Y}});q.on("error",function(A){if(A.code==="EACCES"||A.code==="EADDRINUSE")G.emit("error",A);else G.emit("warning",A)}),q.on("message",function(A,H){try{A=GO.decode(A)}catch(I){G.emit("warning",I);return}if(G.emit("packet",A,H),A.type==="query")G.emit("query",A,H);if(A.type==="response")G.emit("response",A,H)}),q.on("listening",function(){if(!X)X=V.port=q.address().port;if(W.multicast!==!1)G.update(),U=setInterval(G.update,5000),q.setMulticastTTL(W.ttl||255),q.setMulticastLoopback(W.loopback!==!1)});var N=Id(function(A){if(!X||W.bind===!1)return A(null);q.once("error",A),q.bind(X,W.bind||W.interface,function(){q.removeListener("error",A),A(null)})});return N(function(A){if(A)return G.emit("error",A);G.emit("ready")}),G.send=function(A,H,I){if(typeof H==="function")return G.send(A,null,H);if(!I)I=XO;if(!H)H=V;else if(!H.host&&!H.address)H.address=V.address;N(w);function w(C){if(J)return I();if(C)return I(C);var D=GO.encode(A);q.send(D,0,D.length,H.port,H.address||H.host,I)}},G.response=G.respond=function(A,H,I){if(Array.isArray(A))A={answers:A};A.type="response",A.flags=(A.flags||0)|GO.AUTHORITATIVE_ANSWER,G.send(A,H,I)},G.query=function(A,H,I,w){if(typeof H==="function")return G.query(A,null,null,H);if(typeof H==="object"&&H&&H.port)return G.query(A,null,H,I);if(typeof I==="function")return G.query(A,H,null,I);if(!w)w=XO;if(typeof A==="string")A=[{name:A,type:H||"ANY"}];if(Array.isArray(A))A={type:"query",questions:A};A.type="query",G.send(A,I,w)},G.destroy=function(A){if(!A)A=XO;if(J)return process.nextTick(A);J=!0,clearInterval(U);for(var H in Q)try{q.dropMembership(Z,H)}catch(I){}Q={},q.close(A)},G.update=function(){var A=W.interface?[].concat(W.interface):Od(),H=!1;for(var I=0;I<A.length;I++){var w=A[I];if(Q[w])continue;try{q.addMembership(Z,w),Q[w]=!0,H=!0}catch(C){G.emit("warning",C)}}if(H){if(q.setMulticastInterface)try{q.setMulticastInterface(W.interface||jd())}catch(C){G.emit("warning",C)}G.emit("networkInterface")}},G};function jd(){var W=YO.networkInterfaces(),G=Object.keys(W);for(var X=0;X<G.length;X++){var Y=W[G[X]];for(var Z=0;Z<Y.length;Z++){var V=Y[Z];if(y$(V.family)&&!V.internal){if(YO.platform()==="darwin"&&G[X]==="en0")return V.address;return"0.0.0.0"}}}return"127.0.0.1"}function Od(){var W=YO.networkInterfaces(),G=Object.keys(W),X=[];for(var Y=0;Y<G.length;Y++){var Z=W[G[Y]];for(var V=0;V<Z.length;V++){var Q=Z[V];if(y$(Q.family)){X.push(Q.address);break}}}return X}function y$(W){return W===4||W==="IPv4"}});import{Database as qt}from"bun:sqlite";import{mkdirSync as Nt}from"fs";import{dirname as Ht}from"path";function JC(W){let G=W.length,X=0,Y=0;while(Y<G){let Z=W.charCodeAt(Y++);if((Z&4294967168)===0){X++;continue}else if((Z&4294965248)===0)X+=2;else{if(Z>=55296&&Z<=56319){if(Y<G){let V=W.charCodeAt(Y);if((V&64512)===56320)++Y,Z=((Z&1023)<<10)+(V&1023)+65536}}if((Z&4294901760)===0)X+=3;else X+=4}}return X}function g_(W,G,X){let Y=W.length,Z=X,V=0;while(V<Y){let Q=W.charCodeAt(V++);if((Q&4294967168)===0){G[Z++]=Q;continue}else if((Q&4294965248)===0)G[Z++]=Q>>6&31|192;else{if(Q>=55296&&Q<=56319){if(V<Y){let J=W.charCodeAt(V);if((J&64512)===56320)++V,Q=((Q&1023)<<10)+(J&1023)+65536}}if((Q&4294901760)===0)G[Z++]=Q>>12&15|224,G[Z++]=Q>>6&63|128;else G[Z++]=Q>>18&7|240,G[Z++]=Q>>12&63|128,G[Z++]=Q>>6&63|128}G[Z++]=Q&63|128}}var u_=new TextEncoder,h_=50;function b_(W,G,X){u_.encodeInto(W,G.subarray(X))}function UC(W,G,X){if(W.length>h_)b_(W,G,X);else g_(W,G,X)}var m_=4096;function NA(W,G,X){let Y=G,Z=Y+X,V=[],Q="";while(Y<Z){let J=W[Y++];if((J&128)===0)V.push(J);else if((J&224)===192){let U=W[Y++]&63;V.push((J&31)<<6|U)}else if((J&240)===224){let U=W[Y++]&63,q=W[Y++]&63;V.push((J&31)<<12|U<<6|q)}else if((J&248)===240){let U=W[Y++]&63,q=W[Y++]&63,N=W[Y++]&63,A=(J&7)<<18|U<<12|q<<6|N;if(A>65535)A-=65536,V.push(A>>>10&1023|55296),A=56320|A&1023;V.push(A)}else V.push(J);if(V.length>=m_)Q+=String.fromCharCode(...V),V.length=0}if(V.length>0)Q+=String.fromCharCode(...V);return Q}var f_=new TextDecoder,c_=200;function p_(W,G,X){let Y=W.subarray(G,G+X);return f_.decode(Y)}function qC(W,G,X){if(X>c_)return p_(W,G,X);else return NA(W,G,X)}class pG{type;data;constructor(W,G){this.type=W,this.data=G}}class $9 extends Error{constructor(W){super(W);let G=Object.create($9.prototype);Object.setPrototypeOf(this,G),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:$9.name})}}var lG=4294967295;function NC(W,G,X){let Y=X/4294967296,Z=X;W.setUint32(G,Y),W.setUint32(G+4,Z)}function _J(W,G,X){let Y=Math.floor(X/4294967296),Z=X;W.setUint32(G,Y),W.setUint32(G+4,Z)}function yJ(W,G){let X=W.getInt32(G),Y=W.getUint32(G+4);return X*4294967296+Y}function HC(W,G){let X=W.getUint32(G),Y=W.getUint32(G+4);return X*4294967296+Y}var l_=-1,d_=4294967295,o_=17179869183;function n_({sec:W,nsec:G}){if(W>=0&&G>=0&&W<=o_)if(G===0&&W<=d_){let X=new Uint8Array(4);return new DataView(X.buffer).setUint32(0,W),X}else{let X=W/4294967296,Y=W&4294967295,Z=new Uint8Array(8),V=new DataView(Z.buffer);return V.setUint32(0,G<<2|X&3),V.setUint32(4,Y),Z}else{let X=new Uint8Array(12),Y=new DataView(X.buffer);return Y.setUint32(0,G),_J(Y,4,W),X}}function i_(W){let G=W.getTime(),X=Math.floor(G/1000),Y=(G-X*1000)*1e6,Z=Math.floor(Y/1e9);return{sec:X+Z,nsec:Y-Z*1e9}}function r_(W){if(W instanceof Date){let G=i_(W);return n_(G)}else return null}function a_(W){let G=new DataView(W.buffer,W.byteOffset,W.byteLength);switch(W.byteLength){case 4:{let X=G.getUint32(0),Y=0;return{sec:X,nsec:0}}case 8:{let X=G.getUint32(0),Y=G.getUint32(4),Z=(X&3)*4294967296+Y,V=X>>>2;return{sec:Z,nsec:V}}case 12:{let X=yJ(G,4),Y=G.getUint32(0);return{sec:X,nsec:Y}}default:throw new $9(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${W.length}`)}}function s_(W){let G=a_(W);return new Date(G.sec*1000+G.nsec/1e6)}var AC={type:l_,encode:r_,decode:s_};class dG{static defaultCodec=new dG;__brand;builtInEncoders=[];builtInDecoders=[];encoders=[];decoders=[];constructor(){this.register(AC)}register({type:W,encode:G,decode:X}){if(W>=0)this.encoders[W]=G,this.decoders[W]=X;else{let Y=-1-W;this.builtInEncoders[Y]=G,this.builtInDecoders[Y]=X}}tryToEncode(W,G){for(let X=0;X<this.builtInEncoders.length;X++){let Y=this.builtInEncoders[X];if(Y!=null){let Z=Y(W,G);if(Z!=null){let V=-1-X;return new pG(V,Z)}}}for(let X=0;X<this.encoders.length;X++){let Y=this.encoders[X];if(Y!=null){let Z=Y(W,G);if(Z!=null)return new pG(X,Z)}}if(W instanceof pG)return W;return null}decode(W,G,X){let Y=G<0?this.builtInDecoders[-1-G]:this.decoders[G];if(Y)return Y(W,G,X);else return new pG(G,W)}}function t_(W){return W instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&W instanceof SharedArrayBuffer}function UZ(W){if(W instanceof Uint8Array)return W;else if(ArrayBuffer.isView(W))return new Uint8Array(W.buffer,W.byteOffset,W.byteLength);else if(t_(W))return new Uint8Array(W);else return Uint8Array.from(W)}var e_=100,Wy=2048;class vJ{extensionCodec;context;useBigInt64;maxDepth;initialBufferSize;sortKeys;forceFloat32;ignoreUndefined;forceIntegerToFloat;pos;view;bytes;entered=!1;constructor(W){this.extensionCodec=W?.extensionCodec??dG.defaultCodec,this.context=W?.context,this.useBigInt64=W?.useBigInt64??!1,this.maxDepth=W?.maxDepth??e_,this.initialBufferSize=W?.initialBufferSize??Wy,this.sortKeys=W?.sortKeys??!1,this.forceFloat32=W?.forceFloat32??!1,this.ignoreUndefined=W?.ignoreUndefined??!1,this.forceIntegerToFloat=W?.forceIntegerToFloat??!1,this.pos=0,this.view=new DataView(new ArrayBuffer(this.initialBufferSize)),this.bytes=new Uint8Array(this.view.buffer)}clone(){return new vJ({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,maxDepth:this.maxDepth,initialBufferSize:this.initialBufferSize,sortKeys:this.sortKeys,forceFloat32:this.forceFloat32,ignoreUndefined:this.ignoreUndefined,forceIntegerToFloat:this.forceIntegerToFloat})}reinitializeState(){this.pos=0}encodeSharedRef(W){if(this.entered)return this.clone().encodeSharedRef(W);try{return this.entered=!0,this.reinitializeState(),this.doEncode(W,1),this.bytes.subarray(0,this.pos)}finally{this.entered=!1}}encode(W){if(this.entered)return this.clone().encode(W);try{return this.entered=!0,this.reinitializeState(),this.doEncode(W,1),this.bytes.slice(0,this.pos)}finally{this.entered=!1}}doEncode(W,G){if(G>this.maxDepth)throw Error(`Too deep objects in depth ${G}`);if(W==null)this.encodeNil();else if(typeof W==="boolean")this.encodeBoolean(W);else if(typeof W==="number")if(!this.forceIntegerToFloat)this.encodeNumber(W);else this.encodeNumberAsFloat(W);else if(typeof W==="string")this.encodeString(W);else if(this.useBigInt64&&typeof W==="bigint")this.encodeBigInt64(W);else this.encodeObject(W,G)}ensureBufferSizeToWrite(W){let G=this.pos+W;if(this.view.byteLength<G)this.resizeBuffer(G*2)}resizeBuffer(W){let G=new ArrayBuffer(W),X=new Uint8Array(G),Y=new DataView(G);X.set(this.bytes),this.view=Y,this.bytes=X}encodeNil(){this.writeU8(192)}encodeBoolean(W){if(W===!1)this.writeU8(194);else this.writeU8(195)}encodeNumber(W){if(!this.forceIntegerToFloat&&Number.isSafeInteger(W))if(W>=0)if(W<128)this.writeU8(W);else if(W<256)this.writeU8(204),this.writeU8(W);else if(W<65536)this.writeU8(205),this.writeU16(W);else if(W<4294967296)this.writeU8(206),this.writeU32(W);else if(!this.useBigInt64)this.writeU8(207),this.writeU64(W);else this.encodeNumberAsFloat(W);else if(W>=-32)this.writeU8(224|W+32);else if(W>=-128)this.writeU8(208),this.writeI8(W);else if(W>=-32768)this.writeU8(209),this.writeI16(W);else if(W>=-2147483648)this.writeU8(210),this.writeI32(W);else if(!this.useBigInt64)this.writeU8(211),this.writeI64(W);else this.encodeNumberAsFloat(W);else this.encodeNumberAsFloat(W)}encodeNumberAsFloat(W){if(this.forceFloat32)this.writeU8(202),this.writeF32(W);else this.writeU8(203),this.writeF64(W)}encodeBigInt64(W){if(W>=BigInt(0))this.writeU8(207),this.writeBigUint64(W);else this.writeU8(211),this.writeBigInt64(W)}writeStringHeader(W){if(W<32)this.writeU8(160+W);else if(W<256)this.writeU8(217),this.writeU8(W);else if(W<65536)this.writeU8(218),this.writeU16(W);else if(W<4294967296)this.writeU8(219),this.writeU32(W);else throw Error(`Too long string: ${W} bytes in UTF-8`)}encodeString(W){let X=JC(W);this.ensureBufferSizeToWrite(5+X),this.writeStringHeader(X),UC(W,this.bytes,this.pos),this.pos+=X}encodeObject(W,G){let X=this.extensionCodec.tryToEncode(W,this.context);if(X!=null)this.encodeExtension(X);else if(Array.isArray(W))this.encodeArray(W,G);else if(ArrayBuffer.isView(W))this.encodeBinary(W);else if(typeof W==="object")this.encodeMap(W,G);else throw Error(`Unrecognized object: ${Object.prototype.toString.apply(W)}`)}encodeBinary(W){let G=W.byteLength;if(G<256)this.writeU8(196),this.writeU8(G);else if(G<65536)this.writeU8(197),this.writeU16(G);else if(G<4294967296)this.writeU8(198),this.writeU32(G);else throw Error(`Too large binary: ${G}`);let X=UZ(W);this.writeU8a(X)}encodeArray(W,G){let X=W.length;if(X<16)this.writeU8(144+X);else if(X<65536)this.writeU8(220),this.writeU16(X);else if(X<4294967296)this.writeU8(221),this.writeU32(X);else throw Error(`Too large array: ${X}`);for(let Y of W)this.doEncode(Y,G+1)}countWithoutUndefined(W,G){let X=0;for(let Y of G)if(W[Y]!==void 0)X++;return X}encodeMap(W,G){let X=Object.keys(W);if(this.sortKeys)X.sort();let Y=this.ignoreUndefined?this.countWithoutUndefined(W,X):X.length;if(Y<16)this.writeU8(128+Y);else if(Y<65536)this.writeU8(222),this.writeU16(Y);else if(Y<4294967296)this.writeU8(223),this.writeU32(Y);else throw Error(`Too large map object: ${Y}`);for(let Z of X){let V=W[Z];if(!(this.ignoreUndefined&&V===void 0))this.encodeString(Z),this.doEncode(V,G+1)}}encodeExtension(W){if(typeof W.data==="function"){let X=W.data(this.pos+6),Y=X.length;if(Y>=4294967296)throw Error(`Too large extension object: ${Y}`);this.writeU8(201),this.writeU32(Y),this.writeI8(W.type),this.writeU8a(X);return}let G=W.data.length;if(G===1)this.writeU8(212);else if(G===2)this.writeU8(213);else if(G===4)this.writeU8(214);else if(G===8)this.writeU8(215);else if(G===16)this.writeU8(216);else if(G<256)this.writeU8(199),this.writeU8(G);else if(G<65536)this.writeU8(200),this.writeU16(G);else if(G<4294967296)this.writeU8(201),this.writeU32(G);else throw Error(`Too large extension object: ${G}`);this.writeI8(W.type),this.writeU8a(W.data)}writeU8(W){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,W),this.pos++}writeU8a(W){let G=W.length;this.ensureBufferSizeToWrite(G),this.bytes.set(W,this.pos),this.pos+=G}writeI8(W){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,W),this.pos++}writeU16(W){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,W),this.pos+=2}writeI16(W){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,W),this.pos+=2}writeU32(W){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,W),this.pos+=4}writeI32(W){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,W),this.pos+=4}writeF32(W){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,W),this.pos+=4}writeF64(W){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,W),this.pos+=8}writeU64(W){this.ensureBufferSizeToWrite(8),NC(this.view,this.pos,W),this.pos+=8}writeI64(W){this.ensureBufferSizeToWrite(8),_J(this.view,this.pos,W),this.pos+=8}writeBigUint64(W){this.ensureBufferSizeToWrite(8),this.view.setBigUint64(this.pos,W),this.pos+=8}writeBigInt64(W){this.ensureBufferSizeToWrite(8),this.view.setBigInt64(this.pos,W),this.pos+=8}}function qZ(W,G){return new vJ(G).encodeSharedRef(W)}function gJ(W){return`${W<0?"-":""}0x${Math.abs(W).toString(16).padStart(2,"0")}`}var Gy=16,Xy=16;class HA{hit=0;miss=0;caches;maxKeyLength;maxLengthPerKey;constructor(W=Gy,G=Xy){this.maxKeyLength=W,this.maxLengthPerKey=G,this.caches=[];for(let X=0;X<this.maxKeyLength;X++)this.caches.push([])}canBeCached(W){return W>0&&W<=this.maxKeyLength}find(W,G,X){let Y=this.caches[X-1];W:for(let Z of Y){let V=Z.bytes;for(let Q=0;Q<X;Q++)if(V[Q]!==W[G+Q])continue W;return Z.str}return null}store(W,G){let X=this.caches[W.length-1],Y={bytes:W,str:G};if(X.length>=this.maxLengthPerKey)X[Math.random()*X.length|0]=Y;else X.push(Y)}decode(W,G,X){let Y=this.find(W,G,X);if(Y!=null)return this.hit++,Y;this.miss++;let Z=NA(W,G,X),V=Uint8Array.prototype.slice.call(W,G,G+X);return this.store(V,Z),Z}}var AA="array",HZ="map_key",IC="map_value",Yy=(W)=>{if(typeof W==="string"||typeof W==="number")return W;throw new $9("The type of key must be string or number but "+typeof W)};class wC{stack=[];stackHeadPosition=-1;get length(){return this.stackHeadPosition+1}top(){return this.stack[this.stackHeadPosition]}pushArrayState(W){let G=this.getUninitializedStateFromPool();G.type=AA,G.position=0,G.size=W,G.array=Array(W)}pushMapState(W){let G=this.getUninitializedStateFromPool();G.type=HZ,G.readCount=0,G.size=W,G.map={}}getUninitializedStateFromPool(){if(this.stackHeadPosition++,this.stackHeadPosition===this.stack.length){let W={type:void 0,size:0,array:void 0,position:0,readCount:0,map:void 0,key:null};this.stack.push(W)}return this.stack[this.stackHeadPosition]}release(W){if(this.stack[this.stackHeadPosition]!==W)throw Error("Invalid stack state. Released state is not on top of the stack.");if(W.type===AA){let X=W;X.size=0,X.array=void 0,X.position=0,X.type=void 0}if(W.type===HZ||W.type===IC){let X=W;X.size=0,X.map=void 0,X.readCount=0,X.type=void 0}this.stackHeadPosition--}reset(){this.stack.length=0,this.stackHeadPosition=-1}}var NZ=-1,zA=new DataView(new ArrayBuffer(0)),Zy=new Uint8Array(zA.buffer);try{zA.getInt8(0)}catch(W){if(!(W instanceof RangeError))throw Error("This module is not supported in the current JavaScript engine because DataView does not throw RangeError on out-of-bounds access")}var zC=RangeError("Insufficient data"),Vy=new HA;class uJ{extensionCodec;context;useBigInt64;rawStrings;maxStrLength;maxBinLength;maxArrayLength;maxMapLength;maxExtLength;keyDecoder;mapKeyConverter;totalPos=0;pos=0;view=zA;bytes=Zy;headByte=NZ;stack=new wC;entered=!1;constructor(W){this.extensionCodec=W?.extensionCodec??dG.defaultCodec,this.context=W?.context,this.useBigInt64=W?.useBigInt64??!1,this.rawStrings=W?.rawStrings??!1,this.maxStrLength=W?.maxStrLength??lG,this.maxBinLength=W?.maxBinLength??lG,this.maxArrayLength=W?.maxArrayLength??lG,this.maxMapLength=W?.maxMapLength??lG,this.maxExtLength=W?.maxExtLength??lG,this.keyDecoder=W?.keyDecoder!==void 0?W.keyDecoder:Vy,this.mapKeyConverter=W?.mapKeyConverter??Yy}clone(){return new uJ({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,rawStrings:this.rawStrings,maxStrLength:this.maxStrLength,maxBinLength:this.maxBinLength,maxArrayLength:this.maxArrayLength,maxMapLength:this.maxMapLength,maxExtLength:this.maxExtLength,keyDecoder:this.keyDecoder})}reinitializeState(){this.totalPos=0,this.headByte=NZ,this.stack.reset()}setBuffer(W){let G=UZ(W);this.bytes=G,this.view=new DataView(G.buffer,G.byteOffset,G.byteLength),this.pos=0}appendBuffer(W){if(this.headByte===NZ&&!this.hasRemaining(1))this.setBuffer(W);else{let G=this.bytes.subarray(this.pos),X=UZ(W),Y=new Uint8Array(G.length+X.length);Y.set(G),Y.set(X,G.length),this.setBuffer(Y)}}hasRemaining(W){return this.view.byteLength-this.pos>=W}createExtraByteError(W){let{view:G,pos:X}=this;return RangeError(`Extra ${G.byteLength-X} of ${G.byteLength} byte(s) found at buffer[${W}]`)}decode(W){if(this.entered)return this.clone().decode(W);try{this.entered=!0,this.reinitializeState(),this.setBuffer(W);let G=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return G}finally{this.entered=!1}}*decodeMulti(W){if(this.entered){yield*this.clone().decodeMulti(W);return}try{this.entered=!0,this.reinitializeState(),this.setBuffer(W);while(this.hasRemaining(1))yield this.doDecodeSync()}finally{this.entered=!1}}async decodeAsync(W){if(this.entered)return this.clone().decodeAsync(W);try{this.entered=!0;let G=!1,X;for await(let Q of W){if(G)throw this.entered=!1,this.createExtraByteError(this.totalPos);this.appendBuffer(Q);try{X=this.doDecodeSync(),G=!0}catch(J){if(!(J instanceof RangeError))throw J}this.totalPos+=this.pos}if(G){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return X}let{headByte:Y,pos:Z,totalPos:V}=this;throw RangeError(`Insufficient data in parsing ${gJ(Y)} at ${V} (${Z} in the current buffer)`)}finally{this.entered=!1}}decodeArrayStream(W){return this.decodeMultiAsync(W,!0)}decodeStream(W){return this.decodeMultiAsync(W,!1)}async*decodeMultiAsync(W,G){if(this.entered){yield*this.clone().decodeMultiAsync(W,G);return}try{this.entered=!0;let X=G,Y=-1;for await(let Z of W){if(G&&Y===0)throw this.createExtraByteError(this.totalPos);if(this.appendBuffer(Z),X)Y=this.readArraySize(),X=!1,this.complete();try{while(!0)if(yield this.doDecodeSync(),--Y===0)break}catch(V){if(!(V instanceof RangeError))throw V}this.totalPos+=this.pos}}finally{this.entered=!1}}doDecodeSync(){W:while(!0){let W=this.readHeadByte(),G;if(W>=224)G=W-256;else if(W<192)if(W<128)G=W;else if(W<144){let Y=W-128;if(Y!==0){this.pushMapState(Y),this.complete();continue W}else G={}}else if(W<160){let Y=W-144;if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else G=[]}else{let Y=W-160;G=this.decodeString(Y,0)}else if(W===192)G=null;else if(W===194)G=!1;else if(W===195)G=!0;else if(W===202)G=this.readF32();else if(W===203)G=this.readF64();else if(W===204)G=this.readU8();else if(W===205)G=this.readU16();else if(W===206)G=this.readU32();else if(W===207)if(this.useBigInt64)G=this.readU64AsBigInt();else G=this.readU64();else if(W===208)G=this.readI8();else if(W===209)G=this.readI16();else if(W===210)G=this.readI32();else if(W===211)if(this.useBigInt64)G=this.readI64AsBigInt();else G=this.readI64();else if(W===217){let Y=this.lookU8();G=this.decodeString(Y,1)}else if(W===218){let Y=this.lookU16();G=this.decodeString(Y,2)}else if(W===219){let Y=this.lookU32();G=this.decodeString(Y,4)}else if(W===220){let Y=this.readU16();if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else G=[]}else if(W===221){let Y=this.readU32();if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else G=[]}else if(W===222){let Y=this.readU16();if(Y!==0){this.pushMapState(Y),this.complete();continue W}else G={}}else if(W===223){let Y=this.readU32();if(Y!==0){this.pushMapState(Y),this.complete();continue W}else G={}}else if(W===196){let Y=this.lookU8();G=this.decodeBinary(Y,1)}else if(W===197){let Y=this.lookU16();G=this.decodeBinary(Y,2)}else if(W===198){let Y=this.lookU32();G=this.decodeBinary(Y,4)}else if(W===212)G=this.decodeExtension(1,0);else if(W===213)G=this.decodeExtension(2,0);else if(W===214)G=this.decodeExtension(4,0);else if(W===215)G=this.decodeExtension(8,0);else if(W===216)G=this.decodeExtension(16,0);else if(W===199){let Y=this.lookU8();G=this.decodeExtension(Y,1)}else if(W===200){let Y=this.lookU16();G=this.decodeExtension(Y,2)}else if(W===201){let Y=this.lookU32();G=this.decodeExtension(Y,4)}else throw new $9(`Unrecognized type byte: ${gJ(W)}`);this.complete();let X=this.stack;while(X.length>0){let Y=X.top();if(Y.type===AA)if(Y.array[Y.position]=G,Y.position++,Y.position===Y.size)G=Y.array,X.release(Y);else continue W;else if(Y.type===HZ){if(G==="__proto__")throw new $9("The key __proto__ is not allowed");Y.key=this.mapKeyConverter(G),Y.type=IC;continue W}else if(Y.map[Y.key]=G,Y.readCount++,Y.readCount===Y.size)G=Y.map,X.release(Y);else{Y.key=null,Y.type=HZ;continue W}}return G}}readHeadByte(){if(this.headByte===NZ)this.headByte=this.readU8();return this.headByte}complete(){this.headByte=NZ}readArraySize(){let W=this.readHeadByte();switch(W){case 220:return this.readU16();case 221:return this.readU32();default:if(W<160)return W-144;else throw new $9(`Unrecognized array type byte: ${gJ(W)}`)}}pushMapState(W){if(W>this.maxMapLength)throw new $9(`Max length exceeded: map length (${W}) > maxMapLengthLength (${this.maxMapLength})`);this.stack.pushMapState(W)}pushArrayState(W){if(W>this.maxArrayLength)throw new $9(`Max length exceeded: array length (${W}) > maxArrayLength (${this.maxArrayLength})`);this.stack.pushArrayState(W)}decodeString(W,G){if(!this.rawStrings||this.stateIsMapKey())return this.decodeUtf8String(W,G);return this.decodeBinary(W,G)}decodeUtf8String(W,G){if(W>this.maxStrLength)throw new $9(`Max length exceeded: UTF-8 byte length (${W}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+G+W)throw zC;let X=this.pos+G,Y;if(this.stateIsMapKey()&&this.keyDecoder?.canBeCached(W))Y=this.keyDecoder.decode(this.bytes,X,W);else Y=qC(this.bytes,X,W);return this.pos+=G+W,Y}stateIsMapKey(){if(this.stack.length>0)return this.stack.top().type===HZ;return!1}decodeBinary(W,G){if(W>this.maxBinLength)throw new $9(`Max length exceeded: bin length (${W}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(W+G))throw zC;let X=this.pos+G,Y=this.bytes.subarray(X,X+W);return this.pos+=G+W,Y}decodeExtension(W,G){if(W>this.maxExtLength)throw new $9(`Max length exceeded: ext length (${W}) > maxExtLength (${this.maxExtLength})`);let X=this.view.getInt8(this.pos+G),Y=this.decodeBinary(W,G+1);return this.extensionCodec.decode(Y,X,this.context)}lookU8(){return this.view.getUint8(this.pos)}lookU16(){return this.view.getUint16(this.pos)}lookU32(){return this.view.getUint32(this.pos)}readU8(){let W=this.view.getUint8(this.pos);return this.pos++,W}readI8(){let W=this.view.getInt8(this.pos);return this.pos++,W}readU16(){let W=this.view.getUint16(this.pos);return this.pos+=2,W}readI16(){let W=this.view.getInt16(this.pos);return this.pos+=2,W}readU32(){let W=this.view.getUint32(this.pos);return this.pos+=4,W}readI32(){let W=this.view.getInt32(this.pos);return this.pos+=4,W}readU64(){let W=HC(this.view,this.pos);return this.pos+=8,W}readI64(){let W=yJ(this.view,this.pos);return this.pos+=8,W}readU64AsBigInt(){let W=this.view.getBigUint64(this.pos);return this.pos+=8,W}readI64AsBigInt(){let W=this.view.getBigInt64(this.pos);return this.pos+=8,W}readF32(){let W=this.view.getFloat32(this.pos);return this.pos+=4,W}readF64(){let W=this.view.getFloat64(this.pos);return this.pos+=8,W}}function Y6(W,G){return new uJ(G).decode(W)}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */function sG(W){let G=W.length;while(--G>=0)W[G]=0}var Qy=0,WD=1,Jy=2,Uy=3,qy=258,uA=29,BZ=256,KZ=BZ+1+uA,iG=30,hA=19,GD=2*KZ+1,zW=15,IA=16,Ny=7,bA=256,XD=16,YD=17,ZD=18,$A=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),pJ=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),Hy=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),VD=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Ay=512,a7=Array((KZ+2)*2);sG(a7);var wZ=Array(iG*2);sG(wZ);var CZ=Array(Ay);sG(CZ);var DZ=Array(qy-Uy+1);sG(DZ);var mA=Array(uA);sG(mA);var lJ=Array(iG);sG(lJ);function wA(W,G,X,Y,Z){this.static_tree=W,this.extra_bits=G,this.extra_base=X,this.elems=Y,this.max_length=Z,this.has_stree=W&&W.length}var QD,JD,UD;function jA(W,G){this.dyn_tree=W,this.max_code=0,this.stat_desc=G}var qD=(W)=>{return W<256?CZ[W]:CZ[256+(W>>>7)]},MZ=(W,G)=>{W.pending_buf[W.pending++]=G&255,W.pending_buf[W.pending++]=G>>>8&255},g9=(W,G,X)=>{if(W.bi_valid>IA-X)W.bi_buf|=G<<W.bi_valid&65535,MZ(W,W.bi_buf),W.bi_buf=G>>IA-W.bi_valid,W.bi_valid+=X-IA;else W.bi_buf|=G<<W.bi_valid&65535,W.bi_valid+=X},U7=(W,G,X)=>{g9(W,X[G*2],X[G*2+1])},ND=(W,G)=>{let X=0;do X|=W&1,W>>>=1,X<<=1;while(--G>0);return X>>>1},zy=(W)=>{if(W.bi_valid===16)MZ(W,W.bi_buf),W.bi_buf=0,W.bi_valid=0;else if(W.bi_valid>=8)W.pending_buf[W.pending++]=W.bi_buf&255,W.bi_buf>>=8,W.bi_valid-=8},Iy=(W,G)=>{let{dyn_tree:X,max_code:Y}=G,Z=G.stat_desc.static_tree,V=G.stat_desc.has_stree,Q=G.stat_desc.extra_bits,J=G.stat_desc.extra_base,U=G.stat_desc.max_length,q,N,A,H,I,w,C=0;for(H=0;H<=zW;H++)W.bl_count[H]=0;X[W.heap[W.heap_max]*2+1]=0;for(q=W.heap_max+1;q<GD;q++){if(N=W.heap[q],H=X[X[N*2+1]*2+1]+1,H>U)H=U,C++;if(X[N*2+1]=H,N>Y)continue;if(W.bl_count[H]++,I=0,N>=J)I=Q[N-J];if(w=X[N*2],W.opt_len+=w*(H+I),V)W.static_len+=w*(Z[N*2+1]+I)}if(C===0)return;do{H=U-1;while(W.bl_count[H]===0)H--;W.bl_count[H]--,W.bl_count[H+1]+=2,W.bl_count[U]--,C-=2}while(C>0);for(H=U;H!==0;H--){N=W.bl_count[H];while(N!==0){if(A=W.heap[--q],A>Y)continue;if(X[A*2+1]!==H)W.opt_len+=(H-X[A*2+1])*X[A*2],X[A*2+1]=H;N--}}},HD=(W,G,X)=>{let Y=Array(zW+1),Z=0,V,Q;for(V=1;V<=zW;V++)Z=Z+X[V-1]<<1,Y[V]=Z;for(Q=0;Q<=G;Q++){let J=W[Q*2+1];if(J===0)continue;W[Q*2]=ND(Y[J]++,J)}},wy=()=>{let W,G,X,Y,Z,V=Array(zW+1);X=0;for(Y=0;Y<uA-1;Y++){mA[Y]=X;for(W=0;W<1<<$A[Y];W++)DZ[X++]=Y}DZ[X-1]=Y,Z=0;for(Y=0;Y<16;Y++){lJ[Y]=Z;for(W=0;W<1<<pJ[Y];W++)CZ[Z++]=Y}Z>>=7;for(;Y<iG;Y++){lJ[Y]=Z<<7;for(W=0;W<1<<pJ[Y]-7;W++)CZ[256+Z++]=Y}for(G=0;G<=zW;G++)V[G]=0;W=0;while(W<=143)a7[W*2+1]=8,W++,V[8]++;while(W<=255)a7[W*2+1]=9,W++,V[9]++;while(W<=279)a7[W*2+1]=7,W++,V[7]++;while(W<=287)a7[W*2+1]=8,W++,V[8]++;HD(a7,KZ+1,V);for(W=0;W<iG;W++)wZ[W*2+1]=5,wZ[W*2]=ND(W,5);QD=new wA(a7,$A,BZ+1,KZ,zW),JD=new wA(wZ,pJ,0,iG,zW),UD=new wA([],Hy,0,hA,Ny)},AD=(W)=>{let G;for(G=0;G<KZ;G++)W.dyn_ltree[G*2]=0;for(G=0;G<iG;G++)W.dyn_dtree[G*2]=0;for(G=0;G<hA;G++)W.bl_tree[G*2]=0;W.dyn_ltree[bA*2]=1,W.opt_len=W.static_len=0,W.sym_next=W.matches=0},zD=(W)=>{if(W.bi_valid>8)MZ(W,W.bi_buf);else if(W.bi_valid>0)W.pending_buf[W.pending++]=W.bi_buf;W.bi_buf=0,W.bi_valid=0},jC=(W,G,X,Y)=>{let Z=G*2,V=X*2;return W[Z]<W[V]||W[Z]===W[V]&&Y[G]<=Y[X]},OA=(W,G,X)=>{let Y=W.heap[X],Z=X<<1;while(Z<=W.heap_len){if(Z<W.heap_len&&jC(G,W.heap[Z+1],W.heap[Z],W.depth))Z++;if(jC(G,Y,W.heap[Z],W.depth))break;W.heap[X]=W.heap[Z],X=Z,Z<<=1}W.heap[X]=Y},OC=(W,G,X)=>{let Y,Z,V=0,Q,J;if(W.sym_next!==0)do if(Y=W.pending_buf[W.sym_buf+V++]&255,Y+=(W.pending_buf[W.sym_buf+V++]&255)<<8,Z=W.pending_buf[W.sym_buf+V++],Y===0)U7(W,Z,G);else{if(Q=DZ[Z],U7(W,Q+BZ+1,G),J=$A[Q],J!==0)Z-=mA[Q],g9(W,Z,J);if(Y--,Q=qD(Y),U7(W,Q,X),J=pJ[Q],J!==0)Y-=lJ[Q],g9(W,Y,J)}while(V<W.sym_next);U7(W,bA,G)},FA=(W,G)=>{let X=G.dyn_tree,Y=G.stat_desc.static_tree,Z=G.stat_desc.has_stree,V=G.stat_desc.elems,Q,J,U=-1,q;W.heap_len=0,W.heap_max=GD;for(Q=0;Q<V;Q++)if(X[Q*2]!==0)W.heap[++W.heap_len]=U=Q,W.depth[Q]=0;else X[Q*2+1]=0;while(W.heap_len<2)if(q=W.heap[++W.heap_len]=U<2?++U:0,X[q*2]=1,W.depth[q]=0,W.opt_len--,Z)W.static_len-=Y[q*2+1];G.max_code=U;for(Q=W.heap_len>>1;Q>=1;Q--)OA(W,X,Q);q=V;do Q=W.heap[1],W.heap[1]=W.heap[W.heap_len--],OA(W,X,1),J=W.heap[1],W.heap[--W.heap_max]=Q,W.heap[--W.heap_max]=J,X[q*2]=X[Q*2]+X[J*2],W.depth[q]=(W.depth[Q]>=W.depth[J]?W.depth[Q]:W.depth[J])+1,X[Q*2+1]=X[J*2+1]=q,W.heap[1]=q++,OA(W,X,1);while(W.heap_len>=2);W.heap[--W.heap_max]=W.heap[1],Iy(W,G),HD(X,U,W.bl_count)},KC=(W,G,X)=>{let Y,Z=-1,V,Q=G[1],J=0,U=7,q=4;if(Q===0)U=138,q=3;G[(X+1)*2+1]=65535;for(Y=0;Y<=X;Y++){if(V=Q,Q=G[(Y+1)*2+1],++J<U&&V===Q)continue;else if(J<q)W.bl_tree[V*2]+=J;else if(V!==0){if(V!==Z)W.bl_tree[V*2]++;W.bl_tree[XD*2]++}else if(J<=10)W.bl_tree[YD*2]++;else W.bl_tree[ZD*2]++;if(J=0,Z=V,Q===0)U=138,q=3;else if(V===Q)U=6,q=3;else U=7,q=4}},CC=(W,G,X)=>{let Y,Z=-1,V,Q=G[1],J=0,U=7,q=4;if(Q===0)U=138,q=3;for(Y=0;Y<=X;Y++){if(V=Q,Q=G[(Y+1)*2+1],++J<U&&V===Q)continue;else if(J<q)do U7(W,V,W.bl_tree);while(--J!==0);else if(V!==0){if(V!==Z)U7(W,V,W.bl_tree),J--;U7(W,XD,W.bl_tree),g9(W,J-3,2)}else if(J<=10)U7(W,YD,W.bl_tree),g9(W,J-3,3);else U7(W,ZD,W.bl_tree),g9(W,J-11,7);if(J=0,Z=V,Q===0)U=138,q=3;else if(V===Q)U=6,q=3;else U=7,q=4}},jy=(W)=>{let G;KC(W,W.dyn_ltree,W.l_desc.max_code),KC(W,W.dyn_dtree,W.d_desc.max_code),FA(W,W.bl_desc);for(G=hA-1;G>=3;G--)if(W.bl_tree[VD[G]*2+1]!==0)break;return W.opt_len+=3*(G+1)+5+5+4,G},Oy=(W,G,X,Y)=>{let Z;g9(W,G-257,5),g9(W,X-1,5),g9(W,Y-4,4);for(Z=0;Z<Y;Z++)g9(W,W.bl_tree[VD[Z]*2+1],3);CC(W,W.dyn_ltree,G-1),CC(W,W.dyn_dtree,X-1)},Ky=(W)=>{let G=4093624447,X;for(X=0;X<=31;X++,G>>>=1)if(G&1&&W.dyn_ltree[X*2]!==0)return 0;if(W.dyn_ltree[18]!==0||W.dyn_ltree[20]!==0||W.dyn_ltree[26]!==0)return 1;for(X=32;X<BZ;X++)if(W.dyn_ltree[X*2]!==0)return 1;return 0},DC=!1,Cy=(W)=>{if(!DC)wy(),DC=!0;W.l_desc=new jA(W.dyn_ltree,QD),W.d_desc=new jA(W.dyn_dtree,JD),W.bl_desc=new jA(W.bl_tree,UD),W.bi_buf=0,W.bi_valid=0,AD(W)},ID=(W,G,X,Y)=>{if(g9(W,(Qy<<1)+(Y?1:0),3),zD(W),MZ(W,X),MZ(W,~X),X)W.pending_buf.set(W.window.subarray(G,G+X),W.pending);W.pending+=X},Dy=(W)=>{g9(W,WD<<1,3),U7(W,bA,a7),zy(W)},My=(W,G,X,Y)=>{let Z,V,Q=0;if(W.level>0){if(W.strm.data_type===2)W.strm.data_type=Ky(W);if(FA(W,W.l_desc),FA(W,W.d_desc),Q=jy(W),Z=W.opt_len+3+7>>>3,V=W.static_len+3+7>>>3,V<=Z)Z=V}else Z=V=X+5;if(X+4<=Z&&G!==-1)ID(W,G,X,Y);else if(W.strategy===4||V===Z)g9(W,(WD<<1)+(Y?1:0),3),OC(W,a7,wZ);else g9(W,(Jy<<1)+(Y?1:0),3),Oy(W,W.l_desc.max_code+1,W.d_desc.max_code+1,Q+1),OC(W,W.dyn_ltree,W.dyn_dtree);if(AD(W),Y)zD(W)},Ty=(W,G,X)=>{if(W.pending_buf[W.sym_buf+W.sym_next++]=G,W.pending_buf[W.sym_buf+W.sym_next++]=G>>8,W.pending_buf[W.sym_buf+W.sym_next++]=X,G===0)W.dyn_ltree[X*2]++;else W.matches++,G--,W.dyn_ltree[(DZ[X]+BZ+1)*2]++,W.dyn_dtree[qD(G)*2]++;return W.sym_next===W.sym_end},Py=Cy,Ry=ID,Ly=My,By=Ty,Ey=Dy,$y={_tr_init:Py,_tr_stored_block:Ry,_tr_flush_block:Ly,_tr_tally:By,_tr_align:Ey},Fy=(W,G,X,Y)=>{let Z=W&65535|0,V=W>>>16&65535|0,Q=0;while(X!==0){Q=X>2000?2000:X,X-=Q;do Z=Z+G[Y++]|0,V=V+Z|0;while(--Q);Z%=65521,V%=65521}return Z|V<<16|0},TZ=Fy,Sy=()=>{let W,G=[];for(var X=0;X<256;X++){W=X;for(var Y=0;Y<8;Y++)W=W&1?3988292384^W>>>1:W>>>1;G[X]=W}return G},xy=new Uint32Array(Sy()),ky=(W,G,X,Y)=>{let Z=xy,V=Y+X;W^=-1;for(let Q=Y;Q<V;Q++)W=W>>>8^Z[(W^G[Q])&255];return W^-1},o8=ky,jW={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},CW={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:_y,_tr_stored_block:SA,_tr_flush_block:yy,_tr_tally:Q6,_tr_align:vy}=$y,{Z_NO_FLUSH:J6,Z_PARTIAL_FLUSH:gy,Z_FULL_FLUSH:uy,Z_FINISH:A5,Z_BLOCK:MC,Z_OK:s8,Z_STREAM_END:TC,Z_STREAM_ERROR:q7,Z_DATA_ERROR:hy,Z_BUF_ERROR:KA,Z_DEFAULT_COMPRESSION:by,Z_FILTERED:my,Z_HUFFMAN_ONLY:hJ,Z_RLE:fy,Z_FIXED:cy,Z_DEFAULT_STRATEGY:py,Z_UNKNOWN:ly,Z_DEFLATED:nJ}=CW,dy=9,oy=15,ny=8,iy=29,ry=256,xA=ry+1+iy,ay=30,sy=19,ty=2*xA+1,ey=15,g1=3,V6=258,N7=V6+g1+1,Wv=32,rG=42,fA=57,kA=69,_A=73,yA=91,vA=103,IW=113,zZ=666,F9=1,tG=2,OW=3,eG=4,Gv=3,wW=(W,G)=>{return W.msg=jW[G],G},PC=(W)=>{return W*2-(W>4?9:0)},Z6=(W)=>{let G=W.length;while(--G>=0)W[G]=0},Xv=(W)=>{let G,X,Y,Z=W.w_size;G=W.hash_size,Y=G;do X=W.head[--Y],W.head[Y]=X>=Z?X-Z:0;while(--G);G=Z,Y=G;do X=W.prev[--Y],W.prev[Y]=X>=Z?X-Z:0;while(--G)},Yv=(W,G,X)=>(G<<W.hash_shift^X)&W.hash_mask,U6=Yv,s9=(W)=>{let G=W.state,X=G.pending;if(X>W.avail_out)X=W.avail_out;if(X===0)return;if(W.output.set(G.pending_buf.subarray(G.pending_out,G.pending_out+X),W.next_out),W.next_out+=X,G.pending_out+=X,W.total_out+=X,W.avail_out-=X,G.pending-=X,G.pending===0)G.pending_out=0},t9=(W,G)=>{yy(W,W.block_start>=0?W.block_start:-1,W.strstart-W.block_start,G),W.block_start=W.strstart,s9(W.strm)},i1=(W,G)=>{W.pending_buf[W.pending++]=G},AZ=(W,G)=>{W.pending_buf[W.pending++]=G>>>8&255,W.pending_buf[W.pending++]=G&255},gA=(W,G,X,Y)=>{let Z=W.avail_in;if(Z>Y)Z=Y;if(Z===0)return 0;if(W.avail_in-=Z,G.set(W.input.subarray(W.next_in,W.next_in+Z),X),W.state.wrap===1)W.adler=TZ(W.adler,G,Z,X);else if(W.state.wrap===2)W.adler=o8(W.adler,G,Z,X);return W.next_in+=Z,W.total_in+=Z,Z},wD=(W,G)=>{let{max_chain_length:X,strstart:Y}=W,Z,V,Q=W.prev_length,J=W.nice_match,U=W.strstart>W.w_size-N7?W.strstart-(W.w_size-N7):0,q=W.window,N=W.w_mask,A=W.prev,H=W.strstart+V6,I=q[Y+Q-1],w=q[Y+Q];if(W.prev_length>=W.good_match)X>>=2;if(J>W.lookahead)J=W.lookahead;do{if(Z=G,q[Z+Q]!==w||q[Z+Q-1]!==I||q[Z]!==q[Y]||q[++Z]!==q[Y+1])continue;Y+=2,Z++;do;while(q[++Y]===q[++Z]&&q[++Y]===q[++Z]&&q[++Y]===q[++Z]&&q[++Y]===q[++Z]&&q[++Y]===q[++Z]&&q[++Y]===q[++Z]&&q[++Y]===q[++Z]&&q[++Y]===q[++Z]&&Y<H);if(V=V6-(H-Y),Y=H-V6,V>Q){if(W.match_start=G,Q=V,V>=J)break;I=q[Y+Q-1],w=q[Y+Q]}}while((G=A[G&N])>U&&--X!==0);if(Q<=W.lookahead)return Q;return W.lookahead},aG=(W)=>{let G=W.w_size,X,Y,Z;do{if(Y=W.window_size-W.lookahead-W.strstart,W.strstart>=G+(G-N7)){if(W.window.set(W.window.subarray(G,G+G-Y),0),W.match_start-=G,W.strstart-=G,W.block_start-=G,W.insert>W.strstart)W.insert=W.strstart;Xv(W),Y+=G}if(W.strm.avail_in===0)break;if(X=gA(W.strm,W.window,W.strstart+W.lookahead,Y),W.lookahead+=X,W.lookahead+W.insert>=g1){Z=W.strstart-W.insert,W.ins_h=W.window[Z],W.ins_h=U6(W,W.ins_h,W.window[Z+1]);while(W.insert)if(W.ins_h=U6(W,W.ins_h,W.window[Z+g1-1]),W.prev[Z&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=Z,Z++,W.insert--,W.lookahead+W.insert<g1)break}}while(W.lookahead<N7&&W.strm.avail_in!==0)},jD=(W,G)=>{let X=W.pending_buf_size-5>W.w_size?W.w_size:W.pending_buf_size-5,Y,Z,V,Q=0,J=W.strm.avail_in;do{if(Y=65535,V=W.bi_valid+42>>3,W.strm.avail_out<V)break;if(V=W.strm.avail_out-V,Z=W.strstart-W.block_start,Y>Z+W.strm.avail_in)Y=Z+W.strm.avail_in;if(Y>V)Y=V;if(Y<X&&(Y===0&&G!==A5||G===J6||Y!==Z+W.strm.avail_in))break;if(Q=G===A5&&Y===Z+W.strm.avail_in?1:0,SA(W,0,0,Q),W.pending_buf[W.pending-4]=Y,W.pending_buf[W.pending-3]=Y>>8,W.pending_buf[W.pending-2]=~Y,W.pending_buf[W.pending-1]=~Y>>8,s9(W.strm),Z){if(Z>Y)Z=Y;W.strm.output.set(W.window.subarray(W.block_start,W.block_start+Z),W.strm.next_out),W.strm.next_out+=Z,W.strm.avail_out-=Z,W.strm.total_out+=Z,W.block_start+=Z,Y-=Z}if(Y)gA(W.strm,W.strm.output,W.strm.next_out,Y),W.strm.next_out+=Y,W.strm.avail_out-=Y,W.strm.total_out+=Y}while(Q===0);if(J-=W.strm.avail_in,J){if(J>=W.w_size)W.matches=2,W.window.set(W.strm.input.subarray(W.strm.next_in-W.w_size,W.strm.next_in),0),W.strstart=W.w_size,W.insert=W.strstart;else{if(W.window_size-W.strstart<=J){if(W.strstart-=W.w_size,W.window.set(W.window.subarray(W.w_size,W.w_size+W.strstart),0),W.matches<2)W.matches++;if(W.insert>W.strstart)W.insert=W.strstart}W.window.set(W.strm.input.subarray(W.strm.next_in-J,W.strm.next_in),W.strstart),W.strstart+=J,W.insert+=J>W.w_size-W.insert?W.w_size-W.insert:J}W.block_start=W.strstart}if(W.high_water<W.strstart)W.high_water=W.strstart;if(Q)return eG;if(G!==J6&&G!==A5&&W.strm.avail_in===0&&W.strstart===W.block_start)return tG;if(V=W.window_size-W.strstart,W.strm.avail_in>V&&W.block_start>=W.w_size){if(W.block_start-=W.w_size,W.strstart-=W.w_size,W.window.set(W.window.subarray(W.w_size,W.w_size+W.strstart),0),W.matches<2)W.matches++;if(V+=W.w_size,W.insert>W.strstart)W.insert=W.strstart}if(V>W.strm.avail_in)V=W.strm.avail_in;if(V)gA(W.strm,W.window,W.strstart,V),W.strstart+=V,W.insert+=V>W.w_size-W.insert?W.w_size-W.insert:V;if(W.high_water<W.strstart)W.high_water=W.strstart;if(V=W.bi_valid+42>>3,V=W.pending_buf_size-V>65535?65535:W.pending_buf_size-V,X=V>W.w_size?W.w_size:V,Z=W.strstart-W.block_start,Z>=X||(Z||G===A5)&&G!==J6&&W.strm.avail_in===0&&Z<=V)Y=Z>V?V:Z,Q=G===A5&&W.strm.avail_in===0&&Y===Z?1:0,SA(W,W.block_start,Y,Q),W.block_start+=Y,s9(W.strm);return Q?OW:F9},CA=(W,G)=>{let X,Y;for(;;){if(W.lookahead<N7){if(aG(W),W.lookahead<N7&&G===J6)return F9;if(W.lookahead===0)break}if(X=0,W.lookahead>=g1)W.ins_h=U6(W,W.ins_h,W.window[W.strstart+g1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;if(X!==0&&W.strstart-X<=W.w_size-N7)W.match_length=wD(W,X);if(W.match_length>=g1)if(Y=Q6(W,W.strstart-W.match_start,W.match_length-g1),W.lookahead-=W.match_length,W.match_length<=W.max_lazy_match&&W.lookahead>=g1){W.match_length--;do W.strstart++,W.ins_h=U6(W,W.ins_h,W.window[W.strstart+g1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;while(--W.match_length!==0);W.strstart++}else W.strstart+=W.match_length,W.match_length=0,W.ins_h=W.window[W.strstart],W.ins_h=U6(W,W.ins_h,W.window[W.strstart+1]);else Y=Q6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++;if(Y){if(t9(W,!1),W.strm.avail_out===0)return F9}}if(W.insert=W.strstart<g1-1?W.strstart:g1-1,G===A5){if(t9(W,!0),W.strm.avail_out===0)return OW;return eG}if(W.sym_next){if(t9(W,!1),W.strm.avail_out===0)return F9}return tG},oG=(W,G)=>{let X,Y,Z;for(;;){if(W.lookahead<N7){if(aG(W),W.lookahead<N7&&G===J6)return F9;if(W.lookahead===0)break}if(X=0,W.lookahead>=g1)W.ins_h=U6(W,W.ins_h,W.window[W.strstart+g1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;if(W.prev_length=W.match_length,W.prev_match=W.match_start,W.match_length=g1-1,X!==0&&W.prev_length<W.max_lazy_match&&W.strstart-X<=W.w_size-N7){if(W.match_length=wD(W,X),W.match_length<=5&&(W.strategy===my||W.match_length===g1&&W.strstart-W.match_start>4096))W.match_length=g1-1}if(W.prev_length>=g1&&W.match_length<=W.prev_length){Z=W.strstart+W.lookahead-g1,Y=Q6(W,W.strstart-1-W.prev_match,W.prev_length-g1),W.lookahead-=W.prev_length-1,W.prev_length-=2;do if(++W.strstart<=Z)W.ins_h=U6(W,W.ins_h,W.window[W.strstart+g1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;while(--W.prev_length!==0);if(W.match_available=0,W.match_length=g1-1,W.strstart++,Y){if(t9(W,!1),W.strm.avail_out===0)return F9}}else if(W.match_available){if(Y=Q6(W,0,W.window[W.strstart-1]),Y)t9(W,!1);if(W.strstart++,W.lookahead--,W.strm.avail_out===0)return F9}else W.match_available=1,W.strstart++,W.lookahead--}if(W.match_available)Y=Q6(W,0,W.window[W.strstart-1]),W.match_available=0;if(W.insert=W.strstart<g1-1?W.strstart:g1-1,G===A5){if(t9(W,!0),W.strm.avail_out===0)return OW;return eG}if(W.sym_next){if(t9(W,!1),W.strm.avail_out===0)return F9}return tG},Zv=(W,G)=>{let X,Y,Z,V,Q=W.window;for(;;){if(W.lookahead<=V6){if(aG(W),W.lookahead<=V6&&G===J6)return F9;if(W.lookahead===0)break}if(W.match_length=0,W.lookahead>=g1&&W.strstart>0){if(Z=W.strstart-1,Y=Q[Z],Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]){V=W.strstart+V6;do;while(Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Z<V);if(W.match_length=V6-(V-Z),W.match_length>W.lookahead)W.match_length=W.lookahead}}if(W.match_length>=g1)X=Q6(W,1,W.match_length-g1),W.lookahead-=W.match_length,W.strstart+=W.match_length,W.match_length=0;else X=Q6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++;if(X){if(t9(W,!1),W.strm.avail_out===0)return F9}}if(W.insert=0,G===A5){if(t9(W,!0),W.strm.avail_out===0)return OW;return eG}if(W.sym_next){if(t9(W,!1),W.strm.avail_out===0)return F9}return tG},Vv=(W,G)=>{let X;for(;;){if(W.lookahead===0){if(aG(W),W.lookahead===0){if(G===J6)return F9;break}}if(W.match_length=0,X=Q6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++,X){if(t9(W,!1),W.strm.avail_out===0)return F9}}if(W.insert=0,G===A5){if(t9(W,!0),W.strm.avail_out===0)return OW;return eG}if(W.sym_next){if(t9(W,!1),W.strm.avail_out===0)return F9}return tG};function J7(W,G,X,Y,Z){this.good_length=W,this.max_lazy=G,this.nice_length=X,this.max_chain=Y,this.func=Z}var IZ=[new J7(0,0,0,0,jD),new J7(4,4,8,4,CA),new J7(4,5,16,8,CA),new J7(4,6,32,32,CA),new J7(4,4,16,16,oG),new J7(8,16,32,32,oG),new J7(8,16,128,128,oG),new J7(8,32,128,256,oG),new J7(32,128,258,1024,oG),new J7(32,258,258,4096,oG)],Qv=(W)=>{W.window_size=2*W.w_size,Z6(W.head),W.max_lazy_match=IZ[W.level].max_lazy,W.good_match=IZ[W.level].good_length,W.nice_match=IZ[W.level].nice_length,W.max_chain_length=IZ[W.level].max_chain,W.strstart=0,W.block_start=0,W.lookahead=0,W.insert=0,W.match_length=W.prev_length=g1-1,W.match_available=0,W.ins_h=0};function Jv(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=nJ,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(ty*2),this.dyn_dtree=new Uint16Array((2*ay+1)*2),this.bl_tree=new Uint16Array((2*sy+1)*2),Z6(this.dyn_ltree),Z6(this.dyn_dtree),Z6(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(ey+1),this.heap=new Uint16Array(2*xA+1),Z6(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*xA+1),Z6(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}var EZ=(W)=>{if(!W)return 1;let G=W.state;if(!G||G.strm!==W||G.status!==rG&&G.status!==fA&&G.status!==kA&&G.status!==_A&&G.status!==yA&&G.status!==vA&&G.status!==IW&&G.status!==zZ)return 1;return 0},OD=(W)=>{if(EZ(W))return wW(W,q7);W.total_in=W.total_out=0,W.data_type=ly;let G=W.state;if(G.pending=0,G.pending_out=0,G.wrap<0)G.wrap=-G.wrap;return G.status=G.wrap===2?fA:G.wrap?rG:IW,W.adler=G.wrap===2?0:1,G.last_flush=-2,_y(G),s8},KD=(W)=>{let G=OD(W);if(G===s8)Qv(W.state);return G},Uv=(W,G)=>{if(EZ(W)||W.state.wrap!==2)return q7;return W.state.gzhead=G,s8},CD=(W,G,X,Y,Z,V)=>{if(!W)return q7;let Q=1;if(G===by)G=6;if(Y<0)Q=0,Y=-Y;else if(Y>15)Q=2,Y-=16;if(Z<1||Z>dy||X!==nJ||Y<8||Y>15||G<0||G>9||V<0||V>cy||Y===8&&Q!==1)return wW(W,q7);if(Y===8)Y=9;let J=new Jv;return W.state=J,J.strm=W,J.status=rG,J.wrap=Q,J.gzhead=null,J.w_bits=Y,J.w_size=1<<J.w_bits,J.w_mask=J.w_size-1,J.hash_bits=Z+7,J.hash_size=1<<J.hash_bits,J.hash_mask=J.hash_size-1,J.hash_shift=~~((J.hash_bits+g1-1)/g1),J.window=new Uint8Array(J.w_size*2),J.head=new Uint16Array(J.hash_size),J.prev=new Uint16Array(J.w_size),J.lit_bufsize=1<<Z+6,J.pending_buf_size=J.lit_bufsize*4,J.pending_buf=new Uint8Array(J.pending_buf_size),J.sym_buf=J.lit_bufsize,J.sym_end=(J.lit_bufsize-1)*3,J.level=G,J.strategy=V,J.method=X,KD(W)},qv=(W,G)=>{return CD(W,G,nJ,oy,ny,py)},Nv=(W,G)=>{if(EZ(W)||G>MC||G<0)return W?wW(W,q7):q7;let X=W.state;if(!W.output||W.avail_in!==0&&!W.input||X.status===zZ&&G!==A5)return wW(W,W.avail_out===0?KA:q7);let Y=X.last_flush;if(X.last_flush=G,X.pending!==0){if(s9(W),W.avail_out===0)return X.last_flush=-1,s8}else if(W.avail_in===0&&PC(G)<=PC(Y)&&G!==A5)return wW(W,KA);if(X.status===zZ&&W.avail_in!==0)return wW(W,KA);if(X.status===rG&&X.wrap===0)X.status=IW;if(X.status===rG){let Z=nJ+(X.w_bits-8<<4)<<8,V=-1;if(X.strategy>=hJ||X.level<2)V=0;else if(X.level<6)V=1;else if(X.level===6)V=2;else V=3;if(Z|=V<<6,X.strstart!==0)Z|=Wv;if(Z+=31-Z%31,AZ(X,Z),X.strstart!==0)AZ(X,W.adler>>>16),AZ(X,W.adler&65535);if(W.adler=1,X.status=IW,s9(W),X.pending!==0)return X.last_flush=-1,s8}if(X.status===fA)if(W.adler=0,i1(X,31),i1(X,139),i1(X,8),!X.gzhead){if(i1(X,0),i1(X,0),i1(X,0),i1(X,0),i1(X,0),i1(X,X.level===9?2:X.strategy>=hJ||X.level<2?4:0),i1(X,Gv),X.status=IW,s9(W),X.pending!==0)return X.last_flush=-1,s8}else{if(i1(X,(X.gzhead.text?1:0)+(X.gzhead.hcrc?2:0)+(!X.gzhead.extra?0:4)+(!X.gzhead.name?0:8)+(!X.gzhead.comment?0:16)),i1(X,X.gzhead.time&255),i1(X,X.gzhead.time>>8&255),i1(X,X.gzhead.time>>16&255),i1(X,X.gzhead.time>>24&255),i1(X,X.level===9?2:X.strategy>=hJ||X.level<2?4:0),i1(X,X.gzhead.os&255),X.gzhead.extra&&X.gzhead.extra.length)i1(X,X.gzhead.extra.length&255),i1(X,X.gzhead.extra.length>>8&255);if(X.gzhead.hcrc)W.adler=o8(W.adler,X.pending_buf,X.pending,0);X.gzindex=0,X.status=kA}if(X.status===kA){if(X.gzhead.extra){let Z=X.pending,V=(X.gzhead.extra.length&65535)-X.gzindex;while(X.pending+V>X.pending_buf_size){let J=X.pending_buf_size-X.pending;if(X.pending_buf.set(X.gzhead.extra.subarray(X.gzindex,X.gzindex+J),X.pending),X.pending=X.pending_buf_size,X.gzhead.hcrc&&X.pending>Z)W.adler=o8(W.adler,X.pending_buf,X.pending-Z,Z);if(X.gzindex+=J,s9(W),X.pending!==0)return X.last_flush=-1,s8;Z=0,V-=J}let Q=new Uint8Array(X.gzhead.extra);if(X.pending_buf.set(Q.subarray(X.gzindex,X.gzindex+V),X.pending),X.pending+=V,X.gzhead.hcrc&&X.pending>Z)W.adler=o8(W.adler,X.pending_buf,X.pending-Z,Z);X.gzindex=0}X.status=_A}if(X.status===_A){if(X.gzhead.name){let Z=X.pending,V;do{if(X.pending===X.pending_buf_size){if(X.gzhead.hcrc&&X.pending>Z)W.adler=o8(W.adler,X.pending_buf,X.pending-Z,Z);if(s9(W),X.pending!==0)return X.last_flush=-1,s8;Z=0}if(X.gzindex<X.gzhead.name.length)V=X.gzhead.name.charCodeAt(X.gzindex++)&255;else V=0;i1(X,V)}while(V!==0);if(X.gzhead.hcrc&&X.pending>Z)W.adler=o8(W.adler,X.pending_buf,X.pending-Z,Z);X.gzindex=0}X.status=yA}if(X.status===yA){if(X.gzhead.comment){let Z=X.pending,V;do{if(X.pending===X.pending_buf_size){if(X.gzhead.hcrc&&X.pending>Z)W.adler=o8(W.adler,X.pending_buf,X.pending-Z,Z);if(s9(W),X.pending!==0)return X.last_flush=-1,s8;Z=0}if(X.gzindex<X.gzhead.comment.length)V=X.gzhead.comment.charCodeAt(X.gzindex++)&255;else V=0;i1(X,V)}while(V!==0);if(X.gzhead.hcrc&&X.pending>Z)W.adler=o8(W.adler,X.pending_buf,X.pending-Z,Z)}X.status=vA}if(X.status===vA){if(X.gzhead.hcrc){if(X.pending+2>X.pending_buf_size){if(s9(W),X.pending!==0)return X.last_flush=-1,s8}i1(X,W.adler&255),i1(X,W.adler>>8&255),W.adler=0}if(X.status=IW,s9(W),X.pending!==0)return X.last_flush=-1,s8}if(W.avail_in!==0||X.lookahead!==0||G!==J6&&X.status!==zZ){let Z=X.level===0?jD(X,G):X.strategy===hJ?Vv(X,G):X.strategy===fy?Zv(X,G):IZ[X.level].func(X,G);if(Z===OW||Z===eG)X.status=zZ;if(Z===F9||Z===OW){if(W.avail_out===0)X.last_flush=-1;return s8}if(Z===tG){if(G===gy)vy(X);else if(G!==MC){if(SA(X,0,0,!1),G===uy){if(Z6(X.head),X.lookahead===0)X.strstart=0,X.block_start=0,X.insert=0}}if(s9(W),W.avail_out===0)return X.last_flush=-1,s8}}if(G!==A5)return s8;if(X.wrap<=0)return TC;if(X.wrap===2)i1(X,W.adler&255),i1(X,W.adler>>8&255),i1(X,W.adler>>16&255),i1(X,W.adler>>24&255),i1(X,W.total_in&255),i1(X,W.total_in>>8&255),i1(X,W.total_in>>16&255),i1(X,W.total_in>>24&255);else AZ(X,W.adler>>>16),AZ(X,W.adler&65535);if(s9(W),X.wrap>0)X.wrap=-X.wrap;return X.pending!==0?s8:TC},Hv=(W)=>{if(EZ(W))return q7;let G=W.state.status;return W.state=null,G===IW?wW(W,hy):s8},Av=(W,G)=>{let X=G.length;if(EZ(W))return q7;let Y=W.state,Z=Y.wrap;if(Z===2||Z===1&&Y.status!==rG||Y.lookahead)return q7;if(Z===1)W.adler=TZ(W.adler,G,X,0);if(Y.wrap=0,X>=Y.w_size){if(Z===0)Z6(Y.head),Y.strstart=0,Y.block_start=0,Y.insert=0;let U=new Uint8Array(Y.w_size);U.set(G.subarray(X-Y.w_size,X),0),G=U,X=Y.w_size}let{avail_in:V,next_in:Q,input:J}=W;W.avail_in=X,W.next_in=0,W.input=G,aG(Y);while(Y.lookahead>=g1){let U=Y.strstart,q=Y.lookahead-(g1-1);do Y.ins_h=U6(Y,Y.ins_h,Y.window[U+g1-1]),Y.prev[U&Y.w_mask]=Y.head[Y.ins_h],Y.head[Y.ins_h]=U,U++;while(--q);Y.strstart=U,Y.lookahead=g1-1,aG(Y)}return Y.strstart+=Y.lookahead,Y.block_start=Y.strstart,Y.insert=Y.lookahead,Y.lookahead=0,Y.match_length=Y.prev_length=g1-1,Y.match_available=0,W.next_in=Q,W.input=J,W.avail_in=V,Y.wrap=Z,s8},zv=qv,Iv=CD,wv=KD,jv=OD,Ov=Uv,Kv=Nv,Cv=Hv,Dv=Av,Mv="pako deflate (from Nodeca project)",jZ={deflateInit:zv,deflateInit2:Iv,deflateReset:wv,deflateResetKeep:jv,deflateSetHeader:Ov,deflate:Kv,deflateEnd:Cv,deflateSetDictionary:Dv,deflateInfo:Mv},Tv=(W,G)=>{return Object.prototype.hasOwnProperty.call(W,G)},Pv=function(W){let G=Array.prototype.slice.call(arguments,1);while(G.length){let X=G.shift();if(!X)continue;if(typeof X!=="object")throw TypeError(X+"must be non-object");for(let Y in X)if(Tv(X,Y))W[Y]=X[Y]}return W},Rv=(W)=>{let G=0;for(let Y=0,Z=W.length;Y<Z;Y++)G+=W[Y].length;let X=new Uint8Array(G);for(let Y=0,Z=0,V=W.length;Y<V;Y++){let Q=W[Y];X.set(Q,Z),Z+=Q.length}return X},iJ={assign:Pv,flattenChunks:Rv},DD=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(W){DD=!1}var PZ=new Uint8Array(256);for(let W=0;W<256;W++)PZ[W]=W>=252?6:W>=248?5:W>=240?4:W>=224?3:W>=192?2:1;PZ[254]=PZ[254]=1;var Lv=(W)=>{if(typeof TextEncoder==="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(W);let G,X,Y,Z,V,Q=W.length,J=0;for(Z=0;Z<Q;Z++){if(X=W.charCodeAt(Z),(X&64512)===55296&&Z+1<Q){if(Y=W.charCodeAt(Z+1),(Y&64512)===56320)X=65536+(X-55296<<10)+(Y-56320),Z++}J+=X<128?1:X<2048?2:X<65536?3:4}G=new Uint8Array(J);for(V=0,Z=0;V<J;Z++){if(X=W.charCodeAt(Z),(X&64512)===55296&&Z+1<Q){if(Y=W.charCodeAt(Z+1),(Y&64512)===56320)X=65536+(X-55296<<10)+(Y-56320),Z++}if(X<128)G[V++]=X;else if(X<2048)G[V++]=192|X>>>6,G[V++]=128|X&63;else if(X<65536)G[V++]=224|X>>>12,G[V++]=128|X>>>6&63,G[V++]=128|X&63;else G[V++]=240|X>>>18,G[V++]=128|X>>>12&63,G[V++]=128|X>>>6&63,G[V++]=128|X&63}return G},Bv=(W,G)=>{if(G<65534){if(W.subarray&&DD)return String.fromCharCode.apply(null,W.length===G?W:W.subarray(0,G))}let X="";for(let Y=0;Y<G;Y++)X+=String.fromCharCode(W[Y]);return X},Ev=(W,G)=>{let X=G||W.length;if(typeof TextDecoder==="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(W.subarray(0,G));let Y,Z,V=Array(X*2);for(Z=0,Y=0;Y<X;){let Q=W[Y++];if(Q<128){V[Z++]=Q;continue}let J=PZ[Q];if(J>4){V[Z++]=65533,Y+=J-1;continue}Q&=J===2?31:J===3?15:7;while(J>1&&Y<X)Q=Q<<6|W[Y++]&63,J--;if(J>1){V[Z++]=65533;continue}if(Q<65536)V[Z++]=Q;else Q-=65536,V[Z++]=55296|Q>>10&1023,V[Z++]=56320|Q&1023}return Bv(V,Z)},$v=(W,G)=>{if(G=G||W.length,G>W.length)G=W.length;let X=G-1;while(X>=0&&(W[X]&192)===128)X--;if(X<0)return G;if(X===0)return G;return X+PZ[W[X]]>G?X:G},RZ={string2buf:Lv,buf2string:Ev,utf8border:$v};function Fv(){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}var MD=Fv,TD=Object.prototype.toString,{Z_NO_FLUSH:Sv,Z_SYNC_FLUSH:xv,Z_FULL_FLUSH:kv,Z_FINISH:_v,Z_OK:dJ,Z_STREAM_END:yv,Z_DEFAULT_COMPRESSION:vv,Z_DEFAULT_STRATEGY:gv,Z_DEFLATED:uv}=CW;function $Z(W){this.options=iJ.assign({level:vv,method:uv,chunkSize:16384,windowBits:15,memLevel:8,strategy:gv},W||{});let G=this.options;if(G.raw&&G.windowBits>0)G.windowBits=-G.windowBits;else if(G.gzip&&G.windowBits>0&&G.windowBits<16)G.windowBits+=16;this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new MD,this.strm.avail_out=0;let X=jZ.deflateInit2(this.strm,G.level,G.method,G.windowBits,G.memLevel,G.strategy);if(X!==dJ)throw Error(jW[X]);if(G.header)jZ.deflateSetHeader(this.strm,G.header);if(G.dictionary){let Y;if(typeof G.dictionary==="string")Y=RZ.string2buf(G.dictionary);else if(TD.call(G.dictionary)==="[object ArrayBuffer]")Y=new Uint8Array(G.dictionary);else Y=G.dictionary;if(X=jZ.deflateSetDictionary(this.strm,Y),X!==dJ)throw Error(jW[X]);this._dict_set=!0}}$Z.prototype.push=function(W,G){let X=this.strm,Y=this.options.chunkSize,Z,V;if(this.ended)return!1;if(G===~~G)V=G;else V=G===!0?_v:Sv;if(typeof W==="string")X.input=RZ.string2buf(W);else if(TD.call(W)==="[object ArrayBuffer]")X.input=new Uint8Array(W);else X.input=W;X.next_in=0,X.avail_in=X.input.length;for(;;){if(X.avail_out===0)X.output=new Uint8Array(Y),X.next_out=0,X.avail_out=Y;if((V===xv||V===kv)&&X.avail_out<=6){this.onData(X.output.subarray(0,X.next_out)),X.avail_out=0;continue}if(Z=jZ.deflate(X,V),Z===yv){if(X.next_out>0)this.onData(X.output.subarray(0,X.next_out));return Z=jZ.deflateEnd(this.strm),this.onEnd(Z),this.ended=!0,Z===dJ}if(X.avail_out===0){this.onData(X.output);continue}if(V>0&&X.next_out>0){this.onData(X.output.subarray(0,X.next_out)),X.avail_out=0;continue}if(X.avail_in===0)break}return!0};$Z.prototype.onData=function(W){this.chunks.push(W)};$Z.prototype.onEnd=function(W){if(W===dJ)this.result=iJ.flattenChunks(this.chunks);this.chunks=[],this.err=W,this.msg=this.strm.msg};function cA(W,G){let X=new $Z(G);if(X.push(W,!0),X.err)throw X.msg||jW[X.err];return X.result}function hv(W,G){return G=G||{},G.raw=!0,cA(W,G)}function bv(W,G){return G=G||{},G.gzip=!0,cA(W,G)}var mv=$Z,fv=cA,cv=hv,pv=bv,lv=CW,dv={Deflate:mv,deflate:fv,deflateRaw:cv,gzip:pv,constants:lv},bJ=16209,ov=16191,nv=function(G,X){let Y,Z,V,Q,J,U,q,N,A,H,I,w,C,D,x,h,l,u,n,c,p,W0,m,Y0,U0=G.state;Y=G.next_in,m=G.input,Z=Y+(G.avail_in-5),V=G.next_out,Y0=G.output,Q=V-(X-G.avail_out),J=V+(G.avail_out-257),U=U0.dmax,q=U0.wsize,N=U0.whave,A=U0.wnext,H=U0.window,I=U0.hold,w=U0.bits,C=U0.lencode,D=U0.distcode,x=(1<<U0.lenbits)-1,h=(1<<U0.distbits)-1;W:do{if(w<15)I+=m[Y++]<<w,w+=8,I+=m[Y++]<<w,w+=8;l=C[I&x];G:for(;;){if(u=l>>>24,I>>>=u,w-=u,u=l>>>16&255,u===0)Y0[V++]=l&65535;else if(u&16){if(n=l&65535,u&=15,u){if(w<u)I+=m[Y++]<<w,w+=8;n+=I&(1<<u)-1,I>>>=u,w-=u}if(w<15)I+=m[Y++]<<w,w+=8,I+=m[Y++]<<w,w+=8;l=D[I&h];X:for(;;){if(u=l>>>24,I>>>=u,w-=u,u=l>>>16&255,u&16){if(c=l&65535,u&=15,w<u){if(I+=m[Y++]<<w,w+=8,w<u)I+=m[Y++]<<w,w+=8}if(c+=I&(1<<u)-1,c>U){G.msg="invalid distance too far back",U0.mode=bJ;break W}if(I>>>=u,w-=u,u=V-Q,c>u){if(u=c-u,u>N){if(U0.sane){G.msg="invalid distance too far back",U0.mode=bJ;break W}}if(p=0,W0=H,A===0){if(p+=q-u,u<n){n-=u;do Y0[V++]=H[p++];while(--u);p=V-c,W0=Y0}}else if(A<u){if(p+=q+A-u,u-=A,u<n){n-=u;do Y0[V++]=H[p++];while(--u);if(p=0,A<n){u=A,n-=u;do Y0[V++]=H[p++];while(--u);p=V-c,W0=Y0}}}else if(p+=A-u,u<n){n-=u;do Y0[V++]=H[p++];while(--u);p=V-c,W0=Y0}while(n>2)Y0[V++]=W0[p++],Y0[V++]=W0[p++],Y0[V++]=W0[p++],n-=3;if(n){if(Y0[V++]=W0[p++],n>1)Y0[V++]=W0[p++]}}else{p=V-c;do Y0[V++]=Y0[p++],Y0[V++]=Y0[p++],Y0[V++]=Y0[p++],n-=3;while(n>2);if(n){if(Y0[V++]=Y0[p++],n>1)Y0[V++]=Y0[p++]}}}else if((u&64)===0){l=D[(l&65535)+(I&(1<<u)-1)];continue X}else{G.msg="invalid distance code",U0.mode=bJ;break W}break}}else if((u&64)===0){l=C[(l&65535)+(I&(1<<u)-1)];continue G}else if(u&32){U0.mode=ov;break W}else{G.msg="invalid literal/length code",U0.mode=bJ;break W}break}}while(Y<Z&&V<J);n=w>>3,Y-=n,w-=n<<3,I&=(1<<w)-1,G.next_in=Y,G.next_out=V,G.avail_in=Y<Z?5+(Z-Y):5-(Y-Z),G.avail_out=V<J?257+(J-V):257-(V-J),U0.hold=I,U0.bits=w;return},nG=15,RC=852,LC=592,BC=0,DA=1,EC=2,iv=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),rv=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),av=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),sv=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),tv=(W,G,X,Y,Z,V,Q,J)=>{let U=J.bits,q=0,N=0,A=0,H=0,I=0,w=0,C=0,D=0,x=0,h=0,l,u,n,c,p,W0=null,m,Y0=new Uint16Array(nG+1),U0=new Uint16Array(nG+1),y=null,o,B,R;for(q=0;q<=nG;q++)Y0[q]=0;for(N=0;N<Y;N++)Y0[G[X+N]]++;I=U;for(H=nG;H>=1;H--)if(Y0[H]!==0)break;if(I>H)I=H;if(H===0)return Z[V++]=20971520,Z[V++]=20971520,J.bits=1,0;for(A=1;A<H;A++)if(Y0[A]!==0)break;if(I<A)I=A;D=1;for(q=1;q<=nG;q++)if(D<<=1,D-=Y0[q],D<0)return-1;if(D>0&&(W===BC||H!==1))return-1;U0[1]=0;for(q=1;q<nG;q++)U0[q+1]=U0[q]+Y0[q];for(N=0;N<Y;N++)if(G[X+N]!==0)Q[U0[G[X+N]]++]=N;if(W===BC)W0=y=Q,m=20;else if(W===DA)W0=iv,y=rv,m=257;else W0=av,y=sv,m=0;if(h=0,N=0,q=A,p=V,w=I,C=0,n=-1,x=1<<I,c=x-1,W===DA&&x>RC||W===EC&&x>LC)return 1;for(;;){if(o=q-C,Q[N]+1<m)B=0,R=Q[N];else if(Q[N]>=m)B=y[Q[N]-m],R=W0[Q[N]-m];else B=96,R=0;l=1<<q-C,u=1<<w,A=u;do u-=l,Z[p+(h>>C)+u]=o<<24|B<<16|R|0;while(u!==0);l=1<<q-1;while(h&l)l>>=1;if(l!==0)h&=l-1,h+=l;else h=0;if(N++,--Y0[q]===0){if(q===H)break;q=G[X+Q[N]]}if(q>I&&(h&c)!==n){if(C===0)C=I;p+=A,w=q-C,D=1<<w;while(w+C<H){if(D-=Y0[w+C],D<=0)break;w++,D<<=1}if(x+=1<<w,W===DA&&x>RC||W===EC&&x>LC)return 1;n=h&c,Z[n]=I<<24|w<<16|p-V|0}}if(h!==0)Z[p+h]=q-C<<24|4194304|0;return J.bits=I,0},OZ=tv,ev=0,PD=1,RD=2,{Z_FINISH:$C,Z_BLOCK:Wg,Z_TREES:mJ,Z_OK:KW,Z_STREAM_END:Gg,Z_NEED_DICT:Xg,Z_STREAM_ERROR:z5,Z_DATA_ERROR:LD,Z_MEM_ERROR:BD,Z_BUF_ERROR:Yg,Z_DEFLATED:FC}=CW,rJ=16180,SC=16181,xC=16182,kC=16183,_C=16184,yC=16185,vC=16186,gC=16187,uC=16188,hC=16189,oJ=16190,r7=16191,MA=16192,bC=16193,TA=16194,mC=16195,fC=16196,cC=16197,pC=16198,fJ=16199,cJ=16200,lC=16201,dC=16202,oC=16203,nC=16204,iC=16205,PA=16206,rC=16207,aC=16208,z8=16209,ED=16210,$D=16211,Zg=852,Vg=592,Qg=15,Jg=Qg,sC=(W)=>{return(W>>>24&255)+(W>>>8&65280)+((W&65280)<<8)+((W&255)<<24)};function Ug(){this.strm=null,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 Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var DW=(W)=>{if(!W)return 1;let G=W.state;if(!G||G.strm!==W||G.mode<rJ||G.mode>$D)return 1;return 0},FD=(W)=>{if(DW(W))return z5;let G=W.state;if(W.total_in=W.total_out=G.total=0,W.msg="",G.wrap)W.adler=G.wrap&1;return G.mode=rJ,G.last=0,G.havedict=0,G.flags=-1,G.dmax=32768,G.head=null,G.hold=0,G.bits=0,G.lencode=G.lendyn=new Int32Array(Zg),G.distcode=G.distdyn=new Int32Array(Vg),G.sane=1,G.back=-1,KW},SD=(W)=>{if(DW(W))return z5;let G=W.state;return G.wsize=0,G.whave=0,G.wnext=0,FD(W)},xD=(W,G)=>{let X;if(DW(W))return z5;let Y=W.state;if(G<0)X=0,G=-G;else if(X=(G>>4)+5,G<48)G&=15;if(G&&(G<8||G>15))return z5;if(Y.window!==null&&Y.wbits!==G)Y.window=null;return Y.wrap=X,Y.wbits=G,SD(W)},kD=(W,G)=>{if(!W)return z5;let X=new Ug;W.state=X,X.strm=W,X.window=null,X.mode=rJ;let Y=xD(W,G);if(Y!==KW)W.state=null;return Y},qg=(W)=>{return kD(W,Jg)},tC=!0,RA,LA,Ng=(W)=>{if(tC){RA=new Int32Array(512),LA=new Int32Array(32);let G=0;while(G<144)W.lens[G++]=8;while(G<256)W.lens[G++]=9;while(G<280)W.lens[G++]=7;while(G<288)W.lens[G++]=8;OZ(PD,W.lens,0,288,RA,0,W.work,{bits:9}),G=0;while(G<32)W.lens[G++]=5;OZ(RD,W.lens,0,32,LA,0,W.work,{bits:5}),tC=!1}W.lencode=RA,W.lenbits=9,W.distcode=LA,W.distbits=5},_D=(W,G,X,Y)=>{let Z,V=W.state;if(V.window===null)V.wsize=1<<V.wbits,V.wnext=0,V.whave=0,V.window=new Uint8Array(V.wsize);if(Y>=V.wsize)V.window.set(G.subarray(X-V.wsize,X),0),V.wnext=0,V.whave=V.wsize;else{if(Z=V.wsize-V.wnext,Z>Y)Z=Y;if(V.window.set(G.subarray(X-Y,X-Y+Z),V.wnext),Y-=Z,Y)V.window.set(G.subarray(X-Y,X),0),V.wnext=Y,V.whave=V.wsize;else{if(V.wnext+=Z,V.wnext===V.wsize)V.wnext=0;if(V.whave<V.wsize)V.whave+=Z}}return 0},Hg=(W,G)=>{let X,Y,Z,V,Q,J,U,q,N,A,H,I,w,C,D=0,x,h,l,u,n,c,p,W0,m=new Uint8Array(4),Y0,U0,y=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(DW(W)||!W.output||!W.input&&W.avail_in!==0)return z5;if(X=W.state,X.mode===r7)X.mode=MA;Q=W.next_out,Z=W.output,U=W.avail_out,V=W.next_in,Y=W.input,J=W.avail_in,q=X.hold,N=X.bits,A=J,H=U,W0=KW;W:for(;;)switch(X.mode){case rJ:if(X.wrap===0){X.mode=MA;break}while(N<16){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(X.wrap&2&&q===35615){if(X.wbits===0)X.wbits=15;X.check=0,m[0]=q&255,m[1]=q>>>8&255,X.check=o8(X.check,m,2,0),q=0,N=0,X.mode=SC;break}if(X.head)X.head.done=!1;if(!(X.wrap&1)||(((q&255)<<8)+(q>>8))%31){W.msg="incorrect header check",X.mode=z8;break}if((q&15)!==FC){W.msg="unknown compression method",X.mode=z8;break}if(q>>>=4,N-=4,p=(q&15)+8,X.wbits===0)X.wbits=p;if(p>15||p>X.wbits){W.msg="invalid window size",X.mode=z8;break}X.dmax=1<<X.wbits,X.flags=0,W.adler=X.check=1,X.mode=q&512?hC:r7,q=0,N=0;break;case SC:while(N<16){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(X.flags=q,(X.flags&255)!==FC){W.msg="unknown compression method",X.mode=z8;break}if(X.flags&57344){W.msg="unknown header flags set",X.mode=z8;break}if(X.head)X.head.text=q>>8&1;if(X.flags&512&&X.wrap&4)m[0]=q&255,m[1]=q>>>8&255,X.check=o8(X.check,m,2,0);q=0,N=0,X.mode=xC;case xC:while(N<32){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(X.head)X.head.time=q;if(X.flags&512&&X.wrap&4)m[0]=q&255,m[1]=q>>>8&255,m[2]=q>>>16&255,m[3]=q>>>24&255,X.check=o8(X.check,m,4,0);q=0,N=0,X.mode=kC;case kC:while(N<16){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(X.head)X.head.xflags=q&255,X.head.os=q>>8;if(X.flags&512&&X.wrap&4)m[0]=q&255,m[1]=q>>>8&255,X.check=o8(X.check,m,2,0);q=0,N=0,X.mode=_C;case _C:if(X.flags&1024){while(N<16){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(X.length=q,X.head)X.head.extra_len=q;if(X.flags&512&&X.wrap&4)m[0]=q&255,m[1]=q>>>8&255,X.check=o8(X.check,m,2,0);q=0,N=0}else if(X.head)X.head.extra=null;X.mode=yC;case yC:if(X.flags&1024){if(I=X.length,I>J)I=J;if(I){if(X.head){if(p=X.head.extra_len-X.length,!X.head.extra)X.head.extra=new Uint8Array(X.head.extra_len);X.head.extra.set(Y.subarray(V,V+I),p)}if(X.flags&512&&X.wrap&4)X.check=o8(X.check,Y,I,V);J-=I,V+=I,X.length-=I}if(X.length)break W}X.length=0,X.mode=vC;case vC:if(X.flags&2048){if(J===0)break W;I=0;do if(p=Y[V+I++],X.head&&p&&X.length<65536)X.head.name+=String.fromCharCode(p);while(p&&I<J);if(X.flags&512&&X.wrap&4)X.check=o8(X.check,Y,I,V);if(J-=I,V+=I,p)break W}else if(X.head)X.head.name=null;X.length=0,X.mode=gC;case gC:if(X.flags&4096){if(J===0)break W;I=0;do if(p=Y[V+I++],X.head&&p&&X.length<65536)X.head.comment+=String.fromCharCode(p);while(p&&I<J);if(X.flags&512&&X.wrap&4)X.check=o8(X.check,Y,I,V);if(J-=I,V+=I,p)break W}else if(X.head)X.head.comment=null;X.mode=uC;case uC:if(X.flags&512){while(N<16){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(X.wrap&4&&q!==(X.check&65535)){W.msg="header crc mismatch",X.mode=z8;break}q=0,N=0}if(X.head)X.head.hcrc=X.flags>>9&1,X.head.done=!0;W.adler=X.check=0,X.mode=r7;break;case hC:while(N<32){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}W.adler=X.check=sC(q),q=0,N=0,X.mode=oJ;case oJ:if(X.havedict===0)return W.next_out=Q,W.avail_out=U,W.next_in=V,W.avail_in=J,X.hold=q,X.bits=N,Xg;W.adler=X.check=1,X.mode=r7;case r7:if(G===Wg||G===mJ)break W;case MA:if(X.last){q>>>=N&7,N-=N&7,X.mode=PA;break}while(N<3){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}switch(X.last=q&1,q>>>=1,N-=1,q&3){case 0:X.mode=bC;break;case 1:if(Ng(X),X.mode=fJ,G===mJ){q>>>=2,N-=2;break W}break;case 2:X.mode=fC;break;case 3:W.msg="invalid block type",X.mode=z8}q>>>=2,N-=2;break;case bC:q>>>=N&7,N-=N&7;while(N<32){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if((q&65535)!==(q>>>16^65535)){W.msg="invalid stored block lengths",X.mode=z8;break}if(X.length=q&65535,q=0,N=0,X.mode=TA,G===mJ)break W;case TA:X.mode=mC;case mC:if(I=X.length,I){if(I>J)I=J;if(I>U)I=U;if(I===0)break W;Z.set(Y.subarray(V,V+I),Q),J-=I,V+=I,U-=I,Q+=I,X.length-=I;break}X.mode=r7;break;case fC:while(N<14){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(X.nlen=(q&31)+257,q>>>=5,N-=5,X.ndist=(q&31)+1,q>>>=5,N-=5,X.ncode=(q&15)+4,q>>>=4,N-=4,X.nlen>286||X.ndist>30){W.msg="too many length or distance symbols",X.mode=z8;break}X.have=0,X.mode=cC;case cC:while(X.have<X.ncode){while(N<3){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}X.lens[y[X.have++]]=q&7,q>>>=3,N-=3}while(X.have<19)X.lens[y[X.have++]]=0;if(X.lencode=X.lendyn,X.lenbits=7,Y0={bits:X.lenbits},W0=OZ(ev,X.lens,0,19,X.lencode,0,X.work,Y0),X.lenbits=Y0.bits,W0){W.msg="invalid code lengths set",X.mode=z8;break}X.have=0,X.mode=pC;case pC:while(X.have<X.nlen+X.ndist){for(;;){if(D=X.lencode[q&(1<<X.lenbits)-1],x=D>>>24,h=D>>>16&255,l=D&65535,x<=N)break;if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(l<16)q>>>=x,N-=x,X.lens[X.have++]=l;else{if(l===16){U0=x+2;while(N<U0){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(q>>>=x,N-=x,X.have===0){W.msg="invalid bit length repeat",X.mode=z8;break}p=X.lens[X.have-1],I=3+(q&3),q>>>=2,N-=2}else if(l===17){U0=x+3;while(N<U0){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}q>>>=x,N-=x,p=0,I=3+(q&7),q>>>=3,N-=3}else{U0=x+7;while(N<U0){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}q>>>=x,N-=x,p=0,I=11+(q&127),q>>>=7,N-=7}if(X.have+I>X.nlen+X.ndist){W.msg="invalid bit length repeat",X.mode=z8;break}while(I--)X.lens[X.have++]=p}}if(X.mode===z8)break;if(X.lens[256]===0){W.msg="invalid code -- missing end-of-block",X.mode=z8;break}if(X.lenbits=9,Y0={bits:X.lenbits},W0=OZ(PD,X.lens,0,X.nlen,X.lencode,0,X.work,Y0),X.lenbits=Y0.bits,W0){W.msg="invalid literal/lengths set",X.mode=z8;break}if(X.distbits=6,X.distcode=X.distdyn,Y0={bits:X.distbits},W0=OZ(RD,X.lens,X.nlen,X.ndist,X.distcode,0,X.work,Y0),X.distbits=Y0.bits,W0){W.msg="invalid distances set",X.mode=z8;break}if(X.mode=fJ,G===mJ)break W;case fJ:X.mode=cJ;case cJ:if(J>=6&&U>=258){if(W.next_out=Q,W.avail_out=U,W.next_in=V,W.avail_in=J,X.hold=q,X.bits=N,nv(W,H),Q=W.next_out,Z=W.output,U=W.avail_out,V=W.next_in,Y=W.input,J=W.avail_in,q=X.hold,N=X.bits,X.mode===r7)X.back=-1;break}X.back=0;for(;;){if(D=X.lencode[q&(1<<X.lenbits)-1],x=D>>>24,h=D>>>16&255,l=D&65535,x<=N)break;if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(h&&(h&240)===0){u=x,n=h,c=l;for(;;){if(D=X.lencode[c+((q&(1<<u+n)-1)>>u)],x=D>>>24,h=D>>>16&255,l=D&65535,u+x<=N)break;if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}q>>>=u,N-=u,X.back+=u}if(q>>>=x,N-=x,X.back+=x,X.length=l,h===0){X.mode=iC;break}if(h&32){X.back=-1,X.mode=r7;break}if(h&64){W.msg="invalid literal/length code",X.mode=z8;break}X.extra=h&15,X.mode=lC;case lC:if(X.extra){U0=X.extra;while(N<U0){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}X.length+=q&(1<<X.extra)-1,q>>>=X.extra,N-=X.extra,X.back+=X.extra}X.was=X.length,X.mode=dC;case dC:for(;;){if(D=X.distcode[q&(1<<X.distbits)-1],x=D>>>24,h=D>>>16&255,l=D&65535,x<=N)break;if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if((h&240)===0){u=x,n=h,c=l;for(;;){if(D=X.distcode[c+((q&(1<<u+n)-1)>>u)],x=D>>>24,h=D>>>16&255,l=D&65535,u+x<=N)break;if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}q>>>=u,N-=u,X.back+=u}if(q>>>=x,N-=x,X.back+=x,h&64){W.msg="invalid distance code",X.mode=z8;break}X.offset=l,X.extra=h&15,X.mode=oC;case oC:if(X.extra){U0=X.extra;while(N<U0){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}X.offset+=q&(1<<X.extra)-1,q>>>=X.extra,N-=X.extra,X.back+=X.extra}if(X.offset>X.dmax){W.msg="invalid distance too far back",X.mode=z8;break}X.mode=nC;case nC:if(U===0)break W;if(I=H-U,X.offset>I){if(I=X.offset-I,I>X.whave){if(X.sane){W.msg="invalid distance too far back",X.mode=z8;break}}if(I>X.wnext)I-=X.wnext,w=X.wsize-I;else w=X.wnext-I;if(I>X.length)I=X.length;C=X.window}else C=Z,w=Q-X.offset,I=X.length;if(I>U)I=U;U-=I,X.length-=I;do Z[Q++]=C[w++];while(--I);if(X.length===0)X.mode=cJ;break;case iC:if(U===0)break W;Z[Q++]=X.length,U--,X.mode=cJ;break;case PA:if(X.wrap){while(N<32){if(J===0)break W;J--,q|=Y[V++]<<N,N+=8}if(H-=U,W.total_out+=H,X.total+=H,X.wrap&4&&H)W.adler=X.check=X.flags?o8(X.check,Z,H,Q-H):TZ(X.check,Z,H,Q-H);if(H=U,X.wrap&4&&(X.flags?q:sC(q))!==X.check){W.msg="incorrect data check",X.mode=z8;break}q=0,N=0}X.mode=rC;case rC:if(X.wrap&&X.flags){while(N<32){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(X.wrap&4&&q!==(X.total&4294967295)){W.msg="incorrect length check",X.mode=z8;break}q=0,N=0}X.mode=aC;case aC:W0=Gg;break W;case z8:W0=LD;break W;case ED:return BD;case $D:default:return z5}if(W.next_out=Q,W.avail_out=U,W.next_in=V,W.avail_in=J,X.hold=q,X.bits=N,X.wsize||H!==W.avail_out&&X.mode<z8&&(X.mode<PA||G!==$C)){if(_D(W,W.output,W.next_out,H-W.avail_out));}if(A-=W.avail_in,H-=W.avail_out,W.total_in+=A,W.total_out+=H,X.total+=H,X.wrap&4&&H)W.adler=X.check=X.flags?o8(X.check,Z,H,W.next_out-H):TZ(X.check,Z,H,W.next_out-H);if(W.data_type=X.bits+(X.last?64:0)+(X.mode===r7?128:0)+(X.mode===fJ||X.mode===TA?256:0),(A===0&&H===0||G===$C)&&W0===KW)W0=Yg;return W0},Ag=(W)=>{if(DW(W))return z5;let G=W.state;if(G.window)G.window=null;return W.state=null,KW},zg=(W,G)=>{if(DW(W))return z5;let X=W.state;if((X.wrap&2)===0)return z5;return X.head=G,G.done=!1,KW},Ig=(W,G)=>{let X=G.length,Y,Z,V;if(DW(W))return z5;if(Y=W.state,Y.wrap!==0&&Y.mode!==oJ)return z5;if(Y.mode===oJ){if(Z=1,Z=TZ(Z,G,X,0),Z!==Y.check)return LD}if(V=_D(W,G,X,X),V)return Y.mode=ED,BD;return Y.havedict=1,KW},wg=SD,jg=xD,Og=FD,Kg=qg,Cg=kD,Dg=Hg,Mg=Ag,Tg=zg,Pg=Ig,Rg="pako inflate (from Nodeca project)",s7={inflateReset:wg,inflateReset2:jg,inflateResetKeep:Og,inflateInit:Kg,inflateInit2:Cg,inflate:Dg,inflateEnd:Mg,inflateGetHeader:Tg,inflateSetDictionary:Pg,inflateInfo:Rg};function Lg(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var Bg=Lg,yD=Object.prototype.toString,{Z_NO_FLUSH:Eg,Z_FINISH:$g,Z_OK:LZ,Z_STREAM_END:BA,Z_NEED_DICT:EA,Z_STREAM_ERROR:Fg,Z_DATA_ERROR:eC,Z_MEM_ERROR:Sg}=CW;function FZ(W){this.options=iJ.assign({chunkSize:65536,windowBits:15,to:""},W||{});let G=this.options;if(G.raw&&G.windowBits>=0&&G.windowBits<16){if(G.windowBits=-G.windowBits,G.windowBits===0)G.windowBits=-15}if(G.windowBits>=0&&G.windowBits<16&&!(W&&W.windowBits))G.windowBits+=32;if(G.windowBits>15&&G.windowBits<48){if((G.windowBits&15)===0)G.windowBits|=15}this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new MD,this.strm.avail_out=0;let X=s7.inflateInit2(this.strm,G.windowBits);if(X!==LZ)throw Error(jW[X]);if(this.header=new Bg,s7.inflateGetHeader(this.strm,this.header),G.dictionary){if(typeof G.dictionary==="string")G.dictionary=RZ.string2buf(G.dictionary);else if(yD.call(G.dictionary)==="[object ArrayBuffer]")G.dictionary=new Uint8Array(G.dictionary);if(G.raw){if(X=s7.inflateSetDictionary(this.strm,G.dictionary),X!==LZ)throw Error(jW[X])}}}FZ.prototype.push=function(W,G){let X=this.strm,Y=this.options.chunkSize,Z=this.options.dictionary,V,Q,J;if(this.ended)return!1;if(G===~~G)Q=G;else Q=G===!0?$g:Eg;if(yD.call(W)==="[object ArrayBuffer]")X.input=new Uint8Array(W);else X.input=W;X.next_in=0,X.avail_in=X.input.length;for(;;){if(X.avail_out===0)X.output=new Uint8Array(Y),X.next_out=0,X.avail_out=Y;if(V=s7.inflate(X,Q),V===EA&&Z){if(V=s7.inflateSetDictionary(X,Z),V===LZ)V=s7.inflate(X,Q);else if(V===eC)V=EA}while(X.avail_in>0&&V===BA&&X.state.wrap>0&&W[X.next_in]!==0)s7.inflateReset(X),V=s7.inflate(X,Q);switch(V){case Fg:case eC:case EA:case Sg:return this.onEnd(V),this.ended=!0,!1}if(J=X.avail_out,X.next_out){if(X.avail_out===0||V===BA)if(this.options.to==="string"){let U=RZ.utf8border(X.output,X.next_out),q=X.next_out-U,N=RZ.buf2string(X.output,U);if(X.next_out=q,X.avail_out=Y-q,q)X.output.set(X.output.subarray(U,U+q),0);this.onData(N)}else this.onData(X.output.length===X.next_out?X.output:X.output.subarray(0,X.next_out))}if(V===LZ&&J===0)continue;if(V===BA)return V=s7.inflateEnd(this.strm),this.onEnd(V),this.ended=!0,!0;if(X.avail_in===0)break}return!0};FZ.prototype.onData=function(W){this.chunks.push(W)};FZ.prototype.onEnd=function(W){if(W===LZ)if(this.options.to==="string")this.result=this.chunks.join("");else this.result=iJ.flattenChunks(this.chunks);this.chunks=[],this.err=W,this.msg=this.strm.msg};function pA(W,G){let X=new FZ(G);if(X.push(W),X.err)throw X.msg||jW[X.err];return X.result}function xg(W,G){return G=G||{},G.raw=!0,pA(W,G)}var kg=FZ,_g=pA,yg=xg,vg=pA,gg=CW,ug={Inflate:kg,inflate:_g,inflateRaw:yg,ungzip:vg,constants:gg},{Deflate:hg,deflate:bg,deflateRaw:mg,gzip:fg}=dv,{Inflate:cg,inflate:pg,inflateRaw:lg,ungzip:dg}=ug,og=hg,ng=bg,ig=mg,rg=fg,ag=cg,sg=pg,tg=lg,eg=dg,Wu=CW,q6={Deflate:og,deflate:ng,deflateRaw:ig,gzip:rg,Inflate:ag,inflate:sg,inflateRaw:tg,ungzip:eg,constants:Wu};function vD(){let W=Date.now(),G=0;return{now(){return W=Math.max(W,Date.now()),G++,{physical:W,logical:G}},update(X){if(!X||typeof X.physical!=="number"||typeof X.logical!=="number")return;W=Math.max(W,X.physical),G=Math.max(G,X.logical)+1},compare(X,Y){if(!X&&!Y)return 0;if(!X)return-1;if(!Y)return 1;if(X.physical!==Y.physical)return X.physical>Y.physical?1:-1;if(X.logical!==Y.logical)return X.logical>Y.logical?1:-1;return 0}}}function gD(W,G,X){let Y=G.timestamp;if(Y?.physical>Date.now()+7200000)Y={physical:Date.now()+7200000,logical:Y.logical};if(G?.value?.priority===!0&&typeof G.id==="string"&&G.id.startsWith("user:")&&"role"in G.value){let{priority:Z,...V}=G.value;return{resolved:!0,value:V,timestamp:Y}}if(G?.value?.priority!==void 0){let{priority:Z,...V}=G.value;G={...G,value:V}}if(!W?.timestamp)return{resolved:!0,value:G.value,timestamp:Y};if(X.compare(Y,W.timestamp)<=0)return{resolved:!1};return{resolved:!0,value:G.value,timestamp:Y}}var SZ={$eq:(W,G)=>W===G,$ne:(W,G)=>W!==G,$gt:(W,G)=>W>G,$gte:(W,G)=>W>=G,$lt:(W,G)=>W<G,$lte:(W,G)=>W<=G,$in:(W,G)=>Array.isArray(G)&&(Array.isArray(W)?W.some((X)=>G.includes(X)):G.includes(W)),$between:(W,[G,X])=>W>=G&&W<=X,$exists:(W,G)=>G?W!==void 0:W===void 0,$startsWith:(W,G)=>typeof W==="string"&&W.startsWith(G),$endsWith:(W,G)=>typeof W==="string"&&W.endsWith(G),$contains:(W,G)=>typeof W==="string"&&W.includes(G),$text:{global:(W,G)=>{let X=(Z)=>String(Z).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),Y=X(G);return Object.values(W).some((Z)=>typeof Z==="object"?null.fieldSearch(Z,Y):X(Z).includes(Y))},field:(W,G)=>{let X=(Z)=>String(Z).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),Y=X(G);return Array.isArray(W)?W.some((Z)=>X(Z).includes(Y)):X(W).includes(Y)}},$like:(W,G)=>typeof W==="string"&&typeof G==="string"&&new RegExp(`^${G.replace(/%/g,".*").replace(/_/g,".")}$`,"i").test(W),$regex:(W,G)=>typeof W==="string"&&new RegExp(G.$regex||G,"i").test(W),$and:(W,G,X)=>G.every((Y)=>X.createFilter(Y,X.allNodes)(W)),$or:(W,G,X)=>G.some((Y)=>X.createFilter(Y,X.allNodes)(W)),$not:(W,G,X)=>!X.createFilter(G,X.allNodes)(W),$edge:(W,G,X)=>{if(!W.edges?.length||typeof G!=="object"||G===null)return!1;let Y=X.createFilter(G,X.allNodes),Z=[...W.edges],V=new Set(Z).add(W.id),Q=[];while(Z.length){let J=Z.shift(),U=X.allNodes[J];if(!U)continue;if(Y(U))Q.push(U);U.edges?.forEach((q)=>!V.has(q)&&V.add(q)&&Z.push(q))}if(Q.length)W._edgeResult=Q;return Q.length>0}},aJ=(W,G)=>G.split(".").reduce((X,Y)=>X&&typeof X==="object"&&(Y in X)?X[Y]:void 0,W),sJ=(W,G)=>{if(Object.keys(W).length===0)return()=>!0;return(X)=>Object.entries(W).every(([Y,Z])=>{if(Y.startsWith("$"))return SZ[Y](X,Z,{createFilter:sJ,allNodes:G});let V=aJ(X.value,Y);if(V===void 0)V=aJ(X,Y);if(typeof Z!=="object"||Z===null)return SZ.$eq(V,Z);return Object.entries(Z).every(([Q,J])=>{if(Q==="$text")return SZ.$text.field(V,J);if(Q==="$between"&&J.every((U)=>U instanceof Date))return SZ.$between(new Date(V),J);return SZ[Q]?.(V,J,{createFilter:sJ,allNodes:G})??!1})})},lA=(W,G)=>{let{$edge:X,...Y}=G.query||{},Z=sJ(Y,W),V=Object.values(W).filter(Z),J=[...X?(()=>{let U=sJ({$edge:X},W);V.forEach((N)=>U(N));let q=new Map;return V.forEach((N)=>{if(N._edgeResult)N._edgeResult.forEach((A)=>q.set(A.id,A)),delete N._edgeResult}),Array.from(q.values())})():V];if(G.field){let U=G.order==="asc"?1:-1;J.sort((q,N)=>{let A=aJ(q.value,G.field),H=aJ(N.value,G.field);if(typeof A==="string"&&typeof H==="string")return A.localeCompare(H)*U;return((A??0)-(H??0))*U})}if(G.$after){let U=J.findIndex((q)=>q.id===G.$after);J=U>=0?J.slice(U+1):[]}if(G.$before){let U=J.findIndex((q)=>q.id===G.$before);J=U>=0?J.slice(0,U):[]}if(G.$limit)J=J.slice(0,G.$limit);return J};var dA=(()=>{let W=()=>{};return new Proxy(console,{get:(G,X)=>globalThis.__gdbDebug?G[X].bind(G):W})})(),WX=typeof globalThis==="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function MU(W){return W instanceof Uint8Array||ArrayBuffer.isView(W)&&W.constructor.name==="Uint8Array"}function Xz(W){if(!Number.isSafeInteger(W)||W<0)throw Error("positive integer expected, got "+W)}function BW(W,...G){if(!MU(W))throw Error("Uint8Array expected");if(G.length>0&&!G.includes(W.length))throw Error("Uint8Array expected of length "+G+", got length="+W.length)}function XM(W){if(typeof W!=="function"||typeof W.create!=="function")throw Error("Hash should be wrapped by utils.createHasher");Xz(W.outputLen),Xz(W.blockLen)}function NU(W,G=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(G&&W.finished)throw Error("Hash#digest() has already been called")}function Gu(W,G){BW(W);let X=G.outputLen;if(W.length<X)throw Error("digestInto() expects output buffer of length at least "+X)}function HU(...W){for(let G=0;G<W.length;G++)W[G].fill(0)}function oA(W){return new DataView(W.buffer,W.byteOffset,W.byteLength)}function H7(W,G){return W<<32-G|W>>>G}var YM=(()=>typeof Uint8Array.from([]).toHex==="function"&&typeof Uint8Array.fromHex==="function")(),Xu=Array.from({length:256},(W,G)=>G.toString(16).padStart(2,"0"));function YX(W){if(BW(W),YM)return W.toHex();let G="";for(let X=0;X<W.length;X++)G+=Xu[W[X]];return G}var t7={_0:48,_9:57,A:65,F:70,a:97,f:102};function uD(W){if(W>=t7._0&&W<=t7._9)return W-t7._0;if(W>=t7.A&&W<=t7.F)return W-(t7.A-10);if(W>=t7.a&&W<=t7.f)return W-(t7.a-10);return}function AU(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);if(YM)return Uint8Array.fromHex(W);let G=W.length,X=G/2;if(G%2)throw Error("hex string expected, got unpadded hex of length "+G);let Y=new Uint8Array(X);for(let Z=0,V=0;Z<X;Z++,V+=2){let Q=uD(W.charCodeAt(V)),J=uD(W.charCodeAt(V+1));if(Q===void 0||J===void 0){let U=W[V]+W[V+1];throw Error('hex string expected, got non-hex character "'+U+'" at index '+V)}Y[Z]=Q*16+J}return Y}function ZM(W){if(typeof W!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(W))}function Hz(W){if(typeof W==="string")W=ZM(W);return BW(W),W}function A7(...W){let G=0;for(let Y=0;Y<W.length;Y++){let Z=W[Y];BW(Z),G+=Z.length}let X=new Uint8Array(G);for(let Y=0,Z=0;Y<W.length;Y++){let V=W[Y];X.set(V,Z),Z+=V.length}return X}class Az{}function Yu(W){let G=(Y)=>W().update(Hz(Y)).digest(),X=W();return G.outputLen=X.outputLen,G.blockLen=X.blockLen,G.create=()=>W(),G}function TU(W=32){if(WX&&typeof WX.getRandomValues==="function")return WX.getRandomValues(new Uint8Array(W));if(WX&&typeof WX.randomBytes==="function")return Uint8Array.from(WX.randomBytes(W));throw Error("crypto.getRandomValues must be defined")}function Zu(W,G,X,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(G,X,Y);let Z=BigInt(32),V=BigInt(4294967295),Q=Number(X>>Z&V),J=Number(X&V),U=Y?4:0,q=Y?0:4;W.setUint32(G+U,Q,Y),W.setUint32(G+q,J,Y)}function Vu(W,G,X){return W&G^~W&X}function Qu(W,G,X){return W&G^W&X^G&X}class VM extends Az{constructor(W,G,X,Y){super();this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=W,this.outputLen=G,this.padOffset=X,this.isLE=Y,this.buffer=new Uint8Array(W),this.view=oA(this.buffer)}update(W){NU(this),W=Hz(W),BW(W);let{view:G,buffer:X,blockLen:Y}=this,Z=W.length;for(let V=0;V<Z;){let Q=Math.min(Y-this.pos,Z-V);if(Q===Y){let J=oA(W);for(;Y<=Z-V;V+=Y)this.process(J,V);continue}if(X.set(W.subarray(V,V+Q),this.pos),this.pos+=Q,V+=Q,this.pos===Y)this.process(G,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){NU(this),Gu(W,this),this.finished=!0;let{buffer:G,view:X,blockLen:Y,isLE:Z}=this,{pos:V}=this;if(G[V++]=128,HU(this.buffer.subarray(V)),this.padOffset>Y-V)this.process(X,0),V=0;for(let N=V;N<Y;N++)G[N]=0;Zu(X,Y-8,BigInt(this.length*8),Z),this.process(X,0);let Q=oA(W),J=this.outputLen;if(J%4)throw Error("_sha2: outputLen should be aligned to 32bit");let U=J/4,q=this.get();if(U>q.length)throw Error("_sha2: outputLen bigger than state");for(let N=0;N<U;N++)Q.setUint32(4*N,q[N],Z)}digest(){let{buffer:W,outputLen:G}=this;this.digestInto(W);let X=W.slice(0,G);return this.destroy(),X}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:G,buffer:X,length:Y,finished:Z,destroyed:V,pos:Q}=this;if(W.destroyed=V,W.finished=Z,W.length=Y,W.pos=Q,Y%G)W.buffer.set(X);return W}clone(){return this._cloneInto()}}var N6=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Ju=Uint32Array.from([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]),H6=new Uint32Array(64);class QM extends VM{constructor(W=32){super(64,W,8,!1);this.A=N6[0]|0,this.B=N6[1]|0,this.C=N6[2]|0,this.D=N6[3]|0,this.E=N6[4]|0,this.F=N6[5]|0,this.G=N6[6]|0,this.H=N6[7]|0}get(){let{A:W,B:G,C:X,D:Y,E:Z,F:V,G:Q,H:J}=this;return[W,G,X,Y,Z,V,Q,J]}set(W,G,X,Y,Z,V,Q,J){this.A=W|0,this.B=G|0,this.C=X|0,this.D=Y|0,this.E=Z|0,this.F=V|0,this.G=Q|0,this.H=J|0}process(W,G){for(let N=0;N<16;N++,G+=4)H6[N]=W.getUint32(G,!1);for(let N=16;N<64;N++){let A=H6[N-15],H=H6[N-2],I=H7(A,7)^H7(A,18)^A>>>3,w=H7(H,17)^H7(H,19)^H>>>10;H6[N]=w+H6[N-7]+I+H6[N-16]|0}let{A:X,B:Y,C:Z,D:V,E:Q,F:J,G:U,H:q}=this;for(let N=0;N<64;N++){let A=H7(Q,6)^H7(Q,11)^H7(Q,25),H=q+A+Vu(Q,J,U)+Ju[N]+H6[N]|0,I=(H7(X,2)^H7(X,13)^H7(X,22))+Qu(X,Y,Z)|0;q=U,U=J,J=Q,Q=V+H|0,V=Z,Z=Y,Y=X,X=H+I|0}X=X+this.A|0,Y=Y+this.B|0,Z=Z+this.C|0,V=V+this.D|0,Q=Q+this.E|0,J=J+this.F|0,U=U+this.G|0,q=q+this.H|0,this.set(X,Y,Z,V,Q,J,U,q)}roundClean(){HU(H6)}destroy(){this.set(0,0,0,0,0,0,0,0),HU(this.buffer)}}var Yz=Yu(()=>new QM);class zz extends Az{constructor(W,G){super();this.finished=!1,this.destroyed=!1,XM(W);let X=Hz(G);if(this.iHash=W.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let Y=this.blockLen,Z=new Uint8Array(Y);Z.set(X.length>Y?W.create().update(X).digest():X);for(let V=0;V<Z.length;V++)Z[V]^=54;this.iHash.update(Z),this.oHash=W.create();for(let V=0;V<Z.length;V++)Z[V]^=106;this.oHash.update(Z),HU(Z)}update(W){return NU(this),this.iHash.update(W),this}digestInto(W){NU(this),BW(W,this.outputLen),this.finished=!0,this.iHash.digestInto(W),this.oHash.update(W),this.oHash.digestInto(W),this.destroy()}digest(){let W=new Uint8Array(this.oHash.outputLen);return this.digestInto(W),W}_cloneInto(W){W||(W=Object.create(Object.getPrototypeOf(this),{}));let{oHash:G,iHash:X,finished:Y,destroyed:Z,blockLen:V,outputLen:Q}=this;return W=W,W.finished=Y,W.destroyed=Z,W.blockLen=V,W.outputLen=Q,W.oHash=G._cloneInto(W.oHash),W.iHash=X._cloneInto(W.iHash),W}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var JM=(W,G,X)=>new zz(W,G).update(X).digest();JM.create=(W,G)=>new zz(W,G);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Iz=BigInt(0),Zz=BigInt(1);function zU(W,G=""){if(typeof W!=="boolean"){let X=G&&`"${G}"`;throw Error(X+"expected boolean, got type="+typeof W)}return W}function MW(W,G,X=""){let Y=MU(W),Z=W?.length,V=G!==void 0;if(!Y||V&&Z!==G){let Q=X&&`"${X}" `,J=V?` of length ${G}`:"",U=Y?`length=${Z}`:`type=${typeof W}`;throw Error(Q+"expected Uint8Array"+J+", got "+U)}return W}function tJ(W){let G=W.toString(16);return G.length&1?"0"+G:G}function UM(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return W===""?Iz:BigInt("0x"+W)}function UX(W){return UM(YX(W))}function qM(W){return BW(W),UM(YX(Uint8Array.from(W).reverse()))}function PU(W,G){return AU(W.toString(16).padStart(G*2,"0"))}function NM(W,G){return PU(W,G).reverse()}function h8(W,G,X){let Y;if(typeof G==="string")try{Y=AU(G)}catch(V){throw Error(W+" must be hex string or Uint8Array, cause: "+V)}else if(MU(G))Y=Uint8Array.from(G);else throw Error(W+" must be hex string or Uint8Array");let Z=Y.length;if(typeof X==="number"&&Z!==X)throw Error(W+" of length "+X+" expected, got "+Z);return Y}var nA=(W)=>typeof W==="bigint"&&Iz<=W;function Vz(W,G,X){return nA(W)&&nA(G)&&nA(X)&&G<=W&&W<X}function Uu(W,G,X,Y){if(!Vz(G,X,Y))throw Error("expected valid "+W+": "+X+" <= n < "+Y+", got "+G)}function HM(W){let G;for(G=0;W>Iz;W>>=Zz,G+=1);return G}var uZ=(W)=>(Zz<<BigInt(W))-Zz;function qu(W,G,X){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof G!=="number"||G<2)throw Error("qByteLen must be a number");if(typeof X!=="function")throw Error("hmacFn must be a function");let Y=(H)=>new Uint8Array(H),Z=(H)=>Uint8Array.of(H),V=Y(W),Q=Y(W),J=0,U=()=>{V.fill(1),Q.fill(0),J=0},q=(...H)=>X(Q,V,...H),N=(H=Y(0))=>{if(Q=q(Z(0),H),V=q(),H.length===0)return;Q=q(Z(1),H),V=q()},A=()=>{if(J++>=1000)throw Error("drbg: tried 1000 values");let H=0,I=[];while(H<G){V=q();let w=V.slice();I.push(w),H+=V.length}return A7(...I)};return(H,I)=>{U(),N(H);let w=void 0;while(!(w=I(A())))N();return U(),w}}function wz(W,G,X={}){if(!W||typeof W!=="object")throw Error("expected valid options object");function Y(Z,V,Q){let J=W[Z];if(Q&&J===void 0)return;let U=typeof J;if(U!==V||J===null)throw Error(`param "${Z}" is invalid: expected ${V}, got ${U}`)}Object.entries(G).forEach(([Z,V])=>Y(Z,V,!1)),Object.entries(X).forEach(([Z,V])=>Y(Z,V,!0))}function hD(W){let G=new WeakMap;return(X,...Y)=>{let Z=G.get(X);if(Z!==void 0)return Z;let V=W(X,...Y);return G.set(X,V),V}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var S9=BigInt(0),H9=BigInt(1),TW=BigInt(2),AM=BigInt(3),zM=BigInt(4),IM=BigInt(5),Nu=BigInt(7),wM=BigInt(8),Hu=BigInt(9),jM=BigInt(16);function w5(W,G){let X=W%G;return X>=S9?X:G+X}function I5(W,G,X){let Y=W;while(G-- >S9)Y*=Y,Y%=X;return Y}function bD(W,G){if(W===S9)throw Error("invert: expected non-zero number");if(G<=S9)throw Error("invert: expected positive modulus, got "+G);let X=w5(W,G),Y=G,Z=S9,V=H9,Q=H9,J=S9;while(X!==S9){let U=Y/X,q=Y%X,N=Z-Q*U,A=V-J*U;Y=X,X=q,Z=Q,V=J,Q=N,J=A}if(Y!==H9)throw Error("invert: does not exist");return w5(Z,G)}function jz(W,G,X){if(!W.eql(W.sqr(G),X))throw Error("Cannot find square root")}function OM(W,G){let X=(W.ORDER+H9)/zM,Y=W.pow(G,X);return jz(W,Y,G),Y}function Au(W,G){let X=(W.ORDER-IM)/wM,Y=W.mul(G,TW),Z=W.pow(Y,X),V=W.mul(G,Z),Q=W.mul(W.mul(V,TW),Z),J=W.mul(V,W.sub(Q,W.ONE));return jz(W,J,G),J}function zu(W){let G=hZ(W),X=KM(W),Y=X(G,G.neg(G.ONE)),Z=X(G,Y),V=X(G,G.neg(Y)),Q=(W+Nu)/jM;return(J,U)=>{let q=J.pow(U,Q),N=J.mul(q,Y),A=J.mul(q,Z),H=J.mul(q,V),I=J.eql(J.sqr(N),U),w=J.eql(J.sqr(A),U);q=J.cmov(q,N,I),N=J.cmov(H,A,w);let C=J.eql(J.sqr(N),U),D=J.cmov(q,N,C);return jz(J,D,U),D}}function KM(W){if(W<AM)throw Error("sqrt is not defined for small field");let G=W-H9,X=0;while(G%TW===S9)G/=TW,X++;let Y=TW,Z=hZ(W);while(mD(Z,Y)===1)if(Y++>1000)throw Error("Cannot find square root: probably non-prime P");if(X===1)return OM;let V=Z.pow(Y,G),Q=(G+H9)/TW;return function(J,U){if(J.is0(U))return U;if(mD(J,U)!==1)throw Error("Cannot find square root");let q=X,N=J.mul(J.ONE,V),A=J.pow(U,G),H=J.pow(U,Q);while(!J.eql(A,J.ONE)){if(J.is0(A))return J.ZERO;let I=1,w=J.sqr(A);while(!J.eql(w,J.ONE))if(I++,w=J.sqr(w),I===q)throw Error("Cannot find square root");let C=H9<<BigInt(q-I-1),D=J.pow(N,C);q=I,N=J.sqr(D),A=J.mul(A,N),H=J.mul(H,D)}return H}}function Iu(W){if(W%zM===AM)return OM;if(W%wM===IM)return Au;if(W%jM===Hu)return zu(W);return KM(W)}var wu=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function ju(W){let G={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},X=wu.reduce((Y,Z)=>{return Y[Z]="function",Y},G);return wz(W,X),W}function Ou(W,G,X){if(X<S9)throw Error("invalid exponent, negatives unsupported");if(X===S9)return W.ONE;if(X===H9)return G;let Y=W.ONE,Z=G;while(X>S9){if(X&H9)Y=W.mul(Y,Z);Z=W.sqr(Z),X>>=H9}return Y}function CM(W,G,X=!1){let Y=Array(G.length).fill(X?W.ZERO:void 0),Z=G.reduce((Q,J,U)=>{if(W.is0(J))return Q;return Y[U]=Q,W.mul(Q,J)},W.ONE),V=W.inv(Z);return G.reduceRight((Q,J,U)=>{if(W.is0(J))return Q;return Y[U]=W.mul(Q,Y[U]),W.mul(Q,J)},V),Y}function mD(W,G){let X=(W.ORDER-H9)/TW,Y=W.pow(G,X),Z=W.eql(Y,W.ONE),V=W.eql(Y,W.ZERO),Q=W.eql(Y,W.neg(W.ONE));if(!Z&&!V&&!Q)throw Error("invalid Legendre symbol result");return Z?1:V?0:-1}function DM(W,G){if(G!==void 0)Xz(G);let X=G!==void 0?G:W.toString(2).length,Y=Math.ceil(X/8);return{nBitLength:X,nByteLength:Y}}function hZ(W,G,X=!1,Y={}){if(W<=S9)throw Error("invalid field: expected ORDER > 0, got "+W);let Z=void 0,V=void 0,Q=!1,J=void 0;if(typeof G==="object"&&G!=null){if(Y.sqrt||X)throw Error("cannot specify opts in two arguments");let H=G;if(H.BITS)Z=H.BITS;if(H.sqrt)V=H.sqrt;if(typeof H.isLE==="boolean")X=H.isLE;if(typeof H.modFromBytes==="boolean")Q=H.modFromBytes;J=H.allowedLengths}else{if(typeof G==="number")Z=G;if(Y.sqrt)V=Y.sqrt}let{nBitLength:U,nByteLength:q}=DM(W,Z);if(q>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let N,A=Object.freeze({ORDER:W,isLE:X,BITS:U,BYTES:q,MASK:uZ(U),ZERO:S9,ONE:H9,allowedLengths:J,create:(H)=>w5(H,W),isValid:(H)=>{if(typeof H!=="bigint")throw Error("invalid field element: expected bigint, got "+typeof H);return S9<=H&&H<W},is0:(H)=>H===S9,isValidNot0:(H)=>!A.is0(H)&&A.isValid(H),isOdd:(H)=>(H&H9)===H9,neg:(H)=>w5(-H,W),eql:(H,I)=>H===I,sqr:(H)=>w5(H*H,W),add:(H,I)=>w5(H+I,W),sub:(H,I)=>w5(H-I,W),mul:(H,I)=>w5(H*I,W),pow:(H,I)=>Ou(A,H,I),div:(H,I)=>w5(H*bD(I,W),W),sqrN:(H)=>H*H,addN:(H,I)=>H+I,subN:(H,I)=>H-I,mulN:(H,I)=>H*I,inv:(H)=>bD(H,W),sqrt:V||((H)=>{if(!N)N=Iu(W);return N(A,H)}),toBytes:(H)=>X?NM(H,q):PU(H,q),fromBytes:(H,I=!0)=>{if(J){if(!J.includes(H.length)||H.length>q)throw Error("Field.fromBytes: expected "+J+" bytes, got "+H.length);let C=new Uint8Array(q);C.set(H,X?0:C.length-H.length),H=C}if(H.length!==q)throw Error("Field.fromBytes: expected "+q+" bytes, got "+H.length);let w=X?qM(H):UX(H);if(Q)w=w5(w,W);if(!I){if(!A.isValid(w))throw Error("invalid field element: outside of range 0..ORDER")}return w},invertBatch:(H)=>CM(A,H),cmov:(H,I,w)=>w?I:H});return Object.freeze(A)}function MM(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let G=W.toString(2).length;return Math.ceil(G/8)}function TM(W){let G=MM(W);return G+Math.ceil(G/2)}function PM(W,G,X=!1){let Y=W.length,Z=MM(G),V=TM(G);if(Y<16||Y<V||Y>1024)throw Error("expected "+V+"-1024 bytes of input, got "+Y);let Q=X?qM(W):UX(W),J=w5(Q,G-H9)+H9;return X?NM(J,Z):PU(J,Z)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var QX=BigInt(0),PW=BigInt(1);function IU(W,G){let X=G.negate();return W?X:G}function iA(W,G){let X=CM(W.Fp,G.map((Y)=>Y.Z));return G.map((Y,Z)=>W.fromAffine(Y.toAffine(X[Z])))}function RM(W,G){if(!Number.isSafeInteger(W)||W<=0||W>G)throw Error("invalid window size, expected [1.."+G+"], got W="+W)}function rA(W,G){RM(W,G);let X=Math.ceil(G/W)+1,Y=2**(W-1),Z=2**W,V=uZ(W),Q=BigInt(W);return{windows:X,windowSize:Y,mask:V,maxNumber:Z,shiftBy:Q}}function fD(W,G,X){let{windowSize:Y,mask:Z,maxNumber:V,shiftBy:Q}=X,J=Number(W&Z),U=W>>Q;if(J>Y)J-=V,U+=PW;let q=G*Y,N=q+Math.abs(J)-1,A=J===0,H=J<0,I=G%2!==0;return{nextN:U,offset:N,isZero:A,isNeg:H,isNegF:I,offsetF:q}}function Ku(W,G){if(!Array.isArray(W))throw Error("array expected");W.forEach((X,Y)=>{if(!(X instanceof G))throw Error("invalid point at index "+Y)})}function Cu(W,G){if(!Array.isArray(W))throw Error("array of scalars expected");W.forEach((X,Y)=>{if(!G.isValid(X))throw Error("invalid scalar at index "+Y)})}var aA=new WeakMap,LM=new WeakMap;function sA(W){return LM.get(W)||1}function cD(W){if(W!==QX)throw Error("invalid wNAF")}class BM{constructor(W,G){this.BASE=W.BASE,this.ZERO=W.ZERO,this.Fn=W.Fn,this.bits=G}_unsafeLadder(W,G,X=this.ZERO){let Y=W;while(G>QX){if(G&PW)X=X.add(Y);Y=Y.double(),G>>=PW}return X}precomputeWindow(W,G){let{windows:X,windowSize:Y}=rA(G,this.bits),Z=[],V=W,Q=V;for(let J=0;J<X;J++){Q=V,Z.push(Q);for(let U=1;U<Y;U++)Q=Q.add(V),Z.push(Q);V=Q.double()}return Z}wNAF(W,G,X){if(!this.Fn.isValid(X))throw Error("invalid scalar");let Y=this.ZERO,Z=this.BASE,V=rA(W,this.bits);for(let Q=0;Q<V.windows;Q++){let{nextN:J,offset:U,isZero:q,isNeg:N,isNegF:A,offsetF:H}=fD(X,Q,V);if(X=J,q)Z=Z.add(IU(A,G[H]));else Y=Y.add(IU(N,G[U]))}return cD(X),{p:Y,f:Z}}wNAFUnsafe(W,G,X,Y=this.ZERO){let Z=rA(W,this.bits);for(let V=0;V<Z.windows;V++){if(X===QX)break;let{nextN:Q,offset:J,isZero:U,isNeg:q}=fD(X,V,Z);if(X=Q,U)continue;else{let N=G[J];Y=Y.add(q?N.negate():N)}}return cD(X),Y}getPrecomputes(W,G,X){let Y=aA.get(G);if(!Y){if(Y=this.precomputeWindow(G,W),W!==1){if(typeof X==="function")Y=X(Y);aA.set(G,Y)}}return Y}cached(W,G,X){let Y=sA(W);return this.wNAF(Y,this.getPrecomputes(Y,W,X),G)}unsafe(W,G,X,Y){let Z=sA(W);if(Z===1)return this._unsafeLadder(W,G,Y);return this.wNAFUnsafe(Z,this.getPrecomputes(Z,W,X),G,Y)}createCache(W,G){RM(G,this.bits),LM.set(W,G),aA.delete(W)}hasCache(W){return sA(W)!==1}}function Du(W,G,X,Y){let Z=G,V=W.ZERO,Q=W.ZERO;while(X>QX||Y>QX){if(X&PW)V=V.add(Z);if(Y&PW)Q=Q.add(Z);Z=Z.double(),X>>=PW,Y>>=PW}return{p1:V,p2:Q}}function Mu(W,G,X,Y){Ku(X,W),Cu(Y,G);let Z=X.length,V=Y.length;if(Z!==V)throw Error("arrays of points and scalars must have equal length");let Q=W.ZERO,J=HM(BigInt(Z)),U=1;if(J>12)U=J-3;else if(J>4)U=J-2;else if(J>0)U=2;let q=uZ(U),N=Array(Number(q)+1).fill(Q),A=Math.floor((G.BITS-1)/U)*U,H=Q;for(let I=A;I>=0;I-=U){N.fill(Q);for(let C=0;C<V;C++){let D=Y[C],x=Number(D>>BigInt(I)&q);N[x]=N[x].add(X[C])}let w=Q;for(let C=N.length-1,D=Q;C>0;C--)D=D.add(N[C]),w=w.add(D);if(H=H.add(w),I!==0)for(let C=0;C<U;C++)H=H.double()}return H}function pD(W,G,X){if(G){if(G.ORDER!==W)throw Error("Field.ORDER must match order: Fp == p, Fn == n");return ju(G),G}else return hZ(W,{isLE:X})}function Tu(W,G,X={},Y){if(Y===void 0)Y=W==="edwards";if(!G||typeof G!=="object")throw Error(`expected valid ${W} CURVE object`);for(let J of["p","n","h"]){let U=G[J];if(!(typeof U==="bigint"&&U>QX))throw Error(`CURVE.${J} must be positive bigint`)}let Z=pD(G.p,X.Fp,Y),V=pD(G.n,X.Fn,Y),Q=["Gx","Gy","a",W==="weierstrass"?"b":"d"];for(let J of Q)if(!Z.isValid(G[J]))throw Error(`CURVE.${J} must be valid field element of CURVE.Fp`);return G=Object.freeze(Object.assign({},G)),{CURVE:G,Fp:Z,Fn:V}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var lD=(W,G)=>(W+(W>=0?G:-G)/$M)/G;function Pu(W,G,X){let[[Y,Z],[V,Q]]=G,J=lD(Q*W,X),U=lD(-Z*W,X),q=W-J*Y-U*V,N=-J*Z-U*Q,A=q<G4,H=N<G4;if(A)q=-q;if(H)N=-N;let I=uZ(Math.ceil(HM(X)/2))+ZX;if(q<G4||q>=I||N<G4||N>=I)throw Error("splitScalar (endomorphism): failed, k="+W);return{k1neg:A,k1:q,k2neg:H,k2:N}}function Qz(W){if(!["compact","recovered","der"].includes(W))throw Error('Signature format must be "compact", "recovered", or "der"');return W}function tA(W,G){let X={};for(let Y of Object.keys(G))X[Y]=W[Y]===void 0?G[Y]:W[Y];if(zU(X.lowS,"lowS"),zU(X.prehash,"prehash"),X.format!==void 0)Qz(X.format);return X}class EM extends Error{constructor(W=""){super(W)}}var W4={Err:EM,_tlv:{encode:(W,G)=>{let{Err:X}=W4;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length&1)throw new X("tlv.encode: unpadded data");let Y=G.length/2,Z=tJ(Y);if(Z.length/2&128)throw new X("tlv.encode: long form length too big");let V=Y>127?tJ(Z.length/2|128):"";return tJ(W)+V+Z+G},decode(W,G){let{Err:X}=W4,Y=0;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length<2||G[Y++]!==W)throw new X("tlv.decode: wrong tlv");let Z=G[Y++],V=!!(Z&128),Q=0;if(!V)Q=Z;else{let U=Z&127;if(!U)throw new X("tlv.decode(long): indefinite length not supported");if(U>4)throw new X("tlv.decode(long): byte length is too big");let q=G.subarray(Y,Y+U);if(q.length!==U)throw new X("tlv.decode: length bytes not complete");if(q[0]===0)throw new X("tlv.decode(long): zero leftmost byte");for(let N of q)Q=Q<<8|N;if(Y+=U,Q<128)throw new X("tlv.decode(long): not minimal encoding")}let J=G.subarray(Y,Y+Q);if(J.length!==Q)throw new X("tlv.decode: wrong value length");return{v:J,l:G.subarray(Y+Q)}}},_int:{encode(W){let{Err:G}=W4;if(W<G4)throw new G("integer: negative integers are not allowed");let X=tJ(W);if(Number.parseInt(X[0],16)&8)X="00"+X;if(X.length&1)throw new G("unexpected DER parsing assertion: unpadded hex");return X},decode(W){let{Err:G}=W4;if(W[0]&128)throw new G("invalid signature integer: negative");if(W[0]===0&&!(W[1]&128))throw new G("invalid signature integer: unnecessary leading zero");return UX(W)}},toSig(W){let{Err:G,_int:X,_tlv:Y}=W4,Z=h8("signature",W),{v:V,l:Q}=Y.decode(48,Z);if(Q.length)throw new G("invalid signature: left bytes after parsing");let{v:J,l:U}=Y.decode(2,V),{v:q,l:N}=Y.decode(2,U);if(N.length)throw new G("invalid signature: left bytes after parsing");return{r:X.decode(J),s:X.decode(q)}},hexFromSig(W){let{_tlv:G,_int:X}=W4,Y=G.encode(2,X.encode(W.r)),Z=G.encode(2,X.encode(W.s)),V=Y+Z;return G.encode(48,V)}},G4=BigInt(0),ZX=BigInt(1),$M=BigInt(2),eJ=BigInt(3),Ru=BigInt(4);function RW(W,G){let{BYTES:X}=W,Y;if(typeof G==="bigint")Y=G;else{let Z=h8("private key",G);try{Y=W.fromBytes(Z)}catch(V){throw Error(`invalid private key: expected ui8a of size ${X}, got ${typeof G}`)}}if(!W.isValidNot0(Y))throw Error("invalid private key: out of range [1..N-1]");return Y}function Lu(W,G={}){let X=Tu("weierstrass",W,G),{Fp:Y,Fn:Z}=X,V=X.CURVE,{h:Q,n:J}=V;wz(G,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:U}=G;if(U){if(!Y.is0(V.a)||typeof U.beta!=="bigint"||!Array.isArray(U.basises))throw Error('invalid endo: expected "beta": bigint and "basises": array')}let q=SM(Y,Z);function N(){if(!Y.isOdd)throw Error("compression is not supported: Field does not have .isOdd()")}function A(y,o,B){let{x:R,y:_}=o.toAffine(),S=Y.toBytes(R);if(zU(B,"isCompressed"),B){N();let v=!Y.isOdd(_);return A7(FM(v),S)}else return A7(Uint8Array.of(4),S,Y.toBytes(_))}function H(y){MW(y,void 0,"Point");let{publicKey:o,publicKeyUncompressed:B}=q,R=y.length,_=y[0],S=y.subarray(1);if(R===o&&(_===2||_===3)){let v=Y.fromBytes(S);if(!Y.isValid(v))throw Error("bad point: is not on curve, wrong x");let P=C(v),E;try{E=Y.sqrt(P)}catch(k){let f=k instanceof Error?": "+k.message:"";throw Error("bad point: is not on curve, sqrt error"+f)}N();let b=Y.isOdd(E);if((_&1)===1!==b)E=Y.neg(E);return{x:v,y:E}}else if(R===B&&_===4){let v=Y.BYTES,P=Y.fromBytes(S.subarray(0,v)),E=Y.fromBytes(S.subarray(v,v*2));if(!D(P,E))throw Error("bad point: is not on curve");return{x:P,y:E}}else throw Error(`bad point: got length ${R}, expected compressed=${o} or uncompressed=${B}`)}let I=G.toBytes||A,w=G.fromBytes||H;function C(y){let o=Y.sqr(y),B=Y.mul(o,y);return Y.add(Y.add(B,Y.mul(y,V.a)),V.b)}function D(y,o){let B=Y.sqr(o),R=C(y);return Y.eql(B,R)}if(!D(V.Gx,V.Gy))throw Error("bad curve params: generator point");let x=Y.mul(Y.pow(V.a,eJ),Ru),h=Y.mul(Y.sqr(V.b),BigInt(27));if(Y.is0(Y.add(x,h)))throw Error("bad curve params: a or b");function l(y,o,B=!1){if(!Y.isValid(o)||B&&Y.is0(o))throw Error(`bad point coordinate ${y}`);return o}function u(y){if(!(y instanceof m))throw Error("ProjectivePoint expected")}function n(y){if(!U||!U.basises)throw Error("no endo");return Pu(y,U.basises,Z.ORDER)}let c=hD((y,o)=>{let{X:B,Y:R,Z:_}=y;if(Y.eql(_,Y.ONE))return{x:B,y:R};let S=y.is0();if(o==null)o=S?Y.ONE:Y.inv(_);let v=Y.mul(B,o),P=Y.mul(R,o),E=Y.mul(_,o);if(S)return{x:Y.ZERO,y:Y.ZERO};if(!Y.eql(E,Y.ONE))throw Error("invZ was invalid");return{x:v,y:P}}),p=hD((y)=>{if(y.is0()){if(G.allowInfinityPoint&&!Y.is0(y.Y))return;throw Error("bad point: ZERO")}let{x:o,y:B}=y.toAffine();if(!Y.isValid(o)||!Y.isValid(B))throw Error("bad point: x or y not field elements");if(!D(o,B))throw Error("bad point: equation left != right");if(!y.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});function W0(y,o,B,R,_){return B=new m(Y.mul(B.X,y),B.Y,B.Z),o=IU(R,o),B=IU(_,B),o.add(B)}class m{constructor(y,o,B){this.X=l("x",y),this.Y=l("y",o,!0),this.Z=l("z",B),Object.freeze(this)}static CURVE(){return V}static fromAffine(y){let{x:o,y:B}=y||{};if(!y||!Y.isValid(o)||!Y.isValid(B))throw Error("invalid affine point");if(y instanceof m)throw Error("projective point not allowed");if(Y.is0(o)&&Y.is0(B))return m.ZERO;return new m(o,B,Y.ONE)}static fromBytes(y){let o=m.fromAffine(w(MW(y,void 0,"point")));return o.assertValidity(),o}static fromHex(y){return m.fromBytes(h8("pointHex",y))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(y=8,o=!0){if(U0.createCache(this,y),!o)this.multiply(eJ);return this}assertValidity(){p(this)}hasEvenY(){let{y}=this.toAffine();if(!Y.isOdd)throw Error("Field doesn't support isOdd");return!Y.isOdd(y)}equals(y){u(y);let{X:o,Y:B,Z:R}=this,{X:_,Y:S,Z:v}=y,P=Y.eql(Y.mul(o,v),Y.mul(_,R)),E=Y.eql(Y.mul(B,v),Y.mul(S,R));return P&&E}negate(){return new m(this.X,Y.neg(this.Y),this.Z)}double(){let{a:y,b:o}=V,B=Y.mul(o,eJ),{X:R,Y:_,Z:S}=this,v=Y.ZERO,P=Y.ZERO,E=Y.ZERO,b=Y.mul(R,R),k=Y.mul(_,_),f=Y.mul(S,S),e=Y.mul(R,_);return e=Y.add(e,e),E=Y.mul(R,S),E=Y.add(E,E),v=Y.mul(y,E),P=Y.mul(B,f),P=Y.add(v,P),v=Y.sub(k,P),P=Y.add(k,P),P=Y.mul(v,P),v=Y.mul(e,v),E=Y.mul(B,E),f=Y.mul(y,f),e=Y.sub(b,f),e=Y.mul(y,e),e=Y.add(e,E),E=Y.add(b,b),b=Y.add(E,b),b=Y.add(b,f),b=Y.mul(b,e),P=Y.add(P,b),f=Y.mul(_,S),f=Y.add(f,f),b=Y.mul(f,e),v=Y.sub(v,b),E=Y.mul(f,k),E=Y.add(E,E),E=Y.add(E,E),new m(v,P,E)}add(y){u(y);let{X:o,Y:B,Z:R}=this,{X:_,Y:S,Z:v}=y,P=Y.ZERO,E=Y.ZERO,b=Y.ZERO,k=V.a,f=Y.mul(V.b,eJ),e=Y.mul(o,_),q0=Y.mul(B,S),Q0=Y.mul(R,v),$0=Y.add(o,B),D0=Y.add(_,S);$0=Y.mul($0,D0),D0=Y.add(e,q0),$0=Y.sub($0,D0),D0=Y.add(o,R);let x0=Y.add(_,v);return D0=Y.mul(D0,x0),x0=Y.add(e,Q0),D0=Y.sub(D0,x0),x0=Y.add(B,R),P=Y.add(S,v),x0=Y.mul(x0,P),P=Y.add(q0,Q0),x0=Y.sub(x0,P),b=Y.mul(k,D0),P=Y.mul(f,Q0),b=Y.add(P,b),P=Y.sub(q0,b),b=Y.add(q0,b),E=Y.mul(P,b),q0=Y.add(e,e),q0=Y.add(q0,e),Q0=Y.mul(k,Q0),D0=Y.mul(f,D0),q0=Y.add(q0,Q0),Q0=Y.sub(e,Q0),Q0=Y.mul(k,Q0),D0=Y.add(D0,Q0),e=Y.mul(q0,D0),E=Y.add(E,e),e=Y.mul(x0,D0),P=Y.mul($0,P),P=Y.sub(P,e),e=Y.mul($0,q0),b=Y.mul(x0,b),b=Y.add(b,e),new m(P,E,b)}subtract(y){return this.add(y.negate())}is0(){return this.equals(m.ZERO)}multiply(y){let{endo:o}=G;if(!Z.isValidNot0(y))throw Error("invalid scalar: out of range");let B,R,_=(S)=>U0.cached(this,S,(v)=>iA(m,v));if(o){let{k1neg:S,k1:v,k2neg:P,k2:E}=n(y),{p:b,f:k}=_(v),{p:f,f:e}=_(E);R=k.add(e),B=W0(o.beta,b,f,S,P)}else{let{p:S,f:v}=_(y);B=S,R=v}return iA(m,[B,R])[0]}multiplyUnsafe(y){let{endo:o}=G,B=this;if(!Z.isValid(y))throw Error("invalid scalar: out of range");if(y===G4||B.is0())return m.ZERO;if(y===ZX)return B;if(U0.hasCache(this))return this.multiply(y);if(o){let{k1neg:R,k1:_,k2neg:S,k2:v}=n(y),{p1:P,p2:E}=Du(m,B,_,v);return W0(o.beta,P,E,R,S)}else return U0.unsafe(B,y)}multiplyAndAddUnsafe(y,o,B){let R=this.multiplyUnsafe(o).add(y.multiplyUnsafe(B));return R.is0()?void 0:R}toAffine(y){return c(this,y)}isTorsionFree(){let{isTorsionFree:y}=G;if(Q===ZX)return!0;if(y)return y(m,this);return U0.unsafe(this,J).is0()}clearCofactor(){let{clearCofactor:y}=G;if(Q===ZX)return this;if(y)return y(m,this);return this.multiplyUnsafe(Q)}isSmallOrder(){return this.multiplyUnsafe(Q).is0()}toBytes(y=!0){return zU(y,"isCompressed"),this.assertValidity(),I(m,this,y)}toHex(y=!0){return YX(this.toBytes(y))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(y=!0){return this.toBytes(y)}_setWindowSize(y){this.precompute(y)}static normalizeZ(y){return iA(m,y)}static msm(y,o){return Mu(m,Z,y,o)}static fromPrivateKey(y){return m.BASE.multiply(RW(Z,y))}}m.BASE=new m(V.Gx,V.Gy,Y.ONE),m.ZERO=new m(Y.ZERO,Y.ONE,Y.ZERO),m.Fp=Y,m.Fn=Z;let Y0=Z.BITS,U0=new BM(m,G.endo?Math.ceil(Y0/2):Y0);return m.BASE.precompute(8),m}function FM(W){return Uint8Array.of(W?2:3)}function SM(W,G){return{secretKey:G.BYTES,publicKey:1+W.BYTES,publicKeyUncompressed:1+2*W.BYTES,publicKeyHasPrefix:!0,signature:2*G.BYTES}}function Bu(W,G={}){let{Fn:X}=W,Y=G.randomBytes||TU,Z=Object.assign(SM(W.Fp,X),{seed:TM(X.ORDER)});function V(H){try{return!!RW(X,H)}catch(I){return!1}}function Q(H,I){let{publicKey:w,publicKeyUncompressed:C}=Z;try{let D=H.length;if(I===!0&&D!==w)return!1;if(I===!1&&D!==C)return!1;return!!W.fromBytes(H)}catch(D){return!1}}function J(H=Y(Z.seed)){return PM(MW(H,Z.seed,"seed"),X.ORDER)}function U(H,I=!0){return W.BASE.multiply(RW(X,H)).toBytes(I)}function q(H){let I=J(H);return{secretKey:I,publicKey:U(I)}}function N(H){if(typeof H==="bigint")return!1;if(H instanceof W)return!0;let{secretKey:I,publicKey:w,publicKeyUncompressed:C}=Z;if(X.allowedLengths||I===w)return;let D=h8("key",H).length;return D===w||D===C}function A(H,I,w=!0){if(N(H)===!0)throw Error("first arg must be private key");if(N(I)===!1)throw Error("second arg must be public key");let C=RW(X,H);return W.fromHex(I).multiply(C).toBytes(w)}return Object.freeze({getPublicKey:U,getSharedSecret:A,keygen:q,Point:W,utils:{isValidSecretKey:V,isValidPublicKey:Q,randomSecretKey:J,isValidPrivateKey:V,randomPrivateKey:J,normPrivateKeyToScalar:(H)=>RW(X,H),precompute(H=8,I=W.BASE){return I.precompute(H,!1)}},lengths:Z})}function Eu(W,G,X={}){XM(G),wz(X,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let Y=X.randomBytes||TU,Z=X.hmac||((B,...R)=>JM(G,B,A7(...R))),{Fp:V,Fn:Q}=W,{ORDER:J,BITS:U}=Q,{keygen:q,getPublicKey:N,getSharedSecret:A,utils:H,lengths:I}=Bu(W,X),w={prehash:!1,lowS:typeof X.lowS==="boolean"?X.lowS:!1,format:void 0,extraEntropy:!1},C="compact";function D(B){let R=J>>ZX;return B>R}function x(B,R){if(!Q.isValidNot0(R))throw Error(`invalid signature ${B}: out of range 1..Point.Fn.ORDER`);return R}function h(B,R){Qz(R);let _=I.signature,S=R==="compact"?_:R==="recovered"?_+1:void 0;return MW(B,S,`${R} signature`)}class l{constructor(B,R,_){if(this.r=x("r",B),this.s=x("s",R),_!=null)this.recovery=_;Object.freeze(this)}static fromBytes(B,R=C){h(B,R);let _;if(R==="der"){let{r:E,s:b}=W4.toSig(MW(B));return new l(E,b)}if(R==="recovered")_=B[0],R="compact",B=B.subarray(1);let S=Q.BYTES,v=B.subarray(0,S),P=B.subarray(S,S*2);return new l(Q.fromBytes(v),Q.fromBytes(P),_)}static fromHex(B,R){return this.fromBytes(AU(B),R)}addRecoveryBit(B){return new l(this.r,this.s,B)}recoverPublicKey(B){let R=V.ORDER,{r:_,s:S,recovery:v}=this;if(v==null||![0,1,2,3].includes(v))throw Error("recovery id invalid");if(J*$M<R&&v>1)throw Error("recovery id is ambiguous for h>1 curve");let P=v===2||v===3?_+J:_;if(!V.isValid(P))throw Error("recovery id 2 or 3 invalid");let E=V.toBytes(P),b=W.fromBytes(A7(FM((v&1)===0),E)),k=Q.inv(P),f=n(h8("msgHash",B)),e=Q.create(-f*k),q0=Q.create(S*k),Q0=W.BASE.multiplyUnsafe(e).add(b.multiplyUnsafe(q0));if(Q0.is0())throw Error("point at infinify");return Q0.assertValidity(),Q0}hasHighS(){return D(this.s)}toBytes(B=C){if(Qz(B),B==="der")return AU(W4.hexFromSig(this));let R=Q.toBytes(this.r),_=Q.toBytes(this.s);if(B==="recovered"){if(this.recovery==null)throw Error("recovery bit must be present");return A7(Uint8Array.of(this.recovery),R,_)}return A7(R,_)}toHex(B){return YX(this.toBytes(B))}assertValidity(){}static fromCompact(B){return l.fromBytes(h8("sig",B),"compact")}static fromDER(B){return l.fromBytes(h8("sig",B),"der")}normalizeS(){return this.hasHighS()?new l(this.r,Q.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return YX(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return YX(this.toBytes("compact"))}}let u=X.bits2int||function(B){if(B.length>8192)throw Error("input is too large");let R=UX(B),_=B.length*8-U;return _>0?R>>BigInt(_):R},n=X.bits2int_modN||function(B){return Q.create(u(B))},c=uZ(U);function p(B){return Uu("num < 2^"+U,B,G4,c),Q.toBytes(B)}function W0(B,R){return MW(B,void 0,"message"),R?MW(G(B),void 0,"prehashed message"):B}function m(B,R,_){if(["recovered","canonical"].some((Q0)=>(Q0 in _)))throw Error("sign() legacy options not supported");let{lowS:S,prehash:v,extraEntropy:P}=tA(_,w);B=W0(B,v);let E=n(B),b=RW(Q,R),k=[p(b),p(E)];if(P!=null&&P!==!1){let Q0=P===!0?Y(I.secretKey):P;k.push(h8("extraEntropy",Q0))}let f=A7(...k),e=E;function q0(Q0){let $0=u(Q0);if(!Q.isValidNot0($0))return;let D0=Q.inv($0),x0=W.BASE.multiply($0).toAffine(),N1=Q.create(x0.x);if(N1===G4)return;let U1=Q.create(D0*Q.create(e+N1*b));if(U1===G4)return;let J0=(x0.x===N1?0:2)|Number(x0.y&ZX),B0=U1;if(S&&D(U1))B0=Q.neg(U1),J0^=1;return new l(N1,B0,J0)}return{seed:f,k2sig:q0}}function Y0(B,R,_={}){B=h8("message",B);let{seed:S,k2sig:v}=m(B,R,_);return qu(G.outputLen,Q.BYTES,Z)(S,v)}function U0(B){let R=void 0,_=typeof B==="string"||MU(B),S=!_&&B!==null&&typeof B==="object"&&typeof B.r==="bigint"&&typeof B.s==="bigint";if(!_&&!S)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(S)R=new l(B.r,B.s);else if(_){try{R=l.fromBytes(h8("sig",B),"der")}catch(v){if(!(v instanceof W4.Err))throw v}if(!R)try{R=l.fromBytes(h8("sig",B),"compact")}catch(v){return!1}}if(!R)return!1;return R}function y(B,R,_,S={}){let{lowS:v,prehash:P,format:E}=tA(S,w);if(_=h8("publicKey",_),R=W0(h8("message",R),P),"strict"in S)throw Error("options.strict was renamed to lowS");let b=E===void 0?U0(B):l.fromBytes(h8("sig",B),E);if(b===!1)return!1;try{let k=W.fromBytes(_);if(v&&b.hasHighS())return!1;let{r:f,s:e}=b,q0=n(R),Q0=Q.inv(e),$0=Q.create(q0*Q0),D0=Q.create(f*Q0),x0=W.BASE.multiplyUnsafe($0).add(k.multiplyUnsafe(D0));if(x0.is0())return!1;return Q.create(x0.x)===f}catch(k){return!1}}function o(B,R,_={}){let{prehash:S}=tA(_,w);return R=W0(R,S),l.fromBytes(B,"recovered").recoverPublicKey(R).toBytes()}return Object.freeze({keygen:q,getPublicKey:N,getSharedSecret:A,utils:H,lengths:I,Point:W,sign:Y0,verify:y,recoverPublicKey:o,Signature:l,hash:G})}function $u(W){let G={a:W.a,b:W.b,p:W.Fp.ORDER,n:W.n,h:W.h,Gx:W.Gx,Gy:W.Gy},X=W.Fp,Y=W.allowedPrivateKeyLengths?Array.from(new Set(W.allowedPrivateKeyLengths.map((Q)=>Math.ceil(Q/2)))):void 0,Z=hZ(G.n,{BITS:W.nBitLength,allowedLengths:Y,modFromBytes:W.wrapPrivateKey}),V={Fp:X,Fn:Z,allowInfinityPoint:W.allowInfinityPoint,endo:W.endo,isTorsionFree:W.isTorsionFree,clearCofactor:W.clearCofactor,fromBytes:W.fromBytes,toBytes:W.toBytes};return{CURVE:G,curveOpts:V}}function Fu(W){let{CURVE:G,curveOpts:X}=$u(W),Y={hmac:W.hmac,randomBytes:W.randomBytes,lowS:W.lowS,bits2int:W.bits2int,bits2int_modN:W.bits2int_modN};return{CURVE:G,curveOpts:X,hash:W.hash,ecdsaOpts:Y}}function Su(W,G){let X=G.Point;return Object.assign({},G,{ProjectivePoint:X,CURVE:Object.assign({},W,DM(X.Fn.ORDER,X.Fn.BITS))})}function xu(W){let{CURVE:G,curveOpts:X,hash:Y,ecdsaOpts:Z}=Fu(W),V=Lu(G,X),Q=Eu(V,Y,Z);return Su(W,Q)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function ku(W,G){let X=(Y)=>xu({...W,hash:Y});return{...X(G),create:X}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var JX={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},_u={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},yu=BigInt(0),dD=BigInt(1),Jz=BigInt(2);function vu(W){let G=JX.p,X=BigInt(3),Y=BigInt(6),Z=BigInt(11),V=BigInt(22),Q=BigInt(23),J=BigInt(44),U=BigInt(88),q=W*W*W%G,N=q*q*W%G,A=I5(N,X,G)*N%G,H=I5(A,X,G)*N%G,I=I5(H,Jz,G)*q%G,w=I5(I,Z,G)*I%G,C=I5(w,V,G)*w%G,D=I5(C,J,G)*C%G,x=I5(D,U,G)*D%G,h=I5(x,J,G)*C%G,l=I5(h,X,G)*N%G,u=I5(l,Q,G)*w%G,n=I5(u,Y,G)*q%G,c=I5(n,Jz,G);if(!wU.eql(wU.sqr(c),W))throw Error("Cannot find square root");return c}var wU=hZ(JX.p,{sqrt:vu}),xM=ku({...JX,Fp:wU,lowS:!0,endo:_u},Yz),oD={};function jU(W,...G){let X=oD[W];if(X===void 0){let Y=Yz(ZM(W));X=A7(Y,Y),oD[W]=X}return Yz(A7(X,...G))}var Oz=(W)=>W.toBytes(!0).slice(1),qX=(()=>xM.Point)(),Kz=(W)=>W%Jz===yu;function Uz(W){let{Fn:G,BASE:X}=qX,Y=RW(G,W),Z=X.multiply(Y);return{scalar:Kz(Z.y)?Y:G.neg(Y),bytes:Oz(Z)}}function kM(W){let G=wU;if(!G.isValidNot0(W))throw Error("invalid x: Fail if x \u2265 p");let X=G.create(W*W),Y=G.create(X*W+BigInt(7)),Z=G.sqrt(Y);if(!Kz(Z))Z=G.neg(Z);let V=qX.fromAffine({x:W,y:Z});return V.assertValidity(),V}var gZ=UX;function _M(...W){return qX.Fn.create(gZ(jU("BIP0340/challenge",...W)))}function nD(W){return Uz(W).bytes}function gu(W,G,X=TU(32)){let{Fn:Y}=qX,Z=h8("message",W),{bytes:V,scalar:Q}=Uz(G),J=h8("auxRand",X,32),U=Y.toBytes(Q^gZ(jU("BIP0340/aux",J))),q=jU("BIP0340/nonce",U,V,Z),{bytes:N,scalar:A}=Uz(q),H=_M(N,V,Z),I=new Uint8Array(64);if(I.set(N,0),I.set(Y.toBytes(Y.create(A+H*Q)),32),!yM(I,Z,V))throw Error("sign: Invalid signature produced");return I}function yM(W,G,X){let{Fn:Y,BASE:Z}=qX,V=h8("signature",W,64),Q=h8("message",G),J=h8("publicKey",X,32);try{let U=kM(gZ(J)),q=gZ(V.subarray(0,32));if(!Vz(q,dD,JX.p))return!1;let N=gZ(V.subarray(32,64));if(!Vz(N,dD,JX.n))return!1;let A=_M(Y.toBytes(q),Oz(U),Q),H=Z.multiplyUnsafe(N).add(U.multiplyUnsafe(Y.neg(A))),{x:I,y:w}=H.toAffine();if(H.is0()||!Kz(w)||I!==q)return!1;return!0}catch(U){return!1}}var Cz=(()=>{let W=(X=TU(48))=>{return PM(X,JX.n)};xM.utils.randomSecretKey;function G(X){let Y=W(X);return{secretKey:Y,publicKey:nD(Y)}}return{keygen:G,getPublicKey:nD,sign:gu,verify:yM,Point:qX,utils:{randomSecretKey:W,randomPrivateKey:W,taggedHash:jU,lift_x:kM,pointToBytes:Oz,numberToBytesBE:PU,bytesToNumberBE:UX,mod:w5},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})(),uu=new TextEncoder,hu=new TextDecoder,LW=(W)=>uu.encode(W),kZ=(W)=>hu.decode(W),qz=(W)=>Array.from(W,(G)=>G.toString(16).padStart(2,"0")).join(""),X4=JSON.stringify,OU=JSON.parse,vM=(W,G=Number.MAX_SAFE_INTEGER)=>W.split("").reduce((X,Y)=>X+Y.charCodeAt(0),0)%G,Dz="AES-GCM",bu={},gM="$",uM=",",mu=(W)=>{let G=new Uint8Array(W),X=32768,Y="";for(let Z=0;Z<G.length;Z+=32768)Y+=String.fromCharCode(...G.subarray(Z,Z+32768));return btoa(Y)},fu=(W)=>Uint8Array.from(atob(W),(G)=>G.charCodeAt(0)).buffer,WU=(W)=>bu[W]??=crypto.subtle.digest("SHA-1",LW(W)).then((G)=>{let X=new Uint8Array(G),Y="";for(let Z of X)Y+=Z.toString(36);return Y}),cu=async(W,G,X)=>{let Y=await crypto.subtle.digest("SHA-256",LW(`${W}:${G}:${X}`));return crypto.subtle.importKey("raw",Y,{name:Dz},!1,["encrypt","decrypt"])},pu=async(W,G)=>{let X=crypto.getRandomValues(new Uint8Array(12)),Y=await W,Z=await crypto.subtle.encrypt({name:Dz,iv:X},Y,LW(G));return`${X.join(uM)}${gM}${mu(Z)}`},lu=async(W,G)=>{let[X,Y]=G.split(gM);if(!X||!Y)throw Error("Invalid encrypted payload format");let Z=Uint8Array.from(X.split(uM),Number),V=await W,Q=await crypto.subtle.decrypt({name:Dz,iv:Z},V,fu(Y));return kZ(Q)},_5="GenosRTC",Mz=(W,G)=>Array.from({length:W},G),KU=(W)=>Array.from(crypto.getRandomValues(new Uint8Array(W)),(G)=>"0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"[G%62]).join(""),W8=typeof sessionStorage<"u"?sessionStorage.__genosrtcId??=KU(20):KU(20),XX=Promise.all.bind(Promise),du=typeof window<"u",{entries:ou,fromEntries:hM,keys:Re}=Object,nu=()=>{},e7=(W)=>Error(`GenosRTC: ${W}`),GU=(...W)=>W.join("@"),iu=(W,G)=>{let X=[...W],Y=X.length,Z=()=>{let V=Math.sin(G++)*1e4;return V-Math.floor(V)};while(Y){let V=Math.floor(Z()*Y--);[X[Y],X[V]]=[X[V],X[Y]]}return X},ru=5000,iD="icegatheringstatechange",rD="offer",au="answer",su=[...Mz(3,(W,G)=>`stun:stun${G||""}.l.google.com:19302`),"stun:stun.cloudflare.com:3478"].map((W)=>({urls:W})),aD=(W,{rtcConfig:G,rtcPolyfill:X,turnConfig:Y})=>{let Z=new(X||RTCPeerConnection)({iceServers:[...su,...Y||[]],...G}),V={},Q=!1,J=!1,U,q=(H)=>Object.assign(H,{binaryType:"arraybuffer",bufferedAmountLowThreshold:65535,onmessage:(I)=>V.data?.(I.data),onopen:()=>V.connect?.(),onclose:()=>V.close?.(),onerror:(I)=>!I?.error?.message?.includes("User-Initiated Abort")&&V.error?.(I)}),N=()=>Promise.race([new Promise((H)=>{let I=()=>{if(Z.iceGatheringState==="complete")Z.removeEventListener(iD,I),H()};Z.addEventListener(iD,I),I()}),new Promise((H)=>setTimeout(H,ru))]).then(()=>({type:Z.localDescription.type,sdp:Z.localDescription.sdp.replace(/a=ice-options:trickle\s\n/g,"")}));if(W?q(U=Z.createDataChannel("data")):Z.ondatachannel=({channel:H})=>q(U=H),Z.onnegotiationneeded=async()=>{try{Q=!0,await Z.setLocalDescription(),V.signal?.(await N())}catch(H){V.error?.(H)}finally{Q=!1}},Z.onconnectionstatechange=()=>{if(["disconnected","failed","closed"].includes(Z.connectionState))V.close?.()},Z.ontrack=(H)=>{V.track?.(H.track,H.streams[0]),V.stream?.(H.streams[0])},Z.onremovestream=(H)=>V.stream?.(H.stream),W&&!Z.canTrickleIceCandidates)Z.onnegotiationneeded();let A=()=>Z.getSenders();return{created:Date.now(),connection:Z,get channel(){return U},get isDead(){return Z.connectionState==="closed"},async signal(H){if(U?.readyState==="open"&&!H.sdp?.includes("a=rtpmap"))return;try{if(H.type===rD){if(Q||Z.signalingState!=="stable"&&!J){if(W)return;await XX([Z.setLocalDescription({type:"rollback"}),Z.setRemoteDescription(H)])}else await Z.setRemoteDescription(H);await Z.setLocalDescription();let I=await N();return V.signal?.(I),I}if(H.type===au){J=!0;try{await Z.setRemoteDescription(H)}finally{J=!1}}}catch(I){V.error?.(I)}},sendData:(H)=>{if(U?.readyState==="open")U.send(H)},destroy:()=>{U?.close(),Z.close(),Q=J=!1},setHandlers:(H)=>Object.assign(V,H),offerPromise:W?new Promise((H)=>V.signal=(I)=>I.type===rD&&H(I)):Promise.resolve(),addStream:(H)=>H.getTracks().forEach((I)=>Z.addTrack(I,H)),removeStream:(H)=>A().filter((I)=>H.getTracks().includes(I.track)).forEach((I)=>Z.removeTrack(I)),addTrack:(H,I)=>Z.addTrack(H,I),removeTrack:(H)=>{let I=A().find((w)=>w.track===H);if(I)Z.removeTrack(I)},replaceTrack:(H,I)=>A().find((w)=>w.track===H)?.replaceTrack(I)}},tu=Object.getPrototypeOf(Uint8Array),QU=12,bM=0,JU=bM+QU,UU=JU+1,_Z=UU+1,yZ=_Z+1,xZ=16384-yZ,XU=255,eA="bufferedamountlow",GX=(W)=>`@_${W}`,Wz=100,eu=3,Wh=200,Gh=(W,G,X,Y)=>{let Z=new Map,V=new Map,Q=new Map,J={},U={},q={},N={},A=new Map,H=(S,v)=>{if(!A.has(S))A.set(S,new Set);A.get(S).add(v)},I=(S,v)=>A.get(S)?.delete(v),w=(S,...v)=>A.get(S)?.forEach((P)=>P(...v)),C=(S,v)=>{let P=S?Array.isArray(S)?S:[S]:Z.keys();return Array.from(P,(E)=>{let b=Z.get(E);if(!b)return console.warn(`${_5}: no peer with id ${E}`),null;return v(E,b)}).filter(Boolean)},D=(S)=>{if(!Z.has(S))return;Z.delete(S),delete J[S],delete U[S],delete q[S],delete N[S],w("peer:leave",S),G(S)},x=(S)=>new Promise((v,P)=>{let E=setTimeout(()=>{S.removeEventListener(eA,b),P(Error(`${_5}: bufferLow timeout`))},5000);function b(){clearTimeout(E),S.removeEventListener(eA,b),v()}S.addEventListener(eA,b)}),h=(S)=>{if(Q.has(S))return Q.get(S);if(!S)throw e7("action type is required");let v=LW(S);if(v.byteLength>QU)throw e7(`\u274C "${S}" exceeds ${QU} bytes. Use a shorter name.`);let P=new Uint8Array(QU).map((Q0,$0)=>v[$0]||0),E=0,b=new Map([["message",new Set],["progress",new Set]]),k=(Q0,$0)=>b.get(Q0)?.add($0),f=(Q0,$0)=>b.get(Q0)?.delete($0),e=async(Q0,$0,D0,x0)=>{if(D0&&typeof D0!=="object")throw e7("meta must be object");if(Q0===void 0)throw e7("data cannot be undefined");let N1=Q0 instanceof Blob,U1=N1||Q0 instanceof ArrayBuffer||Q0 instanceof tu,J0=typeof Q0!=="string";if(D0&&!U1)throw e7("meta only allowed with binary");let B0=U1?new Uint8Array(N1?await Q0.arrayBuffer():Q0):LW(J0?X4(Q0):Q0),h0=D0?LW(X4(D0)):null,Y1=Math.ceil(B0.byteLength/xZ)+(D0?1:0)||1;if(Y1>Wz)throw e7(`Message too large, exceeds max chunks ${Wz}`);let w8=Mz(Y1,(x1,E0)=>{let n0=E0===Y1-1,O1=D0&&E0===0,$1=O1?h0:B0.subarray(D0?(E0-1)*xZ:E0*xZ,D0?E0*xZ:(E0+1)*xZ),U8=new Uint8Array(yZ+$1.byteLength);return U8.set(P),U8.set([E],JU),U8.set([n0|O1<<1|U1<<2|J0<<3],UU),U8.set([Math.round((E0+1)/Y1*XU)],_Z),U8.set($1,yZ),U8});return E=E+1&XU,XX(C($0,async(x1,E0)=>{let{channel:n0}=E0;for(let O1=0;O1<Y1;O1++){let $1=0;while(n0.bufferedAmount>n0.bufferedAmountLowThreshold){if($1++>eu)throw e7(`${_5}: send buffer full, max retries reached for peer ${x1}`);try{await x(n0)}catch(U8){console.warn(U8.message),await new Promise((H8)=>setTimeout(H8,Wh))}}if(!Z.has(x1))break;E0.sendData(w8[O1]),x0?.(w8[O1][_Z]/XU,x1,D0)}}))};V.set(S,{listeners:b,send:e});let q0={send:e,on:k,off:f};return Q.set(S,q0),q0},l=(S,v)=>{try{let P=new Uint8Array(v),E=kZ(P.subarray(bM,JU)).replace(/\x00/g,"");if(!V.has(E))return console.warn(`${_5}: unregistered type (${E})`);let[b]=P.subarray(JU,UU),[k]=P.subarray(UU,_Z),[f]=P.subarray(_Z,yZ),e=P.subarray(yZ),q0=Boolean(k&1),Q0=Boolean(k&2),$0=Boolean(k&4),D0=Boolean(k&8),x0=V.get(E),N1=(J[S]||={})[E]||={};if(N1[b]?.chunks?.length>Wz){console.warn(`${_5}: peer ${S} sent too many chunks for nonce ${b}, ignoring.`);return}let U1=N1[b]||={chunks:[]};if(Q0)try{U1.meta=OU(kZ(e))}catch{console.warn(`${_5}: failed to parse meta from peer ${S} for type ${E}`);return}else U1.chunks.push(e);if(x0.listeners.get("progress").forEach((h0)=>{try{h0(f/XU,S,U1.meta)}catch(Y1){console.error(Y1)}}),!q0)return;let J0=new Uint8Array(U1.chunks.reduce((h0,Y1)=>h0+Y1.byteLength,0));U1.chunks.reduce((h0,Y1)=>(J0.set(Y1,h0),h0+Y1.byteLength),0),delete N1[b];let B0;if($0)B0=J0;else if(D0)try{B0=OU(kZ(J0))}catch{console.warn(`${_5}: failed to parse JSON message data from peer ${S} for type ${E}`);return}else B0=kZ(J0);x0.listeners.get("message").forEach((h0)=>{try{h0(B0,S,U1.meta)}catch(Y1){console.error(Y1)}})}catch(P){console.error(`${_5}: error handling data from peer ${S}:`,P)}},u=async()=>{try{await R(""),await new Promise((S)=>setTimeout(S,99))}catch(S){console.warn(`${_5}: error sending leave`,S)}for(let[S,v]of Z){try{v.destroy()}catch{}Z.delete(S)}X()},{send:n,on:c}=h(GX("ping")),{send:p,on:W0}=h(GX("pong")),{send:m,on:Y0}=h(GX("signal")),{send:U0,on:y}=h(GX("stream")),{send:o,on:B}=h(GX("track")),{send:R,on:_}=h(GX("leave"));if(W((S,v)=>{let P=Z.get(v);if(P===S)return;if(P){let E=()=>{};P.setHandlers({data:E,stream:E,track:E,signal:E,close:E,error:E})}Z.set(v,S),S.setHandlers({data:(E)=>l(v,E),stream:(E)=>{w("stream:add",E,v,q[v]),delete q[v]},track:(E,b)=>{w("track:add",E,b,v,N[v]),delete N[v]},signal:(E)=>m(E,v),close:()=>D(v),error:(E)=>{console.error(`${_5}: peer error for ${v}`,E),D(v)}}),w("peer:join",v,Y?.(v))}),c("message",(S,v)=>p("",v)),W0("message",(S,v)=>{U[v]?.(),delete U[v]}),Y0("message",(S,v)=>Z.get(v)?.signal(S)),y("message",(S,v)=>q[v]=S),B("message",(S,v)=>N[v]=S),_("message",(S,v)=>D(v)),du)addEventListener("beforeunload",u);return{on:H,off:I,channel:h,leave:u,ping:async(S)=>{if(!S)throw e7("ping() requires target peer ID");let v=Date.now();return n("",S),await new Promise((P)=>U[S]=P),Date.now()-v},getPeers:()=>hM(Array.from(Z,([S,v])=>[S,v.connection])),addStream:(S,v,P)=>C(v,async(E,b)=>{if(P)await U0(P,E);b.addStream(S)}),removeStream:(S,v)=>C(v,(P,E)=>E.removeStream(S)),addTrack:(S,v,P,E)=>C(P,async(b,k)=>{if(E)await o(E,b);k.addTrack(S,v)}),removeTrack:(S,v)=>C(v,(P,E)=>E.removeTrack(S)),replaceTrack:(S,v,P,E)=>C(P,async(b,k)=>{if(E)await o(E,b);k.replaceTrack(S,v)})}},Xh=5,Yh=10,Zh=2500,YU=57333,Vh=({init:W,subscribe:G,announce:X})=>{let Y={},Z=!1,V,Q;return(J,U,q)=>{let{appId:N}=J;if(Y[N]?.[U])return Y[N][U];if(!J||!U||!N&&!J.firebaseApp)throw e7(!J?"config required":!U?"roomId required":"appId missing");let A=nu;if(!Z){let _=W(J);Q=Mz(Xh,()=>{try{return aD(!0,J)}catch{return null}}).filter(Boolean),V=Array.isArray(_)?_:[_];let S=setInterval(()=>{Q=Q.filter((v)=>{let P=Date.now()-v.created<YU;if(!P)v.destroy();return P})},YU);Y.offerCleanupTimer||=S,Z=!0}let H={},I={},w=new Map,C=new Map,D={},x=GU(_5,N,U),h=WU(x),l=WU(GU(x,W8)),u=cu(J.password||"",N,U),n=(_)=>async(S)=>({type:S.type,sdp:await _(u,S.sdp)}),c=n(lu),p=n(pu),W0=(_)=>{return setTimeout(()=>{if(!_.isDead&&!Object.values(I).includes(_))_.destroy()},YU),_},m=(_)=>{try{return W0(aD(_,J))}catch{return null}},Y0=(_,S)=>{if(I[S]===_)return;I[S]?.destroy(),I[S]=_,A(_,S),H[S]?.forEach((v)=>v!==_&&v.destroy()),delete H[S]},U0=(_,S)=>{if(I[S]===_)delete I[S]},y=(_)=>async(S,v,P)=>{let[E,b]=await XX([h,l]);if(S!==E&&S!==b)return;let{peerId:k,offer:f,answer:e,type:q0}=typeof v==="string"?OU(v):v;if(k&&k!==W8)C.set(k,Date.now());if(q0&&k)D[k]=q0;if(k===W8||I[k])return;if(J.admit&&!J.admit(k))return;if(f){if(H[k]?.[_]&&W8>k)return;let Q0=m(!1);if(!Q0)return;Q0.setHandlers({connect:()=>Y0(Q0,k),close:()=>U0(Q0,k)});try{let $0=await c(f);if(Q0.isDead)return;let[D0,x0]=await XX([WU(GU(x,k)),Q0.signal($0).then(p)]);P(D0,X4({peerId:W8,answer:x0,...J.type&&{type:J.type}}))}catch{q?.({error:"decryption failed (offer)",appId:N,peerId:k,roomId:U})}}else if(e){let Q0=H[k]?.[_];if(!Q0||Q0.isDead)return;Q0.setHandlers({connect:()=>Y0(Q0,k),close:()=>U0(Q0,k)});try{Q0.signal(await c(e))}catch{q?.({error:"decryption failed (answer)",appId:N,peerId:k,roomId:U})}}else{let Q0=H[k]||=[];if(Q0.forEach((U1,J0)=>{if(U1&&(U1.isDead||Date.now()-(U1.dialedAt??U1.created)>YU)){if(U1.isDead)w.set(k,Date.now()+30000);U1.destroy(),delete Q0[J0]}}),Q0[_]||Q0.filter(Boolean).length>=2||w.get(k)>Date.now())return;if(Object.values(H).reduce((U1,J0)=>U1+J0.filter((B0)=>B0&&!B0.isDead).length,0)>=Yh)return;let $0=Q.pop(),D0=$0?W0($0):m(!0);if(!D0){w.set(k,Date.now()+30000);return}D0.dialedAt=Date.now();let[x0,{offer:N1}]=await XX([WU(GU(x,k)),D0.offerPromise.then(p).then((U1)=>({offer:U1}))]);Q0[_]=D0,D0.setHandlers({connect:()=>Y0(D0,k),close:()=>U0(D0,k)}),P(x0,X4({peerId:W8,offer:N1,peer:D0,...J.type&&{type:J.type}}))}},o=[],B=[];V.forEach(async(_,S)=>{let v=await _;if(!v)return;let[P,E]=await XX([h,l]);B[S]=G(v,P,E,y(S));let b=async()=>{let k=await X(v,P,E);o[S]=setTimeout(b,typeof k==="number"?k:Zh)};b()}),Y[N]||={};let R=Gh((_)=>A=_,(_)=>delete I[_],()=>R.onCleanup?.(),(_)=>D[_]);return R.onCleanup=()=>{if(delete Y[N][U],o.forEach(clearTimeout),B.forEach((_)=>_?.()),Object.keys(Y).length===0)clearInterval(Y.offerCleanupTimer),delete Y.offerCleanupTimer},R._census=()=>{for(let S of Object.keys(I))C.set(S,Date.now());let _=Date.now()-120000;for(let[S,v]of C)if(v<_)C.delete(S);return[...C.keys()]},Y[N][U]=R}},sD=3333,ZU={},mM={},Qh=(W,G)=>{let X={},Y=null,Z=()=>{if(Y)clearTimeout(Y),Y=null;let V=new WebSocket(W);V.onclose=()=>{ZU[W]??=sD,Y=setTimeout(Z,ZU[W]),ZU[W]*=2},V.onmessage=(Q)=>G(Q.data),X.socket=V,X.url=V.url,X.ready=new Promise((Q)=>{V.onopen=()=>{ZU[W]=sD,Q(X)}}),X.send=(Q)=>{if(V.readyState===1)V.send(Q)}};return X.forceReconnect=Z,Z(),mM[W]=X,X};if(typeof window<"u"){let W=()=>{dA.info("\u26A1 [GenosRTC] Network event detected. Forcing reconnection\u2026"),Object.values(mM).forEach((G)=>{if(G.socket&&G.socket.readyState!==WebSocket.OPEN&&G.socket.readyState!==WebSocket.CONNECTING)G.forceReconnect()})};window.addEventListener("online",()=>{dA.info("\u2705 Reconnected to the network."),W()}),window.addEventListener("offline",async()=>{dA.info("\u274C Disconnected from the network.")}),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="visible")W()})}var Jh=(W)=>()=>hM(ou(W).map(([G,X])=>[G,X.socket])),Uh=(W,G,X,Y)=>(W.relayUrls??(Y?iu(G,vM(W.appId)):G)).slice(0,W.relayUrls?.length??W.relayRedundancy??X),qh=["wss://relay.primal.net","wss://ftp.halifax.rwth-aachen.de/nostr","wss://nostr.oxtr.dev","wss://nostr.sathoarder.com","wss://nostr.mom","wss://nos.lol","wss://nostr.vulpem.com","wss://nostr.data.haus"],VX={},Nh=10,fM="x",cM="EVENT",Hh=/pow:\s*(\d+)\s*bits needed\.?/i,Nz=new Set,pM=Cz.utils.randomSecretKey(),Ah=qz(Cz.getPublicKey(pM)),Tz={},vZ={},zh={},lM=()=>Math.floor(Date.now()/1000),dM=(W)=>zh[W]??=vM(W,1e4)+20000,CU=(W)=>W.replace(/\/$/,""),Ih=(W,G)=>{let[X,Y,Z,V]=OU(G);if(X===cM)return vZ[Y]?.(Tz[Y],Z.content);if(X==="NOTICE"||X==="OK"&&!Z){if(+((X==="NOTICE"?Y:V).match(Hh)?.[1]??0)>0){let Q=CU(W);Nz.add(Q),VX[Q]?.close?.(),delete VX[Q]}}},wh=(W)=>{let G=CU(W);if(VX[G])return VX[G];let X=Qh(G,(Y)=>Ih(G,Y));return VX[G]=X},tD=async(W,G)=>{let X={kind:dM(W),content:G,pubkey:Ah,created_at:lM(),tags:[[fM,W]]},Y=LW(X4([0,X.pubkey,X.created_at,X.kind,X.tags,X.content])),Z=new Uint8Array(await crypto.subtle.digest("SHA-256",Y)),V=Cz.sign(Z,pM);return X4([cM,{...X,id:qz(Z),sig:qz(V)}])},eD=(W,G)=>{return Tz[W]=G,X4(["REQ",W,{kinds:[dM(G)],since:lM(),["#"+fM]:[G]}])},WM=(W)=>{return delete Tz[W],X4(["CLOSE",W])},oM=Vh({init:(W)=>{let G=(W?.relayUrls?.length?W.relayUrls:null)??qh;return Uh(W,G,Nh,!1).map(wh).map((X)=>X.ready.then(()=>X).catch(()=>null))},subscribe:(W,G,X,Y)=>{let Z=KU(64),V=KU(64);return vZ[Z]=vZ[V]=(Q,J)=>Y(Q,J,async(U,q)=>{if(Nz.has(CU(W.url)))return;W.send(await tD(U,q))}),W.send(eD(Z,G)),W.send(eD(V,X)),()=>{W.send(WM(Z)),W.send(WM(V)),delete vZ[Z],delete vZ[V]}},announce:async(W,G)=>{if(Nz.has(CU(W.url)))return;W.send(await tD(G,X4({peerId:W8})))}}),Le=Jh(VX),jh={cellSize:"auto",bridgesPerEdge:2,maxCellSize:50,targetCells:100,debug:!1},GM=5000,Oh=3000,Kh=30000,Ch=2000,DU=(W)=>{let G=String(W||"").match(/cell-(\d+)/);return G?Number(G[1]):null},Dh=(W,G)=>{let X=DU(W);if(X==null)return[];let Y=[];for(let Z=1;Z<G;Z*=2){if(X-Z>=0)Y.push(`cell-${X-Z}`);if(X+Z<G)Y.push(`cell-${X+Z}`)}return Y},VU=(W)=>`c${(DU(W)||0).toString(36)}`,Mh=(W,G,X)=>{if(W<=10)return Math.max(2,W);let Y=10,Z=Math.ceil(W/G);return Math.max(Y,Math.min(X,Z))},Th=(W,G)=>{return Math.max(1,Math.ceil(W/G))},nM=(W)=>{let G=0;for(let X=0;X<W.length;X++)G=Math.imul(G^W.charCodeAt(X),2654435761);return G>>>0},Gz=(W,G)=>{let X=0,Y=-1;for(let Z=0;Z<G;Z++){let V=nM(`${W}:${Z}`);if(V>Y)Y=V,X=Z}return X};class qU{constructor(W){this.peerId=W,this.joinedAt=Date.now(),this.lastSeen=Date.now(),this.rttSamples=[],this.stability=1,this.reconnects=0,this.isResponsive=!0,this.connectedCells=new Set}get uptime(){return Date.now()-this.joinedAt}get avgRtt(){if(this.rttSamples.length===0)return 1/0;return Math.round(this.rttSamples.reduce((W,G)=>W+G,0)/this.rttSamples.length)}get healthScore(){let W=this.avgRtt===1/0?0.5:Math.max(0,100-this.avgRtt)/100,G=Math.min(1,this.uptime/60000),X=this.stability,Y=this.isResponsive?1:0.3;return W*0.25+G*0.25+X*0.3+Y*0.2}get isStale(){return Date.now()-this.lastSeen>Kh}addRttSample(W){if(this.rttSamples.push(W),this.rttSamples.length>10)this.rttSamples.shift();this.lastSeen=Date.now(),this.isResponsive=!0}markReconnect(){this.reconnects++,this.stability=Math.max(0,1-this.reconnects*0.1)}markUnresponsive(){this.isResponsive=!1}markSeen(){this.lastSeen=Date.now()}addConnectedCell(W){if(W)this.connectedCells.add(W)}}function Ph(W,G={},X={}){let Y={...jh,...G},Z=!!Y.debug,V=(...$)=>Z&&console.debug("[cells]",...$),Q=Math.max(0,Y.bridgesPerEdge|0),J=Math.max(5,Y.maxCellSize|0),U=Math.max(10,Y.targetCells|0),q=Y.cellSize==="auto",N=q?2:Math.max(1,Y.cellSize|0),A={cellId:null,bridges:[],isBridge:!1},H=null,I=null,w=null,C=new Map,D=new Map,x=new Set,h=new Map,l=new Set,u=new Set,n=0,c=[],p=new Map,W0=new Set,m=new Map,Y0=new Map,U0=1,y=0,o=1,B=0,R=()=>{B0();let $=Th(J0().length,N);if($!==o)o=$,B=Date.now();let d=Date.now()-B;if($>U0&&d>4000)U0=$;else if($<U0&&d>30000)U0=$;return U0},_=()=>Math.min(150,Math.ceil(Math.log2(R()+1))*2+3),S=($)=>Dh($,R()),v=W.on?.bind(W),P=W.off?.bind(W);if(v)W.on=($,d)=>String($).startsWith("mesh:")?k($,d):v($,d);if(P)W.off=($,d)=>String($).startsWith("mesh:")?h.get($)?.delete(d):P($,d);let E=($)=>(x.add($),()=>x.delete($)),b=($,d,X0)=>{if(u.has(X0))return;if(u.add(X0),u.size>GM){let w0=u.values().next().value;u.delete(w0)}for(let w0 of x)try{w0($,d)}catch(e0){V("Error in deliver handler:",e0)}},k=($,d)=>{if(!h.has($))h.set($,new Set);return h.get($).add(d),()=>h.get($)?.delete(d)},f=($,...d)=>{let X0=h.get($);if(X0)for(let w0 of X0)try{w0(...d)}catch{}},e=($)=>{try{return typeof $==="string"?JSON.parse($):$}catch{return null}},q0=()=>`${W8}:${Date.now().toString(36)}:${(n++&65535).toString(36)}`,Q0=()=>{if(l.size>GM)l.delete(l.values().next().value)},$0=($,d,X0=[])=>{if(!$||!d)return;if(C.set($,{cell:d,isBridge:X0.length>0,bridges:[...X0]}),!D.has($))D.set($,new qU($));let w0=D.get($);if(w0.markSeen(),w0.addConnectedCell(d),Y0.set(d,{lastSeen:Date.now(),peerId:$}),X0.length>0)for(let e0 of S(d))w0.addConnectedCell(e0)},D0=($)=>D.get($),x0=($,d)=>{let X0=D.get($);if(X0)X0.addRttSample(d)},N1=($)=>{let d=E0($);if(d.length===0)return null;let X0=0,w0=0;for(let K1 of d){let r0=D.get(K1);if(r0&&!r0.isStale){if(X0+=r0.healthScore,r0.isResponsive)w0++}}let e0=d.filter((K1)=>{let r0=D.get(K1);return r0&&!r0.isStale});return{cellId:$,memberCount:e0.length,avgHealth:e0.length>0?X0/e0.length:0,responsiveRatio:e0.length>0?w0/e0.length:0}},U1=()=>{let $=N1(A.cellId);f("mesh:health",{...A,health:$})},J0=()=>[...new Set([...W._census(),W8])].sort(),B0=()=>{if(!q)return;let $=J0().length,d=Mh($,U,J);if(d!==N)V("cellSize changed:",N,"->",d),N=d},h0=($,d)=>d.filter((X0)=>Gz(X0,R())===$),Y1=($,d)=>{if(Q===0)return[];let X0=DU($),w0=DU(d);if(X0==null||w0==null)return[];let e0=J0(),K1=h0(X0,e0),r0=h0(w0,e0),K0=Math.min(X0,w0),F0=Math.max(X0,w0),g0=(n1)=>nM(`${n1}@${K0}~${F0}`),k0=[...new Set([...K1,...r0])].sort((n1,Q7)=>g0(Q7)-g0(n1));if(!k0.length)return[];let Q1=new Set(K1),X1=[],k1=(n1)=>n1&&!X1.includes(n1)&&X1.push(n1);k1(k0.find((n1)=>Q1.has(n1))),k1(k0.find((n1)=>!Q1.has(n1)));for(let n1 of k0){if(X1.length>=Math.max(Q,2))break;k1(n1)}return X1},w8=($,d)=>{if(Q===0)return[];let X0=S(d),w0=[];for(let e0 of X0)if(Y1(d,e0).includes($))w0.push(e0);return w0},x1=()=>{B0();let $=J0(),d=Gz(W8,R()),X0=R(),w0=`cell-${d}`,e0=w8(W8,w0),K1=e0.length>0;return V("computeState",{self:W8,myCell:w0,isBridge:K1,bridgeEdges:e0,cellSize:N,rosterSize:$.length,totalCells:X0,dynamicTTL:_()}),{cellId:w0,isBridge:K1,bridges:e0,cellSize:N,dynamicTTL:_(),totalCells:X0}},E0=($)=>{let d=[],X0=new Set(Object.keys(W.getPeers?.()||{}));for(let[w0,e0]of C)if(e0.cell===$){let K1=D.get(w0);if(X0.has(w0)&&(!K1||!K1.isStale))d.push(w0)}return d.sort(),d},n0=()=>{if(!H)return;C8=HW(),k5=Date.now();let $={t:"state",id:q0(),ttl:_(),data:{id:W8,cell:A.cellId,bridges:A.bridges,health:D.get(W8)?.healthScore||0.5,timestamp:Date.now()},origin:W8,originCell:A.cellId},d=JSON.stringify($);H.send(d),O1(I,d)},O1=($,d)=>{let X0=e(d);if(!X0?.id||!X0?.t)return;let w0=l.has(X0.id);if(!w0)l.add(X0.id),Q0();let{t:e0,id:K1,ttl:r0,data:K0,origin:F0,originCell:g0}=X0,k0=A.cellId;if(e0==="state"&&K0)$0(K0.id,K0.cell,K0.bridges),f("mesh:peer-state",K0);if(e0==="ping"&&K0?.pingId&&F0!==W8){let X1={t:"pong",id:q0(),ttl:_(),data:{pingId:K0.pingId,receivedAt:Date.now()},origin:W8,originCell:k0};H?.send(JSON.stringify(X1))}if(e0==="pong"&&K0?.pingId){let X1=m.get(K0.pingId);if(X1){clearTimeout(X1.timeout);let k1=Date.now()-X1.start;x0(X1.peerId,k1),X1.resolve(k1),m.delete(K0.pingId)}}if(e0==="msg"&&F0!==W8){if(g0===k0||Q>0)b(K0,F0,K1)}if(w0)return;if(!A.isBridge)return;if((r0??0)<=0)return;let Q1=(X1,k1,n1=null)=>{if(!X1)return;let Q7={t:e0,id:K1,ttl:n1??(r0??_())-1,data:K0,origin:F0||W8,originCell:g0||k0},AW=JSON.stringify(Q7);if(k1?.length){let JZ=new Set(Object.keys(W.getPeers?.()||{})),J9=k1.filter((kJ)=>JZ.has(kJ));if(J9.length>0)X1.send(AW,J9)}else X1.send(AW)};if($===I){for(let X1 of S(k0))Q1($1(X1),null);return}if(!S(k0).map(VU).includes($))return;Q1(H,null);for(let X1 of S(k0))if(VU(X1)!==$)Q1($1(X1),null)},$1=($)=>{let d=VU($);if(p.has($))return p.get($);let X0=W.channel(d);if(p.set($,X0),!W0.has(d))W0.add(d),X0.on("message",(w0)=>O1(d,w0));return X0},U8=()=>{if(!A.cellId)return;if(I=VU(A.cellId),H=W.channel(I),!W0.has(I))W0.add(I),H.on("message",($)=>O1(I,$));if(A.isBridge)for(let $ of S(A.cellId))$1($);if(c.length)for(let $ of c.splice(0)){let d={t:"msg",id:q0(),ttl:_(),data:$,origin:W8,originCell:A.cellId},X0=JSON.stringify(d);H.send(X0),O1(I,X0)}n0()},H8=($)=>{if(!A.cellId)return!0;if(!J0().includes($))return!0;let d=`cell-${Gz($,R())}`;if(d===A.cellId)return!0;if(A.bridges.includes(d))return!0;return S(A.cellId).includes(d)&&Y1(d,A.cellId).includes($)},A8=()=>{let $=W.getPeers?.()||{};for(let d of Object.keys($))if(!H8(d))$[d].close?.()};X.admit=H8;let B1=()=>{let $=x1(),d=!A.cellId||A.cellId!==$.cellId||A.isBridge!==$.isBridge||JSON.stringify(A.bridges)!==JSON.stringify($.bridges);if(A=$,$0(W8,$.cellId,$.bridges),d)U8();else n0();A8(),f("mesh:state",$),U1()},C8="",k5=0,HW=()=>{return`${A.cellId}:${A.isBridge}:${A.bridges.join(",")}`},QZ=()=>{if(w)return;w=setInterval(()=>{let $=R();if($!==y){y=$,B1();return}let d=HW();if(d!==C8||Date.now()-k5>1e4)n0(),C8=d;for(let[X0,w0]of D)if(X0!==W8&&w0.isStale)C.delete(X0),D.delete(X0),V("Removed stale peer:",X0)},Ch)},i7=()=>{if(w)clearInterval(w),w=null},i=($)=>{return new Promise((d,X0)=>{let w0=`${Date.now()}-${Math.random().toString(36).slice(2,8)}`,e0=Date.now(),K1=setTimeout(()=>{m.delete(w0);let K0=D.get($);if(K0)K0.markUnresponsive();X0(Error("Ping timeout"))},Oh);m.set(w0,{start:e0,resolve:d,reject:X0,timeout:K1,peerId:$});let r0={t:"ping",id:q0(),ttl:_(),data:{pingId:w0,target:$},origin:W8,originCell:A.cellId};H?.send(JSON.stringify(r0))})};if(W.on?.("peer:join",($)=>{if(!D.has($))D.set($,new qU($));else D.get($).markReconnect();B1()}),W.on?.("peer:leave",($)=>{C.delete($),B1()}),!D.has(W8))D.set(W8,new qU(W8));return D.get(W8).addConnectedCell(A.cellId||"cell-0"),B1(),QZ(),{send:($)=>{if(!A.cellId||!H)return c.push($);let d={t:"msg",id:q0(),ttl:_(),data:$,origin:W8,originCell:A.cellId},X0=JSON.stringify(d);H.send(X0),O1(I,X0)},on:($,d)=>$==="message"?E(d):void 0,ping:i,getState:()=>({...A,cellSize:N,health:N1(A.cellId),dynamicTTL:_(),totalCells:R(),knownCells:Y0.size}),getMetrics:D0,getCellHealth:N1,getPeerInfo:()=>new Map(C),getStableRoster:()=>J0(),getKnownCells:()=>new Map(Y0),getCellSize:()=>N,destroy:()=>{i7(),m.forEach(($)=>clearTimeout($.timeout)),m.clear(),u.clear(),Y0.clear()}}}function Rh(W,G,X){let Y={},Z=oM({...W,admit:(U)=>Y.admit?.(U)??!0},G,X),V=W.overlay||{},Q=Ph(Z,V,Y),J=new Map;return{on:(U,q)=>Z.on(U,q),off:(U,q)=>Z.off?.(U,q),channel:(U)=>{if(J.has(U))return J.get(U);let q=Z.channel(U),N={send:(A,H)=>{Q.send({_ch:U,_d:A,_t:H})},on:(A,H)=>{if(A==="message")Q.on("message",(I,w)=>{if(I?._ch===U)H(I._d,w)}),q.on(A,H);else q.on(A,H)},off:(A,H)=>q.off?.(A,H),_original:q};return J.set(U,N),N},get id(){return Z.id},get peers(){return Z.peers},getPeers:()=>Z.getPeers?.()||{},mesh:Q,_room:Z,getState:()=>Q.getState(),getMetrics:(U)=>Q.getMetrics(U),getCellHealth:(U)=>Q.getCellHealth(U),getPeerInfo:()=>Q.getPeerInfo(),ping:(U)=>Q.ping(U),leave:()=>{Q.destroy(),J.clear(),Z.leave()},destroy:()=>{Q.destroy(),J.clear()}}}var Pz=(W,G,X)=>W?.cells||W?.overlay?Rh(W,G,X):oM(W,G,X);import{randomBytes as A2}from"crypto";function Lh(){var W,G=!1,X=this;X._DeArray=function(Y,Z,V){return[Y.slice(Z,Z+V)]},X._EnArray=function(Y,Z,V,Q){for(var J=0;J<V;Y[Z+J]=Q[J]?Q[J]:0,J++);},X._DeChar=function(Y,Z){return String.fromCharCode(Y[Z])},X._EnChar=function(Y,Z,V){Y[Z]=V.charCodeAt(0)},X._DeInt=function(Y,Z){var V=G?W.len-1:0,Q=G?-1:1,J=V+Q*W.len,U,q,N;for(U=0,q=V,N=1;q!=J;U+=Y[Z+q]*N,q+=Q,N*=256);if(W.bSigned&&U&Math.pow(2,W.len*8-1))U-=Math.pow(2,W.len*8);return U},X._EnInt=function(Y,Z,V){var Q=G?W.len-1:0,J=G?-1:1,U=Q+J*W.len,q;V=V<W.min?W.min:V>W.max?W.max:V;for(q=Q;q!=U;Y[Z+q]=V&255,q+=J,V>>=8);},X._DeString=function(Y,Z,V){for(var Q=Array(V),J=0;J<V;Q[J]=String.fromCharCode(Y[Z+J]),J++);return Q.join("")},X._EnString=function(Y,Z,V,Q){for(var J,U=0;U<V;Y[Z+U]=(J=Q.charCodeAt(U))?J:0,U++);},X._De754=function(Y,Z){var V,Q,J,U,q,N,A,H,I,w;A=W.mLen,H=W.len*8-W.mLen-1,w=(1<<H)-1,I=w>>1,U=G?0:W.len-1,q=G?1:-1,V=Y[Z+U],U+=q,N=-7;for(Q=V&(1<<-N)-1,V>>=-N,N+=H;N>0;Q=Q*256+Y[Z+U],U+=q,N-=8);for(J=Q&(1<<-N)-1,Q>>=-N,N+=A;N>0;J=J*256+Y[Z+U],U+=q,N-=8);switch(Q){case 0:Q=1-I;break;case w:return J?NaN:(V?-1:1)*(1/0);default:J=J+Math.pow(2,A),Q=Q-I;break}return(V?-1:1)*J*Math.pow(2,Q-A)},X._En754=function(Y,Z,V){var Q,J,U,q,N,A,H,I,w,C;if(H=W.mLen,I=W.len*8-W.mLen-1,C=(1<<I)-1,w=C>>1,Q=V<0?1:0,V=Math.abs(V),isNaN(V)||V==1/0)U=isNaN(V)?1:0,J=C;else{if(J=Math.floor(Math.log(V)/Math.LN2),V*(A=Math.pow(2,-J))<1)J--,A*=2;if(J+w>=1)V+=W.rt/A;else V+=W.rt*Math.pow(2,1-w);if(V*A>=2)J++,A/=2;if(J+w>=C)U=0,J=C;else if(J+w>=1)U=(V*A-1)*Math.pow(2,H),J=J+w;else U=V*Math.pow(2,w-1)*Math.pow(2,H),J=0}for(q=G?W.len-1:0,N=G?-1:1;H>=8;Y[Z+q]=U&255,q+=N,U/=256,H-=8);for(J=J<<H|U,I+=H;I>0;Y[Z+q]=J&255,q+=N,J/=256,I-=8);Y[Z+q-N]|=Q*128},X._DeInt64=function(Y,Z){var V=G?0:7,Q=G?1:-1,J=V+Q*8,U=[0,0,!W.bSigned],q,N,A;for(q=V,A=1,N=0;q!=J;U[A]=(U[A]<<8>>>0)+Y[Z+q],q+=Q,N++,A=N<4?1:0);return U},X._EnInt64=function(Y,Z,V){var Q=G?0:7,J=G?1:-1,U=Q+J*8,q,N,A,H;for(q=Q,A=1,N=0,H=24;q!=U;Y[Z+q]=V[A]>>H&255,q+=J,N++,A=N<4?1:0,H=24-8*(N%4));},X._sPattern="(\\d + )?([AxcbBhHsfdiIlLqQ])",X._lenLut={A:1,x:1,c:1,b:1,B:1,h:2,H:2,s:1,f:4,d:8,i:4,I:4,l:4,L:4,q:8,Q:8},X._elLut={A:{en:X._EnArray,de:X._DeArray},s:{en:X._EnString,de:X._DeString},c:{en:X._EnChar,de:X._DeChar},b:{en:X._EnInt,de:X._DeInt,len:1,bSigned:!0,min:-Math.pow(2,7),max:Math.pow(2,7)-1},B:{en:X._EnInt,de:X._DeInt,len:1,bSigned:!1,min:0,max:Math.pow(2,8)-1},h:{en:X._EnInt,de:X._DeInt,len:2,bSigned:!0,min:-Math.pow(2,15),max:Math.pow(2,15)-1},H:{en:X._EnInt,de:X._DeInt,len:2,bSigned:!1,min:0,max:Math.pow(2,16)-1},i:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!0,min:-Math.pow(2,31),max:Math.pow(2,31)-1},I:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!1,min:0,max:Math.pow(2,32)-1},l:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!0,min:-Math.pow(2,31),max:Math.pow(2,31)-1},L:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!1,min:0,max:Math.pow(2,32)-1},f:{en:X._En754,de:X._De754,len:4,mLen:23,rt:Math.pow(2,-24)-Math.pow(2,-77)},d:{en:X._En754,de:X._De754,len:8,mLen:52,rt:0},q:{en:X._EnInt64,de:X._DeInt64,bSigned:!0},Q:{en:X._EnInt64,de:X._DeInt64,bSigned:!1}},X._UnpackSeries=function(Y,Z,V,Q){for(var J=W.de,U=[],q=0;q<Y;U.push(J(V,Q+q*Z)),q++);return U},X._PackSeries=function(Y,Z,V,Q,J,U){for(var q=W.en,N=0;N<Y;q(V,Q+N*Z,J[U+N]),N++);},X.Unpack=function(Y,Z,V){G=Y.charAt(0)!="<",V=V?V:0;var Q=new RegExp(this._sPattern,"g"),J,U,q,N=[];while(J=Q.exec(Y)){if(U=J[1]==null||J[1]==""?1:parseInt(J[1]),q=this._lenLut[J[2]],V+U*q>Z.length)return;switch(J[2]){case"A":case"s":N.push(this._elLut[J[2]].de(Z,V,U));break;case"c":case"b":case"B":case"h":case"H":case"i":case"I":case"l":case"L":case"f":case"d":case"q":case"Q":W=this._elLut[J[2]],N.push(this._UnpackSeries(U,q,Z,V));break}V+=U*q}return Array.prototype.concat.apply([],N)},X.PackTo=function(Y,Z,V,Q){G=Y.charAt(0)!="<";var J=new RegExp(this._sPattern,"g"),U,q,N,A,H=0;while(U=J.exec(Y)){if(q=U[1]==null||U[1]==""?1:parseInt(U[1]),N=this._lenLut[U[2]],V+q*N>Z.length)return!1;switch(U[2]){case"A":case"s":if(H+1>Q.length)return!1;this._elLut[U[2]].en(Z,V,q,Q[H]),H+=1;break;case"c":case"b":case"B":case"h":case"H":case"i":case"I":case"l":case"L":case"f":case"d":case"q":case"Q":if(W=this._elLut[U[2]],H+q>Q.length)return!1;this._PackSeries(q,N,Z,V,Q,H),H+=q;break;case"x":for(A=0;A<q;A++)Z[V+A]=0;break}V+=q*N}return Z},X.Pack=function(Y,Z){return this.PackTo(Y,Array(this.CalcLength(Y)),0,Z)},X.CalcLength=function(Y){var Z=new RegExp(this._sPattern,"g"),V=0,Q;while(Q=Z.exec(Y))V+=(Q[1]==null||Q[1]==""?1:parseInt(Q[1]))*this._lenLut[Q[2]];return V}}var a1=new Lh;var P2=v1(YT(),1),qH=v1(gz(),1);import{createSocket as Ld}from"dgram";import{createSocket as $d}from"dgram";import*as R2 from"net";import{connect as Fd}from"net";import{createSign as xd,randomBytes as kd,webcrypto as _d}from"crypto";var Nq0=v1(xT(),1);var D7={};qA(D7,{verifySchema:()=>um,fromBER:()=>J4,compareSchema:()=>Y4,VisibleString:()=>SW,ViewWriter:()=>lZ,VideotexString:()=>TX,ValueBlock:()=>t8,Utf8String:()=>v5,UniversalString:()=>KX,UTCTime:()=>xW,TimeOfDay:()=>aU,TeletexString:()=>MX,TIME:()=>eU,Set:()=>b9,Sequence:()=>x9,Repeated:()=>zX,RelativeObjectIdentifier:()=>iU,RawData:()=>TP,PrintableString:()=>DX,Primitive:()=>O6,OctetString:()=>K7,ObjectIdentifier:()=>jX,NumericString:()=>CX,Null:()=>O7,Integer:()=>K6,IA5String:()=>PX,HexBlock:()=>j7,GraphicString:()=>RX,GeneralizedTime:()=>EX,GeneralString:()=>LX,Enumerated:()=>wX,EndOfContent:()=>oU,Duration:()=>tU,DateTime:()=>sU,DEFAULT_MAX_NODES:()=>lT,DEFAULT_MAX_DEPTH:()=>pT,DEFAULT_MAX_CONTENT_LENGTH:()=>dT,DATE:()=>rU,Constructed:()=>f8,Choice:()=>oZ,CharacterString:()=>BX,Boolean:()=>IX,BmpString:()=>OX,BitString:()=>C7,BaseStringBlock:()=>lU,BaseBlock:()=>x8,Any:()=>V4});/*!
|
|
147
|
+
`),VN.prototype[W]=G.toFunction({assertSize:Pj})});YE.exports=VN;function Pj(W,G){if(W>G)throw new yp(W,G)}});var I8=Z1((pq0,AE)=>{var Rj=IQ(),vp=gB(),gp=mB(),up=cB(),hp=lB(),bp=nB(),VE=rB(),mp=sB(),fp=WE(),{encode:UE}=jQ(),{decode:qE}=zY(),{encodingLength:cp}=OQ(),pp=ZE(),NE=HY(),HE={array:vp,bool:up,buffer:gp,reserved:hp,string:bp,when:mp,select:fp};for(let W of Object.keys(VE))HE[W]=VE[W];var QN=Symbol("schema");function QE(W){let G=new Rj({readableObjectMode:!1,writableObjectMode:!0,transform:lp});return G[QN]=W,G}function JE(W){let G=null,X=Buffer.isBuffer(W);if(!X)G=W;let Y=new Rj({transform:dp,readableObjectMode:!0,writableObjectMode:!1});if(Y[QN]=G,X)Y.append(W);return Y}function lp(W,G,X){try{UE(W,this[QN],this);let Y=this.slice();this.consume(Y.length),X(null,Y)}catch(Y){X(Y)}}function dp(W,G,X){this.append(W);try{while(this.length>0){let Y=new pp(this),Z=qE(Y,this[QN]);Y.commit(),this.push(Z)}X()}catch(Y){if(Y instanceof NE)X();else X(Y)}}AE.exports={createEncodeStream:QE,createDecodeStream:JE,encode:UE,decode:qE,encodingLength:cp,createEncode:QE,createDecode:JE,types:HE,BinaryStream:Rj,NotEnoughDataError:NE}});var H$=Z1((q$)=>{Object.defineProperty(q$,"__esModule",{value:!0});q$.LEB128=q$.SignedLEB128=q$.UnsignedLEB128=void 0;var DY;(function(W){W[W.LOWER_7=127]="LOWER_7",W[W.UPPER_1=128]="UPPER_1"})(DY||(DY={}));var U$=(W)=>Number.isSafeInteger(W);class MY{static decode(W,G=0){let X=this.$scanForNullBytes(W,G),Y=0,Z=0;for(let V=0;V<=X-G;V++){let Q=W[G+V]&DY.LOWER_7;Y|=Q<<Z,Z+=7}return Y}static encode(W){if(this.check(W),W<0)throw Error(`An unsigned number must NOT be negative, ${W} is!`);let G=[],X=W;do{let Y=X&DY.LOWER_7;if(X>>=7,X)Y=Y|DY.UPPER_1;G.push(Y)}while(X);return Uint8Array.from(G)}static check(W){if(!U$(W))throw Error(`${W} is not a safe integer!`)}static $scanForNullBytes(W,G=0){let X=G,Y=0;do{if(X>=W.byteLength)throw Error("This is not a LEB128-encoded Uint8Array, no ending found!");Y=W.slice(X,X+1)[0],X++}while(Y&DY.UPPER_1);return X-1}static getLength(W,G=0){return this.$scanForNullBytes(W,G)-G}}q$.UnsignedLEB128=MY;class DN{static $ceil7mul(W){let G=W;while(G%7)G++;return G}static check(W){if(!U$(W))throw Error(`${W} is not a safe integer!`)}static encode(W){if(this.check(W),W>=0)throw Error(`A signed number must be negative, ${W} isn't!`);let G=Math.ceil(Math.log2(-W));return MY.encode((1<<this.$ceil7mul(G))+W)}static decode(W,G=0){let X=MY.decode(W,G);return-((1<<Math.ceil(Math.log2(X)))-X)}}q$.SignedLEB128=DN;class MN{}q$.LEB128=MN;MN.encode=(W)=>(W>=0?MY:DN).encode(W);MN.decode=(W,G=0,X=!1)=>(X?DN:MY).decode(W,G)});var z$=Z1((dj,A$)=>{/*! MIT License. Copyright 2015-2018 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */(function(W){function G(P){return parseInt(P)===P}function X(P){if(!G(P.length))return!1;for(var E=0;E<P.length;E++)if(!G(P[E])||P[E]<0||P[E]>255)return!1;return!0}function Y(P,E){if(P.buffer&&P.name==="Uint8Array"){if(E)if(P.slice)P=P.slice();else P=Array.prototype.slice.call(P);return P}if(Array.isArray(P)){if(!X(P))throw Error("Array contains invalid value: "+P);return new Uint8Array(P)}if(G(P.length)&&X(P))return new Uint8Array(P);throw Error("unsupported array-like object")}function Z(P){return new Uint8Array(P)}function V(P,E,b,k,f){if(k!=null||f!=null)if(P.slice)P=P.slice(k,f);else P=Array.prototype.slice.call(P,k,f);E.set(P,b)}var Q=function(){function P(b){var k=[],f=0;b=encodeURI(b);while(f<b.length){var e=b.charCodeAt(f++);if(e===37)k.push(parseInt(b.substr(f,2),16)),f+=2;else k.push(e)}return Y(k)}function E(b){var k=[],f=0;while(f<b.length){var e=b[f];if(e<128)k.push(String.fromCharCode(e)),f++;else if(e>191&&e<224)k.push(String.fromCharCode((e&31)<<6|b[f+1]&63)),f+=2;else k.push(String.fromCharCode((e&15)<<12|(b[f+1]&63)<<6|b[f+2]&63)),f+=3}return k.join("")}return{toBytes:P,fromBytes:E}}(),J=function(){function P(k){var f=[];for(var e=0;e<k.length;e+=2)f.push(parseInt(k.substr(e,2),16));return f}var E="0123456789abcdef";function b(k){var f=[];for(var e=0;e<k.length;e++){var q0=k[e];f.push(E[(q0&240)>>4]+E[q0&15])}return f.join("")}return{toBytes:P,fromBytes:b}}(),U={16:10,24:12,32:14},q=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],N=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],A=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],H=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],I=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],w=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],C=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],D=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],x=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],h=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239000,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],l=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998000,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],u=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],n=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],c=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239000,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],p=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998000,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function W0(P){var E=[];for(var b=0;b<P.length;b+=4)E.push(P[b]<<24|P[b+1]<<16|P[b+2]<<8|P[b+3]);return E}var m=function(P){if(!(this instanceof m))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:Y(P,!0)}),this._prepare()};m.prototype._prepare=function(){var P=U[this.key.length];if(P==null)throw Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var E=0;E<=P;E++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var b=(P+1)*4,k=this.key.length/4,f=W0(this.key),e;for(var E=0;E<k;E++)e=E>>2,this._Ke[e][E%4]=f[E],this._Kd[P-e][E%4]=f[E];var q0=0,Q0=k,$0;while(Q0<b){if($0=f[k-1],f[0]^=N[$0>>16&255]<<24^N[$0>>8&255]<<16^N[$0&255]<<8^N[$0>>24&255]^q[q0]<<24,q0+=1,k!=8)for(var E=1;E<k;E++)f[E]^=f[E-1];else{for(var E=1;E<k/2;E++)f[E]^=f[E-1];$0=f[k/2-1],f[k/2]^=N[$0&255]^N[$0>>8&255]<<8^N[$0>>16&255]<<16^N[$0>>24&255]<<24;for(var E=k/2+1;E<k;E++)f[E]^=f[E-1]}var E=0,D0,x0;while(E<k&&Q0<b)D0=Q0>>2,x0=Q0%4,this._Ke[D0][x0]=f[E],this._Kd[P-D0][x0]=f[E++],Q0++}for(var D0=1;D0<P;D0++)for(var x0=0;x0<4;x0++)$0=this._Kd[D0][x0],this._Kd[D0][x0]=u[$0>>24&255]^n[$0>>16&255]^c[$0>>8&255]^p[$0&255]},m.prototype.encrypt=function(P){if(P.length!=16)throw Error("invalid plaintext size (must be 16 bytes)");var E=this._Ke.length-1,b=[0,0,0,0],k=W0(P);for(var f=0;f<4;f++)k[f]^=this._Ke[0][f];for(var e=1;e<E;e++){for(var f=0;f<4;f++)b[f]=H[k[f]>>24&255]^I[k[(f+1)%4]>>16&255]^w[k[(f+2)%4]>>8&255]^C[k[(f+3)%4]&255]^this._Ke[e][f];k=b.slice()}var q0=Z(16),Q0;for(var f=0;f<4;f++)Q0=this._Ke[E][f],q0[4*f]=(N[k[f]>>24&255]^Q0>>24)&255,q0[4*f+1]=(N[k[(f+1)%4]>>16&255]^Q0>>16)&255,q0[4*f+2]=(N[k[(f+2)%4]>>8&255]^Q0>>8)&255,q0[4*f+3]=(N[k[(f+3)%4]&255]^Q0)&255;return q0},m.prototype.decrypt=function(P){if(P.length!=16)throw Error("invalid ciphertext size (must be 16 bytes)");var E=this._Kd.length-1,b=[0,0,0,0],k=W0(P);for(var f=0;f<4;f++)k[f]^=this._Kd[0][f];for(var e=1;e<E;e++){for(var f=0;f<4;f++)b[f]=D[k[f]>>24&255]^x[k[(f+3)%4]>>16&255]^h[k[(f+2)%4]>>8&255]^l[k[(f+1)%4]&255]^this._Kd[e][f];k=b.slice()}var q0=Z(16),Q0;for(var f=0;f<4;f++)Q0=this._Kd[E][f],q0[4*f]=(A[k[f]>>24&255]^Q0>>24)&255,q0[4*f+1]=(A[k[(f+3)%4]>>16&255]^Q0>>16)&255,q0[4*f+2]=(A[k[(f+2)%4]>>8&255]^Q0>>8)&255,q0[4*f+3]=(A[k[(f+1)%4]&255]^Q0)&255;return q0};var Y0=function(P){if(!(this instanceof Y0))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new m(P)};Y0.prototype.encrypt=function(P){if(P=Y(P),P.length%16!==0)throw Error("invalid plaintext size (must be multiple of 16 bytes)");var E=Z(P.length),b=Z(16);for(var k=0;k<P.length;k+=16)V(P,b,0,k,k+16),b=this._aes.encrypt(b),V(b,E,k);return E},Y0.prototype.decrypt=function(P){if(P=Y(P),P.length%16!==0)throw Error("invalid ciphertext size (must be multiple of 16 bytes)");var E=Z(P.length),b=Z(16);for(var k=0;k<P.length;k+=16)V(P,b,0,k,k+16),b=this._aes.decrypt(b),V(b,E,k);return E};var U0=function(P,E){if(!(this instanceof U0))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",!E)E=Z(16);else if(E.length!=16)throw Error("invalid initialation vector size (must be 16 bytes)");this._lastCipherblock=Y(E,!0),this._aes=new m(P)};U0.prototype.encrypt=function(P){if(P=Y(P),P.length%16!==0)throw Error("invalid plaintext size (must be multiple of 16 bytes)");var E=Z(P.length),b=Z(16);for(var k=0;k<P.length;k+=16){V(P,b,0,k,k+16);for(var f=0;f<16;f++)b[f]^=this._lastCipherblock[f];this._lastCipherblock=this._aes.encrypt(b),V(this._lastCipherblock,E,k)}return E},U0.prototype.decrypt=function(P){if(P=Y(P),P.length%16!==0)throw Error("invalid ciphertext size (must be multiple of 16 bytes)");var E=Z(P.length),b=Z(16);for(var k=0;k<P.length;k+=16){V(P,b,0,k,k+16),b=this._aes.decrypt(b);for(var f=0;f<16;f++)E[k+f]=b[f]^this._lastCipherblock[f];V(P,this._lastCipherblock,0,k,k+16)}return E};var y=function(P,E,b){if(!(this instanceof y))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",!E)E=Z(16);else if(E.length!=16)throw Error("invalid initialation vector size (must be 16 size)");if(!b)b=1;this.segmentSize=b,this._shiftRegister=Y(E,!0),this._aes=new m(P)};y.prototype.encrypt=function(P){if(P.length%this.segmentSize!=0)throw Error("invalid plaintext size (must be segmentSize bytes)");var E=Y(P,!0),b;for(var k=0;k<E.length;k+=this.segmentSize){b=this._aes.encrypt(this._shiftRegister);for(var f=0;f<this.segmentSize;f++)E[k+f]^=b[f];V(this._shiftRegister,this._shiftRegister,0,this.segmentSize),V(E,this._shiftRegister,16-this.segmentSize,k,k+this.segmentSize)}return E},y.prototype.decrypt=function(P){if(P.length%this.segmentSize!=0)throw Error("invalid ciphertext size (must be segmentSize bytes)");var E=Y(P,!0),b;for(var k=0;k<E.length;k+=this.segmentSize){b=this._aes.encrypt(this._shiftRegister);for(var f=0;f<this.segmentSize;f++)E[k+f]^=b[f];V(this._shiftRegister,this._shiftRegister,0,this.segmentSize),V(P,this._shiftRegister,16-this.segmentSize,k,k+this.segmentSize)}return E};var o=function(P,E){if(!(this instanceof o))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",!E)E=Z(16);else if(E.length!=16)throw Error("invalid initialation vector size (must be 16 bytes)");this._lastPrecipher=Y(E,!0),this._lastPrecipherIndex=16,this._aes=new m(P)};o.prototype.encrypt=function(P){var E=Y(P,!0);for(var b=0;b<E.length;b++){if(this._lastPrecipherIndex===16)this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0;E[b]^=this._lastPrecipher[this._lastPrecipherIndex++]}return E},o.prototype.decrypt=o.prototype.encrypt;var B=function(P){if(!(this instanceof B))throw Error("Counter must be instanitated with `new`");if(P!==0&&!P)P=1;if(typeof P==="number")this._counter=Z(16),this.setValue(P);else this.setBytes(P)};B.prototype.setValue=function(P){if(typeof P!=="number"||parseInt(P)!=P)throw Error("invalid counter value (must be an integer)");if(P>Number.MAX_SAFE_INTEGER)throw Error("integer value out of safe range");for(var E=15;E>=0;--E)this._counter[E]=P%256,P=parseInt(P/256)},B.prototype.setBytes=function(P){if(P=Y(P,!0),P.length!=16)throw Error("invalid counter bytes size (must be 16 bytes)");this._counter=P},B.prototype.increment=function(){for(var P=15;P>=0;P--)if(this._counter[P]===255)this._counter[P]=0;else{this._counter[P]++;break}};var R=function(P,E){if(!(this instanceof R))throw Error("AES must be instanitated with `new`");if(this.description="Counter",this.name="ctr",!(E instanceof B))E=new B(E);this._counter=E,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new m(P)};R.prototype.encrypt=function(P){var E=Y(P,!0);for(var b=0;b<E.length;b++){if(this._remainingCounterIndex===16)this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment();E[b]^=this._remainingCounter[this._remainingCounterIndex++]}return E},R.prototype.decrypt=R.prototype.encrypt;function _(P){P=Y(P,!0);var E=16-P.length%16,b=Z(P.length+E);V(P,b);for(var k=P.length;k<b.length;k++)b[k]=E;return b}function S(P){if(P=Y(P,!0),P.length<16)throw Error("PKCS#7 invalid length");var E=P[P.length-1];if(E>16)throw Error("PKCS#7 padding byte out of range");var b=P.length-E;for(var k=0;k<E;k++)if(P[b+k]!==E)throw Error("PKCS#7 invalid padding byte");var f=Z(b);return V(P,f,0,0,b),f}var v={AES:m,Counter:B,ModeOfOperation:{ecb:Y0,cbc:U0,cfb:y,ofb:o,ctr:R},utils:{hex:J,utf8:Q},padding:{pkcs7:{pad:_,strip:S}},_arrayTest:{coerceArray:Y,createArray:Z,copyArray:V}};if(typeof dj<"u")A$.exports=v;else if(typeof define==="function"&&define.amd)define([],function(){return v});else{if(W.aesjs)v._aesjs=W.aesjs;W.aesjs=v}})(dj)});var rj=Z1((C$)=>{var s0=C$,{Buffer:LN}=S8("buffer"),Sl=S8("os");s0.toBuffer=function(W,G,X){X=~~X;let Y;if(this.isV4Format(W))Y=G||LN.alloc(X+4),W.split(/\./g).map((Z)=>{Y[X++]=parseInt(Z,10)&255});else if(this.isV6Format(W)){let Z=W.split(":",8),V;for(V=0;V<Z.length;V++){let Q=this.isV4Format(Z[V]),J;if(Q)J=this.toBuffer(Z[V]),Z[V]=J.slice(0,2).toString("hex");if(J&&++V<8)Z.splice(V,0,J.slice(2,4).toString("hex"))}if(Z[0]==="")while(Z.length<8)Z.unshift("0");else if(Z[Z.length-1]==="")while(Z.length<8)Z.push("0");else if(Z.length<8){for(V=0;V<Z.length&&Z[V]!=="";V++);let Q=[V,1];for(V=9-Z.length;V>0;V--)Q.push("0");Z.splice(...Q)}Y=G||LN.alloc(X+16);for(V=0;V<Z.length;V++){let Q=parseInt(Z[V],16);Y[X++]=Q>>8&255,Y[X++]=Q&255}}if(!Y)throw Error(`Invalid ip address: ${W}`);return Y};s0.toString=function(W,G,X){G=~~G,X=X||W.length-G;let Y=[];if(X===4){for(let Z=0;Z<X;Z++)Y.push(W[G+Z]);Y=Y.join(".")}else if(X===16){for(let Z=0;Z<X;Z+=2)Y.push(W.readUInt16BE(G+Z).toString(16));Y=Y.join(":"),Y=Y.replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3"),Y=Y.replace(/:{3,4}/,"::")}return Y};var xl=/^(\d{1,3}\.){3,3}\d{1,3}$/,kl=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i;s0.isV4Format=function(W){return xl.test(W)};s0.isV6Format=function(W){return kl.test(W)};function $Q(W){if(W===4)return"ipv4";if(W===6)return"ipv6";return W?W.toLowerCase():"ipv4"}s0.fromPrefixLen=function(W,G){if(W>32)G="ipv6";else G=$Q(G);let X=4;if(G==="ipv6")X=16;let Y=LN.alloc(X);for(let Z=0,V=Y.length;Z<V;++Z){let Q=8;if(W<8)Q=W;W-=Q,Y[Z]=~(255>>Q)&255}return s0.toString(Y)};s0.mask=function(W,G){W=s0.toBuffer(W),G=s0.toBuffer(G);let X=LN.alloc(Math.max(W.length,G.length)),Y;if(W.length===G.length)for(Y=0;Y<W.length;Y++)X[Y]=W[Y]&G[Y];else if(G.length===4)for(Y=0;Y<G.length;Y++)X[Y]=W[W.length-4+Y]&G[Y];else{for(Y=0;Y<X.length-6;Y++)X[Y]=0;X[10]=255,X[11]=255;for(Y=0;Y<W.length;Y++)X[Y+12]=W[Y]&G[Y+12];Y+=12}for(;Y<X.length;Y++)X[Y]=0;return s0.toString(X)};s0.cidr=function(W){let G=W.split("/"),X=G[0];if(G.length!==2)throw Error(`invalid CIDR subnet: ${X}`);let Y=s0.fromPrefixLen(parseInt(G[1],10));return s0.mask(X,Y)};s0.subnet=function(W,G){let X=s0.toLong(s0.mask(W,G)),Y=s0.toBuffer(G),Z=0;for(let Q=0;Q<Y.length;Q++)if(Y[Q]===255)Z+=8;else{let J=Y[Q]&255;while(J)J=J<<1&255,Z++}let V=2**(32-Z);return{networkAddress:s0.fromLong(X),firstAddress:V<=2?s0.fromLong(X):s0.fromLong(X+1),lastAddress:V<=2?s0.fromLong(X+V-1):s0.fromLong(X+V-2),broadcastAddress:s0.fromLong(X+V-1),subnetMask:G,subnetMaskLength:Z,numHosts:V<=2?V:V-2,length:V,contains(Q){return X===s0.toLong(s0.mask(Q,G))}}};s0.cidrSubnet=function(W){let G=W.split("/"),X=G[0];if(G.length!==2)throw Error(`invalid CIDR subnet: ${X}`);let Y=s0.fromPrefixLen(parseInt(G[1],10));return s0.subnet(X,Y)};s0.not=function(W){let G=s0.toBuffer(W);for(let X=0;X<G.length;X++)G[X]=255^G[X];return s0.toString(G)};s0.or=function(W,G){if(W=s0.toBuffer(W),G=s0.toBuffer(G),W.length===G.length){for(let V=0;V<W.length;++V)W[V]|=G[V];return s0.toString(W)}let X=W,Y=G;if(G.length>W.length)X=G,Y=W;let Z=X.length-Y.length;for(let V=Z;V<X.length;++V)X[V]|=Y[V-Z];return s0.toString(X)};s0.isEqual=function(W,G){if(W=s0.toBuffer(W),G=s0.toBuffer(G),W.length===G.length){for(let Y=0;Y<W.length;Y++)if(W[Y]!==G[Y])return!1;return!0}if(G.length===4){let Y=G;G=W,W=Y}for(let Y=0;Y<10;Y++)if(G[Y]!==0)return!1;let X=G.readUInt16BE(10);if(X!==0&&X!==65535)return!1;for(let Y=0;Y<4;Y++)if(W[Y]!==G[Y+12])return!1;return!0};s0.isPrivate=function(W){if(s0.isLoopback(W))return!0;if(!s0.isV6Format(W)){let G=s0.normalizeToLong(W);if(G<0)throw Error("invalid ipv4 address");W=s0.fromLong(G)}return/^(::f{4}:)?10\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^(::f{4}:)?192\.168\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^(::f{4}:)?172\.(1[6-9]|2\d|30|31)\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^(::f{4}:)?169\.254\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^f[cd][0-9a-f]{2}:/i.test(W)||/^fe80:/i.test(W)||/^::1$/.test(W)||/^::$/.test(W)};s0.isPublic=function(W){return!s0.isPrivate(W)};s0.isLoopback=function(W){if(!/\./.test(W)&&!/:/.test(W))W=s0.fromLong(Number(W));return/^(::f{4}:)?127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/.test(W)||/^0177\./.test(W)||/^0x7f\./i.test(W)||/^fe80::1$/i.test(W)||/^::1$/.test(W)||/^::$/.test(W)};s0.loopback=function(W){if(W=$Q(W),W!=="ipv4"&&W!=="ipv6")throw Error("family must be ipv4 or ipv6");return W==="ipv4"?"127.0.0.1":"fe80::1"};s0.address=function(W,G){let X=Sl.networkInterfaces();if(G=$Q(G),W&&W!=="private"&&W!=="public"){let Z=X[W].filter((V)=>{return $Q(V.family)===G});if(Z.length===0)return;return Z[0].address}let Y=Object.keys(X).map((Z)=>{let V=X[Z].filter((Q)=>{if(Q.family=$Q(Q.family),Q.family!==G||s0.isLoopback(Q.address))return!1;if(!W)return!0;return W==="public"?s0.isPrivate(Q.address):s0.isPublic(Q.address)});return V.length?V[0].address:void 0}).filter(Boolean);return!Y.length?s0.loopback(G):Y[0]};s0.toLong=function(W){let G=0;return W.split(".").forEach((X)=>{G<<=8,G+=parseInt(X)}),G>>>0};s0.fromLong=function(W){return`${W>>>24}.${W>>16&255}.${W>>8&255}.${W&255}`};s0.normalizeToLong=function(W){let G=W.split(".").map((Z)=>{if(Z.startsWith("0x")||Z.startsWith("0X"))return parseInt(Z,16);else if(Z.startsWith("0")&&Z!=="0"&&/^[0-7]+$/.test(Z))return parseInt(Z,8);else if(/^[1-9]\d*$/.test(Z)||Z==="0")return parseInt(Z,10);else return NaN});if(G.some(isNaN))return-1;let X=0;switch(G.length){case 1:X=G[0];break;case 2:if(G[0]>255||G[1]>16777215)return-1;X=G[0]<<24|G[1]&16777215;break;case 3:if(G[0]>255||G[1]>255||G[2]>65535)return-1;X=G[0]<<24|G[1]<<16|G[2]&65535;break;case 4:if(G.some((Z)=>Z>255))return-1;X=G[0]<<24|G[1]<<16|G[2]<<8|G[3];break;default:return-1}return X>>>0}});var M$=Z1((SN0,D$)=>{D$.exports=function W(G,X){if(G===X)return!0;if(G&&X&&typeof G=="object"&&typeof X=="object"){if(G.constructor!==X.constructor)return!1;var Y,Z,V;if(Array.isArray(G)){if(Y=G.length,Y!=X.length)return!1;for(Z=Y;Z--!==0;)if(!W(G[Z],X[Z]))return!1;return!0}if(G.constructor===RegExp)return G.source===X.source&&G.flags===X.flags;if(G.valueOf!==Object.prototype.valueOf)return G.valueOf()===X.valueOf();if(G.toString!==Object.prototype.toString)return G.toString()===X.toString();if(V=Object.keys(G),Y=V.length,Y!==Object.keys(X).length)return!1;for(Z=Y;Z--!==0;)if(!Object.prototype.hasOwnProperty.call(X,V[Z]))return!1;for(Z=Y;Z--!==0;){var Q=V[Z];if(!W(G[Q],X[Q]))return!1}return!0}return G!==G&&X!==X}});var T$=Z1((_l)=>{_l.toString=function(W){switch(W){case 1:return"A";case 10:return"NULL";case 28:return"AAAA";case 18:return"AFSDB";case 42:return"APL";case 257:return"CAA";case 60:return"CDNSKEY";case 59:return"CDS";case 37:return"CERT";case 5:return"CNAME";case 49:return"DHCID";case 32769:return"DLV";case 39:return"DNAME";case 48:return"DNSKEY";case 43:return"DS";case 55:return"HIP";case 13:return"HINFO";case 45:return"IPSECKEY";case 25:return"KEY";case 36:return"KX";case 29:return"LOC";case 15:return"MX";case 35:return"NAPTR";case 2:return"NS";case 47:return"NSEC";case 50:return"NSEC3";case 51:return"NSEC3PARAM";case 12:return"PTR";case 46:return"RRSIG";case 17:return"RP";case 24:return"SIG";case 6:return"SOA";case 99:return"SPF";case 33:return"SRV";case 44:return"SSHFP";case 32768:return"TA";case 249:return"TKEY";case 52:return"TLSA";case 250:return"TSIG";case 16:return"TXT";case 252:return"AXFR";case 251:return"IXFR";case 41:return"OPT";case 255:return"ANY"}return"UNKNOWN_"+W};_l.toType=function(W){switch(W.toUpperCase()){case"A":return 1;case"NULL":return 10;case"AAAA":return 28;case"AFSDB":return 18;case"APL":return 42;case"CAA":return 257;case"CDNSKEY":return 60;case"CDS":return 59;case"CERT":return 37;case"CNAME":return 5;case"DHCID":return 49;case"DLV":return 32769;case"DNAME":return 39;case"DNSKEY":return 48;case"DS":return 43;case"HIP":return 55;case"HINFO":return 13;case"IPSECKEY":return 45;case"KEY":return 25;case"KX":return 36;case"LOC":return 29;case"MX":return 15;case"NAPTR":return 35;case"NS":return 2;case"NSEC":return 47;case"NSEC3":return 50;case"NSEC3PARAM":return 51;case"PTR":return 12;case"RRSIG":return 46;case"RP":return 17;case"SIG":return 24;case"SOA":return 6;case"SPF":return 99;case"SRV":return 33;case"SSHFP":return 44;case"TA":return 32768;case"TKEY":return 249;case"TLSA":return 52;case"TSIG":return 250;case"TXT":return 16;case"AXFR":return 252;case"IXFR":return 251;case"OPT":return 41;case"ANY":return 255;case"*":return 255}if(W.toUpperCase().startsWith("UNKNOWN_"))return parseInt(W.slice(8));return 0}});var P$=Z1((gl)=>{gl.toString=function(W){switch(W){case 0:return"NOERROR";case 1:return"FORMERR";case 2:return"SERVFAIL";case 3:return"NXDOMAIN";case 4:return"NOTIMP";case 5:return"REFUSED";case 6:return"YXDOMAIN";case 7:return"YXRRSET";case 8:return"NXRRSET";case 9:return"NOTAUTH";case 10:return"NOTZONE";case 11:return"RCODE_11";case 12:return"RCODE_12";case 13:return"RCODE_13";case 14:return"RCODE_14";case 15:return"RCODE_15"}return"RCODE_"+W};gl.toRcode=function(W){switch(W.toUpperCase()){case"NOERROR":return 0;case"FORMERR":return 1;case"SERVFAIL":return 2;case"NXDOMAIN":return 3;case"NOTIMP":return 4;case"REFUSED":return 5;case"YXDOMAIN":return 6;case"YXRRSET":return 7;case"NXRRSET":return 8;case"NOTAUTH":return 9;case"NOTZONE":return 10;case"RCODE_11":return 11;case"RCODE_12":return 12;case"RCODE_13":return 13;case"RCODE_14":return 14;case"RCODE_15":return 15}return 0}});var R$=Z1((bl)=>{bl.toString=function(W){switch(W){case 0:return"QUERY";case 1:return"IQUERY";case 2:return"STATUS";case 3:return"OPCODE_3";case 4:return"NOTIFY";case 5:return"UPDATE";case 6:return"OPCODE_6";case 7:return"OPCODE_7";case 8:return"OPCODE_8";case 9:return"OPCODE_9";case 10:return"OPCODE_10";case 11:return"OPCODE_11";case 12:return"OPCODE_12";case 13:return"OPCODE_13";case 14:return"OPCODE_14";case 15:return"OPCODE_15"}return"OPCODE_"+W};bl.toOpcode=function(W){switch(W.toUpperCase()){case"QUERY":return 0;case"IQUERY":return 1;case"STATUS":return 2;case"OPCODE_3":return 3;case"NOTIFY":return 4;case"UPDATE":return 5;case"OPCODE_6":return 6;case"OPCODE_7":return 7;case"OPCODE_8":return 8;case"OPCODE_9":return 9;case"OPCODE_10":return 10;case"OPCODE_11":return 11;case"OPCODE_12":return 12;case"OPCODE_13":return 13;case"OPCODE_14":return 14;case"OPCODE_15":return 15}return 0}});var L$=Z1((cl)=>{cl.toString=function(W){switch(W){case 1:return"IN";case 2:return"CS";case 3:return"CH";case 4:return"HS";case 255:return"ANY"}return"UNKNOWN_"+W};cl.toClass=function(W){switch(W.toUpperCase()){case"IN":return 1;case"CS":return 2;case"CH":return 3;case"HS":return 4;case"ANY":return 255}return 0}});var B$=Z1((dl)=>{dl.toString=function(W){switch(W){case 1:return"LLQ";case 2:return"UL";case 3:return"NSID";case 5:return"DAU";case 6:return"DHU";case 7:return"N3U";case 8:return"CLIENT_SUBNET";case 9:return"EXPIRE";case 10:return"COOKIE";case 11:return"TCP_KEEPALIVE";case 12:return"PADDING";case 13:return"CHAIN";case 14:return"KEY_TAG";case 26946:return"DEVICEID"}if(W<0)return null;return`OPTION_${W}`};dl.toCode=function(W){if(typeof W==="number")return W;if(!W)return-1;switch(W.toUpperCase()){case"OPTION_0":return 0;case"LLQ":return 1;case"UL":return 2;case"NSID":return 3;case"OPTION_4":return 4;case"DAU":return 5;case"DHU":return 6;case"N3U":return 7;case"CLIENT_SUBNET":return 8;case"EXPIRE":return 9;case"COOKIE":return 10;case"TCP_KEEPALIVE":return 11;case"PADDING":return 12;case"CHAIN":return 13;case"KEY_TAG":return 14;case"DEVICEID":return 26946;case"OPTION_65535":return 65535}let G=W.match(/_(\d+)$/);if(G)return parseInt(G[1],10);return-1}});var F$=Z1(($$,aj)=>{var E$=function(W){Object.defineProperty(W,"__esModule",{value:!0}),W.decode=A,W.encode=N,W.familyOf=q,W.name=void 0,W.sizeOf=U,W.v6=W.v4=void 0;let G=/^(\d{1,3}\.){3,3}\d{1,3}$/,X=4,Y=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i,Z=16,V={name:"v4",size:X,isFormat:(H)=>G.test(H),encode(H,I,w){w=~~w,I=I||new Uint8Array(w+X);let C=H.length,D=0;for(let x=0;x<C;){let h=H.charCodeAt(x++);if(h===46)I[w++]=D,D=0;else D=D*10+(h-48)}return I[w]=D,I},decode(H,I){return I=~~I,`${H[I++]}.${H[I++]}.${H[I++]}.${H[I]}`}};W.v4=V;let Q={name:"v6",size:Z,isFormat:(H)=>H.length>0&&Y.test(H),encode(H,I,w){w=~~w;let C=w+Z,D=-1,x=0,h=0,l=!0,u=!1;I=I||new Uint8Array(w+Z);for(let n=0;n<H.length;n++){let c=H.charCodeAt(n);if(c===58){if(l){if(D!==-1){if(w<C)I[w]=0;if(w<C-1)I[w+1]=0;w+=2}else if(w<C)D=w}else{if(u===!0){if(w<C)I[w]=h;w++}else{if(w<C)I[w]=x>>8;if(w<C-1)I[w+1]=x&255;w+=2}x=0,h=0}l=!0,u=!1}else if(c===46){if(w<C)I[w]=h;w++,h=0,x=0,l=!1,u=!0}else{if(l=!1,c>=97)c-=87;else if(c>=65)c-=55;else c-=48,h=h*10+c;x=(x<<4)+c}}if(l===!1)if(u===!0){if(w<C)I[w]=h;w++}else{if(w<C)I[w]=x>>8;if(w<C-1)I[w+1]=x&255;w+=2}else if(D===0){if(w<C)I[w]=0;if(w<C-1)I[w+1]=0;w+=2}else if(D!==-1){w+=2;for(let n=Math.min(w-1,C-1);n>=D+2;n--)I[n]=I[n-2];I[D]=0,I[D+1]=0,D=w}if(D!==w&&D!==-1){if(w>C-2)w=C-2;while(C>D)I[--C]=w<C&&w>D?I[--w]:0}else while(w<C)I[w++]=0;return I},decode(H,I){I=~~I;let w="";for(let C=0;C<Z;C+=2){if(C!==0)w+=":";w+=(H[I+C]<<8|H[I+C+1]).toString(16)}return w.replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}};W.v6=Q;let J="ip";W.name=J;function U(H){if(V.isFormat(H))return V.size;if(Q.isFormat(H))return Q.size;throw Error(`Invalid ip address: ${H}`)}function q(H){return U(H)===V.size?1:2}function N(H,I,w){w=~~w;let C=U(H);if(typeof I==="function")I=I(w+C);if(C===V.size)return V.encode(H,I,w);return Q.encode(H,I,w)}function A(H,I,w){if(I=~~I,w=w||H.length-I,w===V.size)return V.decode(H,I,w);if(w===Q.size)return Q.decode(H,I,w);throw Error(`Invalid buffer size needs to be ${V.size} for v4 or ${Q.size} for v6.`)}return"default"in W?W.default:W}({});if(typeof define==="function"&&define.amd)define([],function(){return E$});else if(typeof aj==="object"&&typeof $$==="object")aj.exports=E$});var S$=Z1((tl)=>{var G1=S8("buffer").Buffer,h4=T$(),il=P$(),rl=R$(),EN=L$(),ej=B$(),jG=F$(),y0=tl.name={};y0.encode=function(W,G,X,{mail:Y=!1}={}){if(!G)G=G1.alloc(y0.encodingLength(W));if(!X)X=0;let Z=X,V=W.replace(/^\.|\.$/gm,"");if(V.length){let Q=[];if(Y){let J="";V.split(".").forEach((U)=>{if(U.endsWith("\\"))J+=(J.length?".":"")+U.slice(0,-1);else if(Q.length===0&&J.length)Q.push(J+"."+U);else Q.push(U)})}else Q=V.split(".");for(let J=0;J<Q.length;J++){let U=G.write(Q[J],X+1);G[X]=U,X+=U+1}}return G[X++]=0,y0.encode.bytes=X-Z,G};y0.encode.bytes=0;y0.decode=function(W,G,{mail:X=!1}={}){if(!G)G=0;let Y=[],Z=G,V=0,Q=0,J=!1;while(!0){if(G>=W.length)throw Error("Cannot decode name (buffer overflow)");let U=W[G++];if(Q+=J?0:1,U===0)break;else if((U&192)===0){if(G+U>W.length)throw Error("Cannot decode name (buffer overflow)");if(V+=U+1,V>254)throw Error("Cannot decode name (name too long)");let q=W.toString("utf-8",G,G+U);if(X)q=q.replace(/\./g,"\\.");Y.push(q),G+=U,Q+=J?0:U}else if((U&192)===192){if(G+1>W.length)throw Error("Cannot decode name (buffer overflow)");let q=W.readUInt16BE(G-1)-49152;if(q>=Z)throw Error("Cannot decode name (bad pointer)");G=q,Z=q,Q+=J?0:1,J=!0}else throw Error("Cannot decode name (bad label)")}return y0.decode.bytes=Q,Y.length===0?".":Y.join(".")};y0.decode.bytes=0;y0.encodingLength=function(W){if(W==="."||W==="..")return 1;return G1.byteLength(W.replace(/^\.|\.$/gm,""))+2};var S1={};S1.encode=function(W,G,X){if(!G)G=G1.alloc(S1.encodingLength(W));if(!X)X=0;let Y=G.write(W,X+1);return G[X]=Y,S1.encode.bytes=Y+1,G};S1.encode.bytes=0;S1.decode=function(W,G){if(!G)G=0;let X=W[G],Y=W.toString("utf-8",G+1,G+1+X);return S1.decode.bytes=X+1,Y};S1.decode.bytes=0;S1.encodingLength=function(W){return G1.byteLength(W)+1};var r5={};r5.encode=function(W,G,X){if(!G)G=r5.encodingLength(W);if(!X)X=0;let Y=(W.flags||0)&32767,Z=W.type==="response"?32768:0;return G.writeUInt16BE(W.id||0,X),G.writeUInt16BE(Y|Z,X+2),G.writeUInt16BE(W.questions.length,X+4),G.writeUInt16BE(W.answers.length,X+6),G.writeUInt16BE(W.authorities.length,X+8),G.writeUInt16BE(W.additionals.length,X+10),G};r5.encode.bytes=12;r5.decode=function(W,G){if(!G)G=0;if(W.length<12)throw Error("Header must be 12 bytes");let X=W.readUInt16BE(G+2);return{id:W.readUInt16BE(G),type:X&32768?"response":"query",flags:X&32767,flag_qr:(X>>15&1)===1,opcode:rl.toString(X>>11&15),flag_aa:(X>>10&1)===1,flag_tc:(X>>9&1)===1,flag_rd:(X>>8&1)===1,flag_ra:(X>>7&1)===1,flag_z:(X>>6&1)===1,flag_ad:(X>>5&1)===1,flag_cd:(X>>4&1)===1,rcode:il.toString(X&15),questions:Array(W.readUInt16BE(G+4)),answers:Array(W.readUInt16BE(G+6)),authorities:Array(W.readUInt16BE(G+8)),additionals:Array(W.readUInt16BE(G+10))}};r5.decode.bytes=12;r5.encodingLength=function(){return 12};var F4=tl.unknown={};F4.encode=function(W,G,X){if(!G)G=G1.alloc(F4.encodingLength(W));if(!X)X=0;return G.writeUInt16BE(W.length,X),W.copy(G,X+2),F4.encode.bytes=W.length+2,G};F4.encode.bytes=0;F4.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G),Y=W.slice(G+2,G+2+X);return F4.decode.bytes=X+2,Y};F4.decode.bytes=0;F4.encodingLength=function(W){return W.length+2};var S4=tl.ns={};S4.encode=function(W,G,X){if(!G)G=G1.alloc(S4.encodingLength(W));if(!X)X=0;return y0.encode(W,G,X+2),G.writeUInt16BE(y0.encode.bytes,X),S4.encode.bytes=y0.encode.bytes+2,G};S4.encode.bytes=0;S4.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G),Y=y0.decode(W,G+2);return S4.decode.bytes=X+2,Y};S4.decode.bytes=0;S4.encodingLength=function(W){return y0.encodingLength(W)+2};var x4=tl.soa={};x4.encode=function(W,G,X){if(!G)G=G1.alloc(x4.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,y0.encode(W.mname,G,X),X+=y0.encode.bytes,y0.encode(W.rname,G,X,{mail:!0}),X+=y0.encode.bytes,G.writeUInt32BE(W.serial||0,X),X+=4,G.writeUInt32BE(W.refresh||0,X),X+=4,G.writeUInt32BE(W.retry||0,X),X+=4,G.writeUInt32BE(W.expire||0,X),X+=4,G.writeUInt32BE(W.minimum||0,X),X+=4,G.writeUInt16BE(X-Y-2,Y),x4.encode.bytes=X-Y,G};x4.encode.bytes=0;x4.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.mname=y0.decode(W,G),G+=y0.decode.bytes,Y.rname=y0.decode(W,G,{mail:!0}),G+=y0.decode.bytes,Y.serial=W.readUInt32BE(G),G+=4,Y.refresh=W.readUInt32BE(G),G+=4,Y.retry=W.readUInt32BE(G),G+=4,Y.expire=W.readUInt32BE(G),G+=4,Y.minimum=W.readUInt32BE(G),G+=4,x4.decode.bytes=G-X,Y};x4.decode.bytes=0;x4.encodingLength=function(W){return 22+y0.encodingLength(W.mname)+y0.encodingLength(W.rname)};var k4=tl.txt={};k4.encode=function(W,G,X){if(!Array.isArray(W))W=[W];for(let Z=0;Z<W.length;Z++){if(typeof W[Z]==="string")W[Z]=G1.from(W[Z]);if(!G1.isBuffer(W[Z]))throw Error("Must be a Buffer")}if(!G)G=G1.alloc(k4.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,W.forEach(function(Z){G[X++]=Z.length,Z.copy(G,X,0,Z.length),X+=Z.length}),G.writeUInt16BE(X-Y-2,Y),k4.encode.bytes=X-Y,G};k4.encode.bytes=0;k4.decode=function(W,G){if(!G)G=0;let X=G,Y=W.readUInt16BE(G);G+=2;let Z=[];while(Y>0){let V=W[G++];if(--Y,Y<V)throw Error("Buffer overflow");Z.push(W.slice(G,G+V)),G+=V,Y-=V}return k4.decode.bytes=G-X,Z};k4.decode.bytes=0;k4.encodingLength=function(W){if(!Array.isArray(W))W=[W];let G=2;return W.forEach(function(X){if(typeof X==="string")G+=G1.byteLength(X)+1;else G+=X.length+1}),G};var _4=tl.null={};_4.encode=function(W,G,X){if(!G)G=G1.alloc(_4.encodingLength(W));if(!X)X=0;if(typeof W==="string")W=G1.from(W);if(!W)W=G1.alloc(0);let Y=X;X+=2;let Z=W.length;return W.copy(G,X,0,Z),X+=Z,G.writeUInt16BE(X-Y-2,Y),_4.encode.bytes=X-Y,G};_4.encode.bytes=0;_4.decode=function(W,G){if(!G)G=0;let X=G,Y=W.readUInt16BE(G);G+=2;let Z=W.slice(G,G+Y);return G+=Y,_4.decode.bytes=G-X,Z};_4.decode.bytes=0;_4.encodingLength=function(W){if(!W)return 2;return(G1.isBuffer(W)?W.length:G1.byteLength(W))+2};var y4=tl.hinfo={};y4.encode=function(W,G,X){if(!G)G=G1.alloc(y4.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,S1.encode(W.cpu,G,X),X+=S1.encode.bytes,S1.encode(W.os,G,X),X+=S1.encode.bytes,G.writeUInt16BE(X-Y-2,Y),y4.encode.bytes=X-Y,G};y4.encode.bytes=0;y4.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.cpu=S1.decode(W,G),G+=S1.decode.bytes,Y.os=S1.decode(W,G),G+=S1.decode.bytes,y4.decode.bytes=G-X,Y};y4.decode.bytes=0;y4.encodingLength=function(W){return S1.encodingLength(W.cpu)+S1.encodingLength(W.os)+2};var n5=tl.ptr={},al=tl.cname=n5,sl=tl.dname=n5;n5.encode=function(W,G,X){if(!G)G=G1.alloc(n5.encodingLength(W));if(!X)X=0;return y0.encode(W,G,X+2),G.writeUInt16BE(y0.encode.bytes,X),n5.encode.bytes=y0.encode.bytes+2,G};n5.encode.bytes=0;n5.decode=function(W,G){if(!G)G=0;let X=y0.decode(W,G+2);return n5.decode.bytes=y0.decode.bytes+2,X};n5.decode.bytes=0;n5.encodingLength=function(W){return y0.encodingLength(W)+2};var v4=tl.srv={};v4.encode=function(W,G,X){if(!G)G=G1.alloc(v4.encodingLength(W));if(!X)X=0;G.writeUInt16BE(W.priority||0,X+2),G.writeUInt16BE(W.weight||0,X+4),G.writeUInt16BE(W.port||0,X+6),y0.encode(W.target,G,X+8);let Y=y0.encode.bytes+6;return G.writeUInt16BE(Y,X),v4.encode.bytes=Y+2,G};v4.encode.bytes=0;v4.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G),Y={};return Y.priority=W.readUInt16BE(G+2),Y.weight=W.readUInt16BE(G+4),Y.port=W.readUInt16BE(G+6),Y.target=y0.decode(W,G+8),v4.decode.bytes=X+2,Y};v4.decode.bytes=0;v4.encodingLength=function(W){return 8+y0.encodingLength(W.target)};var Q5=tl.caa={};Q5.ISSUER_CRITICAL=128;Q5.encode=function(W,G,X){let Y=Q5.encodingLength(W);if(!G)G=G1.alloc(Q5.encodingLength(W));if(!X)X=0;if(W.issuerCritical)W.flags=Q5.ISSUER_CRITICAL;return G.writeUInt16BE(Y-2,X),X+=2,G.writeUInt8(W.flags||0,X),X+=1,S1.encode(W.tag,G,X),X+=S1.encode.bytes,G.write(W.value,X),X+=G1.byteLength(W.value),Q5.encode.bytes=Y,G};Q5.encode.bytes=0;Q5.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G);G+=2;let Y=G,Z={};return Z.flags=W.readUInt8(G),G+=1,Z.tag=S1.decode(W,G),G+=S1.decode.bytes,Z.value=W.toString("utf-8",G,Y+X),Z.issuerCritical=!!(Z.flags&Q5.ISSUER_CRITICAL),Q5.decode.bytes=X+2,Z};Q5.decode.bytes=0;Q5.encodingLength=function(W){return S1.encodingLength(W.tag)+S1.encodingLength(W.value)+2};var o6=tl.mx={};o6.encode=function(W,G,X){if(!G)G=G1.alloc(o6.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,G.writeUInt16BE(W.preference||0,X),X+=2,y0.encode(W.exchange,G,X),X+=y0.encode.bytes,G.writeUInt16BE(X-Y-2,Y),o6.encode.bytes=X-Y,G};o6.encode.bytes=0;o6.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.preference=W.readUInt16BE(G),G+=2,Y.exchange=y0.decode(W,G),G+=y0.decode.bytes,o6.decode.bytes=G-X,Y};o6.encodingLength=function(W){return 4+y0.encodingLength(W.exchange)};var g4=tl.a={};g4.encode=function(W,G,X){if(!G)G=G1.alloc(g4.encodingLength(W));if(!X)X=0;return G.writeUInt16BE(4,X),X+=2,jG.v4.encode(W,G,X),g4.encode.bytes=6,G};g4.encode.bytes=0;g4.decode=function(W,G){if(!G)G=0;G+=2;let X=jG.v4.decode(W,G);return g4.decode.bytes=6,X};g4.decode.bytes=0;g4.encodingLength=function(){return 6};var u4=tl.aaaa={};u4.encode=function(W,G,X){if(!G)G=G1.alloc(u4.encodingLength(W));if(!X)X=0;return G.writeUInt16BE(16,X),X+=2,jG.v6.encode(W,G,X),u4.encode.bytes=18,G};u4.encode.bytes=0;u4.decode=function(W,G){if(!G)G=0;G+=2;let X=jG.v6.decode(W,G);return u4.decode.bytes=18,X};u4.decode.bytes=0;u4.encodingLength=function(){return 18};var n9=tl.option={};n9.encode=function(W,G,X){if(!G)G=G1.alloc(n9.encodingLength(W));if(!X)X=0;let Y=X,Z=ej.toCode(W.code);if(G.writeUInt16BE(Z,X),X+=2,W.data)G.writeUInt16BE(W.data.length,X),X+=2,W.data.copy(G,X),X+=W.data.length;else switch(Z){case 8:let V=W.sourcePrefixLength||0,Q=W.family||jG.familyOf(W.ip),J=jG.encode(W.ip,G1.alloc),U=Math.ceil(V/8);G.writeUInt16BE(U+4,X),X+=2,G.writeUInt16BE(Q,X),X+=2,G.writeUInt8(V,X++),G.writeUInt8(W.scopePrefixLength||0,X++),J.copy(G,X,0,U),X+=U;break;case 11:if(W.timeout)G.writeUInt16BE(2,X),X+=2,G.writeUInt16BE(W.timeout,X),X+=2;else G.writeUInt16BE(0,X),X+=2;break;case 12:let q=W.length||0;G.writeUInt16BE(q,X),X+=2,G.fill(0,X,X+q),X+=q;break;case 14:let N=W.tags.length*2;G.writeUInt16BE(N,X),X+=2;for(let A of W.tags)G.writeUInt16BE(A,X),X+=2;break;default:throw Error(`Unknown roption code: ${W.code}`)}return n9.encode.bytes=X-Y,G};n9.encode.bytes=0;n9.decode=function(W,G){if(!G)G=0;let X={};X.code=W.readUInt16BE(G),X.type=ej.toString(X.code),G+=2;let Y=W.readUInt16BE(G);switch(G+=2,X.data=W.slice(G,G+Y),X.code){case 8:X.family=W.readUInt16BE(G),G+=2,X.sourcePrefixLength=W.readUInt8(G++),X.scopePrefixLength=W.readUInt8(G++);let Z=G1.alloc(X.family===1?4:16);W.copy(Z,0,G,G+Y-4),X.ip=jG.decode(Z);break;case 11:if(Y>0)X.timeout=W.readUInt16BE(G),G+=2;break;case 14:X.tags=[];for(let V=0;V<Y;V+=2)X.tags.push(W.readUInt16BE(G)),G+=2}return n9.decode.bytes=Y+4,X};n9.decode.bytes=0;n9.encodingLength=function(W){if(W.data)return W.data.length+4;switch(ej.toCode(W.code)){case 8:let X=W.sourcePrefixLength||0;return Math.ceil(X/8)+8;case 11:return typeof W.timeout==="number"?6:4;case 12:return W.length+4;case 14:return 4+W.tags.length*2}throw Error(`Unknown roption code: ${W.code}`)};var U5=tl.opt={};U5.encode=function(W,G,X){if(!G)G=G1.alloc(U5.encodingLength(W));if(!X)X=0;let Y=X,Z=BY(W,n9);return G.writeUInt16BE(Z,X),X=FQ(W,n9,G,X+2),U5.encode.bytes=X-Y,G};U5.encode.bytes=0;U5.decode=function(W,G){if(!G)G=0;let X=G,Y=[],Z=W.readUInt16BE(G);G+=2;let V=0;while(Z>0)Y[V++]=n9.decode(W,G),G+=n9.decode.bytes,Z-=n9.decode.bytes;return U5.decode.bytes=G-X,Y};U5.decode.bytes=0;U5.encodingLength=function(W){return 2+BY(W||[],n9)};var y9=tl.dnskey={};y9.PROTOCOL_DNSSEC=3;y9.ZONE_KEY=128;y9.SECURE_ENTRYPOINT=32768;y9.encode=function(W,G,X){if(!G)G=G1.alloc(y9.encodingLength(W));if(!X)X=0;let Y=X,Z=W.key;if(!G1.isBuffer(Z))throw Error("Key must be a Buffer");return X+=2,G.writeUInt16BE(W.flags,X),X+=2,G.writeUInt8(y9.PROTOCOL_DNSSEC,X),X+=1,G.writeUInt8(W.algorithm,X),X+=1,Z.copy(G,X,0,Z.length),X+=Z.length,y9.encode.bytes=X-Y,G.writeUInt16BE(y9.encode.bytes-2,Y),G};y9.encode.bytes=0;y9.decode=function(W,G){if(!G)G=0;let X=G;var Y={},Z=W.readUInt16BE(G);if(G+=2,Y.flags=W.readUInt16BE(G),G+=2,W.readUInt8(G)!==y9.PROTOCOL_DNSSEC)throw Error("Protocol must be 3");return G+=1,Y.algorithm=W.readUInt8(G),G+=1,Y.key=W.slice(G,X+Z+2),G+=Y.key.length,y9.decode.bytes=G-X,Y};y9.decode.bytes=0;y9.encodingLength=function(W){return 6+G1.byteLength(W.key)};var S7=tl.rrsig={};S7.encode=function(W,G,X){if(!G)G=G1.alloc(S7.encodingLength(W));if(!X)X=0;let Y=X,Z=W.signature;if(!G1.isBuffer(Z))throw Error("Signature must be a Buffer");return X+=2,G.writeUInt16BE(h4.toType(W.typeCovered),X),X+=2,G.writeUInt8(W.algorithm,X),X+=1,G.writeUInt8(W.labels,X),X+=1,G.writeUInt32BE(W.originalTTL,X),X+=4,G.writeUInt32BE(W.expiration,X),X+=4,G.writeUInt32BE(W.inception,X),X+=4,G.writeUInt16BE(W.keyTag,X),X+=2,y0.encode(W.signersName,G,X),X+=y0.encode.bytes,Z.copy(G,X,0,Z.length),X+=Z.length,S7.encode.bytes=X-Y,G.writeUInt16BE(S7.encode.bytes-2,Y),G};S7.encode.bytes=0;S7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},Z=W.readUInt16BE(G);return G+=2,Y.typeCovered=h4.toString(W.readUInt16BE(G)),G+=2,Y.algorithm=W.readUInt8(G),G+=1,Y.labels=W.readUInt8(G),G+=1,Y.originalTTL=W.readUInt32BE(G),G+=4,Y.expiration=W.readUInt32BE(G),G+=4,Y.inception=W.readUInt32BE(G),G+=4,Y.keyTag=W.readUInt16BE(G),G+=2,Y.signersName=y0.decode(W,G),G+=y0.decode.bytes,Y.signature=W.slice(G,X+Z+2),G+=Y.signature.length,S7.decode.bytes=G-X,Y};S7.decode.bytes=0;S7.encodingLength=function(W){return 20+y0.encodingLength(W.signersName)+G1.byteLength(W.signature)};var x7=tl.rp={};x7.encode=function(W,G,X){if(!G)G=G1.alloc(x7.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,y0.encode(W.mbox||".",G,X,{mail:!0}),X+=y0.encode.bytes,y0.encode(W.txt||".",G,X),X+=y0.encode.bytes,x7.encode.bytes=X-Y,G.writeUInt16BE(x7.encode.bytes-2,Y),G};x7.encode.bytes=0;x7.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.mbox=y0.decode(W,G,{mail:!0})||".",G+=y0.decode.bytes,Y.txt=y0.decode(W,G)||".",G+=y0.decode.bytes,x7.decode.bytes=G-X,Y};x7.decode.bytes=0;x7.encodingLength=function(W){return 2+y0.encodingLength(W.mbox||".")+y0.encodingLength(W.txt||".")};var n8={};n8.encode=function(W,G,X){if(!G)G=G1.alloc(n8.encodingLength(W));if(!X)X=0;let Y=X;var Z=[];for(var V=0;V<W.length;V++){var Q=h4.toType(W[V]);if(Z[Q>>8]===void 0)Z[Q>>8]=[];Z[Q>>8][Q>>3&31]|=1<<7-(Q&7)}for(V=0;V<Z.length;V++)if(Z[V]!==void 0){var J=G1.from(Z[V]);G.writeUInt8(V,X),X+=1,G.writeUInt8(J.length,X),X+=1,J.copy(G,X),X+=J.length}return n8.encode.bytes=X-Y,G};n8.encode.bytes=0;n8.decode=function(W,G,X){if(!G)G=0;let Y=G;var Z=[];while(G-Y<X){var V=W.readUInt8(G);G+=1;var Q=W.readUInt8(G);G+=1;for(var J=0;J<Q;J++){var U=W.readUInt8(G+J);for(var q=0;q<8;q++)if(U&1<<7-q){var N=h4.toString(V<<8|J<<3|q);Z.push(N)}}G+=Q}return n8.decode.bytes=G-Y,Z};n8.decode.bytes=0;n8.encodingLength=function(W){var G=[];for(var X=0;X<W.length;X++){var Y=h4.toType(W[X]);G[Y>>8]=Math.max(G[Y>>8]||0,Y&255)}var Z=0;for(X=0;X<G.length;X++)if(G[X]!==void 0)Z+=2+Math.ceil((G[X]+1)/8);return Z};var k7=tl.nsec={};k7.encode=function(W,G,X){if(!G)G=G1.alloc(k7.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,y0.encode(W.nextDomain,G,X),X+=y0.encode.bytes,n8.encode(W.rrtypes,G,X),X+=n8.encode.bytes,k7.encode.bytes=X-Y,G.writeUInt16BE(k7.encode.bytes-2,Y),G};k7.encode.bytes=0;k7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},Z=W.readUInt16BE(G);return G+=2,Y.nextDomain=y0.decode(W,G),G+=y0.decode.bytes,Y.rrtypes=n8.decode(W,G,Z-(G-X)),G+=n8.decode.bytes,k7.decode.bytes=G-X,Y};k7.decode.bytes=0;k7.encodingLength=function(W){return 2+y0.encodingLength(W.nextDomain)+n8.encodingLength(W.rrtypes)};var _7=tl.nsec3={};_7.encode=function(W,G,X){if(!G)G=G1.alloc(_7.encodingLength(W));if(!X)X=0;let Y=X,Z=W.salt;if(!G1.isBuffer(Z))throw Error("salt must be a Buffer");let V=W.nextDomain;if(!G1.isBuffer(V))throw Error("nextDomain must be a Buffer");return X+=2,G.writeUInt8(W.algorithm,X),X+=1,G.writeUInt8(W.flags,X),X+=1,G.writeUInt16BE(W.iterations,X),X+=2,G.writeUInt8(Z.length,X),X+=1,Z.copy(G,X,0,Z.length),X+=Z.length,G.writeUInt8(V.length,X),X+=1,V.copy(G,X,0,V.length),X+=V.length,n8.encode(W.rrtypes,G,X),X+=n8.encode.bytes,_7.encode.bytes=X-Y,G.writeUInt16BE(_7.encode.bytes-2,Y),G};_7.encode.bytes=0;_7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},Z=W.readUInt16BE(G);G+=2,Y.algorithm=W.readUInt8(G),G+=1,Y.flags=W.readUInt8(G),G+=1,Y.iterations=W.readUInt16BE(G),G+=2;let V=W.readUInt8(G);G+=1,Y.salt=W.slice(G,G+V),G+=V;let Q=W.readUInt8(G);return G+=1,Y.nextDomain=W.slice(G,G+Q),G+=Q,Y.rrtypes=n8.decode(W,G,Z-(G-X)),G+=n8.decode.bytes,_7.decode.bytes=G-X,Y};_7.decode.bytes=0;_7.encodingLength=function(W){return 8+W.salt.length+W.nextDomain.length+n8.encodingLength(W.rrtypes)};var y7=tl.ds={};y7.encode=function(W,G,X){if(!G)G=G1.alloc(y7.encodingLength(W));if(!X)X=0;let Y=X,Z=W.digest;if(!G1.isBuffer(Z))throw Error("Digest must be a Buffer");return X+=2,G.writeUInt16BE(W.keyTag,X),X+=2,G.writeUInt8(W.algorithm,X),X+=1,G.writeUInt8(W.digestType,X),X+=1,Z.copy(G,X,0,Z.length),X+=Z.length,y7.encode.bytes=X-Y,G.writeUInt16BE(y7.encode.bytes-2,Y),G};y7.encode.bytes=0;y7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},Z=W.readUInt16BE(G);return G+=2,Y.keyTag=W.readUInt16BE(G),G+=2,Y.algorithm=W.readUInt8(G),G+=1,Y.digestType=W.readUInt8(G),G+=1,Y.digest=W.slice(G,X+Z+2),G+=Y.digest.length,y7.decode.bytes=G-X,Y};y7.decode.bytes=0;y7.encodingLength=function(W){return 6+G1.byteLength(W.digest)};var J5=tl.sshfp={};J5.getFingerprintLengthForHashType=function(G){switch(G){case 1:return 20;case 2:return 32}};J5.encode=function(G,X,Y){if(!X)X=G1.alloc(J5.encodingLength(G));if(!Y)Y=0;let Z=Y;Y+=2,X[Y]=G.algorithm,Y+=1,X[Y]=G.hash,Y+=1;let V=G1.from(G.fingerprint.toUpperCase(),"hex");if(V.length!==J5.getFingerprintLengthForHashType(G.hash))throw Error("Invalid fingerprint length");return V.copy(X,Y),Y+=V.byteLength,J5.encode.bytes=Y-Z,X.writeUInt16BE(J5.encode.bytes-2,Z),X};J5.encode.bytes=0;J5.decode=function(G,X){if(!X)X=0;let Y=X,Z={};X+=2,Z.algorithm=G[X],X+=1,Z.hash=G[X],X+=1;let V=J5.getFingerprintLengthForHashType(Z.hash);return Z.fingerprint=G.slice(X,X+V).toString("hex").toUpperCase(),X+=V,J5.decode.bytes=X-Y,Z};J5.decode.bytes=0;J5.encodingLength=function(W){return 4+G1.from(W.fingerprint,"hex").byteLength};var v7=tl.naptr={};v7.encode=function(W,G,X){if(!G)G=G1.alloc(v7.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,G.writeUInt16BE(W.order||0,X),X+=2,G.writeUInt16BE(W.preference||0,X),X+=2,S1.encode(W.flags,G,X),X+=S1.encode.bytes,S1.encode(W.services,G,X),X+=S1.encode.bytes,S1.encode(W.regexp,G,X),X+=S1.encode.bytes,y0.encode(W.replacement,G,X),X+=y0.encode.bytes,v7.encode.bytes=X-Y,G.writeUInt16BE(v7.encode.bytes-2,Y),G};v7.encode.bytes=0;v7.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.order=W.readUInt16BE(G),G+=2,Y.preference=W.readUInt16BE(G),G+=2,Y.flags=S1.decode(W,G),G+=S1.decode.bytes,Y.services=S1.decode(W,G),G+=S1.decode.bytes,Y.regexp=S1.decode(W,G),G+=S1.decode.bytes,Y.replacement=y0.decode(W,G),G+=y0.decode.bytes,v7.decode.bytes=G-X,Y};v7.decode.bytes=0;v7.encodingLength=function(W){return S1.encodingLength(W.flags)+S1.encodingLength(W.services)+S1.encodingLength(W.regexp)+y0.encodingLength(W.replacement)+6};var g7=tl.tlsa={};g7.encode=function(W,G,X){if(!G)G=G1.alloc(g7.encodingLength(W));if(!X)X=0;let Y=X,Z=W.certificate;if(!G1.isBuffer(Z))throw Error("Certificate must be a Buffer");return X+=2,G.writeUInt8(W.usage,X),X+=1,G.writeUInt8(W.selector,X),X+=1,G.writeUInt8(W.matchingType,X),X+=1,Z.copy(G,X,0,Z.length),X+=Z.length,g7.encode.bytes=X-Y,G.writeUInt16BE(g7.encode.bytes-2,Y),G};g7.encode.bytes=0;g7.decode=function(W,G){if(!G)G=0;let X=G,Y={},Z=W.readUInt16BE(G);return G+=2,Y.usage=W.readUInt8(G),G+=1,Y.selector=W.readUInt8(G),G+=1,Y.matchingType=W.readUInt8(G),G+=1,Y.certificate=W.slice(G,X+Z+2),G+=Y.certificate.length,g7.decode.bytes=G-X,Y};g7.decode.bytes=0;g7.encodingLength=function(W){return 5+G1.byteLength(W.certificate)};var WO=tl.record=function(W){switch(W.toUpperCase()){case"A":return g4;case"PTR":return n5;case"CNAME":return al;case"DNAME":return sl;case"TXT":return k4;case"NULL":return _4;case"AAAA":return u4;case"SRV":return v4;case"HINFO":return y4;case"CAA":return Q5;case"NS":return S4;case"SOA":return x4;case"MX":return o6;case"OPT":return U5;case"DNSKEY":return y9;case"RRSIG":return S7;case"RP":return x7;case"NSEC":return k7;case"NSEC3":return _7;case"SSHFP":return J5;case"DS":return y7;case"NAPTR":return v7;case"TLSA":return g7}return F4},Y9=tl.answer={};Y9.encode=function(W,G,X){if(!G)G=G1.alloc(Y9.encodingLength(W));if(!X)X=0;let Y=X;if(y0.encode(W.name,G,X),X+=y0.encode.bytes,G.writeUInt16BE(h4.toType(W.type),X),W.type.toUpperCase()==="OPT"){if(W.name!==".")throw Error("OPT name must be root.");G.writeUInt16BE(W.udpPayloadSize||4096,X+2),G.writeUInt8(W.extendedRcode||0,X+4),G.writeUInt8(W.ednsVersion||0,X+5),G.writeUInt16BE(W.flags||0,X+6),X+=8,U5.encode(W.options||[],G,X),X+=U5.encode.bytes}else{let Z=EN.toClass(W.class===void 0?"IN":W.class);if(W.flush)Z|=32768;G.writeUInt16BE(Z,X+2),G.writeUInt32BE(W.ttl||0,X+4),X+=8;let V=WO(W.type);V.encode(W.data,G,X),X+=V.encode.bytes}return Y9.encode.bytes=X-Y,G};Y9.encode.bytes=0;Y9.decode=function(W,G){if(!G)G=0;let X={},Y=G;if(X.name=y0.decode(W,G),G+=y0.decode.bytes,X.type=h4.toString(W.readUInt16BE(G)),X.type==="OPT")X.udpPayloadSize=W.readUInt16BE(G+2),X.extendedRcode=W.readUInt8(G+4),X.ednsVersion=W.readUInt8(G+5),X.flags=W.readUInt16BE(G+6),X.flag_do=(X.flags>>15&1)===1,X.options=U5.decode(W,G+8),G+=8+U5.decode.bytes;else{let Z=W.readUInt16BE(G+2);X.ttl=W.readUInt32BE(G+4),X.class=EN.toString(Z&-32769),X.flush=!!(Z&32768);let V=WO(X.type);X.data=V.decode(W,G+8),G+=8+V.decode.bytes}return Y9.decode.bytes=G-Y,X};Y9.decode.bytes=0;Y9.encodingLength=function(W){let G=W.data!==null&&W.data!==void 0?W.data:W.options;return y0.encodingLength(W.name)+8+WO(W.type).encodingLength(G)};var i5=tl.question={};i5.encode=function(W,G,X){if(!G)G=G1.alloc(i5.encodingLength(W));if(!X)X=0;let Y=X;return y0.encode(W.name,G,X),X+=y0.encode.bytes,G.writeUInt16BE(h4.toType(W.type),X),X+=2,G.writeUInt16BE(EN.toClass(W.class===void 0?"IN":W.class),X),X+=2,i5.encode.bytes=X-Y,W};i5.encode.bytes=0;i5.decode=function(W,G){if(!G)G=0;let X=G,Y={};if(Y.name=y0.decode(W,G),G+=y0.decode.bytes,Y.type=h4.toString(W.readUInt16BE(G)),G+=2,Y.class=EN.toString(W.readUInt16BE(G)),G+=2,!!(Y.class&32768))Y.class&=-32769;return i5.decode.bytes=G-X,Y};i5.decode.bytes=0;i5.encodingLength=function(W){return y0.encodingLength(W.name)+4};tl.AUTHORITATIVE_ANSWER=1024;tl.TRUNCATED_RESPONSE=512;tl.RECURSION_DESIRED=256;tl.RECURSION_AVAILABLE=128;tl.AUTHENTIC_DATA=32;tl.CHECKING_DISABLED=16;tl.DNSSEC_OK=32768;tl.encode=function(W,G,X){let Y=!G;if(Y)G=G1.alloc(tl.encodingLength(W));if(!X)X=0;let Z=X;if(!W.questions)W.questions=[];if(!W.answers)W.answers=[];if(!W.authorities)W.authorities=[];if(!W.additionals)W.additionals=[];if(r5.encode(W,G,X),X+=r5.encode.bytes,X=FQ(W.questions,i5,G,X),X=FQ(W.answers,Y9,G,X),X=FQ(W.authorities,Y9,G,X),X=FQ(W.additionals,Y9,G,X),tl.encode.bytes=X-Z,Y&&tl.encode.bytes!==G.length)return G.slice(0,tl.encode.bytes);return G};tl.encode.bytes=0;tl.decode=function(W,G){if(!G)G=0;let X=G,Y=r5.decode(W,G);return G+=r5.decode.bytes,G=BN(Y.questions,i5,W,G),G=BN(Y.answers,Y9,W,G),G=BN(Y.authorities,Y9,W,G),G=BN(Y.additionals,Y9,W,G),tl.decode.bytes=G-X,Y};tl.decode.bytes=0;tl.encodingLength=function(W){return r5.encodingLength(W)+BY(W.questions||[],i5)+BY(W.answers||[],Y9)+BY(W.authorities||[],Y9)+BY(W.additionals||[],Y9)};tl.streamEncode=function(W){let G=tl.encode(W),X=G1.alloc(2);X.writeUInt16BE(G.byteLength);let Y=G1.concat([X,G]);return tl.streamEncode.bytes=Y.byteLength,Y};tl.streamEncode.bytes=0;tl.streamDecode=function(W){let G=W.readUInt16BE(0);if(W.byteLength<G+2)return null;let X=tl.decode(W.slice(2));return tl.streamDecode.bytes=tl.decode.bytes,X};tl.streamDecode.bytes=0;function BY(W,G){let X=0;for(let Y=0;Y<W.length;Y++)X+=G.encodingLength(W[Y]);return X}function FQ(W,G,X,Y){for(let Z=0;Z<W.length;Z++)G.encode(W[Z],X,Y),Y+=G.encode.bytes;return Y}function BN(W,G,X,Y){for(let Z=0;Z<W.length;Z++)W[Z]=G.decode(X,Y),Y+=G.decode.bytes;return Y}});var _$=Z1((AH0,k$)=>{var x$=Ad;process.nextTick(Hd,42);k$.exports=Jd;function Jd(W){var G=Y;return X;function X(Z){G(Z||qd)}function Y(Z){var V=[Z];G=Q,W(J);function Q(U){V.push(U)}function J(U){var q=arguments;G=Ud(U)?Y:N;while(V.length)N(V.shift());function N(A){x$(Nd,A,q)}}}}function Ud(W){return Object.prototype.toString.call(W)==="[object Error]"}function qd(){}function Nd(W,G){W.apply(null,G)}function Hd(W){if(W===42)x$=process.nextTick}function Ad(W,G,X){process.nextTick(function(){W(G,X)})}});var g$=Z1((zH0,v$)=>{var GO=S$(),zd=S8("dgram"),Id=_$(),wd=S8("events"),YO=S8("os"),XO=function(){};v$.exports=function(W){if(!W)W={};var G=new wd.EventEmitter,X=typeof W.port==="number"?W.port:5353,Y=W.type||"udp4",Z=W.ip||W.host||(Y==="udp4"?"224.0.0.251":null),V={address:Z,port:X},Q={},J=!1,U=null;if(Y==="udp6"&&(!Z||!W.interface))throw Error("For IPv6 multicast you must specify `ip` and `interface`");var q=W.socket||zd.createSocket({type:Y,reuseAddr:W.reuseAddr!==!1,toString:function(){return Y}});q.on("error",function(A){if(A.code==="EACCES"||A.code==="EADDRINUSE")G.emit("error",A);else G.emit("warning",A)}),q.on("message",function(A,H){try{A=GO.decode(A)}catch(I){G.emit("warning",I);return}if(G.emit("packet",A,H),A.type==="query")G.emit("query",A,H);if(A.type==="response")G.emit("response",A,H)}),q.on("listening",function(){if(!X)X=V.port=q.address().port;if(W.multicast!==!1)G.update(),U=setInterval(G.update,5000),q.setMulticastTTL(W.ttl||255),q.setMulticastLoopback(W.loopback!==!1)});var N=Id(function(A){if(!X||W.bind===!1)return A(null);q.once("error",A),q.bind(X,W.bind||W.interface,function(){q.removeListener("error",A),A(null)})});return N(function(A){if(A)return G.emit("error",A);G.emit("ready")}),G.send=function(A,H,I){if(typeof H==="function")return G.send(A,null,H);if(!I)I=XO;if(!H)H=V;else if(!H.host&&!H.address)H.address=V.address;N(w);function w(C){if(J)return I();if(C)return I(C);var D=GO.encode(A);q.send(D,0,D.length,H.port,H.address||H.host,I)}},G.response=G.respond=function(A,H,I){if(Array.isArray(A))A={answers:A};A.type="response",A.flags=(A.flags||0)|GO.AUTHORITATIVE_ANSWER,G.send(A,H,I)},G.query=function(A,H,I,w){if(typeof H==="function")return G.query(A,null,null,H);if(typeof H==="object"&&H&&H.port)return G.query(A,null,H,I);if(typeof I==="function")return G.query(A,H,null,I);if(!w)w=XO;if(typeof A==="string")A=[{name:A,type:H||"ANY"}];if(Array.isArray(A))A={type:"query",questions:A};A.type="query",G.send(A,I,w)},G.destroy=function(A){if(!A)A=XO;if(J)return process.nextTick(A);J=!0,clearInterval(U);for(var H in Q)try{q.dropMembership(Z,H)}catch(I){}Q={},q.close(A)},G.update=function(){var A=W.interface?[].concat(W.interface):Od(),H=!1;for(var I=0;I<A.length;I++){var w=A[I];if(Q[w])continue;try{q.addMembership(Z,w),Q[w]=!0,H=!0}catch(C){G.emit("warning",C)}}if(H){if(q.setMulticastInterface)try{q.setMulticastInterface(W.interface||jd())}catch(C){G.emit("warning",C)}G.emit("networkInterface")}},G};function jd(){var W=YO.networkInterfaces(),G=Object.keys(W);for(var X=0;X<G.length;X++){var Y=W[G[X]];for(var Z=0;Z<Y.length;Z++){var V=Y[Z];if(y$(V.family)&&!V.internal){if(YO.platform()==="darwin"&&G[X]==="en0")return V.address;return"0.0.0.0"}}}return"127.0.0.1"}function Od(){var W=YO.networkInterfaces(),G=Object.keys(W),X=[];for(var Y=0;Y<G.length;Y++){var Z=W[G[Y]];for(var V=0;V<Z.length;V++){var Q=Z[V];if(y$(Q.family)){X.push(Q.address);break}}}return X}function y$(W){return W===4||W==="IPv4"}});import{Database as qt}from"bun:sqlite";import{mkdirSync as Nt}from"fs";import{dirname as Ht}from"path";function JC(W){let G=W.length,X=0,Y=0;while(Y<G){let Z=W.charCodeAt(Y++);if((Z&4294967168)===0){X++;continue}else if((Z&4294965248)===0)X+=2;else{if(Z>=55296&&Z<=56319){if(Y<G){let V=W.charCodeAt(Y);if((V&64512)===56320)++Y,Z=((Z&1023)<<10)+(V&1023)+65536}}if((Z&4294901760)===0)X+=3;else X+=4}}return X}function g_(W,G,X){let Y=W.length,Z=X,V=0;while(V<Y){let Q=W.charCodeAt(V++);if((Q&4294967168)===0){G[Z++]=Q;continue}else if((Q&4294965248)===0)G[Z++]=Q>>6&31|192;else{if(Q>=55296&&Q<=56319){if(V<Y){let J=W.charCodeAt(V);if((J&64512)===56320)++V,Q=((Q&1023)<<10)+(J&1023)+65536}}if((Q&4294901760)===0)G[Z++]=Q>>12&15|224,G[Z++]=Q>>6&63|128;else G[Z++]=Q>>18&7|240,G[Z++]=Q>>12&63|128,G[Z++]=Q>>6&63|128}G[Z++]=Q&63|128}}var u_=new TextEncoder,h_=50;function b_(W,G,X){u_.encodeInto(W,G.subarray(X))}function UC(W,G,X){if(W.length>h_)b_(W,G,X);else g_(W,G,X)}var m_=4096;function NA(W,G,X){let Y=G,Z=Y+X,V=[],Q="";while(Y<Z){let J=W[Y++];if((J&128)===0)V.push(J);else if((J&224)===192){let U=W[Y++]&63;V.push((J&31)<<6|U)}else if((J&240)===224){let U=W[Y++]&63,q=W[Y++]&63;V.push((J&31)<<12|U<<6|q)}else if((J&248)===240){let U=W[Y++]&63,q=W[Y++]&63,N=W[Y++]&63,A=(J&7)<<18|U<<12|q<<6|N;if(A>65535)A-=65536,V.push(A>>>10&1023|55296),A=56320|A&1023;V.push(A)}else V.push(J);if(V.length>=m_)Q+=String.fromCharCode(...V),V.length=0}if(V.length>0)Q+=String.fromCharCode(...V);return Q}var f_=new TextDecoder,c_=200;function p_(W,G,X){let Y=W.subarray(G,G+X);return f_.decode(Y)}function qC(W,G,X){if(X>c_)return p_(W,G,X);else return NA(W,G,X)}class pG{type;data;constructor(W,G){this.type=W,this.data=G}}class $9 extends Error{constructor(W){super(W);let G=Object.create($9.prototype);Object.setPrototypeOf(this,G),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:$9.name})}}var lG=4294967295;function NC(W,G,X){let Y=X/4294967296,Z=X;W.setUint32(G,Y),W.setUint32(G+4,Z)}function _J(W,G,X){let Y=Math.floor(X/4294967296),Z=X;W.setUint32(G,Y),W.setUint32(G+4,Z)}function yJ(W,G){let X=W.getInt32(G),Y=W.getUint32(G+4);return X*4294967296+Y}function HC(W,G){let X=W.getUint32(G),Y=W.getUint32(G+4);return X*4294967296+Y}var l_=-1,d_=4294967295,o_=17179869183;function n_({sec:W,nsec:G}){if(W>=0&&G>=0&&W<=o_)if(G===0&&W<=d_){let X=new Uint8Array(4);return new DataView(X.buffer).setUint32(0,W),X}else{let X=W/4294967296,Y=W&4294967295,Z=new Uint8Array(8),V=new DataView(Z.buffer);return V.setUint32(0,G<<2|X&3),V.setUint32(4,Y),Z}else{let X=new Uint8Array(12),Y=new DataView(X.buffer);return Y.setUint32(0,G),_J(Y,4,W),X}}function i_(W){let G=W.getTime(),X=Math.floor(G/1000),Y=(G-X*1000)*1e6,Z=Math.floor(Y/1e9);return{sec:X+Z,nsec:Y-Z*1e9}}function r_(W){if(W instanceof Date){let G=i_(W);return n_(G)}else return null}function a_(W){let G=new DataView(W.buffer,W.byteOffset,W.byteLength);switch(W.byteLength){case 4:{let X=G.getUint32(0),Y=0;return{sec:X,nsec:0}}case 8:{let X=G.getUint32(0),Y=G.getUint32(4),Z=(X&3)*4294967296+Y,V=X>>>2;return{sec:Z,nsec:V}}case 12:{let X=yJ(G,4),Y=G.getUint32(0);return{sec:X,nsec:Y}}default:throw new $9(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${W.length}`)}}function s_(W){let G=a_(W);return new Date(G.sec*1000+G.nsec/1e6)}var AC={type:l_,encode:r_,decode:s_};class dG{static defaultCodec=new dG;__brand;builtInEncoders=[];builtInDecoders=[];encoders=[];decoders=[];constructor(){this.register(AC)}register({type:W,encode:G,decode:X}){if(W>=0)this.encoders[W]=G,this.decoders[W]=X;else{let Y=-1-W;this.builtInEncoders[Y]=G,this.builtInDecoders[Y]=X}}tryToEncode(W,G){for(let X=0;X<this.builtInEncoders.length;X++){let Y=this.builtInEncoders[X];if(Y!=null){let Z=Y(W,G);if(Z!=null){let V=-1-X;return new pG(V,Z)}}}for(let X=0;X<this.encoders.length;X++){let Y=this.encoders[X];if(Y!=null){let Z=Y(W,G);if(Z!=null)return new pG(X,Z)}}if(W instanceof pG)return W;return null}decode(W,G,X){let Y=G<0?this.builtInDecoders[-1-G]:this.decoders[G];if(Y)return Y(W,G,X);else return new pG(G,W)}}function t_(W){return W instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&W instanceof SharedArrayBuffer}function UZ(W){if(W instanceof Uint8Array)return W;else if(ArrayBuffer.isView(W))return new Uint8Array(W.buffer,W.byteOffset,W.byteLength);else if(t_(W))return new Uint8Array(W);else return Uint8Array.from(W)}var e_=100,Wy=2048;class vJ{extensionCodec;context;useBigInt64;maxDepth;initialBufferSize;sortKeys;forceFloat32;ignoreUndefined;forceIntegerToFloat;pos;view;bytes;entered=!1;constructor(W){this.extensionCodec=W?.extensionCodec??dG.defaultCodec,this.context=W?.context,this.useBigInt64=W?.useBigInt64??!1,this.maxDepth=W?.maxDepth??e_,this.initialBufferSize=W?.initialBufferSize??Wy,this.sortKeys=W?.sortKeys??!1,this.forceFloat32=W?.forceFloat32??!1,this.ignoreUndefined=W?.ignoreUndefined??!1,this.forceIntegerToFloat=W?.forceIntegerToFloat??!1,this.pos=0,this.view=new DataView(new ArrayBuffer(this.initialBufferSize)),this.bytes=new Uint8Array(this.view.buffer)}clone(){return new vJ({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,maxDepth:this.maxDepth,initialBufferSize:this.initialBufferSize,sortKeys:this.sortKeys,forceFloat32:this.forceFloat32,ignoreUndefined:this.ignoreUndefined,forceIntegerToFloat:this.forceIntegerToFloat})}reinitializeState(){this.pos=0}encodeSharedRef(W){if(this.entered)return this.clone().encodeSharedRef(W);try{return this.entered=!0,this.reinitializeState(),this.doEncode(W,1),this.bytes.subarray(0,this.pos)}finally{this.entered=!1}}encode(W){if(this.entered)return this.clone().encode(W);try{return this.entered=!0,this.reinitializeState(),this.doEncode(W,1),this.bytes.slice(0,this.pos)}finally{this.entered=!1}}doEncode(W,G){if(G>this.maxDepth)throw Error(`Too deep objects in depth ${G}`);if(W==null)this.encodeNil();else if(typeof W==="boolean")this.encodeBoolean(W);else if(typeof W==="number")if(!this.forceIntegerToFloat)this.encodeNumber(W);else this.encodeNumberAsFloat(W);else if(typeof W==="string")this.encodeString(W);else if(this.useBigInt64&&typeof W==="bigint")this.encodeBigInt64(W);else this.encodeObject(W,G)}ensureBufferSizeToWrite(W){let G=this.pos+W;if(this.view.byteLength<G)this.resizeBuffer(G*2)}resizeBuffer(W){let G=new ArrayBuffer(W),X=new Uint8Array(G),Y=new DataView(G);X.set(this.bytes),this.view=Y,this.bytes=X}encodeNil(){this.writeU8(192)}encodeBoolean(W){if(W===!1)this.writeU8(194);else this.writeU8(195)}encodeNumber(W){if(!this.forceIntegerToFloat&&Number.isSafeInteger(W))if(W>=0)if(W<128)this.writeU8(W);else if(W<256)this.writeU8(204),this.writeU8(W);else if(W<65536)this.writeU8(205),this.writeU16(W);else if(W<4294967296)this.writeU8(206),this.writeU32(W);else if(!this.useBigInt64)this.writeU8(207),this.writeU64(W);else this.encodeNumberAsFloat(W);else if(W>=-32)this.writeU8(224|W+32);else if(W>=-128)this.writeU8(208),this.writeI8(W);else if(W>=-32768)this.writeU8(209),this.writeI16(W);else if(W>=-2147483648)this.writeU8(210),this.writeI32(W);else if(!this.useBigInt64)this.writeU8(211),this.writeI64(W);else this.encodeNumberAsFloat(W);else this.encodeNumberAsFloat(W)}encodeNumberAsFloat(W){if(this.forceFloat32)this.writeU8(202),this.writeF32(W);else this.writeU8(203),this.writeF64(W)}encodeBigInt64(W){if(W>=BigInt(0))this.writeU8(207),this.writeBigUint64(W);else this.writeU8(211),this.writeBigInt64(W)}writeStringHeader(W){if(W<32)this.writeU8(160+W);else if(W<256)this.writeU8(217),this.writeU8(W);else if(W<65536)this.writeU8(218),this.writeU16(W);else if(W<4294967296)this.writeU8(219),this.writeU32(W);else throw Error(`Too long string: ${W} bytes in UTF-8`)}encodeString(W){let X=JC(W);this.ensureBufferSizeToWrite(5+X),this.writeStringHeader(X),UC(W,this.bytes,this.pos),this.pos+=X}encodeObject(W,G){let X=this.extensionCodec.tryToEncode(W,this.context);if(X!=null)this.encodeExtension(X);else if(Array.isArray(W))this.encodeArray(W,G);else if(ArrayBuffer.isView(W))this.encodeBinary(W);else if(typeof W==="object")this.encodeMap(W,G);else throw Error(`Unrecognized object: ${Object.prototype.toString.apply(W)}`)}encodeBinary(W){let G=W.byteLength;if(G<256)this.writeU8(196),this.writeU8(G);else if(G<65536)this.writeU8(197),this.writeU16(G);else if(G<4294967296)this.writeU8(198),this.writeU32(G);else throw Error(`Too large binary: ${G}`);let X=UZ(W);this.writeU8a(X)}encodeArray(W,G){let X=W.length;if(X<16)this.writeU8(144+X);else if(X<65536)this.writeU8(220),this.writeU16(X);else if(X<4294967296)this.writeU8(221),this.writeU32(X);else throw Error(`Too large array: ${X}`);for(let Y of W)this.doEncode(Y,G+1)}countWithoutUndefined(W,G){let X=0;for(let Y of G)if(W[Y]!==void 0)X++;return X}encodeMap(W,G){let X=Object.keys(W);if(this.sortKeys)X.sort();let Y=this.ignoreUndefined?this.countWithoutUndefined(W,X):X.length;if(Y<16)this.writeU8(128+Y);else if(Y<65536)this.writeU8(222),this.writeU16(Y);else if(Y<4294967296)this.writeU8(223),this.writeU32(Y);else throw Error(`Too large map object: ${Y}`);for(let Z of X){let V=W[Z];if(!(this.ignoreUndefined&&V===void 0))this.encodeString(Z),this.doEncode(V,G+1)}}encodeExtension(W){if(typeof W.data==="function"){let X=W.data(this.pos+6),Y=X.length;if(Y>=4294967296)throw Error(`Too large extension object: ${Y}`);this.writeU8(201),this.writeU32(Y),this.writeI8(W.type),this.writeU8a(X);return}let G=W.data.length;if(G===1)this.writeU8(212);else if(G===2)this.writeU8(213);else if(G===4)this.writeU8(214);else if(G===8)this.writeU8(215);else if(G===16)this.writeU8(216);else if(G<256)this.writeU8(199),this.writeU8(G);else if(G<65536)this.writeU8(200),this.writeU16(G);else if(G<4294967296)this.writeU8(201),this.writeU32(G);else throw Error(`Too large extension object: ${G}`);this.writeI8(W.type),this.writeU8a(W.data)}writeU8(W){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,W),this.pos++}writeU8a(W){let G=W.length;this.ensureBufferSizeToWrite(G),this.bytes.set(W,this.pos),this.pos+=G}writeI8(W){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,W),this.pos++}writeU16(W){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,W),this.pos+=2}writeI16(W){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,W),this.pos+=2}writeU32(W){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,W),this.pos+=4}writeI32(W){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,W),this.pos+=4}writeF32(W){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,W),this.pos+=4}writeF64(W){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,W),this.pos+=8}writeU64(W){this.ensureBufferSizeToWrite(8),NC(this.view,this.pos,W),this.pos+=8}writeI64(W){this.ensureBufferSizeToWrite(8),_J(this.view,this.pos,W),this.pos+=8}writeBigUint64(W){this.ensureBufferSizeToWrite(8),this.view.setBigUint64(this.pos,W),this.pos+=8}writeBigInt64(W){this.ensureBufferSizeToWrite(8),this.view.setBigInt64(this.pos,W),this.pos+=8}}function qZ(W,G){return new vJ(G).encodeSharedRef(W)}function gJ(W){return`${W<0?"-":""}0x${Math.abs(W).toString(16).padStart(2,"0")}`}var Gy=16,Xy=16;class HA{hit=0;miss=0;caches;maxKeyLength;maxLengthPerKey;constructor(W=Gy,G=Xy){this.maxKeyLength=W,this.maxLengthPerKey=G,this.caches=[];for(let X=0;X<this.maxKeyLength;X++)this.caches.push([])}canBeCached(W){return W>0&&W<=this.maxKeyLength}find(W,G,X){let Y=this.caches[X-1];W:for(let Z of Y){let V=Z.bytes;for(let Q=0;Q<X;Q++)if(V[Q]!==W[G+Q])continue W;return Z.str}return null}store(W,G){let X=this.caches[W.length-1],Y={bytes:W,str:G};if(X.length>=this.maxLengthPerKey)X[Math.random()*X.length|0]=Y;else X.push(Y)}decode(W,G,X){let Y=this.find(W,G,X);if(Y!=null)return this.hit++,Y;this.miss++;let Z=NA(W,G,X),V=Uint8Array.prototype.slice.call(W,G,G+X);return this.store(V,Z),Z}}var AA="array",HZ="map_key",IC="map_value",Yy=(W)=>{if(typeof W==="string"||typeof W==="number")return W;throw new $9("The type of key must be string or number but "+typeof W)};class wC{stack=[];stackHeadPosition=-1;get length(){return this.stackHeadPosition+1}top(){return this.stack[this.stackHeadPosition]}pushArrayState(W){let G=this.getUninitializedStateFromPool();G.type=AA,G.position=0,G.size=W,G.array=Array(W)}pushMapState(W){let G=this.getUninitializedStateFromPool();G.type=HZ,G.readCount=0,G.size=W,G.map={}}getUninitializedStateFromPool(){if(this.stackHeadPosition++,this.stackHeadPosition===this.stack.length){let W={type:void 0,size:0,array:void 0,position:0,readCount:0,map:void 0,key:null};this.stack.push(W)}return this.stack[this.stackHeadPosition]}release(W){if(this.stack[this.stackHeadPosition]!==W)throw Error("Invalid stack state. Released state is not on top of the stack.");if(W.type===AA){let X=W;X.size=0,X.array=void 0,X.position=0,X.type=void 0}if(W.type===HZ||W.type===IC){let X=W;X.size=0,X.map=void 0,X.readCount=0,X.type=void 0}this.stackHeadPosition--}reset(){this.stack.length=0,this.stackHeadPosition=-1}}var NZ=-1,zA=new DataView(new ArrayBuffer(0)),Zy=new Uint8Array(zA.buffer);try{zA.getInt8(0)}catch(W){if(!(W instanceof RangeError))throw Error("This module is not supported in the current JavaScript engine because DataView does not throw RangeError on out-of-bounds access")}var zC=RangeError("Insufficient data"),Vy=new HA;class uJ{extensionCodec;context;useBigInt64;rawStrings;maxStrLength;maxBinLength;maxArrayLength;maxMapLength;maxExtLength;keyDecoder;mapKeyConverter;totalPos=0;pos=0;view=zA;bytes=Zy;headByte=NZ;stack=new wC;entered=!1;constructor(W){this.extensionCodec=W?.extensionCodec??dG.defaultCodec,this.context=W?.context,this.useBigInt64=W?.useBigInt64??!1,this.rawStrings=W?.rawStrings??!1,this.maxStrLength=W?.maxStrLength??lG,this.maxBinLength=W?.maxBinLength??lG,this.maxArrayLength=W?.maxArrayLength??lG,this.maxMapLength=W?.maxMapLength??lG,this.maxExtLength=W?.maxExtLength??lG,this.keyDecoder=W?.keyDecoder!==void 0?W.keyDecoder:Vy,this.mapKeyConverter=W?.mapKeyConverter??Yy}clone(){return new uJ({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,rawStrings:this.rawStrings,maxStrLength:this.maxStrLength,maxBinLength:this.maxBinLength,maxArrayLength:this.maxArrayLength,maxMapLength:this.maxMapLength,maxExtLength:this.maxExtLength,keyDecoder:this.keyDecoder})}reinitializeState(){this.totalPos=0,this.headByte=NZ,this.stack.reset()}setBuffer(W){let G=UZ(W);this.bytes=G,this.view=new DataView(G.buffer,G.byteOffset,G.byteLength),this.pos=0}appendBuffer(W){if(this.headByte===NZ&&!this.hasRemaining(1))this.setBuffer(W);else{let G=this.bytes.subarray(this.pos),X=UZ(W),Y=new Uint8Array(G.length+X.length);Y.set(G),Y.set(X,G.length),this.setBuffer(Y)}}hasRemaining(W){return this.view.byteLength-this.pos>=W}createExtraByteError(W){let{view:G,pos:X}=this;return RangeError(`Extra ${G.byteLength-X} of ${G.byteLength} byte(s) found at buffer[${W}]`)}decode(W){if(this.entered)return this.clone().decode(W);try{this.entered=!0,this.reinitializeState(),this.setBuffer(W);let G=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return G}finally{this.entered=!1}}*decodeMulti(W){if(this.entered){yield*this.clone().decodeMulti(W);return}try{this.entered=!0,this.reinitializeState(),this.setBuffer(W);while(this.hasRemaining(1))yield this.doDecodeSync()}finally{this.entered=!1}}async decodeAsync(W){if(this.entered)return this.clone().decodeAsync(W);try{this.entered=!0;let G=!1,X;for await(let Q of W){if(G)throw this.entered=!1,this.createExtraByteError(this.totalPos);this.appendBuffer(Q);try{X=this.doDecodeSync(),G=!0}catch(J){if(!(J instanceof RangeError))throw J}this.totalPos+=this.pos}if(G){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return X}let{headByte:Y,pos:Z,totalPos:V}=this;throw RangeError(`Insufficient data in parsing ${gJ(Y)} at ${V} (${Z} in the current buffer)`)}finally{this.entered=!1}}decodeArrayStream(W){return this.decodeMultiAsync(W,!0)}decodeStream(W){return this.decodeMultiAsync(W,!1)}async*decodeMultiAsync(W,G){if(this.entered){yield*this.clone().decodeMultiAsync(W,G);return}try{this.entered=!0;let X=G,Y=-1;for await(let Z of W){if(G&&Y===0)throw this.createExtraByteError(this.totalPos);if(this.appendBuffer(Z),X)Y=this.readArraySize(),X=!1,this.complete();try{while(!0)if(yield this.doDecodeSync(),--Y===0)break}catch(V){if(!(V instanceof RangeError))throw V}this.totalPos+=this.pos}}finally{this.entered=!1}}doDecodeSync(){W:while(!0){let W=this.readHeadByte(),G;if(W>=224)G=W-256;else if(W<192)if(W<128)G=W;else if(W<144){let Y=W-128;if(Y!==0){this.pushMapState(Y),this.complete();continue W}else G={}}else if(W<160){let Y=W-144;if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else G=[]}else{let Y=W-160;G=this.decodeString(Y,0)}else if(W===192)G=null;else if(W===194)G=!1;else if(W===195)G=!0;else if(W===202)G=this.readF32();else if(W===203)G=this.readF64();else if(W===204)G=this.readU8();else if(W===205)G=this.readU16();else if(W===206)G=this.readU32();else if(W===207)if(this.useBigInt64)G=this.readU64AsBigInt();else G=this.readU64();else if(W===208)G=this.readI8();else if(W===209)G=this.readI16();else if(W===210)G=this.readI32();else if(W===211)if(this.useBigInt64)G=this.readI64AsBigInt();else G=this.readI64();else if(W===217){let Y=this.lookU8();G=this.decodeString(Y,1)}else if(W===218){let Y=this.lookU16();G=this.decodeString(Y,2)}else if(W===219){let Y=this.lookU32();G=this.decodeString(Y,4)}else if(W===220){let Y=this.readU16();if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else G=[]}else if(W===221){let Y=this.readU32();if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else G=[]}else if(W===222){let Y=this.readU16();if(Y!==0){this.pushMapState(Y),this.complete();continue W}else G={}}else if(W===223){let Y=this.readU32();if(Y!==0){this.pushMapState(Y),this.complete();continue W}else G={}}else if(W===196){let Y=this.lookU8();G=this.decodeBinary(Y,1)}else if(W===197){let Y=this.lookU16();G=this.decodeBinary(Y,2)}else if(W===198){let Y=this.lookU32();G=this.decodeBinary(Y,4)}else if(W===212)G=this.decodeExtension(1,0);else if(W===213)G=this.decodeExtension(2,0);else if(W===214)G=this.decodeExtension(4,0);else if(W===215)G=this.decodeExtension(8,0);else if(W===216)G=this.decodeExtension(16,0);else if(W===199){let Y=this.lookU8();G=this.decodeExtension(Y,1)}else if(W===200){let Y=this.lookU16();G=this.decodeExtension(Y,2)}else if(W===201){let Y=this.lookU32();G=this.decodeExtension(Y,4)}else throw new $9(`Unrecognized type byte: ${gJ(W)}`);this.complete();let X=this.stack;while(X.length>0){let Y=X.top();if(Y.type===AA)if(Y.array[Y.position]=G,Y.position++,Y.position===Y.size)G=Y.array,X.release(Y);else continue W;else if(Y.type===HZ){if(G==="__proto__")throw new $9("The key __proto__ is not allowed");Y.key=this.mapKeyConverter(G),Y.type=IC;continue W}else if(Y.map[Y.key]=G,Y.readCount++,Y.readCount===Y.size)G=Y.map,X.release(Y);else{Y.key=null,Y.type=HZ;continue W}}return G}}readHeadByte(){if(this.headByte===NZ)this.headByte=this.readU8();return this.headByte}complete(){this.headByte=NZ}readArraySize(){let W=this.readHeadByte();switch(W){case 220:return this.readU16();case 221:return this.readU32();default:if(W<160)return W-144;else throw new $9(`Unrecognized array type byte: ${gJ(W)}`)}}pushMapState(W){if(W>this.maxMapLength)throw new $9(`Max length exceeded: map length (${W}) > maxMapLengthLength (${this.maxMapLength})`);this.stack.pushMapState(W)}pushArrayState(W){if(W>this.maxArrayLength)throw new $9(`Max length exceeded: array length (${W}) > maxArrayLength (${this.maxArrayLength})`);this.stack.pushArrayState(W)}decodeString(W,G){if(!this.rawStrings||this.stateIsMapKey())return this.decodeUtf8String(W,G);return this.decodeBinary(W,G)}decodeUtf8String(W,G){if(W>this.maxStrLength)throw new $9(`Max length exceeded: UTF-8 byte length (${W}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+G+W)throw zC;let X=this.pos+G,Y;if(this.stateIsMapKey()&&this.keyDecoder?.canBeCached(W))Y=this.keyDecoder.decode(this.bytes,X,W);else Y=qC(this.bytes,X,W);return this.pos+=G+W,Y}stateIsMapKey(){if(this.stack.length>0)return this.stack.top().type===HZ;return!1}decodeBinary(W,G){if(W>this.maxBinLength)throw new $9(`Max length exceeded: bin length (${W}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(W+G))throw zC;let X=this.pos+G,Y=this.bytes.subarray(X,X+W);return this.pos+=G+W,Y}decodeExtension(W,G){if(W>this.maxExtLength)throw new $9(`Max length exceeded: ext length (${W}) > maxExtLength (${this.maxExtLength})`);let X=this.view.getInt8(this.pos+G),Y=this.decodeBinary(W,G+1);return this.extensionCodec.decode(Y,X,this.context)}lookU8(){return this.view.getUint8(this.pos)}lookU16(){return this.view.getUint16(this.pos)}lookU32(){return this.view.getUint32(this.pos)}readU8(){let W=this.view.getUint8(this.pos);return this.pos++,W}readI8(){let W=this.view.getInt8(this.pos);return this.pos++,W}readU16(){let W=this.view.getUint16(this.pos);return this.pos+=2,W}readI16(){let W=this.view.getInt16(this.pos);return this.pos+=2,W}readU32(){let W=this.view.getUint32(this.pos);return this.pos+=4,W}readI32(){let W=this.view.getInt32(this.pos);return this.pos+=4,W}readU64(){let W=HC(this.view,this.pos);return this.pos+=8,W}readI64(){let W=yJ(this.view,this.pos);return this.pos+=8,W}readU64AsBigInt(){let W=this.view.getBigUint64(this.pos);return this.pos+=8,W}readI64AsBigInt(){let W=this.view.getBigInt64(this.pos);return this.pos+=8,W}readF32(){let W=this.view.getFloat32(this.pos);return this.pos+=4,W}readF64(){let W=this.view.getFloat64(this.pos);return this.pos+=8,W}}function Y6(W,G){return new uJ(G).decode(W)}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */function sG(W){let G=W.length;while(--G>=0)W[G]=0}var Qy=0,WD=1,Jy=2,Uy=3,qy=258,uA=29,BZ=256,KZ=BZ+1+uA,iG=30,hA=19,GD=2*KZ+1,zW=15,IA=16,Ny=7,bA=256,XD=16,YD=17,ZD=18,$A=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),pJ=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),Hy=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),VD=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Ay=512,a7=Array((KZ+2)*2);sG(a7);var wZ=Array(iG*2);sG(wZ);var CZ=Array(Ay);sG(CZ);var DZ=Array(qy-Uy+1);sG(DZ);var mA=Array(uA);sG(mA);var lJ=Array(iG);sG(lJ);function wA(W,G,X,Y,Z){this.static_tree=W,this.extra_bits=G,this.extra_base=X,this.elems=Y,this.max_length=Z,this.has_stree=W&&W.length}var QD,JD,UD;function jA(W,G){this.dyn_tree=W,this.max_code=0,this.stat_desc=G}var qD=(W)=>{return W<256?CZ[W]:CZ[256+(W>>>7)]},MZ=(W,G)=>{W.pending_buf[W.pending++]=G&255,W.pending_buf[W.pending++]=G>>>8&255},g9=(W,G,X)=>{if(W.bi_valid>IA-X)W.bi_buf|=G<<W.bi_valid&65535,MZ(W,W.bi_buf),W.bi_buf=G>>IA-W.bi_valid,W.bi_valid+=X-IA;else W.bi_buf|=G<<W.bi_valid&65535,W.bi_valid+=X},U7=(W,G,X)=>{g9(W,X[G*2],X[G*2+1])},ND=(W,G)=>{let X=0;do X|=W&1,W>>>=1,X<<=1;while(--G>0);return X>>>1},zy=(W)=>{if(W.bi_valid===16)MZ(W,W.bi_buf),W.bi_buf=0,W.bi_valid=0;else if(W.bi_valid>=8)W.pending_buf[W.pending++]=W.bi_buf&255,W.bi_buf>>=8,W.bi_valid-=8},Iy=(W,G)=>{let{dyn_tree:X,max_code:Y}=G,Z=G.stat_desc.static_tree,V=G.stat_desc.has_stree,Q=G.stat_desc.extra_bits,J=G.stat_desc.extra_base,U=G.stat_desc.max_length,q,N,A,H,I,w,C=0;for(H=0;H<=zW;H++)W.bl_count[H]=0;X[W.heap[W.heap_max]*2+1]=0;for(q=W.heap_max+1;q<GD;q++){if(N=W.heap[q],H=X[X[N*2+1]*2+1]+1,H>U)H=U,C++;if(X[N*2+1]=H,N>Y)continue;if(W.bl_count[H]++,I=0,N>=J)I=Q[N-J];if(w=X[N*2],W.opt_len+=w*(H+I),V)W.static_len+=w*(Z[N*2+1]+I)}if(C===0)return;do{H=U-1;while(W.bl_count[H]===0)H--;W.bl_count[H]--,W.bl_count[H+1]+=2,W.bl_count[U]--,C-=2}while(C>0);for(H=U;H!==0;H--){N=W.bl_count[H];while(N!==0){if(A=W.heap[--q],A>Y)continue;if(X[A*2+1]!==H)W.opt_len+=(H-X[A*2+1])*X[A*2],X[A*2+1]=H;N--}}},HD=(W,G,X)=>{let Y=Array(zW+1),Z=0,V,Q;for(V=1;V<=zW;V++)Z=Z+X[V-1]<<1,Y[V]=Z;for(Q=0;Q<=G;Q++){let J=W[Q*2+1];if(J===0)continue;W[Q*2]=ND(Y[J]++,J)}},wy=()=>{let W,G,X,Y,Z,V=Array(zW+1);X=0;for(Y=0;Y<uA-1;Y++){mA[Y]=X;for(W=0;W<1<<$A[Y];W++)DZ[X++]=Y}DZ[X-1]=Y,Z=0;for(Y=0;Y<16;Y++){lJ[Y]=Z;for(W=0;W<1<<pJ[Y];W++)CZ[Z++]=Y}Z>>=7;for(;Y<iG;Y++){lJ[Y]=Z<<7;for(W=0;W<1<<pJ[Y]-7;W++)CZ[256+Z++]=Y}for(G=0;G<=zW;G++)V[G]=0;W=0;while(W<=143)a7[W*2+1]=8,W++,V[8]++;while(W<=255)a7[W*2+1]=9,W++,V[9]++;while(W<=279)a7[W*2+1]=7,W++,V[7]++;while(W<=287)a7[W*2+1]=8,W++,V[8]++;HD(a7,KZ+1,V);for(W=0;W<iG;W++)wZ[W*2+1]=5,wZ[W*2]=ND(W,5);QD=new wA(a7,$A,BZ+1,KZ,zW),JD=new wA(wZ,pJ,0,iG,zW),UD=new wA([],Hy,0,hA,Ny)},AD=(W)=>{let G;for(G=0;G<KZ;G++)W.dyn_ltree[G*2]=0;for(G=0;G<iG;G++)W.dyn_dtree[G*2]=0;for(G=0;G<hA;G++)W.bl_tree[G*2]=0;W.dyn_ltree[bA*2]=1,W.opt_len=W.static_len=0,W.sym_next=W.matches=0},zD=(W)=>{if(W.bi_valid>8)MZ(W,W.bi_buf);else if(W.bi_valid>0)W.pending_buf[W.pending++]=W.bi_buf;W.bi_buf=0,W.bi_valid=0},jC=(W,G,X,Y)=>{let Z=G*2,V=X*2;return W[Z]<W[V]||W[Z]===W[V]&&Y[G]<=Y[X]},OA=(W,G,X)=>{let Y=W.heap[X],Z=X<<1;while(Z<=W.heap_len){if(Z<W.heap_len&&jC(G,W.heap[Z+1],W.heap[Z],W.depth))Z++;if(jC(G,Y,W.heap[Z],W.depth))break;W.heap[X]=W.heap[Z],X=Z,Z<<=1}W.heap[X]=Y},OC=(W,G,X)=>{let Y,Z,V=0,Q,J;if(W.sym_next!==0)do if(Y=W.pending_buf[W.sym_buf+V++]&255,Y+=(W.pending_buf[W.sym_buf+V++]&255)<<8,Z=W.pending_buf[W.sym_buf+V++],Y===0)U7(W,Z,G);else{if(Q=DZ[Z],U7(W,Q+BZ+1,G),J=$A[Q],J!==0)Z-=mA[Q],g9(W,Z,J);if(Y--,Q=qD(Y),U7(W,Q,X),J=pJ[Q],J!==0)Y-=lJ[Q],g9(W,Y,J)}while(V<W.sym_next);U7(W,bA,G)},FA=(W,G)=>{let X=G.dyn_tree,Y=G.stat_desc.static_tree,Z=G.stat_desc.has_stree,V=G.stat_desc.elems,Q,J,U=-1,q;W.heap_len=0,W.heap_max=GD;for(Q=0;Q<V;Q++)if(X[Q*2]!==0)W.heap[++W.heap_len]=U=Q,W.depth[Q]=0;else X[Q*2+1]=0;while(W.heap_len<2)if(q=W.heap[++W.heap_len]=U<2?++U:0,X[q*2]=1,W.depth[q]=0,W.opt_len--,Z)W.static_len-=Y[q*2+1];G.max_code=U;for(Q=W.heap_len>>1;Q>=1;Q--)OA(W,X,Q);q=V;do Q=W.heap[1],W.heap[1]=W.heap[W.heap_len--],OA(W,X,1),J=W.heap[1],W.heap[--W.heap_max]=Q,W.heap[--W.heap_max]=J,X[q*2]=X[Q*2]+X[J*2],W.depth[q]=(W.depth[Q]>=W.depth[J]?W.depth[Q]:W.depth[J])+1,X[Q*2+1]=X[J*2+1]=q,W.heap[1]=q++,OA(W,X,1);while(W.heap_len>=2);W.heap[--W.heap_max]=W.heap[1],Iy(W,G),HD(X,U,W.bl_count)},KC=(W,G,X)=>{let Y,Z=-1,V,Q=G[1],J=0,U=7,q=4;if(Q===0)U=138,q=3;G[(X+1)*2+1]=65535;for(Y=0;Y<=X;Y++){if(V=Q,Q=G[(Y+1)*2+1],++J<U&&V===Q)continue;else if(J<q)W.bl_tree[V*2]+=J;else if(V!==0){if(V!==Z)W.bl_tree[V*2]++;W.bl_tree[XD*2]++}else if(J<=10)W.bl_tree[YD*2]++;else W.bl_tree[ZD*2]++;if(J=0,Z=V,Q===0)U=138,q=3;else if(V===Q)U=6,q=3;else U=7,q=4}},CC=(W,G,X)=>{let Y,Z=-1,V,Q=G[1],J=0,U=7,q=4;if(Q===0)U=138,q=3;for(Y=0;Y<=X;Y++){if(V=Q,Q=G[(Y+1)*2+1],++J<U&&V===Q)continue;else if(J<q)do U7(W,V,W.bl_tree);while(--J!==0);else if(V!==0){if(V!==Z)U7(W,V,W.bl_tree),J--;U7(W,XD,W.bl_tree),g9(W,J-3,2)}else if(J<=10)U7(W,YD,W.bl_tree),g9(W,J-3,3);else U7(W,ZD,W.bl_tree),g9(W,J-11,7);if(J=0,Z=V,Q===0)U=138,q=3;else if(V===Q)U=6,q=3;else U=7,q=4}},jy=(W)=>{let G;KC(W,W.dyn_ltree,W.l_desc.max_code),KC(W,W.dyn_dtree,W.d_desc.max_code),FA(W,W.bl_desc);for(G=hA-1;G>=3;G--)if(W.bl_tree[VD[G]*2+1]!==0)break;return W.opt_len+=3*(G+1)+5+5+4,G},Oy=(W,G,X,Y)=>{let Z;g9(W,G-257,5),g9(W,X-1,5),g9(W,Y-4,4);for(Z=0;Z<Y;Z++)g9(W,W.bl_tree[VD[Z]*2+1],3);CC(W,W.dyn_ltree,G-1),CC(W,W.dyn_dtree,X-1)},Ky=(W)=>{let G=4093624447,X;for(X=0;X<=31;X++,G>>>=1)if(G&1&&W.dyn_ltree[X*2]!==0)return 0;if(W.dyn_ltree[18]!==0||W.dyn_ltree[20]!==0||W.dyn_ltree[26]!==0)return 1;for(X=32;X<BZ;X++)if(W.dyn_ltree[X*2]!==0)return 1;return 0},DC=!1,Cy=(W)=>{if(!DC)wy(),DC=!0;W.l_desc=new jA(W.dyn_ltree,QD),W.d_desc=new jA(W.dyn_dtree,JD),W.bl_desc=new jA(W.bl_tree,UD),W.bi_buf=0,W.bi_valid=0,AD(W)},ID=(W,G,X,Y)=>{if(g9(W,(Qy<<1)+(Y?1:0),3),zD(W),MZ(W,X),MZ(W,~X),X)W.pending_buf.set(W.window.subarray(G,G+X),W.pending);W.pending+=X},Dy=(W)=>{g9(W,WD<<1,3),U7(W,bA,a7),zy(W)},My=(W,G,X,Y)=>{let Z,V,Q=0;if(W.level>0){if(W.strm.data_type===2)W.strm.data_type=Ky(W);if(FA(W,W.l_desc),FA(W,W.d_desc),Q=jy(W),Z=W.opt_len+3+7>>>3,V=W.static_len+3+7>>>3,V<=Z)Z=V}else Z=V=X+5;if(X+4<=Z&&G!==-1)ID(W,G,X,Y);else if(W.strategy===4||V===Z)g9(W,(WD<<1)+(Y?1:0),3),OC(W,a7,wZ);else g9(W,(Jy<<1)+(Y?1:0),3),Oy(W,W.l_desc.max_code+1,W.d_desc.max_code+1,Q+1),OC(W,W.dyn_ltree,W.dyn_dtree);if(AD(W),Y)zD(W)},Ty=(W,G,X)=>{if(W.pending_buf[W.sym_buf+W.sym_next++]=G,W.pending_buf[W.sym_buf+W.sym_next++]=G>>8,W.pending_buf[W.sym_buf+W.sym_next++]=X,G===0)W.dyn_ltree[X*2]++;else W.matches++,G--,W.dyn_ltree[(DZ[X]+BZ+1)*2]++,W.dyn_dtree[qD(G)*2]++;return W.sym_next===W.sym_end},Py=Cy,Ry=ID,Ly=My,By=Ty,Ey=Dy,$y={_tr_init:Py,_tr_stored_block:Ry,_tr_flush_block:Ly,_tr_tally:By,_tr_align:Ey},Fy=(W,G,X,Y)=>{let Z=W&65535|0,V=W>>>16&65535|0,Q=0;while(X!==0){Q=X>2000?2000:X,X-=Q;do Z=Z+G[Y++]|0,V=V+Z|0;while(--Q);Z%=65521,V%=65521}return Z|V<<16|0},TZ=Fy,Sy=()=>{let W,G=[];for(var X=0;X<256;X++){W=X;for(var Y=0;Y<8;Y++)W=W&1?3988292384^W>>>1:W>>>1;G[X]=W}return G},xy=new Uint32Array(Sy()),ky=(W,G,X,Y)=>{let Z=xy,V=Y+X;W^=-1;for(let Q=Y;Q<V;Q++)W=W>>>8^Z[(W^G[Q])&255];return W^-1},o8=ky,jW={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},CW={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:_y,_tr_stored_block:SA,_tr_flush_block:yy,_tr_tally:Q6,_tr_align:vy}=$y,{Z_NO_FLUSH:J6,Z_PARTIAL_FLUSH:gy,Z_FULL_FLUSH:uy,Z_FINISH:A5,Z_BLOCK:MC,Z_OK:s8,Z_STREAM_END:TC,Z_STREAM_ERROR:q7,Z_DATA_ERROR:hy,Z_BUF_ERROR:KA,Z_DEFAULT_COMPRESSION:by,Z_FILTERED:my,Z_HUFFMAN_ONLY:hJ,Z_RLE:fy,Z_FIXED:cy,Z_DEFAULT_STRATEGY:py,Z_UNKNOWN:ly,Z_DEFLATED:nJ}=CW,dy=9,oy=15,ny=8,iy=29,ry=256,xA=ry+1+iy,ay=30,sy=19,ty=2*xA+1,ey=15,g1=3,V6=258,N7=V6+g1+1,Wv=32,rG=42,fA=57,kA=69,_A=73,yA=91,vA=103,IW=113,zZ=666,F9=1,tG=2,OW=3,eG=4,Gv=3,wW=(W,G)=>{return W.msg=jW[G],G},PC=(W)=>{return W*2-(W>4?9:0)},Z6=(W)=>{let G=W.length;while(--G>=0)W[G]=0},Xv=(W)=>{let G,X,Y,Z=W.w_size;G=W.hash_size,Y=G;do X=W.head[--Y],W.head[Y]=X>=Z?X-Z:0;while(--G);G=Z,Y=G;do X=W.prev[--Y],W.prev[Y]=X>=Z?X-Z:0;while(--G)},Yv=(W,G,X)=>(G<<W.hash_shift^X)&W.hash_mask,U6=Yv,s9=(W)=>{let G=W.state,X=G.pending;if(X>W.avail_out)X=W.avail_out;if(X===0)return;if(W.output.set(G.pending_buf.subarray(G.pending_out,G.pending_out+X),W.next_out),W.next_out+=X,G.pending_out+=X,W.total_out+=X,W.avail_out-=X,G.pending-=X,G.pending===0)G.pending_out=0},t9=(W,G)=>{yy(W,W.block_start>=0?W.block_start:-1,W.strstart-W.block_start,G),W.block_start=W.strstart,s9(W.strm)},i1=(W,G)=>{W.pending_buf[W.pending++]=G},AZ=(W,G)=>{W.pending_buf[W.pending++]=G>>>8&255,W.pending_buf[W.pending++]=G&255},gA=(W,G,X,Y)=>{let Z=W.avail_in;if(Z>Y)Z=Y;if(Z===0)return 0;if(W.avail_in-=Z,G.set(W.input.subarray(W.next_in,W.next_in+Z),X),W.state.wrap===1)W.adler=TZ(W.adler,G,Z,X);else if(W.state.wrap===2)W.adler=o8(W.adler,G,Z,X);return W.next_in+=Z,W.total_in+=Z,Z},wD=(W,G)=>{let{max_chain_length:X,strstart:Y}=W,Z,V,Q=W.prev_length,J=W.nice_match,U=W.strstart>W.w_size-N7?W.strstart-(W.w_size-N7):0,q=W.window,N=W.w_mask,A=W.prev,H=W.strstart+V6,I=q[Y+Q-1],w=q[Y+Q];if(W.prev_length>=W.good_match)X>>=2;if(J>W.lookahead)J=W.lookahead;do{if(Z=G,q[Z+Q]!==w||q[Z+Q-1]!==I||q[Z]!==q[Y]||q[++Z]!==q[Y+1])continue;Y+=2,Z++;do;while(q[++Y]===q[++Z]&&q[++Y]===q[++Z]&&q[++Y]===q[++Z]&&q[++Y]===q[++Z]&&q[++Y]===q[++Z]&&q[++Y]===q[++Z]&&q[++Y]===q[++Z]&&q[++Y]===q[++Z]&&Y<H);if(V=V6-(H-Y),Y=H-V6,V>Q){if(W.match_start=G,Q=V,V>=J)break;I=q[Y+Q-1],w=q[Y+Q]}}while((G=A[G&N])>U&&--X!==0);if(Q<=W.lookahead)return Q;return W.lookahead},aG=(W)=>{let G=W.w_size,X,Y,Z;do{if(Y=W.window_size-W.lookahead-W.strstart,W.strstart>=G+(G-N7)){if(W.window.set(W.window.subarray(G,G+G-Y),0),W.match_start-=G,W.strstart-=G,W.block_start-=G,W.insert>W.strstart)W.insert=W.strstart;Xv(W),Y+=G}if(W.strm.avail_in===0)break;if(X=gA(W.strm,W.window,W.strstart+W.lookahead,Y),W.lookahead+=X,W.lookahead+W.insert>=g1){Z=W.strstart-W.insert,W.ins_h=W.window[Z],W.ins_h=U6(W,W.ins_h,W.window[Z+1]);while(W.insert)if(W.ins_h=U6(W,W.ins_h,W.window[Z+g1-1]),W.prev[Z&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=Z,Z++,W.insert--,W.lookahead+W.insert<g1)break}}while(W.lookahead<N7&&W.strm.avail_in!==0)},jD=(W,G)=>{let X=W.pending_buf_size-5>W.w_size?W.w_size:W.pending_buf_size-5,Y,Z,V,Q=0,J=W.strm.avail_in;do{if(Y=65535,V=W.bi_valid+42>>3,W.strm.avail_out<V)break;if(V=W.strm.avail_out-V,Z=W.strstart-W.block_start,Y>Z+W.strm.avail_in)Y=Z+W.strm.avail_in;if(Y>V)Y=V;if(Y<X&&(Y===0&&G!==A5||G===J6||Y!==Z+W.strm.avail_in))break;if(Q=G===A5&&Y===Z+W.strm.avail_in?1:0,SA(W,0,0,Q),W.pending_buf[W.pending-4]=Y,W.pending_buf[W.pending-3]=Y>>8,W.pending_buf[W.pending-2]=~Y,W.pending_buf[W.pending-1]=~Y>>8,s9(W.strm),Z){if(Z>Y)Z=Y;W.strm.output.set(W.window.subarray(W.block_start,W.block_start+Z),W.strm.next_out),W.strm.next_out+=Z,W.strm.avail_out-=Z,W.strm.total_out+=Z,W.block_start+=Z,Y-=Z}if(Y)gA(W.strm,W.strm.output,W.strm.next_out,Y),W.strm.next_out+=Y,W.strm.avail_out-=Y,W.strm.total_out+=Y}while(Q===0);if(J-=W.strm.avail_in,J){if(J>=W.w_size)W.matches=2,W.window.set(W.strm.input.subarray(W.strm.next_in-W.w_size,W.strm.next_in),0),W.strstart=W.w_size,W.insert=W.strstart;else{if(W.window_size-W.strstart<=J){if(W.strstart-=W.w_size,W.window.set(W.window.subarray(W.w_size,W.w_size+W.strstart),0),W.matches<2)W.matches++;if(W.insert>W.strstart)W.insert=W.strstart}W.window.set(W.strm.input.subarray(W.strm.next_in-J,W.strm.next_in),W.strstart),W.strstart+=J,W.insert+=J>W.w_size-W.insert?W.w_size-W.insert:J}W.block_start=W.strstart}if(W.high_water<W.strstart)W.high_water=W.strstart;if(Q)return eG;if(G!==J6&&G!==A5&&W.strm.avail_in===0&&W.strstart===W.block_start)return tG;if(V=W.window_size-W.strstart,W.strm.avail_in>V&&W.block_start>=W.w_size){if(W.block_start-=W.w_size,W.strstart-=W.w_size,W.window.set(W.window.subarray(W.w_size,W.w_size+W.strstart),0),W.matches<2)W.matches++;if(V+=W.w_size,W.insert>W.strstart)W.insert=W.strstart}if(V>W.strm.avail_in)V=W.strm.avail_in;if(V)gA(W.strm,W.window,W.strstart,V),W.strstart+=V,W.insert+=V>W.w_size-W.insert?W.w_size-W.insert:V;if(W.high_water<W.strstart)W.high_water=W.strstart;if(V=W.bi_valid+42>>3,V=W.pending_buf_size-V>65535?65535:W.pending_buf_size-V,X=V>W.w_size?W.w_size:V,Z=W.strstart-W.block_start,Z>=X||(Z||G===A5)&&G!==J6&&W.strm.avail_in===0&&Z<=V)Y=Z>V?V:Z,Q=G===A5&&W.strm.avail_in===0&&Y===Z?1:0,SA(W,W.block_start,Y,Q),W.block_start+=Y,s9(W.strm);return Q?OW:F9},CA=(W,G)=>{let X,Y;for(;;){if(W.lookahead<N7){if(aG(W),W.lookahead<N7&&G===J6)return F9;if(W.lookahead===0)break}if(X=0,W.lookahead>=g1)W.ins_h=U6(W,W.ins_h,W.window[W.strstart+g1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;if(X!==0&&W.strstart-X<=W.w_size-N7)W.match_length=wD(W,X);if(W.match_length>=g1)if(Y=Q6(W,W.strstart-W.match_start,W.match_length-g1),W.lookahead-=W.match_length,W.match_length<=W.max_lazy_match&&W.lookahead>=g1){W.match_length--;do W.strstart++,W.ins_h=U6(W,W.ins_h,W.window[W.strstart+g1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;while(--W.match_length!==0);W.strstart++}else W.strstart+=W.match_length,W.match_length=0,W.ins_h=W.window[W.strstart],W.ins_h=U6(W,W.ins_h,W.window[W.strstart+1]);else Y=Q6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++;if(Y){if(t9(W,!1),W.strm.avail_out===0)return F9}}if(W.insert=W.strstart<g1-1?W.strstart:g1-1,G===A5){if(t9(W,!0),W.strm.avail_out===0)return OW;return eG}if(W.sym_next){if(t9(W,!1),W.strm.avail_out===0)return F9}return tG},oG=(W,G)=>{let X,Y,Z;for(;;){if(W.lookahead<N7){if(aG(W),W.lookahead<N7&&G===J6)return F9;if(W.lookahead===0)break}if(X=0,W.lookahead>=g1)W.ins_h=U6(W,W.ins_h,W.window[W.strstart+g1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;if(W.prev_length=W.match_length,W.prev_match=W.match_start,W.match_length=g1-1,X!==0&&W.prev_length<W.max_lazy_match&&W.strstart-X<=W.w_size-N7){if(W.match_length=wD(W,X),W.match_length<=5&&(W.strategy===my||W.match_length===g1&&W.strstart-W.match_start>4096))W.match_length=g1-1}if(W.prev_length>=g1&&W.match_length<=W.prev_length){Z=W.strstart+W.lookahead-g1,Y=Q6(W,W.strstart-1-W.prev_match,W.prev_length-g1),W.lookahead-=W.prev_length-1,W.prev_length-=2;do if(++W.strstart<=Z)W.ins_h=U6(W,W.ins_h,W.window[W.strstart+g1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;while(--W.prev_length!==0);if(W.match_available=0,W.match_length=g1-1,W.strstart++,Y){if(t9(W,!1),W.strm.avail_out===0)return F9}}else if(W.match_available){if(Y=Q6(W,0,W.window[W.strstart-1]),Y)t9(W,!1);if(W.strstart++,W.lookahead--,W.strm.avail_out===0)return F9}else W.match_available=1,W.strstart++,W.lookahead--}if(W.match_available)Y=Q6(W,0,W.window[W.strstart-1]),W.match_available=0;if(W.insert=W.strstart<g1-1?W.strstart:g1-1,G===A5){if(t9(W,!0),W.strm.avail_out===0)return OW;return eG}if(W.sym_next){if(t9(W,!1),W.strm.avail_out===0)return F9}return tG},Zv=(W,G)=>{let X,Y,Z,V,Q=W.window;for(;;){if(W.lookahead<=V6){if(aG(W),W.lookahead<=V6&&G===J6)return F9;if(W.lookahead===0)break}if(W.match_length=0,W.lookahead>=g1&&W.strstart>0){if(Z=W.strstart-1,Y=Q[Z],Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]){V=W.strstart+V6;do;while(Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Z<V);if(W.match_length=V6-(V-Z),W.match_length>W.lookahead)W.match_length=W.lookahead}}if(W.match_length>=g1)X=Q6(W,1,W.match_length-g1),W.lookahead-=W.match_length,W.strstart+=W.match_length,W.match_length=0;else X=Q6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++;if(X){if(t9(W,!1),W.strm.avail_out===0)return F9}}if(W.insert=0,G===A5){if(t9(W,!0),W.strm.avail_out===0)return OW;return eG}if(W.sym_next){if(t9(W,!1),W.strm.avail_out===0)return F9}return tG},Vv=(W,G)=>{let X;for(;;){if(W.lookahead===0){if(aG(W),W.lookahead===0){if(G===J6)return F9;break}}if(W.match_length=0,X=Q6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++,X){if(t9(W,!1),W.strm.avail_out===0)return F9}}if(W.insert=0,G===A5){if(t9(W,!0),W.strm.avail_out===0)return OW;return eG}if(W.sym_next){if(t9(W,!1),W.strm.avail_out===0)return F9}return tG};function J7(W,G,X,Y,Z){this.good_length=W,this.max_lazy=G,this.nice_length=X,this.max_chain=Y,this.func=Z}var IZ=[new J7(0,0,0,0,jD),new J7(4,4,8,4,CA),new J7(4,5,16,8,CA),new J7(4,6,32,32,CA),new J7(4,4,16,16,oG),new J7(8,16,32,32,oG),new J7(8,16,128,128,oG),new J7(8,32,128,256,oG),new J7(32,128,258,1024,oG),new J7(32,258,258,4096,oG)],Qv=(W)=>{W.window_size=2*W.w_size,Z6(W.head),W.max_lazy_match=IZ[W.level].max_lazy,W.good_match=IZ[W.level].good_length,W.nice_match=IZ[W.level].nice_length,W.max_chain_length=IZ[W.level].max_chain,W.strstart=0,W.block_start=0,W.lookahead=0,W.insert=0,W.match_length=W.prev_length=g1-1,W.match_available=0,W.ins_h=0};function Jv(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=nJ,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(ty*2),this.dyn_dtree=new Uint16Array((2*ay+1)*2),this.bl_tree=new Uint16Array((2*sy+1)*2),Z6(this.dyn_ltree),Z6(this.dyn_dtree),Z6(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(ey+1),this.heap=new Uint16Array(2*xA+1),Z6(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*xA+1),Z6(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}var EZ=(W)=>{if(!W)return 1;let G=W.state;if(!G||G.strm!==W||G.status!==rG&&G.status!==fA&&G.status!==kA&&G.status!==_A&&G.status!==yA&&G.status!==vA&&G.status!==IW&&G.status!==zZ)return 1;return 0},OD=(W)=>{if(EZ(W))return wW(W,q7);W.total_in=W.total_out=0,W.data_type=ly;let G=W.state;if(G.pending=0,G.pending_out=0,G.wrap<0)G.wrap=-G.wrap;return G.status=G.wrap===2?fA:G.wrap?rG:IW,W.adler=G.wrap===2?0:1,G.last_flush=-2,_y(G),s8},KD=(W)=>{let G=OD(W);if(G===s8)Qv(W.state);return G},Uv=(W,G)=>{if(EZ(W)||W.state.wrap!==2)return q7;return W.state.gzhead=G,s8},CD=(W,G,X,Y,Z,V)=>{if(!W)return q7;let Q=1;if(G===by)G=6;if(Y<0)Q=0,Y=-Y;else if(Y>15)Q=2,Y-=16;if(Z<1||Z>dy||X!==nJ||Y<8||Y>15||G<0||G>9||V<0||V>cy||Y===8&&Q!==1)return wW(W,q7);if(Y===8)Y=9;let J=new Jv;return W.state=J,J.strm=W,J.status=rG,J.wrap=Q,J.gzhead=null,J.w_bits=Y,J.w_size=1<<J.w_bits,J.w_mask=J.w_size-1,J.hash_bits=Z+7,J.hash_size=1<<J.hash_bits,J.hash_mask=J.hash_size-1,J.hash_shift=~~((J.hash_bits+g1-1)/g1),J.window=new Uint8Array(J.w_size*2),J.head=new Uint16Array(J.hash_size),J.prev=new Uint16Array(J.w_size),J.lit_bufsize=1<<Z+6,J.pending_buf_size=J.lit_bufsize*4,J.pending_buf=new Uint8Array(J.pending_buf_size),J.sym_buf=J.lit_bufsize,J.sym_end=(J.lit_bufsize-1)*3,J.level=G,J.strategy=V,J.method=X,KD(W)},qv=(W,G)=>{return CD(W,G,nJ,oy,ny,py)},Nv=(W,G)=>{if(EZ(W)||G>MC||G<0)return W?wW(W,q7):q7;let X=W.state;if(!W.output||W.avail_in!==0&&!W.input||X.status===zZ&&G!==A5)return wW(W,W.avail_out===0?KA:q7);let Y=X.last_flush;if(X.last_flush=G,X.pending!==0){if(s9(W),W.avail_out===0)return X.last_flush=-1,s8}else if(W.avail_in===0&&PC(G)<=PC(Y)&&G!==A5)return wW(W,KA);if(X.status===zZ&&W.avail_in!==0)return wW(W,KA);if(X.status===rG&&X.wrap===0)X.status=IW;if(X.status===rG){let Z=nJ+(X.w_bits-8<<4)<<8,V=-1;if(X.strategy>=hJ||X.level<2)V=0;else if(X.level<6)V=1;else if(X.level===6)V=2;else V=3;if(Z|=V<<6,X.strstart!==0)Z|=Wv;if(Z+=31-Z%31,AZ(X,Z),X.strstart!==0)AZ(X,W.adler>>>16),AZ(X,W.adler&65535);if(W.adler=1,X.status=IW,s9(W),X.pending!==0)return X.last_flush=-1,s8}if(X.status===fA)if(W.adler=0,i1(X,31),i1(X,139),i1(X,8),!X.gzhead){if(i1(X,0),i1(X,0),i1(X,0),i1(X,0),i1(X,0),i1(X,X.level===9?2:X.strategy>=hJ||X.level<2?4:0),i1(X,Gv),X.status=IW,s9(W),X.pending!==0)return X.last_flush=-1,s8}else{if(i1(X,(X.gzhead.text?1:0)+(X.gzhead.hcrc?2:0)+(!X.gzhead.extra?0:4)+(!X.gzhead.name?0:8)+(!X.gzhead.comment?0:16)),i1(X,X.gzhead.time&255),i1(X,X.gzhead.time>>8&255),i1(X,X.gzhead.time>>16&255),i1(X,X.gzhead.time>>24&255),i1(X,X.level===9?2:X.strategy>=hJ||X.level<2?4:0),i1(X,X.gzhead.os&255),X.gzhead.extra&&X.gzhead.extra.length)i1(X,X.gzhead.extra.length&255),i1(X,X.gzhead.extra.length>>8&255);if(X.gzhead.hcrc)W.adler=o8(W.adler,X.pending_buf,X.pending,0);X.gzindex=0,X.status=kA}if(X.status===kA){if(X.gzhead.extra){let Z=X.pending,V=(X.gzhead.extra.length&65535)-X.gzindex;while(X.pending+V>X.pending_buf_size){let J=X.pending_buf_size-X.pending;if(X.pending_buf.set(X.gzhead.extra.subarray(X.gzindex,X.gzindex+J),X.pending),X.pending=X.pending_buf_size,X.gzhead.hcrc&&X.pending>Z)W.adler=o8(W.adler,X.pending_buf,X.pending-Z,Z);if(X.gzindex+=J,s9(W),X.pending!==0)return X.last_flush=-1,s8;Z=0,V-=J}let Q=new Uint8Array(X.gzhead.extra);if(X.pending_buf.set(Q.subarray(X.gzindex,X.gzindex+V),X.pending),X.pending+=V,X.gzhead.hcrc&&X.pending>Z)W.adler=o8(W.adler,X.pending_buf,X.pending-Z,Z);X.gzindex=0}X.status=_A}if(X.status===_A){if(X.gzhead.name){let Z=X.pending,V;do{if(X.pending===X.pending_buf_size){if(X.gzhead.hcrc&&X.pending>Z)W.adler=o8(W.adler,X.pending_buf,X.pending-Z,Z);if(s9(W),X.pending!==0)return X.last_flush=-1,s8;Z=0}if(X.gzindex<X.gzhead.name.length)V=X.gzhead.name.charCodeAt(X.gzindex++)&255;else V=0;i1(X,V)}while(V!==0);if(X.gzhead.hcrc&&X.pending>Z)W.adler=o8(W.adler,X.pending_buf,X.pending-Z,Z);X.gzindex=0}X.status=yA}if(X.status===yA){if(X.gzhead.comment){let Z=X.pending,V;do{if(X.pending===X.pending_buf_size){if(X.gzhead.hcrc&&X.pending>Z)W.adler=o8(W.adler,X.pending_buf,X.pending-Z,Z);if(s9(W),X.pending!==0)return X.last_flush=-1,s8;Z=0}if(X.gzindex<X.gzhead.comment.length)V=X.gzhead.comment.charCodeAt(X.gzindex++)&255;else V=0;i1(X,V)}while(V!==0);if(X.gzhead.hcrc&&X.pending>Z)W.adler=o8(W.adler,X.pending_buf,X.pending-Z,Z)}X.status=vA}if(X.status===vA){if(X.gzhead.hcrc){if(X.pending+2>X.pending_buf_size){if(s9(W),X.pending!==0)return X.last_flush=-1,s8}i1(X,W.adler&255),i1(X,W.adler>>8&255),W.adler=0}if(X.status=IW,s9(W),X.pending!==0)return X.last_flush=-1,s8}if(W.avail_in!==0||X.lookahead!==0||G!==J6&&X.status!==zZ){let Z=X.level===0?jD(X,G):X.strategy===hJ?Vv(X,G):X.strategy===fy?Zv(X,G):IZ[X.level].func(X,G);if(Z===OW||Z===eG)X.status=zZ;if(Z===F9||Z===OW){if(W.avail_out===0)X.last_flush=-1;return s8}if(Z===tG){if(G===gy)vy(X);else if(G!==MC){if(SA(X,0,0,!1),G===uy){if(Z6(X.head),X.lookahead===0)X.strstart=0,X.block_start=0,X.insert=0}}if(s9(W),W.avail_out===0)return X.last_flush=-1,s8}}if(G!==A5)return s8;if(X.wrap<=0)return TC;if(X.wrap===2)i1(X,W.adler&255),i1(X,W.adler>>8&255),i1(X,W.adler>>16&255),i1(X,W.adler>>24&255),i1(X,W.total_in&255),i1(X,W.total_in>>8&255),i1(X,W.total_in>>16&255),i1(X,W.total_in>>24&255);else AZ(X,W.adler>>>16),AZ(X,W.adler&65535);if(s9(W),X.wrap>0)X.wrap=-X.wrap;return X.pending!==0?s8:TC},Hv=(W)=>{if(EZ(W))return q7;let G=W.state.status;return W.state=null,G===IW?wW(W,hy):s8},Av=(W,G)=>{let X=G.length;if(EZ(W))return q7;let Y=W.state,Z=Y.wrap;if(Z===2||Z===1&&Y.status!==rG||Y.lookahead)return q7;if(Z===1)W.adler=TZ(W.adler,G,X,0);if(Y.wrap=0,X>=Y.w_size){if(Z===0)Z6(Y.head),Y.strstart=0,Y.block_start=0,Y.insert=0;let U=new Uint8Array(Y.w_size);U.set(G.subarray(X-Y.w_size,X),0),G=U,X=Y.w_size}let{avail_in:V,next_in:Q,input:J}=W;W.avail_in=X,W.next_in=0,W.input=G,aG(Y);while(Y.lookahead>=g1){let U=Y.strstart,q=Y.lookahead-(g1-1);do Y.ins_h=U6(Y,Y.ins_h,Y.window[U+g1-1]),Y.prev[U&Y.w_mask]=Y.head[Y.ins_h],Y.head[Y.ins_h]=U,U++;while(--q);Y.strstart=U,Y.lookahead=g1-1,aG(Y)}return Y.strstart+=Y.lookahead,Y.block_start=Y.strstart,Y.insert=Y.lookahead,Y.lookahead=0,Y.match_length=Y.prev_length=g1-1,Y.match_available=0,W.next_in=Q,W.input=J,W.avail_in=V,Y.wrap=Z,s8},zv=qv,Iv=CD,wv=KD,jv=OD,Ov=Uv,Kv=Nv,Cv=Hv,Dv=Av,Mv="pako deflate (from Nodeca project)",jZ={deflateInit:zv,deflateInit2:Iv,deflateReset:wv,deflateResetKeep:jv,deflateSetHeader:Ov,deflate:Kv,deflateEnd:Cv,deflateSetDictionary:Dv,deflateInfo:Mv},Tv=(W,G)=>{return Object.prototype.hasOwnProperty.call(W,G)},Pv=function(W){let G=Array.prototype.slice.call(arguments,1);while(G.length){let X=G.shift();if(!X)continue;if(typeof X!=="object")throw TypeError(X+"must be non-object");for(let Y in X)if(Tv(X,Y))W[Y]=X[Y]}return W},Rv=(W)=>{let G=0;for(let Y=0,Z=W.length;Y<Z;Y++)G+=W[Y].length;let X=new Uint8Array(G);for(let Y=0,Z=0,V=W.length;Y<V;Y++){let Q=W[Y];X.set(Q,Z),Z+=Q.length}return X},iJ={assign:Pv,flattenChunks:Rv},DD=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(W){DD=!1}var PZ=new Uint8Array(256);for(let W=0;W<256;W++)PZ[W]=W>=252?6:W>=248?5:W>=240?4:W>=224?3:W>=192?2:1;PZ[254]=PZ[254]=1;var Lv=(W)=>{if(typeof TextEncoder==="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(W);let G,X,Y,Z,V,Q=W.length,J=0;for(Z=0;Z<Q;Z++){if(X=W.charCodeAt(Z),(X&64512)===55296&&Z+1<Q){if(Y=W.charCodeAt(Z+1),(Y&64512)===56320)X=65536+(X-55296<<10)+(Y-56320),Z++}J+=X<128?1:X<2048?2:X<65536?3:4}G=new Uint8Array(J);for(V=0,Z=0;V<J;Z++){if(X=W.charCodeAt(Z),(X&64512)===55296&&Z+1<Q){if(Y=W.charCodeAt(Z+1),(Y&64512)===56320)X=65536+(X-55296<<10)+(Y-56320),Z++}if(X<128)G[V++]=X;else if(X<2048)G[V++]=192|X>>>6,G[V++]=128|X&63;else if(X<65536)G[V++]=224|X>>>12,G[V++]=128|X>>>6&63,G[V++]=128|X&63;else G[V++]=240|X>>>18,G[V++]=128|X>>>12&63,G[V++]=128|X>>>6&63,G[V++]=128|X&63}return G},Bv=(W,G)=>{if(G<65534){if(W.subarray&&DD)return String.fromCharCode.apply(null,W.length===G?W:W.subarray(0,G))}let X="";for(let Y=0;Y<G;Y++)X+=String.fromCharCode(W[Y]);return X},Ev=(W,G)=>{let X=G||W.length;if(typeof TextDecoder==="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(W.subarray(0,G));let Y,Z,V=Array(X*2);for(Z=0,Y=0;Y<X;){let Q=W[Y++];if(Q<128){V[Z++]=Q;continue}let J=PZ[Q];if(J>4){V[Z++]=65533,Y+=J-1;continue}Q&=J===2?31:J===3?15:7;while(J>1&&Y<X)Q=Q<<6|W[Y++]&63,J--;if(J>1){V[Z++]=65533;continue}if(Q<65536)V[Z++]=Q;else Q-=65536,V[Z++]=55296|Q>>10&1023,V[Z++]=56320|Q&1023}return Bv(V,Z)},$v=(W,G)=>{if(G=G||W.length,G>W.length)G=W.length;let X=G-1;while(X>=0&&(W[X]&192)===128)X--;if(X<0)return G;if(X===0)return G;return X+PZ[W[X]]>G?X:G},RZ={string2buf:Lv,buf2string:Ev,utf8border:$v};function Fv(){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}var MD=Fv,TD=Object.prototype.toString,{Z_NO_FLUSH:Sv,Z_SYNC_FLUSH:xv,Z_FULL_FLUSH:kv,Z_FINISH:_v,Z_OK:dJ,Z_STREAM_END:yv,Z_DEFAULT_COMPRESSION:vv,Z_DEFAULT_STRATEGY:gv,Z_DEFLATED:uv}=CW;function $Z(W){this.options=iJ.assign({level:vv,method:uv,chunkSize:16384,windowBits:15,memLevel:8,strategy:gv},W||{});let G=this.options;if(G.raw&&G.windowBits>0)G.windowBits=-G.windowBits;else if(G.gzip&&G.windowBits>0&&G.windowBits<16)G.windowBits+=16;this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new MD,this.strm.avail_out=0;let X=jZ.deflateInit2(this.strm,G.level,G.method,G.windowBits,G.memLevel,G.strategy);if(X!==dJ)throw Error(jW[X]);if(G.header)jZ.deflateSetHeader(this.strm,G.header);if(G.dictionary){let Y;if(typeof G.dictionary==="string")Y=RZ.string2buf(G.dictionary);else if(TD.call(G.dictionary)==="[object ArrayBuffer]")Y=new Uint8Array(G.dictionary);else Y=G.dictionary;if(X=jZ.deflateSetDictionary(this.strm,Y),X!==dJ)throw Error(jW[X]);this._dict_set=!0}}$Z.prototype.push=function(W,G){let X=this.strm,Y=this.options.chunkSize,Z,V;if(this.ended)return!1;if(G===~~G)V=G;else V=G===!0?_v:Sv;if(typeof W==="string")X.input=RZ.string2buf(W);else if(TD.call(W)==="[object ArrayBuffer]")X.input=new Uint8Array(W);else X.input=W;X.next_in=0,X.avail_in=X.input.length;for(;;){if(X.avail_out===0)X.output=new Uint8Array(Y),X.next_out=0,X.avail_out=Y;if((V===xv||V===kv)&&X.avail_out<=6){this.onData(X.output.subarray(0,X.next_out)),X.avail_out=0;continue}if(Z=jZ.deflate(X,V),Z===yv){if(X.next_out>0)this.onData(X.output.subarray(0,X.next_out));return Z=jZ.deflateEnd(this.strm),this.onEnd(Z),this.ended=!0,Z===dJ}if(X.avail_out===0){this.onData(X.output);continue}if(V>0&&X.next_out>0){this.onData(X.output.subarray(0,X.next_out)),X.avail_out=0;continue}if(X.avail_in===0)break}return!0};$Z.prototype.onData=function(W){this.chunks.push(W)};$Z.prototype.onEnd=function(W){if(W===dJ)this.result=iJ.flattenChunks(this.chunks);this.chunks=[],this.err=W,this.msg=this.strm.msg};function cA(W,G){let X=new $Z(G);if(X.push(W,!0),X.err)throw X.msg||jW[X.err];return X.result}function hv(W,G){return G=G||{},G.raw=!0,cA(W,G)}function bv(W,G){return G=G||{},G.gzip=!0,cA(W,G)}var mv=$Z,fv=cA,cv=hv,pv=bv,lv=CW,dv={Deflate:mv,deflate:fv,deflateRaw:cv,gzip:pv,constants:lv},bJ=16209,ov=16191,nv=function(G,X){let Y,Z,V,Q,J,U,q,N,A,H,I,w,C,D,x,h,l,u,n,c,p,W0,m,Y0,U0=G.state;Y=G.next_in,m=G.input,Z=Y+(G.avail_in-5),V=G.next_out,Y0=G.output,Q=V-(X-G.avail_out),J=V+(G.avail_out-257),U=U0.dmax,q=U0.wsize,N=U0.whave,A=U0.wnext,H=U0.window,I=U0.hold,w=U0.bits,C=U0.lencode,D=U0.distcode,x=(1<<U0.lenbits)-1,h=(1<<U0.distbits)-1;W:do{if(w<15)I+=m[Y++]<<w,w+=8,I+=m[Y++]<<w,w+=8;l=C[I&x];G:for(;;){if(u=l>>>24,I>>>=u,w-=u,u=l>>>16&255,u===0)Y0[V++]=l&65535;else if(u&16){if(n=l&65535,u&=15,u){if(w<u)I+=m[Y++]<<w,w+=8;n+=I&(1<<u)-1,I>>>=u,w-=u}if(w<15)I+=m[Y++]<<w,w+=8,I+=m[Y++]<<w,w+=8;l=D[I&h];X:for(;;){if(u=l>>>24,I>>>=u,w-=u,u=l>>>16&255,u&16){if(c=l&65535,u&=15,w<u){if(I+=m[Y++]<<w,w+=8,w<u)I+=m[Y++]<<w,w+=8}if(c+=I&(1<<u)-1,c>U){G.msg="invalid distance too far back",U0.mode=bJ;break W}if(I>>>=u,w-=u,u=V-Q,c>u){if(u=c-u,u>N){if(U0.sane){G.msg="invalid distance too far back",U0.mode=bJ;break W}}if(p=0,W0=H,A===0){if(p+=q-u,u<n){n-=u;do Y0[V++]=H[p++];while(--u);p=V-c,W0=Y0}}else if(A<u){if(p+=q+A-u,u-=A,u<n){n-=u;do Y0[V++]=H[p++];while(--u);if(p=0,A<n){u=A,n-=u;do Y0[V++]=H[p++];while(--u);p=V-c,W0=Y0}}}else if(p+=A-u,u<n){n-=u;do Y0[V++]=H[p++];while(--u);p=V-c,W0=Y0}while(n>2)Y0[V++]=W0[p++],Y0[V++]=W0[p++],Y0[V++]=W0[p++],n-=3;if(n){if(Y0[V++]=W0[p++],n>1)Y0[V++]=W0[p++]}}else{p=V-c;do Y0[V++]=Y0[p++],Y0[V++]=Y0[p++],Y0[V++]=Y0[p++],n-=3;while(n>2);if(n){if(Y0[V++]=Y0[p++],n>1)Y0[V++]=Y0[p++]}}}else if((u&64)===0){l=D[(l&65535)+(I&(1<<u)-1)];continue X}else{G.msg="invalid distance code",U0.mode=bJ;break W}break}}else if((u&64)===0){l=C[(l&65535)+(I&(1<<u)-1)];continue G}else if(u&32){U0.mode=ov;break W}else{G.msg="invalid literal/length code",U0.mode=bJ;break W}break}}while(Y<Z&&V<J);n=w>>3,Y-=n,w-=n<<3,I&=(1<<w)-1,G.next_in=Y,G.next_out=V,G.avail_in=Y<Z?5+(Z-Y):5-(Y-Z),G.avail_out=V<J?257+(J-V):257-(V-J),U0.hold=I,U0.bits=w;return},nG=15,RC=852,LC=592,BC=0,DA=1,EC=2,iv=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),rv=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),av=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),sv=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),tv=(W,G,X,Y,Z,V,Q,J)=>{let U=J.bits,q=0,N=0,A=0,H=0,I=0,w=0,C=0,D=0,x=0,h=0,l,u,n,c,p,W0=null,m,Y0=new Uint16Array(nG+1),U0=new Uint16Array(nG+1),y=null,o,B,R;for(q=0;q<=nG;q++)Y0[q]=0;for(N=0;N<Y;N++)Y0[G[X+N]]++;I=U;for(H=nG;H>=1;H--)if(Y0[H]!==0)break;if(I>H)I=H;if(H===0)return Z[V++]=20971520,Z[V++]=20971520,J.bits=1,0;for(A=1;A<H;A++)if(Y0[A]!==0)break;if(I<A)I=A;D=1;for(q=1;q<=nG;q++)if(D<<=1,D-=Y0[q],D<0)return-1;if(D>0&&(W===BC||H!==1))return-1;U0[1]=0;for(q=1;q<nG;q++)U0[q+1]=U0[q]+Y0[q];for(N=0;N<Y;N++)if(G[X+N]!==0)Q[U0[G[X+N]]++]=N;if(W===BC)W0=y=Q,m=20;else if(W===DA)W0=iv,y=rv,m=257;else W0=av,y=sv,m=0;if(h=0,N=0,q=A,p=V,w=I,C=0,n=-1,x=1<<I,c=x-1,W===DA&&x>RC||W===EC&&x>LC)return 1;for(;;){if(o=q-C,Q[N]+1<m)B=0,R=Q[N];else if(Q[N]>=m)B=y[Q[N]-m],R=W0[Q[N]-m];else B=96,R=0;l=1<<q-C,u=1<<w,A=u;do u-=l,Z[p+(h>>C)+u]=o<<24|B<<16|R|0;while(u!==0);l=1<<q-1;while(h&l)l>>=1;if(l!==0)h&=l-1,h+=l;else h=0;if(N++,--Y0[q]===0){if(q===H)break;q=G[X+Q[N]]}if(q>I&&(h&c)!==n){if(C===0)C=I;p+=A,w=q-C,D=1<<w;while(w+C<H){if(D-=Y0[w+C],D<=0)break;w++,D<<=1}if(x+=1<<w,W===DA&&x>RC||W===EC&&x>LC)return 1;n=h&c,Z[n]=I<<24|w<<16|p-V|0}}if(h!==0)Z[p+h]=q-C<<24|4194304|0;return J.bits=I,0},OZ=tv,ev=0,PD=1,RD=2,{Z_FINISH:$C,Z_BLOCK:Wg,Z_TREES:mJ,Z_OK:KW,Z_STREAM_END:Gg,Z_NEED_DICT:Xg,Z_STREAM_ERROR:z5,Z_DATA_ERROR:LD,Z_MEM_ERROR:BD,Z_BUF_ERROR:Yg,Z_DEFLATED:FC}=CW,rJ=16180,SC=16181,xC=16182,kC=16183,_C=16184,yC=16185,vC=16186,gC=16187,uC=16188,hC=16189,oJ=16190,r7=16191,MA=16192,bC=16193,TA=16194,mC=16195,fC=16196,cC=16197,pC=16198,fJ=16199,cJ=16200,lC=16201,dC=16202,oC=16203,nC=16204,iC=16205,PA=16206,rC=16207,aC=16208,z8=16209,ED=16210,$D=16211,Zg=852,Vg=592,Qg=15,Jg=Qg,sC=(W)=>{return(W>>>24&255)+(W>>>8&65280)+((W&65280)<<8)+((W&255)<<24)};function Ug(){this.strm=null,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 Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var DW=(W)=>{if(!W)return 1;let G=W.state;if(!G||G.strm!==W||G.mode<rJ||G.mode>$D)return 1;return 0},FD=(W)=>{if(DW(W))return z5;let G=W.state;if(W.total_in=W.total_out=G.total=0,W.msg="",G.wrap)W.adler=G.wrap&1;return G.mode=rJ,G.last=0,G.havedict=0,G.flags=-1,G.dmax=32768,G.head=null,G.hold=0,G.bits=0,G.lencode=G.lendyn=new Int32Array(Zg),G.distcode=G.distdyn=new Int32Array(Vg),G.sane=1,G.back=-1,KW},SD=(W)=>{if(DW(W))return z5;let G=W.state;return G.wsize=0,G.whave=0,G.wnext=0,FD(W)},xD=(W,G)=>{let X;if(DW(W))return z5;let Y=W.state;if(G<0)X=0,G=-G;else if(X=(G>>4)+5,G<48)G&=15;if(G&&(G<8||G>15))return z5;if(Y.window!==null&&Y.wbits!==G)Y.window=null;return Y.wrap=X,Y.wbits=G,SD(W)},kD=(W,G)=>{if(!W)return z5;let X=new Ug;W.state=X,X.strm=W,X.window=null,X.mode=rJ;let Y=xD(W,G);if(Y!==KW)W.state=null;return Y},qg=(W)=>{return kD(W,Jg)},tC=!0,RA,LA,Ng=(W)=>{if(tC){RA=new Int32Array(512),LA=new Int32Array(32);let G=0;while(G<144)W.lens[G++]=8;while(G<256)W.lens[G++]=9;while(G<280)W.lens[G++]=7;while(G<288)W.lens[G++]=8;OZ(PD,W.lens,0,288,RA,0,W.work,{bits:9}),G=0;while(G<32)W.lens[G++]=5;OZ(RD,W.lens,0,32,LA,0,W.work,{bits:5}),tC=!1}W.lencode=RA,W.lenbits=9,W.distcode=LA,W.distbits=5},_D=(W,G,X,Y)=>{let Z,V=W.state;if(V.window===null)V.wsize=1<<V.wbits,V.wnext=0,V.whave=0,V.window=new Uint8Array(V.wsize);if(Y>=V.wsize)V.window.set(G.subarray(X-V.wsize,X),0),V.wnext=0,V.whave=V.wsize;else{if(Z=V.wsize-V.wnext,Z>Y)Z=Y;if(V.window.set(G.subarray(X-Y,X-Y+Z),V.wnext),Y-=Z,Y)V.window.set(G.subarray(X-Y,X),0),V.wnext=Y,V.whave=V.wsize;else{if(V.wnext+=Z,V.wnext===V.wsize)V.wnext=0;if(V.whave<V.wsize)V.whave+=Z}}return 0},Hg=(W,G)=>{let X,Y,Z,V,Q,J,U,q,N,A,H,I,w,C,D=0,x,h,l,u,n,c,p,W0,m=new Uint8Array(4),Y0,U0,y=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(DW(W)||!W.output||!W.input&&W.avail_in!==0)return z5;if(X=W.state,X.mode===r7)X.mode=MA;Q=W.next_out,Z=W.output,U=W.avail_out,V=W.next_in,Y=W.input,J=W.avail_in,q=X.hold,N=X.bits,A=J,H=U,W0=KW;W:for(;;)switch(X.mode){case rJ:if(X.wrap===0){X.mode=MA;break}while(N<16){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(X.wrap&2&&q===35615){if(X.wbits===0)X.wbits=15;X.check=0,m[0]=q&255,m[1]=q>>>8&255,X.check=o8(X.check,m,2,0),q=0,N=0,X.mode=SC;break}if(X.head)X.head.done=!1;if(!(X.wrap&1)||(((q&255)<<8)+(q>>8))%31){W.msg="incorrect header check",X.mode=z8;break}if((q&15)!==FC){W.msg="unknown compression method",X.mode=z8;break}if(q>>>=4,N-=4,p=(q&15)+8,X.wbits===0)X.wbits=p;if(p>15||p>X.wbits){W.msg="invalid window size",X.mode=z8;break}X.dmax=1<<X.wbits,X.flags=0,W.adler=X.check=1,X.mode=q&512?hC:r7,q=0,N=0;break;case SC:while(N<16){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(X.flags=q,(X.flags&255)!==FC){W.msg="unknown compression method",X.mode=z8;break}if(X.flags&57344){W.msg="unknown header flags set",X.mode=z8;break}if(X.head)X.head.text=q>>8&1;if(X.flags&512&&X.wrap&4)m[0]=q&255,m[1]=q>>>8&255,X.check=o8(X.check,m,2,0);q=0,N=0,X.mode=xC;case xC:while(N<32){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(X.head)X.head.time=q;if(X.flags&512&&X.wrap&4)m[0]=q&255,m[1]=q>>>8&255,m[2]=q>>>16&255,m[3]=q>>>24&255,X.check=o8(X.check,m,4,0);q=0,N=0,X.mode=kC;case kC:while(N<16){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(X.head)X.head.xflags=q&255,X.head.os=q>>8;if(X.flags&512&&X.wrap&4)m[0]=q&255,m[1]=q>>>8&255,X.check=o8(X.check,m,2,0);q=0,N=0,X.mode=_C;case _C:if(X.flags&1024){while(N<16){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(X.length=q,X.head)X.head.extra_len=q;if(X.flags&512&&X.wrap&4)m[0]=q&255,m[1]=q>>>8&255,X.check=o8(X.check,m,2,0);q=0,N=0}else if(X.head)X.head.extra=null;X.mode=yC;case yC:if(X.flags&1024){if(I=X.length,I>J)I=J;if(I){if(X.head){if(p=X.head.extra_len-X.length,!X.head.extra)X.head.extra=new Uint8Array(X.head.extra_len);X.head.extra.set(Y.subarray(V,V+I),p)}if(X.flags&512&&X.wrap&4)X.check=o8(X.check,Y,I,V);J-=I,V+=I,X.length-=I}if(X.length)break W}X.length=0,X.mode=vC;case vC:if(X.flags&2048){if(J===0)break W;I=0;do if(p=Y[V+I++],X.head&&p&&X.length<65536)X.head.name+=String.fromCharCode(p);while(p&&I<J);if(X.flags&512&&X.wrap&4)X.check=o8(X.check,Y,I,V);if(J-=I,V+=I,p)break W}else if(X.head)X.head.name=null;X.length=0,X.mode=gC;case gC:if(X.flags&4096){if(J===0)break W;I=0;do if(p=Y[V+I++],X.head&&p&&X.length<65536)X.head.comment+=String.fromCharCode(p);while(p&&I<J);if(X.flags&512&&X.wrap&4)X.check=o8(X.check,Y,I,V);if(J-=I,V+=I,p)break W}else if(X.head)X.head.comment=null;X.mode=uC;case uC:if(X.flags&512){while(N<16){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(X.wrap&4&&q!==(X.check&65535)){W.msg="header crc mismatch",X.mode=z8;break}q=0,N=0}if(X.head)X.head.hcrc=X.flags>>9&1,X.head.done=!0;W.adler=X.check=0,X.mode=r7;break;case hC:while(N<32){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}W.adler=X.check=sC(q),q=0,N=0,X.mode=oJ;case oJ:if(X.havedict===0)return W.next_out=Q,W.avail_out=U,W.next_in=V,W.avail_in=J,X.hold=q,X.bits=N,Xg;W.adler=X.check=1,X.mode=r7;case r7:if(G===Wg||G===mJ)break W;case MA:if(X.last){q>>>=N&7,N-=N&7,X.mode=PA;break}while(N<3){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}switch(X.last=q&1,q>>>=1,N-=1,q&3){case 0:X.mode=bC;break;case 1:if(Ng(X),X.mode=fJ,G===mJ){q>>>=2,N-=2;break W}break;case 2:X.mode=fC;break;case 3:W.msg="invalid block type",X.mode=z8}q>>>=2,N-=2;break;case bC:q>>>=N&7,N-=N&7;while(N<32){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if((q&65535)!==(q>>>16^65535)){W.msg="invalid stored block lengths",X.mode=z8;break}if(X.length=q&65535,q=0,N=0,X.mode=TA,G===mJ)break W;case TA:X.mode=mC;case mC:if(I=X.length,I){if(I>J)I=J;if(I>U)I=U;if(I===0)break W;Z.set(Y.subarray(V,V+I),Q),J-=I,V+=I,U-=I,Q+=I,X.length-=I;break}X.mode=r7;break;case fC:while(N<14){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(X.nlen=(q&31)+257,q>>>=5,N-=5,X.ndist=(q&31)+1,q>>>=5,N-=5,X.ncode=(q&15)+4,q>>>=4,N-=4,X.nlen>286||X.ndist>30){W.msg="too many length or distance symbols",X.mode=z8;break}X.have=0,X.mode=cC;case cC:while(X.have<X.ncode){while(N<3){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}X.lens[y[X.have++]]=q&7,q>>>=3,N-=3}while(X.have<19)X.lens[y[X.have++]]=0;if(X.lencode=X.lendyn,X.lenbits=7,Y0={bits:X.lenbits},W0=OZ(ev,X.lens,0,19,X.lencode,0,X.work,Y0),X.lenbits=Y0.bits,W0){W.msg="invalid code lengths set",X.mode=z8;break}X.have=0,X.mode=pC;case pC:while(X.have<X.nlen+X.ndist){for(;;){if(D=X.lencode[q&(1<<X.lenbits)-1],x=D>>>24,h=D>>>16&255,l=D&65535,x<=N)break;if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(l<16)q>>>=x,N-=x,X.lens[X.have++]=l;else{if(l===16){U0=x+2;while(N<U0){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(q>>>=x,N-=x,X.have===0){W.msg="invalid bit length repeat",X.mode=z8;break}p=X.lens[X.have-1],I=3+(q&3),q>>>=2,N-=2}else if(l===17){U0=x+3;while(N<U0){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}q>>>=x,N-=x,p=0,I=3+(q&7),q>>>=3,N-=3}else{U0=x+7;while(N<U0){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}q>>>=x,N-=x,p=0,I=11+(q&127),q>>>=7,N-=7}if(X.have+I>X.nlen+X.ndist){W.msg="invalid bit length repeat",X.mode=z8;break}while(I--)X.lens[X.have++]=p}}if(X.mode===z8)break;if(X.lens[256]===0){W.msg="invalid code -- missing end-of-block",X.mode=z8;break}if(X.lenbits=9,Y0={bits:X.lenbits},W0=OZ(PD,X.lens,0,X.nlen,X.lencode,0,X.work,Y0),X.lenbits=Y0.bits,W0){W.msg="invalid literal/lengths set",X.mode=z8;break}if(X.distbits=6,X.distcode=X.distdyn,Y0={bits:X.distbits},W0=OZ(RD,X.lens,X.nlen,X.ndist,X.distcode,0,X.work,Y0),X.distbits=Y0.bits,W0){W.msg="invalid distances set",X.mode=z8;break}if(X.mode=fJ,G===mJ)break W;case fJ:X.mode=cJ;case cJ:if(J>=6&&U>=258){if(W.next_out=Q,W.avail_out=U,W.next_in=V,W.avail_in=J,X.hold=q,X.bits=N,nv(W,H),Q=W.next_out,Z=W.output,U=W.avail_out,V=W.next_in,Y=W.input,J=W.avail_in,q=X.hold,N=X.bits,X.mode===r7)X.back=-1;break}X.back=0;for(;;){if(D=X.lencode[q&(1<<X.lenbits)-1],x=D>>>24,h=D>>>16&255,l=D&65535,x<=N)break;if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(h&&(h&240)===0){u=x,n=h,c=l;for(;;){if(D=X.lencode[c+((q&(1<<u+n)-1)>>u)],x=D>>>24,h=D>>>16&255,l=D&65535,u+x<=N)break;if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}q>>>=u,N-=u,X.back+=u}if(q>>>=x,N-=x,X.back+=x,X.length=l,h===0){X.mode=iC;break}if(h&32){X.back=-1,X.mode=r7;break}if(h&64){W.msg="invalid literal/length code",X.mode=z8;break}X.extra=h&15,X.mode=lC;case lC:if(X.extra){U0=X.extra;while(N<U0){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}X.length+=q&(1<<X.extra)-1,q>>>=X.extra,N-=X.extra,X.back+=X.extra}X.was=X.length,X.mode=dC;case dC:for(;;){if(D=X.distcode[q&(1<<X.distbits)-1],x=D>>>24,h=D>>>16&255,l=D&65535,x<=N)break;if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if((h&240)===0){u=x,n=h,c=l;for(;;){if(D=X.distcode[c+((q&(1<<u+n)-1)>>u)],x=D>>>24,h=D>>>16&255,l=D&65535,u+x<=N)break;if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}q>>>=u,N-=u,X.back+=u}if(q>>>=x,N-=x,X.back+=x,h&64){W.msg="invalid distance code",X.mode=z8;break}X.offset=l,X.extra=h&15,X.mode=oC;case oC:if(X.extra){U0=X.extra;while(N<U0){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}X.offset+=q&(1<<X.extra)-1,q>>>=X.extra,N-=X.extra,X.back+=X.extra}if(X.offset>X.dmax){W.msg="invalid distance too far back",X.mode=z8;break}X.mode=nC;case nC:if(U===0)break W;if(I=H-U,X.offset>I){if(I=X.offset-I,I>X.whave){if(X.sane){W.msg="invalid distance too far back",X.mode=z8;break}}if(I>X.wnext)I-=X.wnext,w=X.wsize-I;else w=X.wnext-I;if(I>X.length)I=X.length;C=X.window}else C=Z,w=Q-X.offset,I=X.length;if(I>U)I=U;U-=I,X.length-=I;do Z[Q++]=C[w++];while(--I);if(X.length===0)X.mode=cJ;break;case iC:if(U===0)break W;Z[Q++]=X.length,U--,X.mode=cJ;break;case PA:if(X.wrap){while(N<32){if(J===0)break W;J--,q|=Y[V++]<<N,N+=8}if(H-=U,W.total_out+=H,X.total+=H,X.wrap&4&&H)W.adler=X.check=X.flags?o8(X.check,Z,H,Q-H):TZ(X.check,Z,H,Q-H);if(H=U,X.wrap&4&&(X.flags?q:sC(q))!==X.check){W.msg="incorrect data check",X.mode=z8;break}q=0,N=0}X.mode=rC;case rC:if(X.wrap&&X.flags){while(N<32){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(X.wrap&4&&q!==(X.total&4294967295)){W.msg="incorrect length check",X.mode=z8;break}q=0,N=0}X.mode=aC;case aC:W0=Gg;break W;case z8:W0=LD;break W;case ED:return BD;case $D:default:return z5}if(W.next_out=Q,W.avail_out=U,W.next_in=V,W.avail_in=J,X.hold=q,X.bits=N,X.wsize||H!==W.avail_out&&X.mode<z8&&(X.mode<PA||G!==$C)){if(_D(W,W.output,W.next_out,H-W.avail_out));}if(A-=W.avail_in,H-=W.avail_out,W.total_in+=A,W.total_out+=H,X.total+=H,X.wrap&4&&H)W.adler=X.check=X.flags?o8(X.check,Z,H,W.next_out-H):TZ(X.check,Z,H,W.next_out-H);if(W.data_type=X.bits+(X.last?64:0)+(X.mode===r7?128:0)+(X.mode===fJ||X.mode===TA?256:0),(A===0&&H===0||G===$C)&&W0===KW)W0=Yg;return W0},Ag=(W)=>{if(DW(W))return z5;let G=W.state;if(G.window)G.window=null;return W.state=null,KW},zg=(W,G)=>{if(DW(W))return z5;let X=W.state;if((X.wrap&2)===0)return z5;return X.head=G,G.done=!1,KW},Ig=(W,G)=>{let X=G.length,Y,Z,V;if(DW(W))return z5;if(Y=W.state,Y.wrap!==0&&Y.mode!==oJ)return z5;if(Y.mode===oJ){if(Z=1,Z=TZ(Z,G,X,0),Z!==Y.check)return LD}if(V=_D(W,G,X,X),V)return Y.mode=ED,BD;return Y.havedict=1,KW},wg=SD,jg=xD,Og=FD,Kg=qg,Cg=kD,Dg=Hg,Mg=Ag,Tg=zg,Pg=Ig,Rg="pako inflate (from Nodeca project)",s7={inflateReset:wg,inflateReset2:jg,inflateResetKeep:Og,inflateInit:Kg,inflateInit2:Cg,inflate:Dg,inflateEnd:Mg,inflateGetHeader:Tg,inflateSetDictionary:Pg,inflateInfo:Rg};function Lg(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var Bg=Lg,yD=Object.prototype.toString,{Z_NO_FLUSH:Eg,Z_FINISH:$g,Z_OK:LZ,Z_STREAM_END:BA,Z_NEED_DICT:EA,Z_STREAM_ERROR:Fg,Z_DATA_ERROR:eC,Z_MEM_ERROR:Sg}=CW;function FZ(W){this.options=iJ.assign({chunkSize:65536,windowBits:15,to:""},W||{});let G=this.options;if(G.raw&&G.windowBits>=0&&G.windowBits<16){if(G.windowBits=-G.windowBits,G.windowBits===0)G.windowBits=-15}if(G.windowBits>=0&&G.windowBits<16&&!(W&&W.windowBits))G.windowBits+=32;if(G.windowBits>15&&G.windowBits<48){if((G.windowBits&15)===0)G.windowBits|=15}this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new MD,this.strm.avail_out=0;let X=s7.inflateInit2(this.strm,G.windowBits);if(X!==LZ)throw Error(jW[X]);if(this.header=new Bg,s7.inflateGetHeader(this.strm,this.header),G.dictionary){if(typeof G.dictionary==="string")G.dictionary=RZ.string2buf(G.dictionary);else if(yD.call(G.dictionary)==="[object ArrayBuffer]")G.dictionary=new Uint8Array(G.dictionary);if(G.raw){if(X=s7.inflateSetDictionary(this.strm,G.dictionary),X!==LZ)throw Error(jW[X])}}}FZ.prototype.push=function(W,G){let X=this.strm,Y=this.options.chunkSize,Z=this.options.dictionary,V,Q,J;if(this.ended)return!1;if(G===~~G)Q=G;else Q=G===!0?$g:Eg;if(yD.call(W)==="[object ArrayBuffer]")X.input=new Uint8Array(W);else X.input=W;X.next_in=0,X.avail_in=X.input.length;for(;;){if(X.avail_out===0)X.output=new Uint8Array(Y),X.next_out=0,X.avail_out=Y;if(V=s7.inflate(X,Q),V===EA&&Z){if(V=s7.inflateSetDictionary(X,Z),V===LZ)V=s7.inflate(X,Q);else if(V===eC)V=EA}while(X.avail_in>0&&V===BA&&X.state.wrap>0&&W[X.next_in]!==0)s7.inflateReset(X),V=s7.inflate(X,Q);switch(V){case Fg:case eC:case EA:case Sg:return this.onEnd(V),this.ended=!0,!1}if(J=X.avail_out,X.next_out){if(X.avail_out===0||V===BA)if(this.options.to==="string"){let U=RZ.utf8border(X.output,X.next_out),q=X.next_out-U,N=RZ.buf2string(X.output,U);if(X.next_out=q,X.avail_out=Y-q,q)X.output.set(X.output.subarray(U,U+q),0);this.onData(N)}else this.onData(X.output.length===X.next_out?X.output:X.output.subarray(0,X.next_out))}if(V===LZ&&J===0)continue;if(V===BA)return V=s7.inflateEnd(this.strm),this.onEnd(V),this.ended=!0,!0;if(X.avail_in===0)break}return!0};FZ.prototype.onData=function(W){this.chunks.push(W)};FZ.prototype.onEnd=function(W){if(W===LZ)if(this.options.to==="string")this.result=this.chunks.join("");else this.result=iJ.flattenChunks(this.chunks);this.chunks=[],this.err=W,this.msg=this.strm.msg};function pA(W,G){let X=new FZ(G);if(X.push(W),X.err)throw X.msg||jW[X.err];return X.result}function xg(W,G){return G=G||{},G.raw=!0,pA(W,G)}var kg=FZ,_g=pA,yg=xg,vg=pA,gg=CW,ug={Inflate:kg,inflate:_g,inflateRaw:yg,ungzip:vg,constants:gg},{Deflate:hg,deflate:bg,deflateRaw:mg,gzip:fg}=dv,{Inflate:cg,inflate:pg,inflateRaw:lg,ungzip:dg}=ug,og=hg,ng=bg,ig=mg,rg=fg,ag=cg,sg=pg,tg=lg,eg=dg,Wu=CW,q6={Deflate:og,deflate:ng,deflateRaw:ig,gzip:rg,Inflate:ag,inflate:sg,inflateRaw:tg,ungzip:eg,constants:Wu};function vD(){let W=Date.now(),G=0;return{now(){return W=Math.max(W,Date.now()),G++,{physical:W,logical:G}},update(X){if(!X||typeof X.physical!=="number"||typeof X.logical!=="number")return;W=Math.max(W,X.physical),G=Math.max(G,X.logical)+1},compare(X,Y){if(!X&&!Y)return 0;if(!X)return-1;if(!Y)return 1;if(X.physical!==Y.physical)return X.physical>Y.physical?1:-1;if(X.logical!==Y.logical)return X.logical>Y.logical?1:-1;return 0}}}function gD(W,G,X){let Y=G.timestamp;if(Y?.physical>Date.now()+7200000)Y={physical:Date.now()+7200000,logical:Y.logical};if(G?.value?.priority===!0&&typeof G.id==="string"&&G.id.startsWith("user:")&&"role"in G.value){let{priority:Z,...V}=G.value;return{resolved:!0,value:V,timestamp:Y}}if(G?.value?.priority!==void 0){let{priority:Z,...V}=G.value;G={...G,value:V}}if(!W?.timestamp)return{resolved:!0,value:G.value,timestamp:Y};if(X.compare(Y,W.timestamp)<=0)return{resolved:!1};return{resolved:!0,value:G.value,timestamp:Y}}var SZ={$eq:(W,G)=>W===G,$ne:(W,G)=>W!==G,$gt:(W,G)=>W>G,$gte:(W,G)=>W>=G,$lt:(W,G)=>W<G,$lte:(W,G)=>W<=G,$in:(W,G)=>Array.isArray(G)&&(Array.isArray(W)?W.some((X)=>G.includes(X)):G.includes(W)),$between:(W,[G,X])=>W>=G&&W<=X,$exists:(W,G)=>G?W!==void 0:W===void 0,$startsWith:(W,G)=>typeof W==="string"&&W.startsWith(G),$endsWith:(W,G)=>typeof W==="string"&&W.endsWith(G),$contains:(W,G)=>typeof W==="string"&&W.includes(G),$text:{global:(W,G)=>{let X=(Z)=>String(Z).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),Y=X(G);return Object.values(W).some((Z)=>typeof Z==="object"?null.fieldSearch(Z,Y):X(Z).includes(Y))},field:(W,G)=>{let X=(Z)=>String(Z).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),Y=X(G);return Array.isArray(W)?W.some((Z)=>X(Z).includes(Y)):X(W).includes(Y)}},$like:(W,G)=>typeof W==="string"&&typeof G==="string"&&new RegExp(`^${G.replace(/%/g,".*").replace(/_/g,".")}$`,"i").test(W),$regex:(W,G)=>typeof W==="string"&&new RegExp(G.$regex||G,"i").test(W),$and:(W,G,X)=>G.every((Y)=>X.createFilter(Y,X.allNodes)(W)),$or:(W,G,X)=>G.some((Y)=>X.createFilter(Y,X.allNodes)(W)),$not:(W,G,X)=>!X.createFilter(G,X.allNodes)(W),$edge:(W,G,X)=>{if(!W.edges?.length||typeof G!=="object"||G===null)return!1;let Y=X.createFilter(G,X.allNodes),Z=[...W.edges],V=new Set(Z).add(W.id),Q=[];while(Z.length){let J=Z.shift(),U=X.allNodes[J];if(!U)continue;if(Y(U))Q.push(U);U.edges?.forEach((q)=>!V.has(q)&&V.add(q)&&Z.push(q))}if(Q.length)W._edgeResult=Q;return Q.length>0}},aJ=(W,G)=>G.split(".").reduce((X,Y)=>X&&typeof X==="object"&&(Y in X)?X[Y]:void 0,W),sJ=(W,G)=>{if(Object.keys(W).length===0)return()=>!0;return(X)=>Object.entries(W).every(([Y,Z])=>{if(Y.startsWith("$"))return SZ[Y](X,Z,{createFilter:sJ,allNodes:G});let V=aJ(X.value,Y);if(V===void 0)V=aJ(X,Y);if(typeof Z!=="object"||Z===null)return SZ.$eq(V,Z);return Object.entries(Z).every(([Q,J])=>{if(Q==="$text")return SZ.$text.field(V,J);if(Q==="$between"&&J.every((U)=>U instanceof Date))return SZ.$between(new Date(V),J);return SZ[Q]?.(V,J,{createFilter:sJ,allNodes:G})??!1})})},lA=(W,G)=>{let{$edge:X,...Y}=G.query||{},Z=sJ(Y,W),V=Object.values(W).filter(Z),J=[...X?(()=>{let U=sJ({$edge:X},W);V.forEach((N)=>U(N));let q=new Map;return V.forEach((N)=>{if(N._edgeResult)N._edgeResult.forEach((A)=>q.set(A.id,A)),delete N._edgeResult}),Array.from(q.values())})():V];if(G.field){let U=G.order==="asc"?1:-1;J.sort((q,N)=>{let A=aJ(q.value,G.field),H=aJ(N.value,G.field);if(typeof A==="string"&&typeof H==="string")return A.localeCompare(H)*U;return((A??0)-(H??0))*U})}if(G.$after){let U=J.findIndex((q)=>q.id===G.$after);J=U>=0?J.slice(U+1):[]}if(G.$before){let U=J.findIndex((q)=>q.id===G.$before);J=U>=0?J.slice(0,U):[]}if(G.$limit)J=J.slice(0,G.$limit);return J};var dA=(()=>{let W=()=>{};return new Proxy(console,{get:(G,X)=>globalThis.__gdbDebug?G[X].bind(G):W})})(),WX=typeof globalThis==="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function MU(W){return W instanceof Uint8Array||ArrayBuffer.isView(W)&&W.constructor.name==="Uint8Array"}function Xz(W){if(!Number.isSafeInteger(W)||W<0)throw Error("positive integer expected, got "+W)}function BW(W,...G){if(!MU(W))throw Error("Uint8Array expected");if(G.length>0&&!G.includes(W.length))throw Error("Uint8Array expected of length "+G+", got length="+W.length)}function XM(W){if(typeof W!=="function"||typeof W.create!=="function")throw Error("Hash should be wrapped by utils.createHasher");Xz(W.outputLen),Xz(W.blockLen)}function NU(W,G=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(G&&W.finished)throw Error("Hash#digest() has already been called")}function Gu(W,G){BW(W);let X=G.outputLen;if(W.length<X)throw Error("digestInto() expects output buffer of length at least "+X)}function HU(...W){for(let G=0;G<W.length;G++)W[G].fill(0)}function oA(W){return new DataView(W.buffer,W.byteOffset,W.byteLength)}function H7(W,G){return W<<32-G|W>>>G}var YM=(()=>typeof Uint8Array.from([]).toHex==="function"&&typeof Uint8Array.fromHex==="function")(),Xu=Array.from({length:256},(W,G)=>G.toString(16).padStart(2,"0"));function YX(W){if(BW(W),YM)return W.toHex();let G="";for(let X=0;X<W.length;X++)G+=Xu[W[X]];return G}var t7={_0:48,_9:57,A:65,F:70,a:97,f:102};function uD(W){if(W>=t7._0&&W<=t7._9)return W-t7._0;if(W>=t7.A&&W<=t7.F)return W-(t7.A-10);if(W>=t7.a&&W<=t7.f)return W-(t7.a-10);return}function AU(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);if(YM)return Uint8Array.fromHex(W);let G=W.length,X=G/2;if(G%2)throw Error("hex string expected, got unpadded hex of length "+G);let Y=new Uint8Array(X);for(let Z=0,V=0;Z<X;Z++,V+=2){let Q=uD(W.charCodeAt(V)),J=uD(W.charCodeAt(V+1));if(Q===void 0||J===void 0){let U=W[V]+W[V+1];throw Error('hex string expected, got non-hex character "'+U+'" at index '+V)}Y[Z]=Q*16+J}return Y}function ZM(W){if(typeof W!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(W))}function Hz(W){if(typeof W==="string")W=ZM(W);return BW(W),W}function A7(...W){let G=0;for(let Y=0;Y<W.length;Y++){let Z=W[Y];BW(Z),G+=Z.length}let X=new Uint8Array(G);for(let Y=0,Z=0;Y<W.length;Y++){let V=W[Y];X.set(V,Z),Z+=V.length}return X}class Az{}function Yu(W){let G=(Y)=>W().update(Hz(Y)).digest(),X=W();return G.outputLen=X.outputLen,G.blockLen=X.blockLen,G.create=()=>W(),G}function TU(W=32){if(WX&&typeof WX.getRandomValues==="function")return WX.getRandomValues(new Uint8Array(W));if(WX&&typeof WX.randomBytes==="function")return Uint8Array.from(WX.randomBytes(W));throw Error("crypto.getRandomValues must be defined")}function Zu(W,G,X,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(G,X,Y);let Z=BigInt(32),V=BigInt(4294967295),Q=Number(X>>Z&V),J=Number(X&V),U=Y?4:0,q=Y?0:4;W.setUint32(G+U,Q,Y),W.setUint32(G+q,J,Y)}function Vu(W,G,X){return W&G^~W&X}function Qu(W,G,X){return W&G^W&X^G&X}class VM extends Az{constructor(W,G,X,Y){super();this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=W,this.outputLen=G,this.padOffset=X,this.isLE=Y,this.buffer=new Uint8Array(W),this.view=oA(this.buffer)}update(W){NU(this),W=Hz(W),BW(W);let{view:G,buffer:X,blockLen:Y}=this,Z=W.length;for(let V=0;V<Z;){let Q=Math.min(Y-this.pos,Z-V);if(Q===Y){let J=oA(W);for(;Y<=Z-V;V+=Y)this.process(J,V);continue}if(X.set(W.subarray(V,V+Q),this.pos),this.pos+=Q,V+=Q,this.pos===Y)this.process(G,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){NU(this),Gu(W,this),this.finished=!0;let{buffer:G,view:X,blockLen:Y,isLE:Z}=this,{pos:V}=this;if(G[V++]=128,HU(this.buffer.subarray(V)),this.padOffset>Y-V)this.process(X,0),V=0;for(let N=V;N<Y;N++)G[N]=0;Zu(X,Y-8,BigInt(this.length*8),Z),this.process(X,0);let Q=oA(W),J=this.outputLen;if(J%4)throw Error("_sha2: outputLen should be aligned to 32bit");let U=J/4,q=this.get();if(U>q.length)throw Error("_sha2: outputLen bigger than state");for(let N=0;N<U;N++)Q.setUint32(4*N,q[N],Z)}digest(){let{buffer:W,outputLen:G}=this;this.digestInto(W);let X=W.slice(0,G);return this.destroy(),X}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:G,buffer:X,length:Y,finished:Z,destroyed:V,pos:Q}=this;if(W.destroyed=V,W.finished=Z,W.length=Y,W.pos=Q,Y%G)W.buffer.set(X);return W}clone(){return this._cloneInto()}}var N6=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Ju=Uint32Array.from([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]),H6=new Uint32Array(64);class QM extends VM{constructor(W=32){super(64,W,8,!1);this.A=N6[0]|0,this.B=N6[1]|0,this.C=N6[2]|0,this.D=N6[3]|0,this.E=N6[4]|0,this.F=N6[5]|0,this.G=N6[6]|0,this.H=N6[7]|0}get(){let{A:W,B:G,C:X,D:Y,E:Z,F:V,G:Q,H:J}=this;return[W,G,X,Y,Z,V,Q,J]}set(W,G,X,Y,Z,V,Q,J){this.A=W|0,this.B=G|0,this.C=X|0,this.D=Y|0,this.E=Z|0,this.F=V|0,this.G=Q|0,this.H=J|0}process(W,G){for(let N=0;N<16;N++,G+=4)H6[N]=W.getUint32(G,!1);for(let N=16;N<64;N++){let A=H6[N-15],H=H6[N-2],I=H7(A,7)^H7(A,18)^A>>>3,w=H7(H,17)^H7(H,19)^H>>>10;H6[N]=w+H6[N-7]+I+H6[N-16]|0}let{A:X,B:Y,C:Z,D:V,E:Q,F:J,G:U,H:q}=this;for(let N=0;N<64;N++){let A=H7(Q,6)^H7(Q,11)^H7(Q,25),H=q+A+Vu(Q,J,U)+Ju[N]+H6[N]|0,I=(H7(X,2)^H7(X,13)^H7(X,22))+Qu(X,Y,Z)|0;q=U,U=J,J=Q,Q=V+H|0,V=Z,Z=Y,Y=X,X=H+I|0}X=X+this.A|0,Y=Y+this.B|0,Z=Z+this.C|0,V=V+this.D|0,Q=Q+this.E|0,J=J+this.F|0,U=U+this.G|0,q=q+this.H|0,this.set(X,Y,Z,V,Q,J,U,q)}roundClean(){HU(H6)}destroy(){this.set(0,0,0,0,0,0,0,0),HU(this.buffer)}}var Yz=Yu(()=>new QM);class zz extends Az{constructor(W,G){super();this.finished=!1,this.destroyed=!1,XM(W);let X=Hz(G);if(this.iHash=W.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let Y=this.blockLen,Z=new Uint8Array(Y);Z.set(X.length>Y?W.create().update(X).digest():X);for(let V=0;V<Z.length;V++)Z[V]^=54;this.iHash.update(Z),this.oHash=W.create();for(let V=0;V<Z.length;V++)Z[V]^=106;this.oHash.update(Z),HU(Z)}update(W){return NU(this),this.iHash.update(W),this}digestInto(W){NU(this),BW(W,this.outputLen),this.finished=!0,this.iHash.digestInto(W),this.oHash.update(W),this.oHash.digestInto(W),this.destroy()}digest(){let W=new Uint8Array(this.oHash.outputLen);return this.digestInto(W),W}_cloneInto(W){W||(W=Object.create(Object.getPrototypeOf(this),{}));let{oHash:G,iHash:X,finished:Y,destroyed:Z,blockLen:V,outputLen:Q}=this;return W=W,W.finished=Y,W.destroyed=Z,W.blockLen=V,W.outputLen=Q,W.oHash=G._cloneInto(W.oHash),W.iHash=X._cloneInto(W.iHash),W}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var JM=(W,G,X)=>new zz(W,G).update(X).digest();JM.create=(W,G)=>new zz(W,G);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Iz=BigInt(0),Zz=BigInt(1);function zU(W,G=""){if(typeof W!=="boolean"){let X=G&&`"${G}"`;throw Error(X+"expected boolean, got type="+typeof W)}return W}function MW(W,G,X=""){let Y=MU(W),Z=W?.length,V=G!==void 0;if(!Y||V&&Z!==G){let Q=X&&`"${X}" `,J=V?` of length ${G}`:"",U=Y?`length=${Z}`:`type=${typeof W}`;throw Error(Q+"expected Uint8Array"+J+", got "+U)}return W}function tJ(W){let G=W.toString(16);return G.length&1?"0"+G:G}function UM(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return W===""?Iz:BigInt("0x"+W)}function UX(W){return UM(YX(W))}function qM(W){return BW(W),UM(YX(Uint8Array.from(W).reverse()))}function PU(W,G){return AU(W.toString(16).padStart(G*2,"0"))}function NM(W,G){return PU(W,G).reverse()}function h8(W,G,X){let Y;if(typeof G==="string")try{Y=AU(G)}catch(V){throw Error(W+" must be hex string or Uint8Array, cause: "+V)}else if(MU(G))Y=Uint8Array.from(G);else throw Error(W+" must be hex string or Uint8Array");let Z=Y.length;if(typeof X==="number"&&Z!==X)throw Error(W+" of length "+X+" expected, got "+Z);return Y}var nA=(W)=>typeof W==="bigint"&&Iz<=W;function Vz(W,G,X){return nA(W)&&nA(G)&&nA(X)&&G<=W&&W<X}function Uu(W,G,X,Y){if(!Vz(G,X,Y))throw Error("expected valid "+W+": "+X+" <= n < "+Y+", got "+G)}function HM(W){let G;for(G=0;W>Iz;W>>=Zz,G+=1);return G}var uZ=(W)=>(Zz<<BigInt(W))-Zz;function qu(W,G,X){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof G!=="number"||G<2)throw Error("qByteLen must be a number");if(typeof X!=="function")throw Error("hmacFn must be a function");let Y=(H)=>new Uint8Array(H),Z=(H)=>Uint8Array.of(H),V=Y(W),Q=Y(W),J=0,U=()=>{V.fill(1),Q.fill(0),J=0},q=(...H)=>X(Q,V,...H),N=(H=Y(0))=>{if(Q=q(Z(0),H),V=q(),H.length===0)return;Q=q(Z(1),H),V=q()},A=()=>{if(J++>=1000)throw Error("drbg: tried 1000 values");let H=0,I=[];while(H<G){V=q();let w=V.slice();I.push(w),H+=V.length}return A7(...I)};return(H,I)=>{U(),N(H);let w=void 0;while(!(w=I(A())))N();return U(),w}}function wz(W,G,X={}){if(!W||typeof W!=="object")throw Error("expected valid options object");function Y(Z,V,Q){let J=W[Z];if(Q&&J===void 0)return;let U=typeof J;if(U!==V||J===null)throw Error(`param "${Z}" is invalid: expected ${V}, got ${U}`)}Object.entries(G).forEach(([Z,V])=>Y(Z,V,!1)),Object.entries(X).forEach(([Z,V])=>Y(Z,V,!0))}function hD(W){let G=new WeakMap;return(X,...Y)=>{let Z=G.get(X);if(Z!==void 0)return Z;let V=W(X,...Y);return G.set(X,V),V}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var S9=BigInt(0),H9=BigInt(1),TW=BigInt(2),AM=BigInt(3),zM=BigInt(4),IM=BigInt(5),Nu=BigInt(7),wM=BigInt(8),Hu=BigInt(9),jM=BigInt(16);function w5(W,G){let X=W%G;return X>=S9?X:G+X}function I5(W,G,X){let Y=W;while(G-- >S9)Y*=Y,Y%=X;return Y}function bD(W,G){if(W===S9)throw Error("invert: expected non-zero number");if(G<=S9)throw Error("invert: expected positive modulus, got "+G);let X=w5(W,G),Y=G,Z=S9,V=H9,Q=H9,J=S9;while(X!==S9){let U=Y/X,q=Y%X,N=Z-Q*U,A=V-J*U;Y=X,X=q,Z=Q,V=J,Q=N,J=A}if(Y!==H9)throw Error("invert: does not exist");return w5(Z,G)}function jz(W,G,X){if(!W.eql(W.sqr(G),X))throw Error("Cannot find square root")}function OM(W,G){let X=(W.ORDER+H9)/zM,Y=W.pow(G,X);return jz(W,Y,G),Y}function Au(W,G){let X=(W.ORDER-IM)/wM,Y=W.mul(G,TW),Z=W.pow(Y,X),V=W.mul(G,Z),Q=W.mul(W.mul(V,TW),Z),J=W.mul(V,W.sub(Q,W.ONE));return jz(W,J,G),J}function zu(W){let G=hZ(W),X=KM(W),Y=X(G,G.neg(G.ONE)),Z=X(G,Y),V=X(G,G.neg(Y)),Q=(W+Nu)/jM;return(J,U)=>{let q=J.pow(U,Q),N=J.mul(q,Y),A=J.mul(q,Z),H=J.mul(q,V),I=J.eql(J.sqr(N),U),w=J.eql(J.sqr(A),U);q=J.cmov(q,N,I),N=J.cmov(H,A,w);let C=J.eql(J.sqr(N),U),D=J.cmov(q,N,C);return jz(J,D,U),D}}function KM(W){if(W<AM)throw Error("sqrt is not defined for small field");let G=W-H9,X=0;while(G%TW===S9)G/=TW,X++;let Y=TW,Z=hZ(W);while(mD(Z,Y)===1)if(Y++>1000)throw Error("Cannot find square root: probably non-prime P");if(X===1)return OM;let V=Z.pow(Y,G),Q=(G+H9)/TW;return function(J,U){if(J.is0(U))return U;if(mD(J,U)!==1)throw Error("Cannot find square root");let q=X,N=J.mul(J.ONE,V),A=J.pow(U,G),H=J.pow(U,Q);while(!J.eql(A,J.ONE)){if(J.is0(A))return J.ZERO;let I=1,w=J.sqr(A);while(!J.eql(w,J.ONE))if(I++,w=J.sqr(w),I===q)throw Error("Cannot find square root");let C=H9<<BigInt(q-I-1),D=J.pow(N,C);q=I,N=J.sqr(D),A=J.mul(A,N),H=J.mul(H,D)}return H}}function Iu(W){if(W%zM===AM)return OM;if(W%wM===IM)return Au;if(W%jM===Hu)return zu(W);return KM(W)}var wu=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function ju(W){let G={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},X=wu.reduce((Y,Z)=>{return Y[Z]="function",Y},G);return wz(W,X),W}function Ou(W,G,X){if(X<S9)throw Error("invalid exponent, negatives unsupported");if(X===S9)return W.ONE;if(X===H9)return G;let Y=W.ONE,Z=G;while(X>S9){if(X&H9)Y=W.mul(Y,Z);Z=W.sqr(Z),X>>=H9}return Y}function CM(W,G,X=!1){let Y=Array(G.length).fill(X?W.ZERO:void 0),Z=G.reduce((Q,J,U)=>{if(W.is0(J))return Q;return Y[U]=Q,W.mul(Q,J)},W.ONE),V=W.inv(Z);return G.reduceRight((Q,J,U)=>{if(W.is0(J))return Q;return Y[U]=W.mul(Q,Y[U]),W.mul(Q,J)},V),Y}function mD(W,G){let X=(W.ORDER-H9)/TW,Y=W.pow(G,X),Z=W.eql(Y,W.ONE),V=W.eql(Y,W.ZERO),Q=W.eql(Y,W.neg(W.ONE));if(!Z&&!V&&!Q)throw Error("invalid Legendre symbol result");return Z?1:V?0:-1}function DM(W,G){if(G!==void 0)Xz(G);let X=G!==void 0?G:W.toString(2).length,Y=Math.ceil(X/8);return{nBitLength:X,nByteLength:Y}}function hZ(W,G,X=!1,Y={}){if(W<=S9)throw Error("invalid field: expected ORDER > 0, got "+W);let Z=void 0,V=void 0,Q=!1,J=void 0;if(typeof G==="object"&&G!=null){if(Y.sqrt||X)throw Error("cannot specify opts in two arguments");let H=G;if(H.BITS)Z=H.BITS;if(H.sqrt)V=H.sqrt;if(typeof H.isLE==="boolean")X=H.isLE;if(typeof H.modFromBytes==="boolean")Q=H.modFromBytes;J=H.allowedLengths}else{if(typeof G==="number")Z=G;if(Y.sqrt)V=Y.sqrt}let{nBitLength:U,nByteLength:q}=DM(W,Z);if(q>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let N,A=Object.freeze({ORDER:W,isLE:X,BITS:U,BYTES:q,MASK:uZ(U),ZERO:S9,ONE:H9,allowedLengths:J,create:(H)=>w5(H,W),isValid:(H)=>{if(typeof H!=="bigint")throw Error("invalid field element: expected bigint, got "+typeof H);return S9<=H&&H<W},is0:(H)=>H===S9,isValidNot0:(H)=>!A.is0(H)&&A.isValid(H),isOdd:(H)=>(H&H9)===H9,neg:(H)=>w5(-H,W),eql:(H,I)=>H===I,sqr:(H)=>w5(H*H,W),add:(H,I)=>w5(H+I,W),sub:(H,I)=>w5(H-I,W),mul:(H,I)=>w5(H*I,W),pow:(H,I)=>Ou(A,H,I),div:(H,I)=>w5(H*bD(I,W),W),sqrN:(H)=>H*H,addN:(H,I)=>H+I,subN:(H,I)=>H-I,mulN:(H,I)=>H*I,inv:(H)=>bD(H,W),sqrt:V||((H)=>{if(!N)N=Iu(W);return N(A,H)}),toBytes:(H)=>X?NM(H,q):PU(H,q),fromBytes:(H,I=!0)=>{if(J){if(!J.includes(H.length)||H.length>q)throw Error("Field.fromBytes: expected "+J+" bytes, got "+H.length);let C=new Uint8Array(q);C.set(H,X?0:C.length-H.length),H=C}if(H.length!==q)throw Error("Field.fromBytes: expected "+q+" bytes, got "+H.length);let w=X?qM(H):UX(H);if(Q)w=w5(w,W);if(!I){if(!A.isValid(w))throw Error("invalid field element: outside of range 0..ORDER")}return w},invertBatch:(H)=>CM(A,H),cmov:(H,I,w)=>w?I:H});return Object.freeze(A)}function MM(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let G=W.toString(2).length;return Math.ceil(G/8)}function TM(W){let G=MM(W);return G+Math.ceil(G/2)}function PM(W,G,X=!1){let Y=W.length,Z=MM(G),V=TM(G);if(Y<16||Y<V||Y>1024)throw Error("expected "+V+"-1024 bytes of input, got "+Y);let Q=X?qM(W):UX(W),J=w5(Q,G-H9)+H9;return X?NM(J,Z):PU(J,Z)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var QX=BigInt(0),PW=BigInt(1);function IU(W,G){let X=G.negate();return W?X:G}function iA(W,G){let X=CM(W.Fp,G.map((Y)=>Y.Z));return G.map((Y,Z)=>W.fromAffine(Y.toAffine(X[Z])))}function RM(W,G){if(!Number.isSafeInteger(W)||W<=0||W>G)throw Error("invalid window size, expected [1.."+G+"], got W="+W)}function rA(W,G){RM(W,G);let X=Math.ceil(G/W)+1,Y=2**(W-1),Z=2**W,V=uZ(W),Q=BigInt(W);return{windows:X,windowSize:Y,mask:V,maxNumber:Z,shiftBy:Q}}function fD(W,G,X){let{windowSize:Y,mask:Z,maxNumber:V,shiftBy:Q}=X,J=Number(W&Z),U=W>>Q;if(J>Y)J-=V,U+=PW;let q=G*Y,N=q+Math.abs(J)-1,A=J===0,H=J<0,I=G%2!==0;return{nextN:U,offset:N,isZero:A,isNeg:H,isNegF:I,offsetF:q}}function Ku(W,G){if(!Array.isArray(W))throw Error("array expected");W.forEach((X,Y)=>{if(!(X instanceof G))throw Error("invalid point at index "+Y)})}function Cu(W,G){if(!Array.isArray(W))throw Error("array of scalars expected");W.forEach((X,Y)=>{if(!G.isValid(X))throw Error("invalid scalar at index "+Y)})}var aA=new WeakMap,LM=new WeakMap;function sA(W){return LM.get(W)||1}function cD(W){if(W!==QX)throw Error("invalid wNAF")}class BM{constructor(W,G){this.BASE=W.BASE,this.ZERO=W.ZERO,this.Fn=W.Fn,this.bits=G}_unsafeLadder(W,G,X=this.ZERO){let Y=W;while(G>QX){if(G&PW)X=X.add(Y);Y=Y.double(),G>>=PW}return X}precomputeWindow(W,G){let{windows:X,windowSize:Y}=rA(G,this.bits),Z=[],V=W,Q=V;for(let J=0;J<X;J++){Q=V,Z.push(Q);for(let U=1;U<Y;U++)Q=Q.add(V),Z.push(Q);V=Q.double()}return Z}wNAF(W,G,X){if(!this.Fn.isValid(X))throw Error("invalid scalar");let Y=this.ZERO,Z=this.BASE,V=rA(W,this.bits);for(let Q=0;Q<V.windows;Q++){let{nextN:J,offset:U,isZero:q,isNeg:N,isNegF:A,offsetF:H}=fD(X,Q,V);if(X=J,q)Z=Z.add(IU(A,G[H]));else Y=Y.add(IU(N,G[U]))}return cD(X),{p:Y,f:Z}}wNAFUnsafe(W,G,X,Y=this.ZERO){let Z=rA(W,this.bits);for(let V=0;V<Z.windows;V++){if(X===QX)break;let{nextN:Q,offset:J,isZero:U,isNeg:q}=fD(X,V,Z);if(X=Q,U)continue;else{let N=G[J];Y=Y.add(q?N.negate():N)}}return cD(X),Y}getPrecomputes(W,G,X){let Y=aA.get(G);if(!Y){if(Y=this.precomputeWindow(G,W),W!==1){if(typeof X==="function")Y=X(Y);aA.set(G,Y)}}return Y}cached(W,G,X){let Y=sA(W);return this.wNAF(Y,this.getPrecomputes(Y,W,X),G)}unsafe(W,G,X,Y){let Z=sA(W);if(Z===1)return this._unsafeLadder(W,G,Y);return this.wNAFUnsafe(Z,this.getPrecomputes(Z,W,X),G,Y)}createCache(W,G){RM(G,this.bits),LM.set(W,G),aA.delete(W)}hasCache(W){return sA(W)!==1}}function Du(W,G,X,Y){let Z=G,V=W.ZERO,Q=W.ZERO;while(X>QX||Y>QX){if(X&PW)V=V.add(Z);if(Y&PW)Q=Q.add(Z);Z=Z.double(),X>>=PW,Y>>=PW}return{p1:V,p2:Q}}function Mu(W,G,X,Y){Ku(X,W),Cu(Y,G);let Z=X.length,V=Y.length;if(Z!==V)throw Error("arrays of points and scalars must have equal length");let Q=W.ZERO,J=HM(BigInt(Z)),U=1;if(J>12)U=J-3;else if(J>4)U=J-2;else if(J>0)U=2;let q=uZ(U),N=Array(Number(q)+1).fill(Q),A=Math.floor((G.BITS-1)/U)*U,H=Q;for(let I=A;I>=0;I-=U){N.fill(Q);for(let C=0;C<V;C++){let D=Y[C],x=Number(D>>BigInt(I)&q);N[x]=N[x].add(X[C])}let w=Q;for(let C=N.length-1,D=Q;C>0;C--)D=D.add(N[C]),w=w.add(D);if(H=H.add(w),I!==0)for(let C=0;C<U;C++)H=H.double()}return H}function pD(W,G,X){if(G){if(G.ORDER!==W)throw Error("Field.ORDER must match order: Fp == p, Fn == n");return ju(G),G}else return hZ(W,{isLE:X})}function Tu(W,G,X={},Y){if(Y===void 0)Y=W==="edwards";if(!G||typeof G!=="object")throw Error(`expected valid ${W} CURVE object`);for(let J of["p","n","h"]){let U=G[J];if(!(typeof U==="bigint"&&U>QX))throw Error(`CURVE.${J} must be positive bigint`)}let Z=pD(G.p,X.Fp,Y),V=pD(G.n,X.Fn,Y),Q=["Gx","Gy","a",W==="weierstrass"?"b":"d"];for(let J of Q)if(!Z.isValid(G[J]))throw Error(`CURVE.${J} must be valid field element of CURVE.Fp`);return G=Object.freeze(Object.assign({},G)),{CURVE:G,Fp:Z,Fn:V}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var lD=(W,G)=>(W+(W>=0?G:-G)/$M)/G;function Pu(W,G,X){let[[Y,Z],[V,Q]]=G,J=lD(Q*W,X),U=lD(-Z*W,X),q=W-J*Y-U*V,N=-J*Z-U*Q,A=q<G4,H=N<G4;if(A)q=-q;if(H)N=-N;let I=uZ(Math.ceil(HM(X)/2))+ZX;if(q<G4||q>=I||N<G4||N>=I)throw Error("splitScalar (endomorphism): failed, k="+W);return{k1neg:A,k1:q,k2neg:H,k2:N}}function Qz(W){if(!["compact","recovered","der"].includes(W))throw Error('Signature format must be "compact", "recovered", or "der"');return W}function tA(W,G){let X={};for(let Y of Object.keys(G))X[Y]=W[Y]===void 0?G[Y]:W[Y];if(zU(X.lowS,"lowS"),zU(X.prehash,"prehash"),X.format!==void 0)Qz(X.format);return X}class EM extends Error{constructor(W=""){super(W)}}var W4={Err:EM,_tlv:{encode:(W,G)=>{let{Err:X}=W4;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length&1)throw new X("tlv.encode: unpadded data");let Y=G.length/2,Z=tJ(Y);if(Z.length/2&128)throw new X("tlv.encode: long form length too big");let V=Y>127?tJ(Z.length/2|128):"";return tJ(W)+V+Z+G},decode(W,G){let{Err:X}=W4,Y=0;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length<2||G[Y++]!==W)throw new X("tlv.decode: wrong tlv");let Z=G[Y++],V=!!(Z&128),Q=0;if(!V)Q=Z;else{let U=Z&127;if(!U)throw new X("tlv.decode(long): indefinite length not supported");if(U>4)throw new X("tlv.decode(long): byte length is too big");let q=G.subarray(Y,Y+U);if(q.length!==U)throw new X("tlv.decode: length bytes not complete");if(q[0]===0)throw new X("tlv.decode(long): zero leftmost byte");for(let N of q)Q=Q<<8|N;if(Y+=U,Q<128)throw new X("tlv.decode(long): not minimal encoding")}let J=G.subarray(Y,Y+Q);if(J.length!==Q)throw new X("tlv.decode: wrong value length");return{v:J,l:G.subarray(Y+Q)}}},_int:{encode(W){let{Err:G}=W4;if(W<G4)throw new G("integer: negative integers are not allowed");let X=tJ(W);if(Number.parseInt(X[0],16)&8)X="00"+X;if(X.length&1)throw new G("unexpected DER parsing assertion: unpadded hex");return X},decode(W){let{Err:G}=W4;if(W[0]&128)throw new G("invalid signature integer: negative");if(W[0]===0&&!(W[1]&128))throw new G("invalid signature integer: unnecessary leading zero");return UX(W)}},toSig(W){let{Err:G,_int:X,_tlv:Y}=W4,Z=h8("signature",W),{v:V,l:Q}=Y.decode(48,Z);if(Q.length)throw new G("invalid signature: left bytes after parsing");let{v:J,l:U}=Y.decode(2,V),{v:q,l:N}=Y.decode(2,U);if(N.length)throw new G("invalid signature: left bytes after parsing");return{r:X.decode(J),s:X.decode(q)}},hexFromSig(W){let{_tlv:G,_int:X}=W4,Y=G.encode(2,X.encode(W.r)),Z=G.encode(2,X.encode(W.s)),V=Y+Z;return G.encode(48,V)}},G4=BigInt(0),ZX=BigInt(1),$M=BigInt(2),eJ=BigInt(3),Ru=BigInt(4);function RW(W,G){let{BYTES:X}=W,Y;if(typeof G==="bigint")Y=G;else{let Z=h8("private key",G);try{Y=W.fromBytes(Z)}catch(V){throw Error(`invalid private key: expected ui8a of size ${X}, got ${typeof G}`)}}if(!W.isValidNot0(Y))throw Error("invalid private key: out of range [1..N-1]");return Y}function Lu(W,G={}){let X=Tu("weierstrass",W,G),{Fp:Y,Fn:Z}=X,V=X.CURVE,{h:Q,n:J}=V;wz(G,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:U}=G;if(U){if(!Y.is0(V.a)||typeof U.beta!=="bigint"||!Array.isArray(U.basises))throw Error('invalid endo: expected "beta": bigint and "basises": array')}let q=SM(Y,Z);function N(){if(!Y.isOdd)throw Error("compression is not supported: Field does not have .isOdd()")}function A(y,o,B){let{x:R,y:_}=o.toAffine(),S=Y.toBytes(R);if(zU(B,"isCompressed"),B){N();let v=!Y.isOdd(_);return A7(FM(v),S)}else return A7(Uint8Array.of(4),S,Y.toBytes(_))}function H(y){MW(y,void 0,"Point");let{publicKey:o,publicKeyUncompressed:B}=q,R=y.length,_=y[0],S=y.subarray(1);if(R===o&&(_===2||_===3)){let v=Y.fromBytes(S);if(!Y.isValid(v))throw Error("bad point: is not on curve, wrong x");let P=C(v),E;try{E=Y.sqrt(P)}catch(k){let f=k instanceof Error?": "+k.message:"";throw Error("bad point: is not on curve, sqrt error"+f)}N();let b=Y.isOdd(E);if((_&1)===1!==b)E=Y.neg(E);return{x:v,y:E}}else if(R===B&&_===4){let v=Y.BYTES,P=Y.fromBytes(S.subarray(0,v)),E=Y.fromBytes(S.subarray(v,v*2));if(!D(P,E))throw Error("bad point: is not on curve");return{x:P,y:E}}else throw Error(`bad point: got length ${R}, expected compressed=${o} or uncompressed=${B}`)}let I=G.toBytes||A,w=G.fromBytes||H;function C(y){let o=Y.sqr(y),B=Y.mul(o,y);return Y.add(Y.add(B,Y.mul(y,V.a)),V.b)}function D(y,o){let B=Y.sqr(o),R=C(y);return Y.eql(B,R)}if(!D(V.Gx,V.Gy))throw Error("bad curve params: generator point");let x=Y.mul(Y.pow(V.a,eJ),Ru),h=Y.mul(Y.sqr(V.b),BigInt(27));if(Y.is0(Y.add(x,h)))throw Error("bad curve params: a or b");function l(y,o,B=!1){if(!Y.isValid(o)||B&&Y.is0(o))throw Error(`bad point coordinate ${y}`);return o}function u(y){if(!(y instanceof m))throw Error("ProjectivePoint expected")}function n(y){if(!U||!U.basises)throw Error("no endo");return Pu(y,U.basises,Z.ORDER)}let c=hD((y,o)=>{let{X:B,Y:R,Z:_}=y;if(Y.eql(_,Y.ONE))return{x:B,y:R};let S=y.is0();if(o==null)o=S?Y.ONE:Y.inv(_);let v=Y.mul(B,o),P=Y.mul(R,o),E=Y.mul(_,o);if(S)return{x:Y.ZERO,y:Y.ZERO};if(!Y.eql(E,Y.ONE))throw Error("invZ was invalid");return{x:v,y:P}}),p=hD((y)=>{if(y.is0()){if(G.allowInfinityPoint&&!Y.is0(y.Y))return;throw Error("bad point: ZERO")}let{x:o,y:B}=y.toAffine();if(!Y.isValid(o)||!Y.isValid(B))throw Error("bad point: x or y not field elements");if(!D(o,B))throw Error("bad point: equation left != right");if(!y.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});function W0(y,o,B,R,_){return B=new m(Y.mul(B.X,y),B.Y,B.Z),o=IU(R,o),B=IU(_,B),o.add(B)}class m{constructor(y,o,B){this.X=l("x",y),this.Y=l("y",o,!0),this.Z=l("z",B),Object.freeze(this)}static CURVE(){return V}static fromAffine(y){let{x:o,y:B}=y||{};if(!y||!Y.isValid(o)||!Y.isValid(B))throw Error("invalid affine point");if(y instanceof m)throw Error("projective point not allowed");if(Y.is0(o)&&Y.is0(B))return m.ZERO;return new m(o,B,Y.ONE)}static fromBytes(y){let o=m.fromAffine(w(MW(y,void 0,"point")));return o.assertValidity(),o}static fromHex(y){return m.fromBytes(h8("pointHex",y))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(y=8,o=!0){if(U0.createCache(this,y),!o)this.multiply(eJ);return this}assertValidity(){p(this)}hasEvenY(){let{y}=this.toAffine();if(!Y.isOdd)throw Error("Field doesn't support isOdd");return!Y.isOdd(y)}equals(y){u(y);let{X:o,Y:B,Z:R}=this,{X:_,Y:S,Z:v}=y,P=Y.eql(Y.mul(o,v),Y.mul(_,R)),E=Y.eql(Y.mul(B,v),Y.mul(S,R));return P&&E}negate(){return new m(this.X,Y.neg(this.Y),this.Z)}double(){let{a:y,b:o}=V,B=Y.mul(o,eJ),{X:R,Y:_,Z:S}=this,v=Y.ZERO,P=Y.ZERO,E=Y.ZERO,b=Y.mul(R,R),k=Y.mul(_,_),f=Y.mul(S,S),e=Y.mul(R,_);return e=Y.add(e,e),E=Y.mul(R,S),E=Y.add(E,E),v=Y.mul(y,E),P=Y.mul(B,f),P=Y.add(v,P),v=Y.sub(k,P),P=Y.add(k,P),P=Y.mul(v,P),v=Y.mul(e,v),E=Y.mul(B,E),f=Y.mul(y,f),e=Y.sub(b,f),e=Y.mul(y,e),e=Y.add(e,E),E=Y.add(b,b),b=Y.add(E,b),b=Y.add(b,f),b=Y.mul(b,e),P=Y.add(P,b),f=Y.mul(_,S),f=Y.add(f,f),b=Y.mul(f,e),v=Y.sub(v,b),E=Y.mul(f,k),E=Y.add(E,E),E=Y.add(E,E),new m(v,P,E)}add(y){u(y);let{X:o,Y:B,Z:R}=this,{X:_,Y:S,Z:v}=y,P=Y.ZERO,E=Y.ZERO,b=Y.ZERO,k=V.a,f=Y.mul(V.b,eJ),e=Y.mul(o,_),q0=Y.mul(B,S),Q0=Y.mul(R,v),$0=Y.add(o,B),D0=Y.add(_,S);$0=Y.mul($0,D0),D0=Y.add(e,q0),$0=Y.sub($0,D0),D0=Y.add(o,R);let x0=Y.add(_,v);return D0=Y.mul(D0,x0),x0=Y.add(e,Q0),D0=Y.sub(D0,x0),x0=Y.add(B,R),P=Y.add(S,v),x0=Y.mul(x0,P),P=Y.add(q0,Q0),x0=Y.sub(x0,P),b=Y.mul(k,D0),P=Y.mul(f,Q0),b=Y.add(P,b),P=Y.sub(q0,b),b=Y.add(q0,b),E=Y.mul(P,b),q0=Y.add(e,e),q0=Y.add(q0,e),Q0=Y.mul(k,Q0),D0=Y.mul(f,D0),q0=Y.add(q0,Q0),Q0=Y.sub(e,Q0),Q0=Y.mul(k,Q0),D0=Y.add(D0,Q0),e=Y.mul(q0,D0),E=Y.add(E,e),e=Y.mul(x0,D0),P=Y.mul($0,P),P=Y.sub(P,e),e=Y.mul($0,q0),b=Y.mul(x0,b),b=Y.add(b,e),new m(P,E,b)}subtract(y){return this.add(y.negate())}is0(){return this.equals(m.ZERO)}multiply(y){let{endo:o}=G;if(!Z.isValidNot0(y))throw Error("invalid scalar: out of range");let B,R,_=(S)=>U0.cached(this,S,(v)=>iA(m,v));if(o){let{k1neg:S,k1:v,k2neg:P,k2:E}=n(y),{p:b,f:k}=_(v),{p:f,f:e}=_(E);R=k.add(e),B=W0(o.beta,b,f,S,P)}else{let{p:S,f:v}=_(y);B=S,R=v}return iA(m,[B,R])[0]}multiplyUnsafe(y){let{endo:o}=G,B=this;if(!Z.isValid(y))throw Error("invalid scalar: out of range");if(y===G4||B.is0())return m.ZERO;if(y===ZX)return B;if(U0.hasCache(this))return this.multiply(y);if(o){let{k1neg:R,k1:_,k2neg:S,k2:v}=n(y),{p1:P,p2:E}=Du(m,B,_,v);return W0(o.beta,P,E,R,S)}else return U0.unsafe(B,y)}multiplyAndAddUnsafe(y,o,B){let R=this.multiplyUnsafe(o).add(y.multiplyUnsafe(B));return R.is0()?void 0:R}toAffine(y){return c(this,y)}isTorsionFree(){let{isTorsionFree:y}=G;if(Q===ZX)return!0;if(y)return y(m,this);return U0.unsafe(this,J).is0()}clearCofactor(){let{clearCofactor:y}=G;if(Q===ZX)return this;if(y)return y(m,this);return this.multiplyUnsafe(Q)}isSmallOrder(){return this.multiplyUnsafe(Q).is0()}toBytes(y=!0){return zU(y,"isCompressed"),this.assertValidity(),I(m,this,y)}toHex(y=!0){return YX(this.toBytes(y))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(y=!0){return this.toBytes(y)}_setWindowSize(y){this.precompute(y)}static normalizeZ(y){return iA(m,y)}static msm(y,o){return Mu(m,Z,y,o)}static fromPrivateKey(y){return m.BASE.multiply(RW(Z,y))}}m.BASE=new m(V.Gx,V.Gy,Y.ONE),m.ZERO=new m(Y.ZERO,Y.ONE,Y.ZERO),m.Fp=Y,m.Fn=Z;let Y0=Z.BITS,U0=new BM(m,G.endo?Math.ceil(Y0/2):Y0);return m.BASE.precompute(8),m}function FM(W){return Uint8Array.of(W?2:3)}function SM(W,G){return{secretKey:G.BYTES,publicKey:1+W.BYTES,publicKeyUncompressed:1+2*W.BYTES,publicKeyHasPrefix:!0,signature:2*G.BYTES}}function Bu(W,G={}){let{Fn:X}=W,Y=G.randomBytes||TU,Z=Object.assign(SM(W.Fp,X),{seed:TM(X.ORDER)});function V(H){try{return!!RW(X,H)}catch(I){return!1}}function Q(H,I){let{publicKey:w,publicKeyUncompressed:C}=Z;try{let D=H.length;if(I===!0&&D!==w)return!1;if(I===!1&&D!==C)return!1;return!!W.fromBytes(H)}catch(D){return!1}}function J(H=Y(Z.seed)){return PM(MW(H,Z.seed,"seed"),X.ORDER)}function U(H,I=!0){return W.BASE.multiply(RW(X,H)).toBytes(I)}function q(H){let I=J(H);return{secretKey:I,publicKey:U(I)}}function N(H){if(typeof H==="bigint")return!1;if(H instanceof W)return!0;let{secretKey:I,publicKey:w,publicKeyUncompressed:C}=Z;if(X.allowedLengths||I===w)return;let D=h8("key",H).length;return D===w||D===C}function A(H,I,w=!0){if(N(H)===!0)throw Error("first arg must be private key");if(N(I)===!1)throw Error("second arg must be public key");let C=RW(X,H);return W.fromHex(I).multiply(C).toBytes(w)}return Object.freeze({getPublicKey:U,getSharedSecret:A,keygen:q,Point:W,utils:{isValidSecretKey:V,isValidPublicKey:Q,randomSecretKey:J,isValidPrivateKey:V,randomPrivateKey:J,normPrivateKeyToScalar:(H)=>RW(X,H),precompute(H=8,I=W.BASE){return I.precompute(H,!1)}},lengths:Z})}function Eu(W,G,X={}){XM(G),wz(X,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let Y=X.randomBytes||TU,Z=X.hmac||((B,...R)=>JM(G,B,A7(...R))),{Fp:V,Fn:Q}=W,{ORDER:J,BITS:U}=Q,{keygen:q,getPublicKey:N,getSharedSecret:A,utils:H,lengths:I}=Bu(W,X),w={prehash:!1,lowS:typeof X.lowS==="boolean"?X.lowS:!1,format:void 0,extraEntropy:!1},C="compact";function D(B){let R=J>>ZX;return B>R}function x(B,R){if(!Q.isValidNot0(R))throw Error(`invalid signature ${B}: out of range 1..Point.Fn.ORDER`);return R}function h(B,R){Qz(R);let _=I.signature,S=R==="compact"?_:R==="recovered"?_+1:void 0;return MW(B,S,`${R} signature`)}class l{constructor(B,R,_){if(this.r=x("r",B),this.s=x("s",R),_!=null)this.recovery=_;Object.freeze(this)}static fromBytes(B,R=C){h(B,R);let _;if(R==="der"){let{r:E,s:b}=W4.toSig(MW(B));return new l(E,b)}if(R==="recovered")_=B[0],R="compact",B=B.subarray(1);let S=Q.BYTES,v=B.subarray(0,S),P=B.subarray(S,S*2);return new l(Q.fromBytes(v),Q.fromBytes(P),_)}static fromHex(B,R){return this.fromBytes(AU(B),R)}addRecoveryBit(B){return new l(this.r,this.s,B)}recoverPublicKey(B){let R=V.ORDER,{r:_,s:S,recovery:v}=this;if(v==null||![0,1,2,3].includes(v))throw Error("recovery id invalid");if(J*$M<R&&v>1)throw Error("recovery id is ambiguous for h>1 curve");let P=v===2||v===3?_+J:_;if(!V.isValid(P))throw Error("recovery id 2 or 3 invalid");let E=V.toBytes(P),b=W.fromBytes(A7(FM((v&1)===0),E)),k=Q.inv(P),f=n(h8("msgHash",B)),e=Q.create(-f*k),q0=Q.create(S*k),Q0=W.BASE.multiplyUnsafe(e).add(b.multiplyUnsafe(q0));if(Q0.is0())throw Error("point at infinify");return Q0.assertValidity(),Q0}hasHighS(){return D(this.s)}toBytes(B=C){if(Qz(B),B==="der")return AU(W4.hexFromSig(this));let R=Q.toBytes(this.r),_=Q.toBytes(this.s);if(B==="recovered"){if(this.recovery==null)throw Error("recovery bit must be present");return A7(Uint8Array.of(this.recovery),R,_)}return A7(R,_)}toHex(B){return YX(this.toBytes(B))}assertValidity(){}static fromCompact(B){return l.fromBytes(h8("sig",B),"compact")}static fromDER(B){return l.fromBytes(h8("sig",B),"der")}normalizeS(){return this.hasHighS()?new l(this.r,Q.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return YX(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return YX(this.toBytes("compact"))}}let u=X.bits2int||function(B){if(B.length>8192)throw Error("input is too large");let R=UX(B),_=B.length*8-U;return _>0?R>>BigInt(_):R},n=X.bits2int_modN||function(B){return Q.create(u(B))},c=uZ(U);function p(B){return Uu("num < 2^"+U,B,G4,c),Q.toBytes(B)}function W0(B,R){return MW(B,void 0,"message"),R?MW(G(B),void 0,"prehashed message"):B}function m(B,R,_){if(["recovered","canonical"].some((Q0)=>(Q0 in _)))throw Error("sign() legacy options not supported");let{lowS:S,prehash:v,extraEntropy:P}=tA(_,w);B=W0(B,v);let E=n(B),b=RW(Q,R),k=[p(b),p(E)];if(P!=null&&P!==!1){let Q0=P===!0?Y(I.secretKey):P;k.push(h8("extraEntropy",Q0))}let f=A7(...k),e=E;function q0(Q0){let $0=u(Q0);if(!Q.isValidNot0($0))return;let D0=Q.inv($0),x0=W.BASE.multiply($0).toAffine(),N1=Q.create(x0.x);if(N1===G4)return;let U1=Q.create(D0*Q.create(e+N1*b));if(U1===G4)return;let J0=(x0.x===N1?0:2)|Number(x0.y&ZX),B0=U1;if(S&&D(U1))B0=Q.neg(U1),J0^=1;return new l(N1,B0,J0)}return{seed:f,k2sig:q0}}function Y0(B,R,_={}){B=h8("message",B);let{seed:S,k2sig:v}=m(B,R,_);return qu(G.outputLen,Q.BYTES,Z)(S,v)}function U0(B){let R=void 0,_=typeof B==="string"||MU(B),S=!_&&B!==null&&typeof B==="object"&&typeof B.r==="bigint"&&typeof B.s==="bigint";if(!_&&!S)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(S)R=new l(B.r,B.s);else if(_){try{R=l.fromBytes(h8("sig",B),"der")}catch(v){if(!(v instanceof W4.Err))throw v}if(!R)try{R=l.fromBytes(h8("sig",B),"compact")}catch(v){return!1}}if(!R)return!1;return R}function y(B,R,_,S={}){let{lowS:v,prehash:P,format:E}=tA(S,w);if(_=h8("publicKey",_),R=W0(h8("message",R),P),"strict"in S)throw Error("options.strict was renamed to lowS");let b=E===void 0?U0(B):l.fromBytes(h8("sig",B),E);if(b===!1)return!1;try{let k=W.fromBytes(_);if(v&&b.hasHighS())return!1;let{r:f,s:e}=b,q0=n(R),Q0=Q.inv(e),$0=Q.create(q0*Q0),D0=Q.create(f*Q0),x0=W.BASE.multiplyUnsafe($0).add(k.multiplyUnsafe(D0));if(x0.is0())return!1;return Q.create(x0.x)===f}catch(k){return!1}}function o(B,R,_={}){let{prehash:S}=tA(_,w);return R=W0(R,S),l.fromBytes(B,"recovered").recoverPublicKey(R).toBytes()}return Object.freeze({keygen:q,getPublicKey:N,getSharedSecret:A,utils:H,lengths:I,Point:W,sign:Y0,verify:y,recoverPublicKey:o,Signature:l,hash:G})}function $u(W){let G={a:W.a,b:W.b,p:W.Fp.ORDER,n:W.n,h:W.h,Gx:W.Gx,Gy:W.Gy},X=W.Fp,Y=W.allowedPrivateKeyLengths?Array.from(new Set(W.allowedPrivateKeyLengths.map((Q)=>Math.ceil(Q/2)))):void 0,Z=hZ(G.n,{BITS:W.nBitLength,allowedLengths:Y,modFromBytes:W.wrapPrivateKey}),V={Fp:X,Fn:Z,allowInfinityPoint:W.allowInfinityPoint,endo:W.endo,isTorsionFree:W.isTorsionFree,clearCofactor:W.clearCofactor,fromBytes:W.fromBytes,toBytes:W.toBytes};return{CURVE:G,curveOpts:V}}function Fu(W){let{CURVE:G,curveOpts:X}=$u(W),Y={hmac:W.hmac,randomBytes:W.randomBytes,lowS:W.lowS,bits2int:W.bits2int,bits2int_modN:W.bits2int_modN};return{CURVE:G,curveOpts:X,hash:W.hash,ecdsaOpts:Y}}function Su(W,G){let X=G.Point;return Object.assign({},G,{ProjectivePoint:X,CURVE:Object.assign({},W,DM(X.Fn.ORDER,X.Fn.BITS))})}function xu(W){let{CURVE:G,curveOpts:X,hash:Y,ecdsaOpts:Z}=Fu(W),V=Lu(G,X),Q=Eu(V,Y,Z);return Su(W,Q)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function ku(W,G){let X=(Y)=>xu({...W,hash:Y});return{...X(G),create:X}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var JX={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},_u={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},yu=BigInt(0),dD=BigInt(1),Jz=BigInt(2);function vu(W){let G=JX.p,X=BigInt(3),Y=BigInt(6),Z=BigInt(11),V=BigInt(22),Q=BigInt(23),J=BigInt(44),U=BigInt(88),q=W*W*W%G,N=q*q*W%G,A=I5(N,X,G)*N%G,H=I5(A,X,G)*N%G,I=I5(H,Jz,G)*q%G,w=I5(I,Z,G)*I%G,C=I5(w,V,G)*w%G,D=I5(C,J,G)*C%G,x=I5(D,U,G)*D%G,h=I5(x,J,G)*C%G,l=I5(h,X,G)*N%G,u=I5(l,Q,G)*w%G,n=I5(u,Y,G)*q%G,c=I5(n,Jz,G);if(!wU.eql(wU.sqr(c),W))throw Error("Cannot find square root");return c}var wU=hZ(JX.p,{sqrt:vu}),xM=ku({...JX,Fp:wU,lowS:!0,endo:_u},Yz),oD={};function jU(W,...G){let X=oD[W];if(X===void 0){let Y=Yz(ZM(W));X=A7(Y,Y),oD[W]=X}return Yz(A7(X,...G))}var Oz=(W)=>W.toBytes(!0).slice(1),qX=(()=>xM.Point)(),Kz=(W)=>W%Jz===yu;function Uz(W){let{Fn:G,BASE:X}=qX,Y=RW(G,W),Z=X.multiply(Y);return{scalar:Kz(Z.y)?Y:G.neg(Y),bytes:Oz(Z)}}function kM(W){let G=wU;if(!G.isValidNot0(W))throw Error("invalid x: Fail if x \u2265 p");let X=G.create(W*W),Y=G.create(X*W+BigInt(7)),Z=G.sqrt(Y);if(!Kz(Z))Z=G.neg(Z);let V=qX.fromAffine({x:W,y:Z});return V.assertValidity(),V}var gZ=UX;function _M(...W){return qX.Fn.create(gZ(jU("BIP0340/challenge",...W)))}function nD(W){return Uz(W).bytes}function gu(W,G,X=TU(32)){let{Fn:Y}=qX,Z=h8("message",W),{bytes:V,scalar:Q}=Uz(G),J=h8("auxRand",X,32),U=Y.toBytes(Q^gZ(jU("BIP0340/aux",J))),q=jU("BIP0340/nonce",U,V,Z),{bytes:N,scalar:A}=Uz(q),H=_M(N,V,Z),I=new Uint8Array(64);if(I.set(N,0),I.set(Y.toBytes(Y.create(A+H*Q)),32),!yM(I,Z,V))throw Error("sign: Invalid signature produced");return I}function yM(W,G,X){let{Fn:Y,BASE:Z}=qX,V=h8("signature",W,64),Q=h8("message",G),J=h8("publicKey",X,32);try{let U=kM(gZ(J)),q=gZ(V.subarray(0,32));if(!Vz(q,dD,JX.p))return!1;let N=gZ(V.subarray(32,64));if(!Vz(N,dD,JX.n))return!1;let A=_M(Y.toBytes(q),Oz(U),Q),H=Z.multiplyUnsafe(N).add(U.multiplyUnsafe(Y.neg(A))),{x:I,y:w}=H.toAffine();if(H.is0()||!Kz(w)||I!==q)return!1;return!0}catch(U){return!1}}var Cz=(()=>{let W=(X=TU(48))=>{return PM(X,JX.n)};xM.utils.randomSecretKey;function G(X){let Y=W(X);return{secretKey:Y,publicKey:nD(Y)}}return{keygen:G,getPublicKey:nD,sign:gu,verify:yM,Point:qX,utils:{randomSecretKey:W,randomPrivateKey:W,taggedHash:jU,lift_x:kM,pointToBytes:Oz,numberToBytesBE:PU,bytesToNumberBE:UX,mod:w5},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})(),uu=new TextEncoder,hu=new TextDecoder,LW=(W)=>uu.encode(W),kZ=(W)=>hu.decode(W),qz=(W)=>Array.from(W,(G)=>G.toString(16).padStart(2,"0")).join(""),X4=JSON.stringify,OU=JSON.parse,vM=(W,G=Number.MAX_SAFE_INTEGER)=>W.split("").reduce((X,Y)=>X+Y.charCodeAt(0),0)%G,Dz="AES-GCM",bu={},gM="$",uM=",",mu=(W)=>{let G=new Uint8Array(W),X=32768,Y="";for(let Z=0;Z<G.length;Z+=32768)Y+=String.fromCharCode(...G.subarray(Z,Z+32768));return btoa(Y)},fu=(W)=>Uint8Array.from(atob(W),(G)=>G.charCodeAt(0)).buffer,WU=(W)=>bu[W]??=crypto.subtle.digest("SHA-1",LW(W)).then((G)=>{let X=new Uint8Array(G),Y="";for(let Z of X)Y+=Z.toString(36);return Y}),cu=async(W,G,X)=>{let Y=await crypto.subtle.digest("SHA-256",LW(`${W}:${G}:${X}`));return crypto.subtle.importKey("raw",Y,{name:Dz},!1,["encrypt","decrypt"])},pu=async(W,G)=>{let X=crypto.getRandomValues(new Uint8Array(12)),Y=await W,Z=await crypto.subtle.encrypt({name:Dz,iv:X},Y,LW(G));return`${X.join(uM)}${gM}${mu(Z)}`},lu=async(W,G)=>{let[X,Y]=G.split(gM);if(!X||!Y)throw Error("Invalid encrypted payload format");let Z=Uint8Array.from(X.split(uM),Number),V=await W,Q=await crypto.subtle.decrypt({name:Dz,iv:Z},V,fu(Y));return kZ(Q)},_5="GenosRTC",Mz=(W,G)=>Array.from({length:W},G),KU=(W)=>Array.from(crypto.getRandomValues(new Uint8Array(W)),(G)=>"0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"[G%62]).join(""),W8=typeof sessionStorage<"u"?sessionStorage.__genosrtcId??=KU(20):KU(20),XX=Promise.all.bind(Promise),du=typeof window<"u",{entries:ou,fromEntries:hM,keys:Re}=Object,nu=()=>{},e7=(W)=>Error(`GenosRTC: ${W}`),GU=(...W)=>W.join("@"),iu=(W,G)=>{let X=[...W],Y=X.length,Z=()=>{let V=Math.sin(G++)*1e4;return V-Math.floor(V)};while(Y){let V=Math.floor(Z()*Y--);[X[Y],X[V]]=[X[V],X[Y]]}return X},ru=5000,iD="icegatheringstatechange",rD="offer",au="answer",su=[...Mz(3,(W,G)=>`stun:stun${G||""}.l.google.com:19302`),"stun:stun.cloudflare.com:3478"].map((W)=>({urls:W})),aD=(W,{rtcConfig:G,rtcPolyfill:X,turnConfig:Y})=>{let Z=new(X||RTCPeerConnection)({iceServers:[...su,...Y||[]],...G}),V={},Q=!1,J=!1,U,q=(H)=>Object.assign(H,{binaryType:"arraybuffer",bufferedAmountLowThreshold:65535,onmessage:(I)=>V.data?.(I.data),onopen:()=>V.connect?.(),onclose:()=>V.close?.(),onerror:(I)=>!I?.error?.message?.includes("User-Initiated Abort")&&V.error?.(I)}),N=()=>Promise.race([new Promise((H)=>{let I=()=>{if(Z.iceGatheringState==="complete")Z.removeEventListener(iD,I),H()};Z.addEventListener(iD,I),I()}),new Promise((H)=>setTimeout(H,ru))]).then(()=>({type:Z.localDescription.type,sdp:Z.localDescription.sdp.replace(/a=ice-options:trickle\s\n/g,"")}));if(W?q(U=Z.createDataChannel("data")):Z.ondatachannel=({channel:H})=>q(U=H),Z.onnegotiationneeded=async()=>{try{Q=!0,await Z.setLocalDescription(),V.signal?.(await N())}catch(H){V.error?.(H)}finally{Q=!1}},Z.onconnectionstatechange=()=>{if(["disconnected","failed","closed"].includes(Z.connectionState))V.close?.()},Z.ontrack=(H)=>{V.track?.(H.track,H.streams[0]),V.stream?.(H.streams[0])},Z.onremovestream=(H)=>V.stream?.(H.stream),W&&!Z.canTrickleIceCandidates)Z.onnegotiationneeded();let A=()=>Z.getSenders();return{created:Date.now(),connection:Z,get channel(){return U},get isDead(){return Z.connectionState==="closed"},async signal(H){if(U?.readyState==="open"&&!H.sdp?.includes("a=rtpmap"))return;try{if(H.type===rD){if(Q||Z.signalingState!=="stable"&&!J){if(W)return;await XX([Z.setLocalDescription({type:"rollback"}),Z.setRemoteDescription(H)])}else await Z.setRemoteDescription(H);await Z.setLocalDescription();let I=await N();return V.signal?.(I),I}if(H.type===au){J=!0;try{await Z.setRemoteDescription(H)}finally{J=!1}}}catch(I){V.error?.(I)}},sendData:(H)=>{if(U?.readyState==="open")U.send(H)},destroy:()=>{U?.close(),Z.close(),Q=J=!1},setHandlers:(H)=>Object.assign(V,H),offerPromise:W?new Promise((H)=>V.signal=(I)=>I.type===rD&&H(I)):Promise.resolve(),addStream:(H)=>H.getTracks().forEach((I)=>Z.addTrack(I,H)),removeStream:(H)=>A().filter((I)=>H.getTracks().includes(I.track)).forEach((I)=>Z.removeTrack(I)),addTrack:(H,I)=>Z.addTrack(H,I),removeTrack:(H)=>{let I=A().find((w)=>w.track===H);if(I)Z.removeTrack(I)},replaceTrack:(H,I)=>A().find((w)=>w.track===H)?.replaceTrack(I)}},tu=Object.getPrototypeOf(Uint8Array),QU=12,bM=0,JU=bM+QU,UU=JU+1,_Z=UU+1,yZ=_Z+1,xZ=16384-yZ,XU=255,eA="bufferedamountlow",GX=(W)=>`@_${W}`,Wz=100,eu=3,Wh=200,Gh=(W,G,X,Y)=>{let Z=new Map,V=new Map,Q=new Map,J={},U={},q={},N={},A=new Map,H=(S,v)=>{if(!A.has(S))A.set(S,new Set);A.get(S).add(v)},I=(S,v)=>A.get(S)?.delete(v),w=(S,...v)=>A.get(S)?.forEach((P)=>P(...v)),C=(S,v)=>{let P=S?Array.isArray(S)?S:[S]:Z.keys();return Array.from(P,(E)=>{let b=Z.get(E);if(!b)return console.warn(`${_5}: no peer with id ${E}`),null;return v(E,b)}).filter(Boolean)},D=(S)=>{if(!Z.has(S))return;Z.delete(S),delete J[S],delete U[S],delete q[S],delete N[S],w("peer:leave",S),G(S)},x=(S)=>new Promise((v,P)=>{let E=setTimeout(()=>{S.removeEventListener(eA,b),P(Error(`${_5}: bufferLow timeout`))},5000);function b(){clearTimeout(E),S.removeEventListener(eA,b),v()}S.addEventListener(eA,b)}),h=(S)=>{if(Q.has(S))return Q.get(S);if(!S)throw e7("action type is required");let v=LW(S);if(v.byteLength>QU)throw e7(`\u274C "${S}" exceeds ${QU} bytes. Use a shorter name.`);let P=new Uint8Array(QU).map((Q0,$0)=>v[$0]||0),E=0,b=new Map([["message",new Set],["progress",new Set]]),k=(Q0,$0)=>b.get(Q0)?.add($0),f=(Q0,$0)=>b.get(Q0)?.delete($0),e=async(Q0,$0,D0,x0)=>{if(D0&&typeof D0!=="object")throw e7("meta must be object");if(Q0===void 0)throw e7("data cannot be undefined");let N1=Q0 instanceof Blob,U1=N1||Q0 instanceof ArrayBuffer||Q0 instanceof tu,J0=typeof Q0!=="string";if(D0&&!U1)throw e7("meta only allowed with binary");let B0=U1?new Uint8Array(N1?await Q0.arrayBuffer():Q0):LW(J0?X4(Q0):Q0),h0=D0?LW(X4(D0)):null,Y1=Math.ceil(B0.byteLength/xZ)+(D0?1:0)||1;if(Y1>Wz)throw e7(`Message too large, exceeds max chunks ${Wz}`);let w8=Mz(Y1,(x1,E0)=>{let n0=E0===Y1-1,O1=D0&&E0===0,$1=O1?h0:B0.subarray(D0?(E0-1)*xZ:E0*xZ,D0?E0*xZ:(E0+1)*xZ),U8=new Uint8Array(yZ+$1.byteLength);return U8.set(P),U8.set([E],JU),U8.set([n0|O1<<1|U1<<2|J0<<3],UU),U8.set([Math.round((E0+1)/Y1*XU)],_Z),U8.set($1,yZ),U8});return E=E+1&XU,XX(C($0,async(x1,E0)=>{let{channel:n0}=E0;for(let O1=0;O1<Y1;O1++){let $1=0;while(n0.bufferedAmount>n0.bufferedAmountLowThreshold){if($1++>eu)throw e7(`${_5}: send buffer full, max retries reached for peer ${x1}`);try{await x(n0)}catch(U8){console.warn(U8.message),await new Promise((H8)=>setTimeout(H8,Wh))}}if(!Z.has(x1))break;E0.sendData(w8[O1]),x0?.(w8[O1][_Z]/XU,x1,D0)}}))};V.set(S,{listeners:b,send:e});let q0={send:e,on:k,off:f};return Q.set(S,q0),q0},l=(S,v)=>{try{let P=new Uint8Array(v),E=kZ(P.subarray(bM,JU)).replace(/\x00/g,"");if(!V.has(E))return console.warn(`${_5}: unregistered type (${E})`);let[b]=P.subarray(JU,UU),[k]=P.subarray(UU,_Z),[f]=P.subarray(_Z,yZ),e=P.subarray(yZ),q0=Boolean(k&1),Q0=Boolean(k&2),$0=Boolean(k&4),D0=Boolean(k&8),x0=V.get(E),N1=(J[S]||={})[E]||={};if(N1[b]?.chunks?.length>Wz){console.warn(`${_5}: peer ${S} sent too many chunks for nonce ${b}, ignoring.`);return}let U1=N1[b]||={chunks:[]};if(Q0)try{U1.meta=OU(kZ(e))}catch{console.warn(`${_5}: failed to parse meta from peer ${S} for type ${E}`);return}else U1.chunks.push(e);if(x0.listeners.get("progress").forEach((h0)=>{try{h0(f/XU,S,U1.meta)}catch(Y1){console.error(Y1)}}),!q0)return;let J0=new Uint8Array(U1.chunks.reduce((h0,Y1)=>h0+Y1.byteLength,0));U1.chunks.reduce((h0,Y1)=>(J0.set(Y1,h0),h0+Y1.byteLength),0),delete N1[b];let B0;if($0)B0=J0;else if(D0)try{B0=OU(kZ(J0))}catch{console.warn(`${_5}: failed to parse JSON message data from peer ${S} for type ${E}`);return}else B0=kZ(J0);x0.listeners.get("message").forEach((h0)=>{try{h0(B0,S,U1.meta)}catch(Y1){console.error(Y1)}})}catch(P){console.error(`${_5}: error handling data from peer ${S}:`,P)}},u=async()=>{try{await R(""),await new Promise((S)=>setTimeout(S,99))}catch(S){console.warn(`${_5}: error sending leave`,S)}for(let[S,v]of Z){try{v.destroy()}catch{}Z.delete(S)}X()},{send:n,on:c}=h(GX("ping")),{send:p,on:W0}=h(GX("pong")),{send:m,on:Y0}=h(GX("signal")),{send:U0,on:y}=h(GX("stream")),{send:o,on:B}=h(GX("track")),{send:R,on:_}=h(GX("leave"));if(W((S,v)=>{let P=Z.get(v);if(P===S)return;if(P){let E=()=>{};P.setHandlers({data:E,stream:E,track:E,signal:E,close:E,error:E})}Z.set(v,S),S.setHandlers({data:(E)=>l(v,E),stream:(E)=>{w("stream:add",E,v,q[v]),delete q[v]},track:(E,b)=>{w("track:add",E,b,v,N[v]),delete N[v]},signal:(E)=>m(E,v),close:()=>D(v),error:(E)=>{console.error(`${_5}: peer error for ${v}`,E),D(v)}}),w("peer:join",v,Y?.(v))}),c("message",(S,v)=>p("",v)),W0("message",(S,v)=>{U[v]?.(),delete U[v]}),Y0("message",(S,v)=>Z.get(v)?.signal(S)),y("message",(S,v)=>q[v]=S),B("message",(S,v)=>N[v]=S),_("message",(S,v)=>D(v)),du)addEventListener("beforeunload",u);return{on:H,off:I,channel:h,leave:u,ping:async(S)=>{if(!S)throw e7("ping() requires target peer ID");let v=Date.now();return n("",S),await new Promise((P)=>U[S]=P),Date.now()-v},getPeers:()=>hM(Array.from(Z,([S,v])=>[S,v.connection])),addStream:(S,v,P)=>C(v,async(E,b)=>{if(P)await U0(P,E);b.addStream(S)}),removeStream:(S,v)=>C(v,(P,E)=>E.removeStream(S)),addTrack:(S,v,P,E)=>C(P,async(b,k)=>{if(E)await o(E,b);k.addTrack(S,v)}),removeTrack:(S,v)=>C(v,(P,E)=>E.removeTrack(S)),replaceTrack:(S,v,P,E)=>C(P,async(b,k)=>{if(E)await o(E,b);k.replaceTrack(S,v)})}},Xh=5,Yh=10,Zh=2500,YU=57333,Vh=({init:W,subscribe:G,announce:X})=>{let Y={},Z=!1,V,Q;return(J,U,q)=>{let{appId:N}=J;if(Y[N]?.[U])return Y[N][U];if(!J||!U||!N&&!J.firebaseApp)throw e7(!J?"config required":!U?"roomId required":"appId missing");let A=nu;if(!Z){let _=W(J);Q=Mz(Xh,()=>{try{return aD(!0,J)}catch{return null}}).filter(Boolean),V=Array.isArray(_)?_:[_];let S=setInterval(()=>{Q=Q.filter((v)=>{let P=Date.now()-v.created<YU;if(!P)v.destroy();return P})},YU);Y.offerCleanupTimer||=S,Z=!0}let H={},I={},w=new Map,C=new Map,D={},x=GU(_5,N,U),h=WU(x),l=WU(GU(x,W8)),u=cu(J.password||"",N,U),n=(_)=>async(S)=>({type:S.type,sdp:await _(u,S.sdp)}),c=n(lu),p=n(pu),W0=(_)=>{return setTimeout(()=>{if(!_.isDead&&!Object.values(I).includes(_))_.destroy()},YU),_},m=(_)=>{try{return W0(aD(_,J))}catch{return null}},Y0=(_,S)=>{if(I[S]===_)return;I[S]?.destroy(),I[S]=_,A(_,S),H[S]?.forEach((v)=>v!==_&&v.destroy()),delete H[S]},U0=(_,S)=>{if(I[S]===_)delete I[S]},y=(_)=>async(S,v,P)=>{let[E,b]=await XX([h,l]);if(S!==E&&S!==b)return;let{peerId:k,offer:f,answer:e,type:q0}=typeof v==="string"?OU(v):v;if(k&&k!==W8)C.set(k,Date.now());if(q0&&k)D[k]=q0;if(k===W8||I[k])return;if(J.admit&&!J.admit(k))return;if(f){if(H[k]?.[_]&&W8>k)return;let Q0=m(!1);if(!Q0)return;Q0.setHandlers({connect:()=>Y0(Q0,k),close:()=>U0(Q0,k)});try{let $0=await c(f);if(Q0.isDead)return;let[D0,x0]=await XX([WU(GU(x,k)),Q0.signal($0).then(p)]);P(D0,X4({peerId:W8,answer:x0,...J.type&&{type:J.type}}))}catch{q?.({error:"decryption failed (offer)",appId:N,peerId:k,roomId:U})}}else if(e){let Q0=H[k]?.[_];if(!Q0||Q0.isDead)return;Q0.setHandlers({connect:()=>Y0(Q0,k),close:()=>U0(Q0,k)});try{Q0.signal(await c(e))}catch{q?.({error:"decryption failed (answer)",appId:N,peerId:k,roomId:U})}}else{let Q0=H[k]||=[];if(Q0.forEach((U1,J0)=>{if(U1&&(U1.isDead||Date.now()-(U1.dialedAt??U1.created)>YU)){if(U1.isDead)w.set(k,Date.now()+30000);U1.destroy(),delete Q0[J0]}}),Q0[_]||Q0.filter(Boolean).length>=2||w.get(k)>Date.now())return;if(Object.values(H).reduce((U1,J0)=>U1+J0.filter((B0)=>B0&&!B0.isDead).length,0)>=Yh)return;let $0=Q.pop(),D0=$0?W0($0):m(!0);if(!D0){w.set(k,Date.now()+30000);return}D0.dialedAt=Date.now();let[x0,{offer:N1}]=await XX([WU(GU(x,k)),D0.offerPromise.then(p).then((U1)=>({offer:U1}))]);Q0[_]=D0,D0.setHandlers({connect:()=>Y0(D0,k),close:()=>U0(D0,k)}),P(x0,X4({peerId:W8,offer:N1,peer:D0,...J.type&&{type:J.type}}))}},o=[],B=[];V.forEach(async(_,S)=>{let v=await _;if(!v)return;let[P,E]=await XX([h,l]);B[S]=G(v,P,E,y(S));let b=async()=>{let k=await X(v,P,E);o[S]=setTimeout(b,typeof k==="number"?k:Zh)};b()}),Y[N]||={};let R=Gh((_)=>A=_,(_)=>delete I[_],()=>R.onCleanup?.(),(_)=>D[_]);return R.onCleanup=()=>{if(delete Y[N][U],o.forEach(clearTimeout),B.forEach((_)=>_?.()),Object.keys(Y).length===0)clearInterval(Y.offerCleanupTimer),delete Y.offerCleanupTimer},R._census=()=>{for(let S of Object.keys(I))C.set(S,Date.now());let _=Date.now()-120000;for(let[S,v]of C)if(v<_)C.delete(S);return[...C.keys()]},Y[N][U]=R}},sD=3333,ZU={},mM={},Qh=(W,G)=>{let X={},Y=null,Z=()=>{if(Y)clearTimeout(Y),Y=null;let V=new WebSocket(W);V.onclose=()=>{ZU[W]??=sD,Y=setTimeout(Z,ZU[W]),ZU[W]*=2},V.onmessage=(Q)=>G(Q.data),X.socket=V,X.url=V.url,X.ready=new Promise((Q)=>{V.onopen=()=>{ZU[W]=sD,Q(X)}}),X.send=(Q)=>{if(V.readyState===1)V.send(Q)}};return X.forceReconnect=Z,Z(),mM[W]=X,X};if(typeof window<"u"){let W=()=>{dA.info("\u26A1 [GenosRTC] Network event detected. Forcing reconnection\u2026"),Object.values(mM).forEach((G)=>{if(G.socket&&G.socket.readyState!==WebSocket.OPEN&&G.socket.readyState!==WebSocket.CONNECTING)G.forceReconnect()})};window.addEventListener("online",()=>{dA.info("\u2705 Reconnected to the network."),W()}),window.addEventListener("offline",async()=>{dA.info("\u274C Disconnected from the network.")}),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="visible")W()})}var Jh=(W)=>()=>hM(ou(W).map(([G,X])=>[G,X.socket])),Uh=(W,G,X,Y)=>(W.relayUrls??(Y?iu(G,vM(W.appId)):G)).slice(0,W.relayUrls?.length??W.relayRedundancy??X),qh=["wss://relay.primal.net","wss://ftp.halifax.rwth-aachen.de/nostr","wss://nostr.oxtr.dev","wss://nostr.sathoarder.com","wss://nostr.mom","wss://nos.lol","wss://nostr.vulpem.com","wss://nostr.data.haus"],VX={},Nh=10,fM="x",cM="EVENT",Hh=/pow:\s*(\d+)\s*bits needed\.?/i,Nz=new Set,pM=Cz.utils.randomSecretKey(),Ah=qz(Cz.getPublicKey(pM)),Tz={},vZ={},zh={},lM=()=>Math.floor(Date.now()/1000),dM=(W)=>zh[W]??=vM(W,1e4)+20000,CU=(W)=>W.replace(/\/$/,""),Ih=(W,G)=>{let[X,Y,Z,V]=OU(G);if(X===cM)return vZ[Y]?.(Tz[Y],Z.content);if(X==="NOTICE"||X==="OK"&&!Z){if(+((X==="NOTICE"?Y:V).match(Hh)?.[1]??0)>0){let Q=CU(W);Nz.add(Q),VX[Q]?.close?.(),delete VX[Q]}}},wh=(W)=>{let G=CU(W);if(VX[G])return VX[G];let X=Qh(G,(Y)=>Ih(G,Y));return VX[G]=X},tD=async(W,G)=>{let X={kind:dM(W),content:G,pubkey:Ah,created_at:lM(),tags:[[fM,W]]},Y=LW(X4([0,X.pubkey,X.created_at,X.kind,X.tags,X.content])),Z=new Uint8Array(await crypto.subtle.digest("SHA-256",Y)),V=Cz.sign(Z,pM);return X4([cM,{...X,id:qz(Z),sig:qz(V)}])},eD=(W,G)=>{return Tz[W]=G,X4(["REQ",W,{kinds:[dM(G)],since:lM(),["#"+fM]:[G]}])},WM=(W)=>{return delete Tz[W],X4(["CLOSE",W])},oM=Vh({init:(W)=>{let G=(W?.relayUrls?.length?W.relayUrls:null)??qh;return Uh(W,G,Nh,!1).map(wh).map((X)=>X.ready.then(()=>X).catch(()=>null))},subscribe:(W,G,X,Y)=>{let Z=KU(64),V=KU(64);return vZ[Z]=vZ[V]=(Q,J)=>Y(Q,J,async(U,q)=>{if(Nz.has(CU(W.url)))return;W.send(await tD(U,q))}),W.send(eD(Z,G)),W.send(eD(V,X)),()=>{W.send(WM(Z)),W.send(WM(V)),delete vZ[Z],delete vZ[V]}},announce:async(W,G)=>{if(Nz.has(CU(W.url)))return;W.send(await tD(G,X4({peerId:W8})))}}),Le=Jh(VX),jh={cellSize:"auto",bridgesPerEdge:2,maxCellSize:50,targetCells:100,debug:!1},GM=5000,Oh=3000,Kh=30000,Ch=2000,DU=(W)=>{let G=String(W||"").match(/cell-(\d+)/);return G?Number(G[1]):null},Dh=(W,G)=>{let X=DU(W);if(X==null)return[];let Y=[];for(let Z=1;Z<G;Z*=2){if(X-Z>=0)Y.push(`cell-${X-Z}`);if(X+Z<G)Y.push(`cell-${X+Z}`)}return Y},VU=(W)=>`c${(DU(W)||0).toString(36)}`,Mh=(W,G,X)=>{if(W<=10)return Math.max(2,W);let Y=10,Z=Math.ceil(W/G);return Math.max(Y,Math.min(X,Z))},Th=(W,G)=>{return Math.max(1,Math.ceil(W/G))},nM=(W)=>{let G=0;for(let X=0;X<W.length;X++)G=Math.imul(G^W.charCodeAt(X),2654435761);return G>>>0},Gz=(W,G)=>{let X=0,Y=-1;for(let Z=0;Z<G;Z++){let V=nM(`${W}:${Z}`);if(V>Y)Y=V,X=Z}return X};class qU{constructor(W){this.peerId=W,this.joinedAt=Date.now(),this.lastSeen=Date.now(),this.rttSamples=[],this.stability=1,this.reconnects=0,this.isResponsive=!0,this.connectedCells=new Set}get uptime(){return Date.now()-this.joinedAt}get avgRtt(){if(this.rttSamples.length===0)return 1/0;return Math.round(this.rttSamples.reduce((W,G)=>W+G,0)/this.rttSamples.length)}get healthScore(){let W=this.avgRtt===1/0?0.5:Math.max(0,100-this.avgRtt)/100,G=Math.min(1,this.uptime/60000),X=this.stability,Y=this.isResponsive?1:0.3;return W*0.25+G*0.25+X*0.3+Y*0.2}get isStale(){return Date.now()-this.lastSeen>Kh}addRttSample(W){if(this.rttSamples.push(W),this.rttSamples.length>10)this.rttSamples.shift();this.lastSeen=Date.now(),this.isResponsive=!0}markReconnect(){this.reconnects++,this.stability=Math.max(0,1-this.reconnects*0.1)}markUnresponsive(){this.isResponsive=!1}markSeen(){this.lastSeen=Date.now()}addConnectedCell(W){if(W)this.connectedCells.add(W)}}function Ph(W,G={},X={}){let Y={...jh,...G},Z=!!Y.debug,V=(...$)=>Z&&console.debug("[cells]",...$),Q=Math.max(0,Y.bridgesPerEdge|0),J=Math.max(5,Y.maxCellSize|0),U=Math.max(10,Y.targetCells|0),q=Y.cellSize==="auto",N=q?2:Math.max(1,Y.cellSize|0),A={cellId:null,bridges:[],isBridge:!1},H=null,I=null,w=null,C=new Map,D=new Map,x=new Set,h=new Map,l=new Set,u=new Set,n=0,c=[],p=new Map,W0=new Set,m=new Map,Y0=new Map,U0=1,y=0,o=1,B=0,R=()=>{B0();let $=Th(J0().length,N);if($!==o)o=$,B=Date.now();let d=Date.now()-B;if($>U0&&d>4000)U0=$;else if($<U0&&d>30000)U0=$;return U0},_=()=>Math.min(150,Math.ceil(Math.log2(R()+1))*2+3),S=($)=>Dh($,R()),v=W.on?.bind(W),P=W.off?.bind(W);if(v)W.on=($,d)=>String($).startsWith("mesh:")?k($,d):v($,d);if(P)W.off=($,d)=>String($).startsWith("mesh:")?h.get($)?.delete(d):P($,d);let E=($)=>(x.add($),()=>x.delete($)),b=($,d,X0)=>{if(u.has(X0))return;if(u.add(X0),u.size>GM){let w0=u.values().next().value;u.delete(w0)}for(let w0 of x)try{w0($,d)}catch(e0){V("Error in deliver handler:",e0)}},k=($,d)=>{if(!h.has($))h.set($,new Set);return h.get($).add(d),()=>h.get($)?.delete(d)},f=($,...d)=>{let X0=h.get($);if(X0)for(let w0 of X0)try{w0(...d)}catch{}},e=($)=>{try{return typeof $==="string"?JSON.parse($):$}catch{return null}},q0=()=>`${W8}:${Date.now().toString(36)}:${(n++&65535).toString(36)}`,Q0=()=>{if(l.size>GM)l.delete(l.values().next().value)},$0=($,d,X0=[])=>{if(!$||!d)return;if(C.set($,{cell:d,isBridge:X0.length>0,bridges:[...X0]}),!D.has($))D.set($,new qU($));let w0=D.get($);if(w0.markSeen(),w0.addConnectedCell(d),Y0.set(d,{lastSeen:Date.now(),peerId:$}),X0.length>0)for(let e0 of S(d))w0.addConnectedCell(e0)},D0=($)=>D.get($),x0=($,d)=>{let X0=D.get($);if(X0)X0.addRttSample(d)},N1=($)=>{let d=E0($);if(d.length===0)return null;let X0=0,w0=0;for(let C1 of d){let r0=D.get(C1);if(r0&&!r0.isStale){if(X0+=r0.healthScore,r0.isResponsive)w0++}}let e0=d.filter((C1)=>{let r0=D.get(C1);return r0&&!r0.isStale});return{cellId:$,memberCount:e0.length,avgHealth:e0.length>0?X0/e0.length:0,responsiveRatio:e0.length>0?w0/e0.length:0}},U1=()=>{let $=N1(A.cellId);f("mesh:health",{...A,health:$})},J0=()=>[...new Set([...W._census(),W8])].sort(),B0=()=>{if(!q)return;let $=J0().length,d=Mh($,U,J);if(d!==N)V("cellSize changed:",N,"->",d),N=d},h0=($,d)=>d.filter((X0)=>Gz(X0,R())===$),Y1=($,d)=>{if(Q===0)return[];let X0=DU($),w0=DU(d);if(X0==null||w0==null)return[];let e0=J0(),C1=h0(X0,e0),r0=h0(w0,e0),K0=Math.min(X0,w0),F0=Math.max(X0,w0),g0=(n1)=>nM(`${n1}@${K0}~${F0}`),k0=[...new Set([...C1,...r0])].sort((n1,Q7)=>g0(Q7)-g0(n1));if(!k0.length)return[];let Q1=new Set(C1),X1=[],k1=(n1)=>n1&&!X1.includes(n1)&&X1.push(n1);k1(k0.find((n1)=>Q1.has(n1))),k1(k0.find((n1)=>!Q1.has(n1)));for(let n1 of k0){if(X1.length>=Math.max(Q,2))break;k1(n1)}return X1},w8=($,d)=>{if(Q===0)return[];let X0=S(d),w0=[];for(let e0 of X0)if(Y1(d,e0).includes($))w0.push(e0);return w0},x1=()=>{B0();let $=J0(),d=Gz(W8,R()),X0=R(),w0=`cell-${d}`,e0=w8(W8,w0),C1=e0.length>0;return V("computeState",{self:W8,myCell:w0,isBridge:C1,bridgeEdges:e0,cellSize:N,rosterSize:$.length,totalCells:X0,dynamicTTL:_()}),{cellId:w0,isBridge:C1,bridges:e0,cellSize:N,dynamicTTL:_(),totalCells:X0}},E0=($)=>{let d=[],X0=new Set(Object.keys(W.getPeers?.()||{}));for(let[w0,e0]of C)if(e0.cell===$){let C1=D.get(w0);if(X0.has(w0)&&(!C1||!C1.isStale))d.push(w0)}return d.sort(),d},n0=()=>{if(!H)return;j8=HW(),k5=Date.now();let $={t:"state",id:q0(),ttl:_(),data:{id:W8,cell:A.cellId,bridges:A.bridges,health:D.get(W8)?.healthScore||0.5,timestamp:Date.now()},origin:W8,originCell:A.cellId},d=JSON.stringify($);H.send(d),O1(I,d)},O1=($,d)=>{let X0=e(d);if(!X0?.id||!X0?.t)return;let w0=l.has(X0.id);if(!w0)l.add(X0.id),Q0();let{t:e0,id:C1,ttl:r0,data:K0,origin:F0,originCell:g0}=X0,k0=A.cellId;if(e0==="state"&&K0)$0(K0.id,K0.cell,K0.bridges),f("mesh:peer-state",K0);if(e0==="ping"&&K0?.pingId&&F0!==W8){let X1={t:"pong",id:q0(),ttl:_(),data:{pingId:K0.pingId,receivedAt:Date.now()},origin:W8,originCell:k0};H?.send(JSON.stringify(X1))}if(e0==="pong"&&K0?.pingId){let X1=m.get(K0.pingId);if(X1){clearTimeout(X1.timeout);let k1=Date.now()-X1.start;x0(X1.peerId,k1),X1.resolve(k1),m.delete(K0.pingId)}}if(e0==="msg"&&F0!==W8){if(g0===k0||Q>0)b(K0,F0,C1)}if(w0)return;if(!A.isBridge)return;if((r0??0)<=0)return;let Q1=(X1,k1,n1=null)=>{if(!X1)return;let Q7={t:e0,id:C1,ttl:n1??(r0??_())-1,data:K0,origin:F0||W8,originCell:g0||k0},AW=JSON.stringify(Q7);if(k1?.length){let JZ=new Set(Object.keys(W.getPeers?.()||{})),J9=k1.filter((kJ)=>JZ.has(kJ));if(J9.length>0)X1.send(AW,J9)}else X1.send(AW)};if($===I){for(let X1 of S(k0))Q1($1(X1),null);return}if(!S(k0).map(VU).includes($))return;Q1(H,null);for(let X1 of S(k0))if(VU(X1)!==$)Q1($1(X1),null)},$1=($)=>{let d=VU($);if(p.has($))return p.get($);let X0=W.channel(d);if(p.set($,X0),!W0.has(d))W0.add(d),X0.on("message",(w0)=>O1(d,w0));return X0},U8=()=>{if(!A.cellId)return;if(I=VU(A.cellId),H=W.channel(I),!W0.has(I))W0.add(I),H.on("message",($)=>O1(I,$));if(A.isBridge)for(let $ of S(A.cellId))$1($);if(c.length)for(let $ of c.splice(0)){let d={t:"msg",id:q0(),ttl:_(),data:$,origin:W8,originCell:A.cellId},X0=JSON.stringify(d);H.send(X0),O1(I,X0)}n0()},H8=($)=>{if(!A.cellId)return!0;if(!J0().includes($))return!0;let d=`cell-${Gz($,R())}`;if(d===A.cellId)return!0;if(A.bridges.includes(d))return!0;return S(A.cellId).includes(d)&&Y1(d,A.cellId).includes($)},A8=()=>{let $=W.getPeers?.()||{};for(let d of Object.keys($))if(!H8(d))$[d].close?.()};X.admit=H8;let K1=()=>{let $=x1(),d=!A.cellId||A.cellId!==$.cellId||A.isBridge!==$.isBridge||JSON.stringify(A.bridges)!==JSON.stringify($.bridges);if(A=$,$0(W8,$.cellId,$.bridges),d)U8();else n0();A8(),f("mesh:state",$),U1()},j8="",k5=0,HW=()=>{return`${A.cellId}:${A.isBridge}:${A.bridges.join(",")}`},QZ=()=>{if(w)return;w=setInterval(()=>{let $=R();if($!==y){y=$,K1();return}let d=HW();if(d!==j8||Date.now()-k5>1e4)n0(),j8=d;for(let[X0,w0]of D)if(X0!==W8&&w0.isStale)C.delete(X0),D.delete(X0),V("Removed stale peer:",X0)},Ch)},i7=()=>{if(w)clearInterval(w),w=null},i=($)=>{return new Promise((d,X0)=>{let w0=`${Date.now()}-${Math.random().toString(36).slice(2,8)}`,e0=Date.now(),C1=setTimeout(()=>{m.delete(w0);let K0=D.get($);if(K0)K0.markUnresponsive();X0(Error("Ping timeout"))},Oh);m.set(w0,{start:e0,resolve:d,reject:X0,timeout:C1,peerId:$});let r0={t:"ping",id:q0(),ttl:_(),data:{pingId:w0,target:$},origin:W8,originCell:A.cellId};H?.send(JSON.stringify(r0))})};if(W.on?.("peer:join",($)=>{if(!D.has($))D.set($,new qU($));else D.get($).markReconnect();K1()}),W.on?.("peer:leave",($)=>{C.delete($),K1()}),!D.has(W8))D.set(W8,new qU(W8));return D.get(W8).addConnectedCell(A.cellId||"cell-0"),K1(),QZ(),{send:($)=>{if(!A.cellId||!H)return c.push($);let d={t:"msg",id:q0(),ttl:_(),data:$,origin:W8,originCell:A.cellId},X0=JSON.stringify(d);H.send(X0),O1(I,X0)},on:($,d)=>$==="message"?E(d):void 0,ping:i,getState:()=>({...A,cellSize:N,health:N1(A.cellId),dynamicTTL:_(),totalCells:R(),knownCells:Y0.size}),getMetrics:D0,getCellHealth:N1,getPeerInfo:()=>new Map(C),getStableRoster:()=>J0(),getKnownCells:()=>new Map(Y0),getCellSize:()=>N,destroy:()=>{i7(),m.forEach(($)=>clearTimeout($.timeout)),m.clear(),u.clear(),Y0.clear()}}}function Rh(W,G,X){let Y={},Z=oM({...W,admit:(U)=>Y.admit?.(U)??!0},G,X),V=W.overlay||{},Q=Ph(Z,V,Y),J=new Map;return{on:(U,q)=>Z.on(U,q),off:(U,q)=>Z.off?.(U,q),channel:(U)=>{if(J.has(U))return J.get(U);let q=Z.channel(U),N={send:(A,H)=>{Q.send({_ch:U,_d:A,_t:H})},on:(A,H)=>{if(A==="message")Q.on("message",(I,w)=>{if(I?._ch===U)H(I._d,w)}),q.on(A,H);else q.on(A,H)},off:(A,H)=>q.off?.(A,H),_original:q};return J.set(U,N),N},get id(){return Z.id},get peers(){return Z.peers},getPeers:()=>Z.getPeers?.()||{},mesh:Q,_room:Z,getState:()=>Q.getState(),getMetrics:(U)=>Q.getMetrics(U),getCellHealth:(U)=>Q.getCellHealth(U),getPeerInfo:()=>Q.getPeerInfo(),ping:(U)=>Q.ping(U),leave:()=>{Q.destroy(),J.clear(),Z.leave()},destroy:()=>{Q.destroy(),J.clear()}}}var Pz=(W,G,X)=>W?.cells||W?.overlay?Rh(W,G,X):oM(W,G,X);import{randomBytes as A2}from"crypto";function Lh(){var W,G=!1,X=this;X._DeArray=function(Y,Z,V){return[Y.slice(Z,Z+V)]},X._EnArray=function(Y,Z,V,Q){for(var J=0;J<V;Y[Z+J]=Q[J]?Q[J]:0,J++);},X._DeChar=function(Y,Z){return String.fromCharCode(Y[Z])},X._EnChar=function(Y,Z,V){Y[Z]=V.charCodeAt(0)},X._DeInt=function(Y,Z){var V=G?W.len-1:0,Q=G?-1:1,J=V+Q*W.len,U,q,N;for(U=0,q=V,N=1;q!=J;U+=Y[Z+q]*N,q+=Q,N*=256);if(W.bSigned&&U&Math.pow(2,W.len*8-1))U-=Math.pow(2,W.len*8);return U},X._EnInt=function(Y,Z,V){var Q=G?W.len-1:0,J=G?-1:1,U=Q+J*W.len,q;V=V<W.min?W.min:V>W.max?W.max:V;for(q=Q;q!=U;Y[Z+q]=V&255,q+=J,V>>=8);},X._DeString=function(Y,Z,V){for(var Q=Array(V),J=0;J<V;Q[J]=String.fromCharCode(Y[Z+J]),J++);return Q.join("")},X._EnString=function(Y,Z,V,Q){for(var J,U=0;U<V;Y[Z+U]=(J=Q.charCodeAt(U))?J:0,U++);},X._De754=function(Y,Z){var V,Q,J,U,q,N,A,H,I,w;A=W.mLen,H=W.len*8-W.mLen-1,w=(1<<H)-1,I=w>>1,U=G?0:W.len-1,q=G?1:-1,V=Y[Z+U],U+=q,N=-7;for(Q=V&(1<<-N)-1,V>>=-N,N+=H;N>0;Q=Q*256+Y[Z+U],U+=q,N-=8);for(J=Q&(1<<-N)-1,Q>>=-N,N+=A;N>0;J=J*256+Y[Z+U],U+=q,N-=8);switch(Q){case 0:Q=1-I;break;case w:return J?NaN:(V?-1:1)*(1/0);default:J=J+Math.pow(2,A),Q=Q-I;break}return(V?-1:1)*J*Math.pow(2,Q-A)},X._En754=function(Y,Z,V){var Q,J,U,q,N,A,H,I,w,C;if(H=W.mLen,I=W.len*8-W.mLen-1,C=(1<<I)-1,w=C>>1,Q=V<0?1:0,V=Math.abs(V),isNaN(V)||V==1/0)U=isNaN(V)?1:0,J=C;else{if(J=Math.floor(Math.log(V)/Math.LN2),V*(A=Math.pow(2,-J))<1)J--,A*=2;if(J+w>=1)V+=W.rt/A;else V+=W.rt*Math.pow(2,1-w);if(V*A>=2)J++,A/=2;if(J+w>=C)U=0,J=C;else if(J+w>=1)U=(V*A-1)*Math.pow(2,H),J=J+w;else U=V*Math.pow(2,w-1)*Math.pow(2,H),J=0}for(q=G?W.len-1:0,N=G?-1:1;H>=8;Y[Z+q]=U&255,q+=N,U/=256,H-=8);for(J=J<<H|U,I+=H;I>0;Y[Z+q]=J&255,q+=N,J/=256,I-=8);Y[Z+q-N]|=Q*128},X._DeInt64=function(Y,Z){var V=G?0:7,Q=G?1:-1,J=V+Q*8,U=[0,0,!W.bSigned],q,N,A;for(q=V,A=1,N=0;q!=J;U[A]=(U[A]<<8>>>0)+Y[Z+q],q+=Q,N++,A=N<4?1:0);return U},X._EnInt64=function(Y,Z,V){var Q=G?0:7,J=G?1:-1,U=Q+J*8,q,N,A,H;for(q=Q,A=1,N=0,H=24;q!=U;Y[Z+q]=V[A]>>H&255,q+=J,N++,A=N<4?1:0,H=24-8*(N%4));},X._sPattern="(\\d + )?([AxcbBhHsfdiIlLqQ])",X._lenLut={A:1,x:1,c:1,b:1,B:1,h:2,H:2,s:1,f:4,d:8,i:4,I:4,l:4,L:4,q:8,Q:8},X._elLut={A:{en:X._EnArray,de:X._DeArray},s:{en:X._EnString,de:X._DeString},c:{en:X._EnChar,de:X._DeChar},b:{en:X._EnInt,de:X._DeInt,len:1,bSigned:!0,min:-Math.pow(2,7),max:Math.pow(2,7)-1},B:{en:X._EnInt,de:X._DeInt,len:1,bSigned:!1,min:0,max:Math.pow(2,8)-1},h:{en:X._EnInt,de:X._DeInt,len:2,bSigned:!0,min:-Math.pow(2,15),max:Math.pow(2,15)-1},H:{en:X._EnInt,de:X._DeInt,len:2,bSigned:!1,min:0,max:Math.pow(2,16)-1},i:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!0,min:-Math.pow(2,31),max:Math.pow(2,31)-1},I:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!1,min:0,max:Math.pow(2,32)-1},l:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!0,min:-Math.pow(2,31),max:Math.pow(2,31)-1},L:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!1,min:0,max:Math.pow(2,32)-1},f:{en:X._En754,de:X._De754,len:4,mLen:23,rt:Math.pow(2,-24)-Math.pow(2,-77)},d:{en:X._En754,de:X._De754,len:8,mLen:52,rt:0},q:{en:X._EnInt64,de:X._DeInt64,bSigned:!0},Q:{en:X._EnInt64,de:X._DeInt64,bSigned:!1}},X._UnpackSeries=function(Y,Z,V,Q){for(var J=W.de,U=[],q=0;q<Y;U.push(J(V,Q+q*Z)),q++);return U},X._PackSeries=function(Y,Z,V,Q,J,U){for(var q=W.en,N=0;N<Y;q(V,Q+N*Z,J[U+N]),N++);},X.Unpack=function(Y,Z,V){G=Y.charAt(0)!="<",V=V?V:0;var Q=new RegExp(this._sPattern,"g"),J,U,q,N=[];while(J=Q.exec(Y)){if(U=J[1]==null||J[1]==""?1:parseInt(J[1]),q=this._lenLut[J[2]],V+U*q>Z.length)return;switch(J[2]){case"A":case"s":N.push(this._elLut[J[2]].de(Z,V,U));break;case"c":case"b":case"B":case"h":case"H":case"i":case"I":case"l":case"L":case"f":case"d":case"q":case"Q":W=this._elLut[J[2]],N.push(this._UnpackSeries(U,q,Z,V));break}V+=U*q}return Array.prototype.concat.apply([],N)},X.PackTo=function(Y,Z,V,Q){G=Y.charAt(0)!="<";var J=new RegExp(this._sPattern,"g"),U,q,N,A,H=0;while(U=J.exec(Y)){if(q=U[1]==null||U[1]==""?1:parseInt(U[1]),N=this._lenLut[U[2]],V+q*N>Z.length)return!1;switch(U[2]){case"A":case"s":if(H+1>Q.length)return!1;this._elLut[U[2]].en(Z,V,q,Q[H]),H+=1;break;case"c":case"b":case"B":case"h":case"H":case"i":case"I":case"l":case"L":case"f":case"d":case"q":case"Q":if(W=this._elLut[U[2]],H+q>Q.length)return!1;this._PackSeries(q,N,Z,V,Q,H),H+=q;break;case"x":for(A=0;A<q;A++)Z[V+A]=0;break}V+=q*N}return Z},X.Pack=function(Y,Z){return this.PackTo(Y,Array(this.CalcLength(Y)),0,Z)},X.CalcLength=function(Y){var Z=new RegExp(this._sPattern,"g"),V=0,Q;while(Q=Z.exec(Y))V+=(Q[1]==null||Q[1]==""?1:parseInt(Q[1]))*this._lenLut[Q[2]];return V}}var a1=new Lh;var P2=v1(YT(),1),qH=v1(gz(),1);import{createSocket as Ld}from"dgram";import{createSocket as $d}from"dgram";import*as R2 from"net";import{connect as Fd}from"net";import{createSign as xd,randomBytes as kd,webcrypto as _d}from"crypto";var Nq0=v1(xT(),1);var D7={};qA(D7,{verifySchema:()=>um,fromBER:()=>J4,compareSchema:()=>Y4,VisibleString:()=>SW,ViewWriter:()=>lZ,VideotexString:()=>TX,ValueBlock:()=>t8,Utf8String:()=>v5,UniversalString:()=>KX,UTCTime:()=>xW,TimeOfDay:()=>aU,TeletexString:()=>MX,TIME:()=>eU,Set:()=>b9,Sequence:()=>x9,Repeated:()=>zX,RelativeObjectIdentifier:()=>iU,RawData:()=>TP,PrintableString:()=>DX,Primitive:()=>O6,OctetString:()=>K7,ObjectIdentifier:()=>jX,NumericString:()=>CX,Null:()=>O7,Integer:()=>K6,IA5String:()=>PX,HexBlock:()=>j7,GraphicString:()=>RX,GeneralizedTime:()=>EX,GeneralString:()=>LX,Enumerated:()=>wX,EndOfContent:()=>oU,Duration:()=>tU,DateTime:()=>sU,DEFAULT_MAX_NODES:()=>lT,DEFAULT_MAX_DEPTH:()=>pT,DEFAULT_MAX_CONTENT_LENGTH:()=>dT,DATE:()=>rU,Constructed:()=>f8,Choice:()=>oZ,CharacterString:()=>BX,Boolean:()=>IX,BmpString:()=>OX,BitString:()=>C7,BaseStringBlock:()=>lU,BaseBlock:()=>x8,Any:()=>V4});/*!
|
|
148
148
|
* MIT License
|
|
149
149
|
*
|
|
150
150
|
* Copyright (c) 2017-2024 Peculiar Ventures, LLC
|
|
@@ -205,7 +205,7 @@ PERFORMANCE OF THIS SOFTWARE.
|
|
|
205
205
|
`).map((Y)=>` ${Y}`).join(`
|
|
206
206
|
`));let G=this.idBlock.tagClass===3?`[${this.idBlock.tagNumber}]`:this.constructor.NAME;return W.length?`${G} :
|
|
207
207
|
${W.join(`
|
|
208
|
-
`)}`:`${G} :`}}oT=f8;(()=>{b0.Constructed=oT})();f8.NAME="CONSTRUCTED";class oz extends t8{fromBER(W,G,X){return G}toBER(W){return w7}}oz.override="EndOfContentValueBlock";var nT;class oU extends x8{constructor(W={}){super(W,oz);this.idBlock.tagClass=1,this.idBlock.tagNumber=0}}nT=oU;(()=>{b0.EndOfContent=nT})();oU.NAME=pZ;var iT;class O7 extends x8{constructor(W={}){super(W,t8);this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(W,G,X){if(this.lenBlock.length>0)this.warnings.push("Non-zero length of value block for Null type");if(!this.idBlock.error.length)this.blockLength+=this.idBlock.blockLength;if(!this.lenBlock.error.length)this.blockLength+=this.lenBlock.blockLength;if(this.blockLength+=X,G+X>W.byteLength)return this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1;return G+X}toBER(W,G){let X=new ArrayBuffer(2);if(!W){let Y=new Uint8Array(X);Y[0]=5,Y[1]=0}if(G)G.write(X);return X}onAsciiEncoding(){return`${this.constructor.NAME}`}}iT=O7;(()=>{b0.Null=iT})();O7.NAME="NULL";class nz extends j7(t8){get value(){for(let W of this.valueHexView)if(W>0)return!0;return!1}set value(W){this.valueHexView[0]=W?255:0}constructor({value:W,...G}={}){super(G);if(G.valueHex)this.valueHexView=S0.toUint8Array(G.valueHex);else this.valueHexView=new Uint8Array(1);if(W)this.value=W}fromBER(W,G,X){let Y=S0.toUint8Array(W);if(!Q4(this,Y,G,X))return-1;if(this.valueHexView=Y.subarray(G,G+X),X>1)this.warnings.push("Boolean value encoded in more then 1 octet");return this.isHexOnly=!0,bz.call(this),this.blockLength=X,G+X}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}}nz.NAME="BooleanValueBlock";var rT;class IX extends x8{getValue(){return this.valueBlock.value}setValue(W){this.valueBlock.value=W}constructor(W={}){super(W,nz);this.idBlock.tagClass=1,this.idBlock.tagNumber=1}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}}rT=IX;(()=>{b0.Boolean=rT})();IX.NAME="BOOLEAN";class iz extends j7(Z4){constructor({isConstructed:W=!1,...G}={}){super(G);this.isConstructed=W}fromBER(W,G,X,Y){let Z=0;if(this.isConstructed){if(this.isHexOnly=!1,Z=Z4.prototype.fromBER.call(this,W,G,X,Y),Z===-1)return Z;for(let V=0;V<this.value.length;V++){let Q=this.value[V].constructor.NAME;if(Q===pZ)if(this.isIndefiniteForm)break;else return this.error="EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1;if(Q!==bT)return this.error="OCTET STRING may consists of OCTET STRINGs only",-1}}else this.isHexOnly=!0,Z=super.fromBER(W,G,X),this.blockLength=X;return Z}toBER(W,G){if(this.isConstructed)return Z4.prototype.toBER.call(this,W,G);return W?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),isConstructed:this.isConstructed}}}iz.NAME="OctetStringValueBlock";var rz;class K7 extends x8{constructor({idBlock:W={},lenBlock:G={},...X}={}){var Y,Z;(Y=X.isConstructed)!==null&&Y!==void 0||(X.isConstructed=!!((Z=X.value)===null||Z===void 0?void 0:Z.length));super({idBlock:{isConstructed:X.isConstructed,...W},lenBlock:{...G,isIndefiniteForm:!!X.isIndefiniteForm},...X},iz);this.idBlock.tagClass=1,this.idBlock.tagNumber=4}fromBER(W,G,X,Y){if(this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,X===0){if(this.idBlock.error.length===0)this.blockLength+=this.idBlock.blockLength;if(this.lenBlock.error.length===0)this.blockLength+=this.lenBlock.blockLength;return G}if(!this.valueBlock.isConstructed){let V=(W instanceof ArrayBuffer?new Uint8Array(W):W).subarray(G,G+X);try{if(V.byteLength){let Q=Y!==null&&Y!==void 0?Y:dZ(),J=dz(V,0,V.byteLength,Q);if(J.offset!==-1&&J.offset===X)this.valueBlock.value=[J.result]}}catch{}}return super.fromBER(W,G,X,Y)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return f8.prototype.onAsciiEncoding.call(this);let W=this.constructor.NAME,G=p0.ToHex(this.valueBlock.valueHexView);return`${W} : ${G}`}getValue(){if(!this.idBlock.isConstructed)return this.valueBlock.valueHexView.slice().buffer;let W=[];for(let G of this.valueBlock.value)if(G instanceof rz)W.push(G.valueBlock.valueHexView);return S0.concat(W)}}rz=K7;(()=>{b0.OctetString=rz})();K7.NAME=bT;class az extends j7(Z4){constructor({unusedBits:W=0,isConstructed:G=!1,...X}={}){super(X);this.unusedBits=W,this.isConstructed=G,this.blockLength=this.valueHexView.byteLength}fromBER(W,G,X,Y){if(!X)return G;let Z=-1;if(this.isConstructed){if(Z=Z4.prototype.fromBER.call(this,W,G,X,Y),Z===-1)return Z;for(let J of this.value){let U=J.constructor.NAME;if(U===pZ)if(this.isIndefiniteForm)break;else return this.error="EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only",-1;if(U!==mT)return this.error="BIT STRING may consists of BIT STRINGs only",-1;let q=J.valueBlock;if(this.unusedBits>0&&q.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=q.unusedBits}return Z}let V=S0.toUint8Array(W);if(!Q4(this,V,G,X))return-1;let Q=V.subarray(G,G+X);if(this.unusedBits=Q[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){let J=Q.subarray(1);try{if(J.byteLength){let U=Y!==null&&Y!==void 0?Y:dZ(),q=dz(J,0,J.byteLength,U);if(q.offset!==-1&&q.offset===X-1)this.value=[q.result]}}catch{}}return this.valueHexView=Q.subarray(1),this.blockLength=Q.length,G+X}toBER(W,G){if(this.isConstructed)return Z4.prototype.toBER.call(this,W,G);if(W)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength){let Y=new Uint8Array(1);return Y[0]=0,Y.buffer}let X=new Uint8Array(this.valueHexView.length+1);return X[0]=this.unusedBits,X.set(this.valueHexView,1),X.buffer}toJSON(){return{...super.toJSON(),unusedBits:this.unusedBits,isConstructed:this.isConstructed}}}az.NAME="BitStringValueBlock";var aT;class C7 extends x8{constructor({idBlock:W={},lenBlock:G={},...X}={}){var Y,Z;(Y=X.isConstructed)!==null&&Y!==void 0||(X.isConstructed=!!((Z=X.value)===null||Z===void 0?void 0:Z.length));super({idBlock:{isConstructed:X.isConstructed,...W},lenBlock:{...G,isIndefiniteForm:!!X.isIndefiniteForm},...X},az);this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(W,G,X,Y){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(W,G,X,Y)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return f8.prototype.onAsciiEncoding.call(this);else{let W=[],G=this.valueBlock.valueHexView;for(let V of G)W.push(V.toString(2).padStart(8,"0"));let X=W.join(""),Y=this.constructor.NAME,Z=X.substring(0,X.length-this.valueBlock.unusedBits);return`${Y} : ${Z}`}}}aT=C7;(()=>{b0.BitString=aT})();C7.NAME=mT;var sT;function vm(W,G){let X=new Uint8Array([0]),Y=new Uint8Array(W),Z=new Uint8Array(G),V=Y.slice(0),Q=V.length-1,J=Z.slice(0),U=J.length-1,q=0,N=U<Q?Q:U,A=0;for(let H=N;H>=0;H--,A++){switch(!0){case A<J.length:q=V[Q-A]+J[U-A]+X[0];break;default:q=V[Q-A]+X[0]}switch(X[0]=q/10,!0){case A>=V.length:V=bU(new Uint8Array([q%10]),V);break;default:V[Q-A]=q%10}}if(X[0]>0)V=bU(X,V);return V}function hT(W){if(W>=fZ.length)for(let G=fZ.length;G<=W;G++){let X=new Uint8Array([0]),Y=fZ[G-1].slice(0);for(let Z=Y.length-1;Z>=0;Z--){let V=new Uint8Array([(Y[Z]<<1)+X[0]]);X[0]=V[0]/10,Y[Z]=V[0]%10}if(X[0]>0)Y=bU(X,Y);fZ.push(Y)}return fZ[W]}function gm(W,G){let X=0,Y=new Uint8Array(W),Z=new Uint8Array(G),V=Y.slice(0),Q=V.length-1,J=Z.slice(0),U=J.length-1,q,N=0;for(let A=U;A>=0;A--,N++)switch(q=V[Q-N]-J[U-N]-X,!0){case q<0:X=1,V[Q-N]=q+10;break;default:X=0,V[Q-N]=q}if(X>0)for(let A=Q-U+1;A>=0;A--,N++)if(q=V[Q-N]-X,q<0)X=1,V[Q-N]=q+10;else{X=0,V[Q-N]=q;break}return V.slice()}class nU extends j7(t8){setValueHex(){if(this.valueHexView.length>=4)this.warnings.push("Too big Integer for decoding, hex only"),this.isHexOnly=!0,this._valueDec=0;else if(this.isHexOnly=!1,this.valueHexView.length>0)this._valueDec=bz.call(this)}constructor({value:W,...G}={}){super(G);if(this._valueDec=0,G.valueHex)this.setValueHex();if(W!==void 0)this.valueDec=W}set valueDec(W){this._valueDec=W,this.isHexOnly=!1,this.valueHexView=new Uint8Array(yT(W))}get valueDec(){return this._valueDec}fromDER(W,G,X,Y=0){let Z=this.fromBER(W,G,X);if(Z===-1)return Z;let V=this.valueHexView;if(V[0]===0&&(V[1]&128)!==0)this.valueHexView=V.subarray(1);else if(Y!==0){if(V.length<Y){if(Y-V.length>1)Y=V.length+1;this.valueHexView=V.subarray(Y-V.length)}}return Z}toDER(W=!1){let G=this.valueHexView;switch(!0){case(G[0]&128)!==0:{let X=new Uint8Array(this.valueHexView.length+1);X[0]=0,X.set(G,1),this.valueHexView=X}break;case(G[0]===0&&(G[1]&128)===0):this.valueHexView=this.valueHexView.subarray(1);break}return this.toBER(W)}fromBER(W,G,X){let Y=super.fromBER(W,G,X);if(Y===-1)return Y;return this.setValueHex(),Y}toBER(W){return W?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){let W=this.valueHexView.length*8-1,G=new Uint8Array(this.valueHexView.length*8/3),X=0,Y,Z=this.valueHexView,V="",Q=!1;for(let J=Z.byteLength-1;J>=0;J--){Y=Z[J];for(let U=0;U<8;U++){if((Y&1)===1)switch(X){case W:G=gm(hT(X),G),V="-";break;default:G=vm(G,hT(X))}X++,Y>>=1}}for(let J=0;J<G.length;J++){if(G[J])Q=!0;if(Q)V+=gT.charAt(G[J])}if(Q===!1)V+=gT.charAt(0);return V}}sT=nU;nU.NAME="IntegerValueBlock";(()=>{Object.defineProperty(sT.prototype,"valueHex",{set:function(W){this.valueHexView=new Uint8Array(W),this.setValueHex()},get:function(){return this.valueHexView.slice().buffer}})})();var cZ;class K6 extends x8{constructor(W={}){super(W,nU);this.idBlock.tagClass=1,this.idBlock.tagNumber=2}toBigInt(){return mU(),BigInt(this.valueBlock.toString())}static fromBigInt(W){mU();let G=BigInt(W),X=new lZ,Y=G.toString(16).replace(/^-/,""),Z=new Uint8Array(p0.FromHex(Y));if(G<0){let Q=new Uint8Array(Z.length+(Z[0]&128?1:0));Q[0]|=128;let U=BigInt(`0x${p0.ToHex(Q)}`)+G,q=S0.toUint8Array(p0.FromHex(U.toString(16)));q[0]|=128,X.write(q)}else{if(Z[0]&128)X.write(new Uint8Array([0]));X.write(Z)}return new cZ({valueHex:X.final()})}convertToDER(){let W=new cZ({valueHex:this.valueBlock.valueHexView});return W.valueBlock.toDER(),W}convertFromDER(){return new cZ({valueHex:this.valueBlock.valueHexView[0]===0?this.valueBlock.valueHexView.subarray(1):this.valueBlock.valueHexView})}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()}`}}cZ=K6;(()=>{b0.Integer=cZ})();K6.NAME="INTEGER";var tT;class wX extends K6{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=10}}tT=wX;(()=>{b0.Enumerated=tT})();wX.NAME="ENUMERATED";class fU extends j7(t8){constructor({valueDec:W=-1,isFirstSid:G=!1,...X}={}){super(X);this.valueDec=W,this.isFirstSid=G}fromBER(W,G,X){if(!X)return G;let Y=S0.toUint8Array(W);if(!Q4(this,Y,G,X))return-1;let Z=Y.subarray(G,G+X);this.valueHexView=new Uint8Array(X);for(let Q=0;Q<X;Q++)if(this.valueHexView[Q]=Z[Q]&127,this.blockLength++,(Z[Q]&128)===0)break;let V=new Uint8Array(this.blockLength);for(let Q=0;Q<this.blockLength;Q++)V[Q]=this.valueHexView[Q];if(this.valueHexView=V,(Z[this.blockLength-1]&128)!==0)return this.error="End of input reached before message was fully decoded",-1;if(this.valueHexView[0]===0)this.warnings.push("Needlessly long format of SID encoding");if(this.blockLength<=8)this.valueDec=FW(this.valueHexView,7);else this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only");return G+this.blockLength}set valueBigInt(W){mU();let G=BigInt(W).toString(2);while(G.length%7)G="0"+G;let X=new Uint8Array(G.length/7);for(let Y=0;Y<X.length;Y++)X[Y]=parseInt(G.slice(Y*7,Y*7+7),2)+(Y+1<X.length?128:0);this.fromBER(X.buffer,0,X.length)}toBER(W){if(this.isHexOnly){if(W)return new ArrayBuffer(this.valueHexView.byteLength);let Y=this.valueHexView,Z=new Uint8Array(this.blockLength);for(let V=0;V<this.blockLength-1;V++)Z[V]=Y[V]|128;return Z[this.blockLength-1]=Y[this.blockLength-1],Z.buffer}let G=w6(this.valueDec,7);if(G.byteLength===0)return this.error="Error during encoding SID value",w7;let X=new Uint8Array(G.byteLength);if(!W){let Y=new Uint8Array(G),Z=G.byteLength-1;for(let V=0;V<Z;V++)X[V]=Y[V]|128;X[Z]=Y[Z]}return X}toString(){let W="";if(this.isHexOnly)W=p0.ToHex(this.valueHexView);else if(this.isFirstSid){let G=this.valueDec;if(this.valueDec<=39)W="0.";else if(this.valueDec<=79)W="1.",G-=40;else W="2.",G-=80;W+=G.toString()}else W=this.valueDec.toString();return W}toJSON(){return{...super.toJSON(),valueDec:this.valueDec,isFirstSid:this.isFirstSid}}}fU.NAME="sidBlock";class sz extends t8{constructor({value:W=h9,...G}={}){super(G);if(this.value=[],W)this.fromString(W)}fromBER(W,G,X){let Y=G;while(X>0){let Z=new fU;if(Y=Z.fromBER(W,Y,X),Y===-1)return this.blockLength=0,this.error=Z.error,Y;if(this.value.length===0)Z.isFirstSid=!0;this.blockLength+=Z.blockLength,X-=Z.blockLength,this.value.push(Z)}return Y}toBER(W){let G=[];for(let X=0;X<this.value.length;X++){let Y=this.value[X].toBER(W);if(Y.byteLength===0)return this.error=this.value[X].error,w7;G.push(Y)}return fz(G)}fromString(W){this.value=[];let G=0,X=0,Y="",Z=!1;do{if(X=W.indexOf(".",G),X===-1)Y=W.substring(G);else Y=W.substring(G,X);if(G=X+1,Z){let V=this.value[0],Q=0;switch(V.valueDec){case 0:break;case 1:Q=40;break;case 2:Q=80;break;default:this.value=[];return}let J=parseInt(Y,10);if(isNaN(J))return;V.valueDec=J+Q,Z=!1}else{let V=new fU;if(Y>Number.MAX_SAFE_INTEGER){mU();let Q=BigInt(Y);V.valueBigInt=Q}else if(V.valueDec=parseInt(Y,10),isNaN(V.valueDec))return;if(!this.value.length)V.isFirstSid=!0,Z=!0;this.value.push(V)}}while(X!==-1)}toString(){let W="",G=!1;for(let X=0;X<this.value.length;X++){G=this.value[X].isHexOnly;let Y=this.value[X].toString();if(X!==0)W=`${W}.`;if(G)if(Y=`{${Y}}`,this.value[X].isFirstSid)W=`2.{${Y} - 80}`;else W+=Y;else W+=Y}return W}toJSON(){let W={...super.toJSON(),value:this.toString(),sidArray:[]};for(let G=0;G<this.value.length;G++)W.sidArray.push(this.value[G].toJSON());return W}}sz.NAME="ObjectIdentifierValueBlock";var eT;class jX extends x8{getValue(){return this.valueBlock.toString()}setValue(W){this.valueBlock.fromString(W)}constructor(W={}){super(W,sz);this.idBlock.tagClass=1,this.idBlock.tagNumber=6}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}}eT=jX;(()=>{b0.ObjectIdentifier=eT})();jX.NAME="OBJECT IDENTIFIER";class cU extends j7(j6){constructor({valueDec:W=0,...G}={}){super(G);this.valueDec=W}fromBER(W,G,X){if(X===0)return G;let Y=S0.toUint8Array(W);if(!Q4(this,Y,G,X))return-1;let Z=Y.subarray(G,G+X);this.valueHexView=new Uint8Array(X);for(let Q=0;Q<X;Q++)if(this.valueHexView[Q]=Z[Q]&127,this.blockLength++,(Z[Q]&128)===0)break;let V=new Uint8Array(this.blockLength);for(let Q=0;Q<this.blockLength;Q++)V[Q]=this.valueHexView[Q];if(this.valueHexView=V,(Z[this.blockLength-1]&128)!==0)return this.error="End of input reached before message was fully decoded",-1;if(this.valueHexView[0]===0)this.warnings.push("Needlessly long format of SID encoding");if(this.blockLength<=8)this.valueDec=FW(this.valueHexView,7);else this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only");return G+this.blockLength}toBER(W){if(this.isHexOnly){if(W)return new ArrayBuffer(this.valueHexView.byteLength);let Y=this.valueHexView,Z=new Uint8Array(this.blockLength);for(let V=0;V<this.blockLength-1;V++)Z[V]=Y[V]|128;return Z[this.blockLength-1]=Y[this.blockLength-1],Z.buffer}let G=w6(this.valueDec,7);if(G.byteLength===0)return this.error="Error during encoding SID value",w7;let X=new Uint8Array(G.byteLength);if(!W){let Y=new Uint8Array(G),Z=G.byteLength-1;for(let V=0;V<Z;V++)X[V]=Y[V]|128;X[Z]=Y[Z]}return X.buffer}toString(){let W="";if(this.isHexOnly)W=p0.ToHex(this.valueHexView);else W=this.valueDec.toString();return W}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}}cU.NAME="relativeSidBlock";class tz extends t8{constructor({value:W=h9,...G}={}){super(G);if(this.value=[],W)this.fromString(W)}fromBER(W,G,X){let Y=G;while(X>0){let Z=new cU;if(Y=Z.fromBER(W,Y,X),Y===-1)return this.blockLength=0,this.error=Z.error,Y;this.blockLength+=Z.blockLength,X-=Z.blockLength,this.value.push(Z)}return Y}toBER(W,G){let X=[];for(let Y=0;Y<this.value.length;Y++){let Z=this.value[Y].toBER(W);if(Z.byteLength===0)return this.error=this.value[Y].error,w7;X.push(Z)}return fz(X)}fromString(W){this.value=[];let G=0,X=0,Y="";do{if(X=W.indexOf(".",G),X===-1)Y=W.substring(G);else Y=W.substring(G,X);G=X+1;let Z=new cU;if(Z.valueDec=parseInt(Y,10),isNaN(Z.valueDec))return!0;this.value.push(Z)}while(X!==-1);return!0}toString(){let W="",G=!1;for(let X=0;X<this.value.length;X++){G=this.value[X].isHexOnly;let Y=this.value[X].toString();if(X!==0)W=`${W}.`;if(G)Y=`{${Y}}`,W+=Y;else W+=Y}return W}toJSON(){let W={...super.toJSON(),value:this.toString(),sidArray:[]};for(let G=0;G<this.value.length;G++)W.sidArray.push(this.value[G].toJSON());return W}}tz.NAME="RelativeObjectIdentifierValueBlock";var WP;class iU extends x8{getValue(){return this.valueBlock.toString()}setValue(W){this.valueBlock.fromString(W)}constructor(W={}){super(W,tz);this.idBlock.tagClass=1,this.idBlock.tagNumber=13}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}}WP=iU;(()=>{b0.RelativeObjectIdentifier=WP})();iU.NAME="RelativeObjectIdentifier";var GP;class x9 extends f8{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=16}}GP=x9;(()=>{b0.Sequence=GP})();x9.NAME="SEQUENCE";var XP;class b9 extends f8{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=17}}XP=b9;(()=>{b0.Set=XP})();b9.NAME="SET";class ez extends j7(t8){constructor({...W}={}){super(W);this.isHexOnly=!0,this.value=h9}toJSON(){return{...super.toJSON(),value:this.value}}}ez.NAME="StringValueBlock";class WI extends ez{}WI.NAME="SimpleStringValueBlock";class m9 extends lU{constructor({...W}={}){super(W,WI)}fromBuffer(W){this.valueBlock.value=String.fromCharCode.apply(null,S0.toUint8Array(W))}fromString(W){let G=W.length,X=this.valueBlock.valueHexView=new Uint8Array(G);for(let Y=0;Y<G;Y++)X[Y]=W.charCodeAt(Y);this.valueBlock.value=W}}m9.NAME="SIMPLE STRING";class GI extends m9{fromBuffer(W){this.valueBlock.valueHexView=S0.toUint8Array(W);try{this.valueBlock.value=p0.ToUtf8String(W)}catch(G){this.warnings.push(`Error during "decodeURIComponent": ${G}, using raw string`),this.valueBlock.value=p0.ToBinary(W)}}fromString(W){this.valueBlock.valueHexView=new Uint8Array(p0.FromUtf8String(W)),this.valueBlock.value=W}}GI.NAME="Utf8StringValueBlock";var YP;class v5 extends GI{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=12}}YP=v5;(()=>{b0.Utf8String=YP})();v5.NAME="UTF8String";class XI extends m9{fromBuffer(W){this.valueBlock.value=p0.ToUtf16String(W),this.valueBlock.valueHexView=S0.toUint8Array(W)}fromString(W){this.valueBlock.value=W,this.valueBlock.valueHexView=new Uint8Array(p0.FromUtf16String(W))}}XI.NAME="BmpStringValueBlock";var ZP;class OX extends XI{constructor({...W}={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=30}}ZP=OX;(()=>{b0.BmpString=ZP})();OX.NAME="BMPString";class YI extends m9{fromBuffer(W){let G=ArrayBuffer.isView(W)?W.slice().buffer:W.slice(0),X=new Uint8Array(G);for(let Y=0;Y<X.length;Y+=4)X[Y]=X[Y+3],X[Y+1]=X[Y+2],X[Y+2]=0,X[Y+3]=0;this.valueBlock.value=String.fromCharCode.apply(null,new Uint32Array(G))}fromString(W){let G=W.length,X=this.valueBlock.valueHexView=new Uint8Array(G*4);for(let Y=0;Y<G;Y++){let Z=w6(W.charCodeAt(Y),8),V=new Uint8Array(Z);if(V.length>4)continue;let Q=4-V.length;for(let J=V.length-1;J>=0;J--)X[Y*4+J+Q]=V[J]}this.valueBlock.value=W}}YI.NAME="UniversalStringValueBlock";var VP;class KX extends YI{constructor({...W}={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=28}}VP=KX;(()=>{b0.UniversalString=VP})();KX.NAME="UniversalString";var QP;class CX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=18}}QP=CX;(()=>{b0.NumericString=QP})();CX.NAME="NumericString";var JP;class DX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=19}}JP=DX;(()=>{b0.PrintableString=JP})();DX.NAME="PrintableString";var UP;class MX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=20}}UP=MX;(()=>{b0.TeletexString=UP})();MX.NAME="TeletexString";var qP;class TX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=21}}qP=TX;(()=>{b0.VideotexString=qP})();TX.NAME="VideotexString";var NP;class PX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=22}}NP=PX;(()=>{b0.IA5String=NP})();PX.NAME="IA5String";var HP;class RX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=25}}HP=RX;(()=>{b0.GraphicString=HP})();RX.NAME="GraphicString";var AP;class SW extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=26}}AP=SW;(()=>{b0.VisibleString=AP})();SW.NAME="VisibleString";var zP;class LX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=27}}zP=LX;(()=>{b0.GeneralString=zP})();LX.NAME="GeneralString";var IP;class BX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=29}}IP=BX;(()=>{b0.CharacterString=IP})();BX.NAME="CharacterString";var wP;class xW extends SW{constructor({value:W,valueDate:G,...X}={}){super(X);if(this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,W){this.fromString(W),this.valueBlock.valueHexView=new Uint8Array(W.length);for(let Y=0;Y<W.length;Y++)this.valueBlock.valueHexView[Y]=W.charCodeAt(Y)}if(G)this.fromDate(G),this.valueBlock.valueHexView=new Uint8Array(this.toBuffer());this.idBlock.tagClass=1,this.idBlock.tagNumber=23}fromBuffer(W){this.fromString(String.fromCharCode.apply(null,S0.toUint8Array(W)))}toBuffer(){let W=this.toString(),G=new ArrayBuffer(W.length),X=new Uint8Array(G);for(let Y=0;Y<W.length;Y++)X[Y]=W.charCodeAt(Y);return G}fromDate(W){this.year=W.getUTCFullYear(),this.month=W.getUTCMonth()+1,this.day=W.getUTCDate(),this.hour=W.getUTCHours(),this.minute=W.getUTCMinutes(),this.second=W.getUTCSeconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second))}fromString(W){let X=/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z/ig.exec(W);if(X===null){this.error="Wrong input string for conversion";return}let Y=parseInt(X[1],10);if(Y>=50)this.year=1900+Y;else this.year=2000+Y;this.month=parseInt(X[2],10),this.day=parseInt(X[3],10),this.hour=parseInt(X[4],10),this.minute=parseInt(X[5],10),this.second=parseInt(X[6],10)}toString(W="iso"){if(W==="iso"){let G=[,,,,,,,];return G[0]=u9(this.year<2000?this.year-1900:this.year-2000,2),G[1]=u9(this.month,2),G[2]=u9(this.day,2),G[3]=u9(this.hour,2),G[4]=u9(this.minute,2),G[5]=u9(this.second,2),G[6]="Z",G.join("")}return super.toString(W)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.toDate().toISOString()}`}toJSON(){return{...super.toJSON(),year:this.year,month:this.month,day:this.day,hour:this.hour,minute:this.minute,second:this.second}}}wP=xW;(()=>{b0.UTCTime=wP})();xW.NAME="UTCTime";var jP;class EX extends xW{constructor(W={}){var G;super(W);(G=this.millisecond)!==null&&G!==void 0||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(W){super.fromDate(W),this.millisecond=W.getUTCMilliseconds()}toDate(){let W=Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond);return new Date(W)}fromString(W){let G=!1,X="",Y="",Z=0,V,Q=0,J=0;if(W[W.length-1]==="Z")X=W.substring(0,W.length-1),G=!0;else{let N=new Number(W[W.length-1]);if(isNaN(N.valueOf()))throw Error("Wrong input string for conversion");X=W}if(G){if(X.indexOf("+")!==-1)throw Error("Wrong input string for conversion");if(X.indexOf("-")!==-1)throw Error("Wrong input string for conversion")}else{let N=1,A=X.indexOf("+"),H="";if(A===-1)A=X.indexOf("-"),N=-1;if(A!==-1){if(H=X.substring(A+1),X=X.substring(0,A),H.length!==2&&H.length!==4)throw Error("Wrong input string for conversion");let I=parseInt(H.substring(0,2),10);if(isNaN(I.valueOf()))throw Error("Wrong input string for conversion");if(Q=N*I,H.length===4){if(I=parseInt(H.substring(2,4),10),isNaN(I.valueOf()))throw Error("Wrong input string for conversion");J=N*I}}}let U=X.indexOf(".");if(U===-1)U=X.indexOf(",");if(U!==-1){let N=new Number(`0${X.substring(U)}`);if(isNaN(N.valueOf()))throw Error("Wrong input string for conversion");Z=N.valueOf(),Y=X.substring(0,U)}else Y=X;switch(!0){case Y.length===8:if(V=/(\d{4})(\d{2})(\d{2})/ig,U!==-1)throw Error("Wrong input string for conversion");break;case Y.length===10:if(V=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,U!==-1){let N=60*Z;this.minute=Math.floor(N),N=60*(N-this.minute),this.second=Math.floor(N),N=1000*(N-this.second),this.millisecond=Math.floor(N)}break;case Y.length===12:if(V=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,U!==-1){let N=60*Z;this.second=Math.floor(N),N=1000*(N-this.second),this.millisecond=Math.floor(N)}break;case Y.length===14:if(V=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,U!==-1){let N=1000*Z;this.millisecond=Math.floor(N)}break;default:throw Error("Wrong input string for conversion")}let q=V.exec(Y);if(q===null)throw Error("Wrong input string for conversion");for(let N=1;N<q.length;N++)switch(N){case 1:this.year=parseInt(q[N],10);break;case 2:this.month=parseInt(q[N],10);break;case 3:this.day=parseInt(q[N],10);break;case 4:this.hour=parseInt(q[N],10)+Q;break;case 5:this.minute=parseInt(q[N],10)+J;break;case 6:this.second=parseInt(q[N],10);break;default:throw Error("Wrong input string for conversion")}if(G===!1){let N=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond);this.year=N.getUTCFullYear(),this.month=N.getUTCMonth(),this.day=N.getUTCDay(),this.hour=N.getUTCHours(),this.minute=N.getUTCMinutes(),this.second=N.getUTCSeconds(),this.millisecond=N.getUTCMilliseconds()}}toString(W="iso"){if(W==="iso"){let G=[];if(G.push(u9(this.year,4)),G.push(u9(this.month,2)),G.push(u9(this.day,2)),G.push(u9(this.hour,2)),G.push(u9(this.minute,2)),G.push(u9(this.second,2)),this.millisecond!==0)G.push("."),G.push(u9(this.millisecond,3));return G.push("Z"),G.join("")}return super.toString(W)}toJSON(){return{...super.toJSON(),millisecond:this.millisecond}}}jP=EX;(()=>{b0.GeneralizedTime=jP})();EX.NAME="GeneralizedTime";var OP;class rU extends v5{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=31}}OP=rU;(()=>{b0.DATE=OP})();rU.NAME="DATE";var KP;class aU extends v5{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=32}}KP=aU;(()=>{b0.TimeOfDay=KP})();aU.NAME="TimeOfDay";var CP;class sU extends v5{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=33}}CP=sU;(()=>{b0.DateTime=CP})();sU.NAME="DateTime";var DP;class tU extends v5{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=34}}DP=tU;(()=>{b0.Duration=DP})();tU.NAME="Duration";var MP;class eU extends v5{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=14}}MP=eU;(()=>{b0.TIME=MP})();eU.NAME="TIME";class V4{constructor({name:W=h9,optional:G=!1}={}){this.name=W,this.optional=G}}class oZ extends V4{constructor({value:W=[],...G}={}){super(G);this.value=W}}class zX extends V4{constructor({value:W=new V4,local:G=!1,...X}={}){super(X);this.value=W,this.local=G}}class TP{get data(){return this.dataView.slice().buffer}set data(W){this.dataView=S0.toUint8Array(W)}constructor({data:W=pU}={}){this.dataView=S0.toUint8Array(W)}fromBER(W,G,X){let Y=G+X;return this.dataView=S0.toUint8Array(W).subarray(G,Y),Y}toBER(W){return this.dataView.slice().buffer}}function Y4(W,G,X){if(X instanceof oZ){for(let V of X.value)if(Y4(W,G,V).verified)return{verified:!0,result:W};{let V={verified:!1,result:{error:"Wrong values for Choice type"}};if(X.hasOwnProperty(mz))V.name=X.name;return V}}if(X instanceof V4){if(X.hasOwnProperty(mz))W[X.name]=G;return{verified:!0,result:W}}if(W instanceof Object===!1)return{verified:!1,result:{error:"Wrong root object"}};if(G instanceof Object===!1)return{verified:!1,result:{error:"Wrong ASN.1 data"}};if(X instanceof Object===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(Dm in X===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(Rm in X.idBlock===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(Lm in X.idBlock===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};let Y=X.idBlock.toBER(!1);if(Y.byteLength===0)return{verified:!1,result:{error:"Error encoding idBlock for ASN.1 schema"}};if(X.idBlock.fromBER(Y,0,Y.byteLength)===-1)return{verified:!1,result:{error:"Error decoding idBlock for ASN.1 schema"}};if(X.idBlock.hasOwnProperty(Mm)===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(X.idBlock.tagClass!==G.idBlock.tagClass)return{verified:!1,result:W};if(X.idBlock.hasOwnProperty(Tm)===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(X.idBlock.tagNumber!==G.idBlock.tagNumber)return{verified:!1,result:W};if(X.idBlock.hasOwnProperty(Pm)===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(X.idBlock.isConstructed!==G.idBlock.isConstructed)return{verified:!1,result:W};if(!(Cm in X.idBlock))return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(X.idBlock.isHexOnly!==G.idBlock.isHexOnly)return{verified:!1,result:W};if(X.idBlock.isHexOnly){if(uT in X.idBlock===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};let V=X.idBlock.valueHexView,Q=G.idBlock.valueHexView;if(V.length!==Q.length)return{verified:!1,result:W};for(let J=0;J<V.length;J++)if(V[J]!==Q[1])return{verified:!1,result:W}}if(X.name){if(X.name=X.name.replace(/^\s+|\s+$/g,h9),X.name)W[X.name]=G}if(X instanceof b0.Constructed){let V=0,Q={verified:!1,result:{error:"Unknown error"}},J=X.valueBlock.value.length;if(J>0){if(X.valueBlock.value[0]instanceof zX)J=G.valueBlock.value.length}if(J===0)return{verified:!0,result:W};if(G.valueBlock.value.length===0&&X.valueBlock.value.length!==0){let U=!0;for(let q=0;q<X.valueBlock.value.length;q++)U=U&&(X.valueBlock.value[q].optional||!1);if(U)return{verified:!0,result:W};if(X.name){if(X.name=X.name.replace(/^\s+|\s+$/g,h9),X.name)delete W[X.name]}return W.error="Inconsistent object length",{verified:!1,result:W}}for(let U=0;U<J;U++)if(U-V>=G.valueBlock.value.length){if(X.valueBlock.value[U].optional===!1){let q={verified:!1,result:W};if(W.error="Inconsistent length between ASN.1 data and schema",X.name){if(X.name=X.name.replace(/^\s+|\s+$/g,h9),X.name)delete W[X.name],q.name=X.name}return q}}else if(X.valueBlock.value[0]instanceof zX){if(Q=Y4(W,G.valueBlock.value[U],X.valueBlock.value[0].value),Q.verified===!1)if(X.valueBlock.value[0].optional)V++;else{if(X.name){if(X.name=X.name.replace(/^\s+|\s+$/g,h9),X.name)delete W[X.name]}return Q}if(mz in X.valueBlock.value[0]&&X.valueBlock.value[0].name.length>0){let q={};if(Bm in X.valueBlock.value[0]&&X.valueBlock.value[0].local)q=G;else q=W;if(typeof q[X.valueBlock.value[0].name]>"u")q[X.valueBlock.value[0].name]=[];q[X.valueBlock.value[0].name].push(G.valueBlock.value[U])}}else if(Q=Y4(W,G.valueBlock.value[U-V],X.valueBlock.value[U]),Q.verified===!1)if(X.valueBlock.value[U].optional)V++;else{if(X.name){if(X.name=X.name.replace(/^\s+|\s+$/g,h9),X.name)delete W[X.name]}return Q}if(Q.verified===!1){let U={verified:!1,result:W};if(X.name){if(X.name=X.name.replace(/^\s+|\s+$/g,h9),X.name)delete W[X.name],U.name=X.name}return U}return{verified:!0,result:W}}if(X.primitiveSchema&&uT in G.valueBlock){let V=dU(G.valueBlock.valueHexView);if(V.offset===-1){let Q={verified:!1,result:V.result};if(X.name){if(X.name=X.name.replace(/^\s+|\s+$/g,h9),X.name)delete W[X.name],Q.name=X.name}return Q}return Y4(W,V.result,X.primitiveSchema)}return{verified:!0,result:W}}function um(W,G){if(G instanceof Object===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema type"}};let X=dU(S0.toUint8Array(W));if(X.offset===-1)return{verified:!1,result:X.result};return Y4(X.result,X.result,G)}function PP(W){return Object.prototype.toString.call(W)}function hm(W){if(ArrayBuffer.isView(W))return!0;if(!W||typeof W!=="object")return!1;let G=W;return typeof G.byteOffset==="number"&&typeof G.byteLength==="number"&&Wq(G.buffer)}function ZI(W){return PP(W)==="[object ArrayBuffer]"}function RP(W){return typeof SharedArrayBuffer<"u"&&PP(W)==="[object SharedArrayBuffer]"}function Wq(W){return ZI(W)||RP(W)}function LP(W){return hm(W)}function U4(W){return Wq(W)||LP(W)}function VI(W){if(!U4(W))throw TypeError("Expected ArrayBuffer, SharedArrayBuffer, or ArrayBufferView")}function j5(W){if(VI(W),Wq(W))return new Uint8Array(W);return new Uint8Array(W.buffer,W.byteOffset,W.byteLength)}function c8(W){if(VI(W),ZI(W))return W;let G=new ArrayBuffer(W.byteLength);return new Uint8Array(G).set(j5(W)),G}function QI(W,G,X={}){let Y=j5(W),Z=j5(G);if(!X.constantTime&&Y.byteLength!==Z.byteLength)return!1;let V=Math.max(Y.byteLength,Z.byteLength),Q=Y.byteLength^Z.byteLength;for(let J=0;J<V;J++)Q|=(Y[J]??0)^(Z[J]??0);return Q===0}var a;(function(W){W[W.Sequence=0]="Sequence",W[W.Set=1]="Set",W[W.Choice=2]="Choice"})(a||(a={}));var F;(function(W){W[W.Any=1]="Any",W[W.Boolean=2]="Boolean",W[W.OctetString=3]="OctetString",W[W.BitString=4]="BitString",W[W.Integer=5]="Integer",W[W.Enumerated=6]="Enumerated",W[W.ObjectIdentifier=7]="ObjectIdentifier",W[W.Utf8String=8]="Utf8String",W[W.BmpString=9]="BmpString",W[W.UniversalString=10]="UniversalString",W[W.NumericString=11]="NumericString",W[W.PrintableString=12]="PrintableString",W[W.TeletexString=13]="TeletexString",W[W.VideotexString=14]="VideotexString",W[W.IA5String=15]="IA5String",W[W.GraphicString=16]="GraphicString",W[W.VisibleString=17]="VisibleString",W[W.GeneralString=18]="GeneralString",W[W.CharacterString=19]="CharacterString",W[W.UTCTime=20]="UTCTime",W[W.GeneralizedTime=21]="GeneralizedTime",W[W.DATE=22]="DATE",W[W.TimeOfDay=23]="TimeOfDay",W[W.DateTime=24]="DateTime",W[W.Duration=25]="Duration",W[W.TIME=26]="TIME",W[W.Null=27]="Null"})(F||(F={}));class q4{unusedBits=0;value=new ArrayBuffer(0);constructor(W,G=0){if(W)if(typeof W==="number")this.fromNumber(W);else if(U4(W))this.unusedBits=G,this.value=c8(W);else throw TypeError("Unsupported type of 'params' argument for BitString")}fromASN(W){if(!(W instanceof C7))throw TypeError("Argument 'asn' is not instance of ASN.1 BitString");return this.unusedBits=W.valueBlock.unusedBits,this.value=c8(W.valueBlock.valueHex),this}toASN(){return new C7({unusedBits:this.unusedBits,valueHex:this.value})}toSchema(W){return new C7({name:W})}toNumber(){let W="",G=new Uint8Array(this.value);for(let X of G)W+=X.toString(2).padStart(8,"0");if(W=W.split("").reverse().join(""),this.unusedBits)W=W.slice(this.unusedBits).padStart(this.unusedBits,"0");return parseInt(W,2)}fromNumber(W){let G=W.toString(2),X=G.length+7>>3;this.unusedBits=(X<<3)-G.length;let Y=new Uint8Array(X);G=G.padStart(X<<3,"0").split("").reverse().join("");let Z=0;while(Z<X)Y[Z]=parseInt(G.slice(Z<<3,(Z<<3)+8),2),Z++;this.value=Y.buffer}}class W1{buffer;get byteLength(){return this.buffer.byteLength}get byteOffset(){return 0}constructor(W){if(typeof W==="number")this.buffer=new ArrayBuffer(W);else if(U4(W))this.buffer=c8(W);else if(Array.isArray(W))this.buffer=new Uint8Array(W).buffer;else this.buffer=new ArrayBuffer(0)}fromASN(W){if(!(W instanceof K7))throw TypeError("Argument 'asn' is not instance of ASN.1 OctetString");return this.buffer=c8(W.valueBlock.valueHex),this}toASN(){return new K7({valueHex:this.buffer})}toSchema(W){return new K7({name:W})}}var fm={fromASN:(W)=>W instanceof O7?null:c8(W.valueBeforeDecodeView),toASN:(W)=>{if(W===null)return new O7;let G=J4(W);if(G.result.error)throw Error(G.result.error);return G.result}},cm={fromASN:(W)=>W.valueBlock.valueHexView.byteLength>=4?W.valueBlock.toString():W.valueBlock.valueDec,toASN:(W)=>new K6({value:+W})},pm={fromASN:(W)=>W.valueBlock.valueDec,toASN:(W)=>new wX({value:W})},y1={fromASN:(W)=>c8(W.valueBlock.valueHexView),toASN:(W)=>new K6({valueHex:W})};var lm={fromASN:(W)=>c8(W.valueBlock.valueHexView),toASN:(W)=>new C7({valueHex:W})},dm={fromASN:(W)=>W.valueBlock.toString(),toASN:(W)=>new jX({value:W})},om={fromASN:(W)=>W.valueBlock.value,toASN:(W)=>new IX({value:W})},$X={fromASN:(W)=>c8(W.valueBlock.valueHexView),toASN:(W)=>new K7({valueHex:W})},BP={fromASN:(W)=>new W1(W.getValue()),toASN:(W)=>W.toASN()};function O5(W){return{fromASN:(G)=>G.valueBlock.value,toASN:(G)=>new W({value:G})}}var JI=O5(v5),nm=O5(OX),im=O5(KX),rm=O5(CX),am=O5(DX),sm=O5(MX),tm=O5(TX),em=O5(PX),Wf=O5(RX),Gf=O5(SW),Xf=O5(LX),Yf=O5(BX),Zf={fromASN:(W)=>W.toDate(),toASN:(W)=>new xW({valueDate:W})},Vf={fromASN:(W)=>W.toDate(),toASN:(W)=>new EX({valueDate:W})},Qf={fromASN:()=>null,toASN:()=>{return new O7}};function C6(W){switch(W){case F.Any:return fm;case F.BitString:return lm;case F.BmpString:return nm;case F.Boolean:return om;case F.CharacterString:return Yf;case F.Enumerated:return pm;case F.GeneralString:return Xf;case F.GeneralizedTime:return Vf;case F.GraphicString:return Wf;case F.IA5String:return em;case F.Integer:return cm;case F.Null:return Qf;case F.NumericString:return rm;case F.ObjectIdentifier:return dm;case F.OctetString:return $X;case F.PrintableString:return am;case F.TeletexString:return sm;case F.UTCTime:return Zf;case F.UniversalString:return im;case F.Utf8String:return JI;case F.VideotexString:return tm;case F.VisibleString:return Gf;default:return null}}function K5(W){if(typeof W==="function"&&W.prototype)if(W.prototype.toASN&&W.prototype.fromASN)return!0;else return K5(W.prototype);else return!!(W&&typeof W==="object"&&("toASN"in W)&&("fromASN"in W))}function qI(W){if(W){let G=Object.getPrototypeOf(W);if(G?.prototype?.constructor===Array)return!0;return qI(G)}return!1}function EP(W,G){if(!(W&&G))return!1;if(W.byteLength!==G.byteLength)return!1;let X=new Uint8Array(W),Y=new Uint8Array(G);for(let Z=0;Z<W.byteLength;Z++)if(X[Z]!==Y[Z])return!1;return!0}class NI{items=new WeakMap;has(W){return this.items.has(W)}get(W,G=!1){let X=this.items.get(W);if(!X)throw Error(`Cannot get schema for '${W.prototype.constructor.name}' target`);if(G&&!X.schema)throw Error(`Schema '${W.prototype.constructor.name}' doesn't contain ASN.1 schema. Call 'AsnSchemaStorage.cache'.`);return X}cache(W){let G=this.get(W);if(!G.schema)G.schema=this.create(W,!0)}createDefault(W){let G={type:a.Sequence,items:{}},X=this.findParentSchema(W);if(X)Object.assign(G,X),G.items=Object.assign({},G.items,X.items);return G}create(W,G){let X=this.items.get(W)||this.createDefault(W),Y=[];for(let Z in X.items){let V=X.items[Z],Q=G?Z:"",J;if(typeof V.type==="number"){let q=F[V.type],N=D7[q];if(!N)throw Error(`Cannot get ASN1 class by name '${q}'`);J=new N({name:Q})}else if(K5(V.type))J=new V.type().toSchema(Q);else if(V.optional)if(this.get(V.type).type===a.Choice)J=new V4({name:Q});else J=this.create(V.type,!1),J.name=Q;else J=new V4({name:Q});let U=!!V.optional||V.defaultValue!==void 0;if(V.repeated)J.name="",J=new(V.repeated==="set"?b9:x9)({name:"",value:[new zX({name:Q,value:J})]});if(V.context!==null&&V.context!==void 0)if(V.implicit)if(typeof V.type==="number"||K5(V.type)){let q=V.repeated?f8:O6;Y.push(new q({name:Q,optional:U,idBlock:{tagClass:3,tagNumber:V.context}}))}else{this.cache(V.type);let q=!!V.repeated,N=!q?this.get(V.type,!0).schema:J;N="valueBlock"in N?N.valueBlock.value:N.value,Y.push(new f8({name:!q?Q:"",optional:U,idBlock:{tagClass:3,tagNumber:V.context},value:N}))}else Y.push(new f8({optional:U,idBlock:{tagClass:3,tagNumber:V.context},value:[J]}));else J.optional=U,Y.push(J)}switch(X.type){case a.Sequence:return new x9({value:Y,name:""});case a.Set:return new b9({value:Y,name:""});case a.Choice:return new oZ({value:Y,name:""});default:throw Error("Unsupported ASN1 type in use")}}set(W,G){return this.items.set(W,G),this}findParentSchema(W){let G=Object.getPrototypeOf(W);if(G)return this.items.get(G)||this.findParentSchema(G);return null}}var k8=new NI;var G0=(W)=>(G)=>{let X;if(!k8.has(G))X=k8.createDefault(G),k8.set(G,X);else X=k8.get(G);Object.assign(X,W)};var K=(W)=>(G,X)=>{let Y;if(!k8.has(G.constructor))Y=k8.createDefault(G.constructor),k8.set(G.constructor,Y);else Y=k8.get(G.constructor);let Z=Object.assign({},W);if(typeof Z.type==="number"&&!Z.converter){let V=C6(W.type);if(!V)throw Error(`Cannot get default converter for property '${X}' of ${G.constructor.name}`);Z.converter=V}Z.raw=W.raw,Y.items[X]=Z};class kW extends Error{schemas=[]}class Gq{static parse(W,G,X){let Y=J4(c8(W),X?.berOptions);if(Y.result.error)throw Error(Y.result.error);return this.fromASN(Y.result,G,X)}static fromASN(W,G,X){try{if(K5(G))return new G().fromASN(W);let Y=k8.get(G);k8.cache(G);let Z=Y.schema,V=this.handleChoiceTypes(W,Y,G,Z,X);if(V?.result)return V.result;if(V?.targetSchema)Z=V.targetSchema;let Q=this.handleSequenceTypes(W,Y,G,Z),J=new G;if(qI(G))return this.handleArrayTypes(W,Y,G,X);return this.processSchemaItems(Y,Q,J,X),J}catch(Y){if(Y instanceof kW)Y.schemas.push(G.name);throw Y}}static handleChoiceTypes(W,G,X,Y,Z){if(W.constructor===f8&&G.type===a.Choice&&W.idBlock.tagClass===3)for(let V in G.items){let Q=G.items[V];if(Q.context===W.idBlock.tagNumber&&Q.implicit){if(typeof Q.type==="function"&&k8.has(Q.type)){let J=k8.get(Q.type);if(J&&J.type===a.Sequence){let U=new x9;if("value"in W.valueBlock&&Array.isArray(W.valueBlock.value)&&"value"in U.valueBlock){U.valueBlock.value=W.valueBlock.value;let q=this.fromASN(U,Q.type,Z),N=new X;return N[V]=q,{result:N}}}}}}else if(W.constructor===f8&&G.type!==a.Choice){let V=new f8({idBlock:{tagClass:3,tagNumber:W.idBlock.tagNumber},value:G.schema.valueBlock.value});for(let Q in G.items)delete W[Q];return{targetSchema:V}}return null}static handleSequenceTypes(W,G,X,Y){if(G.type===a.Sequence){let Z=Y4({},W,Y);if(!Z.verified)throw new kW(`Data does not match to ${X.name} ASN1 schema.${Z.result.error?` ${Z.result.error}`:""}`);return Z}else{let Z=Y4({},W,Y);if(!Z.verified)throw new kW(`Data does not match to ${X.name} ASN1 schema.${Z.result.error?` ${Z.result.error}`:""}`);return Z}}static processRepeatedField(W,G,X){let Y=W.slice(G);if(Y.length===1&&Y[0].constructor.name==="Sequence"){let Z=Y[0];if(Z.valueBlock&&Z.valueBlock.value&&Array.isArray(Z.valueBlock.value))Y=Z.valueBlock.value}if(typeof X.type==="number"){let Z=C6(X.type);if(!Z)throw Error(`No converter for ASN.1 type ${X.type}`);return Y.filter((V)=>V&&V.valueBlock).map((V)=>{try{return Z.fromASN(V)}catch{return}}).filter((V)=>V!==void 0)}else return Y.filter((Z)=>Z&&Z.valueBlock).map((Z)=>{try{return this.fromASN(Z,X.type)}catch{return}}).filter((Z)=>Z!==void 0)}static processPrimitiveField(W,G){let X=C6(G.type);if(!X)throw Error(`No converter for ASN.1 type ${G.type}`);return X.fromASN(W)}static isOptionalChoiceField(W){return W.optional&&typeof W.type==="function"&&k8.has(W.type)&&k8.get(W.type).type===a.Choice}static processOptionalChoiceField(W,G){try{return{processed:!0,value:this.fromASN(W,G.type)}}catch(X){if(X instanceof kW&&/Wrong values for Choice type/.test(X.message))return{processed:!1};throw X}}static handleArrayTypes(W,G,X,Y){if(!(("value"in W.valueBlock)&&Array.isArray(W.valueBlock.value)))throw Error("Cannot get items from the ASN.1 parsed value. ASN.1 object is not constructed.");let Z=G.itemType;if(typeof Z==="number"){let V=C6(Z);if(!V)throw Error(`Cannot get default converter for array item of ${X.name} ASN1 schema`);return X.from(W.valueBlock.value,(Q)=>V.fromASN(Q))}else return X.from(W.valueBlock.value,(V)=>this.fromASN(V,Z,Y))}static processSchemaItems(W,G,X,Y){for(let Z in W.items){let V=G.result[Z];if(!V)continue;let Q=W.items[Z],J=Q.type,U;if(typeof J==="number"||K5(J))U=this.processPrimitiveSchemaItem(V,Q,J,Y);else U=this.processComplexSchemaItem(V,Q,J,Y);if(U&&typeof U==="object"&&"value"in U&&"raw"in U)X[Z]=U.value,X[`${Z}Raw`]=U.raw;else X[Z]=U}}static processPrimitiveSchemaItem(W,G,X,Y){let Z=G.converter??(K5(X)?new X:null);if(!Z)throw Error("Converter is empty");if(G.repeated)return this.processRepeatedPrimitiveItem(W,G,Z,Y);else return this.processSinglePrimitiveItem(W,G,X,Z,Y)}static processRepeatedPrimitiveItem(W,G,X,Y){if(G.implicit){let V=new(G.repeated==="sequence"?x9:b9);V.valueBlock=W.valueBlock;let Q=J4(V.toBER(!1),Y?.berOptions);if(Q.offset===-1)throw Error(`Cannot parse the child item. ${Q.result.error}`);if(!(("value"in Q.result.valueBlock)&&Array.isArray(Q.result.valueBlock.value)))throw Error("Cannot get items from the ASN.1 parsed value. ASN.1 object is not constructed.");let J=Q.result.valueBlock.value;return Array.from(J,(U)=>X.fromASN(U))}else return Array.from(W,(Z)=>X.fromASN(Z))}static processSinglePrimitiveItem(W,G,X,Y,Z){let V=W;if(G.implicit){let Q;if(K5(X))Q=new X().toSchema("");else{let J=F[X],U=D7[J];if(!U)throw Error(`Cannot get '${J}' class from asn1js module`);Q=new U}Q.valueBlock=V.valueBlock,V=J4(Q.toBER(!1),Z?.berOptions).result}return Y.fromASN(V)}static processComplexSchemaItem(W,G,X,Y){if(G.repeated){if(!Array.isArray(W))throw Error("Cannot get list of items from the ASN.1 parsed value. ASN.1 value should be iterable.");return Array.from(W,(Z)=>this.fromASN(Z,X,Y))}else{let Z=this.handleImplicitTagging(W,G,X);if(this.isOptionalChoiceField(G))try{return this.fromASN(Z,X,Y)}catch(V){if(V instanceof kW&&/Wrong values for Choice type/.test(V.message))return;throw V}else{let V=this.fromASN(Z,X,Y);if(G.raw)return{value:V,raw:W.valueBeforeDecodeView};return V}}}static handleImplicitTagging(W,G,X){if(G.implicit&&typeof G.context==="number"){let Y=k8.get(X);if(Y.type===a.Sequence){let Z=new x9;if("value"in W.valueBlock&&Array.isArray(W.valueBlock.value)&&"value"in Z.valueBlock)return Z.valueBlock.value=W.valueBlock.value,Z}else if(Y.type===a.Set){let Z=new b9;if("value"in W.valueBlock&&Array.isArray(W.valueBlock.value)&&"value"in Z.valueBlock)return Z.valueBlock.value=W.valueBlock.value,Z}}return W}}class nZ{static serialize(W){if(W instanceof x8)return W.toBER(!1);return this.toASN(W).toBER(!1)}static toASN(W){if(W&&typeof W==="object"&&K5(W))return W.toASN();if(!(W&&typeof W==="object"))throw TypeError("Parameter 1 should be type of Object.");let G=W.constructor,X=k8.get(G);k8.cache(G);let Y=[];if(X.itemType){if(!Array.isArray(W))throw TypeError("Parameter 1 should be type of Array.");if(typeof X.itemType==="number"){let V=C6(X.itemType);if(!V)throw Error(`Cannot get default converter for array item of ${G.name} ASN1 schema`);Y=W.map((Q)=>V.toASN(Q))}else Y=W.map((V)=>this.toAsnItem({type:X.itemType},"[]",G,V))}else for(let V in X.items){let Q=X.items[V],J=W[V];if(J===void 0||Q.defaultValue===J||typeof Q.defaultValue==="object"&&typeof J==="object"&&EP(this.serialize(Q.defaultValue),this.serialize(J)))continue;let U=nZ.toAsnItem(Q,V,G,J);if(typeof Q.context==="number")if(Q.implicit)if(!Q.repeated&&(typeof Q.type==="number"||K5(Q.type))){let q={};q.valueHex=U instanceof O7?c8(U.valueBeforeDecodeView):U.valueBlock.toBER(),Y.push(new O6({optional:Q.optional,idBlock:{tagClass:3,tagNumber:Q.context},...q}))}else Y.push(new f8({optional:Q.optional,idBlock:{tagClass:3,tagNumber:Q.context},value:U.valueBlock.value}));else Y.push(new f8({optional:Q.optional,idBlock:{tagClass:3,tagNumber:Q.context},value:[U]}));else if(Q.repeated)Y=Y.concat(U);else Y.push(U)}let Z;switch(X.type){case a.Sequence:Z=new x9({value:Y});break;case a.Set:Z=new b9({value:Y});break;case a.Choice:if(!Y[0])throw Error(`Schema '${G.name}' has wrong data. Choice cannot be empty.`);Z=Y[0];break}return Z}static toAsnItem(W,G,X,Y){let Z;if(typeof W.type==="number"){let V=W.converter;if(!V)throw Error(`Property '${G}' doesn't have converter for type ${F[W.type]} in schema '${X.name}'`);if(W.repeated){if(!Array.isArray(Y))throw TypeError("Parameter 'objProp' should be type of Array.");let Q=Array.from(Y,(U)=>V.toASN(U));Z=new(W.repeated==="sequence"?x9:b9)({value:Q})}else Z=V.toASN(Y)}else if(W.repeated){if(!Array.isArray(Y))throw TypeError("Parameter 'objProp' should be type of Array.");let V=Array.from(Y,(J)=>this.toASN(J));Z=new(W.repeated==="sequence"?x9:b9)({value:V})}else Z=this.toASN(Y);return Z}}class i0 extends Array{constructor(W=[]){if(typeof W==="number")super(W);else{super();for(let G of W)this.push(G)}}}class L0{static serialize(W){return nZ.serialize(W)}static parse(W,G,X){return Gq.parse(W,G,X)}static toString(W,G){let X=U4(W)?c8(W):L0.serialize(W),Y=J4(X,G?.berOptions);if(Y.offset===-1)throw Error(`Cannot decode ASN.1 data. ${Y.result.error}`);return Y.result.toString()}}var YR=v1(XR(),1),{__extends:j10,__assign:O10,__rest:K10,__decorate:j,__param:C10,__esDecorate:D10,__runInitializers:M10,__propKey:T10,__setFunctionName:P10,__metadata:R10,__awaiter:L10,__generator:B10,__exportStar:E10,__createBinding:$10,__values:F10,__read:S10,__spread:x10,__spreadArrays:k10,__spreadArray:_10,__await:y10,__asyncGenerator:v10,__asyncDelegator:g10,__asyncValues:u10,__makeTemplateObject:h10,__importStar:b10,__importDefault:m10,__classPrivateFieldGet:D1,__classPrivateFieldSet:q8,__classPrivateFieldIn:f10,__addDisposableResource:c10,__disposeResources:p10,__rewriteRelativeImportExtension:l10}=YR.default;var SX={};qA(SX,{parse:()=>JR,normalize:()=>iZ,is:()=>QR,hex:()=>Kf,formats:()=>qR,format:()=>UR,encode:()=>AI,decode:()=>zI});var Uf=/^[0-9a-f]$/i,qf=[" ","\t",`
|
|
208
|
+
`)}`:`${G} :`}}oT=f8;(()=>{b0.Constructed=oT})();f8.NAME="CONSTRUCTED";class oz extends t8{fromBER(W,G,X){return G}toBER(W){return w7}}oz.override="EndOfContentValueBlock";var nT;class oU extends x8{constructor(W={}){super(W,oz);this.idBlock.tagClass=1,this.idBlock.tagNumber=0}}nT=oU;(()=>{b0.EndOfContent=nT})();oU.NAME=pZ;var iT;class O7 extends x8{constructor(W={}){super(W,t8);this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(W,G,X){if(this.lenBlock.length>0)this.warnings.push("Non-zero length of value block for Null type");if(!this.idBlock.error.length)this.blockLength+=this.idBlock.blockLength;if(!this.lenBlock.error.length)this.blockLength+=this.lenBlock.blockLength;if(this.blockLength+=X,G+X>W.byteLength)return this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1;return G+X}toBER(W,G){let X=new ArrayBuffer(2);if(!W){let Y=new Uint8Array(X);Y[0]=5,Y[1]=0}if(G)G.write(X);return X}onAsciiEncoding(){return`${this.constructor.NAME}`}}iT=O7;(()=>{b0.Null=iT})();O7.NAME="NULL";class nz extends j7(t8){get value(){for(let W of this.valueHexView)if(W>0)return!0;return!1}set value(W){this.valueHexView[0]=W?255:0}constructor({value:W,...G}={}){super(G);if(G.valueHex)this.valueHexView=S0.toUint8Array(G.valueHex);else this.valueHexView=new Uint8Array(1);if(W)this.value=W}fromBER(W,G,X){let Y=S0.toUint8Array(W);if(!Q4(this,Y,G,X))return-1;if(this.valueHexView=Y.subarray(G,G+X),X>1)this.warnings.push("Boolean value encoded in more then 1 octet");return this.isHexOnly=!0,bz.call(this),this.blockLength=X,G+X}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}}nz.NAME="BooleanValueBlock";var rT;class IX extends x8{getValue(){return this.valueBlock.value}setValue(W){this.valueBlock.value=W}constructor(W={}){super(W,nz);this.idBlock.tagClass=1,this.idBlock.tagNumber=1}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}}rT=IX;(()=>{b0.Boolean=rT})();IX.NAME="BOOLEAN";class iz extends j7(Z4){constructor({isConstructed:W=!1,...G}={}){super(G);this.isConstructed=W}fromBER(W,G,X,Y){let Z=0;if(this.isConstructed){if(this.isHexOnly=!1,Z=Z4.prototype.fromBER.call(this,W,G,X,Y),Z===-1)return Z;for(let V=0;V<this.value.length;V++){let Q=this.value[V].constructor.NAME;if(Q===pZ)if(this.isIndefiniteForm)break;else return this.error="EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1;if(Q!==bT)return this.error="OCTET STRING may consists of OCTET STRINGs only",-1}}else this.isHexOnly=!0,Z=super.fromBER(W,G,X),this.blockLength=X;return Z}toBER(W,G){if(this.isConstructed)return Z4.prototype.toBER.call(this,W,G);return W?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),isConstructed:this.isConstructed}}}iz.NAME="OctetStringValueBlock";var rz;class K7 extends x8{constructor({idBlock:W={},lenBlock:G={},...X}={}){var Y,Z;(Y=X.isConstructed)!==null&&Y!==void 0||(X.isConstructed=!!((Z=X.value)===null||Z===void 0?void 0:Z.length));super({idBlock:{isConstructed:X.isConstructed,...W},lenBlock:{...G,isIndefiniteForm:!!X.isIndefiniteForm},...X},iz);this.idBlock.tagClass=1,this.idBlock.tagNumber=4}fromBER(W,G,X,Y){if(this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,X===0){if(this.idBlock.error.length===0)this.blockLength+=this.idBlock.blockLength;if(this.lenBlock.error.length===0)this.blockLength+=this.lenBlock.blockLength;return G}if(!this.valueBlock.isConstructed){let V=(W instanceof ArrayBuffer?new Uint8Array(W):W).subarray(G,G+X);try{if(V.byteLength){let Q=Y!==null&&Y!==void 0?Y:dZ(),J=dz(V,0,V.byteLength,Q);if(J.offset!==-1&&J.offset===X)this.valueBlock.value=[J.result]}}catch{}}return super.fromBER(W,G,X,Y)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return f8.prototype.onAsciiEncoding.call(this);let W=this.constructor.NAME,G=p0.ToHex(this.valueBlock.valueHexView);return`${W} : ${G}`}getValue(){if(!this.idBlock.isConstructed)return this.valueBlock.valueHexView.slice().buffer;let W=[];for(let G of this.valueBlock.value)if(G instanceof rz)W.push(G.valueBlock.valueHexView);return S0.concat(W)}}rz=K7;(()=>{b0.OctetString=rz})();K7.NAME=bT;class az extends j7(Z4){constructor({unusedBits:W=0,isConstructed:G=!1,...X}={}){super(X);this.unusedBits=W,this.isConstructed=G,this.blockLength=this.valueHexView.byteLength}fromBER(W,G,X,Y){if(!X)return G;let Z=-1;if(this.isConstructed){if(Z=Z4.prototype.fromBER.call(this,W,G,X,Y),Z===-1)return Z;for(let J of this.value){let U=J.constructor.NAME;if(U===pZ)if(this.isIndefiniteForm)break;else return this.error="EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only",-1;if(U!==mT)return this.error="BIT STRING may consists of BIT STRINGs only",-1;let q=J.valueBlock;if(this.unusedBits>0&&q.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=q.unusedBits}return Z}let V=S0.toUint8Array(W);if(!Q4(this,V,G,X))return-1;let Q=V.subarray(G,G+X);if(this.unusedBits=Q[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){let J=Q.subarray(1);try{if(J.byteLength){let U=Y!==null&&Y!==void 0?Y:dZ(),q=dz(J,0,J.byteLength,U);if(q.offset!==-1&&q.offset===X-1)this.value=[q.result]}}catch{}}return this.valueHexView=Q.subarray(1),this.blockLength=Q.length,G+X}toBER(W,G){if(this.isConstructed)return Z4.prototype.toBER.call(this,W,G);if(W)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength){let Y=new Uint8Array(1);return Y[0]=0,Y.buffer}let X=new Uint8Array(this.valueHexView.length+1);return X[0]=this.unusedBits,X.set(this.valueHexView,1),X.buffer}toJSON(){return{...super.toJSON(),unusedBits:this.unusedBits,isConstructed:this.isConstructed}}}az.NAME="BitStringValueBlock";var aT;class C7 extends x8{constructor({idBlock:W={},lenBlock:G={},...X}={}){var Y,Z;(Y=X.isConstructed)!==null&&Y!==void 0||(X.isConstructed=!!((Z=X.value)===null||Z===void 0?void 0:Z.length));super({idBlock:{isConstructed:X.isConstructed,...W},lenBlock:{...G,isIndefiniteForm:!!X.isIndefiniteForm},...X},az);this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(W,G,X,Y){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(W,G,X,Y)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return f8.prototype.onAsciiEncoding.call(this);else{let W=[],G=this.valueBlock.valueHexView;for(let V of G)W.push(V.toString(2).padStart(8,"0"));let X=W.join(""),Y=this.constructor.NAME,Z=X.substring(0,X.length-this.valueBlock.unusedBits);return`${Y} : ${Z}`}}}aT=C7;(()=>{b0.BitString=aT})();C7.NAME=mT;var sT;function vm(W,G){let X=new Uint8Array([0]),Y=new Uint8Array(W),Z=new Uint8Array(G),V=Y.slice(0),Q=V.length-1,J=Z.slice(0),U=J.length-1,q=0,N=U<Q?Q:U,A=0;for(let H=N;H>=0;H--,A++){switch(!0){case A<J.length:q=V[Q-A]+J[U-A]+X[0];break;default:q=V[Q-A]+X[0]}switch(X[0]=q/10,!0){case A>=V.length:V=bU(new Uint8Array([q%10]),V);break;default:V[Q-A]=q%10}}if(X[0]>0)V=bU(X,V);return V}function hT(W){if(W>=fZ.length)for(let G=fZ.length;G<=W;G++){let X=new Uint8Array([0]),Y=fZ[G-1].slice(0);for(let Z=Y.length-1;Z>=0;Z--){let V=new Uint8Array([(Y[Z]<<1)+X[0]]);X[0]=V[0]/10,Y[Z]=V[0]%10}if(X[0]>0)Y=bU(X,Y);fZ.push(Y)}return fZ[W]}function gm(W,G){let X=0,Y=new Uint8Array(W),Z=new Uint8Array(G),V=Y.slice(0),Q=V.length-1,J=Z.slice(0),U=J.length-1,q,N=0;for(let A=U;A>=0;A--,N++)switch(q=V[Q-N]-J[U-N]-X,!0){case q<0:X=1,V[Q-N]=q+10;break;default:X=0,V[Q-N]=q}if(X>0)for(let A=Q-U+1;A>=0;A--,N++)if(q=V[Q-N]-X,q<0)X=1,V[Q-N]=q+10;else{X=0,V[Q-N]=q;break}return V.slice()}class nU extends j7(t8){setValueHex(){if(this.valueHexView.length>=4)this.warnings.push("Too big Integer for decoding, hex only"),this.isHexOnly=!0,this._valueDec=0;else if(this.isHexOnly=!1,this.valueHexView.length>0)this._valueDec=bz.call(this)}constructor({value:W,...G}={}){super(G);if(this._valueDec=0,G.valueHex)this.setValueHex();if(W!==void 0)this.valueDec=W}set valueDec(W){this._valueDec=W,this.isHexOnly=!1,this.valueHexView=new Uint8Array(yT(W))}get valueDec(){return this._valueDec}fromDER(W,G,X,Y=0){let Z=this.fromBER(W,G,X);if(Z===-1)return Z;let V=this.valueHexView;if(V[0]===0&&(V[1]&128)!==0)this.valueHexView=V.subarray(1);else if(Y!==0){if(V.length<Y){if(Y-V.length>1)Y=V.length+1;this.valueHexView=V.subarray(Y-V.length)}}return Z}toDER(W=!1){let G=this.valueHexView;switch(!0){case(G[0]&128)!==0:{let X=new Uint8Array(this.valueHexView.length+1);X[0]=0,X.set(G,1),this.valueHexView=X}break;case(G[0]===0&&(G[1]&128)===0):this.valueHexView=this.valueHexView.subarray(1);break}return this.toBER(W)}fromBER(W,G,X){let Y=super.fromBER(W,G,X);if(Y===-1)return Y;return this.setValueHex(),Y}toBER(W){return W?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){let W=this.valueHexView.length*8-1,G=new Uint8Array(this.valueHexView.length*8/3),X=0,Y,Z=this.valueHexView,V="",Q=!1;for(let J=Z.byteLength-1;J>=0;J--){Y=Z[J];for(let U=0;U<8;U++){if((Y&1)===1)switch(X){case W:G=gm(hT(X),G),V="-";break;default:G=vm(G,hT(X))}X++,Y>>=1}}for(let J=0;J<G.length;J++){if(G[J])Q=!0;if(Q)V+=gT.charAt(G[J])}if(Q===!1)V+=gT.charAt(0);return V}}sT=nU;nU.NAME="IntegerValueBlock";(()=>{Object.defineProperty(sT.prototype,"valueHex",{set:function(W){this.valueHexView=new Uint8Array(W),this.setValueHex()},get:function(){return this.valueHexView.slice().buffer}})})();var cZ;class K6 extends x8{constructor(W={}){super(W,nU);this.idBlock.tagClass=1,this.idBlock.tagNumber=2}toBigInt(){return mU(),BigInt(this.valueBlock.toString())}static fromBigInt(W){mU();let G=BigInt(W),X=new lZ,Y=G.toString(16).replace(/^-/,""),Z=new Uint8Array(p0.FromHex(Y));if(G<0){let Q=new Uint8Array(Z.length+(Z[0]&128?1:0));Q[0]|=128;let U=BigInt(`0x${p0.ToHex(Q)}`)+G,q=S0.toUint8Array(p0.FromHex(U.toString(16)));q[0]|=128,X.write(q)}else{if(Z[0]&128)X.write(new Uint8Array([0]));X.write(Z)}return new cZ({valueHex:X.final()})}convertToDER(){let W=new cZ({valueHex:this.valueBlock.valueHexView});return W.valueBlock.toDER(),W}convertFromDER(){return new cZ({valueHex:this.valueBlock.valueHexView[0]===0?this.valueBlock.valueHexView.subarray(1):this.valueBlock.valueHexView})}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()}`}}cZ=K6;(()=>{b0.Integer=cZ})();K6.NAME="INTEGER";var tT;class wX extends K6{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=10}}tT=wX;(()=>{b0.Enumerated=tT})();wX.NAME="ENUMERATED";class fU extends j7(t8){constructor({valueDec:W=-1,isFirstSid:G=!1,...X}={}){super(X);this.valueDec=W,this.isFirstSid=G}fromBER(W,G,X){if(!X)return G;let Y=S0.toUint8Array(W);if(!Q4(this,Y,G,X))return-1;let Z=Y.subarray(G,G+X);this.valueHexView=new Uint8Array(X);for(let Q=0;Q<X;Q++)if(this.valueHexView[Q]=Z[Q]&127,this.blockLength++,(Z[Q]&128)===0)break;let V=new Uint8Array(this.blockLength);for(let Q=0;Q<this.blockLength;Q++)V[Q]=this.valueHexView[Q];if(this.valueHexView=V,(Z[this.blockLength-1]&128)!==0)return this.error="End of input reached before message was fully decoded",-1;if(this.valueHexView[0]===0)this.warnings.push("Needlessly long format of SID encoding");if(this.blockLength<=8)this.valueDec=FW(this.valueHexView,7);else this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only");return G+this.blockLength}set valueBigInt(W){mU();let G=BigInt(W).toString(2);while(G.length%7)G="0"+G;let X=new Uint8Array(G.length/7);for(let Y=0;Y<X.length;Y++)X[Y]=parseInt(G.slice(Y*7,Y*7+7),2)+(Y+1<X.length?128:0);this.fromBER(X.buffer,0,X.length)}toBER(W){if(this.isHexOnly){if(W)return new ArrayBuffer(this.valueHexView.byteLength);let Y=this.valueHexView,Z=new Uint8Array(this.blockLength);for(let V=0;V<this.blockLength-1;V++)Z[V]=Y[V]|128;return Z[this.blockLength-1]=Y[this.blockLength-1],Z.buffer}let G=w6(this.valueDec,7);if(G.byteLength===0)return this.error="Error during encoding SID value",w7;let X=new Uint8Array(G.byteLength);if(!W){let Y=new Uint8Array(G),Z=G.byteLength-1;for(let V=0;V<Z;V++)X[V]=Y[V]|128;X[Z]=Y[Z]}return X}toString(){let W="";if(this.isHexOnly)W=p0.ToHex(this.valueHexView);else if(this.isFirstSid){let G=this.valueDec;if(this.valueDec<=39)W="0.";else if(this.valueDec<=79)W="1.",G-=40;else W="2.",G-=80;W+=G.toString()}else W=this.valueDec.toString();return W}toJSON(){return{...super.toJSON(),valueDec:this.valueDec,isFirstSid:this.isFirstSid}}}fU.NAME="sidBlock";class sz extends t8{constructor({value:W=h9,...G}={}){super(G);if(this.value=[],W)this.fromString(W)}fromBER(W,G,X){let Y=G;while(X>0){let Z=new fU;if(Y=Z.fromBER(W,Y,X),Y===-1)return this.blockLength=0,this.error=Z.error,Y;if(this.value.length===0)Z.isFirstSid=!0;this.blockLength+=Z.blockLength,X-=Z.blockLength,this.value.push(Z)}return Y}toBER(W){let G=[];for(let X=0;X<this.value.length;X++){let Y=this.value[X].toBER(W);if(Y.byteLength===0)return this.error=this.value[X].error,w7;G.push(Y)}return fz(G)}fromString(W){this.value=[];let G=0,X=0,Y="",Z=!1;do{if(X=W.indexOf(".",G),X===-1)Y=W.substring(G);else Y=W.substring(G,X);if(G=X+1,Z){let V=this.value[0],Q=0;switch(V.valueDec){case 0:break;case 1:Q=40;break;case 2:Q=80;break;default:this.value=[];return}let J=parseInt(Y,10);if(isNaN(J))return;V.valueDec=J+Q,Z=!1}else{let V=new fU;if(Y>Number.MAX_SAFE_INTEGER){mU();let Q=BigInt(Y);V.valueBigInt=Q}else if(V.valueDec=parseInt(Y,10),isNaN(V.valueDec))return;if(!this.value.length)V.isFirstSid=!0,Z=!0;this.value.push(V)}}while(X!==-1)}toString(){let W="",G=!1;for(let X=0;X<this.value.length;X++){G=this.value[X].isHexOnly;let Y=this.value[X].toString();if(X!==0)W=`${W}.`;if(G)if(Y=`{${Y}}`,this.value[X].isFirstSid)W=`2.{${Y} - 80}`;else W+=Y;else W+=Y}return W}toJSON(){let W={...super.toJSON(),value:this.toString(),sidArray:[]};for(let G=0;G<this.value.length;G++)W.sidArray.push(this.value[G].toJSON());return W}}sz.NAME="ObjectIdentifierValueBlock";var eT;class jX extends x8{getValue(){return this.valueBlock.toString()}setValue(W){this.valueBlock.fromString(W)}constructor(W={}){super(W,sz);this.idBlock.tagClass=1,this.idBlock.tagNumber=6}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}}eT=jX;(()=>{b0.ObjectIdentifier=eT})();jX.NAME="OBJECT IDENTIFIER";class cU extends j7(j6){constructor({valueDec:W=0,...G}={}){super(G);this.valueDec=W}fromBER(W,G,X){if(X===0)return G;let Y=S0.toUint8Array(W);if(!Q4(this,Y,G,X))return-1;let Z=Y.subarray(G,G+X);this.valueHexView=new Uint8Array(X);for(let Q=0;Q<X;Q++)if(this.valueHexView[Q]=Z[Q]&127,this.blockLength++,(Z[Q]&128)===0)break;let V=new Uint8Array(this.blockLength);for(let Q=0;Q<this.blockLength;Q++)V[Q]=this.valueHexView[Q];if(this.valueHexView=V,(Z[this.blockLength-1]&128)!==0)return this.error="End of input reached before message was fully decoded",-1;if(this.valueHexView[0]===0)this.warnings.push("Needlessly long format of SID encoding");if(this.blockLength<=8)this.valueDec=FW(this.valueHexView,7);else this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only");return G+this.blockLength}toBER(W){if(this.isHexOnly){if(W)return new ArrayBuffer(this.valueHexView.byteLength);let Y=this.valueHexView,Z=new Uint8Array(this.blockLength);for(let V=0;V<this.blockLength-1;V++)Z[V]=Y[V]|128;return Z[this.blockLength-1]=Y[this.blockLength-1],Z.buffer}let G=w6(this.valueDec,7);if(G.byteLength===0)return this.error="Error during encoding SID value",w7;let X=new Uint8Array(G.byteLength);if(!W){let Y=new Uint8Array(G),Z=G.byteLength-1;for(let V=0;V<Z;V++)X[V]=Y[V]|128;X[Z]=Y[Z]}return X.buffer}toString(){let W="";if(this.isHexOnly)W=p0.ToHex(this.valueHexView);else W=this.valueDec.toString();return W}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}}cU.NAME="relativeSidBlock";class tz extends t8{constructor({value:W=h9,...G}={}){super(G);if(this.value=[],W)this.fromString(W)}fromBER(W,G,X){let Y=G;while(X>0){let Z=new cU;if(Y=Z.fromBER(W,Y,X),Y===-1)return this.blockLength=0,this.error=Z.error,Y;this.blockLength+=Z.blockLength,X-=Z.blockLength,this.value.push(Z)}return Y}toBER(W,G){let X=[];for(let Y=0;Y<this.value.length;Y++){let Z=this.value[Y].toBER(W);if(Z.byteLength===0)return this.error=this.value[Y].error,w7;X.push(Z)}return fz(X)}fromString(W){this.value=[];let G=0,X=0,Y="";do{if(X=W.indexOf(".",G),X===-1)Y=W.substring(G);else Y=W.substring(G,X);G=X+1;let Z=new cU;if(Z.valueDec=parseInt(Y,10),isNaN(Z.valueDec))return!0;this.value.push(Z)}while(X!==-1);return!0}toString(){let W="",G=!1;for(let X=0;X<this.value.length;X++){G=this.value[X].isHexOnly;let Y=this.value[X].toString();if(X!==0)W=`${W}.`;if(G)Y=`{${Y}}`,W+=Y;else W+=Y}return W}toJSON(){let W={...super.toJSON(),value:this.toString(),sidArray:[]};for(let G=0;G<this.value.length;G++)W.sidArray.push(this.value[G].toJSON());return W}}tz.NAME="RelativeObjectIdentifierValueBlock";var WP;class iU extends x8{getValue(){return this.valueBlock.toString()}setValue(W){this.valueBlock.fromString(W)}constructor(W={}){super(W,tz);this.idBlock.tagClass=1,this.idBlock.tagNumber=13}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}}WP=iU;(()=>{b0.RelativeObjectIdentifier=WP})();iU.NAME="RelativeObjectIdentifier";var GP;class x9 extends f8{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=16}}GP=x9;(()=>{b0.Sequence=GP})();x9.NAME="SEQUENCE";var XP;class b9 extends f8{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=17}}XP=b9;(()=>{b0.Set=XP})();b9.NAME="SET";class ez extends j7(t8){constructor({...W}={}){super(W);this.isHexOnly=!0,this.value=h9}toJSON(){return{...super.toJSON(),value:this.value}}}ez.NAME="StringValueBlock";class WI extends ez{}WI.NAME="SimpleStringValueBlock";class m9 extends lU{constructor({...W}={}){super(W,WI)}fromBuffer(W){this.valueBlock.value=String.fromCharCode.apply(null,S0.toUint8Array(W))}fromString(W){let G=W.length,X=this.valueBlock.valueHexView=new Uint8Array(G);for(let Y=0;Y<G;Y++)X[Y]=W.charCodeAt(Y);this.valueBlock.value=W}}m9.NAME="SIMPLE STRING";class GI extends m9{fromBuffer(W){this.valueBlock.valueHexView=S0.toUint8Array(W);try{this.valueBlock.value=p0.ToUtf8String(W)}catch(G){this.warnings.push(`Error during "decodeURIComponent": ${G}, using raw string`),this.valueBlock.value=p0.ToBinary(W)}}fromString(W){this.valueBlock.valueHexView=new Uint8Array(p0.FromUtf8String(W)),this.valueBlock.value=W}}GI.NAME="Utf8StringValueBlock";var YP;class v5 extends GI{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=12}}YP=v5;(()=>{b0.Utf8String=YP})();v5.NAME="UTF8String";class XI extends m9{fromBuffer(W){this.valueBlock.value=p0.ToUtf16String(W),this.valueBlock.valueHexView=S0.toUint8Array(W)}fromString(W){this.valueBlock.value=W,this.valueBlock.valueHexView=new Uint8Array(p0.FromUtf16String(W))}}XI.NAME="BmpStringValueBlock";var ZP;class OX extends XI{constructor({...W}={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=30}}ZP=OX;(()=>{b0.BmpString=ZP})();OX.NAME="BMPString";class YI extends m9{fromBuffer(W){let G=ArrayBuffer.isView(W)?W.slice().buffer:W.slice(0),X=new Uint8Array(G);for(let Y=0;Y<X.length;Y+=4)X[Y]=X[Y+3],X[Y+1]=X[Y+2],X[Y+2]=0,X[Y+3]=0;this.valueBlock.value=String.fromCharCode.apply(null,new Uint32Array(G))}fromString(W){let G=W.length,X=this.valueBlock.valueHexView=new Uint8Array(G*4);for(let Y=0;Y<G;Y++){let Z=w6(W.charCodeAt(Y),8),V=new Uint8Array(Z);if(V.length>4)continue;let Q=4-V.length;for(let J=V.length-1;J>=0;J--)X[Y*4+J+Q]=V[J]}this.valueBlock.value=W}}YI.NAME="UniversalStringValueBlock";var VP;class KX extends YI{constructor({...W}={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=28}}VP=KX;(()=>{b0.UniversalString=VP})();KX.NAME="UniversalString";var QP;class CX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=18}}QP=CX;(()=>{b0.NumericString=QP})();CX.NAME="NumericString";var JP;class DX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=19}}JP=DX;(()=>{b0.PrintableString=JP})();DX.NAME="PrintableString";var UP;class MX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=20}}UP=MX;(()=>{b0.TeletexString=UP})();MX.NAME="TeletexString";var qP;class TX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=21}}qP=TX;(()=>{b0.VideotexString=qP})();TX.NAME="VideotexString";var NP;class PX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=22}}NP=PX;(()=>{b0.IA5String=NP})();PX.NAME="IA5String";var HP;class RX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=25}}HP=RX;(()=>{b0.GraphicString=HP})();RX.NAME="GraphicString";var AP;class SW extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=26}}AP=SW;(()=>{b0.VisibleString=AP})();SW.NAME="VisibleString";var zP;class LX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=27}}zP=LX;(()=>{b0.GeneralString=zP})();LX.NAME="GeneralString";var IP;class BX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=29}}IP=BX;(()=>{b0.CharacterString=IP})();BX.NAME="CharacterString";var wP;class xW extends SW{constructor({value:W,valueDate:G,...X}={}){super(X);if(this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,W){this.fromString(W),this.valueBlock.valueHexView=new Uint8Array(W.length);for(let Y=0;Y<W.length;Y++)this.valueBlock.valueHexView[Y]=W.charCodeAt(Y)}if(G)this.fromDate(G),this.valueBlock.valueHexView=new Uint8Array(this.toBuffer());this.idBlock.tagClass=1,this.idBlock.tagNumber=23}fromBuffer(W){this.fromString(String.fromCharCode.apply(null,S0.toUint8Array(W)))}toBuffer(){let W=this.toString(),G=new ArrayBuffer(W.length),X=new Uint8Array(G);for(let Y=0;Y<W.length;Y++)X[Y]=W.charCodeAt(Y);return G}fromDate(W){this.year=W.getUTCFullYear(),this.month=W.getUTCMonth()+1,this.day=W.getUTCDate(),this.hour=W.getUTCHours(),this.minute=W.getUTCMinutes(),this.second=W.getUTCSeconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second))}fromString(W){let X=/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z/ig.exec(W);if(X===null){this.error="Wrong input string for conversion";return}let Y=parseInt(X[1],10);if(Y>=50)this.year=1900+Y;else this.year=2000+Y;this.month=parseInt(X[2],10),this.day=parseInt(X[3],10),this.hour=parseInt(X[4],10),this.minute=parseInt(X[5],10),this.second=parseInt(X[6],10)}toString(W="iso"){if(W==="iso"){let G=[,,,,,,,];return G[0]=u9(this.year<2000?this.year-1900:this.year-2000,2),G[1]=u9(this.month,2),G[2]=u9(this.day,2),G[3]=u9(this.hour,2),G[4]=u9(this.minute,2),G[5]=u9(this.second,2),G[6]="Z",G.join("")}return super.toString(W)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.toDate().toISOString()}`}toJSON(){return{...super.toJSON(),year:this.year,month:this.month,day:this.day,hour:this.hour,minute:this.minute,second:this.second}}}wP=xW;(()=>{b0.UTCTime=wP})();xW.NAME="UTCTime";var jP;class EX extends xW{constructor(W={}){var G;super(W);(G=this.millisecond)!==null&&G!==void 0||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(W){super.fromDate(W),this.millisecond=W.getUTCMilliseconds()}toDate(){let W=Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond);return new Date(W)}fromString(W){let G=!1,X="",Y="",Z=0,V,Q=0,J=0;if(W[W.length-1]==="Z")X=W.substring(0,W.length-1),G=!0;else{let N=new Number(W[W.length-1]);if(isNaN(N.valueOf()))throw Error("Wrong input string for conversion");X=W}if(G){if(X.indexOf("+")!==-1)throw Error("Wrong input string for conversion");if(X.indexOf("-")!==-1)throw Error("Wrong input string for conversion")}else{let N=1,A=X.indexOf("+"),H="";if(A===-1)A=X.indexOf("-"),N=-1;if(A!==-1){if(H=X.substring(A+1),X=X.substring(0,A),H.length!==2&&H.length!==4)throw Error("Wrong input string for conversion");let I=parseInt(H.substring(0,2),10);if(isNaN(I.valueOf()))throw Error("Wrong input string for conversion");if(Q=N*I,H.length===4){if(I=parseInt(H.substring(2,4),10),isNaN(I.valueOf()))throw Error("Wrong input string for conversion");J=N*I}}}let U=X.indexOf(".");if(U===-1)U=X.indexOf(",");if(U!==-1){let N=new Number(`0${X.substring(U)}`);if(isNaN(N.valueOf()))throw Error("Wrong input string for conversion");Z=N.valueOf(),Y=X.substring(0,U)}else Y=X;switch(!0){case Y.length===8:if(V=/(\d{4})(\d{2})(\d{2})/ig,U!==-1)throw Error("Wrong input string for conversion");break;case Y.length===10:if(V=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,U!==-1){let N=60*Z;this.minute=Math.floor(N),N=60*(N-this.minute),this.second=Math.floor(N),N=1000*(N-this.second),this.millisecond=Math.floor(N)}break;case Y.length===12:if(V=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,U!==-1){let N=60*Z;this.second=Math.floor(N),N=1000*(N-this.second),this.millisecond=Math.floor(N)}break;case Y.length===14:if(V=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,U!==-1){let N=1000*Z;this.millisecond=Math.floor(N)}break;default:throw Error("Wrong input string for conversion")}let q=V.exec(Y);if(q===null)throw Error("Wrong input string for conversion");for(let N=1;N<q.length;N++)switch(N){case 1:this.year=parseInt(q[N],10);break;case 2:this.month=parseInt(q[N],10);break;case 3:this.day=parseInt(q[N],10);break;case 4:this.hour=parseInt(q[N],10)+Q;break;case 5:this.minute=parseInt(q[N],10)+J;break;case 6:this.second=parseInt(q[N],10);break;default:throw Error("Wrong input string for conversion")}if(G===!1){let N=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond);this.year=N.getUTCFullYear(),this.month=N.getUTCMonth(),this.day=N.getUTCDay(),this.hour=N.getUTCHours(),this.minute=N.getUTCMinutes(),this.second=N.getUTCSeconds(),this.millisecond=N.getUTCMilliseconds()}}toString(W="iso"){if(W==="iso"){let G=[];if(G.push(u9(this.year,4)),G.push(u9(this.month,2)),G.push(u9(this.day,2)),G.push(u9(this.hour,2)),G.push(u9(this.minute,2)),G.push(u9(this.second,2)),this.millisecond!==0)G.push("."),G.push(u9(this.millisecond,3));return G.push("Z"),G.join("")}return super.toString(W)}toJSON(){return{...super.toJSON(),millisecond:this.millisecond}}}jP=EX;(()=>{b0.GeneralizedTime=jP})();EX.NAME="GeneralizedTime";var OP;class rU extends v5{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=31}}OP=rU;(()=>{b0.DATE=OP})();rU.NAME="DATE";var KP;class aU extends v5{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=32}}KP=aU;(()=>{b0.TimeOfDay=KP})();aU.NAME="TimeOfDay";var CP;class sU extends v5{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=33}}CP=sU;(()=>{b0.DateTime=CP})();sU.NAME="DateTime";var DP;class tU extends v5{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=34}}DP=tU;(()=>{b0.Duration=DP})();tU.NAME="Duration";var MP;class eU extends v5{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=14}}MP=eU;(()=>{b0.TIME=MP})();eU.NAME="TIME";class V4{constructor({name:W=h9,optional:G=!1}={}){this.name=W,this.optional=G}}class oZ extends V4{constructor({value:W=[],...G}={}){super(G);this.value=W}}class zX extends V4{constructor({value:W=new V4,local:G=!1,...X}={}){super(X);this.value=W,this.local=G}}class TP{get data(){return this.dataView.slice().buffer}set data(W){this.dataView=S0.toUint8Array(W)}constructor({data:W=pU}={}){this.dataView=S0.toUint8Array(W)}fromBER(W,G,X){let Y=G+X;return this.dataView=S0.toUint8Array(W).subarray(G,Y),Y}toBER(W){return this.dataView.slice().buffer}}function Y4(W,G,X){if(X instanceof oZ){for(let V of X.value)if(Y4(W,G,V).verified)return{verified:!0,result:W};{let V={verified:!1,result:{error:"Wrong values for Choice type"}};if(X.hasOwnProperty(mz))V.name=X.name;return V}}if(X instanceof V4){if(X.hasOwnProperty(mz))W[X.name]=G;return{verified:!0,result:W}}if(W instanceof Object===!1)return{verified:!1,result:{error:"Wrong root object"}};if(G instanceof Object===!1)return{verified:!1,result:{error:"Wrong ASN.1 data"}};if(X instanceof Object===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(Dm in X===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(Rm in X.idBlock===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(Lm in X.idBlock===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};let Y=X.idBlock.toBER(!1);if(Y.byteLength===0)return{verified:!1,result:{error:"Error encoding idBlock for ASN.1 schema"}};if(X.idBlock.fromBER(Y,0,Y.byteLength)===-1)return{verified:!1,result:{error:"Error decoding idBlock for ASN.1 schema"}};if(X.idBlock.hasOwnProperty(Mm)===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(X.idBlock.tagClass!==G.idBlock.tagClass)return{verified:!1,result:W};if(X.idBlock.hasOwnProperty(Tm)===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(X.idBlock.tagNumber!==G.idBlock.tagNumber)return{verified:!1,result:W};if(X.idBlock.hasOwnProperty(Pm)===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(X.idBlock.isConstructed!==G.idBlock.isConstructed)return{verified:!1,result:W};if(!(Cm in X.idBlock))return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(X.idBlock.isHexOnly!==G.idBlock.isHexOnly)return{verified:!1,result:W};if(X.idBlock.isHexOnly){if(uT in X.idBlock===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};let V=X.idBlock.valueHexView,Q=G.idBlock.valueHexView;if(V.length!==Q.length)return{verified:!1,result:W};for(let J=0;J<V.length;J++)if(V[J]!==Q[1])return{verified:!1,result:W}}if(X.name){if(X.name=X.name.replace(/^\s+|\s+$/g,h9),X.name)W[X.name]=G}if(X instanceof b0.Constructed){let V=0,Q={verified:!1,result:{error:"Unknown error"}},J=X.valueBlock.value.length;if(J>0){if(X.valueBlock.value[0]instanceof zX)J=G.valueBlock.value.length}if(J===0)return{verified:!0,result:W};if(G.valueBlock.value.length===0&&X.valueBlock.value.length!==0){let U=!0;for(let q=0;q<X.valueBlock.value.length;q++)U=U&&(X.valueBlock.value[q].optional||!1);if(U)return{verified:!0,result:W};if(X.name){if(X.name=X.name.replace(/^\s+|\s+$/g,h9),X.name)delete W[X.name]}return W.error="Inconsistent object length",{verified:!1,result:W}}for(let U=0;U<J;U++)if(U-V>=G.valueBlock.value.length){if(X.valueBlock.value[U].optional===!1){let q={verified:!1,result:W};if(W.error="Inconsistent length between ASN.1 data and schema",X.name){if(X.name=X.name.replace(/^\s+|\s+$/g,h9),X.name)delete W[X.name],q.name=X.name}return q}}else if(X.valueBlock.value[0]instanceof zX){if(Q=Y4(W,G.valueBlock.value[U],X.valueBlock.value[0].value),Q.verified===!1)if(X.valueBlock.value[0].optional)V++;else{if(X.name){if(X.name=X.name.replace(/^\s+|\s+$/g,h9),X.name)delete W[X.name]}return Q}if(mz in X.valueBlock.value[0]&&X.valueBlock.value[0].name.length>0){let q={};if(Bm in X.valueBlock.value[0]&&X.valueBlock.value[0].local)q=G;else q=W;if(typeof q[X.valueBlock.value[0].name]>"u")q[X.valueBlock.value[0].name]=[];q[X.valueBlock.value[0].name].push(G.valueBlock.value[U])}}else if(Q=Y4(W,G.valueBlock.value[U-V],X.valueBlock.value[U]),Q.verified===!1)if(X.valueBlock.value[U].optional)V++;else{if(X.name){if(X.name=X.name.replace(/^\s+|\s+$/g,h9),X.name)delete W[X.name]}return Q}if(Q.verified===!1){let U={verified:!1,result:W};if(X.name){if(X.name=X.name.replace(/^\s+|\s+$/g,h9),X.name)delete W[X.name],U.name=X.name}return U}return{verified:!0,result:W}}if(X.primitiveSchema&&uT in G.valueBlock){let V=dU(G.valueBlock.valueHexView);if(V.offset===-1){let Q={verified:!1,result:V.result};if(X.name){if(X.name=X.name.replace(/^\s+|\s+$/g,h9),X.name)delete W[X.name],Q.name=X.name}return Q}return Y4(W,V.result,X.primitiveSchema)}return{verified:!0,result:W}}function um(W,G){if(G instanceof Object===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema type"}};let X=dU(S0.toUint8Array(W));if(X.offset===-1)return{verified:!1,result:X.result};return Y4(X.result,X.result,G)}function PP(W){return Object.prototype.toString.call(W)}function hm(W){if(ArrayBuffer.isView(W))return!0;if(!W||typeof W!=="object")return!1;let G=W;return typeof G.byteOffset==="number"&&typeof G.byteLength==="number"&&Wq(G.buffer)}function ZI(W){return PP(W)==="[object ArrayBuffer]"}function RP(W){return typeof SharedArrayBuffer<"u"&&PP(W)==="[object SharedArrayBuffer]"}function Wq(W){return ZI(W)||RP(W)}function LP(W){return hm(W)}function U4(W){return Wq(W)||LP(W)}function VI(W){if(!U4(W))throw TypeError("Expected ArrayBuffer, SharedArrayBuffer, or ArrayBufferView")}function j5(W){if(VI(W),Wq(W))return new Uint8Array(W);return new Uint8Array(W.buffer,W.byteOffset,W.byteLength)}function c8(W){if(VI(W),ZI(W))return W;let G=new ArrayBuffer(W.byteLength);return new Uint8Array(G).set(j5(W)),G}function QI(W,G,X={}){let Y=j5(W),Z=j5(G);if(!X.constantTime&&Y.byteLength!==Z.byteLength)return!1;let V=Math.max(Y.byteLength,Z.byteLength),Q=Y.byteLength^Z.byteLength;for(let J=0;J<V;J++)Q|=(Y[J]??0)^(Z[J]??0);return Q===0}var a;(function(W){W[W.Sequence=0]="Sequence",W[W.Set=1]="Set",W[W.Choice=2]="Choice"})(a||(a={}));var F;(function(W){W[W.Any=1]="Any",W[W.Boolean=2]="Boolean",W[W.OctetString=3]="OctetString",W[W.BitString=4]="BitString",W[W.Integer=5]="Integer",W[W.Enumerated=6]="Enumerated",W[W.ObjectIdentifier=7]="ObjectIdentifier",W[W.Utf8String=8]="Utf8String",W[W.BmpString=9]="BmpString",W[W.UniversalString=10]="UniversalString",W[W.NumericString=11]="NumericString",W[W.PrintableString=12]="PrintableString",W[W.TeletexString=13]="TeletexString",W[W.VideotexString=14]="VideotexString",W[W.IA5String=15]="IA5String",W[W.GraphicString=16]="GraphicString",W[W.VisibleString=17]="VisibleString",W[W.GeneralString=18]="GeneralString",W[W.CharacterString=19]="CharacterString",W[W.UTCTime=20]="UTCTime",W[W.GeneralizedTime=21]="GeneralizedTime",W[W.DATE=22]="DATE",W[W.TimeOfDay=23]="TimeOfDay",W[W.DateTime=24]="DateTime",W[W.Duration=25]="Duration",W[W.TIME=26]="TIME",W[W.Null=27]="Null"})(F||(F={}));class q4{unusedBits=0;value=new ArrayBuffer(0);constructor(W,G=0){if(W)if(typeof W==="number")this.fromNumber(W);else if(U4(W))this.unusedBits=G,this.value=c8(W);else throw TypeError("Unsupported type of 'params' argument for BitString")}fromASN(W){if(!(W instanceof C7))throw TypeError("Argument 'asn' is not instance of ASN.1 BitString");return this.unusedBits=W.valueBlock.unusedBits,this.value=c8(W.valueBlock.valueHex),this}toASN(){return new C7({unusedBits:this.unusedBits,valueHex:this.value})}toSchema(W){return new C7({name:W})}toNumber(){let W="",G=new Uint8Array(this.value);for(let X of G)W+=X.toString(2).padStart(8,"0");if(W=W.split("").reverse().join(""),this.unusedBits)W=W.slice(this.unusedBits).padStart(this.unusedBits,"0");return parseInt(W,2)}fromNumber(W){let G=W.toString(2),X=G.length+7>>3;this.unusedBits=(X<<3)-G.length;let Y=new Uint8Array(X);G=G.padStart(X<<3,"0").split("").reverse().join("");let Z=0;while(Z<X)Y[Z]=parseInt(G.slice(Z<<3,(Z<<3)+8),2),Z++;this.value=Y.buffer}}class W1{buffer;get byteLength(){return this.buffer.byteLength}get byteOffset(){return 0}constructor(W){if(typeof W==="number")this.buffer=new ArrayBuffer(W);else if(U4(W))this.buffer=c8(W);else if(Array.isArray(W))this.buffer=new Uint8Array(W).buffer;else this.buffer=new ArrayBuffer(0)}fromASN(W){if(!(W instanceof K7))throw TypeError("Argument 'asn' is not instance of ASN.1 OctetString");return this.buffer=c8(W.valueBlock.valueHex),this}toASN(){return new K7({valueHex:this.buffer})}toSchema(W){return new K7({name:W})}}var fm={fromASN:(W)=>W instanceof O7?null:c8(W.valueBeforeDecodeView),toASN:(W)=>{if(W===null)return new O7;let G=J4(W);if(G.result.error)throw Error(G.result.error);return G.result}},cm={fromASN:(W)=>W.valueBlock.valueHexView.byteLength>=4?W.valueBlock.toString():W.valueBlock.valueDec,toASN:(W)=>new K6({value:+W})},pm={fromASN:(W)=>W.valueBlock.valueDec,toASN:(W)=>new wX({value:W})},y1={fromASN:(W)=>c8(W.valueBlock.valueHexView),toASN:(W)=>new K6({valueHex:W})};var lm={fromASN:(W)=>c8(W.valueBlock.valueHexView),toASN:(W)=>new C7({valueHex:W})},dm={fromASN:(W)=>W.valueBlock.toString(),toASN:(W)=>new jX({value:W})},om={fromASN:(W)=>W.valueBlock.value,toASN:(W)=>new IX({value:W})},$X={fromASN:(W)=>c8(W.valueBlock.valueHexView),toASN:(W)=>new K7({valueHex:W})},BP={fromASN:(W)=>new W1(W.getValue()),toASN:(W)=>W.toASN()};function O5(W){return{fromASN:(G)=>G.valueBlock.value,toASN:(G)=>new W({value:G})}}var JI=O5(v5),nm=O5(OX),im=O5(KX),rm=O5(CX),am=O5(DX),sm=O5(MX),tm=O5(TX),em=O5(PX),Wf=O5(RX),Gf=O5(SW),Xf=O5(LX),Yf=O5(BX),Zf={fromASN:(W)=>W.toDate(),toASN:(W)=>new xW({valueDate:W})},Vf={fromASN:(W)=>W.toDate(),toASN:(W)=>new EX({valueDate:W})},Qf={fromASN:()=>null,toASN:()=>{return new O7}};function C6(W){switch(W){case F.Any:return fm;case F.BitString:return lm;case F.BmpString:return nm;case F.Boolean:return om;case F.CharacterString:return Yf;case F.Enumerated:return pm;case F.GeneralString:return Xf;case F.GeneralizedTime:return Vf;case F.GraphicString:return Wf;case F.IA5String:return em;case F.Integer:return cm;case F.Null:return Qf;case F.NumericString:return rm;case F.ObjectIdentifier:return dm;case F.OctetString:return $X;case F.PrintableString:return am;case F.TeletexString:return sm;case F.UTCTime:return Zf;case F.UniversalString:return im;case F.Utf8String:return JI;case F.VideotexString:return tm;case F.VisibleString:return Gf;default:return null}}function K5(W){if(typeof W==="function"&&W.prototype)if(W.prototype.toASN&&W.prototype.fromASN)return!0;else return K5(W.prototype);else return!!(W&&typeof W==="object"&&("toASN"in W)&&("fromASN"in W))}function qI(W){if(W){let G=Object.getPrototypeOf(W);if(G?.prototype?.constructor===Array)return!0;return qI(G)}return!1}function EP(W,G){if(!(W&&G))return!1;if(W.byteLength!==G.byteLength)return!1;let X=new Uint8Array(W),Y=new Uint8Array(G);for(let Z=0;Z<W.byteLength;Z++)if(X[Z]!==Y[Z])return!1;return!0}class NI{items=new WeakMap;has(W){return this.items.has(W)}get(W,G=!1){let X=this.items.get(W);if(!X)throw Error(`Cannot get schema for '${W.prototype.constructor.name}' target`);if(G&&!X.schema)throw Error(`Schema '${W.prototype.constructor.name}' doesn't contain ASN.1 schema. Call 'AsnSchemaStorage.cache'.`);return X}cache(W){let G=this.get(W);if(!G.schema)G.schema=this.create(W,!0)}createDefault(W){let G={type:a.Sequence,items:{}},X=this.findParentSchema(W);if(X)Object.assign(G,X),G.items=Object.assign({},G.items,X.items);return G}create(W,G){let X=this.items.get(W)||this.createDefault(W),Y=[];for(let Z in X.items){let V=X.items[Z],Q=G?Z:"",J;if(typeof V.type==="number"){let q=F[V.type],N=D7[q];if(!N)throw Error(`Cannot get ASN1 class by name '${q}'`);J=new N({name:Q})}else if(K5(V.type))J=new V.type().toSchema(Q);else if(V.optional)if(this.get(V.type).type===a.Choice)J=new V4({name:Q});else J=this.create(V.type,!1),J.name=Q;else J=new V4({name:Q});let U=!!V.optional||V.defaultValue!==void 0;if(V.repeated)J.name="",J=new(V.repeated==="set"?b9:x9)({name:"",value:[new zX({name:Q,value:J})]});if(V.context!==null&&V.context!==void 0)if(V.implicit)if(typeof V.type==="number"||K5(V.type)){let q=V.repeated?f8:O6;Y.push(new q({name:Q,optional:U,idBlock:{tagClass:3,tagNumber:V.context}}))}else{this.cache(V.type);let q=!!V.repeated,N=!q?this.get(V.type,!0).schema:J;N="valueBlock"in N?N.valueBlock.value:N.value,Y.push(new f8({name:!q?Q:"",optional:U,idBlock:{tagClass:3,tagNumber:V.context},value:N}))}else Y.push(new f8({optional:U,idBlock:{tagClass:3,tagNumber:V.context},value:[J]}));else J.optional=U,Y.push(J)}switch(X.type){case a.Sequence:return new x9({value:Y,name:""});case a.Set:return new b9({value:Y,name:""});case a.Choice:return new oZ({value:Y,name:""});default:throw Error("Unsupported ASN1 type in use")}}set(W,G){return this.items.set(W,G),this}findParentSchema(W){let G=Object.getPrototypeOf(W);if(G)return this.items.get(G)||this.findParentSchema(G);return null}}var k8=new NI;var G0=(W)=>(G)=>{let X;if(!k8.has(G))X=k8.createDefault(G),k8.set(G,X);else X=k8.get(G);Object.assign(X,W)};var K=(W)=>(G,X)=>{let Y;if(!k8.has(G.constructor))Y=k8.createDefault(G.constructor),k8.set(G.constructor,Y);else Y=k8.get(G.constructor);let Z=Object.assign({},W);if(typeof Z.type==="number"&&!Z.converter){let V=C6(W.type);if(!V)throw Error(`Cannot get default converter for property '${X}' of ${G.constructor.name}`);Z.converter=V}Z.raw=W.raw,Y.items[X]=Z};class kW extends Error{schemas=[]}class Gq{static parse(W,G,X){let Y=J4(c8(W),X?.berOptions);if(Y.result.error)throw Error(Y.result.error);return this.fromASN(Y.result,G,X)}static fromASN(W,G,X){try{if(K5(G))return new G().fromASN(W);let Y=k8.get(G);k8.cache(G);let Z=Y.schema,V=this.handleChoiceTypes(W,Y,G,Z,X);if(V?.result)return V.result;if(V?.targetSchema)Z=V.targetSchema;let Q=this.handleSequenceTypes(W,Y,G,Z),J=new G;if(qI(G))return this.handleArrayTypes(W,Y,G,X);return this.processSchemaItems(Y,Q,J,X),J}catch(Y){if(Y instanceof kW)Y.schemas.push(G.name);throw Y}}static handleChoiceTypes(W,G,X,Y,Z){if(W.constructor===f8&&G.type===a.Choice&&W.idBlock.tagClass===3)for(let V in G.items){let Q=G.items[V];if(Q.context===W.idBlock.tagNumber&&Q.implicit){if(typeof Q.type==="function"&&k8.has(Q.type)){let J=k8.get(Q.type);if(J&&J.type===a.Sequence){let U=new x9;if("value"in W.valueBlock&&Array.isArray(W.valueBlock.value)&&"value"in U.valueBlock){U.valueBlock.value=W.valueBlock.value;let q=this.fromASN(U,Q.type,Z),N=new X;return N[V]=q,{result:N}}}}}}else if(W.constructor===f8&&G.type!==a.Choice){let V=new f8({idBlock:{tagClass:3,tagNumber:W.idBlock.tagNumber},value:G.schema.valueBlock.value});for(let Q in G.items)delete W[Q];return{targetSchema:V}}return null}static handleSequenceTypes(W,G,X,Y){if(G.type===a.Sequence){let Z=Y4({},W,Y);if(!Z.verified)throw new kW(`Data does not match to ${X.name} ASN1 schema.${Z.result.error?` ${Z.result.error}`:""}`);return Z}else{let Z=Y4({},W,Y);if(!Z.verified)throw new kW(`Data does not match to ${X.name} ASN1 schema.${Z.result.error?` ${Z.result.error}`:""}`);return Z}}static processRepeatedField(W,G,X){let Y=W.slice(G);if(Y.length===1&&Y[0].constructor.name==="Sequence"){let Z=Y[0];if(Z.valueBlock&&Z.valueBlock.value&&Array.isArray(Z.valueBlock.value))Y=Z.valueBlock.value}if(typeof X.type==="number"){let Z=C6(X.type);if(!Z)throw Error(`No converter for ASN.1 type ${X.type}`);return Y.filter((V)=>V&&V.valueBlock).map((V)=>{try{return Z.fromASN(V)}catch{return}}).filter((V)=>V!==void 0)}else return Y.filter((Z)=>Z&&Z.valueBlock).map((Z)=>{try{return this.fromASN(Z,X.type)}catch{return}}).filter((Z)=>Z!==void 0)}static processPrimitiveField(W,G){let X=C6(G.type);if(!X)throw Error(`No converter for ASN.1 type ${G.type}`);return X.fromASN(W)}static isOptionalChoiceField(W){return W.optional&&typeof W.type==="function"&&k8.has(W.type)&&k8.get(W.type).type===a.Choice}static processOptionalChoiceField(W,G){try{return{processed:!0,value:this.fromASN(W,G.type)}}catch(X){if(X instanceof kW&&/Wrong values for Choice type/.test(X.message))return{processed:!1};throw X}}static handleArrayTypes(W,G,X,Y){if(!(("value"in W.valueBlock)&&Array.isArray(W.valueBlock.value)))throw Error("Cannot get items from the ASN.1 parsed value. ASN.1 object is not constructed.");let Z=G.itemType;if(typeof Z==="number"){let V=C6(Z);if(!V)throw Error(`Cannot get default converter for array item of ${X.name} ASN1 schema`);return X.from(W.valueBlock.value,(Q)=>V.fromASN(Q))}else return X.from(W.valueBlock.value,(V)=>this.fromASN(V,Z,Y))}static processSchemaItems(W,G,X,Y){for(let Z in W.items){let V=G.result[Z];if(!V)continue;let Q=W.items[Z],J=Q.type,U;if(typeof J==="number"||K5(J))U=this.processPrimitiveSchemaItem(V,Q,J,Y);else U=this.processComplexSchemaItem(V,Q,J,Y);if(U&&typeof U==="object"&&"value"in U&&"raw"in U)X[Z]=U.value,X[`${Z}Raw`]=U.raw;else X[Z]=U}}static processPrimitiveSchemaItem(W,G,X,Y){let Z=G.converter??(K5(X)?new X:null);if(!Z)throw Error("Converter is empty");if(G.repeated)return this.processRepeatedPrimitiveItem(W,G,Z,Y);else return this.processSinglePrimitiveItem(W,G,X,Z,Y)}static processRepeatedPrimitiveItem(W,G,X,Y){if(G.implicit){let V=new(G.repeated==="sequence"?x9:b9);V.valueBlock=W.valueBlock;let Q=J4(V.toBER(!1),Y?.berOptions);if(Q.offset===-1)throw Error(`Cannot parse the child item. ${Q.result.error}`);if(!(("value"in Q.result.valueBlock)&&Array.isArray(Q.result.valueBlock.value)))throw Error("Cannot get items from the ASN.1 parsed value. ASN.1 object is not constructed.");let J=Q.result.valueBlock.value;return Array.from(J,(U)=>X.fromASN(U))}else return Array.from(W,(Z)=>X.fromASN(Z))}static processSinglePrimitiveItem(W,G,X,Y,Z){let V=W;if(G.implicit){let Q;if(K5(X))Q=new X().toSchema("");else{let J=F[X],U=D7[J];if(!U)throw Error(`Cannot get '${J}' class from asn1js module`);Q=new U}Q.valueBlock=V.valueBlock,V=J4(Q.toBER(!1),Z?.berOptions).result}return Y.fromASN(V)}static processComplexSchemaItem(W,G,X,Y){if(G.repeated){if(!Array.isArray(W))throw Error("Cannot get list of items from the ASN.1 parsed value. ASN.1 value should be iterable.");return Array.from(W,(Z)=>this.fromASN(Z,X,Y))}else{let Z=this.handleImplicitTagging(W,G,X);if(this.isOptionalChoiceField(G))try{return this.fromASN(Z,X,Y)}catch(V){if(V instanceof kW&&/Wrong values for Choice type/.test(V.message))return;throw V}else{let V=this.fromASN(Z,X,Y);if(G.raw)return{value:V,raw:W.valueBeforeDecodeView};return V}}}static handleImplicitTagging(W,G,X){if(G.implicit&&typeof G.context==="number"){let Y=k8.get(X);if(Y.type===a.Sequence){let Z=new x9;if("value"in W.valueBlock&&Array.isArray(W.valueBlock.value)&&"value"in Z.valueBlock)return Z.valueBlock.value=W.valueBlock.value,Z}else if(Y.type===a.Set){let Z=new b9;if("value"in W.valueBlock&&Array.isArray(W.valueBlock.value)&&"value"in Z.valueBlock)return Z.valueBlock.value=W.valueBlock.value,Z}}return W}}class nZ{static serialize(W){if(W instanceof x8)return W.toBER(!1);return this.toASN(W).toBER(!1)}static toASN(W){if(W&&typeof W==="object"&&K5(W))return W.toASN();if(!(W&&typeof W==="object"))throw TypeError("Parameter 1 should be type of Object.");let G=W.constructor,X=k8.get(G);k8.cache(G);let Y=[];if(X.itemType){if(!Array.isArray(W))throw TypeError("Parameter 1 should be type of Array.");if(typeof X.itemType==="number"){let V=C6(X.itemType);if(!V)throw Error(`Cannot get default converter for array item of ${G.name} ASN1 schema`);Y=W.map((Q)=>V.toASN(Q))}else Y=W.map((V)=>this.toAsnItem({type:X.itemType},"[]",G,V))}else for(let V in X.items){let Q=X.items[V],J=W[V];if(J===void 0||Q.defaultValue===J||typeof Q.defaultValue==="object"&&typeof J==="object"&&EP(this.serialize(Q.defaultValue),this.serialize(J)))continue;let U=nZ.toAsnItem(Q,V,G,J);if(typeof Q.context==="number")if(Q.implicit)if(!Q.repeated&&(typeof Q.type==="number"||K5(Q.type))){let q={};q.valueHex=U instanceof O7?c8(U.valueBeforeDecodeView):U.valueBlock.toBER(),Y.push(new O6({optional:Q.optional,idBlock:{tagClass:3,tagNumber:Q.context},...q}))}else Y.push(new f8({optional:Q.optional,idBlock:{tagClass:3,tagNumber:Q.context},value:U.valueBlock.value}));else Y.push(new f8({optional:Q.optional,idBlock:{tagClass:3,tagNumber:Q.context},value:[U]}));else if(Q.repeated)Y=Y.concat(U);else Y.push(U)}let Z;switch(X.type){case a.Sequence:Z=new x9({value:Y});break;case a.Set:Z=new b9({value:Y});break;case a.Choice:if(!Y[0])throw Error(`Schema '${G.name}' has wrong data. Choice cannot be empty.`);Z=Y[0];break}return Z}static toAsnItem(W,G,X,Y){let Z;if(typeof W.type==="number"){let V=W.converter;if(!V)throw Error(`Property '${G}' doesn't have converter for type ${F[W.type]} in schema '${X.name}'`);if(W.repeated){if(!Array.isArray(Y))throw TypeError("Parameter 'objProp' should be type of Array.");let Q=Array.from(Y,(U)=>V.toASN(U));Z=new(W.repeated==="sequence"?x9:b9)({value:Q})}else Z=V.toASN(Y)}else if(W.repeated){if(!Array.isArray(Y))throw TypeError("Parameter 'objProp' should be type of Array.");let V=Array.from(Y,(J)=>this.toASN(J));Z=new(W.repeated==="sequence"?x9:b9)({value:V})}else Z=this.toASN(Y);return Z}}class i0 extends Array{constructor(W=[]){if(typeof W==="number")super(W);else{super();for(let G of W)this.push(G)}}}class L0{static serialize(W){return nZ.serialize(W)}static parse(W,G,X){return Gq.parse(W,G,X)}static toString(W,G){let X=U4(W)?c8(W):L0.serialize(W),Y=J4(X,G?.berOptions);if(Y.offset===-1)throw Error(`Cannot decode ASN.1 data. ${Y.result.error}`);return Y.result.toString()}}var YR=v1(XR(),1),{__extends:j10,__assign:O10,__rest:K10,__decorate:j,__param:C10,__esDecorate:D10,__runInitializers:M10,__propKey:T10,__setFunctionName:P10,__metadata:R10,__awaiter:L10,__generator:B10,__exportStar:E10,__createBinding:$10,__values:F10,__read:S10,__spread:x10,__spreadArrays:k10,__spreadArray:_10,__await:y10,__asyncGenerator:v10,__asyncDelegator:g10,__asyncValues:u10,__makeTemplateObject:h10,__importStar:b10,__importDefault:m10,__classPrivateFieldGet:M1,__classPrivateFieldSet:q8,__classPrivateFieldIn:f10,__addDisposableResource:c10,__disposeResources:p10,__rewriteRelativeImportExtension:l10}=YR.default;var SX={};qA(SX,{parse:()=>JR,normalize:()=>iZ,is:()=>QR,hex:()=>Kf,formats:()=>qR,format:()=>UR,encode:()=>AI,decode:()=>zI});var Uf=/^[0-9a-f]$/i,qf=[" ","\t",`
|
|
209
209
|
`,"\r",":","-","."];function Nf(W){if(W.separators==="none")return[];if(!W.separators||W.separators==="common")return qf;return W.separators}function Hf(W){if(!W)throw TypeError("Hex separators must be non-empty strings")}function Af(W,G,X){for(let Y of X)if(W.startsWith(Y,G))return Y;return}function zf(W){let G=/[A-F]/.test(W),X=/[a-f]/.test(W);return G&&!X?"upper":"lower"}function If(W){let G=/\r\n|\n/.exec(W);if(!G)return;return G[0]===`\r
|
|
210
210
|
`?`\r
|
|
211
211
|
`:`
|
|
@@ -235,22 +235,22 @@ ${W.join(`
|
|
|
235
235
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
236
236
|
* SOFTWARE.
|
|
237
237
|
*
|
|
238
|
-
*/var qQ="crypto.algorithm";class $3{getAlgorithms(){return V8.resolveAll(qQ)}toAsnAlgorithm(W){({...W});for(let G of this.getAlgorithms()){let X=G.toAsnAlgorithm(W);if(X)return X}if(/^[0-9.]+$/.test(W.name)){let G=new T0({algorithm:W.name});if("parameters"in W){let X=W;G.parameters=X.parameters}return G}throw Error("Cannot convert WebCrypto algorithm to ASN.1 algorithm")}toWebAlgorithm(W){for(let X of this.getAlgorithms()){let Y=X.toWebAlgorithm(W);if(Y)return Y}return{name:W.algorithm,parameters:W.parameters}}}var QG="crypto.algorithmProvider";V8.registerSingleton(QG,$3);var aq,p9="1.3.36.3.3.2.8.1.1",lL=`${p9}.1`,dL=`${p9}.2`,oL=`${p9}.3`,nL=`${p9}.4`,iL=`${p9}.5`,rL=`${p9}.6`,aL=`${p9}.7`,sL=`${p9}.8`,tL=`${p9}.9`,eL=`${p9}.10`,W3=`${p9}.11`,G3=`${p9}.12`,X3=`${p9}.13`,Y3=`${p9}.14`,Z3="brainpoolP160r1",V3="brainpoolP160t1",Q3="brainpoolP192r1",J3="brainpoolP192t1",U3="brainpoolP224r1",q3="brainpoolP224t1",N3="brainpoolP256r1",H3="brainpoolP256t1",A3="brainpoolP320r1",z3="brainpoolP320t1",I3="brainpoolP384r1",w3="brainpoolP384t1",j3="brainpoolP512r1",O3="brainpoolP512t1",
|
|
239
|
-
`)}static pad(W=0){return"".padStart(2*W," ")}static serializeObj(W,G=0){let X=[],Y=this.pad(G++),Z="",V=W[d1.VALUE];if(V)Z=` ${V}`;X.push(`${Y}${W[d1.NAME]}:${Z}`),Y=this.pad(G);for(let Q in W){if(typeof Q==="symbol")continue;let J=W[Q],U=Q?`${Q}: `:"";if(typeof J==="string"||typeof J==="number"||typeof J==="boolean")X.push(`${Y}${U}${J}`);else if(J instanceof Date)X.push(`${Y}${U}${J.toUTCString()}`);else if(Array.isArray(J))for(let q of J)q[d1.NAME]=Q,X.push(...this.serializeObj(q,G));else if(J instanceof d1)J[d1.NAME]=Q,X.push(...this.serializeObj(J,G));else if(S0.isBufferSource(J))if(Q)X.push(`${Y}${U}`),X.push(...this.serializeBufferSource(J,G+1));else X.push(...this.serializeBufferSource(J,G));else if("toTextObject"in J){let q=J.toTextObject();q[d1.NAME]=Q,X.push(...this.serializeObj(q,G))}else throw TypeError("Cannot serialize data in text format. Unsupported type.")}return X}static serializeBufferSource(W,G=0){let X=this.pad(G),Y=S0.toUint8Array(W),Z=[];for(let V=0;V<Y.length;){let Q=[];for(let J=0;J<16&&V<Y.length;J++){if(J===8)Q.push("");let U=Y[V++].toString(16).padStart(2,"0");Q.push(U)}Z.push(`${X}${Q.join(" ")}`)}return Z}static serializeAlgorithm(W){return this.algorithmSerializer.toTextObject(W)}}k6.oidSerializer=D4;k6.algorithmSerializer=x3;var QY;class y6{get rawData(){if(!
|
|
238
|
+
*/var qQ="crypto.algorithm";class $3{getAlgorithms(){return V8.resolveAll(qQ)}toAsnAlgorithm(W){({...W});for(let G of this.getAlgorithms()){let X=G.toAsnAlgorithm(W);if(X)return X}if(/^[0-9.]+$/.test(W.name)){let G=new T0({algorithm:W.name});if("parameters"in W){let X=W;G.parameters=X.parameters}return G}throw Error("Cannot convert WebCrypto algorithm to ASN.1 algorithm")}toWebAlgorithm(W){for(let X of this.getAlgorithms()){let Y=X.toWebAlgorithm(W);if(Y)return Y}return{name:W.algorithm,parameters:W.parameters}}}var QG="crypto.algorithmProvider";V8.registerSingleton(QG,$3);var aq,p9="1.3.36.3.3.2.8.1.1",lL=`${p9}.1`,dL=`${p9}.2`,oL=`${p9}.3`,nL=`${p9}.4`,iL=`${p9}.5`,rL=`${p9}.6`,aL=`${p9}.7`,sL=`${p9}.8`,tL=`${p9}.9`,eL=`${p9}.10`,W3=`${p9}.11`,G3=`${p9}.12`,X3=`${p9}.13`,Y3=`${p9}.14`,Z3="brainpoolP160r1",V3="brainpoolP160t1",Q3="brainpoolP192r1",J3="brainpoolP192t1",U3="brainpoolP224r1",q3="brainpoolP224t1",N3="brainpoolP256r1",H3="brainpoolP256t1",A3="brainpoolP320r1",z3="brainpoolP320t1",I3="brainpoolP384r1",w3="brainpoolP384t1",j3="brainpoolP512r1",O3="brainpoolP512t1",O8="ECDSA",QQ=aq=class{toAsnAlgorithm(G){switch(G.name.toLowerCase()){case O8.toLowerCase():if("hash"in G)switch((typeof G.hash==="string"?G.hash:G.hash.name).toLowerCase()){case"sha-1":return _R;case"sha-256":return yR;case"sha-384":return vR;case"sha-512":return gR}else if("namedCurve"in G){let X="";switch(G.namedCurve){case"P-256":X=Jw;break;case"K-256":X=aq.SECP256K1;break;case"P-384":X=Uw;break;case"P-521":X=qw;break;case Z3:X=lL;break;case V3:X=dL;break;case Q3:X=oL;break;case J3:X=nL;break;case U3:X=iL;break;case q3:X=rL;break;case N3:X=aL;break;case H3:X=sL;break;case A3:X=tL;break;case z3:X=eL;break;case I3:X=W3;break;case w3:X=G3;break;case j3:X=X3;break;case O3:X=Y3;break}if(X)return new T0({algorithm:iW,parameters:L0.serialize(new L7({namedCurve:X}))})}}return null}toWebAlgorithm(G){switch(G.algorithm){case DV:return{name:O8,hash:{name:"SHA-1"}};case MV:return{name:O8,hash:{name:"SHA-256"}};case TV:return{name:O8,hash:{name:"SHA-384"}};case PV:return{name:O8,hash:{name:"SHA-512"}};case iW:{if(!G.parameters)throw TypeError("Cannot get required parameters from EC algorithm");switch(L0.parse(G.parameters,L7).namedCurve){case Jw:return{name:O8,namedCurve:"P-256"};case aq.SECP256K1:return{name:O8,namedCurve:"K-256"};case Uw:return{name:O8,namedCurve:"P-384"};case qw:return{name:O8,namedCurve:"P-521"};case lL:return{name:O8,namedCurve:Z3};case dL:return{name:O8,namedCurve:V3};case oL:return{name:O8,namedCurve:Q3};case nL:return{name:O8,namedCurve:J3};case iL:return{name:O8,namedCurve:U3};case rL:return{name:O8,namedCurve:q3};case aL:return{name:O8,namedCurve:N3};case sL:return{name:O8,namedCurve:H3};case tL:return{name:O8,namedCurve:A3};case eL:return{name:O8,namedCurve:z3};case W3:return{name:O8,namedCurve:I3};case G3:return{name:O8,namedCurve:w3};case X3:return{name:O8,namedCurve:j3};case Y3:return{name:O8,namedCurve:O3}}}}return null}};QQ.SECP256K1="1.3.132.0.10";QQ=aq=j([S6()],QQ);V8.registerSingleton(qQ,QQ);var F3=Symbol("name"),S3=Symbol("value");class d1{constructor(W,G={},X=""){this[F3]=W,this[S3]=X;for(let Y in G)this[Y]=G[Y]}}d1.NAME=F3;d1.VALUE=S3;class x3{static toTextObject(W){let G=new d1("Algorithm Identifier",{},D4.toString(W.algorithm));if(W.parameters)switch(W.algorithm){case iW:{let X=new QQ().toWebAlgorithm(W);if(X&&"namedCurve"in X)G["Named Curve"]=X.namedCurve;else G.Parameters=W.parameters;break}default:G.Parameters=W.parameters}return G}}class D4{static toString(W){let G=this.items[W];if(G)return G;return W}}D4.items={[rW]:"sha1",[uq]:"sha224",[aW]:"sha256",[sW]:"sha384",[tW]:"sha512",[B7]:"rsaEncryption",[sX]:"sha1WithRSAEncryption",[cR]:"sha224WithRSAEncryption",[gq]:"sha256WithRSAEncryption",[tX]:"sha384WithRSAEncryption",[eX]:"sha512WithRSAEncryption",[iW]:"ecPublicKey",[DV]:"ecdsaWithSHA1",[vq]:"ecdsaWithSHA224",[MV]:"ecdsaWithSHA256",[TV]:"ecdsaWithSHA384",[PV]:"ecdsaWithSHA512",[IR]:"TLS WWW server authentication",[wR]:"TLS WWW client authentication",[jR]:"Code Signing",[OR]:"E-mail Protection",[KR]:"Time Stamping",[CR]:"OCSP Signing",[xR]:"Signed Data"};class k6{static serialize(W){return this.serializeObj(W).join(`
|
|
239
|
+
`)}static pad(W=0){return"".padStart(2*W," ")}static serializeObj(W,G=0){let X=[],Y=this.pad(G++),Z="",V=W[d1.VALUE];if(V)Z=` ${V}`;X.push(`${Y}${W[d1.NAME]}:${Z}`),Y=this.pad(G);for(let Q in W){if(typeof Q==="symbol")continue;let J=W[Q],U=Q?`${Q}: `:"";if(typeof J==="string"||typeof J==="number"||typeof J==="boolean")X.push(`${Y}${U}${J}`);else if(J instanceof Date)X.push(`${Y}${U}${J.toUTCString()}`);else if(Array.isArray(J))for(let q of J)q[d1.NAME]=Q,X.push(...this.serializeObj(q,G));else if(J instanceof d1)J[d1.NAME]=Q,X.push(...this.serializeObj(J,G));else if(S0.isBufferSource(J))if(Q)X.push(`${Y}${U}`),X.push(...this.serializeBufferSource(J,G+1));else X.push(...this.serializeBufferSource(J,G));else if("toTextObject"in J){let q=J.toTextObject();q[d1.NAME]=Q,X.push(...this.serializeObj(q,G))}else throw TypeError("Cannot serialize data in text format. Unsupported type.")}return X}static serializeBufferSource(W,G=0){let X=this.pad(G),Y=S0.toUint8Array(W),Z=[];for(let V=0;V<Y.length;){let Q=[];for(let J=0;J<16&&V<Y.length;J++){if(J===8)Q.push("");let U=Y[V++].toString(16).padStart(2,"0");Q.push(U)}Z.push(`${X}${Q.join(" ")}`)}return Z}static serializeAlgorithm(W){return this.algorithmSerializer.toTextObject(W)}}k6.oidSerializer=D4;k6.algorithmSerializer=x3;var QY;class y6{get rawData(){if(!M1(this,QY,"f"))q8(this,QY,L0.serialize(this.asn),"f");return M1(this,QY,"f")}constructor(...W){if(QY.set(this,void 0),S0.isBufferSource(W[0]))this.asn=L0.parse(W[0],W[1]),q8(this,QY,S0.toArrayBuffer(W[0]),"f"),this.onInit(this.asn);else this.asn=W[0],this.onInit(this.asn)}equal(W){if(W instanceof y6)return _T(W.rawData,this.rawData);return!1}toString(W="text"){switch(W){case"asn":return L0.toString(this.rawData);case"text":return k6.serialize(this.toTextObject());case"hex":return p0.ToHex(this.rawData);case"base64":return p0.ToBase64(this.rawData);case"base64url":return p0.ToBase64Url(this.rawData);default:throw TypeError("Argument 'format' is unsupported value")}}getTextName(){return this.constructor.NAME}toTextObject(){let W=this.toTextObjectEmpty();return W[""]=this.rawData,W}toTextObjectEmpty(W){return new d1(this.getTextName(),{},W)}}QY=new WeakMap;y6.NAME="ASN";class Y5 extends y6{constructor(...W){let G;if(S0.isBufferSource(W[0]))G=S0.toArrayBuffer(W[0]);else G=L0.serialize(new j9({extnID:W[0],critical:W[1],extnValue:new W1(S0.toArrayBuffer(W[2]))}));super(G,j9)}onInit(W){this.type=W.extnID,this.critical=W.critical,this.value=W.extnValue.buffer}toTextObject(){let W=this.toTextObjectWithoutValue();return W[""]=this.value,W}toTextObjectWithoutValue(){let W=this.toTextObjectEmpty(this.critical?"critical":void 0);if(W[d1.NAME]===Y5.NAME)W[d1.NAME]=D4.toString(this.type);return W}}var k3;class x6{static isCryptoKeyPair(W){return W&&W.privateKey&&W.publicKey}static isCryptoKey(W){return W&&W.usages&&W.type&&W.algorithm&&W.extractable!==void 0}constructor(){if(this.items=new Map,this[k3]="CryptoProvider",typeof self<"u"&&typeof crypto<"u")this.set(x6.DEFAULT,crypto);else if(typeof global<"u"&&global.crypto&&global.crypto.subtle)this.set(x6.DEFAULT,global.crypto)}clear(){this.items.clear()}delete(W){return this.items.delete(W)}forEach(W,G){return this.items.forEach(W,G)}has(W){return this.items.has(W)}get size(){return this.items.size}entries(){return this.items.entries()}keys(){return this.items.keys()}values(){return this.items.values()}[Symbol.iterator](){return this.items[Symbol.iterator]()}get(W=x6.DEFAULT){let G=this.items.get(W.toLowerCase());if(!G)throw Error(`Cannot get Crypto by name '${W}'`);return G}set(W,G){if(typeof W==="string"){if(!G)throw TypeError("Argument 'value' is required");this.items.set(W.toLowerCase(),G)}else this.items.set(x6.DEFAULT,W);return this}}k3=Symbol.toStringTag;x6.DEFAULT="default";var y8=new x6,df=/^[0-2](?:\.[1-9][0-9]*)+$/;function of(W){return new RegExp(df).test(W)}class Yj{constructor(W={}){this.items={};for(let G in W)this.register(G,W[G])}get(W){return this.items[W]||null}findId(W){if(!of(W))return this.get(W);return W}register(W,G){this.items[W]=G,this.items[G]=W}}var c9=new Yj;c9.register("CN","2.5.4.3");c9.register("L","2.5.4.7");c9.register("ST","2.5.4.8");c9.register("O","2.5.4.10");c9.register("OU","2.5.4.11");c9.register("C","2.5.4.6");c9.register("DC","0.9.2342.19200300.100.1.25");c9.register("E","1.2.840.113549.1.9.1");c9.register("G","2.5.4.42");c9.register("I","2.5.4.43");c9.register("SN","2.5.4.4");c9.register("T","2.5.4.12");function nf(W,G){return`\\${p0.ToHex(p0.FromUtf8String(G)).toUpperCase()}`}function rf(W){return W.replace(/([,+"\\<>;])/g,"\\$1").replace(/^([ #])/,"\\$1").replace(/([ ]$)/,"\\$1").replace(/([\r\n\t])/,nf)}class p5{static isASCII(W){for(let G=0;G<W.length;G++)if(W.charCodeAt(G)>255)return!1;return!0}static isPrintableString(W){return/^[A-Za-z0-9 '()+,-./:=?]*$/g.test(W)}constructor(W,G={}){this.extraNames=new Yj,this.asn=new G8;for(let X in G)if(Object.prototype.hasOwnProperty.call(G,X)){let Y=G[X];this.extraNames.register(X,Y)}if(typeof W==="string")this.asn=this.fromString(W);else if(W instanceof G8)this.asn=W;else if(S0.isBufferSource(W))this.asn=L0.parse(W,G8);else this.asn=this.fromJSON(W)}getField(W){let G=this.extraNames.findId(W)||c9.findId(W),X=[];for(let Y of this.asn)for(let Z of Y)if(Z.type===G)X.push(Z.value.toString());return X}getName(W){return this.extraNames.get(W)||c9.get(W)}toString(){return this.asn.map((W)=>W.map((G)=>{let X=this.getName(G.type)||G.type,Y=G.value.anyValue?`#${p0.ToHex(G.value.anyValue)}`:rf(G.value.toString());return`${X}=${Y}`}).join("+")).join(", ")}toJSON(){var W;let G=[];for(let X of this.asn){let Y={};for(let Z of X){let V=this.getName(Z.type)||Z.type;(W=Y[V])!==null&&W!==void 0||(Y[V]=[]),Y[V].push(Z.value.anyValue?`#${p0.ToHex(Z.value.anyValue)}`:Z.value.toString())}G.push(Y)}return G}fromString(W){let G=new G8,X=/(\d\.[\d.]*\d|[A-Za-z]+)=((?:"")|(?:".*?[^\\]")|(?:[^,+"\\](?=[,+]|$))|(?:[^,+].*?(?:[^\\][,+]))|(?:))([,+])?/g,Y=null,Z=",";while(Y=X.exec(`${W},`)){let[,V,Q]=Y,J=Q[Q.length-1];if(J===","||J==="+")Q=Q.slice(0,Q.length-1),Y[3]=J;let U=Y[3];V=this.getTypeOid(V);let q=this.createAttribute(V,Q);if(Z==="+")G[G.length-1].push(q);else G.push(new D6([q]));Z=U}return G}fromJSON(W){let G=new G8;for(let X of W){let Y=new D6;for(let Z in X){let V=this.getTypeOid(Z),Q=X[Z];for(let J of Q){let U=this.createAttribute(V,J);Y.push(U)}}G.push(Y)}return G}getTypeOid(W){if(!/[\d.]+/.test(W))W=this.getName(W)||"";if(!W)throw Error(`Cannot get OID for name type '${W}'`);return W}createAttribute(W,G){let X=new kX({type:W});if(typeof G==="object")for(let Y in G)switch(Y){case"ia5String":X.value.ia5String=G[Y];break;case"utf8String":X.value.utf8String=G[Y];break;case"universalString":X.value.universalString=G[Y];break;case"bmpString":X.value.bmpString=G[Y];break;case"printableString":X.value.printableString=G[Y];break}else if(G[0]==="#")X.value.anyValue=p0.FromHex(G.slice(1));else{let Y=this.processStringValue(G);if(W===this.getName("E")||W===this.getName("DC"))X.value.ia5String=Y;else if(p5.isPrintableString(Y))X.value.printableString=Y;else X.value.utf8String=Y}return X}processStringValue(W){let G=/"(.*?[^\\])?"/.exec(W);if(G)W=G[1];return W.replace(/\\0a/ig,`
|
|
240
240
|
`).replace(/\\0d/ig,"\r").replace(/\\0g/ig,"\t").replace(/\\(.)/g,"$1")}toArrayBuffer(){return L0.serialize(this.asn)}async getThumbprint(...W){var G;let X,Y="SHA-1";if(W.length>=1&&!((G=W[0])===null||G===void 0?void 0:G.subtle))Y=W[0]||Y,X=W[1]||y8.get();else X=W[0]||y8.get();return await X.subtle.digest(Y,this.toArrayBuffer())}}var _3="Cannot initialize GeneralName from ASN.1 data.",K3=`${_3} Unsupported string format in use.`,af=`${_3} Value doesn't match to GUID regular expression.`,C3=/^([0-9a-f]{8})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{12})$/i,D3="1.3.6.1.4.1.311.25.1",M3="1.3.6.1.4.1.311.20.2.3",dw="dns",ow="dn",nw="email",iw="ip",rw="url",aw="guid",sw="upn",nq="id";class K4 extends y6{constructor(...W){let G;if(W.length===2)switch(W[0]){case ow:{let X=new p5(W[1]).toArrayBuffer(),Y=L0.parse(X,G8);G=new V1({directoryName:Y});break}case dw:G=new V1({dNSName:W[1]});break;case nw:G=new V1({rfc822Name:W[1]});break;case aw:{let X=new RegExp(C3,"i").exec(W[1]);if(!X)throw Error("Cannot parse GUID value. Value doesn't match to regular expression");let Y=X.slice(1).map((Z,V)=>{if(V<3)return p0.ToHex(new Uint8Array(p0.FromHex(Z)).reverse());return Z}).join("");G=new V1({otherName:new _W({typeId:D3,value:L0.serialize(new W1(p0.FromHex(Y)))})});break}case iw:G=new V1({iPAddress:W[1]});break;case nq:G=new V1({registeredID:W[1]});break;case sw:{G=new V1({otherName:new _W({typeId:M3,value:L0.serialize(JI.toASN(W[1]))})});break}case rw:G=new V1({uniformResourceIdentifier:W[1]});break;default:throw Error("Cannot create GeneralName. Unsupported type of the name")}else if(S0.isBufferSource(W[0]))G=L0.parse(W[0],V1);else G=W[0];super(G)}onInit(W){if(W.dNSName!=null)this.type=dw,this.value=W.dNSName;else if(W.rfc822Name!=null)this.type=nw,this.value=W.rfc822Name;else if(W.iPAddress!=null)this.type=iw,this.value=W.iPAddress;else if(W.uniformResourceIdentifier!=null)this.type=rw,this.value=W.uniformResourceIdentifier;else if(W.registeredID!=null)this.type=nq,this.value=W.registeredID;else if(W.directoryName!=null)this.type=ow,this.value=new p5(W.directoryName).toString();else if(W.otherName!=null)if(W.otherName.typeId===D3){this.type=aw;let G=L0.parse(W.otherName.value,W1),X=new RegExp(C3,"i").exec(p0.ToHex(G));if(!X)throw Error(af);this.value=X.slice(1).map((Y,Z)=>{if(Z<3)return p0.ToHex(new Uint8Array(p0.FromHex(Y)).reverse());return Y}).join("-")}else if(W.otherName.typeId===M3)this.type=sw,this.value=L0.parse(W.otherName.value,_8).toString();else throw Error(K3);else throw Error(K3)}toJSON(){return{type:this.type,value:this.value}}toTextObject(){let W;switch(this.type){case ow:case dw:case aw:case iw:case nq:case sw:case rw:W=this.type.toUpperCase();break;case nw:W="Email";break;default:throw Error("Unsupported GeneralName type")}let G=this.value;if(this.type===nq)G=D4.toString(G);return new d1(W,void 0,G)}}class _6 extends y6{constructor(W){let G;if(W instanceof N8)G=W;else if(Array.isArray(W)){let X=[];for(let Y of W)if(Y instanceof V1)X.push(Y);else{let Z=L0.parse(new K4(Y.type,Y.value).rawData,V1);X.push(Z)}G=new N8(X)}else if(S0.isBufferSource(W))G=L0.parse(W,N8);else throw Error("Cannot initialize GeneralNames. Incorrect incoming arguments");super(G)}onInit(W){let G=[];for(let X of W){let Y=null;try{Y=new K4(X)}catch{continue}G.push(Y)}this.items=G}toJSON(){return this.items.map((W)=>W.toJSON())}toTextObject(){let W=super.toTextObjectEmpty();for(let G of this.items){let X=G.toTextObject(),Y=W[X[d1.NAME]];if(!Array.isArray(Y))Y=[],W[X[d1.NAME]]=Y;Y.push(X)}return W}}_6.NAME="GeneralNames";var VQ="-{5}",JQ="\\n",sf=`[^${JQ}]+`,tf=`${VQ}BEGIN (${sf}(?=${VQ}))${VQ}`,ef=`${VQ}END \\1${VQ}`,qY="\\n",Wc=`[^:${JQ}]+`,Gc=`(?:[^${JQ}]+${qY}(?: +[^${JQ}]+${qY})*)`,Xc="[a-zA-Z0-9=+/]+",Yc=`(?:${Xc}${qY})+`,T3=`${tf}${qY}(?:((?:${Wc}: ${Gc})+))?${qY}?(${Yc})${ef}`;class K9{static isPem(W){return typeof W==="string"&&new RegExp(T3,"g").test(W.replace(/\r/g,""))}static decodeWithHeaders(W){W=W.replace(/\r/g,"");let G=new RegExp(T3,"g"),X=[],Y=null;while(Y=G.exec(W)){let Z=Y[3].replace(new RegExp(`[${JQ}]+`,"g"),""),V={type:Y[1],headers:[],rawData:p0.FromBase64(Z)},Q=Y[2];if(Q){let J=Q.split(new RegExp(qY,"g")),U=null;for(let q of J){let[N,A]=q.split(/:(.*)/);if(A===void 0){if(!U)throw Error("Cannot parse PEM string. Incorrect header value");U.value+=N.trim()}else{if(U)V.headers.push(U);U={key:N,value:A.trim()}}}if(U)V.headers.push(U)}X.push(V)}return X}static decode(W){return this.decodeWithHeaders(W).map((X)=>X.rawData)}static decodeFirst(W){let G=this.decode(W);if(!G.length)throw RangeError("PEM string doesn't contain any objects");return G[0]}static encode(W,G){if(Array.isArray(W)){let X=[];if(G)W.forEach((Y)=>{if(!S0.isBufferSource(Y))throw TypeError("Cannot encode array of BufferSource in PEM format. Not all items of the array are BufferSource");X.push(this.encodeStruct({type:G,rawData:S0.toArrayBuffer(Y)}))});else W.forEach((Y)=>{if(!("type"in Y))throw TypeError("Cannot encode array of PemStruct in PEM format. Not all items of the array are PemStrut");X.push(this.encodeStruct(Y))});return X.join(`
|
|
241
241
|
`)}else{if(!G)throw Error("Required argument 'tag' is missed");return this.encodeStruct({type:G,rawData:S0.toArrayBuffer(W)})}}static encodeStruct(W){var G;let X=W.type.toLocaleUpperCase(),Y=[];if(Y.push(`-----BEGIN ${X}-----`),(G=W.headers)===null||G===void 0?void 0:G.length){for(let U of W.headers)Y.push(`${U.key}: ${U.value}`);Y.push("")}let Z=p0.ToBase64(W.rawData),V,Q=0,J=Array();while(Q<Z.length){if(Z.length-Q<64)V=Z.substring(Q);else V=Z.substring(Q,Q+64),Q+=64;if(V.length!==0){if(J.push(V),V.length<64)break}else break}return Y.push(...J),Y.push(`-----END ${X}-----`),Y.join(`
|
|
242
|
-
`)}}K9.CertificateTag="CERTIFICATE";K9.CrlTag="CRL";K9.CertificateRequestTag="CERTIFICATE REQUEST";K9.PublicKeyTag="PUBLIC KEY";K9.PrivateKeyTag="PRIVATE KEY";class C4 extends y6{static isAsnEncoded(W){return S0.isBufferSource(W)||typeof W==="string"}static toArrayBuffer(W){if(typeof W==="string")if(K9.isPem(W))return K9.decode(W)[0];else if(p0.isHex(W))return p0.FromHex(W);else if(p0.isBase64(W))return p0.FromBase64(W);else if(p0.isBase64Url(W))return p0.FromBase64Url(W);else throw TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url");else{let G=S0.toUint8Array(W);if(G.length>0&&G[0]===48)return S0.toArrayBuffer(W);let X=p0.ToBinary(W);if(K9.isPem(X))return K9.decode(X)[0];else if(p0.isHex(X))return p0.FromHex(X);else if(p0.isBase64(X))return p0.FromBase64(X);else if(p0.isBase64Url(X))return p0.FromBase64Url(X);throw TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url")}}constructor(...W){if(C4.isAsnEncoded(W[0]))super(C4.toArrayBuffer(W[0]),W[1]);else super(W[0])}toString(W="pem"){switch(W){case"pem":return K9.encode(this.rawData,this.tag);default:return super.toString(W)}}}class l5 extends C4{static async create(W,G=y8.get()){if(W instanceof l5)return W;else if(x6.isCryptoKey(W)){if(W.type!=="public")throw TypeError("Public key is required");let X=await G.subtle.exportKey("spki",W);return new l5(X)}else if(W.publicKey)return W.publicKey;else if(S0.isBufferSource(W))return new l5(W);else throw TypeError("Unsupported PublicKeyType")}constructor(W){if(C4.isAsnEncoded(W))super(W,w9);else super(W);this.tag=K9.PublicKeyTag}async export(...W){let G,X=["verify"],Y={hash:"SHA-256",...this.algorithm};if(W.length>1)Y=W[0]||Y,X=W[1]||X,G=W[2]||y8.get();else G=W[0]||y8.get();let Z=this.rawData,V=L0.parse(this.rawData,w9);if(V.algorithm.algorithm===E6)Z=Zc(V,Z);return G.subtle.importKey("spki",Z,Y,!0,X)}onInit(W){let G=V8.resolve(QG),X=this.algorithm=G.toWebAlgorithm(W.algorithm);switch(W.algorithm.algorithm){case B7:{let Y=L0.parse(W.subjectPublicKey,FV),Z=S0.toUint8Array(Y.modulus);X.publicExponent=S0.toUint8Array(Y.publicExponent),X.modulusLength=(!Z[0]?Z.slice(1):Z).byteLength<<3;break}}}async getThumbprint(...W){var G;let X,Y="SHA-1";if(W.length>=1&&!((G=W[0])===null||G===void 0?void 0:G.subtle))Y=W[0]||Y,X=W[1]||y8.get();else X=W[0]||y8.get();return await X.subtle.digest(Y,this.rawData)}async getKeyIdentifier(...W){let G,X="SHA-1";if(W.length===1)if(typeof W[0]==="string")X=W[0],G=y8.get();else G=W[0];else if(W.length===2)X=W[0],G=W[1];else G=y8.get();let Y=L0.parse(this.rawData,w9);return await G.subtle.digest(X,Y.subjectPublicKey)}toTextObject(){let W=this.toTextObjectEmpty(),G=L0.parse(this.rawData,w9);switch(W.Algorithm=k6.serializeAlgorithm(G.algorithm),G.algorithm.algorithm){case iW:W["EC Point"]=G.subjectPublicKey;break;case B7:default:W["Raw Data"]=G.subjectPublicKey}return W}}function Zc(W,G){return W.algorithm=new T0({algorithm:B7,parameters:null}),G=L0.serialize(W),G}class UQ extends Y5{static async create(W,G=!1,X=y8.get()){if("name"in W&&"serialNumber"in W)return new UQ(W,G);let Z=await(await l5.create(W,X)).getKeyIdentifier(X);return new UQ(p0.ToHex(Z),G)}constructor(...W){if(S0.isBufferSource(W[0]))super(W[0]);else if(typeof W[0]==="string"){let G=new N4({keyIdentifier:new _X(p0.FromHex(W[0]))});super(qq,W[1],L0.serialize(G))}else{let G=W[0],X=G.name instanceof _6?L0.parse(G.name.rawData,N8):G.name,Y=new N4({authorityCertIssuer:X,authorityCertSerialNumber:p0.FromHex(G.serialNumber)});super(qq,W[1],L0.serialize(Y))}}onInit(W){super.onInit(W);let G=L0.parse(W.extnValue,N4);if(G.keyIdentifier)this.keyId=p0.ToHex(G.keyIdentifier);if(G.authorityCertIssuer||G.authorityCertSerialNumber)this.certId={name:G.authorityCertIssuer||[],serialNumber:G.authorityCertSerialNumber?p0.ToHex(G.authorityCertSerialNumber):""}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=L0.parse(this.value,N4);if(G.authorityCertIssuer)W["Authority Issuer"]=new _6(G.authorityCertIssuer).toTextObject();if(G.authorityCertSerialNumber)W["Authority Serial Number"]=G.authorityCertSerialNumber;if(G.keyIdentifier)W[""]=G.keyIdentifier;return W}}UQ.NAME="Authority Key Identifier";class Zj extends Y5{constructor(...W){if(S0.isBufferSource(W[0])){super(W[0]);let G=L0.parse(this.value,yX);this.ca=G.cA,this.pathLength=G.pathLenConstraint}else{let G=new yX({cA:W[0],pathLenConstraint:W[1]});super(Nq,W[2],L0.serialize(G));this.ca=W[0],this.pathLength=W[1]}}toTextObject(){let W=this.toTextObjectWithoutValue();if(this.ca)W.CA=this.ca;if(this.pathLength!==void 0)W["Path Length"]=this.pathLength;return W}}Zj.NAME="Basic Constraints";var P3;(function(W){W.serverAuth="1.3.6.1.5.5.7.3.1",W.clientAuth="1.3.6.1.5.5.7.3.2",W.codeSigning="1.3.6.1.5.5.7.3.3",W.emailProtection="1.3.6.1.5.5.7.3.4",W.timeStamping="1.3.6.1.5.5.7.3.8",W.ocspSigning="1.3.6.1.5.5.7.3.9"})(P3||(P3={}));class Vj extends Y5{constructor(...W){if(S0.isBufferSource(W[0])){super(W[0]);let G=L0.parse(this.value,eZ);this.usages=G.map((X)=>X)}else{let G=new eZ(W[0]);super(Kq,W[1],L0.serialize(G));this.usages=W[0]}}toTextObject(){let W=this.toTextObjectWithoutValue();return W[""]=this.usages.map((G)=>D4.toString(G)).join(", "),W}}Vj.NAME="Extended Key Usages";var R3;(function(W){W[W.digitalSignature=1]="digitalSignature",W[W.nonRepudiation=2]="nonRepudiation",W[W.keyEncipherment=4]="keyEncipherment",W[W.dataEncipherment=8]="dataEncipherment",W[W.keyAgreement=16]="keyAgreement",W[W.keyCertSign=32]="keyCertSign",W[W.cRLSign=64]="cRLSign",W[W.encipherOnly=128]="encipherOnly",W[W.decipherOnly=256]="decipherOnly"})(R3||(R3={}));class Qj extends Y5{constructor(...W){if(S0.isBufferSource(W[0])){super(W[0]);let G=L0.parse(this.value,GV);this.usages=G.toNumber()}else{let G=new GV(W[0]);super(Cq,W[1],L0.serialize(G));this.usages=W[0]}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=L0.parse(this.value,GV);return W[""]=G.toJSON().join(", "),W}}Qj.NAME="Key Usages";class tq extends Y5{static async create(W,G=!1,X=y8.get()){let Z=await(await l5.create(W,X)).getKeyIdentifier(X);return new tq(p0.ToHex(Z),G)}constructor(...W){if(S0.isBufferSource(W[0])){super(W[0]);let G=L0.parse(this.value,e9);this.keyId=p0.ToHex(G)}else{let G=typeof W[0]==="string"?p0.FromHex(W[0]):W[0],X=new e9(G);super(bI,W[1],L0.serialize(X));this.keyId=p0.ToHex(G)}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=L0.parse(this.value,e9);return W[""]=G,W}}tq.NAME="Subject Key Identifier";class Jj extends Y5{constructor(...W){if(S0.isBufferSource(W[0]))super(W[0]);else super(uI,W[1],new _6(W[0]||[]).rawData)}onInit(W){super.onInit(W);let G=L0.parse(W.extnValue,Tq);this.names=new _6(G)}toTextObject(){let W=this.toTextObjectWithoutValue(),G=this.names.toTextObject();for(let X in G)W[X]=G[X];return W}}Jj.NAME="Subject Alternative Name";class l9{static register(W,G){this.items.set(W,G)}static create(W){let G=new Y5(W),X=this.items.get(G.type);if(X)return new X(W);return G}}l9.items=new Map;class Uj extends Y5{constructor(...W){var G;if(S0.isBufferSource(W[0])){super(W[0]);let X=L0.parse(this.value,rZ);this.policies=X.map((Y)=>Y.policyIdentifier)}else{let X=W[0],Y=(G=W[1])!==null&&G!==void 0?G:!1,Z=new rZ(X.map((V)=>new vX({policyIdentifier:V})));super(Aq,Y,L0.serialize(Z));this.policies=X}}toTextObject(){let W=this.toTextObjectWithoutValue();return W.Policy=this.policies.map((G)=>new d1("",{},D4.toString(G))),W}}Uj.NAME="Certificate Policies";l9.register(Aq,Uj);class qj extends Y5{constructor(...W){var G;if(S0.isBufferSource(W[0]))super(W[0]);else if(Array.isArray(W[0])&&typeof W[0][0]==="string"){let Y=W[0].map((V)=>{return new z4({distributionPoint:new A4({fullName:[new V1({uniformResourceIdentifier:V})]})})}),Z=new P6(Y);super(jq,W[1],L0.serialize(Z))}else{let X=new P6(W[0]);super(jq,W[1],L0.serialize(X))}(G=this.distributionPoints)!==null&&G!==void 0||(this.distributionPoints=[])}onInit(W){super.onInit(W);let G=L0.parse(W.extnValue,P6);this.distributionPoints=G}toTextObject(){let W=this.toTextObjectWithoutValue();return W["Distribution Point"]=this.distributionPoints.map((G)=>{var X;let Y={};if(G.distributionPoint)Y[""]=(X=G.distributionPoint.fullName)===null||X===void 0?void 0:X.map((Z)=>new K4(Z).toString()).join(", ");if(G.reasons)Y.Reasons=G.reasons.toString();if(G.cRLIssuer)Y["CRL Issuer"]=G.cRLIssuer.map((Z)=>Z.toString()).join(", ");return Y}),W}}qj.NAME="CRL Distribution Points";class Nj extends Y5{constructor(...W){var G,X,Y,Z;if(S0.isBufferSource(W[0]))super(W[0]);else if(W[0]instanceof vW){let V=new vW(W[0]);super(Uq,W[1],L0.serialize(V))}else{let V=W[0],Q=new vW;rq(Q,V,KI,"ocsp"),rq(Q,V,CI,"caIssuers"),rq(Q,V,DI,"timeStamping"),rq(Q,V,MI,"caRepository");super(Uq,W[1],L0.serialize(Q))}(G=this.ocsp)!==null&&G!==void 0||(this.ocsp=[]),(X=this.caIssuers)!==null&&X!==void 0||(this.caIssuers=[]),(Y=this.timeStamping)!==null&&Y!==void 0||(this.timeStamping=[]),(Z=this.caRepository)!==null&&Z!==void 0||(this.caRepository=[])}onInit(W){super.onInit(W),this.ocsp=[],this.caIssuers=[],this.timeStamping=[],this.caRepository=[],L0.parse(W.extnValue,vW).forEach((X)=>{switch(X.accessMethod){case KI:this.ocsp.push(new K4(X.accessLocation));break;case CI:this.caIssuers.push(new K4(X.accessLocation));break;case DI:this.timeStamping.push(new K4(X.accessLocation));break;case MI:this.caRepository.push(new K4(X.accessLocation));break}})}toTextObject(){let W=this.toTextObjectWithoutValue();if(this.ocsp.length)iq(W,"OCSP",this.ocsp);if(this.caIssuers.length)iq(W,"CA Issuers",this.caIssuers);if(this.timeStamping.length)iq(W,"Time Stamping",this.timeStamping);if(this.caRepository.length)iq(W,"CA Repository",this.caRepository);return W}}Nj.NAME="Authority Info Access";function iq(W,G,X){if(X.length===1)W[G]=X[0].toTextObject();else{let Y=new d1("");X.forEach((Z,V)=>{let Q=Z.toTextObject(),J=`${Q[d1.NAME]} ${V+1}`,U=Y[J];if(!Array.isArray(U))U=[],Y[J]=U;U.push(Q)}),W[G]=Y}}function rq(W,G,X,Y){let Z=G[Y];if(Z)(Array.isArray(Z)?Z:[Z]).forEach((Q)=>{if(typeof Q==="string")Q=new K4("url",Q);W.push(new T6({accessMethod:X,accessLocation:L0.parse(Q.rawData,V1)}))})}class Hj extends Y5{constructor(...W){if(S0.isBufferSource(W[0]))super(W[0]);else super(xI,W[1],new _6(W[0]||[]).rawData)}onInit(W){super.onInit(W);let G=L0.parse(W.extnValue,N8);this.names=new _6(G)}toTextObject(){let W=this.toTextObjectWithoutValue(),G=this.names.toTextObject();for(let X in G)W[X]=G[X];return W}}Hj.NAME="Issuer Alternative Name";class NY extends y6{constructor(...W){let G;if(S0.isBufferSource(W[0]))G=S0.toArrayBuffer(W[0]);else{let X=W[0],Y=Array.isArray(W[1])?W[1].map((Z)=>S0.toArrayBuffer(Z)):[];G=L0.serialize(new I9({type:X,values:Y}))}super(G,I9)}onInit(W){this.type=W.type,this.values=W.values}toTextObject(){let W=this.toTextObjectWithoutValue();return W.Value=this.values.map((G)=>new d1("",{"":G})),W}toTextObjectWithoutValue(){let W=this.toTextObjectEmpty();if(W[d1.NAME]===NY.NAME)W[d1.NAME]=D4.toString(this.type);return W}}NY.NAME="Attribute";class Aj extends NY{constructor(...W){var G;if(S0.isBufferSource(W[0]))super(W[0]);else{let X=new gV({printableString:W[0]});super(pw,[L0.serialize(X)])}(G=this.password)!==null&&G!==void 0||(this.password="")}onInit(W){if(super.onInit(W),this.values[0]){let G=L0.parse(this.values[0],gV);this.password=G.toString()}}toTextObject(){let W=this.toTextObjectWithoutValue();return W[d1.VALUE]=this.password,W}}Aj.NAME="Challenge Password";class eq extends NY{constructor(...W){var G;if(S0.isBufferSource(W[0]))super(W[0]);else{let X=W[0],Y=new W5;for(let Z of X)Y.push(L0.parse(Z.rawData,j9));super(hV,[L0.serialize(Y)])}(G=this.items)!==null&&G!==void 0||(this.items=[])}onInit(W){if(super.onInit(W),this.values[0]){let G=L0.parse(this.values[0],W5);this.items=G.map((X)=>l9.create(L0.serialize(X)))}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=this.items.map((X)=>X.toTextObject());for(let X of G)W[X[d1.NAME]]=X;return W}}eq.NAME="Extensions";class NQ{static register(W,G){this.items.set(W,G)}static create(W){let G=new NY(W),X=this.items.get(G.type);if(X)return new X(W);return G}}NQ.items=new Map;var HQ="crypto.signatureFormatter";class y3{toAsnSignature(W,G){return S0.toArrayBuffer(G)}toWebSignature(W,G){return S0.toArrayBuffer(G)}}var sq,Wj=sq=class{static createPssParams(G,X){let Y=sq.getHashAlgorithm(G);if(!Y)return null;return new j4({hashAlgorithm:Y,maskGenAlgorithm:new T0({algorithm:$6,parameters:L0.serialize(Y)}),saltLength:X})}static getHashAlgorithm(G){let X=V8.resolve(QG);if(typeof G==="string")return X.toAsnAlgorithm({name:G});if(typeof G==="object"&&G&&"name"in G)return X.toAsnAlgorithm(G);return null}toAsnAlgorithm(G){switch(G.name.toLowerCase()){case"rsassa-pkcs1-v1_5":if("hash"in G){let X;if(typeof G.hash==="string")X=G.hash;else if(G.hash&&typeof G.hash==="object"&&"name"in G.hash&&typeof G.hash.name==="string")X=G.hash.name.toUpperCase();else throw Error("Cannot get hash algorithm name");switch(X.toLowerCase()){case"sha-1":return new T0({algorithm:sX,parameters:null});case"sha-256":return new T0({algorithm:gq,parameters:null});case"sha-384":return new T0({algorithm:tX,parameters:null});case"sha-512":return new T0({algorithm:eX,parameters:null})}}else return new T0({algorithm:B7,parameters:null});break;case"rsa-pss":if("hash"in G){if(!(("saltLength"in G)&&typeof G.saltLength==="number"))throw Error("Cannot get 'saltLength' from 'alg' argument");let X=sq.createPssParams(G.hash,G.saltLength);if(!X)throw Error("Cannot create PSS parameters");return new T0({algorithm:E6,parameters:L0.serialize(X)})}else return new T0({algorithm:E6,parameters:null})}return null}toWebAlgorithm(G){switch(G.algorithm){case B7:return{name:"RSASSA-PKCS1-v1_5"};case sX:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-1"}};case gq:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case tX:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}};case eX:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}};case E6:if(G.parameters){let X=L0.parse(G.parameters,j4);return{name:"RSA-PSS",hash:V8.resolve(QG).toWebAlgorithm(X.hashAlgorithm),saltLength:X.saltLength}}else return{name:"RSA-PSS"}}return null}};Wj=sq=j([S6()],Wj);V8.registerSingleton(qQ,Wj);var Gj=class{toAsnAlgorithm(G){switch(G.name.toLowerCase()){case"sha-1":return new T0({algorithm:rW});case"sha-256":return new T0({algorithm:aW});case"sha-384":return new T0({algorithm:sW});case"sha-512":return new T0({algorithm:tW})}return null}toWebAlgorithm(G){switch(G.algorithm){case rW:return{name:"SHA-1"};case aW:return{name:"SHA-256"};case sW:return{name:"SHA-384"};case tW:return{name:"SHA-512"}}return null}};Gj=j([S6()],Gj);V8.registerSingleton(qQ,Gj);class D5{addPadding(W,G){let X=S0.toUint8Array(G),Y=new Uint8Array(W);return Y.set(X,W-X.length),Y.buffer}removePadding(W,G=!1){let X=S0.toUint8Array(W);for(let Y=0;Y<X.length;Y++){if(!X[Y])continue;X=X.slice(Y);break}if(G&&X[0]>127){let Y=new Uint8Array(X.length+1);return Y.set(X,1),Y.buffer}return X.buffer}toAsnSignature(W,G){if(W.name==="ECDSA"){let X=W.namedCurve,Y=D5.namedCurveSize.get(X)||D5.defaultNamedCurveSize,Z=new aX,V=S0.toUint8Array(G);return Z.r=this.removePadding(V.slice(0,Y),!0),Z.s=this.removePadding(V.slice(Y,Y+Y),!0),L0.serialize(Z)}return null}toWebSignature(W,G){if(W.name==="ECDSA"){let X=L0.parse(G,aX),Y=W.namedCurve,Z=D5.namedCurveSize.get(Y)||D5.defaultNamedCurveSize,V=this.addPadding(Z,this.removePadding(X.r)),Q=this.addPadding(Z,this.removePadding(X.s));return kT(V,Q)}return null}}D5.namedCurveSize=new Map;D5.defaultNamedCurveSize=32;var tw="1.3.101.110",L3="1.3.101.111",ew="1.3.101.112",B3="1.3.101.113",Xj=class{toAsnAlgorithm(G){let X=null;switch(G.name.toLowerCase()){case"ed25519":X=ew;break;case"x25519":X=tw;break;case"eddsa":switch(G.namedCurve.toLowerCase()){case"ed25519":X=ew;break;case"ed448":X=B3;break}break;case"ecdh-es":switch(G.namedCurve.toLowerCase()){case"x25519":X=tw;break;case"x448":X=L3;break}}if(X)return new T0({algorithm:X});return null}toWebAlgorithm(G){switch(G.algorithm){case ew:return{name:"Ed25519"};case B3:return{name:"EdDSA",namedCurve:"Ed448"};case tw:return{name:"X25519"};case L3:return{name:"ECDH-ES",namedCurve:"X448"}}return null}};Xj=j([S6()],Xj);V8.registerSingleton(qQ,Xj);var fV,cV,pV,lV,dV,oV,nV,JY;class v3 extends C4{get subjectName(){if(!D1(this,cV,"f"))q8(this,cV,new p5(this.asn.certificationRequestInfo.subject),"f");return D1(this,cV,"f")}get subject(){if(!D1(this,pV,"f"))q8(this,pV,this.subjectName.toString(),"f");return D1(this,pV,"f")}get signatureAlgorithm(){if(!D1(this,lV,"f")){let W=V8.resolve(QG);q8(this,lV,W.toWebAlgorithm(this.asn.signatureAlgorithm),"f")}return D1(this,lV,"f")}get signature(){if(!D1(this,dV,"f"))q8(this,dV,this.asn.signature,"f");return D1(this,dV,"f")}get publicKey(){if(!D1(this,oV,"f"))q8(this,oV,new l5(this.asn.certificationRequestInfo.subjectPKInfo),"f");return D1(this,oV,"f")}get attributes(){if(!D1(this,nV,"f"))q8(this,nV,this.asn.certificationRequestInfo.attributes.map((W)=>NQ.create(L0.serialize(W))),"f");return D1(this,nV,"f")}get extensions(){if(!D1(this,JY,"f")){q8(this,JY,[],"f");let W=this.getAttribute(hV);if(W instanceof eq)q8(this,JY,W.items,"f")}return D1(this,JY,"f")}get tbs(){if(!D1(this,fV,"f"))q8(this,fV,this.asn.certificationRequestInfoRaw||L0.serialize(this.asn.certificationRequestInfo),"f");return D1(this,fV,"f")}constructor(W){let G=C4.isAsnEncoded(W)?[W,VG]:[W];super(G[0],G[1]);fV.set(this,void 0),cV.set(this,void 0),pV.set(this,void 0),lV.set(this,void 0),dV.set(this,void 0),oV.set(this,void 0),nV.set(this,void 0),JY.set(this,void 0),this.tag=K9.CertificateRequestTag}onInit(W){}getAttribute(W){for(let G of this.attributes)if(G.type===W)return G;return null}getAttributes(W){return this.attributes.filter((G)=>G.type===W)}getExtension(W){for(let G of this.extensions)if(G.type===W)return G;return null}getExtensions(W){return this.extensions.filter((G)=>G.type===W)}async verify(W=y8.get()){let G={...this.publicKey.algorithm,...this.signatureAlgorithm},X=await this.publicKey.export(G,["verify"],W),Y=V8.resolveAll(HQ).reverse(),Z=null;for(let Q of Y)if(Z=Q.toWebSignature(G,this.signature),Z)break;if(!Z)throw Error("Cannot convert WebCrypto signature value to ASN.1 format");return await W.subtle.verify(this.signatureAlgorithm,X,Z,this.tbs)}toTextObject(){let W=this.toTextObjectEmpty(),G=L0.parse(this.rawData,VG),X=G.certificationRequestInfo,Y=new d1("",{Version:`${M7[X.version]} (${X.version})`,Subject:this.subject,"Subject Public Key Info":this.publicKey});if(this.attributes.length){let Z=new d1("");for(let V of this.attributes){let Q=V.toTextObject();Z[Q[d1.NAME]]=Q}Y.Attributes=Z}return W.Data=Y,W.Signature=new d1("",{Algorithm:k6.serializeAlgorithm(G.signatureAlgorithm),"":G.signature}),W}}fV=new WeakMap,cV=new WeakMap,pV=new WeakMap,lV=new WeakMap,dV=new WeakMap,oV=new WeakMap,nV=new WeakMap,JY=new WeakMap;v3.NAME="PKCS#10 Certificate Request";var iV,rV,aV,sV,tV,eV,WQ,GQ,XQ,YQ,UY,ZQ;class zj extends C4{get publicKey(){if(!D1(this,ZQ,"f"))q8(this,ZQ,new l5(this.asn.tbsCertificate.subjectPublicKeyInfo),"f");return D1(this,ZQ,"f")}get serialNumber(){if(!D1(this,rV,"f")){let W=this.asn.tbsCertificate,G=new Uint8Array(W.serialNumber);if(G.length>1&&G[0]===0&&G[1]>127)G=G.slice(1);q8(this,rV,p0.ToHex(G),"f")}return D1(this,rV,"f")}get subjectName(){if(!D1(this,aV,"f"))q8(this,aV,new p5(this.asn.tbsCertificate.subject),"f");return D1(this,aV,"f")}get subject(){if(!D1(this,sV,"f"))q8(this,sV,this.subjectName.toString(),"f");return D1(this,sV,"f")}get issuerName(){if(!D1(this,tV,"f"))q8(this,tV,new p5(this.asn.tbsCertificate.issuer),"f");return D1(this,tV,"f")}get issuer(){if(!D1(this,eV,"f"))q8(this,eV,this.issuerName.toString(),"f");return D1(this,eV,"f")}get notBefore(){if(!D1(this,WQ,"f")){let W=this.asn.tbsCertificate.validity.notBefore.utcTime||this.asn.tbsCertificate.validity.notBefore.generalTime;if(!W)throw Error("Cannot get 'notBefore' value");q8(this,WQ,W,"f")}return D1(this,WQ,"f")}get notAfter(){if(!D1(this,GQ,"f")){let W=this.asn.tbsCertificate.validity.notAfter.utcTime||this.asn.tbsCertificate.validity.notAfter.generalTime;if(!W)throw Error("Cannot get 'notAfter' value");q8(this,GQ,W,"f")}return D1(this,GQ,"f")}get signatureAlgorithm(){if(!D1(this,XQ,"f")){let W=V8.resolve(QG);q8(this,XQ,W.toWebAlgorithm(this.asn.signatureAlgorithm),"f")}return D1(this,XQ,"f")}get signature(){if(!D1(this,YQ,"f"))q8(this,YQ,this.asn.signatureValue,"f");return D1(this,YQ,"f")}get extensions(){if(!D1(this,UY,"f")){if(q8(this,UY,[],"f"),this.asn.tbsCertificate.extensions)q8(this,UY,this.asn.tbsCertificate.extensions.map((W)=>l9.create(L0.serialize(W))),"f")}return D1(this,UY,"f")}get tbs(){if(!D1(this,iV,"f"))q8(this,iV,this.asn.tbsCertificateRaw||L0.serialize(this.asn.tbsCertificate),"f");return D1(this,iV,"f")}constructor(W){let G=C4.isAsnEncoded(W)?[W,h5]:[W];super(G[0],G[1]);iV.set(this,void 0),rV.set(this,void 0),aV.set(this,void 0),sV.set(this,void 0),tV.set(this,void 0),eV.set(this,void 0),WQ.set(this,void 0),GQ.set(this,void 0),XQ.set(this,void 0),YQ.set(this,void 0),UY.set(this,void 0),ZQ.set(this,void 0),this.tag=K9.CertificateTag}onInit(W){}getExtension(W){for(let G of this.extensions)if(typeof W==="string"){if(G.type===W)return G}else if(G instanceof W)return G;return null}getExtensions(W){return this.extensions.filter((G)=>{if(typeof W==="string")return G.type===W;else return G instanceof W})}async verify(W={},G=y8.get()){let X,Y,Z=W.publicKey;try{if(!Z)X={...this.publicKey.algorithm,...this.signatureAlgorithm},Y=await this.publicKey.export(X,["verify"],G);else if("publicKey"in Z)X={...Z.publicKey.algorithm,...this.signatureAlgorithm},Y=await Z.publicKey.export(X,["verify"],G);else if(Z instanceof l5)X={...Z.algorithm,...this.signatureAlgorithm},Y=await Z.export(X,["verify"],G);else if(S0.isBufferSource(Z)){let U=new l5(Z);X={...U.algorithm,...this.signatureAlgorithm},Y=await U.export(X,["verify"],G)}else X={...Z.algorithm,...this.signatureAlgorithm},Y=Z}catch{return!1}let V=V8.resolveAll(HQ).reverse(),Q=null;for(let U of V)if(Q=U.toWebSignature(X,this.signature),Q)break;if(!Q)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");let J=await G.subtle.verify(this.signatureAlgorithm,Y,Q,this.tbs);if(W.signatureOnly)return J;else{let q=(W.date||new Date).getTime();return J&&this.notBefore.getTime()<q&&q<this.notAfter.getTime()}}async getThumbprint(...W){let G,X="SHA-1";if(W[0])if(!W[0].subtle)X=W[0]||X,G=W[1];else G=W[0];return G!==null&&G!==void 0||(G=y8.get()),await G.subtle.digest(X,this.rawData)}async isSelfSigned(W=y8.get()){return this.subject===this.issuer&&await this.verify({signatureOnly:!0},W)}toTextObject(){let W=this.toTextObjectEmpty(),G=L0.parse(this.rawData,h5),X=G.tbsCertificate,Y=new d1("",{Version:`${M7[X.version]} (${X.version})`,"Serial Number":X.serialNumber,"Signature Algorithm":k6.serializeAlgorithm(X.signature),Issuer:this.issuer,Validity:new d1("",{"Not Before":X.validity.notBefore.getTime(),"Not After":X.validity.notAfter.getTime()}),Subject:this.subject,"Subject Public Key Info":this.publicKey});if(X.issuerUniqueID)Y["Issuer Unique ID"]=X.issuerUniqueID;if(X.subjectUniqueID)Y["Subject Unique ID"]=X.subjectUniqueID;if(this.extensions.length){let Z=new d1("");for(let V of this.extensions){let Q=V.toTextObject();Z[Q[d1.NAME]]=Q}Y.Extensions=Z}return W.Data=Y,W.Signature=new d1("",{Algorithm:k6.serializeAlgorithm(G.signatureAlgorithm),"":G.signatureValue}),W}}iV=new WeakMap,rV=new WeakMap,aV=new WeakMap,sV=new WeakMap,tV=new WeakMap,eV=new WeakMap,WQ=new WeakMap,GQ=new WeakMap,XQ=new WeakMap,YQ=new WeakMap,UY=new WeakMap,ZQ=new WeakMap;zj.NAME="Certificate";function Vc(W,G=y8.get()){let X=S0.toUint8Array(p0.FromHex(W||"")),Y=X&&X.length&&X.some((V)=>V>0)?new Uint8Array(X):void 0;if(!Y)Y=G.getRandomValues(new Uint8Array(16));let Z=0;while(Z<Y.length-1&&Y[Z]===0)Z++;if(Y=Y.slice(Z),Y[0]>127){let V=new Uint8Array(Y.length+1);V[0]=0,V.set(Y,1),Y=V}return Y.buffer}class Ij{static async createSelfSigned(W,G=y8.get()){if(!W.keys.privateKey)throw Error("Bad field 'keys' in 'params' argument. 'privateKey' is empty");if(!W.keys.publicKey)throw Error("Bad field 'keys' in 'params' argument. 'publicKey' is empty");return this.create({serialNumber:W.serialNumber,subject:W.name,issuer:W.name,notBefore:W.notBefore,notAfter:W.notAfter,publicKey:W.keys.publicKey,signingKey:W.keys.privateKey,signingAlgorithm:W.signingAlgorithm,extensions:W.extensions},G)}static async create(W,G=y8.get()){var X;let Y;if(W.publicKey instanceof l5)Y=W.publicKey.rawData;else if("publicKey"in W.publicKey)Y=W.publicKey.publicKey.rawData;else if(S0.isBufferSource(W.publicKey))Y=W.publicKey;else Y=await G.subtle.exportKey("spki",W.publicKey);let Z=Vc(W.serialNumber,G),V=W.notBefore||new Date,Q=W.notAfter||new Date(V.getTime()+31536000000),J=new h5({tbsCertificate:new O9({version:M7.v3,serialNumber:Z,validity:new R6({notBefore:V,notAfter:Q}),extensions:new W5(((X=W.extensions)===null||X===void 0?void 0:X.map((C)=>L0.parse(C.rawData,j9)))||[]),subjectPublicKeyInfo:L0.parse(Y,w9)})});if(W.subject){let C=W.subject instanceof p5?W.subject:new p5(W.subject);J.tbsCertificate.subject=L0.parse(C.toArrayBuffer(),G8)}if(W.issuer){let C=W.issuer instanceof p5?W.issuer:new p5(W.issuer);J.tbsCertificate.issuer=L0.parse(C.toArrayBuffer(),G8)}let U={hash:"SHA-256"},q="signingKey"in W?{...U,...W.signingAlgorithm,...W.signingKey.algorithm}:{...U,...W.signingAlgorithm},N=V8.resolve(QG);J.tbsCertificate.signature=J.signatureAlgorithm=N.toAsnAlgorithm(q);let A=L0.serialize(J.tbsCertificate),H="signingKey"in W?await G.subtle.sign(q,W.signingKey,A):W.signature,I=V8.resolveAll(HQ).reverse(),w=null;for(let C of I)if(w=C.toAsnSignature(q,H),w)break;if(!w)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");return J.signatureValue=w,new zj(L0.serialize(J))}}var Qc,Jc,Uc,qc,Nc,E3;(function(W){W[W.unspecified=0]="unspecified",W[W.keyCompromise=1]="keyCompromise",W[W.cACompromise=2]="cACompromise",W[W.affiliationChanged=3]="affiliationChanged",W[W.superseded=4]="superseded",W[W.cessationOfOperation=5]="cessationOfOperation",W[W.certificateHold=6]="certificateHold",W[W.removeFromCRL=8]="removeFromCRL",W[W.privilegeWithdrawn=9]="privilegeWithdrawn",W[W.aACompromise=10]="aACompromise"})(E3||(E3={}));Qc=new WeakMap,Jc=new WeakMap,Uc=new WeakMap,qc=new WeakMap,Nc=new WeakMap;var Hc,Ac,zc,Ic,wc,jc,Oc;Hc=new WeakMap,Ac=new WeakMap,zc=new WeakMap,Ic=new WeakMap,wc=new WeakMap,jc=new WeakMap,Oc=new WeakMap;l9.register(Nq,Zj);l9.register(Kq,Vj);l9.register(Cq,Qj);l9.register(bI,tq);l9.register(qq,UQ);l9.register(uI,Jj);l9.register(jq,qj);l9.register(Uq,Nj);l9.register(xI,Hj);NQ.register(pw,Aj);NQ.register(hV,eq);V8.registerSingleton(HQ,y3);V8.registerSingleton(HQ,D5);D5.namedCurveSize.set("P-256",32);D5.namedCurveSize.set("K-256",32);D5.namedCurveSize.set("P-384",48);D5.namedCurveSize.set("P-521",66);var vY=v1(I8(),1),$2=v1(I8(),1),F2=v1(xU(),1);import{createHash as gd,createHmac as ud}from"crypto";import*as M4 from"crypto";var UG=M4&&typeof M4==="object"&&"webcrypto"in M4?M4.webcrypto:M4&&typeof M4==="object"&&("randomBytes"in M4)?M4:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function qG(W){return W instanceof Uint8Array||ArrayBuffer.isView(W)&&W.constructor.name==="Uint8Array"}function KQ(W){if(!Number.isSafeInteger(W)||W<0)throw Error("positive integer expected, got "+W)}function d5(W,...G){if(!qG(W))throw Error("Uint8Array expected");if(G.length>0&&!G.includes(W.length))throw Error("Uint8Array expected of length "+G+", got length="+W.length)}function JN(W){if(typeof W!=="function"||typeof W.create!=="function")throw Error("Hash should be wrapped by utils.createHasher");KQ(W.outputLen),KQ(W.blockLen)}function IY(W,G=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(G&&W.finished)throw Error("Hash#digest() has already been called")}function IE(W,G){d5(W);let X=G.outputLen;if(W.length<X)throw Error("digestInto() expects output buffer of length at least "+X)}function P4(...W){for(let G=0;G<W.length;G++)W[G].fill(0)}function UN(W){return new DataView(W.buffer,W.byteOffset,W.byteLength)}function o5(W,G){return W<<32-G|W>>>G}var wE=(()=>typeof Uint8Array.from([]).toHex==="function"&&typeof Uint8Array.fromHex==="function")(),op=Array.from({length:256},(W,G)=>G.toString(16).padStart(2,"0"));function R4(W){if(d5(W),wE)return W.toHex();let G="";for(let X=0;X<W.length;X++)G+=op[W[X]];return G}var T4={_0:48,_9:57,A:65,F:70,a:97,f:102};function zE(W){if(W>=T4._0&&W<=T4._9)return W-T4._0;if(W>=T4.A&&W<=T4.F)return W-(T4.A-10);if(W>=T4.a&&W<=T4.f)return W-(T4.a-10);return}function NG(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);if(wE)return Uint8Array.fromHex(W);let G=W.length,X=G/2;if(G%2)throw Error("hex string expected, got unpadded hex of length "+G);let Y=new Uint8Array(X);for(let Z=0,V=0;Z<X;Z++,V+=2){let Q=zE(W.charCodeAt(V)),J=zE(W.charCodeAt(V+1));if(Q===void 0||J===void 0){let U=W[V]+W[V+1];throw Error('hex string expected, got non-hex character "'+U+'" at index '+V)}Y[Z]=Q*16+J}return Y}function qN(W){if(typeof W!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(W))}function CQ(W){if(typeof W==="string")W=qN(W);return d5(W),W}function o9(...W){let G=0;for(let Y=0;Y<W.length;Y++){let Z=W[Y];d5(Z),G+=Z.length}let X=new Uint8Array(G);for(let Y=0,Z=0;Y<W.length;Y++){let V=W[Y];X.set(V,Z),Z+=V.length}return X}class DQ{}function NN(W){let G=(Y)=>W().update(CQ(Y)).digest(),X=W();return G.outputLen=X.outputLen,G.blockLen=X.blockLen,G.create=()=>W(),G}function HG(W=32){if(UG&&typeof UG.getRandomValues==="function")return UG.getRandomValues(new Uint8Array(W));if(UG&&typeof UG.randomBytes==="function")return Uint8Array.from(UG.randomBytes(W));throw Error("crypto.getRandomValues must be defined")}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Ej=BigInt(0),Bj=BigInt(1);function MQ(W,G=""){if(typeof W!=="boolean"){let X=G&&`"${G}"`;throw Error(X+"expected boolean, got type="+typeof W)}return W}function m6(W,G,X=""){let Y=qG(W),Z=W?.length,V=G!==void 0;if(!Y||V&&Z!==G){let Q=X&&`"${X}" `,J=V?` of length ${G}`:"",U=Y?`length=${Z}`:`type=${typeof W}`;throw Error(Q+"expected Uint8Array"+J+", got "+U)}return W}function TQ(W){let G=W.toString(16);return G.length&1?"0"+G:G}function jE(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return W===""?Ej:BigInt("0x"+W)}function L4(W){return jE(R4(W))}function $j(W){return d5(W),jE(R4(Uint8Array.from(W).reverse()))}function wY(W,G){return NG(W.toString(16).padStart(G*2,"0"))}function Fj(W,G){return wY(W,G).reverse()}function B8(W,G,X){let Y;if(typeof G==="string")try{Y=NG(G)}catch(V){throw Error(W+" must be hex string or Uint8Array, cause: "+V)}else if(qG(G))Y=Uint8Array.from(G);else throw Error(W+" must be hex string or Uint8Array");let Z=Y.length;if(typeof X==="number"&&Z!==X)throw Error(W+" of length "+X+" expected, got "+Z);return Y}var Lj=(W)=>typeof W==="bigint"&&Ej<=W;function PQ(W,G,X){return Lj(W)&&Lj(G)&&Lj(X)&&G<=W&&W<X}function OE(W,G,X,Y){if(!PQ(G,X,Y))throw Error("expected valid "+W+": "+X+" <= n < "+Y+", got "+G)}function HN(W){let G;for(G=0;W>Ej;W>>=Bj,G+=1);return G}var f6=(W)=>(Bj<<BigInt(W))-Bj;function KE(W,G,X){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof G!=="number"||G<2)throw Error("qByteLen must be a number");if(typeof X!=="function")throw Error("hmacFn must be a function");let Y=(I)=>new Uint8Array(I),Z=(I)=>Uint8Array.of(I),V=Y(W),Q=Y(W),J=0,U=()=>{V.fill(1),Q.fill(0),J=0},q=(...I)=>X(Q,V,...I),N=(I=Y(0))=>{if(Q=q(Z(0),I),V=q(),I.length===0)return;Q=q(Z(1),I),V=q()},A=()=>{if(J++>=1000)throw Error("drbg: tried 1000 values");let I=0,w=[];while(I<G){V=q();let C=V.slice();w.push(C),I+=V.length}return o9(...w)};return(I,w)=>{U(),N(I);let C=void 0;while(!(C=w(A())))N();return U(),C}}function RQ(W,G,X={}){if(!W||typeof W!=="object")throw Error("expected valid options object");function Y(Z,V,Q){let J=W[Z];if(Q&&J===void 0)return;let U=typeof J;if(U!==V||J===null)throw Error(`param "${Z}" is invalid: expected ${V}, got ${U}`)}Object.entries(G).forEach(([Z,V])=>Y(Z,V,!1)),Object.entries(X).forEach(([Z,V])=>Y(Z,V,!0))}function Sj(W){let G=new WeakMap;return(X,...Y)=>{let Z=G.get(X);if(Z!==void 0)return Z;let V=W(X,...Y);return G.set(X,V),V}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var _9=BigInt(0),C9=BigInt(1),AG=BigInt(2),ME=BigInt(3),TE=BigInt(4),PE=BigInt(5),np=BigInt(7),RE=BigInt(8),ip=BigInt(9),LE=BigInt(16);function Z5(W,G){let X=W%G;return X>=_9?X:G+X}function V5(W,G,X){let Y=W;while(G-- >_9)Y*=Y,Y%=X;return Y}function CE(W,G){if(W===_9)throw Error("invert: expected non-zero number");if(G<=_9)throw Error("invert: expected positive modulus, got "+G);let X=Z5(W,G),Y=G,Z=_9,V=C9,Q=C9,J=_9;while(X!==_9){let q=Y/X,N=Y%X,A=Z-Q*q,H=V-J*q;Y=X,X=N,Z=Q,V=J,Q=A,J=H}if(Y!==C9)throw Error("invert: does not exist");return Z5(Z,G)}function xj(W,G,X){if(!W.eql(W.sqr(G),X))throw Error("Cannot find square root")}function BE(W,G){let X=(W.ORDER+C9)/TE,Y=W.pow(G,X);return xj(W,Y,G),Y}function rp(W,G){let X=(W.ORDER-PE)/RE,Y=W.mul(G,AG),Z=W.pow(Y,X),V=W.mul(G,Z),Q=W.mul(W.mul(V,AG),Z),J=W.mul(V,W.sub(Q,W.ONE));return xj(W,J,G),J}function ap(W){let G=T5(W),X=EE(W),Y=X(G,G.neg(G.ONE)),Z=X(G,Y),V=X(G,G.neg(Y)),Q=(W+np)/LE;return(J,U)=>{let q=J.pow(U,Q),N=J.mul(q,Y),A=J.mul(q,Z),H=J.mul(q,V),I=J.eql(J.sqr(N),U),w=J.eql(J.sqr(A),U);q=J.cmov(q,N,I),N=J.cmov(H,A,w);let C=J.eql(J.sqr(N),U),D=J.cmov(q,N,C);return xj(J,D,U),D}}function EE(W){if(W<ME)throw Error("sqrt is not defined for small field");let G=W-C9,X=0;while(G%AG===_9)G/=AG,X++;let Y=AG,Z=T5(W);while(DE(Z,Y)===1)if(Y++>1000)throw Error("Cannot find square root: probably non-prime P");if(X===1)return BE;let V=Z.pow(Y,G),Q=(G+C9)/AG;return function(U,q){if(U.is0(q))return q;if(DE(U,q)!==1)throw Error("Cannot find square root");let N=X,A=U.mul(U.ONE,V),H=U.pow(q,G),I=U.pow(q,Q);while(!U.eql(H,U.ONE)){if(U.is0(H))return U.ZERO;let w=1,C=U.sqr(H);while(!U.eql(C,U.ONE))if(w++,C=U.sqr(C),w===N)throw Error("Cannot find square root");let D=C9<<BigInt(N-w-1),x=U.pow(A,D);N=w,A=U.sqr(x),H=U.mul(H,A),I=U.mul(I,x)}return I}}function sp(W){if(W%TE===ME)return BE;if(W%RE===PE)return rp;if(W%LE===ip)return ap(W);return EE(W)}var tp=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function kj(W){let G={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},X=tp.reduce((Y,Z)=>{return Y[Z]="function",Y},G);return RQ(W,X),W}function ep(W,G,X){if(X<_9)throw Error("invalid exponent, negatives unsupported");if(X===_9)return W.ONE;if(X===C9)return G;let Y=W.ONE,Z=G;while(X>_9){if(X&C9)Y=W.mul(Y,Z);Z=W.sqr(Z),X>>=C9}return Y}function AN(W,G,X=!1){let Y=Array(G.length).fill(X?W.ZERO:void 0),Z=G.reduce((Q,J,U)=>{if(W.is0(J))return Q;return Y[U]=Q,W.mul(Q,J)},W.ONE),V=W.inv(Z);return G.reduceRight((Q,J,U)=>{if(W.is0(J))return Q;return Y[U]=W.mul(Q,Y[U]),W.mul(Q,J)},V),Y}function DE(W,G){let X=(W.ORDER-C9)/AG,Y=W.pow(G,X),Z=W.eql(Y,W.ONE),V=W.eql(Y,W.ZERO),Q=W.eql(Y,W.neg(W.ONE));if(!Z&&!V&&!Q)throw Error("invalid Legendre symbol result");return Z?1:V?0:-1}function zN(W,G){if(G!==void 0)KQ(G);let X=G!==void 0?G:W.toString(2).length,Y=Math.ceil(X/8);return{nBitLength:X,nByteLength:Y}}function T5(W,G,X=!1,Y={}){if(W<=_9)throw Error("invalid field: expected ORDER > 0, got "+W);let Z=void 0,V=void 0,Q=!1,J=void 0;if(typeof G==="object"&&G!=null){if(Y.sqrt||X)throw Error("cannot specify opts in two arguments");let H=G;if(H.BITS)Z=H.BITS;if(H.sqrt)V=H.sqrt;if(typeof H.isLE==="boolean")X=H.isLE;if(typeof H.modFromBytes==="boolean")Q=H.modFromBytes;J=H.allowedLengths}else{if(typeof G==="number")Z=G;if(Y.sqrt)V=Y.sqrt}let{nBitLength:U,nByteLength:q}=zN(W,Z);if(q>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let N,A=Object.freeze({ORDER:W,isLE:X,BITS:U,BYTES:q,MASK:f6(U),ZERO:_9,ONE:C9,allowedLengths:J,create:(H)=>Z5(H,W),isValid:(H)=>{if(typeof H!=="bigint")throw Error("invalid field element: expected bigint, got "+typeof H);return _9<=H&&H<W},is0:(H)=>H===_9,isValidNot0:(H)=>!A.is0(H)&&A.isValid(H),isOdd:(H)=>(H&C9)===C9,neg:(H)=>Z5(-H,W),eql:(H,I)=>H===I,sqr:(H)=>Z5(H*H,W),add:(H,I)=>Z5(H+I,W),sub:(H,I)=>Z5(H-I,W),mul:(H,I)=>Z5(H*I,W),pow:(H,I)=>ep(A,H,I),div:(H,I)=>Z5(H*CE(I,W),W),sqrN:(H)=>H*H,addN:(H,I)=>H+I,subN:(H,I)=>H-I,mulN:(H,I)=>H*I,inv:(H)=>CE(H,W),sqrt:V||((H)=>{if(!N)N=sp(W);return N(A,H)}),toBytes:(H)=>X?Fj(H,q):wY(H,q),fromBytes:(H,I=!0)=>{if(J){if(!J.includes(H.length)||H.length>q)throw Error("Field.fromBytes: expected "+J+" bytes, got "+H.length);let C=new Uint8Array(q);C.set(H,X?0:C.length-H.length),H=C}if(H.length!==q)throw Error("Field.fromBytes: expected "+q+" bytes, got "+H.length);let w=X?$j(H):L4(H);if(Q)w=Z5(w,W);if(!I){if(!A.isValid(w))throw Error("invalid field element: outside of range 0..ORDER")}return w},invertBatch:(H)=>AN(A,H),cmov:(H,I,w)=>w?I:H});return Object.freeze(A)}function $E(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let G=W.toString(2).length;return Math.ceil(G/8)}function _j(W){let G=$E(W);return G+Math.ceil(G/2)}function IN(W,G,X=!1){let Y=W.length,Z=$E(G),V=_j(G);if(Y<16||Y<V||Y>1024)throw Error("expected "+V+"-1024 bytes of input, got "+Y);let Q=X?$j(W):L4(W),J=Z5(Q,G-C9)+C9;return X?Fj(J,Z):wY(J,Z)}function Wl(W,G,X,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(G,X,Y);let Z=BigInt(32),V=BigInt(4294967295),Q=Number(X>>Z&V),J=Number(X&V),U=Y?4:0,q=Y?0:4;W.setUint32(G+U,Q,Y),W.setUint32(G+q,J,Y)}function FE(W,G,X){return W&G^~W&X}function SE(W,G,X){return W&G^W&X^G&X}class wN extends DQ{constructor(W,G,X,Y){super();this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=W,this.outputLen=G,this.padOffset=X,this.isLE=Y,this.buffer=new Uint8Array(W),this.view=UN(this.buffer)}update(W){IY(this),W=CQ(W),d5(W);let{view:G,buffer:X,blockLen:Y}=this,Z=W.length;for(let V=0;V<Z;){let Q=Math.min(Y-this.pos,Z-V);if(Q===Y){let J=UN(W);for(;Y<=Z-V;V+=Y)this.process(J,V);continue}if(X.set(W.subarray(V,V+Q),this.pos),this.pos+=Q,V+=Q,this.pos===Y)this.process(G,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){IY(this),IE(W,this),this.finished=!0;let{buffer:G,view:X,blockLen:Y,isLE:Z}=this,{pos:V}=this;if(G[V++]=128,P4(this.buffer.subarray(V)),this.padOffset>Y-V)this.process(X,0),V=0;for(let N=V;N<Y;N++)G[N]=0;Wl(X,Y-8,BigInt(this.length*8),Z),this.process(X,0);let Q=UN(W),J=this.outputLen;if(J%4)throw Error("_sha2: outputLen should be aligned to 32bit");let U=J/4,q=this.get();if(U>q.length)throw Error("_sha2: outputLen bigger than state");for(let N=0;N<U;N++)Q.setUint32(4*N,q[N],Z)}digest(){let{buffer:W,outputLen:G}=this;this.digestInto(W);let X=W.slice(0,G);return this.destroy(),X}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:G,buffer:X,length:Y,finished:Z,destroyed:V,pos:Q}=this;if(W.destroyed=V,W.finished=Z,W.length=Y,W.pos=Q,Y%G)W.buffer.set(X);return W}clone(){return this._cloneInto()}}var B4=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var G9=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),X9=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var jN=BigInt(4294967295),xE=BigInt(32);function Gl(W,G=!1){if(G)return{h:Number(W&jN),l:Number(W>>xE&jN)};return{h:Number(W>>xE&jN)|0,l:Number(W&jN)|0}}function kE(W,G=!1){let X=W.length,Y=new Uint32Array(X),Z=new Uint32Array(X);for(let V=0;V<X;V++){let{h:Q,l:J}=Gl(W[V],G);[Y[V],Z[V]]=[Q,J]}return[Y,Z]}var yj=(W,G,X)=>W>>>X,vj=(W,G,X)=>W<<32-X|G>>>X,zG=(W,G,X)=>W>>>X|G<<32-X,IG=(W,G,X)=>W<<32-X|G>>>X,LQ=(W,G,X)=>W<<64-X|G>>>X-32,BQ=(W,G,X)=>W>>>X-32|G<<64-X;function F7(W,G,X,Y){let Z=(G>>>0)+(Y>>>0);return{h:W+X+(Z/4294967296|0)|0,l:Z|0}}var _E=(W,G,X)=>(W>>>0)+(G>>>0)+(X>>>0),yE=(W,G,X,Y)=>G+X+Y+(W/4294967296|0)|0,vE=(W,G,X,Y)=>(W>>>0)+(G>>>0)+(X>>>0)+(Y>>>0),gE=(W,G,X,Y,Z)=>G+X+Y+Z+(W/4294967296|0)|0,uE=(W,G,X,Y,Z)=>(W>>>0)+(G>>>0)+(X>>>0)+(Y>>>0)+(Z>>>0),hE=(W,G,X,Y,Z,V)=>G+X+Y+Z+V+(W/4294967296|0)|0;var Yl=Uint32Array.from([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]),c6=new Uint32Array(64);class bE extends wN{constructor(W=32){super(64,W,8,!1);this.A=B4[0]|0,this.B=B4[1]|0,this.C=B4[2]|0,this.D=B4[3]|0,this.E=B4[4]|0,this.F=B4[5]|0,this.G=B4[6]|0,this.H=B4[7]|0}get(){let{A:W,B:G,C:X,D:Y,E:Z,F:V,G:Q,H:J}=this;return[W,G,X,Y,Z,V,Q,J]}set(W,G,X,Y,Z,V,Q,J){this.A=W|0,this.B=G|0,this.C=X|0,this.D=Y|0,this.E=Z|0,this.F=V|0,this.G=Q|0,this.H=J|0}process(W,G){for(let N=0;N<16;N++,G+=4)c6[N]=W.getUint32(G,!1);for(let N=16;N<64;N++){let A=c6[N-15],H=c6[N-2],I=o5(A,7)^o5(A,18)^A>>>3,w=o5(H,17)^o5(H,19)^H>>>10;c6[N]=w+c6[N-7]+I+c6[N-16]|0}let{A:X,B:Y,C:Z,D:V,E:Q,F:J,G:U,H:q}=this;for(let N=0;N<64;N++){let A=o5(Q,6)^o5(Q,11)^o5(Q,25),H=q+A+FE(Q,J,U)+Yl[N]+c6[N]|0,w=(o5(X,2)^o5(X,13)^o5(X,22))+SE(X,Y,Z)|0;q=U,U=J,J=Q,Q=V+H|0,V=Z,Z=Y,Y=X,X=H+w|0}X=X+this.A|0,Y=Y+this.B|0,Z=Z+this.C|0,V=V+this.D|0,Q=Q+this.E|0,J=J+this.F|0,U=U+this.G|0,q=q+this.H|0,this.set(X,Y,Z,V,Q,J,U,q)}roundClean(){P4(c6)}destroy(){this.set(0,0,0,0,0,0,0,0),P4(this.buffer)}}var mE=(()=>kE(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map((W)=>BigInt(W))))(),Zl=(()=>mE[0])(),Vl=(()=>mE[1])(),p6=new Uint32Array(80),l6=new Uint32Array(80);class gj extends wN{constructor(W=64){super(128,W,16,!1);this.Ah=X9[0]|0,this.Al=X9[1]|0,this.Bh=X9[2]|0,this.Bl=X9[3]|0,this.Ch=X9[4]|0,this.Cl=X9[5]|0,this.Dh=X9[6]|0,this.Dl=X9[7]|0,this.Eh=X9[8]|0,this.El=X9[9]|0,this.Fh=X9[10]|0,this.Fl=X9[11]|0,this.Gh=X9[12]|0,this.Gl=X9[13]|0,this.Hh=X9[14]|0,this.Hl=X9[15]|0}get(){let{Ah:W,Al:G,Bh:X,Bl:Y,Ch:Z,Cl:V,Dh:Q,Dl:J,Eh:U,El:q,Fh:N,Fl:A,Gh:H,Gl:I,Hh:w,Hl:C}=this;return[W,G,X,Y,Z,V,Q,J,U,q,N,A,H,I,w,C]}set(W,G,X,Y,Z,V,Q,J,U,q,N,A,H,I,w,C){this.Ah=W|0,this.Al=G|0,this.Bh=X|0,this.Bl=Y|0,this.Ch=Z|0,this.Cl=V|0,this.Dh=Q|0,this.Dl=J|0,this.Eh=U|0,this.El=q|0,this.Fh=N|0,this.Fl=A|0,this.Gh=H|0,this.Gl=I|0,this.Hh=w|0,this.Hl=C|0}process(W,G){for(let h=0;h<16;h++,G+=4)p6[h]=W.getUint32(G),l6[h]=W.getUint32(G+=4);for(let h=16;h<80;h++){let l=p6[h-15]|0,u=l6[h-15]|0,n=zG(l,u,1)^zG(l,u,8)^yj(l,u,7),c=IG(l,u,1)^IG(l,u,8)^vj(l,u,7),p=p6[h-2]|0,W0=l6[h-2]|0,m=zG(p,W0,19)^LQ(p,W0,61)^yj(p,W0,6),Y0=IG(p,W0,19)^BQ(p,W0,61)^vj(p,W0,6),U0=vE(c,Y0,l6[h-7],l6[h-16]),y=gE(U0,n,m,p6[h-7],p6[h-16]);p6[h]=y|0,l6[h]=U0|0}let{Ah:X,Al:Y,Bh:Z,Bl:V,Ch:Q,Cl:J,Dh:U,Dl:q,Eh:N,El:A,Fh:H,Fl:I,Gh:w,Gl:C,Hh:D,Hl:x}=this;for(let h=0;h<80;h++){let l=zG(N,A,14)^zG(N,A,18)^LQ(N,A,41),u=IG(N,A,14)^IG(N,A,18)^BQ(N,A,41),n=N&H^~N&w,c=A&I^~A&C,p=uE(x,u,c,Vl[h],l6[h]),W0=hE(p,D,l,n,Zl[h],p6[h]),m=p|0,Y0=zG(X,Y,28)^LQ(X,Y,34)^LQ(X,Y,39),U0=IG(X,Y,28)^BQ(X,Y,34)^BQ(X,Y,39),y=X&Z^X&Q^Z&Q,o=Y&V^Y&J^V&J;D=w|0,x=C|0,w=H|0,C=I|0,H=N|0,I=A|0,{h:N,l:A}=F7(U|0,q|0,W0|0,m|0),U=Q|0,q=J|0,Q=Z|0,J=V|0,Z=X|0,V=Y|0;let B=_E(m,U0,o);X=yE(B,W0,Y0,y),Y=B|0}({h:X,l:Y}=F7(this.Ah|0,this.Al|0,X|0,Y|0)),{h:Z,l:V}=F7(this.Bh|0,this.Bl|0,Z|0,V|0),{h:Q,l:J}=F7(this.Ch|0,this.Cl|0,Q|0,J|0),{h:U,l:q}=F7(this.Dh|0,this.Dl|0,U|0,q|0),{h:N,l:A}=F7(this.Eh|0,this.El|0,N|0,A|0),{h:H,l:I}=F7(this.Fh|0,this.Fl|0,H|0,I|0),{h:w,l:C}=F7(this.Gh|0,this.Gl|0,w|0,C|0),{h:D,l:x}=F7(this.Hh|0,this.Hl|0,D|0,x|0),this.set(X,Y,Z,V,Q,J,U,q,N,A,H,I,w,C,D,x)}roundClean(){P4(p6,l6)}destroy(){P4(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class fE extends gj{constructor(){super(48);this.Ah=G9[0]|0,this.Al=G9[1]|0,this.Bh=G9[2]|0,this.Bl=G9[3]|0,this.Ch=G9[4]|0,this.Cl=G9[5]|0,this.Dh=G9[6]|0,this.Dl=G9[7]|0,this.Eh=G9[8]|0,this.El=G9[9]|0,this.Fh=G9[10]|0,this.Fl=G9[11]|0,this.Gh=G9[12]|0,this.Gl=G9[13]|0,this.Hh=G9[14]|0,this.Hl=G9[15]|0}}var jY=NN(()=>new bE);var cE=NN(()=>new gj),pE=NN(()=>new fE);class uj extends DQ{constructor(W,G){super();this.finished=!1,this.destroyed=!1,JN(W);let X=CQ(G);if(this.iHash=W.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let Y=this.blockLen,Z=new Uint8Array(Y);Z.set(X.length>Y?W.create().update(X).digest():X);for(let V=0;V<Z.length;V++)Z[V]^=54;this.iHash.update(Z),this.oHash=W.create();for(let V=0;V<Z.length;V++)Z[V]^=106;this.oHash.update(Z),P4(Z)}update(W){return IY(this),this.iHash.update(W),this}digestInto(W){IY(this),d5(W,this.outputLen),this.finished=!0,this.iHash.digestInto(W),this.oHash.update(W),this.oHash.digestInto(W),this.destroy()}digest(){let W=new Uint8Array(this.oHash.outputLen);return this.digestInto(W),W}_cloneInto(W){W||(W=Object.create(Object.getPrototypeOf(this),{}));let{oHash:G,iHash:X,finished:Y,destroyed:Z,blockLen:V,outputLen:Q}=this;return W=W,W.finished=Y,W.destroyed=Z,W.blockLen=V,W.outputLen=Q,W.oHash=G._cloneInto(W.oHash),W.iHash=X._cloneInto(W.iHash),W}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var hj=(W,G,X)=>new uj(W,G).update(X).digest();hj.create=(W,G)=>new uj(W,G);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var OY=BigInt(0),wG=BigInt(1);function EQ(W,G){let X=G.negate();return W?X:G}function ON(W,G){let X=AN(W.Fp,G.map((Y)=>Y.Z));return G.map((Y,Z)=>W.fromAffine(Y.toAffine(X[Z])))}function nE(W,G){if(!Number.isSafeInteger(W)||W<=0||W>G)throw Error("invalid window size, expected [1.."+G+"], got W="+W)}function bj(W,G){nE(W,G);let X=Math.ceil(G/W)+1,Y=2**(W-1),Z=2**W,V=f6(W),Q=BigInt(W);return{windows:X,windowSize:Y,mask:V,maxNumber:Z,shiftBy:Q}}function lE(W,G,X){let{windowSize:Y,mask:Z,maxNumber:V,shiftBy:Q}=X,J=Number(W&Z),U=W>>Q;if(J>Y)J-=V,U+=wG;let q=G*Y,N=q+Math.abs(J)-1,A=J===0,H=J<0,I=G%2!==0;return{nextN:U,offset:N,isZero:A,isNeg:H,isNegF:I,offsetF:q}}function Ql(W,G){if(!Array.isArray(W))throw Error("array expected");W.forEach((X,Y)=>{if(!(X instanceof G))throw Error("invalid point at index "+Y)})}function Jl(W,G){if(!Array.isArray(W))throw Error("array of scalars expected");W.forEach((X,Y)=>{if(!G.isValid(X))throw Error("invalid scalar at index "+Y)})}var mj=new WeakMap,iE=new WeakMap;function fj(W){return iE.get(W)||1}function dE(W){if(W!==OY)throw Error("invalid wNAF")}class cj{constructor(W,G){this.BASE=W.BASE,this.ZERO=W.ZERO,this.Fn=W.Fn,this.bits=G}_unsafeLadder(W,G,X=this.ZERO){let Y=W;while(G>OY){if(G&wG)X=X.add(Y);Y=Y.double(),G>>=wG}return X}precomputeWindow(W,G){let{windows:X,windowSize:Y}=bj(G,this.bits),Z=[],V=W,Q=V;for(let J=0;J<X;J++){Q=V,Z.push(Q);for(let U=1;U<Y;U++)Q=Q.add(V),Z.push(Q);V=Q.double()}return Z}wNAF(W,G,X){if(!this.Fn.isValid(X))throw Error("invalid scalar");let Y=this.ZERO,Z=this.BASE,V=bj(W,this.bits);for(let Q=0;Q<V.windows;Q++){let{nextN:J,offset:U,isZero:q,isNeg:N,isNegF:A,offsetF:H}=lE(X,Q,V);if(X=J,q)Z=Z.add(EQ(A,G[H]));else Y=Y.add(EQ(N,G[U]))}return dE(X),{p:Y,f:Z}}wNAFUnsafe(W,G,X,Y=this.ZERO){let Z=bj(W,this.bits);for(let V=0;V<Z.windows;V++){if(X===OY)break;let{nextN:Q,offset:J,isZero:U,isNeg:q}=lE(X,V,Z);if(X=Q,U)continue;else{let N=G[J];Y=Y.add(q?N.negate():N)}}return dE(X),Y}getPrecomputes(W,G,X){let Y=mj.get(G);if(!Y){if(Y=this.precomputeWindow(G,W),W!==1){if(typeof X==="function")Y=X(Y);mj.set(G,Y)}}return Y}cached(W,G,X){let Y=fj(W);return this.wNAF(Y,this.getPrecomputes(Y,W,X),G)}unsafe(W,G,X,Y){let Z=fj(W);if(Z===1)return this._unsafeLadder(W,G,Y);return this.wNAFUnsafe(Z,this.getPrecomputes(Z,W,X),G,Y)}createCache(W,G){nE(G,this.bits),iE.set(W,G),mj.delete(W)}hasCache(W){return fj(W)!==1}}function rE(W,G,X,Y){let Z=G,V=W.ZERO,Q=W.ZERO;while(X>OY||Y>OY){if(X&wG)V=V.add(Z);if(Y&wG)Q=Q.add(Z);Z=Z.double(),X>>=wG,Y>>=wG}return{p1:V,p2:Q}}function aE(W,G,X,Y){Ql(X,W),Jl(Y,G);let Z=X.length,V=Y.length;if(Z!==V)throw Error("arrays of points and scalars must have equal length");let Q=W.ZERO,J=HN(BigInt(Z)),U=1;if(J>12)U=J-3;else if(J>4)U=J-2;else if(J>0)U=2;let q=f6(U),N=Array(Number(q)+1).fill(Q),A=Math.floor((G.BITS-1)/U)*U,H=Q;for(let I=A;I>=0;I-=U){N.fill(Q);for(let C=0;C<V;C++){let D=Y[C],x=Number(D>>BigInt(I)&q);N[x]=N[x].add(X[C])}let w=Q;for(let C=N.length-1,D=Q;C>0;C--)D=D.add(N[C]),w=w.add(D);if(H=H.add(w),I!==0)for(let C=0;C<U;C++)H=H.double()}return H}function oE(W,G,X){if(G){if(G.ORDER!==W)throw Error("Field.ORDER must match order: Fp == p, Fn == n");return kj(G),G}else return T5(W,{isLE:X})}function sE(W,G,X={},Y){if(Y===void 0)Y=W==="edwards";if(!G||typeof G!=="object")throw Error(`expected valid ${W} CURVE object`);for(let U of["p","n","h"]){let q=G[U];if(!(typeof q==="bigint"&&q>OY))throw Error(`CURVE.${U} must be positive bigint`)}let Z=oE(G.p,X.Fp,Y),V=oE(G.n,X.Fn,Y),J=["Gx","Gy","a",W==="weierstrass"?"b":"d"];for(let U of J)if(!Z.isValid(G[U]))throw Error(`CURVE.${U} must be valid field element of CURVE.Fp`);return G=Object.freeze(Object.assign({},G)),{CURVE:G,Fp:Z,Fn:V}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var tE=(W,G)=>(W+(W>=0?G:-G)/W$)/G;function Ul(W,G,X){let[[Y,Z],[V,Q]]=G,J=tE(Q*W,X),U=tE(-Z*W,X),q=W-J*Y-U*V,N=-J*Z-U*Q,A=q<$4,H=N<$4;if(A)q=-q;if(H)N=-N;let I=f6(Math.ceil(HN(X)/2))+KY;if(q<$4||q>=I||N<$4||N>=I)throw Error("splitScalar (endomorphism): failed, k="+W);return{k1neg:A,k1:q,k2neg:H,k2:N}}function lj(W){if(!["compact","recovered","der"].includes(W))throw Error('Signature format must be "compact", "recovered", or "der"');return W}function pj(W,G){let X={};for(let Y of Object.keys(G))X[Y]=W[Y]===void 0?G[Y]:W[Y];if(MQ(X.lowS,"lowS"),MQ(X.prehash,"prehash"),X.format!==void 0)lj(X.format);return X}class eE extends Error{constructor(W=""){super(W)}}var E4={Err:eE,_tlv:{encode:(W,G)=>{let{Err:X}=E4;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length&1)throw new X("tlv.encode: unpadded data");let Y=G.length/2,Z=TQ(Y);if(Z.length/2&128)throw new X("tlv.encode: long form length too big");let V=Y>127?TQ(Z.length/2|128):"";return TQ(W)+V+Z+G},decode(W,G){let{Err:X}=E4,Y=0;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length<2||G[Y++]!==W)throw new X("tlv.decode: wrong tlv");let Z=G[Y++],V=!!(Z&128),Q=0;if(!V)Q=Z;else{let U=Z&127;if(!U)throw new X("tlv.decode(long): indefinite length not supported");if(U>4)throw new X("tlv.decode(long): byte length is too big");let q=G.subarray(Y,Y+U);if(q.length!==U)throw new X("tlv.decode: length bytes not complete");if(q[0]===0)throw new X("tlv.decode(long): zero leftmost byte");for(let N of q)Q=Q<<8|N;if(Y+=U,Q<128)throw new X("tlv.decode(long): not minimal encoding")}let J=G.subarray(Y,Y+Q);if(J.length!==Q)throw new X("tlv.decode: wrong value length");return{v:J,l:G.subarray(Y+Q)}}},_int:{encode(W){let{Err:G}=E4;if(W<$4)throw new G("integer: negative integers are not allowed");let X=TQ(W);if(Number.parseInt(X[0],16)&8)X="00"+X;if(X.length&1)throw new G("unexpected DER parsing assertion: unpadded hex");return X},decode(W){let{Err:G}=E4;if(W[0]&128)throw new G("invalid signature integer: negative");if(W[0]===0&&!(W[1]&128))throw new G("invalid signature integer: unnecessary leading zero");return L4(W)}},toSig(W){let{Err:G,_int:X,_tlv:Y}=E4,Z=B8("signature",W),{v:V,l:Q}=Y.decode(48,Z);if(Q.length)throw new G("invalid signature: left bytes after parsing");let{v:J,l:U}=Y.decode(2,V),{v:q,l:N}=Y.decode(2,U);if(N.length)throw new G("invalid signature: left bytes after parsing");return{r:X.decode(J),s:X.decode(q)}},hexFromSig(W){let{_tlv:G,_int:X}=E4,Y=G.encode(2,X.encode(W.r)),Z=G.encode(2,X.encode(W.s)),V=Y+Z;return G.encode(48,V)}},$4=BigInt(0),KY=BigInt(1),W$=BigInt(2),KN=BigInt(3),ql=BigInt(4);function d6(W,G){let{BYTES:X}=W,Y;if(typeof G==="bigint")Y=G;else{let Z=B8("private key",G);try{Y=W.fromBytes(Z)}catch(V){throw Error(`invalid private key: expected ui8a of size ${X}, got ${typeof G}`)}}if(!W.isValidNot0(Y))throw Error("invalid private key: out of range [1..N-1]");return Y}function Nl(W,G={}){let X=sE("weierstrass",W,G),{Fp:Y,Fn:Z}=X,V=X.CURVE,{h:Q,n:J}=V;RQ(G,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:U}=G;if(U){if(!Y.is0(V.a)||typeof U.beta!=="bigint"||!Array.isArray(U.basises))throw Error('invalid endo: expected "beta": bigint and "basises": array')}let q=X$(Y,Z);function N(){if(!Y.isOdd)throw Error("compression is not supported: Field does not have .isOdd()")}function A(y,o,B){let{x:R,y:_}=o.toAffine(),S=Y.toBytes(R);if(MQ(B,"isCompressed"),B){N();let v=!Y.isOdd(_);return o9(G$(v),S)}else return o9(Uint8Array.of(4),S,Y.toBytes(_))}function H(y){m6(y,void 0,"Point");let{publicKey:o,publicKeyUncompressed:B}=q,R=y.length,_=y[0],S=y.subarray(1);if(R===o&&(_===2||_===3)){let v=Y.fromBytes(S);if(!Y.isValid(v))throw Error("bad point: is not on curve, wrong x");let P=C(v),E;try{E=Y.sqrt(P)}catch(f){let e=f instanceof Error?": "+f.message:"";throw Error("bad point: is not on curve, sqrt error"+e)}N();let b=Y.isOdd(E);if((_&1)===1!==b)E=Y.neg(E);return{x:v,y:E}}else if(R===B&&_===4){let v=Y.BYTES,P=Y.fromBytes(S.subarray(0,v)),E=Y.fromBytes(S.subarray(v,v*2));if(!D(P,E))throw Error("bad point: is not on curve");return{x:P,y:E}}else throw Error(`bad point: got length ${R}, expected compressed=${o} or uncompressed=${B}`)}let I=G.toBytes||A,w=G.fromBytes||H;function C(y){let o=Y.sqr(y),B=Y.mul(o,y);return Y.add(Y.add(B,Y.mul(y,V.a)),V.b)}function D(y,o){let B=Y.sqr(o),R=C(y);return Y.eql(B,R)}if(!D(V.Gx,V.Gy))throw Error("bad curve params: generator point");let x=Y.mul(Y.pow(V.a,KN),ql),h=Y.mul(Y.sqr(V.b),BigInt(27));if(Y.is0(Y.add(x,h)))throw Error("bad curve params: a or b");function l(y,o,B=!1){if(!Y.isValid(o)||B&&Y.is0(o))throw Error(`bad point coordinate ${y}`);return o}function u(y){if(!(y instanceof m))throw Error("ProjectivePoint expected")}function n(y){if(!U||!U.basises)throw Error("no endo");return Ul(y,U.basises,Z.ORDER)}let c=Sj((y,o)=>{let{X:B,Y:R,Z:_}=y;if(Y.eql(_,Y.ONE))return{x:B,y:R};let S=y.is0();if(o==null)o=S?Y.ONE:Y.inv(_);let v=Y.mul(B,o),P=Y.mul(R,o),E=Y.mul(_,o);if(S)return{x:Y.ZERO,y:Y.ZERO};if(!Y.eql(E,Y.ONE))throw Error("invZ was invalid");return{x:v,y:P}}),p=Sj((y)=>{if(y.is0()){if(G.allowInfinityPoint&&!Y.is0(y.Y))return;throw Error("bad point: ZERO")}let{x:o,y:B}=y.toAffine();if(!Y.isValid(o)||!Y.isValid(B))throw Error("bad point: x or y not field elements");if(!D(o,B))throw Error("bad point: equation left != right");if(!y.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});function W0(y,o,B,R,_){return B=new m(Y.mul(B.X,y),B.Y,B.Z),o=EQ(R,o),B=EQ(_,B),o.add(B)}class m{constructor(y,o,B){this.X=l("x",y),this.Y=l("y",o,!0),this.Z=l("z",B),Object.freeze(this)}static CURVE(){return V}static fromAffine(y){let{x:o,y:B}=y||{};if(!y||!Y.isValid(o)||!Y.isValid(B))throw Error("invalid affine point");if(y instanceof m)throw Error("projective point not allowed");if(Y.is0(o)&&Y.is0(B))return m.ZERO;return new m(o,B,Y.ONE)}static fromBytes(y){let o=m.fromAffine(w(m6(y,void 0,"point")));return o.assertValidity(),o}static fromHex(y){return m.fromBytes(B8("pointHex",y))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(y=8,o=!0){if(U0.createCache(this,y),!o)this.multiply(KN);return this}assertValidity(){p(this)}hasEvenY(){let{y}=this.toAffine();if(!Y.isOdd)throw Error("Field doesn't support isOdd");return!Y.isOdd(y)}equals(y){u(y);let{X:o,Y:B,Z:R}=this,{X:_,Y:S,Z:v}=y,P=Y.eql(Y.mul(o,v),Y.mul(_,R)),E=Y.eql(Y.mul(B,v),Y.mul(S,R));return P&&E}negate(){return new m(this.X,Y.neg(this.Y),this.Z)}double(){let{a:y,b:o}=V,B=Y.mul(o,KN),{X:R,Y:_,Z:S}=this,v=Y.ZERO,P=Y.ZERO,E=Y.ZERO,b=Y.mul(R,R),k=Y.mul(_,_),f=Y.mul(S,S),e=Y.mul(R,_);return e=Y.add(e,e),E=Y.mul(R,S),E=Y.add(E,E),v=Y.mul(y,E),P=Y.mul(B,f),P=Y.add(v,P),v=Y.sub(k,P),P=Y.add(k,P),P=Y.mul(v,P),v=Y.mul(e,v),E=Y.mul(B,E),f=Y.mul(y,f),e=Y.sub(b,f),e=Y.mul(y,e),e=Y.add(e,E),E=Y.add(b,b),b=Y.add(E,b),b=Y.add(b,f),b=Y.mul(b,e),P=Y.add(P,b),f=Y.mul(_,S),f=Y.add(f,f),b=Y.mul(f,e),v=Y.sub(v,b),E=Y.mul(f,k),E=Y.add(E,E),E=Y.add(E,E),new m(v,P,E)}add(y){u(y);let{X:o,Y:B,Z:R}=this,{X:_,Y:S,Z:v}=y,P=Y.ZERO,E=Y.ZERO,b=Y.ZERO,k=V.a,f=Y.mul(V.b,KN),e=Y.mul(o,_),q0=Y.mul(B,S),Q0=Y.mul(R,v),$0=Y.add(o,B),D0=Y.add(_,S);$0=Y.mul($0,D0),D0=Y.add(e,q0),$0=Y.sub($0,D0),D0=Y.add(o,R);let x0=Y.add(_,v);return D0=Y.mul(D0,x0),x0=Y.add(e,Q0),D0=Y.sub(D0,x0),x0=Y.add(B,R),P=Y.add(S,v),x0=Y.mul(x0,P),P=Y.add(q0,Q0),x0=Y.sub(x0,P),b=Y.mul(k,D0),P=Y.mul(f,Q0),b=Y.add(P,b),P=Y.sub(q0,b),b=Y.add(q0,b),E=Y.mul(P,b),q0=Y.add(e,e),q0=Y.add(q0,e),Q0=Y.mul(k,Q0),D0=Y.mul(f,D0),q0=Y.add(q0,Q0),Q0=Y.sub(e,Q0),Q0=Y.mul(k,Q0),D0=Y.add(D0,Q0),e=Y.mul(q0,D0),E=Y.add(E,e),e=Y.mul(x0,D0),P=Y.mul($0,P),P=Y.sub(P,e),e=Y.mul($0,q0),b=Y.mul(x0,b),b=Y.add(b,e),new m(P,E,b)}subtract(y){return this.add(y.negate())}is0(){return this.equals(m.ZERO)}multiply(y){let{endo:o}=G;if(!Z.isValidNot0(y))throw Error("invalid scalar: out of range");let B,R,_=(S)=>U0.cached(this,S,(v)=>ON(m,v));if(o){let{k1neg:S,k1:v,k2neg:P,k2:E}=n(y),{p:b,f:k}=_(v),{p:f,f:e}=_(E);R=k.add(e),B=W0(o.beta,b,f,S,P)}else{let{p:S,f:v}=_(y);B=S,R=v}return ON(m,[B,R])[0]}multiplyUnsafe(y){let{endo:o}=G,B=this;if(!Z.isValid(y))throw Error("invalid scalar: out of range");if(y===$4||B.is0())return m.ZERO;if(y===KY)return B;if(U0.hasCache(this))return this.multiply(y);if(o){let{k1neg:R,k1:_,k2neg:S,k2:v}=n(y),{p1:P,p2:E}=rE(m,B,_,v);return W0(o.beta,P,E,R,S)}else return U0.unsafe(B,y)}multiplyAndAddUnsafe(y,o,B){let R=this.multiplyUnsafe(o).add(y.multiplyUnsafe(B));return R.is0()?void 0:R}toAffine(y){return c(this,y)}isTorsionFree(){let{isTorsionFree:y}=G;if(Q===KY)return!0;if(y)return y(m,this);return U0.unsafe(this,J).is0()}clearCofactor(){let{clearCofactor:y}=G;if(Q===KY)return this;if(y)return y(m,this);return this.multiplyUnsafe(Q)}isSmallOrder(){return this.multiplyUnsafe(Q).is0()}toBytes(y=!0){return MQ(y,"isCompressed"),this.assertValidity(),I(m,this,y)}toHex(y=!0){return R4(this.toBytes(y))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(y=!0){return this.toBytes(y)}_setWindowSize(y){this.precompute(y)}static normalizeZ(y){return ON(m,y)}static msm(y,o){return aE(m,Z,y,o)}static fromPrivateKey(y){return m.BASE.multiply(d6(Z,y))}}m.BASE=new m(V.Gx,V.Gy,Y.ONE),m.ZERO=new m(Y.ZERO,Y.ONE,Y.ZERO),m.Fp=Y,m.Fn=Z;let Y0=Z.BITS,U0=new cj(m,G.endo?Math.ceil(Y0/2):Y0);return m.BASE.precompute(8),m}function G$(W){return Uint8Array.of(W?2:3)}function X$(W,G){return{secretKey:G.BYTES,publicKey:1+W.BYTES,publicKeyUncompressed:1+2*W.BYTES,publicKeyHasPrefix:!0,signature:2*G.BYTES}}function Hl(W,G={}){let{Fn:X}=W,Y=G.randomBytes||HG,Z=Object.assign(X$(W.Fp,X),{seed:_j(X.ORDER)});function V(I){try{return!!d6(X,I)}catch(w){return!1}}function Q(I,w){let{publicKey:C,publicKeyUncompressed:D}=Z;try{let x=I.length;if(w===!0&&x!==C)return!1;if(w===!1&&x!==D)return!1;return!!W.fromBytes(I)}catch(x){return!1}}function J(I=Y(Z.seed)){return IN(m6(I,Z.seed,"seed"),X.ORDER)}function U(I,w=!0){return W.BASE.multiply(d6(X,I)).toBytes(w)}function q(I){let w=J(I);return{secretKey:w,publicKey:U(w)}}function N(I){if(typeof I==="bigint")return!1;if(I instanceof W)return!0;let{secretKey:w,publicKey:C,publicKeyUncompressed:D}=Z;if(X.allowedLengths||w===C)return;let x=B8("key",I).length;return x===C||x===D}function A(I,w,C=!0){if(N(I)===!0)throw Error("first arg must be private key");if(N(w)===!1)throw Error("second arg must be public key");let D=d6(X,I);return W.fromHex(w).multiply(D).toBytes(C)}return Object.freeze({getPublicKey:U,getSharedSecret:A,keygen:q,Point:W,utils:{isValidSecretKey:V,isValidPublicKey:Q,randomSecretKey:J,isValidPrivateKey:V,randomPrivateKey:J,normPrivateKeyToScalar:(I)=>d6(X,I),precompute(I=8,w=W.BASE){return w.precompute(I,!1)}},lengths:Z})}function Al(W,G,X={}){JN(G),RQ(X,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let Y=X.randomBytes||HG,Z=X.hmac||((B,...R)=>hj(G,B,o9(...R))),{Fp:V,Fn:Q}=W,{ORDER:J,BITS:U}=Q,{keygen:q,getPublicKey:N,getSharedSecret:A,utils:H,lengths:I}=Hl(W,X),w={prehash:!1,lowS:typeof X.lowS==="boolean"?X.lowS:!1,format:void 0,extraEntropy:!1},C="compact";function D(B){let R=J>>KY;return B>R}function x(B,R){if(!Q.isValidNot0(R))throw Error(`invalid signature ${B}: out of range 1..Point.Fn.ORDER`);return R}function h(B,R){lj(R);let _=I.signature,S=R==="compact"?_:R==="recovered"?_+1:void 0;return m6(B,S,`${R} signature`)}class l{constructor(B,R,_){if(this.r=x("r",B),this.s=x("s",R),_!=null)this.recovery=_;Object.freeze(this)}static fromBytes(B,R=C){h(B,R);let _;if(R==="der"){let{r:E,s:b}=E4.toSig(m6(B));return new l(E,b)}if(R==="recovered")_=B[0],R="compact",B=B.subarray(1);let S=Q.BYTES,v=B.subarray(0,S),P=B.subarray(S,S*2);return new l(Q.fromBytes(v),Q.fromBytes(P),_)}static fromHex(B,R){return this.fromBytes(NG(B),R)}addRecoveryBit(B){return new l(this.r,this.s,B)}recoverPublicKey(B){let R=V.ORDER,{r:_,s:S,recovery:v}=this;if(v==null||![0,1,2,3].includes(v))throw Error("recovery id invalid");if(J*W$<R&&v>1)throw Error("recovery id is ambiguous for h>1 curve");let E=v===2||v===3?_+J:_;if(!V.isValid(E))throw Error("recovery id 2 or 3 invalid");let b=V.toBytes(E),k=W.fromBytes(o9(G$((v&1)===0),b)),f=Q.inv(E),e=n(B8("msgHash",B)),q0=Q.create(-e*f),Q0=Q.create(S*f),$0=W.BASE.multiplyUnsafe(q0).add(k.multiplyUnsafe(Q0));if($0.is0())throw Error("point at infinify");return $0.assertValidity(),$0}hasHighS(){return D(this.s)}toBytes(B=C){if(lj(B),B==="der")return NG(E4.hexFromSig(this));let R=Q.toBytes(this.r),_=Q.toBytes(this.s);if(B==="recovered"){if(this.recovery==null)throw Error("recovery bit must be present");return o9(Uint8Array.of(this.recovery),R,_)}return o9(R,_)}toHex(B){return R4(this.toBytes(B))}assertValidity(){}static fromCompact(B){return l.fromBytes(B8("sig",B),"compact")}static fromDER(B){return l.fromBytes(B8("sig",B),"der")}normalizeS(){return this.hasHighS()?new l(this.r,Q.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return R4(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return R4(this.toBytes("compact"))}}let u=X.bits2int||function(R){if(R.length>8192)throw Error("input is too large");let _=L4(R),S=R.length*8-U;return S>0?_>>BigInt(S):_},n=X.bits2int_modN||function(R){return Q.create(u(R))},c=f6(U);function p(B){return OE("num < 2^"+U,B,$4,c),Q.toBytes(B)}function W0(B,R){return m6(B,void 0,"message"),R?m6(G(B),void 0,"prehashed message"):B}function m(B,R,_){if(["recovered","canonical"].some((Q0)=>(Q0 in _)))throw Error("sign() legacy options not supported");let{lowS:S,prehash:v,extraEntropy:P}=pj(_,w);B=W0(B,v);let E=n(B),b=d6(Q,R),k=[p(b),p(E)];if(P!=null&&P!==!1){let Q0=P===!0?Y(I.secretKey):P;k.push(B8("extraEntropy",Q0))}let f=o9(...k),e=E;function q0(Q0){let $0=u(Q0);if(!Q.isValidNot0($0))return;let D0=Q.inv($0),x0=W.BASE.multiply($0).toAffine(),N1=Q.create(x0.x);if(N1===$4)return;let U1=Q.create(D0*Q.create(e+N1*b));if(U1===$4)return;let J0=(x0.x===N1?0:2)|Number(x0.y&KY),B0=U1;if(S&&D(U1))B0=Q.neg(U1),J0^=1;return new l(N1,B0,J0)}return{seed:f,k2sig:q0}}function Y0(B,R,_={}){B=B8("message",B);let{seed:S,k2sig:v}=m(B,R,_);return KE(G.outputLen,Q.BYTES,Z)(S,v)}function U0(B){let R=void 0,_=typeof B==="string"||qG(B),S=!_&&B!==null&&typeof B==="object"&&typeof B.r==="bigint"&&typeof B.s==="bigint";if(!_&&!S)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(S)R=new l(B.r,B.s);else if(_){try{R=l.fromBytes(B8("sig",B),"der")}catch(v){if(!(v instanceof E4.Err))throw v}if(!R)try{R=l.fromBytes(B8("sig",B),"compact")}catch(v){return!1}}if(!R)return!1;return R}function y(B,R,_,S={}){let{lowS:v,prehash:P,format:E}=pj(S,w);if(_=B8("publicKey",_),R=W0(B8("message",R),P),"strict"in S)throw Error("options.strict was renamed to lowS");let b=E===void 0?U0(B):l.fromBytes(B8("sig",B),E);if(b===!1)return!1;try{let k=W.fromBytes(_);if(v&&b.hasHighS())return!1;let{r:f,s:e}=b,q0=n(R),Q0=Q.inv(e),$0=Q.create(q0*Q0),D0=Q.create(f*Q0),x0=W.BASE.multiplyUnsafe($0).add(k.multiplyUnsafe(D0));if(x0.is0())return!1;return Q.create(x0.x)===f}catch(k){return!1}}function o(B,R,_={}){let{prehash:S}=pj(_,w);return R=W0(R,S),l.fromBytes(B,"recovered").recoverPublicKey(R).toBytes()}return Object.freeze({keygen:q,getPublicKey:N,getSharedSecret:A,utils:H,lengths:I,Point:W,sign:Y0,verify:y,recoverPublicKey:o,Signature:l,hash:G})}function zl(W){let G={a:W.a,b:W.b,p:W.Fp.ORDER,n:W.n,h:W.h,Gx:W.Gx,Gy:W.Gy},X=W.Fp,Y=W.allowedPrivateKeyLengths?Array.from(new Set(W.allowedPrivateKeyLengths.map((Q)=>Math.ceil(Q/2)))):void 0,Z=T5(G.n,{BITS:W.nBitLength,allowedLengths:Y,modFromBytes:W.wrapPrivateKey}),V={Fp:X,Fn:Z,allowInfinityPoint:W.allowInfinityPoint,endo:W.endo,isTorsionFree:W.isTorsionFree,clearCofactor:W.clearCofactor,fromBytes:W.fromBytes,toBytes:W.toBytes};return{CURVE:G,curveOpts:V}}function Il(W){let{CURVE:G,curveOpts:X}=zl(W),Y={hmac:W.hmac,randomBytes:W.randomBytes,lowS:W.lowS,bits2int:W.bits2int,bits2int_modN:W.bits2int_modN};return{CURVE:G,curveOpts:X,hash:W.hash,ecdsaOpts:Y}}function wl(W,G){let X=G.Point;return Object.assign({},G,{ProjectivePoint:X,CURVE:Object.assign({},W,zN(X.Fn.ORDER,X.Fn.BITS))})}function Y$(W){let{CURVE:G,curveOpts:X,hash:Y,ecdsaOpts:Z}=Il(W),V=Nl(G,X),Q=Al(V,Y,Z);return wl(W,Q)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function CY(W,G){let X=(Y)=>Y$({...W,hash:Y});return{...X(G),create:X}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Z$={p:BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),h:BigInt(1),a:BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5")},V$={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff"),n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),h:BigInt(1),a:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc"),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f")},Q$={p:BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),h:BigInt(1),a:BigInt("0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650")},jl=T5(Z$.p),Ol=T5(V$.p),Kl=T5(Q$.p);var J$=CY({...Z$,Fp:jl,lowS:!1},jY);var TN0=CY({...V$,Fp:Ol,lowS:!1},pE);var PN0=CY({...Q$,Fp:Kl,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},cE);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var CN=J$;var Z9=v1(I8(),1),W7=v1(I8(),1),g2=v1(I8(),1),MG=v1(I8(),1),f4=v1(I8(),1),c2=v1(xU(),1),PG=v1(I8(),1),i6=v1(I8(),1),RG=v1(I8(),1),fY=v1(I8(),1),r6=v1(I8(),1),LG=v1(I8(),1),G7=v1(I8(),1),X7=v1(I8(),1),zH=v1(I8(),1),e5=v1(I8(),1),a2=v1(I8(),1),Ko=v1(H$(),1);import{randomBytes as ed}from"crypto";import{setTimeout as Wo}from"timers/promises";import{createCipheriv as Ho,createDecipheriv as Ao}from"crypto";var vN=v1(z$(),1),BG=v1(I8(),1),CG=v1(I8(),1),f7=v1(I8(),1),b7=v1(I8(),1),EG=v1(I8(),1);import{createHmac as VO}from"crypto";import{createCipheriv as WF,createDecipheriv as GF,createHmac as XF,timingSafeEqual as io}from"crypto";import{createCipheriv as QF,createDecipheriv as JF}from"crypto";import{setTimeout as Zn}from"timers/promises";import{randomBytes as qn}from"crypto";import{createHmac as jS}from"crypto";import{randomBytes as OS}from"crypto";var PN="undefined",RY=PN!==typeof Buffer&&Buffer,PY=PN!==typeof Uint8Array&&Uint8Array,TN=PN!==typeof ArrayBuffer&&ArrayBuffer,I$=[0,0,0,0,0,0,0,0],Ml=Array.isArray||Fl,TY=4294967296,Tl=16777216,LY,RN=j$("Uint64BE",!0,!0),nj=j$("Int64BE",!0,!1);function j$(W,G,X){var Y=G?0:4,Z=G?4:0,V=G?0:3,Q=G?1:2,J=G?2:1,U=G?3:0,q=G?Ll:El,N=G?Bl:$l,A=w.prototype,H="is"+W,I="_"+H;if(A.buffer=void 0,A.offset=0,A[I]=!0,A.toNumber=h,A.toString=l,A.toJSON=h,A.toArray=Pl,RY)A.toBuffer=Rl;if(PY)A.toArrayBuffer=O$;return w[H]=C,w;function w(c,p,W0,m){if(!(this instanceof w))return new w(c,p,W0,m);return D(this,c,p,W0,m)}function C(c){return!!(c&&c[I])}function D(c,p,W0,m,Y0){if(PY&&TN){if(p instanceof TN)p=new PY(p);if(m instanceof TN)m=new PY(m)}if(!p&&!W0&&!m&&!LY){c.buffer=K$(I$,0);return}if(!w$(p,W0)){var U0=LY||Array;Y0=W0,m=p,W0=0,p=LY===RY?RY.alloc(8):new U0(8)}if(c.buffer=p,c.offset=W0|=0,PN===typeof m)return;if(typeof m==="string")x(p,W0,m,Y0||10);else if(w$(m,Y0))oj(p,W0,m,Y0);else if(typeof Y0==="number")u(p,W0+Y,m),u(p,W0+Z,Y0);else if(m>0)q(p,W0,m);else if(m<0)N(p,W0,m);else oj(p,W0,I$,0)}function x(c,p,W0,m){var Y0=0,U0=W0.length,y=0,o=0;if(W0[0]==="-")Y0++;var B=Y0;while(Y0<U0){var R=parseInt(W0[Y0++],m);if(!(R>=0))break;o=o*m+R,y=y*m+Math.floor(o/TY),o%=TY}if(B)if(y=~y,o)o=TY-o;else y++;u(c,p+Y,y),u(c,p+Z,o)}function h(){var c=this.buffer,p=this.offset,W0=n(c,p+Y),m=n(c,p+Z);if(!X)W0|=0;return W0?W0*TY+m:m}function l(c){var p=this.buffer,W0=this.offset,m=n(p,W0+Y),Y0=n(p,W0+Z),U0="",y=!X&&m&2147483648;if(y)m=~m,Y0=TY-Y0;c=c||10;while(!0){var o=m%c*TY+Y0;if(m=Math.floor(m/c),Y0=Math.floor(o/c),U0=(o%c).toString(c)+U0,!m&&!Y0)break}if(y)U0="-"+U0;return U0}function u(c,p,W0){c[p+U]=W0&255,W0=W0>>8,c[p+J]=W0&255,W0=W0>>8,c[p+Q]=W0&255,W0=W0>>8,c[p+V]=W0&255}function n(c,p){return c[p+V]*Tl+(c[p+Q]<<16)+(c[p+J]<<8)+c[p+U]}}function Pl(W){var G=this.buffer,X=this.offset;if(LY=null,W!==!1&&Ml(G))return G.length===8?G:G.slice(X,X+8);return K$(G,X)}function Rl(W){var G=this.buffer,X=this.offset;if(LY=RY,W!==!1&&RY.isBuffer(G))return G.length===8?G:G.slice(X,X+8);return RY.from(O$.call(this,W))}function O$(W){var G=this.buffer,X=this.offset,Y=G.buffer;if(LY=PY,W!==!1&&!G.offset&&Y instanceof TN)return Y.byteLength===8?Y:Y.slice(X,X+8);var Z=new PY(8);return oj(Z,0,G,X),Z.buffer}function w$(W,G){var X=W&&W.length;return G|=0,X&&G+8<=X&&typeof W[G]!=="string"}function oj(W,G,X,Y){G|=0,Y|=0;for(var Z=0;Z<8;Z++)W[G++]=X[Y++]&255}function K$(W,G){return Array.prototype.slice.call(W,G,G+8)}function Ll(W,G,X){var Y=G+8;while(Y>G)W[--Y]=X&255,X/=256}function Bl(W,G,X){var Y=G+8;X++;while(Y>G)W[--Y]=-X&255^255,X/=256}function El(W,G,X){var Y=G+8;while(G<Y)W[G++]=X&255,X/=256}function $l(W,G,X){var Y=G+8;X++;while(G<Y)W[G++]=-X&255^255,X/=256}function Fl(W){return!!W&&Object.prototype.toString.call(W)=="[object Array]"}var aQ=v1(rj(),1);import{createHash as En}from"crypto";import{setTimeout as $n}from"timers/promises";import{createHash as gn}from"crypto";import{isIPv4 as EF}from"net";import{randomBytes as un}from"crypto";import{isIPv4 as $F}from"net";var bN=v1(M$(),1),LS=v1(g$(),1),ES=v1(rj(),1);import*as yO from"timers/promises";import{randomUUID as bn}from"crypto";import*as BS from"os";import{EventEmitter as sn}from"events";import{randomUUID as Ui}from"crypto";import{setTimeout as IO}from"timers/promises";import{createHash as qi}from"crypto";import{performance as FN}from"perf_hooks";import{randomUUID as Ni}from"crypto";import{randomUUID as bS}from"crypto";import{setTimeout as ki}from"timers/promises";import{randomBytes as gi}from"crypto";import{isIPv4 as ui}from"net";var sQ=v1(gz(),1);import{randomUUID as hi}from"crypto";import{setTimeout as bi}from"timers/promises";import{randomUUID as li}from"crypto";import{randomUUID as ri}from"crypto";import{createHmac as iF,randomBytes as ai}from"crypto";import{randomBytes as Q2}from"crypto";import{randomUUID as J2}from"crypto";import{setTimeout as U2}from"timers/promises";import{randomUUID as Rr}from"crypto";function z2(){return a1.Unpack("!H",A2(2))[0]}function DO(){return a1.Unpack("!L",A2(4))[0]}var nN=class{constructor(W){this.bitLength=W}value=0;set(W,G,X){return X&=(1<<W)-1,this.value|=X<<this.bitLength-W-G,this}get buffer(){let W=Math.ceil(this.bitLength/8),G=Buffer.alloc(W);return G.writeUIntBE(this.value,0,W),G}},I2=class{constructor(W){if(this.bitLength=W,W>32)throw Error()}_value=0n;offset=0n;set(W,G=1){let X=BigInt(W),Y=BigInt(G);return X&=(1n<<Y)-1n,this._value|=X<<BigInt(this.bitLength)-Y-this.offset,this.offset+=Y,this}get value(){return Number(this._value)}get buffer(){let W=Math.ceil(this.bitLength/8),G=Buffer.alloc(W);return G.writeUIntBE(this.value,0,W),G}};function g8(W,G,X=1){let Y=W.toString(2).split("");Y=[...Array(8-Y.length).fill("0"),...Y];let Z=Y.slice(G,G+X).join("");return Number.parseInt(Z,2)}function E8(W,G){return _N(W)(G)}function _N(W,G){let X=W.reduce((Z,V)=>Z+V,0),Y=G?Buffer.alloc(X):void 0;return(Z)=>{let V=Y||Buffer.alloc(X),Q=0;return Z.forEach((J,U)=>{let q=W[U];if(q===8)V.writeBigUInt64BE(J,Q);else V.writeUIntBE(J,Q,q);Q+=q}),V}}function r9(W,G){let X=0;return G.map((Y)=>{let Z;if(Y===8)Z=W.readBigUInt64BE(X);else Z=W.readUIntBE(X,Y);return X+=Y,Z})}var cQ=class{constructor(W){this.uint8Array=W}position=0;bitsPending=0;writeBits(W,G){if(W==0)return this;G&=4294967295>>>32-W;let X;if(this.bitsPending>0)if(this.bitsPending>W)this.uint8Array[this.position-1]|=G<<this.bitsPending-W,X=W,this.bitsPending-=W;else if(this.bitsPending==W)this.uint8Array[this.position-1]|=G,X=W,this.bitsPending=0;else this.uint8Array[this.position-1]|=G>>W-this.bitsPending,X=this.bitsPending,this.bitsPending=0;else X=Math.min(8,W),this.bitsPending=8-X,this.uint8Array[this.position++]=G>>W-X<<this.bitsPending;if(W-=X,W>0)this.writeBits(W,G);return this}readBits(W){return this._readBits(W)}_readBits(W,G){if(typeof G>"u")G=0;if(W==0)return G;let X,Y;if(this.bitsPending>0){let Z=this.uint8Array[this.position-1]&255>>8-this.bitsPending;Y=Math.min(this.bitsPending,W),this.bitsPending-=Y,X=Z>>this.bitsPending}else Y=Math.min(8,W),this.bitsPending=8-Y,X=this.uint8Array[this.position++]>>this.bitsPending;return W-=Y,G=G<<Y|X,W>0?this._readBits(W,G):G}seekTo(W){if(this.position=W/8|0,this.bitsPending=W%8,this.bitsPending>0)this.bitsPending=8-this.bitsPending,this.position++}},Kd=3988292384,Cd=2197175160;function w2(W){return typeof W!=="string"}function j2(W){let G=Array(256),X=0;for(let Y=0;Y<256;++Y)X=Y,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,G[Y]=X;return new Int32Array(G)}function O2(W){let G=new Int32Array(4096),X=0,Y=0,Z=0;for(Z=0;Z<256;++Z)G[Z]=W[Z];for(Z=0;Z<256;++Z){Y=W[Z];for(X=256+Z;X<4096;X+=256)Y=G[X]=Y>>>8^W[Y&255]}let V=[];for(Z=1;Z<16;++Z)V[Z-1]=G.subarray(Z*256,Z*256+256);return V}function K2(W,G,X){let Y=G^-1,Z=0,V=W.length,Q=0,J=0;while(Z<V)if(Q=W.charCodeAt(Z++),Q<128)Y=Y>>>8^X[(Y^Q)&255];else if(Q<2048)Y=Y>>>8^X[(Y^(192|Q>>6&31))&255],Y=Y>>>8^X[(Y^(128|Q&63))&255];else if(Q>=55296&&Q<57344)Q=(Q&1023)+64,J=W.charCodeAt(Z++)&1023,Y=Y>>>8^X[(Y^(240|Q>>8&7))&255],Y=Y>>>8^X[(Y^(128|Q>>2&63))&255],Y=Y>>>8^X[(Y^(128|J>>6&15|(Q&3)<<4))&255],Y=Y>>>8^X[(Y^(128|J&63))&255];else Y=Y>>>8^X[(Y^(224|Q>>12&15))&255],Y=Y>>>8^X[(Y^(128|Q>>6&63))&255],Y=Y>>>8^X[(Y^(128|Q&63))&255];return~Y>>>0}function C2(W,G,X,Y){let[Z,V,Q,J,U,q,N,A,H,I,w,C,D,x,h]=Y,l=G^-1,u=0,n=W.length-15;while(u<n)l=h[W[u++]^l&255]^x[W[u++]^l>>>8&255]^D[W[u++]^l>>>16&255]^C[W[u++]^l>>>24]^w[W[u++]]^I[W[u++]]^H[W[u++]]^A[W[u++]]^N[W[u++]]^q[W[u++]]^U[W[u++]]^J[W[u++]]^Q[W[u++]]^V[W[u++]]^Z[W[u++]]^X[W[u++]];for(n+=15;u<n;)l=l>>>8^X[(l^W[u++])&255];return~l>>>0}var MO=j2(Kd),Dd=O2(MO),TO=j2(Cd),Md=O2(TO);function Td(W,G=0){if(w2(W))return C2(W,G,MO,Dd);return K2(W,G,MO)}function D2(W,G=0){if(w2(W))return C2(W,G,TO,Md);return K2(W,G,TO)}function Pd(W,G){return W+G&255}function M9(W,G){return W+G&65535}function yY(W,G){return Number(BigInt(W)+BigInt(G)&0xffffffffn)}function Rd(W){return W&16777215}function M2(W,G){return W<G&&G-W>32768||W>G&&W-G<32768}function m4(W,G){return W<G&&G-W>2147483648||W>G&&W-G<2147483648}function bQ(W,G){return W===G||m4(W,G)}var pQ=(W)=>Number.parseInt(W,10);var T2=(W,G)=>G?G[W]:void 0;async function Bd(W,G,X="udp4",Y){let Z;for(let V=W;V<=G;V++){let Q=Ld(X);if(setImmediate(()=>Q.bind({port:V,address:T2(X,Y)})),await new Promise((U)=>{Q.once("error",(q)=>U(q)),Q.once("listening",()=>U())})){await new Promise((U)=>Q.close(()=>U()));continue}if(Z=Q.address()?.port,await new Promise((U)=>Q.close(()=>U())),W<=Z&&Z<=G)break}if(!Z)throw Error("port not found");return Z}function iN(W){if(W==="IPv4")return 4;if(W==="IPv6")return 6;return W}var M1=P2.default.debug,f0=class{event={stack:[],promiseStack:[],eventId:0};ended=!1;onended;onerror=(W)=>{};execute=(...W)=>{if(this.ended)return;for(let G of this.event.stack)G.execute(...W);(async()=>{for(let G of this.event.promiseStack)await G.execute(...W)})().catch((G)=>{this.onerror(G)})};complete=()=>{if(this.ended)return;for(let W of this.event.stack)if(W.complete)W.complete();if(this.allUnsubscribe(),this.ended=!0,this.onended)this.onended(),this.onended=void 0};error=(W)=>{if(this.ended)return;for(let G of this.event.stack)if(G.error)G.error(W);this.allUnsubscribe()};allUnsubscribe=()=>{if(this.ended)throw Error("event completed");this.event={stack:[],promiseStack:[],eventId:0}};subscribe=(W,G,X)=>{let Y=this.event.eventId;this.event.stack.push({execute:W,id:Y,complete:G,error:X}),this.event.eventId++;let Z=()=>{this.event.stack=this.event.stack.filter((Q)=>Q.id!==Y&&Q)};return{unSubscribe:Z,disposer:(Q)=>{Q.push(Z)}}};pipe(W){this.subscribe((...G)=>{W.execute(...G)})}queuingSubscribe=(W,G,X)=>{if(this.ended)throw Error("event completed");let Y=this.event.eventId;this.event.promiseStack.push({execute:W,id:Y,complete:G,error:X}),this.event.eventId++;let Z=()=>{this.event.stack=this.event.stack.filter((Q)=>Q.id!==Y&&Q)};return{unSubscribe:Z,disposer:(Q)=>{Q.push(Z)}}};once=(W,G,X)=>{let Y=this.subscribe((...Z)=>{Y.unSubscribe(),W(...Z)},G,X)};watch=(W,G)=>new Promise((X,Y)=>{let Z=G&&setTimeout(()=>{Y("Event watch timeout")},G),{unSubscribe:V}=this.subscribe((...Q)=>{if(W(...Q)){if(Z)clearTimeout(Z);V(),X(Q)}})});asPromise=(W)=>new Promise((G,X)=>{let Y=W&&setTimeout(()=>{X("Event asPromise timeout")},W);this.once((...Z)=>{if(Y)clearTimeout(Y);G(Z)},()=>{if(Y)clearTimeout(Y);G([])},(Z)=>{if(Y)clearTimeout(Y);X(Z)})});get returnTrigger(){let{execute:W,error:G,complete:X}=this;return{execute:W,error:G,complete:X}}get returnListener(){let{subscribe:W,once:G,asPromise:X}=this;return{subscribe:W,once:G,asPromise:X}}get length(){return this.event.stack.length}},Ed=class{_disposer=[];push(W){this._disposer.push(W)}dispose(){this._disposer.forEach((W)=>W()),this._disposer=[]}},u$=M1("werift-ice:packages/ice/src/transport.ts"),PO=class W{constructor(G,X={}){this.socketType=G,this.options=X,this.socket=$d(G),this.socket.on("message",(Y,Z)=>{if(iN(Z.family)===6)[Z.address]=Z.address.split("%");this.rinfo=Z;try{this.onData(Y,[Z.address,Z.port])}catch(V){u$("onData error",V)}})}type="udp";socket;rinfo;onData=()=>{};closed=!1;static async init(G,X={}){let Y=new W(G,X);return await Y.init(),Y}async init(){let G=T2(this.socketType,this.options.interfaceAddresses);if(this.options.port)this.socket.bind({port:this.options.port,address:G});else if(this.options.portRange){let X=await Bd(this.options.portRange[0],this.options.portRange[1],this.socketType,this.options.interfaceAddresses);this.socket.bind({port:X,address:G})}else this.socket.bind({address:G});await new Promise((X)=>this.socket.once("listening",X))}send=async(G,X)=>{if(X&&!R2.isIP(X[0]))return new Promise((Y,Z)=>{this.socket.send(G,X[1],X[0],(V)=>{if(V)u$("send error",X,G),Z(V);else Y()})});else X=X??[this.rinfo?.address,this.rinfo?.port],this.socket.send(G,X[1],X[0])};get address(){return this.socket.address()}get host(){return this.socket.address().address}get port(){return this.socket.address().port}close=()=>new Promise((G)=>{this.closed=!0,this.socket.once("close",G);try{this.socket.close()}catch(X){G()}})},Sd=class W{constructor(G){this.addr=G,this.connect()}type="tcp";connecting;client;onData=()=>{};closed=!1;connect(){if(this.closed)return;if(this.client)this.client.destroy();this.connecting=new Promise((G,X)=>{try{this.client=Fd({port:this.addr[1],host:this.addr[0]},G)}catch(Y){X(Y)}}),this.client.on("data",(G)=>{let X=[this.client.remoteAddress,this.client.remotePort];this.onData(G,X)}),this.client.on("end",()=>{this.connect()}),this.client.on("error",(G)=>{console.log("error",G)})}async init(){await this.connecting}static async init(G){let X=new W(G);return await X.init(),X}get address(){return{}}send=async(G,X)=>{await this.connecting,this.client.write(G,(Y)=>{if(Y)console.log("err",Y)})};close=async()=>{this.closed=!0,this.client.destroy()}},p4={rsa_1:1,ecdsa_3:3},rN={sha256_4:4},RO={TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_49195:49195,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256_49199:49199},yd=Object.values(RO),a6={x25519_29:29,secp256r1_23:23},L2=Object.values(a6),B2={named_curve_3:3},h$={rsa_pkcs1_sha256:1025,ecdsa_secp256r1_sha256:1027},vd=[1,64],E2=[{hash:rN.sha256_4,signature:p4.rsa_1},{hash:rN.sha256_4,signature:p4.ecdsa_3}],hd=()=>{let W=CN.utils.randomPrivateKey(),G=CN.getPublicKey(W,!1),X=Buffer.from(W),Y=Buffer.from(G);return{privateKey:X,publicKey:Y}},bd=({publicKey:W,privateKey:G})=>{let X=CN.getSharedSecret(G,W);return Buffer.from(X).subarray(1)};function S2(W,G,X){switch(X){case a6.secp256r1_23:return bd({publicKey:W,privateKey:G});case a6.x25519_29:return Buffer.from(F2.default.scalarMult(G,W));default:throw Error()}}function b$(W,G,X){let Y=ud(W,G);return Y.update(X),Y.digest()}function eQ(W,G,X,Y="sha256"){let Z=X,V=[],Q=G;do{Q=b$(Y,W,Q);let J=b$(Y,W,Buffer.concat([Q,G]));V.push(J),X-=J.length}while(X>0);return Buffer.concat(V,Z)}function x2(W,G,X){let Y=Buffer.concat([Buffer.from("master secret"),G,X]);return eQ(W,Y,48)}function k2(W,G){let X=_2("sha256",G),Y="extended master secret";return eQ(W,Buffer.concat([Buffer.from("extended master secret"),X]),48)}function md(W,G,X,Y,Z,V){let Q=V?Y:Z,J=V?Z:Y,U=Buffer.concat([Buffer.from(W),Q,J]);return eQ(X,U,G)}function _2(W,G){return gd(W).update(G).digest()}function y2(W,G,X,Y=12){let Z=_2("sha256",G);return eQ(W,Buffer.concat([Buffer.from(X),Z]),Y)}function fd(W,G){return y2(W,G,"client finished")}function cd(W,G){return y2(W,G,"server finished")}function pd(W,G,X,Y,Z,V,Q="sha256"){let J=Y*2+Z*2,U=W,q=Buffer.concat([X,G]),N=eQ(U,Buffer.concat([Buffer.from("key expansion"),q]),J,Q),A=$2.createDecode(N),H=A.readBuffer(Y),I=A.readBuffer(Y),w=A.readBuffer(Z),C=A.readBuffer(Z),D=Buffer.alloc(V,0),x=Buffer.alloc(V,0);return w.copy(D,0),C.copy(x,0),{clientWriteKey:H,serverWriteKey:I,clientNonce:D,serverNonce:x}}var c4={CLIENT:1,SERVER:2},ld=class{id=0;name;hashAlgorithm;verifyDataLength=12;blockAlgorithm;kx;init(...W){throw Error("not implemented")}encrypt(...W){throw Error("not implemented")}decrypt(...W){throw Error("not implemented")}toString(){return this.name}},LO=_d;y8.set(LO);var aN=class{constructor(W,G,X,Y){if(this.sessionType=W,this.certPem=G,this.keyPem=X,G&&X&&Y)this.parseX509(G,X,Y)}localRandom;remoteRandom;cipherSuite;remoteCertificate;remoteKeyPair;localKeyPair;masterSecret;cipher;namedCurve;signatureHashAlgorithm;localCert;localPrivateKey;static createSelfSignedCertificateWithKey=async(W,G)=>{let X=(()=>{switch(W.signature){case p4.rsa_1:return"RSASSA-PKCS1-v1_5";case p4.ecdsa_3:return"ECDSA"}})(),Y=(()=>{switch(W.hash){case rN.sha256_4:return"SHA-256"}})(),Z=(()=>{switch(G){case a6.secp256r1_23:return"P-256";case a6.x25519_29:if(X==="ECDSA")return"P-256";return"X25519";default:{if(X==="ECDSA")return"P-256";if(X==="RSASSA-PKCS1-v1_5")return"X25519"}}})(),V=(()=>{switch(X){case"ECDSA":return{name:X,hash:Y,namedCurve:Z};case"RSASSA-PKCS1-v1_5":return{name:X,hash:Y,publicExponent:new Uint8Array([1,0,1]),modulusLength:2048}}})(),Q=await LO.subtle.generateKey(V,!0,["sign","verify"]),U=(await Ij.createSelfSigned({serialNumber:kd(8).toString("hex"),name:"C=AU, ST=Some-State, O=Internet Widgits Pty Ltd",notBefore:new Date,notAfter:new Date(Date.now()+315360000000),signingAlgorithm:V,keys:Q})).toString("pem"),q=K9.encode(await LO.subtle.exportKey("pkcs8",Q.privateKey),"private key");return{certPem:U,keyPem:q,signatureHash:W}};encryptPacket(W){let G=W.recordLayerHeader,X=G.protocolVersion.major<<8|G.protocolVersion.minor,Y=this.cipher.encrypt(this.sessionType,W.fragment,{type:G.contentType,version:X,epoch:G.epoch,sequenceNumber:G.sequenceNumber});return W.fragment=Y,W.recordLayerHeader.contentLen=Y.length,W}decryptPacket(W){let G=W.recordLayerHeader,X=G.protocolVersion.major<<8|G.protocolVersion.minor;return this.cipher.decrypt(this.sessionType,W.fragment,{type:G.contentType,version:X,epoch:G.epoch,sequenceNumber:G.sequenceNumber})}verifyData(W){if(this.sessionType===c4.CLIENT)return fd(this.masterSecret,W);else return cd(this.masterSecret,W)}signatureData(W,G){let X=xd(G).update(W),Y=this.localPrivateKey.toPEM().toString();return X.sign(Y)}generateKeySignature(W){let G=this.sessionType===c4.CLIENT?this.localRandom:this.remoteRandom,X=this.sessionType===c4.SERVER?this.localRandom:this.remoteRandom,Y=this.valueKeySignature(G.serialize(),X.serialize(),this.localKeyPair.publicKey,this.namedCurve);return this.localPrivateKey.sign(Y,W)}parseX509(W,G,X){let Y=qH.Certificate.fromPEM(Buffer.from(W)),Z=qH.PrivateKey.fromPEM(Buffer.from(G));this.localCert=Y.raw,this.localPrivateKey=Z,this.signatureHashAlgorithm=X}valueKeySignature(W,G,X,Y){let Z=Buffer.from(vY.encode({type:B2.named_curve_3,curve:Y,len:X.length},{type:vY.types.uint8,curve:vY.types.uint16be,len:vY.types.uint8}).slice());return Buffer.concat([W,G,Z,X])}},sN=class{srtpProfile;static findMatchingSRTPProfile(W,G){for(let X of G)if(W.includes(X))return X}},eO=(W)=>"0x"+W.toString("hex").replace(/(.)(.)/g,"$1$2 ").split(" ").filter((G)=>G!=null&&G.length>0).join(",0x"),v2=(W)=>Object.entries({...W}).reduce((G,[X,Y])=>{if(typeof Y==="number"||typeof Y==="string")G[X]=Y;if(Buffer.isBuffer(Y))G[X]=eO(Y);return G},{}),P5=class W{constructor(G,X,Y,Z,V,Q){this.msg_type=G,this.length=X,this.message_seq=Y,this.fragment_offset=Z,this.fragment_length=V,this.fragment=Q}static spec={msg_type:W7.types.uint8,length:W7.types.uint24be,message_seq:W7.types.uint16be,fragment_offset:W7.types.uint24be,fragment_length:W7.types.uint24be,fragment:W7.types.buffer((G)=>G.current.fragment_length)};get summary(){return v2(this)}static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(W7.decode(G,W.spec)))}serialize(){let G=W7.encode(this,W.spec).slice();return Buffer.from(G)}chunk(G){let X=0,Y=this.fragment.length;if(Y===0)return[new W(this.msg_type,Y,this.message_seq,X,0,this.fragment)];let Z=[];if(!G)G=1240;while(X<Y){let V=Math.min(G,Y-X),Q=Buffer.from(this.fragment.slice(X,X+V));if(Q.length<=0)throw Error("Zero or less bytes processed while fragmenting handshake message.");Z.push(new W(this.msg_type,Y,this.message_seq,X,Q.length,Q)),X+=Q.length}return Z}static assemble(G){if(!G?.length)throw Error("cannot reassemble handshake from empty array");G=G.sort((Y,Z)=>Y.fragment_offset-Z.fragment_offset);let X=Buffer.alloc(G[0].length);for(let Y of G)Y.fragment.copy(X,Y.fragment_offset);return new W(G[0].msg_type,G[0].length,G[0].message_seq,0,X.length,X)}static findAllFragments(G,X){let Y=G.find((Z)=>Z.msg_type===X);if(!Y)return[];if(!G?.length)return[];return G.filter((Z)=>{return Z.msg_type===Y.msg_type&&Z.message_seq===Y.message_seq&&Z.length===Y.length})}},{uint16be:tN,uint24be:dd,buffer:u2,array:od,uint8:oQ,string:nd}=g2.types,id={type:tN,data:u2(tN)},BO=od(id,tN,"bytes"),rd=u2(dd),ad=oQ,sd=nd(tN),td={hash:oQ,signature:oQ},WK={major:oQ,minor:oQ},TG=class W{constructor(G=Math.floor(Date.now()/1000),X=ed(28)){this.gmt_unix_time=G,this.random_bytes=X}static spec={gmt_unix_time:MG.types.uint32be,random_bytes:MG.types.buffer(28)};static deSerialize(G){return new W(...Object.values(MG.decode(G,W.spec)))}static from(G){return new W(...Object.values(G))}serialize(){let G=MG.encode(this,W.spec).slice();return Buffer.from(G)}},h2=class W{constructor(G,X,Y,Z,V,Q,J){this.clientVersion=G,this.random=X,this.sessionId=Y,this.cookie=Z,this.cipherSuites=V,this.compressionMethods=Q,this.extensions=J}msgType=1;messageSeq=0;static spec={clientVersion:{major:Z9.types.uint8,minor:Z9.types.uint8},random:TG.spec,sessionId:Z9.types.buffer(Z9.types.uint8),cookie:Z9.types.buffer(Z9.types.uint8),cipherSuites:Z9.types.array(Z9.types.uint16be,Z9.types.uint16be,"bytes"),compressionMethods:Z9.types.array(Z9.types.uint8,Z9.types.uint8,"bytes"),extensions:BO};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(Z9.decode(G,W.spec)))}serialize(){let G=Z9.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},Go=class W{constructor(G,X,Y,Z,V){this.epoch=G,this.sequenceNumber=X,this.contentType=Y,this.protocolVersion=Z,this.contentLen=V}static spec={epoch:f4.types.uint16be,sequenceNumber:f4.types.uint48be,contentType:f4.types.uint8,protocolVersion:WK,contentLen:f4.types.uint16be};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(f4.decode(G,W.spec)))}serialize(){let G=f4.encode(this,W.spec).slice();return Buffer.from(G)}},b2=class W{constructor(G,X){this.recordLayerHeader=G,this.fragment=X}get summary(){return{header:this.recordLayerHeader,fragment:eO(this.fragment)}}static createEmpty(){return new W(void 0,void 0)}static deSerialize(G){if(G.length<13)throw Error("Invalid DTLS record: buffer is too short");let X=G.readUInt8(0),Y=G.readUInt8(1),Z=G.readUInt8(2),V=G.readUInt16BE(3),Q=G.slice(5,11).readUIntBE(0,6),J=G.readUInt16BE(11);if(G.length<13+J)throw Error("Invalid DTLS record: fragment length exceeds buffer");let U=G.slice(13,13+J);return new W({contentType:X,protocolVersion:{major:Y,minor:Z},epoch:V,sequenceNumber:Q,contentLen:J},U)}serialize(){let G=this.fragment.length,X=13+G,Y=Buffer.alloc(X);return Y.writeUInt8(this.recordLayerHeader.contentType,0),Y.writeUInt8(this.recordLayerHeader.protocolVersion.major,1),Y.writeUInt8(this.recordLayerHeader.protocolVersion.minor,2),Y.writeUInt16BE(this.recordLayerHeader.epoch,3),Y.writeUIntBE(this.recordLayerHeader.sequenceNumber,5,6),Y.writeUInt16BE(G,11),this.fragment.copy(Y,13),Y}computeMACHeader(){return new Go(this.recordLayerHeader.epoch,this.recordLayerHeader.sequenceNumber,this.recordLayerHeader.contentType,this.recordLayerHeader.protocolVersion,this.recordLayerHeader.contentLen).serialize()}},m2=(W)=>(G)=>{return W.lastFlight=G,G.flatMap((X)=>{return X.messageSeq=W.sequenceNumber++,X.toFragment().chunk()})},WJ=(W)=>(G,X)=>{return G.map((Y)=>{return new b2({contentType:Y.type,protocolVersion:W.version,epoch:W.epoch,sequenceNumber:X,contentLen:Y.fragment.length},Y.fragment)})},EO=((W)=>{return W[W.CloseNotify=0]="CloseNotify",W[W.UnexpectedMessage=10]="UnexpectedMessage",W[W.BadRecordMac=20]="BadRecordMac",W[W.DecryptionFailed=21]="DecryptionFailed",W[W.RecordOverflow=22]="RecordOverflow",W[W.DecompressionFailure=30]="DecompressionFailure",W[W.HandshakeFailure=40]="HandshakeFailure",W[W.NoCertificate=41]="NoCertificate",W[W.BadCertificate=42]="BadCertificate",W[W.UnsupportedCertificate=43]="UnsupportedCertificate",W[W.CertificateRevoked=44]="CertificateRevoked",W[W.CertificateExpired=45]="CertificateExpired",W[W.CertificateUnknown=46]="CertificateUnknown",W[W.IllegalParameter=47]="IllegalParameter",W[W.UnknownCa=48]="UnknownCa",W[W.AccessDenied=49]="AccessDenied",W[W.DecodeError=50]="DecodeError",W[W.DecryptError=51]="DecryptError",W[W.ExportRestriction=60]="ExportRestriction",W[W.ProtocolVersion=70]="ProtocolVersion",W[W.InsufficientSecurity=71]="InsufficientSecurity",W[W.InternalError=80]="InternalError",W[W.UserCanceled=90]="UserCanceled",W[W.NoRenegotiation=100]="NoRenegotiation",W[W.UnsupportedExtension=110]="UnsupportedExtension",W})(EO||{}),Xo=M1("werift-dtls : packages/dtls/src/flight/flight.ts : warn"),ZO=M1("werift-dtls : packages/dtls/src/flight/flight.ts : err"),GJ=class W{constructor(G,X,Y,Z){this.transport=G,this.dtls=X,this.flight=Y,this.nextFlight=Z}state="PREPARING";static RetransmitCount=10;createPacket(G){let X=m2(this.dtls)(G);return this.dtls.bufferHandshakeCache(X,!0,this.flight),WJ(this.dtls)(X.map((Z)=>({type:22,fragment:Z.serialize()})),++this.dtls.recordSequenceNumber)}async transmit(G){let X=0;for(;X<=W.RetransmitCount;X++){if(this.setState("SENDING"),this.send(G).catch((Y)=>{ZO("fail to send",ZO)}),this.setState("WAITING"),this.nextFlight===void 0){this.setState("FINISHED");break}if(await Wo(1000*((X+1)/2)),this.dtls.flight>=this.nextFlight){this.setState("FINISHED");break}else Xo(this.dtls.sessionId,"retransmit",X,this.dtls.flight)}if(X>W.RetransmitCount)throw ZO(this.dtls.sessionId,"retransmit failed",X),Error(`over retransmitCount : ${this.flight} ${this.nextFlight}`)}send=(G)=>Promise.all(G.map((X)=>this.transport.send(X)));setState(G){this.state=G}},Yo=class extends GJ{constructor(W,G,X){super(W,G,1,3);this.cipher=X}async exec(W){if(this.dtls.flight===1)throw Error();this.dtls.flight=1;let G=new h2({major:254,minor:253},new TG,Buffer.from([]),Buffer.from([]),yd,[0],W);this.dtls.version=G.clientVersion,this.cipher.localRandom=TG.from(G.random);let X=this.createPacket([G]),Y=Buffer.concat(X.map((Z)=>Z.serialize()));await this.transmit([Y])}},Zo=M1("werift-dtls : packages/dtls/src/flight/client/flight3.ts : log"),Vo=class extends GJ{constructor(W,G){super(W,G,3,5)}async exec(W){if(this.dtls.flight===3)throw Error();this.dtls.flight=3,this.dtls.handshakeCache=[];let[G]=this.dtls.lastFlight;Zo("dtls version",G.clientVersion),G.cookie=W.cookie,this.dtls.cookie=W.cookie;let X=this.createPacket([G]),Y=Buffer.concat(X.map((Z)=>Z.serialize()));await this.transmit([Y])}},NH={NULL:0,ECDHE:1},XJ={NULL:0,RSA:1,ECDSA:2,PSK:3},YJ={NULL:0,RSA:1,ECDHE_RSA:2,ECDHE_ECDSA:3,PSK:4,ECDHE_PSK:5},ZJ=class{id=0;name;signType;keyType;toString(){return this.name}};function Qo(){let W=new ZJ;return W.id=YJ.RSA,W.name="RSA",W.keyType=XJ.RSA,W}function Jo(){let W=new ZJ;return W.id=YJ.ECDHE_RSA,W.name="ECDHE_RSA",W.signType=NH.ECDHE,W.keyType=XJ.RSA,W}function Uo(){let W=new ZJ;return W.id=YJ.ECDHE_ECDSA,W.name="ECDHE_ECDSA",W.signType=NH.ECDHE,W.keyType=XJ.ECDSA,W}function qo(){let W=new ZJ;return W.id=YJ.PSK,W.name="PSK",W.signType=NH.NULL,W.keyType=XJ.PSK,W}function No(){let W=new ZJ;return W.id=YJ.ECDHE_PSK,W.name="ECDHE_PSK",W.signType=NH.ECDHE,W.keyType=XJ.PSK,W}var zo=M1("werift-dtls : packages/dtls/src/cipher/suites/aead.ts : err"),Io=class extends ld{keyLength=0;nonceLength=0;ivLength=0;authTagLength=0;nonceImplicitLength=0;nonceExplicitLength=0;clientWriteKey;serverWriteKey;clientNonce;serverNonce;constructor(){super()}get summary(){return v2(this)}init(W,G,X){let Y=pd(W,X,G,this.keyLength,this.ivLength,this.nonceLength,this.hashAlgorithm);this.clientWriteKey=Y.clientWriteKey,this.serverWriteKey=Y.serverWriteKey,this.clientNonce=Y.clientNonce,this.serverNonce=Y.serverNonce}encrypt(W,G,X){let Y=W===c4.CLIENT,Z=Y?this.clientNonce:this.serverNonce,V=Y?this.clientWriteKey:this.serverWriteKey;if(!Z||!V)throw Error();Z.writeUInt16BE(X.epoch,this.nonceImplicitLength),Z.writeUIntBE(X.sequenceNumber,this.nonceImplicitLength+2,6);let Q=Z.slice(this.nonceImplicitLength),J=this.encodeAdditionalBuffer(X,G.length),U=Ho(this.blockAlgorithm,V,Z,{authTagLength:this.authTagLength});U.setAAD(J,{plaintextLength:G.length});let q=U.update(G),N=U.final(),A=U.getAuthTag();return Buffer.concat([Q,q,N,A])}encodeAdditionalBuffer(W,G){let X=Buffer.alloc(13);return X.writeUInt16BE(W.epoch,0),X.writeUintBE(W.sequenceNumber,2,6),X.writeUInt8(W.type,8),X.writeUInt16BE(W.version,9),X.writeUInt16BE(G,11),X}decrypt(W,G,X){let Y=W===c4.CLIENT,Z=Y?this.serverNonce:this.clientNonce,V=Y?this.serverWriteKey:this.clientWriteKey;if(!Z||!V)throw Error();G.subarray(0,this.nonceExplicitLength).copy(Z,this.nonceImplicitLength);let J=G.subarray(this.nonceExplicitLength,G.length-this.authTagLength),U=G.subarray(G.length-this.authTagLength),q=this.encodeAdditionalBuffer(X,J.length),N=Ao(this.blockAlgorithm,V,Z,{authTagLength:this.authTagLength});N.setAuthTag(U),N.setAAD(q,{plaintextLength:J.length});let A=N.update(J);try{let H=N.final();return H.length>0?Buffer.concat([A,H]):A}catch(H){throw zo("decrypt failed",H,W,eO(G),X,this.summary),H}}},v8={TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:49195,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:49196,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:49199,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:49200,TLS_RSA_WITH_AES_128_GCM_SHA256:156,TLS_RSA_WITH_AES_256_GCM_SHA384:157,TLS_PSK_WITH_AES_128_GCM_SHA256:168,TLS_PSK_WITH_AES_256_GCM_SHA384:169,TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256:53249,TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384:53250,TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256:52396,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256:52393,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256:52392,TLS_PSK_WITH_CHACHA20_POLY1305_SHA256:52395},xQ={K_LEN:16,N_MIN:12,N_MAX:12,P_MAX:68719476705,A_MAX:9007199254740991,C_MAX:68719476721},kQ={K_LEN:32,N_MIN:12,N_MAX:12,P_MAX:68719476705,A_MAX:9007199254740991,C_MAX:68719476721},m$=Qo(),f$=Jo(),c$=Uo(),p$=qo(),l$=No();function f2(W){switch(W){case v8.TLS_RSA_WITH_AES_128_GCM_SHA256:return u7(v8.TLS_RSA_WITH_AES_128_GCM_SHA256,"TLS_RSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",m$,xQ);case v8.TLS_RSA_WITH_AES_256_GCM_SHA384:return u7(v8.TLS_RSA_WITH_AES_256_GCM_SHA384,"TLS_RSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",m$,kQ,"sha384");case v8.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:return u7(v8.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",f$,xQ);case v8.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:return u7(v8.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",f$,kQ,"sha384");case v8.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:return u7(v8.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",c$,xQ);case v8.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:return u7(v8.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",c$,kQ,"sha384");case v8.TLS_PSK_WITH_AES_128_GCM_SHA256:return u7(v8.TLS_PSK_WITH_AES_128_GCM_SHA256,"TLS_PSK_WITH_AES_128_GCM_SHA256","aes-128-gcm",p$,xQ,"sha256");case v8.TLS_PSK_WITH_AES_256_GCM_SHA384:return u7(v8.TLS_PSK_WITH_AES_256_GCM_SHA384,"TLS_PSK_WITH_AES_256_GCM_SHA384","aes-256-gcm",p$,kQ,"sha384");case v8.TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256:return u7(v8.TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256","aes-128-gcm",l$,xQ,"sha256");case v8.TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384:return u7(v8.TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384","aes-256-gcm",l$,kQ,"sha384");default:break}return null}function u7(W,G,X,Y,Z,V="sha256"){let Q=new Io;return Q.id=W,Q.name=G,Q.blockAlgorithm=X,Q.kx=Y,Q.hashAlgorithm=V,Q.keyLength=Z.K_LEN,Q.nonceLength=Z.N_MAX,Q.nonceImplicitLength=4,Q.nonceExplicitLength=8,Q.ivLength=Q.nonceImplicitLength,Q.authTagLength=16,Q}function p2(W){switch(W){case a6.secp256r1_23:{let{privateKey:G,publicKey:X}=hd();return{curve:W,privateKey:G,publicKey:X}}case a6.x25519_29:{let G=c2.default.box.keyPair();return{curve:W,privateKey:Buffer.from(G.secretKey.buffer),publicKey:Buffer.from(G.publicKey.buffer)}}default:throw Error()}}var HH=class{static type=23},AH=class W{static type=65281;static spec={type:PG.types.uint16be,data:PG.types.uint8};type=W.type;data=0;constructor(G={}){Object.assign(this,G)}static createEmpty(){return new W}static deSerialize(G){return new W(PG.decode(G,W.spec))}serialize(){let G=PG.encode(this,W.spec).slice();return Buffer.from(G)}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},gY=class W{static type=14;static spec={type:i6.types.uint16be,data:i6.types.buffer(i6.types.uint16be)};type=W.type;data=Buffer.from([]);profiles=[];mki=Buffer.from([0]);constructor(G={}){Object.assign(this,G)}static create(G,X){return new W({profiles:G,mki:X})}static deSerialize(G){let X=new W(i6.decode(G,W.spec)),Y=X.data.readUInt16BE(),Z=Array(Y/2);for(let V=0;V<Z.length;V++)Z[V]=X.data.readUInt16BE(V*2+2);return X.profiles=Z,X.mki=X.data.slice(Y+2),X}serialize(){let G=Buffer.alloc(2);G.writeUInt16BE(this.profiles.length*2);let X=Buffer.concat([G,...this.profiles.map((Z)=>{let V=Buffer.alloc(2);return V.writeUInt16BE(Z),V}),this.mki]);this.data=X;let Y=i6.encode(this,W.spec).slice();return Buffer.from(Y)}static fromData(G){let X=Buffer.alloc(4);return X.writeUInt16BE(W.type),X.writeUInt16BE(G.length,2),W.deSerialize(Buffer.concat([X,G]))}get extension(){return{type:this.type,data:this.serialize().slice(4)}}},eN=class W{constructor(G){this.certificateList=G}msgType=11;messageSeq;static spec={certificateList:RG.types.array(rd,RG.types.uint24be,"bytes")};static createEmpty(){return new W(void 0)}static deSerialize(G){return new W(...Object.values(RG.decode(G,W.spec)))}serialize(){let G=RG.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},l2=class W{constructor(G=1){this.type=G}static spec={type:fY.types.uint8};static createEmpty(){return new W}static deSerialize(G){return new W(...Object.values(fY.decode(G,W.spec)))}serialize(){let G=fY.encode(this,W.spec).slice();return Buffer.from(G)}},d2=class W{constructor(G,X){this.algorithm=G,this.signature=X}msgType=15;messageSeq;static spec={algorithm:r6.types.uint16be,signature:r6.types.buffer(r6.types.uint16be)};static createEmpty(){return new W(void 0,void 0)}static deSerialize(G){let X=r6.decode(G,W.spec);return new W(...Object.values(X))}serialize(){let G=r6.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},o2=class W{constructor(G){this.publicKey=G}msgType=16;messageSeq;static spec={publicKey:LG.types.buffer(LG.types.uint8)};static createEmpty(){return new W(void 0)}static deSerialize(G){let X=LG.decode(G,W.spec);return new W(...Object.values(X))}serialize(){let G=LG.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},$O=class W{constructor(G){this.verifyData=G}msgType=20;messageSeq;static createEmpty(){return new W(void 0)}static deSerialize(G){return new W(G)}serialize(){return this.verifyData}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},n2=class W{constructor(G,X,Y){this.certificateTypes=G,this.signatures=X,this.authorities=Y}msgType=13;messageSeq;static spec={certificateTypes:G7.types.array(ad,G7.types.uint8,"bytes"),signatures:G7.types.array(td,G7.types.uint16be,"bytes"),authorities:G7.types.array(sd,G7.types.uint16be,"bytes")};static createEmpty(){return new W(void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(G7.decode(G,W.spec)))}serialize(){let G=G7.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},i2=class W{constructor(G,X,Y,Z,V,Q){this.serverVersion=G,this.random=X,this.sessionId=Y,this.cipherSuite=Z,this.compressionMethod=V,this.extensions=Q}msgType=2;messageSeq;static spec={serverVersion:WK,random:TG.spec,sessionId:X7.types.buffer(X7.types.uint8),cipherSuite:X7.types.uint16be,compressionMethod:X7.types.uint8};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){let X=X7.decode(G,W.spec),Y=new W(...Object.values(X));if(Y.serialize().length<G.length)return new W(...Object.values(X7.decode(G,{...W.spec,extensions:BO})));return Y}serialize(){let G=this.extensions===void 0?X7.encode(this,W.spec).slice():X7.encode(this,{...W.spec,extensions:BO}).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},r2=class W{msgType=14;messageSeq;static spec={};static createEmpty(){return new W}static deSerialize(G){return new W(...Object.values(zH.decode(G,W.spec)))}serialize(){let G=zH.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}};function wo(W,G){return Buffer.from(a2.encode(W,G).slice())}var s2=class W{constructor(G,X,Y,Z,V,Q,J,U){this.ellipticCurveType=G,this.namedCurve=X,this.publicKeyLength=Y,this.publicKey=Z,this.hashAlgorithm=V,this.signatureAlgorithm=Q,this.signatureLength=J,this.signature=U}msgType=12;messageSeq;static spec={ellipticCurveType:e5.types.uint8,namedCurve:e5.types.uint16be,publicKeyLength:e5.types.uint8,publicKey:e5.types.buffer((G)=>G.current.publicKeyLength),hashAlgorithm:e5.types.uint8,signatureAlgorithm:e5.types.uint8,signatureLength:e5.types.uint16be,signature:e5.types.buffer((G)=>G.current.signatureLength)};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){let X=e5.decode(G,W.spec);return new W(...Object.values(X))}serialize(){return wo(this,W.spec)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},IH=1,VJ=7;var jo=(W)=>{switch(W){case IH:case VJ:return 16}},Oo=(W)=>{switch(W){case IH:return 14;case VJ:return 12}},LH0=M1("werift-rtp : packages/rtp/src/codec/av1.ts");var Co={0:"Reserved",1:"OBU_SEQUENCE_HEADER",2:"OBU_TEMPORAL_DELIMITER",3:"OBU_FRAME_HEADER",4:"OBU_TILE_GROUP",5:"OBU_METADATA",6:"OBU_FRAME",7:"OBU_REDUNDANT_FRAME_HEADER",8:"OBU_TILE_LIST",15:"OBU_PADDING"},BH0=Object.entries(Co).reduce((W,[G,X])=>{return W[X]=Number(G),W},{});var EH0=Buffer.from([0,0,0,1]);function d$(W,G){let X=Buffer.alloc(G);return W.copy(X),X}function WH(W){return Number.parseInt(W.toString(),10)}function Do(W){let G=W[0];return G>127&&G<192}var FO=4,e6=class W{version=2;padding=!1;count=0;type=0;length=0;constructor(G={}){Object.assign(this,G)}static serialize(G,X,Y,Z){let Q=new W({type:G,count:X,version:2,length:Z}).serialize();return Buffer.concat([Q,Y])}serialize(){let G=new nN(8);if(G.set(2,0,this.version),this.padding)G.set(1,2,1);return G.set(5,3,this.count),E8([1,1,2],[G.value,this.type,this.length])}static deSerialize(G){let[X,Y,Z]=r9(G,[1,1,2]),V=g8(X,0,2),Q=g8(X,2,1)>0,J=g8(X,3,5);return new W({version:V,padding:Q,count:J,type:Y,length:Z})}},o$=class W{static count=4;count=W.count;senderSsrc;mediaSsrc;fir=[];constructor(G={}){Object.assign(this,G)}get length(){return Math.floor(this.serialize().length/4-1)}static deSerialize(G){let[X,Y]=r9(G,[4,4]),Z=[];for(let V=8;V<G.length;V+=8)Z.push({ssrc:G.readUInt32BE(V),sequenceNumber:G[V+4]});return new W({senderSsrc:X,mediaSsrc:Y,fir:Z})}serialize(){let G=E8([4,4],[this.senderSsrc,this.mediaSsrc]),X=Buffer.alloc(this.fir.length*8);return this.fir.forEach(({ssrc:Y,sequenceNumber:Z},V)=>{X.writeUInt32BE(Y,V*8),X[V*8+4]=Z}),Buffer.concat([G,X])}},GH=class W{static count=1;count=W.count;length=2;senderSsrc;mediaSsrc;constructor(G={}){Object.assign(this,G)}static deSerialize(G){let[X,Y]=r9(G,[4,4]);return new W({senderSsrc:X,mediaSsrc:Y})}serialize(){return E8([4,4],[this.senderSsrc,this.mediaSsrc])}},XH=class W{static count=15;length;count=W.count;senderSsrc;mediaSsrc;uniqueID="REMB";ssrcNum=0;brExp;brMantissa;bitrate;ssrcFeedbacks=[];constructor(G={}){Object.assign(this,G)}static deSerialize(G){let[X,Y,Z,V,Q]=r9(G,[4,4,4,1,1]),J=g8(Q,0,6),U=(g8(Q,6,2)<<16)+(G[14]<<8)+G[15],q=J>46?18446744073709551615n:BigInt(U)<<BigInt(J),N=[];for(let A=16;A<G.length;A+=4){let H=G.slice(A).readUIntBE(0,4);N.push(H)}return new W({senderSsrc:X,mediaSsrc:Y,uniqueID:E8([4],[Z]).toString(),ssrcNum:V,brExp:J,brMantissa:U,ssrcFeedbacks:N,bitrate:q})}serialize(){let G=Buffer.concat([E8([4,4],[this.senderSsrc,this.mediaSsrc]),Buffer.from(this.uniqueID),E8([1],[this.ssrcNum])]),X=new nN(24);X.set(6,0,this.brExp).set(18,6,this.brMantissa);let Y=Buffer.concat(this.ssrcFeedbacks.map((V)=>E8([4],[V]))),Z=Buffer.concat([G,E8([3],[X.value]),Y]);return this.length=Z.length/4,Z}},Mo=M1("werift-rtp: /rtcp/psfb/index"),nQ=class W{static type=206;type=W.type;feedback;constructor(G={}){Object.assign(this,G)}serialize(){let G=this.feedback.serialize();return e6.serialize(this.type,this.feedback.count,G,this.feedback.length)}static deSerialize(G,X){let Y;switch(X.count){case o$.count:Y=o$.deSerialize(G);break;case GH.count:Y=GH.deSerialize(G);break;case XH.count:Y=XH.deSerialize(G);break;default:Mo("unknown psfb packet",X.count);break}return new W({feedback:Y})}},iQ=class W{ssrc=0;reports=[];static type=201;type=W.type;constructor(G={}){Object.assign(this,G)}serialize(){let G=E8([4],[this.ssrc]);return G=Buffer.concat([G,...this.reports.map((X)=>X.serialize())]),e6.serialize(W.type,this.reports.length,G,Math.floor(G.length/4))}static deSerialize(G,X){let[Y]=r9(G,[4]),Z=4,V=[];for(let Q=0;Q<X;Q++)V.push(GK.deSerialize(G.slice(Z,Z+24))),Z+=24;return new W({ssrc:Y,reports:V})}},GK=class W{ssrc;fractionLost;packetsLost;highestSequence;jitter;lsr;dlsr;constructor(G={}){Object.assign(this,G)}toJSON(){return{ssrc:this.ssrc,fractionLost:this.fractionLost,packetsLost:this.packetsLost,highestSequence:this.highestSequence,jitter:this.jitter,lsr:this.lsr,dlsr:this.dlsr}}serialize(){return E8([4,1,3,4,4,4,4],[this.ssrc,this.fractionLost,this.packetsLost,this.highestSequence,this.jitter,this.lsr,this.dlsr])}static deSerialize(G){let[X,Y,Z,V,Q,J,U]=r9(G,[4,1,3,4,4,4,4]);return new W({ssrc:X,fractionLost:Y,packetsLost:Z,highestSequence:V,jitter:Q,lsr:J,dlsr:U})}},t2=205,YH=class W{static count=1;count=W.count;header;senderSsrc;mediaSourceSsrc;lost=[];toJSON(){return{lost:this.lost,senderSsrc:this.senderSsrc,mediaSourceSsrc:this.mediaSourceSsrc}}constructor(G={}){if(Object.assign(this,G),!this.header)this.header=new e6({type:t2,count:this.count,version:2})}static deSerialize(G,X){let[Y,Z]=r9(G,[4,4]),V=[];for(let Q=8;Q<G.length;Q+=4){let[J,U]=r9(G.subarray(Q),[2,2]);V.push(J);for(let q=0;q<16;q++)if(U>>q&1)V.push(J+q+1)}return new W({header:X,senderSsrc:Y,mediaSourceSsrc:Z,lost:V})}serialize(){let G=E8([4,4],[this.senderSsrc,this.mediaSourceSsrc]),X=[];if(this.lost.length>0){let Z=this.lost[0],V=0;this.lost.slice(1).forEach((Q)=>{let J=Q-Z-1;if(J>=0&&J<16)V|=1<<J;else X.push(E8([2,2],[Z,V])),Z=Q,V=0}),X.push(E8([2,2],[Z,V]))}let Y=Buffer.concat([G,Buffer.concat(X)]);return this.header.length=Y.length/4,Buffer.concat([this.header.serialize(),Y])}},To=M1("werift/rtp/rtcp/rtpfb/twcc"),ZH=class W{static count=15;count=W.count;length=2;senderSsrc;mediaSourceSsrc;baseSequenceNumber;packetStatusCount;referenceTime;fbPktCount;packetChunks=[];recvDeltas=[];header;constructor(G={}){if(Object.assign(this,G),!this.header)this.header=new e6({type:205,count:this.count,version:2})}static deSerialize(G,X){let[Y,Z,V,Q,J,U]=r9(G,[4,4,2,2,3,1]),q=[],N=[],A=16;for(let I=0;I<Q;){let w=g8(G.slice(A,A+1)[0],0,1),C;switch(w){case 0:{let D=lQ.deSerialize(G.slice(A,A+2));C=D;let x=Math.min(Q-I,D.runLength);if(D.packetStatus===1||D.packetStatus===2)for(let h=0;h<x;h++)N.push(new yN({type:D.packetStatus}));I+=x}break;case 1:{let D=Po.deSerialize(G.slice(A,A+2));if(C=D,D.symbolSize===0)D.symbolList.forEach((x)=>{if(x===1)N.push(new yN({type:1}))});if(D.symbolSize===1)D.symbolList.forEach((x)=>{if(x===1||x===2)N.push(new yN({type:x}))});I+=D.symbolList.length}break}if(!C)throw Error();A+=2,q.push(C)}let H=A;return N.forEach((I)=>{if(I.type===1)I.deSerialize(G.slice(H,H+1)),H++;if(I.type===2)I.deSerialize(G.slice(H,H+2)),H+=2}),new W({senderSsrc:Y,mediaSourceSsrc:Z,baseSequenceNumber:V,packetStatusCount:Q,referenceTime:J,fbPktCount:U,recvDeltas:N,packetChunks:q,header:X})}serialize(){let G=E8([4,4,2,2,3,1],[this.senderSsrc,this.mediaSourceSsrc,this.baseSequenceNumber,this.packetStatusCount,this.referenceTime,this.fbPktCount]),X=Buffer.concat(this.packetChunks.map((V)=>V.serialize())),Y=Buffer.concat(this.recvDeltas.map((V)=>{try{return V.serialize()}catch(Q){To(Q?.message);return}}).filter((V)=>V)),Z=Buffer.concat([G,X,Y]);if(this.header.padding&&Z.length%4!==0){let V=4-Z.length%4,Q=Buffer.alloc(V);return Q[Q.length-1]=Q.length,this.header.length=Math.floor((Z.length+Q.length)/4),Buffer.concat([this.header.serialize(),Z,Q])}return this.header.length=Math.floor(Z.length/4),Buffer.concat([this.header.serialize(),Z])}get packetResults(){let G=this.baseSequenceNumber-1,X=this.packetChunks.filter((Q)=>Q instanceof lQ).flatMap((Q)=>Q.results(G)),Y=0,V=BigInt(this.referenceTime)*64n;for(let Q of X){let J=this.recvDeltas[Y];if(!Q.received||!J)continue;V+=BigInt(J.delta)/1000n,Q.delta=J.delta,Q.receivedAtMs=Number(V),Y++}return X}},lQ=class W{type;packetStatus;runLength;constructor(G={}){Object.assign(this,G),this.type=0}static deSerialize(G){let X=g8(G[0],1,2),Y=(g8(G[0],3,5)<<8)+G[1];return new W({type:0,packetStatus:X,runLength:Y})}serialize(){return new I2(16).set(0).set(this.packetStatus,2).set(this.runLength,13).buffer}results(G){let X=this.packetStatus===1||this.packetStatus===2,Y=[];for(let Z=0;Z<=this.runLength;++Z)Y.push(new Ro({sequenceNumber:++G,received:X}));return Y}},Po=class W{type;symbolSize;symbolList=[];constructor(G={}){Object.assign(this,G)}static deSerialize(G){let Y=g8(G[0],1,1),Z=[];function V(Q,J){for(let U=0;U<Q;U++)J(U)}switch(Y){case 0:V(6,(Q)=>Z.push(g8(G[0],2+Q,1))),V(8,(Q)=>Z.push(g8(G[1],Q,1)));break;case 1:V(3,(Q)=>Z.push(g8(G[0],2+Q*2,2))),V(4,(Q)=>Z.push(g8(G[1],Q*2,2)));break;default:Y=(g8(G[0],2,6)<<8)+G[1]}return new W({type:1,symbolSize:Y,symbolList:Z})}serialize(){let G=Buffer.alloc(2),X=new I2(16).set(1).set(this.symbolSize),Y=this.symbolSize===0?1:2;return this.symbolList.forEach((Z)=>{X.set(Z,Y)}),G.writeUInt16BE(X.value),G}},yN=class W{type;delta;constructor(G={}){Object.assign(this,G)}static deSerialize(G){let X,Y;if(G.length===1)X=1,Y=250*G[0];else if(G.length===2)X=2,Y=250*G.readInt16BE();if(X===void 0||Y===void 0)throw Error();return new W({type:X,delta:Y})}deSerialize(G){let X=W.deSerialize(G);this.delta=X.delta}parsed=!1;parseDelta(){if(this.delta=Math.floor(this.delta/250),this.delta<0||this.delta>255){if(this.delta>32767)this.delta=32767;if(this.delta<-32768)this.delta=-32768;if(!this.type)this.type=2}else if(!this.type)this.type=1;this.parsed=!0}serialize(){if(!this.parsed)this.parseDelta();if(this.type===1){let G=Buffer.alloc(1);return G.writeUInt8(this.delta),G}else if(this.type===2){let G=Buffer.alloc(2);return G.writeInt16BE(this.delta),G}throw Error("errDeltaExceedLimit "+this.delta+" "+this.type)}};var Ro=class{sequenceNumber=0;delta=0;received=!1;receivedAtMs=0;constructor(W){Object.assign(this,W)}},Lo=M1("werift-rtp:packages/rtp/rtcp/rtpfb/index"),uY=class W{static type=t2;type=W.type;feedback;header;constructor(G={}){Object.assign(this,G)}serialize(){return this.feedback.serialize()}static deSerialize(G,X){let Y;switch(X.count){case YH.count:Y=YH.deSerialize(G,X);break;case ZH.count:Y=ZH.deSerialize(G,X);break;default:Lo("unknown rtpfb packet",X.count);break}return new W({feedback:Y,header:X})}},VH=class W{static type=202;type=W.type;chunks=[];constructor(G){Object.assign(this,G)}get length(){let G=0;return this.chunks.forEach((X)=>G+=X.length),G}serialize(){let G=Buffer.concat(this.chunks.map((X)=>X.serialize()));while(G.length%4)G=Buffer.concat([G,Buffer.from([0])]);return e6.serialize(this.type,this.chunks.length,G,G.length/4)}static deSerialize(G,X){let Y=[];for(let Z=0;Z<G.length;){let V=e2.deSerialize(G.slice(Z));Y.push(V),Z+=V.length}return new W({chunks:Y})}},e2=class W{source;items=[];constructor(G={}){Object.assign(this,G)}get length(){let G=4;return this.items.forEach((X)=>G+=X.length),G+=1,G+=n$(G),G}serialize(){let G=Buffer.concat([E8([4],[this.source]),Buffer.concat(this.items.map((Y)=>Y.serialize()))]);return Buffer.concat([G,Buffer.alloc(n$(G.length))])}static deSerialize(G){let X=G.readUInt32BE(),Y=[];for(let Z=4;Z<G.length;){if(G[Z]===0)break;let Q=WS.deSerialize(G.slice(Z));Y.push(Q),Z+=Q.length}return new W({source:X,items:Y})}},WS=class W{type;text;constructor(G){Object.assign(this,G)}get length(){return 2+Buffer.from(this.text).length}serialize(){let G=Buffer.from(this.text);return Buffer.concat([E8([1,1],[this.type,G.length]),G])}static deSerialize(G){let X=G[0],Y=G[1],Z=G.slice(2,2+Y).toString();return new W({type:X,text:Z})}};function n$(W){if(W%4==0)return 0;return 4-W%4}var hY=class W{ssrc=0;senderInfo;reports=[];static type=200;type=W.type;constructor(G){Object.assign(this,G)}toJSON(){return{ssrc:this.ssrc,senderInfo:this.senderInfo.toJSON(),reports:this.reports.map((G)=>G.toJSON())}}serialize(){let G=Buffer.alloc(4);return G.writeUInt32BE(this.ssrc),G=Buffer.concat([G,this.senderInfo.serialize()]),G=Buffer.concat([G,...this.reports.map((X)=>X.serialize())]),e6.serialize(W.type,this.reports.length,G,Math.floor(G.length/4))}static deSerialize(G,X){let Y=G.readUInt32BE(),Z=GS.deSerialize(G.subarray(4,24)),V=24,Q=[];for(let U=0;U<X;U++)Q.push(GK.deSerialize(G.subarray(V,V+24))),V+=24;return new W({ssrc:Y,senderInfo:Z,reports:Q})}},GS=class W{ntpTimestamp;rtpTimestamp;packetCount;octetCount;constructor(G={}){Object.assign(this,G)}toJSON(){return{ntpTimestamp:Bo(this.ntpTimestamp),rtpTimestamp:this.rtpTimestamp}}serialize(){return E8([8,4,4,4],[this.ntpTimestamp,this.rtpTimestamp,this.packetCount,this.octetCount])}static deSerialize(G){let[X,Y,Z,V]=r9(G,[8,4,4,4]);return new W({ntpTimestamp:X,rtpTimestamp:Y,packetCount:Z,octetCount:V})}},Bo=(W)=>{let[G,X]=r9(E8([8],[W]),[4,4]);return Number(`${G}.${X}`)},Eo=M1("werift-rtp:packages/rtp/src/rtcp/rtcp.ts"),$o=class{static deSerialize(W){let G=0,X=[];while(G<W.length){let Y=e6.deSerialize(W.subarray(G,G+FO));G+=FO;let Z=W.subarray(G);if(G+=Y.length*4,Y.padding)Z=Z.subarray(0,Z.length-Z.subarray(-1)[0]);try{switch(Y.type){case hY.type:X.push(hY.deSerialize(Z,Y.count));break;case iQ.type:X.push(iQ.deSerialize(Z,Y.count));break;case VH.type:X.push(VH.deSerialize(Z,Y));break;case uY.type:X.push(uY.deSerialize(Z,Y));break;case nQ.type:X.push(nQ.deSerialize(Z,Y));break;default:break}}catch(V){Eo("deSerialize RTCP",V)}}return X}};function Fo(W){return W.length>=2&&W[1]>=192&&W[1]<=208}var D9={sdesMid:"urn:ietf:params:rtp-hdrext:sdes:mid",sdesRTPStreamID:"urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id",repairedRtpStreamId:"urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id",transportWideCC:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",absSendTime:"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",dependencyDescriptor:"https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension",audioLevelIndication:"urn:ietf:params:rtp-hdrext:ssrc-audio-level",videoOrientation:"urn:3gpp:video-orientation"};function So(W,G){return W.map((X)=>{let Y=G[X.id];if(!Y)return{uri:"unknown",value:X.payload};switch(Y){case D9.sdesMid:case D9.sdesRTPStreamID:case D9.repairedRtpStreamId:return{uri:Y,value:go(X.payload)};case D9.transportWideCC:return{uri:Y,value:uo(X.payload)};case D9.absSendTime:return{uri:Y,value:ho(X.payload)};case D9.audioLevelIndication:return{uri:Y,value:bo(X.payload)};case D9.videoOrientation:return{uri:Y,value:mo(X.payload)};default:return{uri:Y,value:X.payload}}}).reduce((X,Y)=>{if(Y)X[Y.uri]=Y.value;return X},{})}function xo(W){return Buffer.from(W)}function ko(W){return Buffer.from(W)}function _o(W){return Buffer.from(W)}function yo(W){return E8([2],[W])}function vo(W){let G=Buffer.alloc(3),X=W>>14n&0x00ffffffn;return G.writeUIntBE(Number(X),0,3),G}function go(W){return W.toString()}function uo(W){return W.readUInt16BE()}function ho(W){return r9(W,[3])[0]}function bo(W){let G=new cQ(W);return{v:G.readBits(1)===1,level:G.readBits(7)}}function mo(W){let G=new cQ(W);return G.readBits(4),{c:G.readBits(1),f:G.readBits(1),r1:G.readBits(1),r0:G.readBits(1)}}var fo=M1("packages/rtp/src/rtp/red/packet.ts"),XS=class W{header;blocks=[];static deSerialize(G){let X=G instanceof ArrayBuffer?Buffer.from(G):G,Y=new W,Z=0;return[Y.header,Z]=i$.deSerialize(X),Y.header.fields.forEach(({blockLength:V,timestampOffset:Q,blockPT:J})=>{if(V&&Q){let U=X.subarray(Z,Z+V);Y.blocks.push({block:U,blockPT:J,timestampOffset:Q}),Z+=V}else{let U=X.subarray(Z);Y.blocks.push({block:U,blockPT:J})}}),Y}serialize(){this.header=new i$;for(let{timestampOffset:X,blockPT:Y,block:Z}of this.blocks)if(X)this.header.fields.push({fBit:1,blockPT:Y,blockLength:Z.length,timestampOffset:X});else this.header.fields.push({fBit:0,blockPT:Y});let G=this.header.serialize();for(let{block:X}of this.blocks)G=Buffer.concat([G,X]);return G}},i$=class W{fields=[];static deSerialize(G){let X=0,Y=new W;for(;;){let Z={};Y.fields.push(Z);let V=new cQ(G.subarray(X));if(Z.fBit=V.readBits(1),Z.blockPT=V.readBits(7),X++,Z.fBit===0)break;Z.timestampOffset=V.readBits(14),Z.blockLength=V.readBits(10),X+=3}return[Y,X]}serialize(){let G=Buffer.alloc(0);for(let X of this.fields)try{if(X.timestampOffset&&X.blockLength){let Y=new cQ(Buffer.alloc(4)).writeBits(1,X.fBit).writeBits(7,X.blockPT).writeBits(14,X.timestampOffset).writeBits(10,X.blockLength);G=Buffer.concat([G,Y.uint8Array])}else{let Y=new cQ(Buffer.alloc(1)).writeBits(1,0).writeBits(7,X.blockPT);G=Buffer.concat([G,Y.uint8Array])}}catch(Y){fo(Y?.message)}return G}},co=class{constructor(W=1){this.distance=W}cache=[];cacheSize=10;push(W){if(this.cache.push(W),this.cache.length>this.cacheSize)this.cache.shift()}build(){let W=new XS,G=this.cache.slice(-(this.distance+1)),X=G.pop();if(!X)return W;return G.forEach((Y)=>{let Z=yY(X.timestamp,-Y.timestamp);if(Z>po)return;W.blocks.push({block:Y.block,blockPT:Y.blockPT,timestampOffset:Z})}),W.blocks.push({block:X.block,blockPT:X.blockPT}),W}},po=16383,lo=class{size=150;sequenceNumbers=[];push(W,G){let X=[];return W.blocks.forEach(({blockPT:Z,timestampOffset:V,block:Q},J)=>{let U=M9(G.header.sequenceNumber,-(W.blocks.length-(J+1)));if(V)X.push(new t6(new s6({timestamp:yY(G.header.timestamp,-V),payloadType:Z,ssrc:G.header.ssrc,sequenceNumber:U,marker:!0}),Q));else X.push(new t6(new s6({timestamp:G.header.timestamp,payloadType:Z,ssrc:G.header.ssrc,sequenceNumber:U,marker:!0}),Q))}),X.filter((Z)=>{if(this.sequenceNumbers.includes(Z.header.sequenceNumber))return!1;else{if(this.sequenceNumbers.length>this.size)this.sequenceNumbers.shift();return this.sequenceNumbers.push(Z.header.sequenceNumber),!0}})}},OG={OneByte:48862,TwoByte:4096},r$=2,a$=4,s$=8,t$=12,e$=4,s6=class W{version=2;padding=!1;paddingSize=0;extension=!1;marker=!1;payloadOffset=0;payloadType=0;sequenceNumber=0;timestamp=0;ssrc=0;csrcLength=0;csrc=[];extensionProfile=OG.OneByte;extensionLength;extensions=[];constructor(G={}){Object.assign(this,G)}static deSerialize(G){let X=new W,Y=0,Z=G[Y++];X.version=g8(Z,0,2),X.padding=g8(Z,2)>0,X.extension=g8(Z,3)>0,X.csrcLength=g8(Z,4,4),X.csrc=[...Array(X.csrcLength)].map(()=>{let Q=G.readUInt32BE(Y);return Y+=4,Q}),Y+=t$-1;let V=G[1];X.marker=g8(V,0)>0,X.payloadType=g8(V,1,7),X.sequenceNumber=G.readUInt16BE(r$),X.timestamp=G.readUInt32BE(a$),X.ssrc=G.readUInt32BE(s$);for(let Q=0;Q<X.csrc.length;Q++){let J=t$+Q*e$;X.csrc[Q]=G.subarray(J).readUInt32BE()}if(X.extension){X.extensionProfile=G.subarray(Y).readUInt16BE(),Y+=2;let Q=G.subarray(Y).readUInt16BE()*4;switch(X.extensionLength=Q,Y+=2,X.extensionProfile){case OG.OneByte:{let J=Y+Q;while(Y<J){if(G[Y]===0){Y++;continue}let U=G[Y]>>4,q=(G[Y]&(G[Y]^240))+1;if(Y++,U===15)break;let N={id:U,payload:G.subarray(Y,Y+q)};X.extensions=[...X.extensions,N],Y+=q}}break;case OG.TwoByte:{let J=Y+Q;while(Y<J){if(G[Y]===0){Y++;continue}let U=G[Y];Y++;let q=G[Y];Y++;let N={id:U,payload:G.subarray(Y,Y+q)};X.extensions=[...X.extensions,N],Y+=q}}break;default:{let J={id:0,payload:G.subarray(Y,Y+Q)};X.extensions=[...X.extensions,J],Y+=X.extensions[0].payload.length}break}}if(X.payloadOffset=Y,X.padding)X.paddingSize=G[G.length-1];return X}get serializeSize(){let{csrc:G,extensionProfile:X,extensions:Y}=this,Z=12+G.length*e$;if(Y.length>0||this.extension===!0){let V=4;switch(X){case OG.OneByte:for(let Q of Y)V+=1+Q.payload.length;break;case OG.TwoByte:for(let Q of Y)V+=2+Q.payload.length;break;default:V+=Y[0].payload.length}Z+=Math.floor((V+3)/4)*4}return Z}serialize(G){let X=Buffer.alloc(G),Y=0,Z=new nN(8);if(Z.set(2,0,this.version),this.padding)Z.set(1,2,1);if(this.extensions.length>0)this.extension=!0;if(this.extension)Z.set(1,3,1);Z.set(4,4,this.csrc.length),X.writeUInt8(Z.value,Y++);let V=new nN(8);if(this.marker)V.set(1,0,1);V.set(7,1,this.payloadType),X.writeUInt8(V.value,Y++),X.writeUInt16BE(this.sequenceNumber,r$),Y+=2,X.writeUInt32BE(this.timestamp,a$),Y+=4,X.writeUInt32BE(this.ssrc,s$),Y+=4;for(let Q of this.csrc)X.writeUInt32BE(Q,Y),Y+=4;if(this.extension){let Q=Y;X.writeUInt16BE(this.extensionProfile,Y),Y+=4;let J=Y;switch(this.extensionProfile){case OG.OneByte:for(let N of this.extensions)X.writeUInt8(N.id<<4|N.payload.length-1,Y++),N.payload.copy(X,Y),Y+=N.payload.length;break;case OG.TwoByte:for(let N of this.extensions)X.writeUInt8(N.id,Y++),X.writeUInt8(N.payload.length,Y++),N.payload.copy(X,Y),Y+=N.payload.length;break;default:{let N=this.extensions[0].payload.length;if(N%4!=0)throw Error();this.extensions[0].payload.copy(X,Y),Y+=N}}let U=Y-J,q=Math.trunc((U+3)/4)*4;X.writeUInt16BE(Math.trunc(q/4),Q+2);for(let N=0;N<q-U;N++)X.writeUInt8(0,Y),Y++}return this.payloadOffset=Y,X}},t6=class W{constructor(G,X){this.header=G,this.payload=X}get serializeSize(){return this.header.serializeSize+this.payload.length}clone(){return new W(new s6({...this.header}),this.payload)}serialize(){let G=this.header.serialize(this.header.serializeSize+this.payload.length),{payloadOffset:X}=this.header;if(this.payload.copy(G,X),this.header.padding){let Y=Buffer.alloc(this.header.paddingSize);Y.writeUInt8(this.header.paddingSize,this.header.paddingSize-1),G=Buffer.concat([G,Y])}return G}static deSerialize(G){let X=s6.deSerialize(G);return new W(X,G.subarray(X.payloadOffset,G.length-X.paddingSize))}clear(){this.payload=null}};function oo(W,G,X){return new t6(new s6({payloadType:G,marker:W.header.marker,sequenceNumber:a1.Unpack("!H",W.payload.subarray(0,2))[0],timestamp:W.header.timestamp,ssrc:X}),W.payload.subarray(2))}function no(W,G,X,Y){return new t6(new s6({payloadType:G,marker:W.header.marker,sequenceNumber:X,timestamp:W.header.timestamp,ssrc:Y,csrc:W.header.csrc,extensions:W.header.extensions}),Buffer.concat([Buffer.from(a1.Pack("!H",[W.header.sequenceNumber])),W.payload]))}var YS=class{constructor(W,G,X,Y){this.srtpSessionKey=W,this.srtpSessionSalt=G,this.srtcpSessionKey=X,this.srtcpSessionSalt=Y}encryptRtp(W,G,X){return Buffer.from([])}decryptRtp(W,G,X){return[]}encryptRTCP(W,G){return Buffer.from([])}decryptRTCP(W){return[]}},bY=class extends Error{constructor(W){super(W);this.name="SrtpAuthenticationError"}},YF=12,ro=8;function XK(W,G,X="Failed to authenticate SRTP packet"){let Y=W.length-G;rQ(W.length>=YF+G,X);let Z=VS(()=>s6.deSerialize(W.subarray(0,Y)),X);return Z.paddingSize=0,rQ(Z.payloadOffset>=YF&&Z.payloadOffset<=Y,X),Z}function ZS(W,G,X,Y="Failed to authenticate SRTCP packet"){return rQ(W.length>=ro+G+X,Y),VS(()=>e6.deSerialize(W.subarray(0,FO)),Y)}function rQ(W,G){if(!W)throw new bY(G)}function VS(W,G){try{return W()}catch{throw new bY(G)}}function QS(W,G,X="Failed to authenticate SRTP packet"){if(!W.padding)return W.paddingSize=0,W;rQ(G.length>W.payloadOffset,X);let Y=G[G.length-1];return rQ(Y>0&&Y<=G.length-W.payloadOffset,X),W.paddingSize=Y,W}var ao=class extends YS{constructor(W,G,X,Y,Z,V){super(W,G,X,Y);this.srtpSessionAuthTag=Z,this.srtcpSessionAuthTag=V}authTagLength=10;encryptRtp(W,G,X){let Y=W.serialize(W.serializeSize),Z=this.generateCounter(W.sequenceNumber,X,W.ssrc,this.srtpSessionSalt),Q=WF("aes-128-ctr",this.srtpSessionKey,Z).update(G),J=this.generateSrtpAuthTag(X,Y,Q);return Buffer.concat([Y,Q,J])}decryptRtp(W,G,X=XK(W,this.authTagLength)){let Y=W.length-this.authTagLength,Z=W.subarray(0,Y),V=W.subarray(Y),Q=this.generateSrtpAuthTag(G,Z.subarray(0,X.payloadOffset),Z.subarray(X.payloadOffset));VF(V,Q,"Failed to authenticate SRTP packet");let J=this.generateCounter(X.sequenceNumber,G,X.ssrc,this.srtpSessionSalt),U=GF("aes-128-ctr",this.srtpSessionKey,J),q=Z.subarray(X.payloadOffset),N=U.update(q),A=Buffer.concat([Z.subarray(0,X.payloadOffset),N]);return[A,QS(X,A,"Failed to authenticate SRTP packet")]}encryptRTCP(W,G){let X=Buffer.from(W),Y=X.readUInt32BE(4),Z=this.generateCounter(G&65535,G>>16,Y,this.srtcpSessionSalt);WF("aes-128-ctr",this.srtcpSessionKey,Z).update(X.slice(8)).copy(X,8),X=Buffer.concat([X,Buffer.alloc(4)]),X.writeUInt32BE(G,X.length-4),X[X.length-4]|=128;let J=this.generateSrtcpAuthTag(X);return X=Buffer.concat([X,J]),X}decryptRTCP(W){let G=ZS(W,this.authTagLength,ZF),X=W.length-(this.authTagLength+ZF),Y=W.subarray(0,W.length-this.authTagLength),Z=W.subarray(W.length-this.authTagLength),V=this.generateSrtcpAuthTag(Y);VF(Z,V,"Failed to authenticate SRTCP packet");let Q=Buffer.from(W).slice(0,X);if(W[X]>>>7===0)return[Q,G];let U=W.readUInt32BE(X);U&=2147483647;let q=W.readUInt32BE(4),N=this.generateCounter(U&65535,U>>16,q,this.srtcpSessionSalt);return GF("aes-128-ctr",this.srtcpSessionKey,N).update(Q.subarray(8)).copy(Q,8),[Q,G]}generateSrtcpAuthTag(W){return XF("sha1",this.srtcpSessionAuthTag).update(W).digest().slice(0,10)}generateCounter(W,G,X,Y){let Z=Buffer.alloc(16);Z.writeUInt32BE(X,4),Z.writeUInt32BE(G,8),Z.writeUInt32BE(Number(BigInt(W)<<16n),12);for(let V=0;V<Y.length;V++)Z[V]^=Y[V];return Z}generateSrtpAuthTag(W,...G){let X=XF("sha1",this.srtpSessionAuthTag),Y=Buffer.alloc(4);Y.writeUInt32BE(W);for(let Z of G)X.update(Z);return X.update(Y).digest().subarray(0,10)}},ZF=4;function VF(W,G,X){if(W.length!==G.length||!io(W,G))throw new bY(X)}var so=class extends YS{aeadAuthTagLen=16;rtpIvWriter=_N([2,4,4,2],!0);rtcpIvWriter=_N([2,4,2,4],!0);aadWriter=_N([4],!0);constructor(W,G,X,Y){super(W,G,X,Y)}encryptRtp(W,G,X){let Y=W.serialize(W.serializeSize),Z=this.rtpInitializationVector(W,X),V=QF("aes-128-gcm",this.srtpSessionKey,Z);V.setAAD(Y);let Q=V.update(G);V.final();let J=V.getAuthTag();return Buffer.concat([Y,Q,J])}decryptRtp(W,G,X=XK(W,this.aeadAuthTagLen)){let Y=W.subarray(0,X.payloadOffset),Z=W.length-this.aeadAuthTagLen,V=W.subarray(Z),Q=Buffer.from([]);Q=d$(Q,W.length-this.aeadAuthTagLen),Y.copy(Q);let J=this.rtpInitializationVector(X,G),U=W.slice(X.payloadOffset,Z),q=JF("aes-128-gcm",this.srtpSessionKey,J);q.setAAD(Y),q.setAuthTag(V);let N=q.update(U);return qF(q,"SRTP"),N.copy(Q,X.payloadOffset),[Q,QS(X,Q,"Failed to authenticate SRTP packet")]}encryptRTCP(W,G){let X=W.readUInt32BE(4),Y=W.length+this.aeadAuthTagLen,Z=Buffer.from([]);Z=d$(Z,Y+QO),W.slice(0,8).copy(Z);let V=this.rtcpInitializationVector(X,G),Q=this.rtcpAdditionalAuthenticatedData(W,G),J=QF("aes-128-gcm",this.srtcpSessionKey,V);J.setAAD(Q);let U=J.update(W.slice(8));return J.final(),U.copy(Z,8),J.getAuthTag().copy(Z,8+U.length),Q.slice(8,12).copy(Z,Y),Z}decryptRTCP(W){let G=ZS(W,this.aeadAuthTagLen,QO),X=W.length-QO,Y=X-this.aeadAuthTagLen,Z=W.readUInt32BE(4),V=W.readUInt32BE(X),Q=V>>>31===1,J=V&~(UF<<24),U=this.rtcpInitializationVector(Z,J),q=Q?Buffer.concat([W.subarray(0,8),W.subarray(X)]):Buffer.concat([W.subarray(0,Y),W.subarray(X)]),N=Q?W.slice(8,Y):Buffer.alloc(0),A=Q?Buffer.alloc(Y):Buffer.from(W.subarray(0,Y));if(Q)W.slice(0,8).copy(A);let H=JF("aes-128-gcm",this.srtcpSessionKey,U);H.setAAD(q),H.setAuthTag(W.subarray(Y,X));let I=H.update(N);if(qF(H,"SRTCP"),Q)I.copy(A,8);return[A,G]}rtpInitializationVector(W,G){let X=this.rtpIvWriter([0,W.ssrc,G,W.sequenceNumber]);for(let Y=0;Y<X.length;Y++)X[Y]^=this.srtpSessionSalt[Y];return X}rtcpInitializationVector(W,G){let X=this.rtcpIvWriter([0,W,0,G]);for(let Y=0;Y<X.length;Y++)X[Y]^=this.srtcpSessionSalt[Y];return X}rtcpAdditionalAuthenticatedData(W,G){let X=Buffer.concat([W.subarray(0,8),this.aadWriter([G])]);return X[8]|=UF,X}},QO=4,UF=128;function qF(W,G){try{W.final()}catch{throw new bY(`Failed to authenticate ${G} packet`)}}var JS=class{constructor(W,G,X){this.masterKey=W,this.masterSalt=G,this.profile=X;{let Y=14-G.length;if(Y>0)this.masterSalt=Buffer.concat([G,Buffer.alloc(Y)])}switch(this.srtpSessionKey=this.generateSessionKey(0),this.srtpSessionSalt=this.generateSessionSalt(2),this.srtpSessionAuthTag=this.generateSessionAuthTag(1),this.srtpSessionAuth=VO("sha1",this.srtpSessionAuthTag),this.srtcpSessionKey=this.generateSessionKey(3),this.srtcpSessionSalt=this.generateSessionSalt(5),this.srtcpSessionAuthTag=this.generateSessionAuthTag(4),this.srtcpSessionAuth=VO("sha1",this.srtcpSessionAuthTag),X){case IH:this.cipher=new ao(this.srtpSessionKey,this.srtpSessionSalt,this.srtcpSessionKey,this.srtcpSessionSalt,this.srtpSessionAuthTag,this.srtcpSessionAuthTag);break;case VJ:this.cipher=new so(this.srtpSessionKey,this.srtpSessionSalt,this.srtcpSessionKey,this.srtcpSessionSalt);break}}srtpSSRCStates={};srtpSessionKey;srtpSessionSalt;srtpSessionAuthTag;srtpSessionAuth;srtcpSSRCStates={};srtcpSessionKey;srtcpSessionSalt;srtcpSessionAuthTag;srtcpSessionAuth;cipher;generateSessionKey(W){let G=Buffer.from(this.masterSalt),X=Buffer.from([W,0,0,0,0,0,0]);for(let Z=X.length-1,V=G.length-1;Z>=0;Z--,V--)G[V]=G[V]^X[Z];G=Buffer.concat([G,Buffer.from([0,0])]);let Y=new vN.default.AES(this.masterKey);return Buffer.from(Y.encrypt(G))}generateSessionSalt(W){let G=Buffer.from(this.masterSalt),X=Buffer.from([W,0,0,0,0,0,0]);for(let Z=X.length-1,V=G.length-1;Z>=0;Z--,V--)G[V]=G[V]^X[Z];G=Buffer.concat([G,Buffer.from([0,0])]);let Y=new vN.default.AES(this.masterKey);return G=Buffer.from(Y.encrypt(G)),G.subarray(0,14)}generateSessionAuthTag(W){let G=Buffer.from(this.masterSalt),X=Buffer.from([W,0,0,0,0,0,0]);for(let Q=X.length-1,J=G.length-1;Q>=0;Q--,J--)G[J]=G[J]^X[Q];let Y=Buffer.concat([G,Buffer.from([0,0])]),Z=Buffer.concat([G,Buffer.from([0,1])]),V=new vN.default.AES(this.masterKey);return Y=Buffer.from(V.encrypt(Y)),Z=Buffer.from(V.encrypt(Z)),Buffer.concat([Y,Z.subarray(0,4)])}getSrtpSsrcState(W){let G=this.srtpSSRCStates[W];if(G)return G;return G={ssrc:W,rolloverCounter:0,lastSequenceNumber:0},this.srtpSSRCStates[W]=G,G}getSrtcpSsrcState(W){let G=this.srtcpSSRCStates[W];if(G)return G;return G={srtcpIndex:0,ssrc:W},this.srtcpSSRCStates[W]=G,G}updateRolloverCount(W,G){if(!G.rolloverHasProcessed)G.rolloverHasProcessed=!0;else if(W===0){if(G.lastSequenceNumber>_Q)G.rolloverCounter++}else if(G.lastSequenceNumber<_Q&&W>NF-_Q){if(G.rolloverCounter>0)G.rolloverCounter--}else if(W<_Q&&G.lastSequenceNumber>NF-_Q)G.rolloverCounter++;G.lastSequenceNumber=W}generateSrtpAuthTag(W,G){this.srtpSessionAuth=VO("sha1",this.srtpSessionAuthTag);let X=Buffer.alloc(4);return X.writeUInt32BE(G),this.srtpSessionAuth.update(W).update(X).digest().slice(0,10)}index(W){let G=this.srtcpSSRCStates[W];if(!G)return 0;return G.srtcpIndex}setIndex(W,G){let X=this.getSrtcpSsrcState(W);X.srtcpIndex=G%2147483647}},_Q=100,NF=65535,to=class extends JS{constructor(W,G,X){super(W,G,X)}encryptRTCP(W){let G=W.readUInt32BE(4),X=this.getSrtcpSsrcState(G);if(X.srtcpIndex++,X.srtcpIndex>>eo)X.srtcpIndex=0;return this.cipher.encryptRTCP(W,X.srtcpIndex)}decryptRTCP(W){return this.cipher.decryptRTCP(W)}},eo=2147483647,US=class{constructor(W){this.ContextCls=W}localContext;remoteContext;onData;start(W,G,X,Y,Z){this.localContext=new this.ContextCls(W,G,Z),this.remoteContext=new this.ContextCls(X,Y,Z)}},Wn=class extends US{constructor(W){super(to);this.config=W,this.start(W.keys.localMasterKey,W.keys.localMasterSalt,W.keys.remoteMasterKey,W.keys.remoteMasterSalt,W.profile)}decrypt=(W)=>{let[G]=this.remoteContext.decryptRTCP(W);return G};encrypt(W){return this.localContext.encryptRTCP(W)}},Gn=class extends JS{constructor(W,G,X){super(W,G,X)}encryptRtp(W,G){let X=this.getSrtpSsrcState(G.ssrc);return this.updateRolloverCount(G.sequenceNumber,X),this.cipher.encryptRtp(G,W,X.rolloverCounter)}decryptRtp(W){let G=XK(W,this.rtpAuthTagLength),X=this.srtpSSRCStates[G.ssrc],Y=X?{...X}:{ssrc:G.ssrc,rolloverCounter:0,lastSequenceNumber:0};this.updateRolloverCount(G.sequenceNumber,Y);let Z=this.cipher.decryptRtp(W,Y.rolloverCounter,G);if(X)Object.assign(X,Y);else this.srtpSSRCStates[G.ssrc]=Y;return Z}get rtpAuthTagLength(){return this.profile===VJ?16:10}},Xn=class extends US{constructor(W){super(Gn);this.config=W,this.start(W.keys.localMasterKey,W.keys.localMasterSalt,W.keys.remoteMasterKey,W.keys.remoteMasterSalt,W.profile)}decrypt=(W)=>{let[G]=this.remoteContext.decryptRtp(W);return G};encrypt(W,G){return this.localContext.encryptRtp(W,G)}},kH0=class{constructor(W){this.props=W}sequenceNumber=z2();timestamp=DO();create(W){this.sequenceNumber=M9(this.sequenceNumber,1);let G=this.props.between*this.props.clockRate/1000;this.timestamp=yY(this.timestamp,G);let X=new s6({sequenceNumber:this.sequenceNumber,timestamp:Number(this.timestamp),payloadType:96,extension:!0,marker:!1,padding:!1});return new t6(X,W)}},v9=M1("werift-dtls : packages/dtls/src/flight/client/flight5.ts : log"),Yn=class extends GJ{constructor(W,G,X,Y){super(W,G,5,7);this.cipher=X,this.srtp=Y}handleHandshake(W){this.dtls.bufferHandshakeCache([W],!1,4);let G=(()=>{switch(W.msg_type){case 2:return i2.deSerialize(W.fragment);case 11:return eN.deSerialize(W.fragment);case 12:return s2.deSerialize(W.fragment);case 13:return n2.deSerialize(W.fragment);case 14:return r2.deSerialize(W.fragment)}})();if(G)cY[G.msgType]({dtls:this.dtls,cipher:this.cipher,srtp:this.srtp})(G)}async exec(){if(this.dtls.flight===5){v9(this.dtls.sessionId,"flight5 twice"),this.send(this.dtls.lastMessage);return}this.dtls.flight=5;let W=this.dtls.requestedCertificateTypes.length>0;v9(this.dtls.sessionId,"send flight5",W);let G=[W&&this.sendCertificate(),this.sendClientKeyExchange(),W&&this.sendCertificateVerify(),this.sendChangeCipherSpec(),this.sendFinished()].filter((X)=>X);this.dtls.lastMessage=G,await this.transmit(G)}sendCertificate(){let W=new eN([Buffer.from(this.cipher.localCert)]),G=this.createPacket([W]);return Buffer.concat(G.map((Y)=>Y.serialize()))}sendClientKeyExchange(){if(!this.cipher.localKeyPair)throw Error();let W=new o2(this.cipher.localKeyPair.publicKey),G=this.createPacket([W]),X=Buffer.concat(G.map((J)=>J.serialize())),Y=this.cipher.localKeyPair,Z=this.cipher.remoteKeyPair;if(!Z.publicKey)throw Error("not exist");let V=S2(Z.publicKey,Y.privateKey,Y.curve);v9(this.dtls.sessionId,"extendedMasterSecret",this.dtls.options.extendedMasterSecret,this.dtls.remoteExtendedMasterSecret);let Q=Buffer.concat(this.dtls.sortedHandshakeCache.map((J)=>J.serialize()));return this.cipher.masterSecret=this.dtls.options.extendedMasterSecret&&this.dtls.remoteExtendedMasterSecret?k2(V,Q):x2(V,this.cipher.localRandom.serialize(),this.cipher.remoteRandom.serialize()),this.cipher.cipher=f2(this.cipher.cipherSuite),this.cipher.cipher.init(this.cipher.masterSecret,this.cipher.remoteRandom.serialize(),this.cipher.localRandom.serialize()),v9(this.dtls.sessionId,"cipher",this.cipher.cipher.summary),X}sendCertificateVerify(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((Q)=>Q.serialize())),G=this.cipher.signatureData(W,"sha256"),X=(()=>{switch(this.cipher.signatureHashAlgorithm?.signature){case p4.ecdsa_3:return h$.ecdsa_secp256r1_sha256;case p4.rsa_1:return h$.rsa_pkcs1_sha256}})();if(!X)throw Error();v9(this.dtls.sessionId,"signatureScheme",this.cipher.signatureHashAlgorithm?.signature,X);let Y=new d2(X,G),Z=this.createPacket([Y]);return Buffer.concat(Z.map((Q)=>Q.serialize()))}sendChangeCipherSpec(){let W=l2.createEmpty().serialize(),G=WJ(this.dtls)([{type:20,fragment:W}],++this.dtls.recordSequenceNumber);return Buffer.concat(G.map((Y)=>Y.serialize()))}sendFinished(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((V)=>V.serialize())),G=this.cipher.verifyData(W),X=new $O(G);this.dtls.epoch=1;let[Y]=this.createPacket([X]);this.dtls.recordSequenceNumber=0;let Z=this.cipher.encryptPacket(Y).serialize();return v9(this.dtls.sessionId,"finished",this.cipher.cipher.summary),Z}},cY={};cY[2]=({cipher:W,srtp:G,dtls:X})=>(Y)=>{if(v9(X.sessionId,"serverHello",Y.cipherSuite),W.remoteRandom=TG.from(Y.random),W.cipherSuite=Y.cipherSuite,v9(X.sessionId,"selected cipherSuite",W.cipherSuite),Y.extensions)Y.extensions.forEach((Z)=>{switch(Z.type){case gY.type:{let V=gY.fromData(Z.data),Q=sN.findMatchingSRTPProfile(V.profiles,X.options.srtpProfiles||[]);if(v9(X.sessionId,"selected srtp profile",Q),Q==null)return;G.srtpProfile=Q}break;case HH.type:X.remoteExtendedMasterSecret=!0;break;case AH.type:v9(X.sessionId,"RenegotiationIndication");break}})};cY[11]=({cipher:W,dtls:G})=>(X)=>{v9(G.sessionId,"handshake certificate",X),W.remoteCertificate=X.certificateList[0]};cY[12]=({cipher:W,dtls:G})=>(X)=>{if(!W.localRandom||!W.remoteRandom)throw Error();v9(G.sessionId,"ServerKeyExchange",X),v9(G.sessionId,"selected curve",X.namedCurve),W.remoteKeyPair={curve:X.namedCurve,publicKey:X.publicKey},W.localKeyPair=p2(X.namedCurve)};cY[13]=({dtls:W})=>(G)=>{v9(W.sessionId,"certificate_request",G),W.requestedCertificateTypes=G.certificateTypes,W.requestedSignatureAlgorithms=G.signatures};cY[14]=({dtls:W})=>(G)=>{v9(W.sessionId,"server_hello_done",G)};var qS=class W{constructor(G,X){this.serverVersion=G,this.cookie=X}msgType=3;messageSeq;static spec={serverVersion:WK,cookie:BG.types.buffer(BG.types.uint8)};static createEmpty(){return new W(void 0,void 0)}static deSerialize(G){return new W(...Object.values(BG.decode(G,W.spec)))}serialize(){let G=BG.encode(this,W.spec).slice();return Buffer.from(G)}get version(){return{major:255-this.serverVersion.major,minor:255-this.serverVersion.minor}}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},Vn=M1("werift-dtls : packages/dtls/src/context/dtls.ts : log"),HF=class{constructor(W,G){this.options=W,this.sessionType=G}version={major:254,minor:253};lastFlight=[];lastMessage=[];recordSequenceNumber=0;sequenceNumber=0;epoch=0;flight=0;handshakeCache={};cookie;requestedCertificateTypes=[];requestedSignatureAlgorithms=[];remoteExtendedMasterSecret=!1;get sessionId(){return this.cookie?this.cookie.toString("hex").slice(0,10):""}get sortedHandshakeCache(){return Object.entries(this.handshakeCache).sort(([W],[G])=>Number(W)-Number(G)).flatMap(([,{data:W}])=>W.sort((G,X)=>G.message_seq-X.message_seq))}checkHandshakesExist=(W)=>!W.find((G)=>this.sortedHandshakeCache.find((X)=>X.msg_type===G)==null);bufferHandshakeCache(W,G,X){if(!this.handshakeCache[X])this.handshakeCache[X]={data:[],isLocal:G,flight:X};let Y=W.filter((Z)=>{let V=this.handshakeCache[X].data.find((Q)=>Q.msg_type===Z.msg_type);if(V)return Vn(this.sessionId,"exist",V.summary,G,X),!1;return!0});this.handshakeCache[X].data=[...this.handshakeCache[X].data,...Y]}},Qn=class{constructor(W){this.socket=W}send=(W)=>{return this.socket.send(W)}},SO=class W{static type=10;static spec={type:f7.types.uint16be,data:f7.types.array(f7.types.uint16be,f7.types.uint16be,"bytes")};type=W.type;data=[];constructor(G={}){Object.assign(this,G)}static createEmpty(){return new W}static fromData(G){return new W({type:W.type,data:f7.decode(G,W.spec.data)})}static deSerialize(G){return new W(f7.decode(G,W.spec))}serialize(){return Buffer.from(f7.encode(this,W.spec).slice())}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},xO=class W{static type=13;static spec={type:b7.types.uint16be,data:b7.types.array({hash:b7.types.uint8,signature:b7.types.uint8},b7.types.uint16be,"bytes")};type=W.type;data=[];constructor(G={}){Object.assign(this,G)}static createEmpty(){return new W}static deSerialize(G){return new W(b7.decode(G,W.spec))}serialize(){let G=b7.encode(this,W.spec).slice();return Buffer.from(G)}static fromData(G){let X=Buffer.alloc(2);return X.writeUInt16BE(W.type),W.deSerialize(Buffer.concat([X,G]))}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},AF=class W{constructor(G,X){this.level=G,this.description=X}static spec={level:EG.types.uint8,description:EG.types.uint8};static deSerialize(G){return new W(...Object.values(EG.decode(G,W.spec)))}serialize(){let G=EG.encode(this,W.spec).slice();return Buffer.from(G)}},zF=M1("werift-dtls : packages/dtls/record/receive.ts : log"),JO=M1("werift-dtls : packages/dtls/record/receive.ts : err"),Jn=(W)=>{let G=0,X=[];while(W.length>G){let Y=W.readUInt16BE(G+11);if(W.length<G+(12+Y))break;let Z=b2.deSerialize(W.subarray(G));X.push(Z),G+=13+Y}return X},Un=(W,G)=>(X)=>{switch(X.recordLayerHeader.contentType){case 20:return zF(W.sessionId,"change cipher spec"),[{type:20,data:void 0}];case 22:{let Z=X.fragment;try{if(X.recordLayerHeader.epoch>0)zF(W.sessionId,"decrypt handshake"),Z=G.decryptPacket(X)}catch(V){throw JO(W.sessionId,"decrypt failed",V),V}try{let V=0,Q=[];while(Z.length>V){let J=P5.deSerialize(Z.subarray(V));Q.push({type:22,data:J}),V+=J.fragment_length+12}return Q}catch(V){throw JO(W.sessionId,"decSerialize failed",V,Z),V}}case 23:return[{type:23,data:G.decryptPacket(X)}];case 21:{let Z=AF.deSerialize(X.fragment);if(EO[Z.description]==null){let V=G.decryptPacket(X);Z=AF.deSerialize(V)}if(JO(W.sessionId,"ContentType.alert",Z,EO[Z.description],"flight",W.flight,"lastFlight",W.lastFlight),Z.level>1)throw Error("alert fatal error");return[{type:21,data:void 0}]}default:return[{type:21,data:void 0}]}},IF=M1("werift-dtls : packages/dtls/src/socket.ts : log"),wF=M1("werift-dtls : packages/dtls/src/socket.ts : err"),NS=class{constructor(W,G){this.options=W,this.sessionType=G,this.dtls=new HF(this.options,this.sessionType),this.cipher=new aN(this.sessionType,this.options.cert,this.options.key,this.options.signatureHash),this.transport=new Qn(this.options.transport),this.setupExtensions(),this.transport.socket.onData=this.udpOnMessage}onConnect=new f0;onData=new f0;onError=new f0;onClose=new f0;transport;cipher;dtls;srtp=new sN;connected=!1;extensions=[];onHandleHandshakes;bufferFragmentedHandshakes=[];renegotiation(){IF("renegotiation",this.sessionType),this.connected=!1,this.cipher=new aN(this.sessionType,this.options.cert,this.options.key,this.options.signatureHash),this.dtls=new HF(this.options,this.sessionType),this.srtp=new sN,this.extensions=[],this.bufferFragmentedHandshakes=[]}udpOnMessage=(W)=>{let G=Jn(W);for(let X of G)try{let Y=Un(this.dtls,this.cipher)(X);for(let Z of Y)switch(Z.type){case 22:{let V=Z.data,Q=this.handleFragmentHandshake([V]),J=Object.values(Q.reduce((U,q)=>{if(!U[q.msg_type])U[q.msg_type]=[];return U[q.msg_type].push(q),U},{})).map((U)=>P5.assemble(U)).sort((U,q)=>U.msg_type-q.msg_type);this.onHandleHandshakes(J).catch((U)=>{wF(this.dtls.sessionId,"onHandleHandshakes error",U),this.onError.execute(U)})}break;case 23:this.onData.execute(Z.data);break;case 21:this.onClose.execute();break}}catch(Y){wF(this.dtls.sessionId,"catch udpOnMessage error",Y)}};setupExtensions(){if(IF(this.dtls.sessionId,"support srtpProfiles",this.options.srtpProfiles),this.options.srtpProfiles&&this.options.srtpProfiles.length>0){let W=gY.create(this.options.srtpProfiles,Buffer.from([0]));this.extensions.push(W.extension)}{let W=SO.createEmpty();W.data=L2,this.extensions.push(W.extension)}{let W=xO.createEmpty();W.data=E2,this.extensions.push(W.extension)}if(this.options.extendedMasterSecret)this.extensions.push({type:HH.type,data:Buffer.alloc(0)});{let W=AH.createEmpty();this.extensions.push(W.extension)}}waitForReady=(W)=>new Promise(async(G,X)=>{for(let Y=0;Y<10;Y++)if(W()){G();break}else await Zn(100*Y);X("waitForReady timeout")});handleFragmentHandshake(W){let G=W.filter((X)=>{if(X.fragment_length!==X.length)return this.bufferFragmentedHandshakes.push(X),!1;return!0});if(this.bufferFragmentedHandshakes.length>1){let[X]=this.bufferFragmentedHandshakes.slice(-1);if(X.fragment_offset+X.fragment_length===X.length)G=[...this.bufferFragmentedHandshakes,...G],this.bufferFragmentedHandshakes=[]}return G}send=async(W)=>{let G=WJ(this.dtls)([{type:23,fragment:W}],++this.dtls.recordSequenceNumber)[0];await this.transport.send(this.cipher.encryptPacket(G).serialize())};close(){this.transport.socket.close()}extractSessionKeys(W,G){let X=this.exportKeyingMaterial("EXTRACTOR-dtls_srtp",W*2+G*2),{clientKey:Y,serverKey:Z,clientSalt:V,serverSalt:Q}=CG.decode(X,{clientKey:CG.types.buffer(W),serverKey:CG.types.buffer(W),clientSalt:CG.types.buffer(G),serverSalt:CG.types.buffer(G)});if(this.sessionType===c4.CLIENT)return{localKey:Y,localSalt:V,remoteKey:Z,remoteSalt:Q};else return{localKey:Z,localSalt:Q,remoteKey:Y,remoteSalt:V}}exportKeyingMaterial(W,G){return md(W,G,this.cipher.masterSecret,this.cipher.localRandom.serialize(),this.cipher.remoteRandom.serialize(),this.sessionType===c4.CLIENT)}get remoteCertificate(){return this.cipher.remoteCertificate}},UO=M1("werift-dtls : packages/dtls/src/client.ts : log"),jF=class extends NS{constructor(W){super(W,c4.CLIENT);this.onHandleHandshakes=this.handleHandshakes,UO(this.dtls.sessionId,"start client")}async connect(){await new Yo(this.transport,this.dtls,this.cipher).exec(this.extensions)}flight5;handleHandshakes=async(W)=>{UO(this.dtls.sessionId,"handleHandshakes",W.map((G)=>G.msg_type));for(let G of W)switch(G.msg_type){case 3:{let X=qS.deSerialize(G.fragment);await new Vo(this.transport,this.dtls).exec(X)}break;case 2:{if(this.connected)return;this.flight5=new Yn(this.transport,this.dtls,this.cipher,this.srtp),this.flight5.handleHandshake(G)}break;case 11:case 12:case 13:await this.waitForReady(()=>!!this.flight5),this.flight5?.handleHandshake(G);break;case 14:{await this.waitForReady(()=>!!this.flight5),this.flight5?.handleHandshake(G);let X=[11,12,this.options.certificateRequest&&13].filter((Y)=>typeof Y==="number");await this.waitForReady(()=>this.dtls.checkHandshakesExist(X)),await this.flight5?.exec()}break;case 20:this.dtls.flight=7,this.connected=!0,this.onConnect.execute(),UO(this.dtls.sessionId,"dtls connected");break}}},h7=M1("werift-dtls : packages/dtls/flight/server/flight2.ts : log"),Nn=(W,G,X,Y)=>(Z)=>{h7("dtls version",Z.clientVersion),G.flight=2,G.recordSequenceNumber=0,G.sequenceNumber=0,Z.extensions.forEach((A)=>{switch(A.type){case SO.type:{let H=SO.fromData(A.data).data;h7(G.sessionId,"curves",H);let I=H.filter((w)=>L2.includes(w))[0];X.namedCurve=I,h7(G.sessionId,"curve selected",X.namedCurve)}break;case xO.type:{if(!X.signatureHashAlgorithm)throw Error("need to set certificate");let H=xO.fromData(A.data).data;h7(G.sessionId,"hash,signature",H);let I=H.find((C)=>C.signature===X.signatureHashAlgorithm?.signature)?.signature,w=H.find((C)=>C.hash===X.signatureHashAlgorithm?.hash)?.hash;if(I==null||w==null)throw Error("invalid signatureHash")}break;case gY.type:{if(!G.options?.srtpProfiles)return;if(G.options.srtpProfiles.length===0)return;let H=gY.fromData(A.data);h7(G.sessionId,"srtp profiles",H.profiles);let I=sN.findMatchingSRTPProfile(H.profiles,G.options?.srtpProfiles);if(!I)throw Error();Y.srtpProfile=I,h7(G.sessionId,"srtp profile selected",Y.srtpProfile)}break;case HH.type:G.remoteExtendedMasterSecret=!0;break;case AH.type:h7(G.sessionId,"RenegotiationIndication",A.data);break;case 43:{let I=[...A.data.subarray(1)].map((w)=>w.toString(10));h7("dtls supported version",I)}break}}),X.localRandom=new TG,X.remoteRandom=TG.from(Z.random);let V=Z.cipherSuites;h7(G.sessionId,"cipher suites",V);let Q=(()=>{switch(X.signatureHashAlgorithm?.signature){case p4.ecdsa_3:return RO.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_49195;case p4.rsa_1:return RO.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256_49199}})();if(Q===void 0||!V.includes(Q))throw Error("dtls cipher suite negotiation failed");X.cipherSuite=Q,h7(G.sessionId,"selected cipherSuite",X.cipherSuite),X.localKeyPair=p2(X.namedCurve),G.cookie||=qn(20);let J=new qS({major:254,minor:253},G.cookie),U=m2(G)([J]),N=WJ(G)(U.map((A)=>({type:22,fragment:A.serialize()})),++G.recordSequenceNumber).map((A)=>A.serialize());for(let A of N)W.send(A)},OF=M1("werift-dtls : packages/dtls/flight/server/flight4.ts : log"),Hn=class extends GJ{constructor(W,G,X,Y){super(W,G,4,6);this.cipher=X,this.srtp=Y}async exec(W,G=!1){if(this.dtls.flight===4){OF(this.dtls.sessionId,"flight4 twice"),this.send(this.dtls.lastMessage);return}this.dtls.flight=4,this.dtls.sequenceNumber=1,this.dtls.bufferHandshakeCache([W],!1,4);let X=[this.sendServerHello(),this.sendCertificate(),this.sendServerKeyExchange(),G&&this.sendCertificateRequest(),this.sendServerHelloDone()].filter((Y)=>Y);this.dtls.lastMessage=X,await this.transmit(X)}sendServerHello(){let W=[];if(this.srtp.srtpProfile)W.push(gY.create([this.srtp.srtpProfile],Buffer.from([0])).extension);if(this.dtls.options.extendedMasterSecret)W.push({type:HH.type,data:Buffer.alloc(0)});let G=AH.createEmpty();W.push(G.extension);let X=new i2(this.dtls.version,this.cipher.localRandom,Buffer.from([0]),this.cipher.cipherSuite,0,W),Y=this.createPacket([X]);return Buffer.concat(Y.map((Z)=>Z.serialize()))}sendCertificate(){let W=new eN([Buffer.from(this.cipher.localCert)]),G=this.createPacket([W]);return Buffer.concat(G.map((X)=>X.serialize()))}sendServerKeyExchange(){let W=this.cipher.generateKeySignature("sha256");if(!this.cipher.signatureHashAlgorithm)throw Error("not exist");let G=new s2(B2.named_curve_3,this.cipher.namedCurve,this.cipher.localKeyPair.publicKey.length,this.cipher.localKeyPair.publicKey,this.cipher.signatureHashAlgorithm.hash,this.cipher.signatureHashAlgorithm.signature,W.length,W),X=this.createPacket([G]);return Buffer.concat(X.map((Y)=>Y.serialize()))}sendCertificateRequest(){let W=new n2(vd,E2,[]);OF(this.dtls.sessionId,"sendCertificateRequest",W);let G=this.createPacket([W]);return Buffer.concat(G.map((X)=>X.serialize()))}sendServerHelloDone(){let W=new r2,G=this.createPacket([W]);return Buffer.concat(G.map((X)=>X.serialize()))}},mY=M1("werift-dtls : packages/dtls/flight/server/flight6.ts"),An=class extends GJ{constructor(W,G,X){super(W,G,6);this.cipher=X}handleHandshake(W){this.dtls.bufferHandshakeCache([W],!1,5);let G=(()=>{switch(W.msg_type){case 11:return eN.deSerialize(W.fragment);case 15:return d2.deSerialize(W.fragment);case 16:return o2.deSerialize(W.fragment);case 20:return $O.deSerialize(W.fragment)}})();if(G){let X=QJ[G.msgType];if(!X)return;X({dtls:this.dtls,cipher:this.cipher})(G)}}async exec(){if(this.dtls.flight===6){mY(this.dtls.sessionId,"flight6 twice"),this.send(this.dtls.lastMessage);return}this.dtls.flight=6;let W=[this.sendChangeCipherSpec(),this.sendFinished()];this.dtls.lastMessage=W,await this.transmit(W)}sendChangeCipherSpec(){let W=l2.createEmpty().serialize(),G=WJ(this.dtls)([{type:20,fragment:W}],++this.dtls.recordSequenceNumber);return Buffer.concat(G.map((Y)=>Y.serialize()))}sendFinished(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((V)=>V.serialize())),G=this.cipher.verifyData(W),X=new $O(G);this.dtls.epoch=1;let[Y]=this.createPacket([X]);return this.dtls.recordSequenceNumber=0,this.cipher.encryptPacket(Y).serialize()}},QJ={};QJ[16]=({cipher:W,dtls:G})=>(X)=>{if(W.remoteKeyPair={curve:W.namedCurve,publicKey:X.publicKey},!W.remoteKeyPair.publicKey||!W.localKeyPair||!W.remoteRandom||!W.localRandom)throw Error("not exist");let Y=S2(W.remoteKeyPair.publicKey,W.localKeyPair.privateKey,W.localKeyPair.curve);mY(G.sessionId,"extendedMasterSecret",G.options.extendedMasterSecret,G.remoteExtendedMasterSecret);let Z=Buffer.concat(G.sortedHandshakeCache.map((V)=>V.serialize()));W.masterSecret=G.options.extendedMasterSecret&&G.remoteExtendedMasterSecret?k2(Y,Z):x2(Y,W.remoteRandom.serialize(),W.localRandom.serialize()),W.cipher=f2(W.cipherSuite),W.cipher.init(W.masterSecret,W.localRandom.serialize(),W.remoteRandom.serialize()),mY(G.sessionId,"setup cipher",W.cipher.summary)};QJ[11]=({cipher:W,dtls:G})=>(X)=>{mY(G.sessionId,"handshake certificate",X),W.remoteCertificate=X.certificateList[0]};QJ[15]=({cipher:W,dtls:G})=>(X)=>{if(!W.remoteCertificate)throw Error("client certificate missing before certificate verify");mY(G.sessionId,"certificate_verify",X.algorithm)};QJ[20]=({dtls:W})=>(G)=>{mY(W.sessionId,"finished",G)};var $Y=M1("werift-dtls : packages/dtls/src/server.ts : log"),zn=class extends NS{constructor(W){super(W,c4.SERVER);this.onHandleHandshakes=this.handleHandshakes,$Y(this.dtls.sessionId,"start server")}flight6;handleHandshakes=async(W)=>{$Y(this.dtls.sessionId,"handleHandshakes",W.map((G)=>G.msg_type));for(let G of W)switch(G.msg_type){case 1:{if(this.connected)this.renegotiation();let X=h2.deSerialize(G.fragment);if(X.cookie.length===0)$Y(this.dtls.sessionId,"send flight2"),Nn(this.transport,this.dtls,this.cipher,this.srtp)(X);else if(this.dtls.cookie&&X.cookie.equals(this.dtls.cookie))$Y(this.dtls.sessionId,"send flight4"),await new Hn(this.transport,this.dtls,this.cipher,this.srtp).exec(G,this.options.certificateRequest);else $Y("wrong state",{dtlsCookie:this.dtls.cookie?.toString("hex").slice(10),helloCookie:X.cookie.toString("hex").slice(10)})}break;case 11:case 15:case 16:{if(this.connected)return;this.flight6=new An(this.transport,this.dtls,this.cipher),this.flight6.handleHandshake(G)}break;case 20:{await this.waitForReady(()=>!!this.flight6),this.flight6?.handleHandshake(G);let X=[16,this.options.certificateRequest&&11,this.options.certificateRequest&&15].filter((Y)=>typeof Y==="number");await this.waitForReady(()=>this.dtls.checkHandshakesExist(X)),await this.flight6?.exec(),this.connected=!0,this.onConnect.execute(),$Y(this.dtls.sessionId,"dtls connected")}break}}},YK=554869826,In=8,wn=1398035790,n6=20,HS=24,AS=1,zS=2,jn=6,On=50;var IS=((W)=>{return W[W.REQUEST=0]="REQUEST",W[W.INDICATION=16]="INDICATION",W[W.RESPONSE=256]="RESPONSE",W[W.ERROR=272]="ERROR",W})(IS||{}),wS=((W)=>{return W[W.BINDING=1]="BINDING",W[W.SHARED_SECRET=2]="SHARED_SECRET",W[W.ALLOCATE=3]="ALLOCATE",W[W.REFRESH=4]="REFRESH",W[W.SEND=6]="SEND",W[W.DATA=7]="DATA",W[W.CREATE_PERMISSION=8]="CREATE_PERMISSION",W[W.CHANNEL_BIND=9]="CHANNEL_BIND",W})(wS||{});function yQ(W){return OS(W).toString("hex").substring(0,W)}function KS(){return OS(12)}var KF=class{queue=[];wait=new f0;put(W){if(this.queue.push(W),this.queue.length===1)this.wait.execute(W)}get(){let W=this.queue.shift();if(!W)return new Promise((G)=>{this.wait.subscribe((X)=>{this.queue.shift(),G(X)})});return W}},kO=(W)=>{let G,X,Y=new Promise((V,Q)=>{G=V,X=Q});Y.then(()=>{Z.execute(void 0),Z.complete()}).catch((V)=>{Z.execute(V??Error()),Z.complete()});let Z=new f0;return W(G,X,Z).catch(()=>{}),{awaitable:Y,resolve:G,reject:X}};function xY(W){let[G]=W,X=aQ.default.isV4Format(G)?AS:zS,Y=Buffer.alloc(4);return Y.writeUInt8(0,0),Y.writeUInt8(X,1),Y.writeUInt16BE(W[1],2),Buffer.concat([Y,aQ.default.toBuffer(G)])}function Kn(W){if(W.length<4)throw Error("STUN error code is less than 4 bytes");let G=W.readUInt8(2),X=W.readUInt8(3),Y=W.slice(4).toString("utf8");return[G*100+X,Y]}function kY(W){if(W.length<4)throw Error("STUN address length is less than 4 bytes");let G=W.readUInt8(1),X=W.readUInt16BE(2),Y=W.slice(4);switch(G){case AS:if(Y.length!=4)throw Error("STUN address has invalid length for IPv4");return[aQ.default.toString(Y),X];case zS:if(Y.length!=16)throw Error("STUN address has invalid length for IPv6");return[aQ.default.toString(Y),X];default:throw Error("STUN address has unknown protocol")}}var ZK=Buffer.alloc(6);ZK.writeUInt16BE(YK>>16,0);ZK.writeUInt32BE(YK,2);function CS(W,G){let X=[...ZK,...G],Y=W.slice(0,2);for(let Z=2;Z<W.length;Z++){let V=W[Z]^X[Z-2],Q=Buffer.alloc(1);Q.writeUIntBE(V,0,1),Y=Buffer.concat([Y,Q])}return Y}function gN(W,G){return kY(CS(W,G))}function Cn(W){let G=Buffer.alloc(4);G.writeUInt16BE(0,0),G.writeUInt8(Math.floor(W[0]/100),2),G.writeUInt8(W[0]%100,3);let X=Buffer.from(W[1],"utf8");return Buffer.concat([G,X])}function uN(W,G){return CS(xY(W),G)}var vQ=(W)=>{let G=Buffer.alloc(4);return G.writeUInt32BE(W,0),G},gQ=(W)=>W.readUInt32BE(0),Dn=(W)=>{let G=Buffer.alloc(4);return G.writeUInt16BE(W,0),G},Mn=(W)=>W.readUInt16BE(0),CF=(W)=>{return new nj(W.toString()).toBuffer()},DF=(W)=>{let G=new nj(W);return BigInt(G.toString())},qO=(W)=>Buffer.from(W,"utf8"),NO=(W)=>W.toString("utf8"),HO=(W)=>W,AO=(W)=>W,Tn=(W)=>Buffer.from([]),Pn=(W)=>null,DS=[[1,"MAPPED-ADDRESS",xY,kY],[3,"CHANGE-REQUEST",vQ,gQ],[4,"SOURCE-ADDRESS",xY,kY],[5,"CHANGED-ADDRESS",xY,kY],[6,"USERNAME",qO,NO],[8,"MESSAGE-INTEGRITY",HO,AO],[9,"ERROR-CODE",Cn,Kn],[12,"CHANNEL-NUMBER",Dn,Mn],[13,"LIFETIME",vQ,gQ],[18,"XOR-PEER-ADDRESS",uN,gN],[19,"DATA",HO,AO],[20,"REALM",qO,NO],[21,"NONCE",HO,AO],[22,"XOR-RELAYED-ADDRESS",uN,gN],[25,"REQUESTED-TRANSPORT",vQ,gQ],[32,"XOR-MAPPED-ADDRESS",uN,gN],[36,"PRIORITY",vQ,gQ],[37,"USE-CANDIDATE",Tn,Pn],[32802,"SOFTWARE",qO,NO],[32808,"FINGERPRINT",vQ,gQ],[32809,"ICE-CONTROLLED",CF,DF],[32810,"ICE-CONTROLLING",CF,DF],[32811,"RESPONSE-ORIGIN",xY,kY],[32812,"OTHER-ADDRESS",xY,kY]],MS=class{constructor(W=[]){this.attributes=W}getAttributes(){return this.attributes}setAttribute(W,G){let X=this.attributes.find((Y)=>Y[0]===W);if(X)X[1]=G;else this.attributes.push([W,G]);return this}getAttributeValue(W){let G=this.attributes.find((X)=>X[0]===W);if(!G)return;return G[1]}get attributesKeys(){return this.attributes.map((W)=>W[0])}clear(){this.attributes=[]}},MF=DS.reduce((W,G)=>{return W[G[0]]=G,W},{}),Rn=DS.reduce((W,G)=>{return W[G[1]]=G,W},{});function VK(W,G){if(W.length<n6)return;let X=W.readUint16BE(2);if(W.length!==n6+X)return;let Y=W.readUint16BE(0),Z=Buffer.from(W.slice(n6-12,n6)),V=new MS;for(let J=n6;J<=W.length-4;){let U=W.readUInt16BE(J),q=W.readUInt16BE(J+2),N=W.slice(J+4,J+4+q),A=4*Math.floor((q+3)/4)-q;if(Object.keys(MF).includes(U.toString())){let[,I,,w]=MF[U];if(w.name===gN.name)V.setAttribute(I,w(N,Z));else V.setAttribute(I,w(N));if(I==="FINGERPRINT"){let C=TS(W.slice(0,J));if(V.getAttributeValue("FINGERPRINT")!==C)return}else if(I==="MESSAGE-INTEGRITY"){if(G){let C=Ln(W.slice(0,J),G),D=V.getAttributeValue("MESSAGE-INTEGRITY");if(!C.equals(D))return}}}J+=4+q+A}let Q=V.getAttributes();return V.clear(),new m7(Y&16111,Y&272,Z,Q)}var m7=class extends MS{constructor(W,G,X=KS(),Y=[]){super(Y);this.messageMethod=W,this.messageClass=G,this.transactionId=X}toJSON(){return this.json}get json(){return{messageMethod:wS[this.messageMethod],messageClass:IS[this.messageClass],attributes:this.attributes}}get transactionIdHex(){return this.transactionId.toString("hex")}get bytes(){let W=Buffer.from([]);for(let X of this.attributesKeys){let Y=this.getAttributeValue(X),[Z,,V]=Rn[X],Q=V.name===uN.name?V(Y,this.transactionId):V(Y),J=Q.length,U=4*Math.floor((J+3)/4)-J,q=Buffer.alloc(4);q.writeUInt16BE(Z,0),q.writeUInt16BE(J,2),W=Buffer.concat([W,q,Q,Buffer.alloc(U,0)])}let G=Buffer.alloc(8);return G.writeUInt16BE(this.messageMethod|this.messageClass,0),G.writeUInt16BE(W.length,2),G.writeUInt32BE(YK,4),Buffer.concat([G,this.transactionId,W])}addMessageIntegrity(W){return this.setAttribute("MESSAGE-INTEGRITY",this.messageIntegrity(W)),this}messageIntegrity(W){let G=QK(this.bytes,this.bytes.length-n6+HS);return Buffer.from(jS("sha1",W).update(G).digest("hex"),"hex")}addFingerprint(){this.setAttribute("FINGERPRINT",TS(this.bytes))}},QK=(W,G)=>{let X=Buffer.alloc(W.length);return W.copy(X,0,0,2),X.writeUInt16BE(G,2),W.copy(X,4,4),X};function TS(W){let G=QK(W,W.length-n6+In);return(Td(G)^wn)>>>0}function Ln(W,G){let X=QK(W,W.length-n6+HS);return Buffer.from(jS("sha1",G).update(X).digest("hex"),"hex")}function TF(W){let G=W%4;if(G===0)return 0;else return 4-G}var PS=class extends Error{response;addr},RS=class extends PS{constructor(W,G){super();this.response=W,this.addr=G}get str(){let W="STUN transaction failed",G=this.response.getAttributeValue("ERROR-CODE");if(G){let[X,Y]=G;W+=` (${X} - ${Y})`}return W}},Bn=class extends PS{get str(){return"STUN transaction timed out"}},zO=M1("werift-ice:packages/ice/src/stun/transaction.ts"),JK=class{constructor(W,G,X,Y){this.request=W,this.addr=G,this.protocol=X,this.retransmissions=Y,this.triesMax=1+(this.retransmissions?this.retransmissions:jn)}timeoutDelay=On;ended=!1;tries=0;triesMax;onResponse=new f0;responseReceived=(W,G)=>{if(this.onResponse.length>0)if(W.messageClass===256)this.onResponse.execute(W,G),this.onResponse.complete();else this.onResponse.error(new RS(W,G))};run=async()=>{try{return this.retry().catch((G)=>{zO("retry failed",G)}),await this.onResponse.asPromise()}catch(W){throw W}finally{this.cancel()}};retry=async()=>{while(this.tries<this.triesMax&&!this.ended){if(this.protocol.sendStun(this.request,this.addr).catch((W)=>{zO("send stun failed",W)}),await new Promise((W)=>setTimeout(W,this.timeoutDelay)),this.ended)break;this.timeoutDelay*=2,this.tries++}if(this.tries>=this.triesMax)zO(`retry failed times:${this.tries} maxLimit:${this.triesMax}`),this.onResponse.error(new Bn)};cancel(){this.ended=!0}},PF=M1("werift-ice : packages/ice/src/stun/protocol.ts"),RF=class W{static type="stun";type=W.type;transport;transactions={};get transactionsKeys(){return Object.keys(this.transactions)}localCandidate;sentMessage;localIp;onRequestReceived=new f0;onDataReceived=new f0;constructor(){}connectionMade=async(G,X,Y)=>{if(G)this.transport=await PO.init("udp4",{portRange:X,interfaceAddresses:Y});else this.transport=await PO.init("udp6",{portRange:X,interfaceAddresses:Y});this.transport.onData=(Z,V)=>{this.datagramReceived(Z,V)}};datagramReceived(G,X){try{let Y=VK(G);if(!Y){if(this.localCandidate)this.onDataReceived.execute(G);return}if((Y.messageClass===256||Y.messageClass===272)&&this.transactionsKeys.includes(Y.transactionIdHex))this.transactions[Y.transactionIdHex].responseReceived(Y,X);else if(Y.messageClass===0)this.onRequestReceived.execute(Y,X,G)}catch(Y){PF("datagramReceived error",Y)}}getExtraInfo(){let{address:G,port:X}=this.transport.address;return[G,X]}async sendStun(G,X){if(this.transport.closed)return;let Y=G.bytes;await this.transport.send(Y,X).catch(()=>{PF("sendStun failed",X,G)})}async sendData(G,X){if(this.transport.closed)return;await this.transport.send(G,X)}async request(G,X,Y,Z){if(this.transactionsKeys.includes(G.transactionIdHex))throw Error("already request ed");if(Y)G.addMessageIntegrity(Y),G.addFingerprint();let V=new JK(G,X,this,Z);this.transactions[G.transactionIdHex]=V;try{return await V.run()}catch(Q){throw Q}finally{delete this.transactions[G.transactionIdHex]}}async close(){Object.values(this.transactions).forEach((G)=>{G.cancel()}),await this.transport.close(),this.onRequestReceived.complete(),this.onDataReceived.complete()}},i9=M1("werift-ice:packages/ice/src/turn/protocol.ts"),Fn=500,Sn=600,xn=285212672,kn=class W{constructor(G){this.turn=G,G.onData.subscribe((X,Y)=>{this.handleStunMessage(X,Y)}).disposer(this.disposer)}static type="turn";type=W.type;localCandidate;disposer=new Ed;onRequestReceived=new f0;onDataReceived=new f0;handleStunMessage=(G,X)=>{try{let Y=VK(G);if(!Y){this.onDataReceived.execute(G);return}if(Y.messageClass===256||Y.messageClass===272){let Z=this.turn.transactions[Y.transactionIdHex];if(Z)Z.responseReceived(Y,X)}else if(Y.messageClass===0)this.onRequestReceived.execute(Y,X,G)}catch(Y){i9("datagramReceived error",Y)}};async request(G,X,Y){if(this.turn.transactions[G.transactionIdHex])throw Error("exist");if(Y)G.addMessageIntegrity(Y),G.addFingerprint();let Z=new JK(G,X,this);this.turn.transactions[G.transactionIdHex]=Z;try{return await Z.run()}catch(V){throw V}finally{delete this.turn.transactions[G.transactionIdHex]}}async connectionMade(){}async sendData(G,X){await this.turn.sendData(G,X)}async sendStun(G,X){await this.turn.sendData(G.bytes,X)}async close(){return this.disposer.dispose(),this.turn.close()}},_n=class W{constructor(G,X,Y,Z,V,Q={}){this.server=G,this.username=X,this.password=Y,this.lifetime=Z,this.transport=V,this.options=Q,this.channelRefreshTime=this.options.channelRefreshTime??Fn}static type="turn";type=W.type;onData=new f0;onRequestReceived=new f0;onDataReceived=new f0;integrityKey;nonce;realm;relayedAddress;mappedAddress;localCandidate;transactions={};refreshHandle;channelNumber=16384;channelByAddr={};addrByChannel={};channelRefreshTime;channelBinding;channelRefreshAt=0;tcpBuffer=Buffer.alloc(0);permissionByAddr={};creatingPermission=Promise.resolve();async connectionMade(){this.transport.onData=(Z,V)=>{this.dataReceived(Z,V)};let G=new m7(3,0);G.setAttribute("LIFETIME",this.lifetime).setAttribute("REQUESTED-TRANSPORT",xn);let[X]=await this.requestWithRetry(G,this.server).catch((Z)=>{throw i9("connect error",Z),Z});this.relayedAddress=X.getAttributeValue("XOR-RELAYED-ADDRESS"),this.mappedAddress=X.getAttributeValue("XOR-MAPPED-ADDRESS");let Y=X.getAttributeValue("LIFETIME");i9("connect",this.relayedAddress,this.mappedAddress,{exp:Y}),this.refresh(Y)}handleChannelData(G){let[X,Y]=a1.Unpack("!HH",G.slice(0,4)),Z=this.addrByChannel[X];if(Z){let V=G.subarray(4,4+Y);this.onData.execute(V,Z)}}handleSTUNMessage(G,X){try{let Y=VK(G);if(!Y)throw Error("not stun message");if(Y.messageClass===256||Y.messageClass===272){let Z=this.transactions[Y.transactionIdHex];if(Z)Z.responseReceived(Y,X)}else if(Y.messageClass===0)this.onData.execute(G,X);if(Y.getAttributeValue("DATA")){let Z=Y.getAttributeValue("DATA");this.onData.execute(Z,X)}}catch(Y){i9("parse error",G.toString())}}dataReceived(G,X){let Y=(Z,V)=>{if(Z.length>=4&&BF(Z))this.handleChannelData(Z);else this.handleSTUNMessage(Z,V)};if(this.transport.type==="tcp"){this.tcpBuffer=Buffer.concat([this.tcpBuffer,G]);while(this.tcpBuffer.length>=4){let[,Z]=r9(this.tcpBuffer.subarray(0,4),[2,2]);Z+=TF(Z);let V=BF(this.tcpBuffer)?4+Z:20+Z;if(this.tcpBuffer.length<V)break;Y(this.tcpBuffer.subarray(0,V),X),this.tcpBuffer=this.tcpBuffer.subarray(V)}}else Y(G,X)}async send(G,X){if(this.transport.closed)return;if(this.transport.type==="tcp"){let Y=TF(G.length);await this.transport.send(Y>0?Buffer.concat([G,Buffer.alloc(Y)]):G,X)}else await this.transport.send(G,X)}async createPermission(G){let X=new m7(8,0);X.setAttribute("XOR-PEER-ADDRESS",G).setAttribute("USERNAME",this.username).setAttribute("REALM",this.realm).setAttribute("NONCE",this.nonce),await this.request(X,this.server).catch((Y)=>{throw Y})}refresh=(G)=>{this.refreshHandle=kO(async(X,Y,Z)=>{let V=!0;Z.once(()=>{V=!1});while(V){let Q=0.8333333333333334*G*1000;i9("refresh delay",Q,{exp:G}),await $n(Q);let J=new m7(4,0);J.setAttribute("LIFETIME",G);try{let[U]=await this.requestWithRetry(J,this.server);G=U.getAttributeValue("LIFETIME"),i9("refresh",{exp:G})}catch(U){i9("refresh error",U)}}})};async request(G,X){if(this.transactions[G.transactionIdHex])throw Error("exist");if(this.integrityKey)G.setAttribute("USERNAME",this.username).setAttribute("REALM",this.realm).setAttribute("NONCE",this.nonce).addMessageIntegrity(this.integrityKey).addFingerprint();let Y=new JK(G,X,this);this.transactions[G.transactionIdHex]=Y;try{return await Y.run()}catch(Z){throw Z}finally{delete this.transactions[G.transactionIdHex]}}async requestWithRetry(G,X){let Y,Z;try{[Y,Z]=await this.request(G,X)}catch(V){if(V instanceof RS==!1)throw i9("requestWithRetry error",V),V;this.server=V.addr;let[Q]=V.response.getAttributeValue("ERROR-CODE"),J=V.response.getAttributeValue("NONCE"),U=V.response.getAttributeValue("REALM");if((Q===401&&U||Q===438&&this.realm)&&J){if(i9("retry with nonce",Q),this.nonce=J,Q===401)this.realm=U;this.integrityKey=vn(this.username,this.realm,this.password),G.transactionId=KS(),[Y,Z]=await this.request(G,this.server)}else throw V}return[Y,Z]}async sendData(G,X){let Y=await this.getChannel(X).catch((V)=>{return Error("channelBind error")});if(Y instanceof Error){await this.getPermission(X);let V=new m7(6,16).setAttribute("DATA",G).setAttribute("XOR-PEER-ADDRESS",X);await this.sendStun(V,this.server);return}let Z=a1.Pack("!HH",[Y.number,G.length]);await this.send(Buffer.concat([Buffer.from(Z),G]),this.server)}async getPermission(G){if(await this.creatingPermission,!this.permissionByAddr[G.join(":")])this.creatingPermission=this.createPermission(G),this.permissionByAddr[G.join(":")]=!0,await this.creatingPermission.catch((Y)=>{throw i9("createPermission error",Y),Y})}async getChannel(G){if(this.channelBinding)await this.channelBinding;let X=this.channelByAddr[G.join(":")];if(!X)this.channelByAddr[G.join(":")]={number:this.channelNumber++,address:G},X=this.channelByAddr[G.join(":")],this.addrByChannel[X.number]=G,this.channelBinding=this.channelBind(X.number,G),await this.channelBinding.catch((Y)=>{throw i9("channelBind error",Y),Y}),this.channelRefreshAt=pQ(Date.now()/1000)+this.channelRefreshTime,this.channelBinding=void 0,i9("channelBind",X);else if(this.channelRefreshAt<pQ(Date.now()/1000))this.channelBinding=this.channelBind(X.number,G),this.channelRefreshAt=pQ(Date.now()/1000)+this.channelRefreshTime,await this.channelBinding.catch((Y)=>{throw i9("channelBind error",Y),Y}),this.channelBinding=void 0,i9("channelBind refresh",X);return X}async channelBind(G,X){let Y=new m7(9,0);Y.setAttribute("CHANNEL-NUMBER",G).setAttribute("XOR-PEER-ADDRESS",X);let[Z]=await this.requestWithRetry(Y,this.server);if(Z.messageMethod!==9)throw Error("should be CHANNEL_BIND")}async sendStun(G,X){await this.send(G.bytes,X)}async close(){this.refreshHandle?.resolve?.(),await this.transport.close()}};async function yn({address:W,username:G,password:X},{lifetime:Y,portRange:Z,interfaceAddresses:V,transport:Q}={}){Y??=Sn,Q??="udp";let J=Q==="udp"?await PO.init("udp4",{portRange:Z,interfaceAddresses:V}):await Sd.init(W),U=new _n(W,G,X,Y,J);return await U.connectionMade(),U}async function LF({address:W,username:G,password:X},{lifetime:Y,portRange:Z,interfaceAddresses:V,transport:Q}={}){let J=await yn({address:W,username:G,password:X},{lifetime:Y,portRange:Z,interfaceAddresses:V,transport:Q});return new kn(J)}function vn(W,G,X){return En("md5").update(Buffer.from([W,G,X].join(":"))).digest()}function BF(W){return(W[0]&192)==64}var DG=class W{constructor(G,X,Y,Z,V,Q,J,U,q,N,A,H){this.foundation=G,this.component=X,this.transport=Y,this.priority=Z,this.host=V,this.port=Q,this.type=J,this.relatedAddress=U,this.relatedPort=q,this.tcptype=N,this.generation=A,this.ufrag=H}static fromSdp(G){let X=G.split(" ");if(X.length<8)throw Error("SDP does not have enough properties");let Y={foundation:X[0],component:Number(X[1]),transport:X[2],priority:Number(X[3]),host:X[4],port:Number(X[5]),type:X[7]};for(let A=8,H=X.length-1;A<H;A+=2)if(X[A]==="raddr")Y.related_address=X[A+1];else if(X[A]==="rport")Y.related_port=Number(X[A+1]);else if(X[A]==="tcptype")Y.tcptype=X[A+1];else if(X[A]==="generation")Y.generation=Number(X[A+1]);else if(X[A]==="ufrag")Y.ufrag=X[A+1];let{foundation:Z,component:V,transport:Q,priority:J,host:U,port:q,type:N}=Y;return new W(Z,V,Q,J,U,q,N,Y.related_address,Y.related_port,Y.tcptype,Y.generation,Y.ufrag)}canPairWith(G){let X=EF(this.host),Y=EF(G.host);return this.component===G.component&&this.transport.toLowerCase()===G.transport.toLowerCase()&&X===Y}toSdp(){let G=`${this.foundation} ${this.component} ${this.transport} ${this.priority} ${this.host} ${this.port} typ ${this.type}`;if(this.relatedAddress)G+=` raddr ${this.relatedAddress}`;if(this.relatedPort!=null)G+=` rport ${this.relatedPort}`;if(this.tcptype)G+=` tcptype ${this.tcptype}`;if(this.generation!=null)G+=` generation ${this.generation}`;if(this.ufrag!=null)G+=` ufrag ${this.ufrag}`;return G}};function _O(W,G,X){let Y=`${W}|${G}|${X}`;return gn("md5").update(Y,"ascii").digest("hex").slice(7)}function hN(W,G=65535){let Y=0;if(W==="host")Y=126;else if(W==="prflx")Y=110;else if(W==="srflx")Y=100;else Y=0;return 16777216*Y+256*G+255}var hn=class{cache=new Map;mdnsInstance=LS.default();constructor(){this.mdnsInstance.setMaxListeners(50)}lookup(W){return new Promise((G,X)=>{let Y=()=>{this.mdnsInstance.removeListener("response",V),clearTimeout(Z)},Z=setTimeout(()=>{Y(),X(Error("No mDNS response"))},1e4),V=(Q)=>{let J=Q.answers?.[0];if(J?.type!=="A")return;if(J.name!==W)return;Y(),G(J.data)};this.mdnsInstance.on("response",V),this.mdnsInstance.query(W,"A")})}close(){this.mdnsInstance.destroy()}},mn=M1("werift-ice : packages/ice/src/ice.ts : log"),FF=class{constructor(W,G,X){this.protocol=W,this.remoteCandidate=G,this.iceControlling=X}id=bn().toString();handle;nominated=!1;remoteNominated=!1;_state=0;get state(){return this._state}packetsSent=0;packetsReceived=0;bytesSent=0;bytesReceived=0;rtt;totalRoundTripTime=0;roundTripTimeMeasurements=0;toJSON(){return this.json}get json(){return{protocol:this.protocol.type,localCandidate:this.localCandidate.toSdp(),remoteCandidate:this.remoteCandidate.toSdp()}}updateState(W){this._state=W}get localCandidate(){if(!this.protocol.localCandidate)throw Error("localCandidate not exist");return this.protocol.localCandidate}get remoteAddr(){return[this.remoteCandidate.host,this.remoteCandidate.port]}get component(){return this.localCandidate.component}get priority(){return vO(this.localCandidate,this.remoteCandidate,this.iceControlling)}get foundation(){return this.localCandidate.foundation}},SF=1,$N=2,fn=5,xF=6;var cn={useIpv4:!0,useIpv6:!0};function kF(W){if(!["host","relay","srflx"].includes(W.type))throw Error(`Unexpected candidate type "${W.type}"`);return W}function pn(W,G){return W.sort((X,Y)=>vO(X.localCandidate,X.remoteCandidate,G)-vO(Y.localCandidate,Y.remoteCandidate,G)).reverse()}function vO(W,G,X){let Y=X&&W.priority||G.priority,Z=X&&G.priority||W.priority;return 1*Math.min(Y,Z)+2*Math.max(Y,Z)+(Y>Z?1:0)}async function ln(W,G){let X=new m7(1,0);try{let[Y]=await W.request(X,G),Z=W.localCandidate;if(!Z)throw Error("not exist");return new DG(_O("srflx","udp",Z.host),Z.component,Z.transport,hN("srflx"),Y.getAttributeValue("XOR-MAPPED-ADDRESS")[0],Y.getAttributeValue("XOR-MAPPED-ADDRESS")[1],"srflx",Z.host,Z.port)}catch(Y){mn("error serverReflexiveCandidate",Y)}}function _F(W){if(W&&Number.isNaN(W[1]))return[W[0],443];return W}var dn=M1("werift-ice : packages/ice/src/utils.ts");function on(W){return iN(W.family)===4&&W.address?.startsWith("169.254.")||iN(W.family)===6&&W.address?.startsWith("fe80::")}function yF(W,{useLinkLocalAddress:G}={}){let X=["ipsec","tun","utun","tap"],Y=["vmnet","veth"],Z=BS.networkInterfaces();dn(Z);let V=Object.keys(Z).map((Q)=>{for(let U of[...X,...Y])if(Q.startsWith(U))return{nic:Q,addresses:[]};let J=Z[Q].filter((U)=>iN(U.family)===W&&!ES.default.isLoopback(U.address)&&(G?!0:!on(U)));return{nic:Q,addresses:J.map((U)=>U.address)}}).filter((Q)=>!!Q);return V.sort((Q,J)=>Q.nic.localeCompare(J.nic)),Object.values(V).flatMap((Q)=>Q.addresses)}function nn(W,G,X={}){let Y=[];if(W)Y.push(...yF(4,X));if(G)Y.push(...yF(6,X));return Y}var e1=M1("werift-ice : packages/ice/src/ice.ts : log"),rn=class{constructor(W,G){this._iceControlling=W,this.options={...cn,...G};let{stunServer:X,turnServer:Y}=this.options;this.stunServer=_F(X)??["stun.l.google.com",19302],this.turnServer=_F(Y),this.restart(),e1("new Connection",this.options)}localUsername=yQ(4);localPassword=yQ(22);remoteIsLite=!1;remotePassword="";remoteUsername="";checkList=[];localCandidates=[];stunServer;turnServer;options;remoteCandidatesEnd=!1;localCandidatesEnd=!1;generation=-1;userHistory={};tieBreaker=BigInt(new RN(un(64)).toString());state="new";lookup;_remoteCandidates=[];nominated;nominating=!1;checkListDone=!1;checkListState=new KF;earlyChecks=[];earlyChecksDone=!1;localCandidatesStart=!1;protocols=[];queryConsentHandle;onData=new f0;stateChanged=new f0;onIceCandidate=new f0;get iceControlling(){return this._iceControlling}set iceControlling(W){if(this.generation>0||this.nominated)return;this._iceControlling=W;for(let G of this.checkList)G.iceControlling=W}async restart(){if(this.generation++,this.localUsername=yQ(4),this.localPassword=yQ(22),this.options.localPasswordPrefix)this.localPassword=this.options.localPasswordPrefix+this.localPassword.slice(this.options.localPasswordPrefix.length);this.userHistory[this.localUsername]=this.localPassword,this.remoteUsername="",this.remotePassword="",this.localCandidates=[],this._remoteCandidates=[],this.remoteCandidatesEnd=!1,this.localCandidatesEnd=!1,this.state="new",this.lookup?.close?.(),this.lookup=void 0,this.nominated=void 0,this.nominating=!1,this.checkList=[],this.checkListDone=!1,this.checkListState=new KF,this.earlyChecks=[],this.earlyChecksDone=!1,this.localCandidatesStart=!1;for(let W of this.protocols)if(W.localCandidate)W.localCandidate.generation=this.generation,W.localCandidate.ufrag=this.localUsername;this.queryConsentHandle?.resolve?.(),this.queryConsentHandle=void 0}resetNominatedPair(){e1("resetNominatedPair"),this.nominated=void 0,this.nominating=!1}setRemoteParams({iceLite:W,usernameFragment:G,password:X}){e1("setRemoteParams",{iceLite:W,usernameFragment:G,password:X}),this.remoteIsLite=W,this.remoteUsername=G,this.remotePassword=X}async gatherCandidates(){if(!this.localCandidatesStart){this.localCandidatesStart=!0;let W=nn(this.options.useIpv4,this.options.useIpv6,{useLinkLocalAddress:this.options.useLinkLocalAddress}),{interfaceAddresses:G}=this.options;if(G){let Y=W.filter((Z)=>Object.values(G).includes(Z));if(Y.length)W=Y}if(this.options.additionalHostAddresses)W=Array.from(new Set([...this.options.additionalHostAddresses,...W]));let X=this.getCandidatePromises(W,5);await Promise.allSettled(X),this.localCandidatesEnd=!0}this.setState("completed")}appendLocalCandidate(W){this.localCandidates.push(W),this.onIceCandidate.execute(W)}ensureProtocol(W){W.onRequestReceived.subscribe((G,X,Y)=>{if(G.messageMethod!==1){this.respondError(G,X,W,[400,"Bad Request"]);return}let Z=G.getAttributeValue("USERNAME"),{remoteUsername:V}=vF(Z),Q=this.userHistory[V]??this.localPassword,{iceControlling:J}=this;if(J&&G.attributesKeys.includes("ICE-CONTROLLING"))if(this.tieBreaker>=G.getAttributeValue("ICE-CONTROLLING")){this.respondError(G,X,W,[487,"Role Conflict"]);return}else this.switchRole(!1);else if(!J&&G.attributesKeys.includes("ICE-CONTROLLED"))if(this.tieBreaker<G.getAttributeValue("ICE-CONTROLLED"))this.respondError(G,X,W,[487,"Role Conflict"]);else{this.switchRole(!0);return}if(this.options.filterStunResponse&&!this.options.filterStunResponse(G,X,W))return;let U=new m7(1,256,G.transactionId);if(U.setAttribute("XOR-MAPPED-ADDRESS",X).addMessageIntegrity(Buffer.from(Q,"utf8")).addFingerprint(),W.sendStun(U,X).catch((q)=>{e1("sendStun error",q)}),this.checkList.length===0&&!this.earlyChecksDone)this.earlyChecks.push([G,X,W]);else this.checkIncoming(G,X,W)}),W.onDataReceived.subscribe((G)=>{try{let X=this.nominated;if(X&&X.protocol===W)X.packetsReceived++,X.bytesReceived+=G.length;this.onData.execute(G)}catch(X){e1("dataReceived",X)}})}getCandidatePromises(W,G=5){let X=[];W=W.filter((U)=>{if(this.protocols.find((q)=>q.localIp===U))return!1;return!0});let Y=W.map(async(U)=>{let q=new RF;this.ensureProtocol(q);try{await q.connectionMade($F(U),this.options.portRange,this.options.interfaceAddresses),q.localIp=U,this.protocols.push(q),e1("protocol",q.localIp);let N=[U,q.getExtraInfo()[1]];return q.localCandidate=new DG(_O("host","udp",N[0]),1,"udp",hN("host"),N[0],N[1],"host",void 0,void 0,void 0,this.generation,this.localUsername),this.pairLocalProtocol(q),this.appendLocalCandidate(q.localCandidate),q}catch(N){e1("error protocol STUN",N)}});X.push(...Y.map((U)=>U.then((q)=>q?.localCandidate)));let{stunServer:Z,turnServer:V}=this;if(Z){let U=Y.map(async(q)=>{let N=await q;if(!N)return;return new Promise(async(H,I)=>{let w=setTimeout(I,G*1000);if(N.localCandidate?.host&&$F(N.localCandidate?.host)){let C=await ln(N,Z).catch((D)=>{e1("error",D)});if(C)this.appendLocalCandidate(C);clearTimeout(w),H(C)}else clearTimeout(w),H()}).catch((H)=>{e1("query STUN server",H)})});X.push(...U)}let{turnUsername:Q,turnPassword:J}=this.options;if(V&&Q&&J){let U=(async()=>{let q=await LF({address:V,username:Q,password:J},{portRange:this.options.portRange,interfaceAddresses:this.options.interfaceAddresses,transport:this.options.turnTransport==="tcp"?"tcp":"udp"}).catch(async(H)=>{if(this.options.turnTransport!=="tcp")return await LF({address:V,username:Q,password:J},{portRange:this.options.portRange,interfaceAddresses:this.options.interfaceAddresses,transport:"tcp"});else throw H});this.ensureProtocol(q),this.protocols.push(q);let N=q.turn.relayedAddress,A=q.turn.mappedAddress;return e1("turn candidateAddress",N),q.localCandidate=new DG(_O("relay","udp",N[0]),1,"udp",hN("relay"),N[0],N[1],"relay",A[0],A[1],void 0,this.generation,this.localUsername),this.appendLocalCandidate(q.localCandidate),q.localCandidate})().catch((q)=>{e1("query TURN server",q)});if(this.options.forceTurn)X=[];X.push(U)}return X}async connect(){if(e1("start connect ice"),!this.localCandidatesEnd){if(!this.localCandidatesStart)throw Error("Local candidates gathering was not performed")}if(!this.remoteUsername||!this.remotePassword)throw Error("Remote username or password is missing");for(let G of this.remoteCandidates)this.pairRemoteCandidate(G);this.sortCheckList(),this.unfreezeInitial(),e1("earlyChecks",this.localPassword,this.earlyChecks.length);for(let G of this.earlyChecks)this.checkIncoming(...G);this.earlyChecks=[],this.earlyChecksDone=!0;for(;;){if(this.state==="closed")break;if(!this.schedulingChecks())break;await yO.setTimeout(20)}let W=$N;while(this.checkList.length>0&&W===$N)W=await this.checkListState.get(),e1("checkListState",W);for(let G of this.checkList)G.handle?.resolve?.();if(W!==SF)throw Error("ICE negotiation failed");this.queryConsent(),this.setState("connected")}unfreezeInitial(){let[W]=this.checkList;if(!W)return;if(W.state===0)W.updateState(1);let G=new Set(W.localCandidate.foundation);for(let X of this.checkList)if(X.component===W.component&&!G.has(X.localCandidate.foundation)&&X.state===0)X.updateState(1),G.add(X.localCandidate.foundation)}schedulingChecks(){{let W=this.checkList.filter((G)=>{if(this.options.forceTurn&&G.protocol.type===RF.type)return!1;return!0}).find((G)=>G.state===1);if(W)return W.handle=this.checkStart(W),!0}{let W=this.checkList.find((G)=>G.state===0);if(W)return W.handle=this.checkStart(W),!0}if(!this.remoteCandidatesEnd)return!this.checkListDone;return!1}queryConsent=()=>{if(this.queryConsentHandle)this.queryConsentHandle.resolve();this.queryConsentHandle=kO(async(W,G,X)=>{let Y=0,Z=!1,V=new AbortController;X.once(()=>{Z=!0,Y+=xF,V.abort(),this.queryConsentHandle=void 0});let{localUsername:Q,remoteUsername:J,iceControlling:U}=this;try{while(this.state!=="closed"&&!Z){await yO.setTimeout(fn*(0.8+0.4*Math.random())*1000,void 0,{signal:V.signal});let q=this.nominated;if(!q||Z)break;let N=this.buildRequest({nominate:!1,localUsername:Q,remoteUsername:J,iceControlling:U});try{if(await q.protocol.request(N,q.remoteAddr,Buffer.from(this.remotePassword,"utf8"),0),Y=0,this.state==="disconnected")this.setState("connected")}catch(A){if(q.id===this.nominated?.id){e1("no stun response"),Y++,this.setState("disconnected");break}}if(Y>=xF){e1("Consent to send expired"),this.queryConsentHandle=void 0,this.setState("closed");break}}}catch(q){}})};async close(){if(this.setState("closed"),this.queryConsentHandle?.resolve?.(),this.checkList&&!this.checkListDone)this.checkListState.put(new Promise((W)=>{W($N)}));this.nominated=void 0;for(let W of this.protocols)if(W.close)await W.close();this.protocols=[],this.localCandidates=[],this.lookup?.close?.(),this.lookup=void 0}setState(W){this.state=W,this.stateChanged.execute(W)}async addRemoteCandidate(W){if(!W){this.remoteCandidatesEnd=!0;return}if(W.host.includes(".local"))try{if(!this.lookup)this.lookup=new hn;let G=await this.lookup.lookup(W.host);W.host=G}catch(G){return}try{kF(W)}catch(G){return}e1("addRemoteCandidate",W),this._remoteCandidates.push(W),this.pairRemoteCandidate(W),this.sortCheckList()}send=async(W)=>{let G=this.nominated;if(G)await G.protocol.sendData(W,G.remoteAddr),G.packetsSent++,G.bytesSent+=W.length;else return};getDefaultCandidate(){let W=this.localCandidates.sort((X,Y)=>X.priority-Y.priority),[G]=W;return G}set remoteCandidates(W){if(this.remoteCandidatesEnd)throw Error("Cannot set remote candidates after end-of-candidates.");this._remoteCandidates=[];for(let G of W){try{kF(G)}catch(X){continue}this._remoteCandidates.push(G)}this.remoteCandidatesEnd=!0}get remoteCandidates(){return this._remoteCandidates}get candidatePairs(){return this.checkList}sortCheckList(){pn(this.checkList,this.iceControlling)}findPair(W,G){return this.checkList.find((Y)=>bN.default(Y.protocol,W)&&bN.default(Y.remoteCandidate,G))}switchRole(W){e1("switch role",W),this.iceControlling=W,this.sortCheckList()}checkComplete(W){if(W.handle=void 0,W.state===3){if(W.nominated&&(W.remoteCandidate.generation!=null?W.remoteCandidate.generation===this.generation:!0)&&this.nominated==null){e1("nominated",W.toJSON()),this.nominated=W,this.nominating=!1;for(let G of this.checkList)if(G.component===W.component&&[1,0].includes(G.state))G.updateState(4)}if(this.nominated){if(!this.checkListDone)e1("ICE completed"),this.checkListState.put(new Promise((G)=>G(SF))),this.checkListDone=!0;return}e1("not completed",W.toJSON());for(let G of this.checkList)if(G.localCandidate.foundation===W.localCandidate.foundation&&G.state===0)G.updateState(1)}{let G=[3,4];if(this.checkList.find(({state:X})=>!G.includes(X)))return}if(!this.iceControlling){if(this.checkList.find(({state:X})=>X===3))return}if(!this.checkListDone)e1("ICE failed"),this.checkListState.put(new Promise((G)=>{G($N)}))}checkStart=(W)=>kO(async(G)=>{e1("check start",W.toJSON()),W.updateState(2);let X={},{remotePassword:Y,remoteUsername:Z,generation:V}=this,Q=W.localCandidate.ufrag??this.localUsername,J=this.iceControlling&&!this.remoteIsLite,U=this.buildRequest({nominate:J,localUsername:Q,remoteUsername:Z,iceControlling:this.iceControlling}),q=performance.now();try{let[N,A]=await W.protocol.request(U,W.remoteAddr,Buffer.from(Y,"utf8"),4),I=(performance.now()-q)/1000;W.rtt=I,W.totalRoundTripTime+=I,W.roundTripTimeMeasurements++,e1("response received",U.toJSON(),N.toJSON(),A,{localUsername:Q,remoteUsername:Z,remotePassword:Y,generation:V,rtt:I}),X.response=N,X.addr=A}catch(N){let A=N;if(e1("failure case",U.toJSON(),A.response?JSON.stringify(A.response.toJSON(),null,2):N,{localUsername:Q,remoteUsername:Z,remotePassword:Y,generation:V},W.remoteAddr),A.response?.getAttributeValue("ERROR-CODE")[0]===487){if(U.attributesKeys.includes("ICE-CONTROLLED"))this.switchRole(!0);else if(U.attributesKeys.includes("ICE-CONTROLLING"))this.switchRole(!1);await this.checkStart(W).awaitable,G();return}if(A.response?.getAttributeValue("ERROR-CODE")[0]===401){e1("retry 401",W.toJSON()),await this.checkStart(W).awaitable,G();return}else{e1("checkStart CandidatePairState.FAILED",W.toJSON()),W.updateState(4),this.checkComplete(W),G();return}}if(!bN.default(X.addr,W.remoteAddr)){W.updateState(4),this.checkComplete(W),G();return}if(J||W.remoteNominated)W.nominated=!0;else if(this.iceControlling&&!this.nominating){this.nominating=!0;let N=this.buildRequest({nominate:!0,localUsername:Q,remoteUsername:Z,iceControlling:this.iceControlling});try{await W.protocol.request(N,W.remoteAddr,Buffer.from(this.remotePassword,"utf8"))}catch(A){W.updateState(4),this.checkComplete(W);return}W.nominated=!0}W.updateState(3),this.checkComplete(W),G()});addPair(W){this.checkList.push(W),this.sortCheckList()}checkIncoming(W,G,X){let Y=W.getAttributeValue("USERNAME"),{remoteUsername:Z}=vF(Y),V,[Q,J]=G;for(let q of this.remoteCandidates)if(q.host===Q&&q.port===J){V=q;break}if(!V)V=new DG(yQ(10),1,"udp",W.getAttributeValue("PRIORITY"),Q,J,"prflx",void 0,void 0,void 0,void 0,void 0),this._remoteCandidates.push(V);let U=this.findPair(X,V);if(!U)U=new FF(X,V,this.iceControlling),U.updateState(1),this.addPair(U);if(U.localCandidate.ufrag=Z,e1("Triggered Checks",W.toJSON(),U.toJSON(),{localUsername:this.localUsername,remoteUsername:this.remoteUsername,localPassword:this.localPassword,remotePassword:this.remotePassword,generation:this.generation}),[1,4].includes(U.state))U.handle=this.checkStart(U);if(W.attributesKeys.includes("USE-CANDIDATE")&&!this.iceControlling){if(U.remoteNominated=!0,U.state===3)U.nominated=!0,this.checkComplete(U)}}tryPair(W,G){if(W.localCandidate?.canPairWith(G)&&!this.findPair(W,G)){let X=new FF(W,G,this.iceControlling);if(this.options.filterCandidatePair&&!this.options.filterCandidatePair(X))return;X.updateState(1),this.addPair(X)}}pairLocalProtocol(W){for(let G of this.remoteCandidates)this.tryPair(W,G)}pairRemoteCandidate=(W)=>{for(let G of this.protocols)this.tryPair(G,W)};buildRequest({nominate:W,remoteUsername:G,localUsername:X,iceControlling:Y}){let Z=an({remoteUsername:G,localUsername:X}),V=new m7(1,0);if(V.setAttribute("USERNAME",Z).setAttribute("PRIORITY",hN("prflx")),Y){if(V.setAttribute("ICE-CONTROLLING",this.tieBreaker),W)V.setAttribute("USE-CANDIDATE",null)}else V.setAttribute("ICE-CONTROLLED",this.tieBreaker);return V}respondError(W,G,X,Y){let Z=new m7(W.messageMethod,272,W.transactionId);Z.setAttribute("ERROR-CODE",Y).addMessageIntegrity(Buffer.from(this.localPassword,"utf8")).addFingerprint(),X.sendStun(Z,G).catch((V)=>{e1("sendStun error",V)})}},an=({remoteUsername:W,localUsername:G})=>{return`${W}:${G}`},vF=(W)=>{let[G,X]=W.split(":");return{remoteUsername:G,localUsername:X}};function gF(W){return W.map((G,X)=>[X,G])}function b4(W,G){let X=W.split(G);return[X[0],X.slice(1).join(G)]}var UK=class extends sn{addEventListener=(W,G)=>{this.addListener(W,G)};removeEventListener=(W,G)=>{this.removeListener(W,G)}},tn=M1("werift:packages/webrtc/src/dataChannel.ts");function en(W){return Buffer.isBuffer(W)?W.length:Buffer.byteLength(W)}var $S=class extends UK{constructor(W,G,X=!0){super();if(this.sctp=W,this.parameters=G,this.sendOpen=X,this.id=this.parameters.id,G.negotiated){if(this.id==null||this.id<0||this.id>65534)throw Error("ID must be in range 0-65534 if data channel is negotiated out-of-band");this.sctp.dataChannelAddNegotiated(this)}else if(X)this.sendOpen=!1,this.sctp.dataChannelOpen(this)}stateChange=new f0;stateChanged=new f0;onMessage=new f0;error=new f0;bufferedAmountLow=new f0;onopen;onclose;onclosing;onmessage;onerror;isCreatedByRemote=!1;id;readyState="connecting";bufferedAmount=0;_bufferedAmountLowThreshold=0;messagesSent=0;bytesSent=0;messagesReceived=0;bytesReceived=0;get ordered(){return this.parameters.ordered}get maxRetransmits(){return this.parameters.maxRetransmits}get maxPacketLifeTime(){return this.parameters.maxPacketLifeTime}get label(){return this.parameters.label}get protocol(){return this.parameters.protocol}get negotiated(){return this.parameters.negotiated}get bufferedAmountLowThreshold(){return this._bufferedAmountLowThreshold}set bufferedAmountLowThreshold(W){if(W<0||W>4294967295)throw Error("bufferedAmountLowThreshold must be in range 0 - 4294967295");this._bufferedAmountLowThreshold=W}setId(W){this.id=W}setReadyState(W){if(W!==this.readyState){switch(this.readyState=W,this.stateChange.execute(W),this.stateChanged.execute(W),W){case"open":if(this.onopen)this.onopen();this.emit("open");break;case"closed":if(this.onclose)this.onclose();this.emit("close");break;case"closing":if(this.onclosing)this.onclosing();break}tn("change state",W)}}addBufferedAmount(W){let G=this.bufferedAmount>this.bufferedAmountLowThreshold&&this.bufferedAmount+W<=this.bufferedAmountLowThreshold;if(this.bufferedAmount+=W,G)this.bufferedAmountLow.execute(),this.emit("bufferedamountlow")}send(W){let G=this.sctp.datachannelSend(this,W);this.messagesSent++,this.bytesSent+=G}close(){this.sctp.dataChannelClose(this)}},FS=class{label="";maxPacketLifeTime;maxRetransmits;ordered=!0;protocol="";negotiated=!1;id;constructor(W={}){Object.assign(this,W)}};var wH=()=>({type:"nack"}),JJ=()=>({type:"nack",parameter:"pli"}),jH=()=>({type:"goog-remb"}),Wi=()=>({type:"transport-cc"}),$G=class{payloadType;mimeType;clockRate;channels;rtcpFeedback=[];parameters;direction="all";constructor(W){Object.assign(this,W)}get name(){return this.mimeType.split("/")[1]}get contentType(){return this.mimeType.split("/")[0]}get str(){let W=`${this.name}/${this.clockRate}`;if(this.channels===2)W+="/2";return W}},Gi=class{id;uri;constructor(W){Object.assign(this,W)}};var Xi=class{type;parameter;constructor(W={}){Object.assign(this,W)}},Yi=class{ssrc;constructor(W={}){Object.assign(this,W)}},Zi=class{ssrc;payloadType;rtx;constructor(W){Object.assign(this,W)}},SS=class{rid;direction;constructor(W){Object.assign(this,W)}},Vi=(W={})=>new $G({mimeType:"video/h264",clockRate:90000,rtcpFeedback:[wH(),JJ(),jH()],parameters:"profile-level-id=42e01f;packetization-mode=1;level-asymmetry-allowed=1",...W}),xS=(W={})=>new $G({mimeType:"video/VP8",clockRate:90000,rtcpFeedback:[wH(),JJ(),jH()],...W}),Qi=(W={})=>new $G({mimeType:"video/VP9",clockRate:90000,rtcpFeedback:[wH(),JJ(),jH()],...W}),Ji=(W={})=>new $G({mimeType:"video/AV1X",clockRate:90000,rtcpFeedback:[wH(),JJ(),jH()],...W}),kS=(W={})=>new $G({mimeType:"audio/OPUS",clockRate:48000,channels:2,...W}),_S=(W={})=>new $G({mimeType:"audio/PCMU",clockRate:8000,channels:1,payloadType:0,...W}),yS=[Ji(),Qi(),xS(),Vi(),kS(),_S()].map((W)=>W.mimeType),oH0=yS.filter((W)=>W.toLowerCase().startsWith("video/")),nH0=yS.filter((W)=>W.toLowerCase().startsWith("audio/"));var uF=2,hF=3,Hi=0,SN=50,bF=51,mF=53,Ai=56,zi=57,Ii="0.0.0.0",fF=9,gO={auto:"actpass",client:"active",server:"passive"},cF=Object.keys(gO).reduce((W,G)=>{let X=gO[G];return W[X]=G,W},{}),wi=["apt","max-fr","max-fs","maxplaybackrate","minptime","stereo","useinbandfec"],vS=["cname","msid","mslabel","label"],pF={SRTP_AES128_CM_HMAC_SHA1_80:IH,SRTP_AEAD_AES_128_GCM:VJ},mN=["sendonly","sendrecv"],ji=["sendrecv","recvonly"],Oi=class extends Map{constructor(W){super();if(W)for(let G of W)this.set(G.id,G)}};function Z8(W,...G){let X=G.filter((Y)=>Y!==void 0);return`${W}_${X.join("_")}`}function FG(){return performance.now()}var Ki=class{constructor(W,G,X,Y,Z){if(this.kind=W,this.receiver=X,this.sender=Y,this._direction=Z,G)this.setDtlsTransport(G)}id=Ni().toString();onTrack=new f0;mid;mLineIndex;usedForSender=!1;_currentDirection;offerDirection;_codecs=[];set codecs(W){this._codecs=W}get codecs(){return this._codecs}headerExtensions=[];options={};stopping=!1;stopped=!1;get dtlsTransport(){return this.receiver.dtlsTransport}get direction(){return this._direction}setDirection(W){if(this._direction=W,mN.includes(this._currentDirection??""))this.usedForSender=!0}get currentDirection(){return this._currentDirection}setCurrentDirection(W){this._currentDirection=W}setDtlsTransport(W){this.receiver.setDtlsTransport(W),this.sender.setDtlsTransport(W)}get msid(){return`${this.sender.streamId} ${this.sender.trackId}`}addTrack(W){if(this.receiver.addTrack(W))this.onTrack.execute(W,this)}stop(){if(this.stopping)return;this.stopping=!0}getPayloadType(W){return this.codecs.find((G)=>G.mimeType.toLowerCase().includes(W.toLowerCase()))?.payloadType}getCodecStats(){let W=FG(),G=[];if(!this.dtlsTransport)return G;let X=Z8("transport",this.dtlsTransport.id);for(let Y of this.codecs){let Z={type:"codec",id:Z8("codec",Y.payloadType,X),timestamp:W,payloadType:Y.payloadType,transportId:X,mimeType:Y.mimeType,clockRate:Y.clockRate,channels:Y.channels,sdpFmtpLine:Y.parameters};G.push(Z)}return G}},Ci="inactive",gS="sendonly",uS="recvonly",hS="sendrecv",wO=[Ci,gS,uS,hS],uO=class extends UK{uuid=bS().toString();streamId;remote=!1;label;kind;id;ssrc;rid;header;codec;enabled=!0;onReceiveRtp=new f0;onReceiveRtcp=new f0;onSourceChanged=new f0;stopped=!1;muted=!0;constructor(W){super();Object.assign(this,W),this.onReceiveRtp.subscribe((G)=>{this.muted=!1,this.header=G.header}),this.label=`${this.remote?"remote":"local"} ${this.kind}`}stop=()=>{this.stopped=!0,this.muted=!0,this.onReceiveRtp.complete(),this.emit("ended")};writeRtp=(W)=>{if(this.remote)throw Error("this is remoteTrack");if(this.stopped)return;let G=Buffer.isBuffer(W)?t6.deSerialize(W):W;G.header.payloadType=this.codec?.payloadType??G.header.payloadType,this.onReceiveRtp.execute(G)}},Di=class{id;tracks=[];constructor(W){if(Array.isArray(W))this.tracks=W;else Object.assign(this,W);this.id??=bS().toString()}addTrack(W){W.streamId=this.id,this.tracks.push(W)}getTracks(){return this.tracks}getAudioTracks(){return this.tracks.filter((W)=>W.kind==="audio")}getVideoTracks(){return this.tracks.filter((W)=>W.kind==="video")}},Mi=M1("werift:packages/webrtc/src/utils.ts");function mS(W,G){let X=(V)=>V.toUpperCase(),Y=(V)=>V.match(/(.{2})/g).join(":"),Z=qi(G).update(W).digest("hex");return Y(X(Z))}var Ti={sha1:"sha1","sha-1":"sha1",sha224:"sha224","sha-224":"sha224",sha256:"sha256","sha-256":"sha256",sha384:"sha384","sha-384":"sha384",sha512:"sha512","sha-512":"sha512"};function fS(W){return Ti[W.trim().toLowerCase()]}function hO(W){return W.replace(/[^0-9a-f]/gi,"").toLowerCase()}function Pi(W){let G=W[0];return G>19&&G<64}var cS=(W,G)=>wO[wO.indexOf(W)&wO.indexOf(G)];function Ri(W){if(W==="sendonly")return"recvonly";if(W==="recvonly")return"sendonly";return W}var pS=Date.now,Li=BigInt(Date.now())*1000n-process.hrtime.bigint()/1000n,Bi=()=>{return Li+process.hrtime.bigint()/1000n},QH=()=>Date.now()/1000,Ei=()=>{let G=(FN.timeOrigin+FN.now()-Date.UTC(1900,0,1))/1000,[X,Y]=G.toString().split(".").map(Number);return E8([4,4],[X,Y]).readBigUInt64BE()},lS=(W)=>{let G=E8([8],[W]),[,X,Y]=r9(G,[2,2,2,2]);return E8([2,2],[X,Y]).readUInt32BE()};function $i(W){let G=(J)=>{if(!J)return;let[U,q]=J.split(":");return[U,Number.parseInt(q)]},X=G(W.find(({urls:J})=>J.includes("stun:"))?.urls.slice(5)),Y=G(W.find(({urls:J})=>J.includes("turn:"))?.urls.slice(5)),{credential:Z,username:V}=W.find(({urls:J})=>J.includes("turn:"))||{},Q={stunServer:X,turnServer:Y,turnUsername:V,turnPassword:Z};return Mi("iceOptions",Q),Q}var WA0=aN.createSelfSignedCertificateWithKey;var Fi=(W,G)=>{if(!W||typeof W!=="object")if(G!==null&&typeof G==="object")return G;else return W;if(!G||typeof G!=="object"){if(G==null)return W;return G}for(let X in G)if(Object.prototype.hasOwnProperty.call(G,X)){let Y=G[X];if(Y!=null)W[X]=Y}return W},Si=M1("werift:packages/webrtc/src/media/receiver/nack.ts"),lF=150,xi=class{constructor(W){this.receiver=W}newEstSeqNum=0;_lost={};nackLoop;onPacketLost=new f0;mediaSourceSsrc;retryCount=10;closed=!1;get lostSeqNumbers(){return Object.keys(this._lost).map(Number).sort()}getLost(W){return this._lost[W]}setLost(W,G){if(this._lost[W]=G,this.nackLoop||this.closed)return;this.nackLoop=setInterval(async()=>{try{if(await this.sendNack(),!Object.keys(this._lost).length)clearInterval(this.nackLoop),this.nackLoop=void 0}catch(X){Si("failed to send nack",X)}},5)}removeLost(W){delete this._lost[W]}addPacket(W){let{sequenceNumber:G,ssrc:X}=W.header;if(this.mediaSourceSsrc=X,this.newEstSeqNum===0){this.newEstSeqNum=G;return}if(this.getLost(G)){this.removeLost(G);return}if(G===M9(this.newEstSeqNum,1))this.newEstSeqNum=G;else if(G>M9(this.newEstSeqNum,1)){for(let Y=M9(this.newEstSeqNum,1);Y<G;Y=M9(Y,1))this.setLost(Y,1);this.newEstSeqNum=G,this.pruneLost()}}pruneLost(){if(this.lostSeqNumbers.length>lF)this._lost=Object.entries(this._lost).slice(-lF).reduce((W,[G,X])=>{return W[G]=X,W},{})}close(){this.closed=!0,clearInterval(this.nackLoop),this._lost={}}updateRetryCount(){this.lostSeqNumbers.forEach((W)=>{if(this._lost[W]++>this.retryCount)return this.removeLost(W),W})}sendNack=()=>new Promise((W,G)=>{if(this.lostSeqNumbers.length>0&&this.mediaSourceSsrc){let X=new YH({senderSsrc:this.receiver.rtcpSsrc,mediaSourceSsrc:this.mediaSourceSsrc,lost:this.lostSeqNumbers}),Y=new uY({feedback:X});this.receiver.dtlsTransport.sendRtcp([Y]).then(W).catch(G),this.updateRetryCount(),this.onPacketLost.execute(X)}})},_i=M1("werift:packages/webrtc/media/receiver/receiverTwcc"),yi=class{constructor(W,G,X){this.dtlsTransport=W,this.rtcpSsrc=G,this.mediaSourceSsrc=X,this.runTWCC()}extensionInfo={};twccRunning=!1;fbPktCount=0;lastTimestamp;handleTWCC(W){if(this.extensionInfo[W]={tsn:W,timestamp:Bi()},Object.keys(this.extensionInfo).length>10)this.sendTWCC()}async runTWCC(){while(this.twccRunning)this.sendTWCC(),await ki(100)}sendTWCC(){if(Object.keys(this.extensionInfo).length===0)return;let W=Object.values(this.extensionInfo).sort((N,A)=>N.tsn-A.tsn),G=W[0].tsn,X=W.slice(-1)[0].tsn,Y=[],Z=W[0].tsn,V=M9(X-G,1),Q,J,U=[];for(let N=G;N<=X;N++){let A=this.extensionInfo[N]?.timestamp;if(A){if(!this.lastTimestamp)this.lastTimestamp=A;if(!Q)Q=this.lastTimestamp;let H=A-this.lastTimestamp;this.lastTimestamp=A;let I=new yN({delta:Number(H)});if(I.parseDelta(),U.push(I),J!=null&&J.status!==I.type)Y.push(new lQ({packetStatus:J.status,runLength:N-J.minTSN})),J={minTSN:N,status:I.type};if(N===X)if(J!=null)Y.push(new lQ({packetStatus:J.status,runLength:N-J.minTSN+1}));else Y.push(new lQ({packetStatus:I.type,runLength:1}));if(J==null)J={minTSN:N,status:I.type}}}if(!Q)return;let q=new uY({feedback:new ZH({senderSsrc:this.rtcpSsrc,mediaSourceSsrc:this.mediaSourceSsrc,baseSequenceNumber:Z,packetStatusCount:V,referenceTime:Rd(Math.floor(Number(Q/1000n/64n))),fbPktCount:this.fbPktCount,recvDeltas:U,packetChunks:Y})});this.dtlsTransport.sendRtcp([q]).catch((N)=>{_i(N)}),this.extensionInfo={},this.fbPktCount=Pd(this.fbPktCount,1)}},vi=class{base_seq;max_seq;cycles=0;packets_received=0;clockRate;jitter_q4=0;last_arrival;last_timestamp;expected_prior=0;received_prior=0;constructor(W){this.clockRate=W}add(W,G=Date.now()/1000){let X=this.max_seq==null||M2(W.header.sequenceNumber,this.max_seq);if(this.packets_received++,this.base_seq==null)this.base_seq=W.header.sequenceNumber;if(X){let Y=pQ(G*this.clockRate);if(this.max_seq!=null&&W.header.sequenceNumber<this.max_seq)this.cycles+=65536;if(this.max_seq=W.header.sequenceNumber,W.header.timestamp!==this.last_timestamp&&this.packets_received>1){let Z=Math.abs(Y-(this.last_arrival??0)-(W.header.timestamp-(this.last_timestamp??0)));this.jitter_q4+=Z-(this.jitter_q4+8>>4)}this.last_arrival=Y,this.last_timestamp=W.header.timestamp}}get fraction_lost(){let W=this.packets_expected-this.expected_prior;this.expected_prior=this.packets_expected;let G=this.packets_received-this.received_prior;this.received_prior=this.packets_received;let X=W-G;if(W==0||X<=0)return 0;else return Math.floor((X<<8)/W)}get jitter(){return this.jitter_q4>>4}get packets_expected(){return this.cycles+(this.max_seq??0)-(this.base_seq??0)+1}get packets_lost(){let W=this.packets_expected-this.packets_received;return W<0?0:W}},a5=M1("werift:packages/webrtc/src/transport/dtls.ts"),dF=class W{constructor(G,X,Y,Z=[]){this.config=G,this.iceTransport=X,this.localCertificate=Y,this.srtpProfiles=Z,this.localCertificate??=W.localCertificate}id=hi().toString();state="new";role="auto";srtpStarted=!1;transportSequenceNumber=0;bytesSent=0;bytesReceived=0;packetsSent=0;packetsReceived=0;dataReceiver=()=>{};dtls;srtp;srtcp;onStateChange=new f0;onRtcp=new f0;onRtp=new f0;static localCertificate;static localCertificatePromise;remoteParameters;get localParameters(){return new mO(this.localCertificate?this.localCertificate.getFingerprints():[],this.role)}static async SetupCertificate(){if(this.localCertificate)return this.localCertificate;if(this.localCertificatePromise)return this.localCertificatePromise;return this.localCertificatePromise=(async()=>{let{certPem:G,keyPem:X,signatureHash:Y}=await aN.createSelfSignedCertificateWithKey({signature:p4.ecdsa_3,hash:rN.sha256_4},a6.secp256r1_23);return this.localCertificate=new dS(X,G,Y),this.localCertificate})(),this.localCertificatePromise}setRemoteParams(G){let X=mi([...this.remoteParameters?.fingerprints??[],...G.fingerprints]),Y=G.role==="auto"&&this.remoteParameters?.role?this.remoteParameters.role:G.role;this.remoteParameters=new mO(X,Y)}async start(){if(this.state!=="new")throw Error("state must be new");if(!this.remoteParameters||this.remoteParameters.fingerprints.length===0)throw Error("remote fingerprint not exist");if(this.role==="auto")if(this.iceTransport.role==="controlling")this.role="server";else this.role="client";this.setState("connecting"),await new Promise(async(G,X)=>{if(this.role==="server")this.dtls=new zn({cert:this.localCertificate?.certPem,key:this.localCertificate?.privateKey,signatureHash:this.localCertificate?.signatureHash,transport:oF(this.iceTransport.connection),srtpProfiles:this.srtpProfiles,extendedMasterSecret:!0,certificateRequest:!0});else this.dtls=new jF({cert:this.localCertificate?.certPem,key:this.localCertificate?.privateKey,signatureHash:this.localCertificate?.signatureHash,transport:oF(this.iceTransport.connection),srtpProfiles:this.srtpProfiles,extendedMasterSecret:!0});if(this.dtls.onData.subscribe((Y)=>{if(this.config.debug.inboundPacketLoss&&this.config.debug.inboundPacketLoss/100<Math.random())return;this.dataReceiver(Y)}),this.dtls.onClose.subscribe(()=>{if(this.state!=="failed")this.setState("closed")}),this.dtls.onConnect.once(G),this.dtls.onError.once((Y)=>{this.setState("failed"),a5("dtls failed",Y),X(Y)}),this.dtls instanceof jF)await bi(100),this.dtls.connect().catch((Y)=>{this.setState("failed"),a5("dtls connect failed",Y),X(Y)})});try{this.verifyRemoteCertificateFingerprint()}catch(G){throw this.setState("failed"),this.dtls?.close(),G}if(this.srtpProfiles.length>0)this.startSrtp();this.setState("connected"),a5("dtls connected")}verifyRemoteCertificateFingerprint(){if(!this.remoteParameters||this.remoteParameters.fingerprints.length===0)throw Error("remote fingerprint not exist");let G=this.dtls?.remoteCertificate;if(!G)throw Error("remote certificate not available");let X=this.remoteParameters.fingerprints.flatMap(({algorithm:J,value:U})=>{let q=fS(J);if(!q)return[];let N=hO(U);if(!N)throw Error("remote fingerprint value is empty");return[{normalizedAlgorithm:q,normalizedValue:N}]});if(X.length===0)throw Error("no supported remote fingerprint algorithms");let Y=ci(X),Z=X.filter(({normalizedAlgorithm:J})=>J===Y),V=Z.reduce((J,{normalizedAlgorithm:U})=>{if(!J.has(U))J.set(U,hO(mS(G,U)));return J},new Map);if(!Z.some(({normalizedAlgorithm:J,normalizedValue:U})=>V.get(J)===U))throw Error("remote certificate fingerprint mismatch")}updateSrtpSession(){if(!this.dtls)throw Error();let G=this.dtls.srtp.srtpProfile;if(!G)throw Error("need srtpProfile");a5("selected SRTP Profile",G);let{localKey:X,localSalt:Y,remoteKey:Z,remoteSalt:V}=this.dtls.extractSessionKeys(jo(G),Oo(G)),Q={keys:{localMasterKey:X,localMasterSalt:Y,remoteMasterKey:Z,remoteMasterSalt:V},profile:G};this.srtp=new Xn(Q),this.srtcp=new Wn(Q)}startSrtp(){if(this.srtpStarted)return;this.srtpStarted=!0,this.updateSrtpSession(),this.iceTransport.connection.onData.subscribe((G)=>{if(this.config.debug.inboundPacketLoss&&this.config.debug.inboundPacketLoss/100<Math.random())return;if(!Do(G))return;if(this.bytesReceived+=G.length,this.packetsReceived++,Fo(G)){let X;try{X=this.srtcp.decrypt(G)}catch(Z){if(Z instanceof bY){a5("dropping invalid SRTCP packet",Z);return}throw Z}let Y;try{Y=$o.deSerialize(X)}catch(Z){a5("dropping malformed SRTCP packet",Z);return}for(let Z of Y)try{this.onRtcp.execute(Z)}catch(V){a5("RTCP error",V)}}else{let X;try{X=this.srtp.decrypt(G)}catch(Z){if(Z instanceof bY){a5("dropping invalid SRTP packet",Z);return}throw Z}let Y;try{Y=t6.deSerialize(X)}catch(Z){a5("dropping malformed SRTP packet",Z);return}try{this.onRtp.execute(Y)}catch(Z){a5("RTP error",Z)}}})}sendData=async(G)=>{if(this.config.debug.outboundPacketLoss&&this.config.debug.outboundPacketLoss/100<Math.random())return;if(!this.dtls)throw Error("dtls not established");await this.dtls.send(G)};async sendRtp(G,X){try{let Y=this.srtp.encrypt(G,X);if(this.config.debug.outboundPacketLoss&&this.config.debug.outboundPacketLoss/100<Math.random())return Y.length;return this.bytesSent+=Y.length,this.packetsSent++,await this.iceTransport.connection.send(Y).catch(()=>{}),Y.length}catch(Y){return a5("failed to send",Y),0}}async sendRtcp(G){let X=Buffer.concat(G.map((Z)=>Z.serialize())),Y=this.srtcp.encrypt(X);if(this.config.debug.outboundPacketLoss&&this.config.debug.outboundPacketLoss/100<Math.random())return Y.length;this.bytesSent+=Y.length,this.packetsSent++,await this.iceTransport.connection.send(Y).catch(()=>{})}setState(G){if(G!=this.state)this.state=G,this.onStateChange.execute(G)}async stop(){this.setState("closed"),await this.iceTransport.stop()}async getStats(){let G=FG(),X=[],Z={type:"transport",id:Z8("transport",this.id),timestamp:G,bytesSent:this.bytesSent,bytesReceived:this.bytesReceived,packetsSent:this.packetsSent,packetsReceived:this.packetsReceived,dtlsState:this.state,iceState:this.iceTransport.state,selectedCandidatePairId:this.iceTransport.connection.nominated?Z8("candidate-pair",this.iceTransport.connection.nominated.localCandidate.foundation,this.iceTransport.connection.nominated.remoteCandidate.foundation):void 0,localCertificateId:this.localCertificate?Z8("certificate","local"):void 0,remoteCertificateId:this.remoteParameters?Z8("certificate","remote"):void 0,dtlsRole:this.role==="auto"?void 0:this.role};if(X.push(Z),this.localCertificate){let Q=this.localCertificate.getFingerprints();if(Q.length>0){let J={type:"certificate",id:Z8("certificate","local"),timestamp:G,fingerprint:Q[0].value,fingerprintAlgorithm:Q[0].algorithm,base64Certificate:Buffer.from(this.localCertificate.certPem).toString("base64")};X.push(J)}}if(this.remoteParameters&&this.remoteParameters.fingerprints.length>0){let Q={type:"certificate",id:Z8("certificate","remote"),timestamp:G,fingerprint:this.remoteParameters.fingerprints[0].value,fingerprintAlgorithm:this.remoteParameters.fingerprints[0].algorithm,base64Certificate:""};X.push(Q)}let V=await this.iceTransport.getStats();return X.push(...V),X}};var dS=class{constructor(W,G,X){this.certPem=G,this.signatureHash=X;let Y=sQ.Certificate.fromPEM(Buffer.from(G));this.publicKey=Y.publicKey.toPEM(),this.privateKey=sQ.PrivateKey.fromPEM(Buffer.from(W)).toPEM()}publicKey;privateKey;getFingerprints(){return[new bO("sha-256",mS(sQ.Certificate.fromPEM(Buffer.from(this.certPem)).raw,"sha256"))]}},bO=class{constructor(W,G){this.algorithm=W,this.value=G}},mO=class{constructor(W=[],G){this.fingerprints=W,this.role=G}},mi=(W)=>{let G=new Set;return W.filter(({algorithm:X,value:Y})=>{let Z=`${fS(X)??X.trim().toLowerCase()}:${hO(Y)}`;if(G.has(Z))return!1;return G.add(Z),!0})},fi=["sha512","sha384","sha256","sha224","sha1"],ci=(W)=>{return fi.find((G)=>W.some(({normalizedAlgorithm:X})=>X===G))??W[0].normalizedAlgorithm},pi=class{constructor(W){this.ice=W,W.onData.subscribe((G)=>{if(Pi(G)){if(this.onData)this.onData(G)}})}closed=!1;onData=()=>{};get address(){return{}}type="ice";send=(W)=>{return this.ice.send(W)};async close(){this.closed=!0,this.ice.close()}},oF=(W)=>new pi(W),nF=M1("werift:packages/webrtc/src/transport/ice.ts"),di=class{constructor(W){this.iceGather=W,this.connection=this.iceGather.connection,this.connection.stateChanged.subscribe((G)=>{this.setState(G)}),this.iceGather.onIceCandidate=(G)=>{this.onIceCandidate.execute(G)}}id=li().toString();connection;state="new";waitStart;renominating=!1;onStateChange=new f0;onIceCandidate=new f0;onNegotiationNeeded=new f0;get role(){if(this.connection.iceControlling)return"controlling";else return"controlled"}get gatheringState(){return this.iceGather.gatheringState}get localCandidates(){return this.iceGather.localCandidates}get localParameters(){return this.iceGather.localParameters}setState(W){if(W!==this.state)this.state=W,this.onStateChange.execute(W)}gather(){return this.iceGather.gather()}addRemoteCandidate=(W)=>{if(!this.connection.remoteCandidatesEnd)if(!W)return this.connection.addRemoteCandidate(void 0);else return this.connection.addRemoteCandidate(ni(W))};setRemoteParams(W,G=!1){if(G)this.renominating=!0;if(this.connection.remoteUsername&&this.connection.remotePassword&&(this.connection.remoteUsername!==W.usernameFragment||this.connection.remotePassword!==W.password))if(this.renominating)nF("renomination",W),this.connection.resetNominatedPair(),this.renominating=!1;else nF("restart",W),this.restart();this.connection.setRemoteParams(W)}restart(){this.connection.restart(),this.setState("new"),this.iceGather.gatheringState="new",this.waitStart=void 0,this.onNegotiationNeeded.execute()}async start(){if(this.state==="closed")throw Error("RTCIceTransport is closed");if(!this.connection.remotePassword||!this.connection.remoteUsername)throw Error("remoteParams missing");if(this.waitStart)await this.waitStart.asPromise();this.waitStart=new f0,this.setState("checking");try{await this.connection.connect()}catch(W){throw this.setState("failed"),W}this.waitStart.execute(),this.waitStart.complete(),this.waitStart=void 0}async stop(){if(this.state!=="closed")this.setState("closed"),await this.connection.close();this.onStateChange.complete(),this.onIceCandidate.complete(),this.onNegotiationNeeded.complete()}async getStats(){let W=FG(),G=[];for(let Y of this.localCandidates){let Z={type:"local-candidate",id:Z8("local-candidate",Y.foundation),timestamp:W,transportId:Z8("transport",this.id),address:Y.ip,port:Y.port,protocol:Y.protocol,candidateType:Y.type,priority:Y.priority,foundation:Y.foundation};G.push(Z)}for(let Y of this.connection.remoteCandidates){let Z=tQ(Y),V={type:"remote-candidate",id:Z8("remote-candidate",Z.foundation),timestamp:W,transportId:Z8("transport",this.id),address:Z.ip,port:Z.port,protocol:Z.protocol,candidateType:Z.type,priority:Z.priority,foundation:Z.foundation};G.push(V)}let X=this.connection?.candidatePairs?[...this.connection.candidatePairs.filter((Y)=>Y.nominated),...this.connection.candidatePairs.filter((Y)=>!Y.nominated)]:[];for(let Y of X){let Z={type:"candidate-pair",id:Z8("candidate-pair",Y.foundation),timestamp:W,transportId:Z8("transport",this.id),localCandidateId:Z8("local-candidate",Y.localCandidate.foundation),remoteCandidateId:Z8("remote-candidate",Y.remoteCandidate.foundation),state:Y.state,nominated:Y.nominated,packetsSent:Y.packetsSent,packetsReceived:Y.packetsReceived,bytesSent:Y.bytesSent,bytesReceived:Y.bytesReceived,currentRoundTripTime:Y.rtt};G.push(Z)}return G}};var oi=class{constructor(W={}){this.options=W,this.connection=new rn(!1,this.options),this.connection.onIceCandidate.subscribe((G)=>{this.onIceCandidate(tQ(G))})}onIceCandidate=()=>{};gatheringState="new";connection;onGatheringStateChange=new f0;async gather(){if(this.gatheringState==="new")this.setState("gathering"),await this.connection.gatherCandidates(),this.onIceCandidate(void 0),this.setState("complete")}get localCandidates(){return this.connection.localCandidates.map(tQ)}get localParameters(){return new nS({usernameFragment:this.connection.localUsername,password:this.connection.localPassword})}setState(W){if(W!==this.gatheringState)this.gatheringState=W,this.onGatheringStateChange.execute(W)}};function tQ(W){let G=new oS(W.component,W.foundation,W.host,W.port,W.priority,W.transport,W.type,W.generation,W.ufrag);return G.relatedAddress=W.relatedAddress,G.relatedPort=W.relatedPort,G.tcpType=W.tcptype,G}function ni(W){return new DG(W.foundation,W.component,W.protocol,W.priority,W.ip,W.port,W.type,W.relatedAddress,W.relatedPort,W.tcpType,W.generation,W.ufrag)}var ii=class{candidate;sdpMid;sdpMLineIndex;usernameFragment;constructor(W){Object.assign(this,W)}static fromSdp(W){let G=DG.fromSdp(W);return tQ(G).toJSON()}static isThis(W){if(typeof W?.candidate==="string")return!0}toJSON(){return{candidate:this.candidate,sdpMid:this.sdpMid,sdpMLineIndex:this.sdpMLineIndex,usernameFragment:this.usernameFragment}}},oS=class{constructor(W,G,X,Y,Z,V,Q,J,U){this.component=W,this.foundation=G,this.ip=X,this.port=Y,this.priority=Z,this.protocol=V,this.type=Q,this.generation=J,this.ufrag=U}relatedAddress;relatedPort;sdpMid;sdpMLineIndex;tcpType;toJSON(){return new ii({candidate:Yx(this),sdpMLineIndex:this.sdpMLineIndex,sdpMid:this.sdpMid,usernameFragment:this.ufrag})}static fromJSON(W){try{if(!W.candidate)throw Error("candidate is required");let G=Zx(W.candidate);return G.sdpMLineIndex=W.sdpMLineIndex??void 0,G.sdpMid=W.sdpMid??void 0,G}catch(G){}}},nS=class{iceLite=!1;usernameFragment;password;constructor(W={}){Object.assign(this,W)}},c7=class W{constructor(G=0,X=Buffer.from("")){this.flags=G,this._body=X}get body(){return this._body}set body(G){this._body=G}static type=-1;get type(){return W.type}get bytes(){if(!this.body)throw Error();let G=Buffer.alloc(4);return G.writeUInt8(this.type,0),G.writeUInt8(this.flags,1),G.writeUInt16BE(this.body.length+4,2),Buffer.concat([G,this.body,...[...Array(qJ(this.body.length))].map(()=>Buffer.from("\x00"))])}},qK=class extends c7{constructor(W=0,G){super(W,G);if(this.flags=W,G)this.initiateTag=G.readUInt32BE(0),this.advertisedRwnd=G.readUInt32BE(4),this.outboundStreams=G.readUInt16BE(8),this.inboundStreams=G.readUInt16BE(10),this.initialTsn=G.readUInt32BE(12),this.params=eS(G.slice(16));else this.initiateTag=0,this.advertisedRwnd=0,this.outboundStreams=0,this.inboundStreams=0,this.initialTsn=0,this.params=[]}initiateTag;advertisedRwnd;outboundStreams;inboundStreams;initialTsn;params;get body(){let W=Buffer.alloc(16);return W.writeUInt32BE(this.initiateTag,0),W.writeUInt32BE(this.advertisedRwnd,4),W.writeUInt16BE(this.outboundStreams,8),W.writeUInt16BE(this.inboundStreams,10),W.writeUInt32BE(this.initialTsn,12),Buffer.concat([W,tS(this.params)])}},fN=class W extends qK{static type=1;get type(){return W.type}},fO=class W extends qK{static type=2;get type(){return W.type}},si=class W extends qK{static type=130;get type(){return W.type}},cN=class W extends c7{constructor(G=0,X){super(G,X);if(this.flags=G,X){this.cumulativeTsn=X.readUInt32BE(0);let Y=4;while(Y<X.length)this.streams.push([X.readUInt16BE(Y),X.readUInt16BE(Y+2)]),Y+=4}else this.cumulativeTsn=0}static type=192;streams=[];cumulativeTsn;get type(){return W.type}set body(G){}get body(){let G=Buffer.alloc(4);return G.writeUInt32BE(this.cumulativeTsn,0),Buffer.concat([G,...this.streams.map(([X,Y])=>{let Z=Buffer.alloc(4);return Z.writeUInt16BE(X,0),Z.writeUInt16BE(Y,2),Z})])}},pN=class W extends c7{constructor(G=0,X){super(G,X);if(this.flags=G,X)this.tsn=X.readUInt32BE(0),this.streamId=X.readUInt16BE(4),this.streamSeqNum=X.readUInt16BE(6),this.protocol=X.readUInt32BE(8),this.userData=X.slice(12)}static type=0;get type(){return W.type}tsn=0;streamId=0;streamSeqNum=0;protocol=0;userData=Buffer.from("");abandoned=!1;acked=!1;misses=0;retransmit=!1;sentCount=0;bookSize=0;expiry;maxRetransmits;sentTime;get bytes(){let G=16+this.userData.length,X=Buffer.alloc(16);X.writeUInt8(this.type,0),X.writeUInt8(this.flags,1),X.writeUInt16BE(G,2),X.writeUInt32BE(this.tsn,4),X.writeUInt16BE(this.streamId,8),X.writeUInt16BE(this.streamSeqNum,10),X.writeUInt32BE(this.protocol,12);let Y=Buffer.concat([X,this.userData]);if(G%4)Y=Buffer.concat([Y,...[...Array(qJ(G))].map(()=>Buffer.from("\x00"))]);return Y}},cO=class W extends c7{static type=10;get type(){return W.type}},pO=class W extends c7{static type=11;get type(){return W.type}},UJ=class extends c7{constructor(W=0,G=void 0){super(W,G);if(this.flags=W,G)this.params=eS(G)}params=[];get body(){return tS(this.params)}},lO=class W extends UJ{static type=6;get type(){return W.type}},lN=class W extends UJ{static type=9;static CODE={InvalidStreamIdentifier:1,MissingMandatoryParameter:2,StaleCookieError:3,OutofResource:4,UnresolvableAddress:5,UnrecognizedChunkType:6,InvalidMandatoryParameter:7,UnrecognizedParameters:8,NoUserData:9,CookieReceivedWhileShuttingDown:10,RestartofanAssociationwithNewAddresses:11,UserInitiatedAbort:12,ProtocolViolation:13};get type(){return W.type}get descriptions(){return this.params.map(([G,X])=>{return{name:(Object.entries(W.CODE).find(([,Z])=>Z===G)||[])[0],body:X}})}},dO=class W extends UJ{static type=4;get type(){return W.type}},iS=class W extends UJ{static type=5;get type(){return W.type}},oO=class W extends UJ{static type=130;get type(){return W.type}},nO=class W extends c7{constructor(G=0,X){super(G,X);if(this.flags=G,X){this.cumulativeTsn=X.readUInt32BE(0),this.advertisedRwnd=X.readUInt32BE(4);let Y=X.readUInt16BE(8),Z=X.readUInt16BE(10),V=12;[...Array(Y)].forEach(()=>{this.gaps.push([X.readUInt16BE(V),X.readUInt16BE(V+2)]),V+=4}),[...Array(Z)].forEach(()=>{this.duplicates.push(X.readUInt32BE(V)),V+=4})}}static type=3;get type(){return W.type}gaps=[];duplicates=[];cumulativeTsn=0;advertisedRwnd=0;get bytes(){let G=16+4*(this.gaps.length+this.duplicates.length),X=Buffer.alloc(16);X.writeUInt8(this.type,0),X.writeUInt8(this.flags,1),X.writeUInt16BE(G,2),X.writeUInt32BE(this.cumulativeTsn,4),X.writeUInt32BE(this.advertisedRwnd,8),X.writeUInt16BE(this.gaps.length,12),X.writeUInt16BE(this.duplicates.length,14);let Y=Buffer.concat([X,...this.gaps.map((Z)=>{let V=Buffer.alloc(4);return V.writeUInt16BE(Z[0],0),V.writeUInt16BE(Z[1],2),V})]);return Y=Buffer.concat([Y,...this.duplicates.map((Z)=>{let V=Buffer.alloc(4);return V.writeUInt32BE(Z,0),V})]),Y}},rS=class W extends c7{constructor(G=0,X){super(G,X);if(this.flags=G,X)this.cumulativeTsn=X.readUInt32BE(0)}static type=7;get type(){return W.type}cumulativeTsn=0;get body(){let G=Buffer.alloc(4);return G.writeUInt32BE(this.cumulativeTsn,0),G}},aS=class W extends c7{static type=8;get type(){return W.type}},sS=class W extends c7{static type=14;get type(){return W.type}},ti=[pN,fN,fO,nO,dO,iS,lO,rS,aS,lN,cO,pO,sS,oO,cN],ei=ti.reduce((W,G)=>{return W[G.type]=G,W},{});function qJ(W){let G=W%4;return G?4-G:0}function tS(W){let G=Buffer.from(""),X=Buffer.from("");return W.forEach(([Y,Z])=>{let V=Z.length+4,Q=Buffer.alloc(4);Q.writeUInt16BE(Y,0),Q.writeUInt16BE(V,2),G=Buffer.concat([G,X,Q,Z]),X=Buffer.concat([...Array(qJ(V))].map(()=>Buffer.from("\x00")))}),G}function eS(W){let G=[],X=0;while(X<=W.length-4){let Y=W.readUInt16BE(X),Z=W.readUInt16BE(X+2);G.push([Y,W.slice(X+4,X+Z)]),X+=Z+qJ(Z)}return G}function Wr(W){if(W.length<12)throw Error("SCTP packet length is less than 12 bytes");let G=W.readUInt16BE(0),X=W.readUInt16BE(2),Y=W.readUInt32BE(4),Z=W.readUInt32LE(8),V=D2(Buffer.concat([W.slice(0,8),Buffer.from("\x00\x00\x00\x00"),W.slice(12)]));if(Z!==V)throw Error("SCTP packet has invalid checksum");let Q=[],J=12;while(J+4<=W.length){let U=W.readUInt8(J),q=W.readUInt8(J+1),N=W.readUInt16BE(J+2),A=W.slice(J+4,J+N),H=ei[U.toString()];if(H)Q.push(new H(q,A));else throw Error("unknown");J+=N+qJ(N)}return[G,X,Y,Q]}function Gr(W,G,X,Y){let Z=Buffer.alloc(8);Z.writeUInt16BE(W,0),Z.writeUInt16BE(G,2),Z.writeUInt32BE(X,4);let V=Y.bytes,Q=D2(Buffer.concat([Z,Buffer.from("\x00\x00\x00\x00"),V])),J=Buffer.alloc(4);return J.writeUInt32LE(Q,0),Buffer.concat([Z,J,V])}function Xr(W){return W.map((G,X)=>[X,G])}function Yr(W){return W.reduce((G,X)=>{return G[X]=new f0,G},{})}var iO=class W{constructor(G,X,Y,Z){this.requestSequence=G,this.responseSequence=X,this.lastTsn=Y,this.streams=Z}static type=13;get type(){return W.type}get bytes(){let G=Buffer.from(a1.Pack("!LLL",[this.requestSequence,this.responseSequence,this.lastTsn]));return Buffer.concat([G,...this.streams.map((X)=>Buffer.from(a1.Pack("!H",[X])))])}static parse(G){let[X,Y,Z]=a1.Unpack("!LLL",G),V=[];for(let Q=12;Q<G.length;Q+=2)V.push(a1.Unpack("!H",G.slice(Q))[0]);return new W(X,Y,Z,V)}},Wx=class W{constructor(G,X){this.requestSequence=G,this.newStreams=X}static type=17;get type(){return W.type}get bytes(){return Buffer.from(a1.Pack("!LHH",[this.requestSequence,this.newStreams,0]))}static parse(G){let[X,Y]=a1.Unpack("!LHH",G);return new W(X,Y)}},xN={ReconfigResultSuccessPerformed:1,BadSequenceNumber:5},dN=class W{constructor(G,X){this.responseSequence=G,this.result=X}static type=16;get type(){return W.type}get bytes(){return Buffer.from(a1.Pack("!LL",[this.responseSequence,this.result]))}static parse(G){let[X,Y]=a1.Unpack("!LL",G);return new W(X,Y)}},rF={13:iO,16:dN,17:Wx},r1=M1("werift/sctp/sctp"),Zr=24,Vr=60,aF=65535,s5=1200,mQ=1,Gx=2,rO=4,sF=10,Qr=8,tF=0.125,eF=0.25,W2=3,Jr=1,Ur=60,JH=4294967296,qr=200,Nr=30,G2=135,X2=7,Y2=32776,Z2=49152,Hr=["new","closed","connected","connecting"],Ar=class W{constructor(G,X=5000){this.transport=G,this.port=X,this.localPort=this.port,this.transport.onData=(Y)=>{this.handleData(Y)}}flush=new f0;stateChanged=Yr(Hr);onReconfigStreams=new f0;onReceive=new f0;onSackReceived=async()=>{};associationState=1;started=!1;state="new";isServer=!0;isStopping=!1;isClosed=!1;hmacKey=ai(16);localPartialReliability=!0;localPort;localVerificationTag=DO();remoteExtensions=[];remotePartialReliability=!0;remotePort;remoteVerificationTag=0;advertisedRwnd=1048576;peerAdvertisedRwnd=this.advertisedRwnd;get peerRwnd(){return Math.max(0,this.peerAdvertisedRwnd-this.flightSize)}inboundStreams={};_inboundStreamsCount=0;_inboundStreamsMax=aF;lastReceivedTsn;sackDuplicates=[];sackMisOrdered=new Set;sackNeeded=!1;sackPacketCount=0;sackHasNewDataInPacket=!1;sackImmediate=!1;sackTimeout;cwnd=3*s5;fastRecoveryExit;fastRecoveryTransmit=!1;forwardTsnChunk;flightSize=0;outboundQueue=[];outboundStreamSeq={};_outboundStreamsCount=aF;localTsn=Number(DO());lastSackedTsn=KG(this.localTsn);advancedPeerAckTsn=KG(this.localTsn);partialBytesAcked=0;sentQueue=[];transmitting=!1;transmitRequested=!1;reconfigRequestSeq=this.localTsn;reconfigResponseSeq=0;reconfigRequest;reconfigQueue=[];srtt;rttvar;rto=W2;timer1Handle;timer1Chunk;timer1Failures=0;timer2Handle;timer2Chunk;timer2Failures=0;timer3Handle;timerReconfigHandle;timerReconfigFailures=0;timerHeartbeatHandle;heartbeatInterval=Nr;ssthresh;get isStopped(){return this.isStopping||this.isClosed}get maxChannels(){if(this._inboundStreamsCount>0)return Math.min(this._inboundStreamsCount,this._outboundStreamsCount);return}static client(G,X=5000){let Y=new W(G,X);return Y.isServer=!1,Y}static server(G,X=5000){let Y=new W(G,X);return Y.isServer=!0,Y}async handleData(G){if(this.isStopped)return;let X,[,,Y,Z]=Wr(G);if(Z.filter((Q)=>Q.type===fN.type).length>0){if(Z.length!=1)throw Error();X=0}else X=this.localVerificationTag;if(Y!==X)return;this.sackHasNewDataInPacket=!1;for(let Q of Z)await this.receiveChunk(Q);if(this.sackNeeded){if(this.sackHasNewDataInPacket)this.sackPacketCount++;if(this.sackPacketCount>=2)this.sackImmediate=!0;await this.scheduleSack()}}async scheduleSack(){if(this.isStopped)return;if(!this.sackNeeded)return;if(this.sackImmediate){if(this.sackTimeout)clearTimeout(this.sackTimeout),this.sackTimeout=void 0;await this.sendSack();return}if(this.sackTimeout)return;this.sackTimeout=setTimeout(()=>{this.sackTimeout=void 0,this.sendSack().catch((G)=>{r1("send delayed sack failed",G.message)})},qr)}async sendSack(){if(this.isStopped)return;if(!this.sackNeeded)return;let G=[],X;[...this.sackMisOrdered].sort().forEach((Z)=>{let V=(Z-this.lastReceivedTsn)%JH;if(Z===X)G[G.length-1][1]=V;else G.push([V,V]);X=_Y(Z)});let Y=new nO(0,void 0);Y.cumulativeTsn=this.lastReceivedTsn,Y.advertisedRwnd=Math.max(0,this.advertisedRwnd),Y.duplicates=[...this.sackDuplicates],Y.gaps=G,await this.sendChunk(Y).catch((Z)=>{r1("send sack failed",Z.message)}),this.sackDuplicates=[],this.sackNeeded=!1,this.sackPacketCount=0,this.sackImmediate=!1}async receiveChunk(G){switch(G.type){case pN.type:this.receiveDataChunk(G);break;case fN.type:{if(!this.isServer)return;let X=G;r1("receive init",X),this.lastReceivedTsn=KG(X.initialTsn),this.reconfigResponseSeq=KG(X.initialTsn),this.remoteVerificationTag=X.initiateTag,this.ssthresh=X.advertisedRwnd,this.peerAdvertisedRwnd=X.advertisedRwnd,this.getExtensions(X.params),this._inboundStreamsCount=Math.min(X.outboundStreams,this._inboundStreamsMax),this._outboundStreamsCount=Math.min(this._outboundStreamsCount,X.inboundStreams);let Y=new fO;Y.initiateTag=this.localVerificationTag,Y.advertisedRwnd=this.advertisedRwnd,Y.outboundStreams=this._outboundStreamsCount,Y.inboundStreams=this._inboundStreamsCount,Y.initialTsn=this.localTsn,this.setExtensions(Y.params);let Z=Date.now()/1000,V=Buffer.from(a1.Pack("!L",[Z]));V=Buffer.concat([V,iF("sha1",this.hmacKey).update(V).digest()]),Y.params.push([X2,V]),r1("send initAck",Y),await this.sendChunk(Y).catch((Q)=>{r1("send initAck failed",Q.message)})}break;case fO.type:{if(this.associationState!=2)return;let X=G;this.timer1Cancel(),this.lastReceivedTsn=KG(X.initialTsn),this.reconfigResponseSeq=KG(X.initialTsn),this.remoteVerificationTag=X.initiateTag,this.ssthresh=X.advertisedRwnd,this.peerAdvertisedRwnd=X.advertisedRwnd,this.getExtensions(X.params),this._inboundStreamsCount=Math.min(X.outboundStreams,this._inboundStreamsMax),this._outboundStreamsCount=Math.min(this._outboundStreamsCount,X.inboundStreams);let Y=new cO;for(let[Z,V]of X.params)if(Z===X2){Y.body=V;break}await this.sendChunk(Y).catch((Z)=>{r1("send echo failed",Z.message)}),this.timer1Start(Y),this.setState(3)}break;case nO.type:await this.receiveSackChunk(G);break;case dO.type:{let X=new iS;X.params=G.params,await this.sendChunk(X).catch((Y)=>{r1("send heartbeat ack failed",Y.message)})}break;case lO.type:this.setState(1);break;case rS.type:{this.timer2Cancel(),this.setState(7);let X=new aS;await this.sendChunk(X).catch((Y)=>{r1("send shutdown ack failed",Y.message)}),this.t2Start(X),this.setState(6)}break;case lN.type:r1("ErrorChunk",G.descriptions);break;case cO.type:{if(!this.isServer)return;let Y=G.body,Z=iF("sha1",this.hmacKey).update(Y.slice(0,4)).digest();if(Y?.length!=Zr||!Y.slice(4).equals(Z)){r1("x State cookie is invalid");return}let V=Date.now()/1000,Q=a1.Unpack("!L",Y)[0];if(Q<V-Vr||Q>V){let U=new lN(0,void 0);U.params.push([lN.CODE.StaleCookieError,Buffer.concat([...Array(8)].map(()=>Buffer.from("\x00")))]),await this.sendChunk(U).catch((q)=>{r1("send errorChunk failed",q.message)});return}let J=new pO;await this.sendChunk(J).catch((U)=>{r1("send cookieAck failed",U.message)}),this.setState(4)}break;case pO.type:{if(this.associationState!=3)return;this.timer1Cancel(),this.setState(4)}break;case sS.type:{if(this.associationState!=8)return;this.timer2Cancel(),this.setState(1)}break;case oO.type:{if(this.associationState!=4)return;let X=G;for(let[Y,Z]of X.params){let V=rF[Y];if(V)await this.receiveReconfigParam(V.parse(Z))}}break;case cN.type:this.receiveForwardTsnChunk(G);break}}getExtensions(G){for(let[X,Y]of G)if(X===Z2)this.remotePartialReliability=!0;else if(X===Y2)this.remoteExtensions=[...Y]}async receiveReconfigParam(G){switch(r1("receiveReconfigParam",rF[G.type]),G.type){case iO.type:{let X=G,Y=new dN(X.requestSequence,xN.ReconfigResultSuccessPerformed);this.reconfigResponseSeq=X.requestSequence,await this.sendReconfigParam(Y),await Promise.all(X.streams.map(async(Z)=>{if(delete this.inboundStreams[Z],this.outboundStreamSeq[Z]){if(!this.reconfigQueue.includes(Z))this.reconfigQueue.push(Z)}})),await this.transmitReconfigRequest(),this.onReconfigStreams.execute(X.streams)}break;case dN.type:{let X=G;if(X.result!==xN.ReconfigResultSuccessPerformed)r1("OutgoingSSNResetRequestParam failed",Object.keys(xN).find((Y)=>xN[Y]===X.result));else if(X.responseSequence===this.reconfigRequest?.requestSequence){let Y=this.reconfigRequest.streams.map((Z)=>{return delete this.outboundStreamSeq[Z],Z});if(this.onReconfigStreams.execute(Y),this.reconfigRequest=void 0,this.timerReconfigCancel(),this.rto=W2,this.timerReconfigFailures=0,this.reconfigQueue.length>0)await this.transmitReconfigRequest()}}break;case Wx.type:{let X=G;this._inboundStreamsCount+=X.newStreams;let Y=new dN(X.requestSequence,1);this.reconfigResponseSeq=X.requestSequence,await this.sendReconfigParam(Y)}break}}receiveDataChunk(G){if(this.sackNeeded=!0,this.markReceived(G.tsn)){this.sackImmediate=!0;return}if(this.sackHasNewDataInPacket=!0,this.sackImmediate=!0,(G.flags&mQ)===0)this.sackImmediate=!0;if(this.sackMisOrdered.size>0)this.sackImmediate=!0;let X=this.getInboundStream(G.streamId);X.addChunk(G),this.advertisedRwnd-=G.userData.length;for(let Y of X.popMessages())this.advertisedRwnd+=Y[2].length,this.receive(...Y)}async receiveSackChunk(G){if(m4(this.lastSackedTsn,G.cumulativeTsn))return;let X=Date.now()/1000;this.lastSackedTsn=G.cumulativeTsn;let Y=this.flightSize>=this.cwnd,Z=0,V=0;while(this.sentQueue.length>0&&bQ(this.lastSackedTsn,this.sentQueue[0].tsn)){let J=this.sentQueue.shift();if(Z++,!J?.acked)V+=J.bookSize,this.flightSizeDecrease(J);if(Z===1&&J.sentCount===1)this.updateRto(X-J.sentTime)}if(!this.sentQueue.length)this.sentQueue=[];let Q=!1;if(G.gaps.length>0){let J=new Set,U;G.gaps.forEach((N)=>{for(let A=N[0];A<N[1]+1;A++)U=(G.cumulativeTsn+A)%JH,J.add(U)});let q=G.cumulativeTsn;for(let N of this.sentQueue){if(m4(N.tsn,U))break;if(J.has(N.tsn)&&!N.acked)V+=N.bookSize,N.acked=!0,this.flightSizeDecrease(N),q=N.tsn}for(let N of this.sentQueue){if(m4(N.tsn,q))break;if(!J.has(N.tsn)){if(N.misses++,N.misses===3){if(N.misses=0,!this.maybeAbandon(N))N.retransmit=!0;N.acked=!1,this.flightSizeDecrease(N),Q=!0}}}}if(this.fastRecoveryExit===void 0){if(Z&&Y){if(this.cwnd<=this.ssthresh)this.cwnd+=Math.min(V,s5);else if(this.partialBytesAcked+=V,this.partialBytesAcked>=this.cwnd)this.partialBytesAcked-=this.cwnd,this.cwnd+=s5}if(Q)this.ssthresh=Math.max(Math.floor(this.cwnd/2),4*s5),this.cwnd=this.ssthresh,this.partialBytesAcked=0,this.fastRecoveryExit=this.sentQueue[this.sentQueue.length-1].tsn,this.fastRecoveryTransmit=!0}else if(bQ(G.cumulativeTsn,this.fastRecoveryExit))this.fastRecoveryExit=void 0;if(this.sentQueue.length===0)this.timer3Cancel();else if(Z>0)this.timer3Restart();this.peerAdvertisedRwnd=G.advertisedRwnd,this.updateAdvancedPeerAckPoint(),await this.onSackReceived(),await this.transmit()}receiveForwardTsnChunk(G){if(this.sackNeeded=!0,this.sackImmediate=!0,bQ(this.lastReceivedTsn,G.cumulativeTsn))return;let X=(Y)=>m4(Y,this.lastReceivedTsn);this.lastReceivedTsn=G.cumulativeTsn,this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(X));for(let Y of[...this.sackMisOrdered].sort())if(Y===_Y(this.lastReceivedTsn))this.lastReceivedTsn=Y;else break;this.sackDuplicates=this.sackDuplicates.filter(X),this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(X));for(let[Y,Z]of G.streams){let V=this.getInboundStream(Y);V.streamSequenceNumber=M9(Z,1);for(let Q of V.popMessages())this.advertisedRwnd+=Q[2].length,this.receive(...Q)}Object.values(this.inboundStreams).forEach((Y)=>{this.advertisedRwnd+=Y.pruneChunks(this.lastReceivedTsn)})}updateRto(G){if(!this.srtt)this.rttvar=G/2,this.srtt=G;else this.rttvar=(1-eF)*this.rttvar+eF*Math.abs(this.srtt-G),this.srtt=(1-tF)*this.srtt+tF*G;this.rto=Math.max(Jr,Math.min(this.srtt+4*this.rttvar,Ur))}receive(G,X,Y){this.onReceive.execute(G,X,Y)}getInboundStream(G){if(!this.inboundStreams[G])this.inboundStreams[G]=new zr;return this.inboundStreams[G]}markReceived(G){if(bQ(this.lastReceivedTsn,G)||this.sackMisOrdered.has(G))return this.sackDuplicates.push(G),!0;this.sackMisOrdered.add(G);for(let Y of[...this.sackMisOrdered].sort())if(Y===_Y(this.lastReceivedTsn))this.lastReceivedTsn=Y;else break;let X=(Y)=>m4(Y,this.lastReceivedTsn);return this.sackDuplicates=this.sackDuplicates.filter(X),this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(X)),!1}send=async(G,X,Y,{expiry:Z,maxRetransmits:V,ordered:Q}={expiry:void 0,maxRetransmits:void 0,ordered:!0})=>{let J=Q?this.outboundStreamSeq[G]||0:0,U=Math.ceil(Y.length/s5),q=0,N=[];for(let A=0;A<U;A++){let H=new pN(0,void 0);if(H.flags=0,!Q)H.flags=rO;if(A===0)H.flags|=Gx;if(A===U-1)H.flags|=mQ;H.tsn=this.localTsn,H.streamId=G,H.streamSeqNum=J,H.protocol=X,H.userData=Y.slice(q,q+s5),H.bookSize=H.userData.length,H.expiry=Z,H.maxRetransmits=V,q+=s5,this.localTsn=_Y(this.localTsn),N.push(H)}if(N.forEach((A)=>{this.outboundQueue.push(A)}),Q)this.outboundStreamSeq[G]=M9(J,1);await this.transmit();while(this.outboundQueue.length)await this.flush.asPromise()};async transmit(){if(this.isStopped)return;if(this.transmitting){this.transmitRequested=!0;return}this.transmitting=!0;try{do this.transmitRequested=!1,await this.transmitOnce();while(this.transmitRequested)}finally{this.transmitting=!1}}async transmitOnce(){if(this.isStopped)return;if(this.forwardTsnChunk){if(await this.sendChunk(this.forwardTsnChunk).catch((Z)=>{r1("send forwardTsn failed",Z.message)}),this.forwardTsnChunk=void 0,!this.timer3Handle)this.timer3Start()}let G=this.fastRecoveryExit!=null?2*s5:4*s5,X=Math.min(this.flightSize+G,this.cwnd),Y=!0;for(let Z of this.sentQueue){if(Z.retransmit){if(this.fastRecoveryTransmit)this.fastRecoveryTransmit=!1;else if(this.flightSize>=X)break;if(this.flightSizeIncrease(Z),Z.misses=0,Z.retransmit=!1,Z.sentCount++,await this.sendChunk(Z).catch((V)=>{r1("send data failed",V.message)}),Y)this.timer3Restart()}Y=!1}while(this.outboundQueue.length>0&&this.flightSize<X&&this.peerRwnd>0){let Z=this.outboundQueue.shift();if(!Z)break;if(Z.bookSize>this.peerRwnd&&this.flightSize>0){this.outboundQueue.unshift(Z);break}if(this.sentQueue.push(Z),this.flightSizeIncrease(Z),Z.sentCount++,Z.sentTime=Date.now()/1000,await this.sendChunk(Z).catch((V)=>{r1("send data outboundQueue failed",V.message)}),!this.timer3Handle)this.timer3Start()}if(!this.outboundQueue.length)this.outboundQueue=[];this.flush.execute()}async transmitReconfigRequest(){if(this.reconfigQueue.length>0&&this.associationState===4&&!this.reconfigRequest){let G=[...new Set(this.reconfigQueue)],X=G.slice(0,G2);this.reconfigQueue=G.slice(G2);let Y=new iO(this.reconfigRequestSeq,this.reconfigResponseSeq,KG(this.localTsn),X);this.reconfigRequestSeq=_Y(this.reconfigRequestSeq),this.reconfigRequest=Y,await this.sendReconfigParam(Y),this.timerReconfigHandleStart()}}async sendReconfigParam(G){r1("sendReconfigParam",G);let X=new oO;X.params.push([G.type,G.bytes]),await this.sendChunk(X).catch((Y)=>{r1("send reconfig failed",Y.message)})}async sendResetRequest(G){r1("sendResetRequest",G);let X=new pN(0,void 0);if(X.streamId=G,this.outboundQueue.push(X),!this.timer3Handle)await this.transmit()}flightSizeIncrease(G){this.flightSize+=G.bookSize}flightSizeDecrease(G){this.flightSize=Math.max(0,this.flightSize-G.bookSize)}timer1Start(G){if(this.timer1Handle)throw Error();this.timer1Chunk=G,this.timer1Failures=0,this.timer1Handle=setTimeout(this.timer1Expired,this.rto*1000)}timer1Expired=()=>{if(this.isStopped)return;if(this.timer1Failures++,this.timer1Handle=void 0,this.timer1Failures>Qr)this.setState(1);else{if(setImmediate(()=>{if(this.isStopped)return;this.sendChunk(this.timer1Chunk).catch((G)=>{r1("send timer1 chunk failed",G.message)})}),this.isStopped)return;this.timer1Handle=setTimeout(this.timer1Expired,this.rto*1000)}};timer1Cancel(){if(this.timer1Handle)clearTimeout(this.timer1Handle),this.timer1Handle=void 0,this.timer1Chunk=void 0}t2Start(G){if(this.timer2Handle)throw Error();this.timer2Chunk=G,this.timer2Failures=0,this.timer2Handle=setTimeout(this.timer2Expired,this.rto*1000)}timer2Expired=()=>{if(this.isStopped)return;if(this.timer2Failures++,this.timer2Handle=void 0,this.timer2Failures>sF)this.setState(1);else{if(setImmediate(()=>{if(this.isStopped)return;this.sendChunk(this.timer2Chunk).catch((G)=>{r1("send timer2Chunk failed",G.message)})}),this.isStopped)return;this.timer2Handle=setTimeout(this.timer2Expired,this.rto*1000)}};timer2Cancel(){if(this.timer2Handle)clearTimeout(this.timer2Handle),this.timer2Handle=void 0,this.timer2Chunk=void 0}timer3Start(){if(this.isStopped)return;if(this.timer3Handle)throw Error();this.timer3Handle=setTimeout(this.timer3Expired,this.rto*1000)}timer3Restart(){if(this.isStopped)return;this.timer3Cancel(),this.timer3Handle=setTimeout(this.timer3Expired,this.rto*1000)}timer3Expired=()=>{if(this.isStopped)return;this.timer3Handle=void 0,this.sentQueue.forEach((G)=>{if(!this.maybeAbandon(G))G.retransmit=!0}),this.updateAdvancedPeerAckPoint(),this.fastRecoveryExit=void 0,this.flightSize=0,this.partialBytesAcked=0,this.ssthresh=Math.max(Math.floor(this.cwnd/2),4*s5),this.cwnd=s5,this.transmit()};timer3Cancel(){if(this.timer3Handle)clearTimeout(this.timer3Handle),this.timer3Handle=void 0}timerReconfigHandleStart(){if(this.isStopped)return;if(this.timerReconfigHandle)return;r1("timerReconfigHandleStart",{rto:this.rto}),this.timerReconfigFailures=0,this.timerReconfigHandle=setTimeout(this.timerReconfigHandleExpired,this.rto*1000)}timerReconfigHandleExpired=async()=>{if(this.isStopped)return;if(this.timerReconfigFailures++,this.rto=Math.ceil(this.rto*1.5),this.timerReconfigFailures>sF)r1("timerReconfigFailures",this.timerReconfigFailures),this.setState(1),this.timerReconfigHandle=void 0;else if(this.reconfigRequest){if(r1("timerReconfigHandleExpired",this.timerReconfigFailures,this.rto),await this.sendReconfigParam(this.reconfigRequest),this.isStopped)return;this.timerReconfigHandle=setTimeout(this.timerReconfigHandleExpired,this.rto*1000)}};timerReconfigCancel(){if(this.timerReconfigHandle)r1("timerReconfigCancel"),clearTimeout(this.timerReconfigHandle),this.timerReconfigHandle=void 0,this.timerReconfigFailures=0}heartbeatStart(){if(this.timerHeartbeatHandle||this.associationState!==4)return;this.timerHeartbeatHandle=setTimeout(this.timerHeartbeatExpired,(this.rto+this.heartbeatInterval)*1000)}heartbeatRestart(){this.heartbeatCancel(),this.heartbeatStart()}heartbeatCancel(){if(this.timerHeartbeatHandle)clearTimeout(this.timerHeartbeatHandle),this.timerHeartbeatHandle=void 0}timerHeartbeatExpired=async()=>{if(this.timerHeartbeatHandle=void 0,this.associationState!==4)return;if(this.flightSize===0&&this.outboundQueue.length===0){let G=new dO;G.params.push([1,Buffer.from(a1.Pack("!L",[Math.floor(Date.now()/1000)]))]),await this.sendChunk(G).catch((X)=>{r1("send heartbeat failed",X.message)})}this.heartbeatStart()};setHeartbeatInterval(G){if(G<=0)throw Error("heartbeat interval must be > 0");this.heartbeatInterval=G,this.heartbeatRestart()}updateAdvancedPeerAckPoint(){if(m4(this.lastSackedTsn,this.advancedPeerAckTsn))this.advancedPeerAckTsn=this.lastSackedTsn;let G=0,X={};while(this.sentQueue.length>0&&this.sentQueue[0].abandoned){let Y=this.sentQueue.shift();if(this.advancedPeerAckTsn=Y.tsn,G++,!(Y.flags&rO))X[Y.streamId]=Y.streamSeqNum}if(!this.sentQueue.length)this.sentQueue=[];if(G)this.forwardTsnChunk=new cN(0,void 0),this.forwardTsnChunk.cumulativeTsn=this.advancedPeerAckTsn,this.forwardTsnChunk.streams=Object.entries(X).map(([Y,Z])=>[Number(Y),Z])}maybeAbandon(G){if(G.abandoned)return!0;if(!(!!G.maxRetransmits&&G.maxRetransmits<G.sentCount||!!G.expiry&&G.expiry<Date.now()/1000))return!1;let Y=this.sentQueue.findIndex((Z)=>Z.type===G.type);for(let Z=Y;Z>=0;Z--){let V=this.sentQueue[Z];if(V.abandoned=!0,V.retransmit=!1,V.flags&mQ)break}for(let Z=Y;Z<this.sentQueue.length;Z++){let V=this.sentQueue[Z];if(V.abandoned=!0,V.retransmit=!1,V.flags&mQ)break}return!0}static getCapabilities(){return new Ir(65536)}setRemotePort(G){this.remotePort=G}async start(G){if(!this.started){if(this.started=!0,this.setConnectionState("connecting"),G)this.setRemotePort(G);if(!this.isServer)await this.init()}}async init(){let G=new fN;G.initiateTag=this.localVerificationTag,G.advertisedRwnd=this.advertisedRwnd,G.outboundStreams=this._outboundStreamsCount,G.inboundStreams=this._inboundStreamsMax,G.initialTsn=this.localTsn,this.setExtensions(G.params),r1("send init",G);try{await this.sendChunk(G),this.timer1Start(G),this.setState(2)}catch(X){r1("send init failed",X.message)}}setExtensions(G){let X=[];if(this.localPartialReliability)G.push([Z2,Buffer.from("")]),X.push(cN.type);X.push(si.type),G.push([Y2,Buffer.from(X)])}async sendChunk(G){if(this.state==="closed")return;if(this.remotePort===void 0)throw Error("invalid remote port");let X=Gr(this.localPort,this.remotePort,this.remoteVerificationTag,G);await this.transport.send(X)}setState(G){if(G!=this.associationState)this.associationState=G;if(G===4)this.isStopping=!1,this.isClosed=!1,this.setConnectionState("connected"),this.heartbeatStart();else if(G===1){if(this.isClosed=!0,this.timer1Cancel(),this.timer2Cancel(),this.timer3Cancel(),this.timerReconfigCancel(),this.heartbeatCancel(),this.sackTimeout)clearTimeout(this.sackTimeout),this.sackTimeout=void 0;this.setConnectionState("closed"),this.removeAllListeners()}}setConnectionState(G){this.state=G,r1("setConnectionState",G),this.stateChanged[G].execute()}async stop(){if(this.isStopped){this.setState(1);return}if(this.isStopping=!0,this.transport.onData=void 0,this.sackTimeout)clearTimeout(this.sackTimeout),this.sackTimeout=void 0;if(this.associationState!==1)await this.abort();this.setState(1),clearTimeout(this.timer1Handle),clearTimeout(this.timer2Handle),clearTimeout(this.timer3Handle),clearTimeout(this.timerReconfigHandle),clearTimeout(this.timerHeartbeatHandle),clearTimeout(this.sackTimeout)}async abort(){let G=new lO;await this.sendChunk(G).catch((X)=>{r1("send abort failed",X.message)})}removeAllListeners(){Object.values(this.stateChanged).forEach((G)=>G.allUnsubscribe())}},zr=class{reassembly=[];streamSequenceNumber=0;constructor(){}addChunk(W){if(this.reassembly.length===0||m4(W.tsn,this.reassembly[this.reassembly.length-1].tsn)){this.reassembly.push(W);return}for(let[G,X]of Xr(this.reassembly)){if(X.tsn===W.tsn)throw Error("duplicate chunk in reassembly");if(m4(X.tsn,W.tsn)){this.reassembly.splice(G,0,W);break}}}*popMessages(){let W=0,G,X,Y;while(W<this.reassembly.length){let Z=this.reassembly[W];if(G===void 0){if(Y=!(Z.flags&rO),!(Z.flags&Gx))if(Y)break;else{W++;continue}if(Y&&M2(Z.streamSeqNum,this.streamSequenceNumber))break;X=Z.tsn,G=W}else if(Z.tsn!==X)if(Y)break;else{G=void 0,W++;continue}if(Z.flags&mQ){let V=this.reassembly.slice(G,W+1).map((J)=>J.userData).reduce((J,U)=>{return J.push(U),J.push(Buffer.from("")),J},[]);V.pop();let Q=Buffer.concat(V);if(this.reassembly=[...this.reassembly.slice(0,G),...this.reassembly.slice(W+1)],Y&&Z.streamSeqNum===this.streamSequenceNumber)this.streamSequenceNumber=M9(this.streamSequenceNumber,1);W=G,yield[Z.streamId,Z.protocol,Q]}else W++;X=_Y(X)}}pruneChunks(W){let G=-1,X=0;for(let[Y,Z]of this.reassembly.entries())if(bQ(W,Z.tsn))G=Y,X+=Z.userData.length;else break;return this.reassembly=this.reassembly.slice(G+1),X}},Ir=class{constructor(W){this.maxMessageSize=W}};function KG(W){return(W-1)%JH}function _Y(W){return(W+1)%JH}var FY=M1("werift:packages/webrtc/src/transport/sctp.ts"),fQ=65536,wr=class W{constructor(G=5000,X=fQ){this.port=G,this.maxMessageSize=X}dtlsTransport;sctp;onDataChannel=new f0;id=ri().toString();mid;mLineIndex;bundled=!1;dataChannels={};remoteMaxMessageSize=fQ;dataChannelQueue=[];dataChannelId;eventDisposer=[];setDtlsTransport(G){if(this.dtlsTransport&&this.dtlsTransport.id===G.id)return;this.eventDisposer.forEach((X)=>X()),this.dtlsTransport=G,this.sctp=new Ar(new jr(this.dtlsTransport),this.port),this.eventDisposer=[...[this.sctp.onReceive.subscribe(this.datachannelReceive),this.sctp.onReconfigStreams.subscribe((X)=>{X.forEach((Y)=>{let Z=this.dataChannels[Y];if(!Z)return;Z.setReadyState("closing"),Z.setReadyState("closed"),delete this.dataChannels[Y]})}),this.sctp.stateChanged.connected.subscribe(()=>{Object.values(this.dataChannels).forEach((X)=>{if(X.negotiated&&X.readyState!=="open")X.setReadyState("open")}),this.dataChannelFlush()}),this.sctp.stateChanged.closed.subscribe(()=>{Object.values(this.dataChannels).forEach((X)=>{X.setReadyState("closed")}),this.dataChannels={}}),this.dtlsTransport.onStateChange.subscribe((X)=>{if(X==="closed")this.sctp.setState(1)})].map((X)=>X.unSubscribe),()=>this.sctp.onSackReceived=async()=>{}],this.sctp.onSackReceived=async()=>{await this.dataChannelFlush()}}get isServer(){return this.dtlsTransport.iceTransport.role!=="controlling"}channelByLabel(G){return Object.values(this.dataChannels).find((X)=>X.label===G)}datachannelReceive=async(G,X,Y)=>{if(X===SN&&Y.length>0)switch(FY("DCEP",G,X,Y),Y[0]){case hF:{if(Y.length<12){FY("DATA_CHANNEL_OPEN data.length not enough");return}if(!Object.keys(this.dataChannels).includes(G.toString())){let[,V,,Q,J,U]=a1.Unpack("!BBHLHH",Y),q=12,N=Y.slice(q,q+J).toString("utf8");q+=J;let A=Y.slice(q,q+U).toString("utf8");FY("DATA_CHANNEL_OPEN",{channelType:V,reliability:Q,streamId:G,label:N,protocol:A});let H=(V&3)===1?Q:void 0,I=(V&3)===2?Q:void 0,w=new FS({label:N,ordered:(V&128)===0,maxPacketLifeTime:I,maxRetransmits:H,protocol:A,id:G}),C=new $S(this,w,!1);C.isCreatedByRemote=!0,this.dataChannels[G]=C,this.onDataChannel.execute(C),C.setReadyState("open")}else FY("datachannel already opened","retransmit ack");let Z=this.dataChannels[G];this.dataChannelQueue.push([Z,SN,Buffer.from(a1.Pack("!B",[uF]))]),await this.dataChannelFlush()}break;case uF:{FY("DATA_CHANNEL_ACK",G,X);let Z=this.dataChannels[G];if(!Z)throw Error("channel not found");Z.setReadyState("open")}break}else{let Z=this.dataChannels[G];if(Z){let V=(()=>{switch(X){case bF:return Y.toString("utf8");case Ai:return"";case mF:return Y;case zi:return Buffer.from([]);default:throw Error()}})();if(Z.messagesReceived++,Z.bytesReceived+=Y.length,Z.onMessage.execute(V),Z.emit("message",{data:V}),Z.onmessage)Z.onmessage({data:V})}}};dataChannelAddNegotiated(G){if(G.id==null)throw Error();if(this.dataChannels[G.id])throw Error();if(this.dataChannels[G.id]=G,this.sctp.associationState===4)G.setReadyState("open")}dataChannelOpen(G){if(G.id){if(this.dataChannels[G.id])throw Error(`Data channel with ID ${G.id} already registered`);this.dataChannels[G.id]=G}let X=Hi,Y=0,Z=0;if(!G.ordered)X=128;if(G.maxRetransmits)X=1,Z=G.maxRetransmits;else if(G.maxPacketLifeTime)X=2,Z=G.maxPacketLifeTime;let V=a1.Pack("!BBHLHH",[hF,X,Y,Z,G.label.length,G.protocol.length]),Q=Buffer.concat([Buffer.from(V),Buffer.from(G.label,"utf8"),Buffer.from(G.protocol,"utf8")]);this.dataChannelQueue.push([G,SN,Q]),this.dataChannelFlush()}async dataChannelFlush(){if(this.sctp.associationState!=4)return;while(this.dataChannelQueue.length>0){let[G,X,Y]=this.dataChannelQueue.shift(),Z=G.id;if(Z===void 0){Z=this.dataChannelId;while(Object.keys(this.dataChannels).includes(Z.toString()))Z+=2;this.dataChannels[Z]=G,G.setId(Z)}if(X===SN)await this.sctp.send(Z,X,Y,{ordered:!0});else{let V=G.maxPacketLifeTime?Date.now()+G.maxPacketLifeTime/1000:void 0;await this.sctp.send(Z,X,Y,{expiry:V,maxRetransmits:G.maxRetransmits,ordered:G.ordered}),G.addBufferedAmount(-Y.length)}}this.dataChannelQueue=[]}assertSendableMessageSize(G){if(this.remoteMaxMessageSize!==0&&G>this.remoteMaxMessageSize)throw Error(`max-message-size exceeded: ${G} > ${this.remoteMaxMessageSize}`)}datachannelSend=(G,X)=>{let Y=Buffer.isBuffer(X)?X:Buffer.from(X),Z=en(X);if(this.assertSendableMessageSize(Z),G.addBufferedAmount(Z),this.dataChannelQueue.push(typeof X==="string"?[G,bF,Y]:[G,mF,Y]),this.sctp.associationState!==4)FY("sctp not established",this.sctp.associationState);return this.dataChannelFlush(),Z};getCapabilities(){return W.getCapabilities(this.maxMessageSize)}static getCapabilities(G=fQ){return new Xx(G)}setRemoteMaxMessageSize(G){this.remoteMaxMessageSize=G??fQ}setRemotePort(G){this.sctp.setRemotePort(G)}async start(G){if(this.isServer)this.dataChannelId=0;else this.dataChannelId=1;this.sctp.isServer=this.isServer,await this.sctp.start(G)}async stop(){this.dtlsTransport.dataReceiver=()=>{},await this.sctp.stop()}dataChannelClose(G){if(!["closing","closed"].includes(G.readyState))if(G.setReadyState("closing"),this.sctp.associationState===4){if(!this.sctp.reconfigQueue.includes(G.id))this.sctp.reconfigQueue.push(G.id);if(this.sctp.reconfigQueue.length===1)this.sctp.transmitReconfigRequest()}else{if(this.dataChannelQueue=this.dataChannelQueue.filter((X)=>X[0].id!==G.id),this.sctp.reconfigQueue=this.sctp.reconfigQueue.filter((X)=>X!==G.id),G.id)delete this.dataChannels[G.id];G.setReadyState("closed")}}},Xx=class{constructor(W){this.maxMessageSize=W}},jr=class{constructor(W){this.dtls=W}set onData(W){this.dtls.dataReceiver=W}send=(W)=>{return this.dtls.sendData(W)};close(){}},oN=class W{version=0;origin;name="-";time="0 0";host;group=[];extMapAllowMixed=!0;msidSemantic=[];media=[];type;dtlsRole;iceOptions;iceLite;icePassword;iceUsernameFragment;dtlsFingerprints=[];static parse(G){let[X,Y]=Or(G),Z=new W;X.forEach((Q)=>{if(Q.startsWith("v="))Z.version=Number.parseInt(Q.slice(2),10);else if(Q.startsWith("o="))Z.origin=Q.slice(2);else if(Q.startsWith("s="))Z.name=Q.slice(2);else if(Q.startsWith("c="))Z.host=jO(Q.slice(2));else if(Q.startsWith("t="))Z.time=Q.slice(2);else if(Q.startsWith("a=")){let[J,U]=OO(Q);switch(J){case"fingerprint":{let[q,N]=U?.split(" ")||[];Z.dtlsFingerprints.push(new bO(q,N))}break;case"ice-lite":Z.iceLite=!0;break;case"ice-options":Z.iceOptions=U;break;case"ice-pwd":Z.icePassword=U;break;case"ice-ufrag":Z.iceUsernameFragment=U;break;case"group":KO(Z.group,U);break;case"msid-semantic":KO(Z.msidSemantic,U);break;case"setup":Z.dtlsRole=cF[U];break;case"extmap-allow-mixed":Z.extMapAllowMixed=!0;break}}});let V=Z.group.find((Q)=>Q.semantic==="BUNDLE");return Y.forEach((Q)=>{let U=Q[0].match(/^m=([^ ]+) ([0-9]+) ([A-Z/]+) (.+)/);if(!U)throw Error("m line not found");let q=U[1],N=U[4].split(" "),A=["audio","video"].includes(q)?N.map((w)=>Number(w)):void 0,H=new aO(q,Number.parseInt(U[2]),U[3],A||N);if(H.dtlsParams=new mO([...Z.dtlsFingerprints],Z.dtlsRole),H.iceParams=new nS({iceLite:Z.iceLite,usernameFragment:Z.iceUsernameFragment,password:Z.icePassword}),H.iceOptions=Z.iceOptions,Z.media.push(H),Q.slice(1).forEach((w)=>{if(w.startsWith("c="))H.host=jO(w.slice(2));else if(w.startsWith("a=")){let[C,D]=OO(w);switch(C){case"candidate":if(!D)throw Error();H.iceCandidates.push(Zx(D));break;case"end-of-candidates":H.iceCandidatesComplete=!0;break;case"extmap":{let[x,h]=D.split(" ");if(x.includes("/"))[x]=x.split("/");H.rtp.headerExtensions.push(new Gi({id:Number.parseInt(x),uri:h}))}break;case"fingerprint":{if(!D)throw Error();let[x,h]=D.split(" ");H.dtlsParams?.fingerprints.push(new bO(x,h))}break;case"ice-options":H.iceOptions=D;break;case"ice-pwd":H.iceParams.password=D;break;case"ice-ufrag":H.iceParams.usernameFragment=D;break;case"ice-lite":H.iceParams.iceLite=!0;break;case"max-message-size":H.sctpCapabilities=new Xx(Number.parseInt(D,10));break;case"mid":H.rtp.muxId=D;break;case"msid":H.msid=D;break;case"rtcp":{let[x,h]=b4(D," ");H.rtcpPort=Number.parseInt(x),H.rtcpHost=jO(h)}break;case"rtcp-mux":H.rtcpMux=!0;break;case"setup":H.dtlsParams.role=cF[D];break;case"recvonly":case"sendonly":case"sendrecv":case"inactive":H.direction=C;break;case"rtpmap":{let[x,h]=b4(D," "),[l,u,n]=h.split("/"),c;if(H.kind==="audio")c=n?Number.parseInt(n):1;let p=new $G({mimeType:H.kind+"/"+l,channels:c,clockRate:Number.parseInt(u),payloadType:Number.parseInt(x)});H.rtp.codecs.push(p)}break;case"sctpmap":{if(!D)throw Error();let[x,h]=b4(D," ");H.sctpMap[Number.parseInt(x)]=h,H.sctpPort=Number.parseInt(x)}break;case"sctp-port":if(!D)throw Error();H.sctpPort=Number.parseInt(D);break;case"ssrc":{let[x,h]=b4(D," "),l=Number.parseInt(x),[u,n]=b4(h,":"),c=H.ssrc.find((p)=>p.ssrc===l);if(!c)c=new tO({ssrc:l}),H.ssrc.push(c);if(vS.includes(u))c[u]=n}break;case"ssrc-group":KO(H.ssrcGroup,D);break;case"rid":{let[x,h]=b4(D," ");H.simulcastParameters.push(new SS({rid:x,direction:h}))}break}}}),!H.iceParams.usernameFragment||!H.iceParams.password){if(H.rtp.muxId&&V&&V.items.includes(H.rtp.muxId))for(let w=0;w<V.items.length;w++){if(!V.items.includes(w.toString()))continue;let C=Z.media[w];if(C.iceParams?.usernameFragment&&C.iceParams.password){H.iceParams={...C.iceParams};break}}}if(!H.dtlsParams.role)H.dtlsParams=void 0;let I=(w)=>H.rtp.codecs.find((C)=>C.payloadType===w);Q.slice(1).forEach((w)=>{if(w.startsWith("a=")){let[C,D]=OO(w);if(C==="fmtp"){let[x,h]=b4(D," "),l=I(Number(x));l.parameters=h}else if(C==="rtcp-fb"){let[x,h,l]=D.split(" ");H.rtp.codecs.forEach((u)=>{if(["*",u.payloadType.toString()].includes(x))u.rtcpFeedback.push(new Xi({type:h,parameter:l}))})}}})}),Z}webrtcTrackId(G){if(G.msid?.includes(" ")){let X=G.msid.split(" ");for(let Y of this.msidSemantic)if(Y.semantic==="WMS"&&(Y.items.includes(X[0])||Y.items.includes("*")))return X[1]}return}get string(){let G=[`v=${this.version}`,`o=${this.origin}`,`s=${this.name}`];if(this.host)G.push(`c=${sO(this.host)}`);if(G.push(`t=${this.time}`),this.group.forEach((Z)=>G.push(`a=group:${Z.str}`)),this.extMapAllowMixed)G.push("a=extmap-allow-mixed");this.msidSemantic.forEach((Z)=>G.push(`a=msid-semantic:${Z.str}`));let X=this.media.map((Z)=>Z.toString()).join("");return G.join(`\r
|
|
242
|
+
`)}}K9.CertificateTag="CERTIFICATE";K9.CrlTag="CRL";K9.CertificateRequestTag="CERTIFICATE REQUEST";K9.PublicKeyTag="PUBLIC KEY";K9.PrivateKeyTag="PRIVATE KEY";class C4 extends y6{static isAsnEncoded(W){return S0.isBufferSource(W)||typeof W==="string"}static toArrayBuffer(W){if(typeof W==="string")if(K9.isPem(W))return K9.decode(W)[0];else if(p0.isHex(W))return p0.FromHex(W);else if(p0.isBase64(W))return p0.FromBase64(W);else if(p0.isBase64Url(W))return p0.FromBase64Url(W);else throw TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url");else{let G=S0.toUint8Array(W);if(G.length>0&&G[0]===48)return S0.toArrayBuffer(W);let X=p0.ToBinary(W);if(K9.isPem(X))return K9.decode(X)[0];else if(p0.isHex(X))return p0.FromHex(X);else if(p0.isBase64(X))return p0.FromBase64(X);else if(p0.isBase64Url(X))return p0.FromBase64Url(X);throw TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url")}}constructor(...W){if(C4.isAsnEncoded(W[0]))super(C4.toArrayBuffer(W[0]),W[1]);else super(W[0])}toString(W="pem"){switch(W){case"pem":return K9.encode(this.rawData,this.tag);default:return super.toString(W)}}}class l5 extends C4{static async create(W,G=y8.get()){if(W instanceof l5)return W;else if(x6.isCryptoKey(W)){if(W.type!=="public")throw TypeError("Public key is required");let X=await G.subtle.exportKey("spki",W);return new l5(X)}else if(W.publicKey)return W.publicKey;else if(S0.isBufferSource(W))return new l5(W);else throw TypeError("Unsupported PublicKeyType")}constructor(W){if(C4.isAsnEncoded(W))super(W,w9);else super(W);this.tag=K9.PublicKeyTag}async export(...W){let G,X=["verify"],Y={hash:"SHA-256",...this.algorithm};if(W.length>1)Y=W[0]||Y,X=W[1]||X,G=W[2]||y8.get();else G=W[0]||y8.get();let Z=this.rawData,V=L0.parse(this.rawData,w9);if(V.algorithm.algorithm===E6)Z=Zc(V,Z);return G.subtle.importKey("spki",Z,Y,!0,X)}onInit(W){let G=V8.resolve(QG),X=this.algorithm=G.toWebAlgorithm(W.algorithm);switch(W.algorithm.algorithm){case B7:{let Y=L0.parse(W.subjectPublicKey,FV),Z=S0.toUint8Array(Y.modulus);X.publicExponent=S0.toUint8Array(Y.publicExponent),X.modulusLength=(!Z[0]?Z.slice(1):Z).byteLength<<3;break}}}async getThumbprint(...W){var G;let X,Y="SHA-1";if(W.length>=1&&!((G=W[0])===null||G===void 0?void 0:G.subtle))Y=W[0]||Y,X=W[1]||y8.get();else X=W[0]||y8.get();return await X.subtle.digest(Y,this.rawData)}async getKeyIdentifier(...W){let G,X="SHA-1";if(W.length===1)if(typeof W[0]==="string")X=W[0],G=y8.get();else G=W[0];else if(W.length===2)X=W[0],G=W[1];else G=y8.get();let Y=L0.parse(this.rawData,w9);return await G.subtle.digest(X,Y.subjectPublicKey)}toTextObject(){let W=this.toTextObjectEmpty(),G=L0.parse(this.rawData,w9);switch(W.Algorithm=k6.serializeAlgorithm(G.algorithm),G.algorithm.algorithm){case iW:W["EC Point"]=G.subjectPublicKey;break;case B7:default:W["Raw Data"]=G.subjectPublicKey}return W}}function Zc(W,G){return W.algorithm=new T0({algorithm:B7,parameters:null}),G=L0.serialize(W),G}class UQ extends Y5{static async create(W,G=!1,X=y8.get()){if("name"in W&&"serialNumber"in W)return new UQ(W,G);let Z=await(await l5.create(W,X)).getKeyIdentifier(X);return new UQ(p0.ToHex(Z),G)}constructor(...W){if(S0.isBufferSource(W[0]))super(W[0]);else if(typeof W[0]==="string"){let G=new N4({keyIdentifier:new _X(p0.FromHex(W[0]))});super(qq,W[1],L0.serialize(G))}else{let G=W[0],X=G.name instanceof _6?L0.parse(G.name.rawData,N8):G.name,Y=new N4({authorityCertIssuer:X,authorityCertSerialNumber:p0.FromHex(G.serialNumber)});super(qq,W[1],L0.serialize(Y))}}onInit(W){super.onInit(W);let G=L0.parse(W.extnValue,N4);if(G.keyIdentifier)this.keyId=p0.ToHex(G.keyIdentifier);if(G.authorityCertIssuer||G.authorityCertSerialNumber)this.certId={name:G.authorityCertIssuer||[],serialNumber:G.authorityCertSerialNumber?p0.ToHex(G.authorityCertSerialNumber):""}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=L0.parse(this.value,N4);if(G.authorityCertIssuer)W["Authority Issuer"]=new _6(G.authorityCertIssuer).toTextObject();if(G.authorityCertSerialNumber)W["Authority Serial Number"]=G.authorityCertSerialNumber;if(G.keyIdentifier)W[""]=G.keyIdentifier;return W}}UQ.NAME="Authority Key Identifier";class Zj extends Y5{constructor(...W){if(S0.isBufferSource(W[0])){super(W[0]);let G=L0.parse(this.value,yX);this.ca=G.cA,this.pathLength=G.pathLenConstraint}else{let G=new yX({cA:W[0],pathLenConstraint:W[1]});super(Nq,W[2],L0.serialize(G));this.ca=W[0],this.pathLength=W[1]}}toTextObject(){let W=this.toTextObjectWithoutValue();if(this.ca)W.CA=this.ca;if(this.pathLength!==void 0)W["Path Length"]=this.pathLength;return W}}Zj.NAME="Basic Constraints";var P3;(function(W){W.serverAuth="1.3.6.1.5.5.7.3.1",W.clientAuth="1.3.6.1.5.5.7.3.2",W.codeSigning="1.3.6.1.5.5.7.3.3",W.emailProtection="1.3.6.1.5.5.7.3.4",W.timeStamping="1.3.6.1.5.5.7.3.8",W.ocspSigning="1.3.6.1.5.5.7.3.9"})(P3||(P3={}));class Vj extends Y5{constructor(...W){if(S0.isBufferSource(W[0])){super(W[0]);let G=L0.parse(this.value,eZ);this.usages=G.map((X)=>X)}else{let G=new eZ(W[0]);super(Kq,W[1],L0.serialize(G));this.usages=W[0]}}toTextObject(){let W=this.toTextObjectWithoutValue();return W[""]=this.usages.map((G)=>D4.toString(G)).join(", "),W}}Vj.NAME="Extended Key Usages";var R3;(function(W){W[W.digitalSignature=1]="digitalSignature",W[W.nonRepudiation=2]="nonRepudiation",W[W.keyEncipherment=4]="keyEncipherment",W[W.dataEncipherment=8]="dataEncipherment",W[W.keyAgreement=16]="keyAgreement",W[W.keyCertSign=32]="keyCertSign",W[W.cRLSign=64]="cRLSign",W[W.encipherOnly=128]="encipherOnly",W[W.decipherOnly=256]="decipherOnly"})(R3||(R3={}));class Qj extends Y5{constructor(...W){if(S0.isBufferSource(W[0])){super(W[0]);let G=L0.parse(this.value,GV);this.usages=G.toNumber()}else{let G=new GV(W[0]);super(Cq,W[1],L0.serialize(G));this.usages=W[0]}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=L0.parse(this.value,GV);return W[""]=G.toJSON().join(", "),W}}Qj.NAME="Key Usages";class tq extends Y5{static async create(W,G=!1,X=y8.get()){let Z=await(await l5.create(W,X)).getKeyIdentifier(X);return new tq(p0.ToHex(Z),G)}constructor(...W){if(S0.isBufferSource(W[0])){super(W[0]);let G=L0.parse(this.value,e9);this.keyId=p0.ToHex(G)}else{let G=typeof W[0]==="string"?p0.FromHex(W[0]):W[0],X=new e9(G);super(bI,W[1],L0.serialize(X));this.keyId=p0.ToHex(G)}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=L0.parse(this.value,e9);return W[""]=G,W}}tq.NAME="Subject Key Identifier";class Jj extends Y5{constructor(...W){if(S0.isBufferSource(W[0]))super(W[0]);else super(uI,W[1],new _6(W[0]||[]).rawData)}onInit(W){super.onInit(W);let G=L0.parse(W.extnValue,Tq);this.names=new _6(G)}toTextObject(){let W=this.toTextObjectWithoutValue(),G=this.names.toTextObject();for(let X in G)W[X]=G[X];return W}}Jj.NAME="Subject Alternative Name";class l9{static register(W,G){this.items.set(W,G)}static create(W){let G=new Y5(W),X=this.items.get(G.type);if(X)return new X(W);return G}}l9.items=new Map;class Uj extends Y5{constructor(...W){var G;if(S0.isBufferSource(W[0])){super(W[0]);let X=L0.parse(this.value,rZ);this.policies=X.map((Y)=>Y.policyIdentifier)}else{let X=W[0],Y=(G=W[1])!==null&&G!==void 0?G:!1,Z=new rZ(X.map((V)=>new vX({policyIdentifier:V})));super(Aq,Y,L0.serialize(Z));this.policies=X}}toTextObject(){let W=this.toTextObjectWithoutValue();return W.Policy=this.policies.map((G)=>new d1("",{},D4.toString(G))),W}}Uj.NAME="Certificate Policies";l9.register(Aq,Uj);class qj extends Y5{constructor(...W){var G;if(S0.isBufferSource(W[0]))super(W[0]);else if(Array.isArray(W[0])&&typeof W[0][0]==="string"){let Y=W[0].map((V)=>{return new z4({distributionPoint:new A4({fullName:[new V1({uniformResourceIdentifier:V})]})})}),Z=new P6(Y);super(jq,W[1],L0.serialize(Z))}else{let X=new P6(W[0]);super(jq,W[1],L0.serialize(X))}(G=this.distributionPoints)!==null&&G!==void 0||(this.distributionPoints=[])}onInit(W){super.onInit(W);let G=L0.parse(W.extnValue,P6);this.distributionPoints=G}toTextObject(){let W=this.toTextObjectWithoutValue();return W["Distribution Point"]=this.distributionPoints.map((G)=>{var X;let Y={};if(G.distributionPoint)Y[""]=(X=G.distributionPoint.fullName)===null||X===void 0?void 0:X.map((Z)=>new K4(Z).toString()).join(", ");if(G.reasons)Y.Reasons=G.reasons.toString();if(G.cRLIssuer)Y["CRL Issuer"]=G.cRLIssuer.map((Z)=>Z.toString()).join(", ");return Y}),W}}qj.NAME="CRL Distribution Points";class Nj extends Y5{constructor(...W){var G,X,Y,Z;if(S0.isBufferSource(W[0]))super(W[0]);else if(W[0]instanceof vW){let V=new vW(W[0]);super(Uq,W[1],L0.serialize(V))}else{let V=W[0],Q=new vW;rq(Q,V,KI,"ocsp"),rq(Q,V,CI,"caIssuers"),rq(Q,V,DI,"timeStamping"),rq(Q,V,MI,"caRepository");super(Uq,W[1],L0.serialize(Q))}(G=this.ocsp)!==null&&G!==void 0||(this.ocsp=[]),(X=this.caIssuers)!==null&&X!==void 0||(this.caIssuers=[]),(Y=this.timeStamping)!==null&&Y!==void 0||(this.timeStamping=[]),(Z=this.caRepository)!==null&&Z!==void 0||(this.caRepository=[])}onInit(W){super.onInit(W),this.ocsp=[],this.caIssuers=[],this.timeStamping=[],this.caRepository=[],L0.parse(W.extnValue,vW).forEach((X)=>{switch(X.accessMethod){case KI:this.ocsp.push(new K4(X.accessLocation));break;case CI:this.caIssuers.push(new K4(X.accessLocation));break;case DI:this.timeStamping.push(new K4(X.accessLocation));break;case MI:this.caRepository.push(new K4(X.accessLocation));break}})}toTextObject(){let W=this.toTextObjectWithoutValue();if(this.ocsp.length)iq(W,"OCSP",this.ocsp);if(this.caIssuers.length)iq(W,"CA Issuers",this.caIssuers);if(this.timeStamping.length)iq(W,"Time Stamping",this.timeStamping);if(this.caRepository.length)iq(W,"CA Repository",this.caRepository);return W}}Nj.NAME="Authority Info Access";function iq(W,G,X){if(X.length===1)W[G]=X[0].toTextObject();else{let Y=new d1("");X.forEach((Z,V)=>{let Q=Z.toTextObject(),J=`${Q[d1.NAME]} ${V+1}`,U=Y[J];if(!Array.isArray(U))U=[],Y[J]=U;U.push(Q)}),W[G]=Y}}function rq(W,G,X,Y){let Z=G[Y];if(Z)(Array.isArray(Z)?Z:[Z]).forEach((Q)=>{if(typeof Q==="string")Q=new K4("url",Q);W.push(new T6({accessMethod:X,accessLocation:L0.parse(Q.rawData,V1)}))})}class Hj extends Y5{constructor(...W){if(S0.isBufferSource(W[0]))super(W[0]);else super(xI,W[1],new _6(W[0]||[]).rawData)}onInit(W){super.onInit(W);let G=L0.parse(W.extnValue,N8);this.names=new _6(G)}toTextObject(){let W=this.toTextObjectWithoutValue(),G=this.names.toTextObject();for(let X in G)W[X]=G[X];return W}}Hj.NAME="Issuer Alternative Name";class NY extends y6{constructor(...W){let G;if(S0.isBufferSource(W[0]))G=S0.toArrayBuffer(W[0]);else{let X=W[0],Y=Array.isArray(W[1])?W[1].map((Z)=>S0.toArrayBuffer(Z)):[];G=L0.serialize(new I9({type:X,values:Y}))}super(G,I9)}onInit(W){this.type=W.type,this.values=W.values}toTextObject(){let W=this.toTextObjectWithoutValue();return W.Value=this.values.map((G)=>new d1("",{"":G})),W}toTextObjectWithoutValue(){let W=this.toTextObjectEmpty();if(W[d1.NAME]===NY.NAME)W[d1.NAME]=D4.toString(this.type);return W}}NY.NAME="Attribute";class Aj extends NY{constructor(...W){var G;if(S0.isBufferSource(W[0]))super(W[0]);else{let X=new gV({printableString:W[0]});super(pw,[L0.serialize(X)])}(G=this.password)!==null&&G!==void 0||(this.password="")}onInit(W){if(super.onInit(W),this.values[0]){let G=L0.parse(this.values[0],gV);this.password=G.toString()}}toTextObject(){let W=this.toTextObjectWithoutValue();return W[d1.VALUE]=this.password,W}}Aj.NAME="Challenge Password";class eq extends NY{constructor(...W){var G;if(S0.isBufferSource(W[0]))super(W[0]);else{let X=W[0],Y=new W5;for(let Z of X)Y.push(L0.parse(Z.rawData,j9));super(hV,[L0.serialize(Y)])}(G=this.items)!==null&&G!==void 0||(this.items=[])}onInit(W){if(super.onInit(W),this.values[0]){let G=L0.parse(this.values[0],W5);this.items=G.map((X)=>l9.create(L0.serialize(X)))}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=this.items.map((X)=>X.toTextObject());for(let X of G)W[X[d1.NAME]]=X;return W}}eq.NAME="Extensions";class NQ{static register(W,G){this.items.set(W,G)}static create(W){let G=new NY(W),X=this.items.get(G.type);if(X)return new X(W);return G}}NQ.items=new Map;var HQ="crypto.signatureFormatter";class y3{toAsnSignature(W,G){return S0.toArrayBuffer(G)}toWebSignature(W,G){return S0.toArrayBuffer(G)}}var sq,Wj=sq=class{static createPssParams(G,X){let Y=sq.getHashAlgorithm(G);if(!Y)return null;return new j4({hashAlgorithm:Y,maskGenAlgorithm:new T0({algorithm:$6,parameters:L0.serialize(Y)}),saltLength:X})}static getHashAlgorithm(G){let X=V8.resolve(QG);if(typeof G==="string")return X.toAsnAlgorithm({name:G});if(typeof G==="object"&&G&&"name"in G)return X.toAsnAlgorithm(G);return null}toAsnAlgorithm(G){switch(G.name.toLowerCase()){case"rsassa-pkcs1-v1_5":if("hash"in G){let X;if(typeof G.hash==="string")X=G.hash;else if(G.hash&&typeof G.hash==="object"&&"name"in G.hash&&typeof G.hash.name==="string")X=G.hash.name.toUpperCase();else throw Error("Cannot get hash algorithm name");switch(X.toLowerCase()){case"sha-1":return new T0({algorithm:sX,parameters:null});case"sha-256":return new T0({algorithm:gq,parameters:null});case"sha-384":return new T0({algorithm:tX,parameters:null});case"sha-512":return new T0({algorithm:eX,parameters:null})}}else return new T0({algorithm:B7,parameters:null});break;case"rsa-pss":if("hash"in G){if(!(("saltLength"in G)&&typeof G.saltLength==="number"))throw Error("Cannot get 'saltLength' from 'alg' argument");let X=sq.createPssParams(G.hash,G.saltLength);if(!X)throw Error("Cannot create PSS parameters");return new T0({algorithm:E6,parameters:L0.serialize(X)})}else return new T0({algorithm:E6,parameters:null})}return null}toWebAlgorithm(G){switch(G.algorithm){case B7:return{name:"RSASSA-PKCS1-v1_5"};case sX:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-1"}};case gq:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case tX:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}};case eX:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}};case E6:if(G.parameters){let X=L0.parse(G.parameters,j4);return{name:"RSA-PSS",hash:V8.resolve(QG).toWebAlgorithm(X.hashAlgorithm),saltLength:X.saltLength}}else return{name:"RSA-PSS"}}return null}};Wj=sq=j([S6()],Wj);V8.registerSingleton(qQ,Wj);var Gj=class{toAsnAlgorithm(G){switch(G.name.toLowerCase()){case"sha-1":return new T0({algorithm:rW});case"sha-256":return new T0({algorithm:aW});case"sha-384":return new T0({algorithm:sW});case"sha-512":return new T0({algorithm:tW})}return null}toWebAlgorithm(G){switch(G.algorithm){case rW:return{name:"SHA-1"};case aW:return{name:"SHA-256"};case sW:return{name:"SHA-384"};case tW:return{name:"SHA-512"}}return null}};Gj=j([S6()],Gj);V8.registerSingleton(qQ,Gj);class D5{addPadding(W,G){let X=S0.toUint8Array(G),Y=new Uint8Array(W);return Y.set(X,W-X.length),Y.buffer}removePadding(W,G=!1){let X=S0.toUint8Array(W);for(let Y=0;Y<X.length;Y++){if(!X[Y])continue;X=X.slice(Y);break}if(G&&X[0]>127){let Y=new Uint8Array(X.length+1);return Y.set(X,1),Y.buffer}return X.buffer}toAsnSignature(W,G){if(W.name==="ECDSA"){let X=W.namedCurve,Y=D5.namedCurveSize.get(X)||D5.defaultNamedCurveSize,Z=new aX,V=S0.toUint8Array(G);return Z.r=this.removePadding(V.slice(0,Y),!0),Z.s=this.removePadding(V.slice(Y,Y+Y),!0),L0.serialize(Z)}return null}toWebSignature(W,G){if(W.name==="ECDSA"){let X=L0.parse(G,aX),Y=W.namedCurve,Z=D5.namedCurveSize.get(Y)||D5.defaultNamedCurveSize,V=this.addPadding(Z,this.removePadding(X.r)),Q=this.addPadding(Z,this.removePadding(X.s));return kT(V,Q)}return null}}D5.namedCurveSize=new Map;D5.defaultNamedCurveSize=32;var tw="1.3.101.110",L3="1.3.101.111",ew="1.3.101.112",B3="1.3.101.113",Xj=class{toAsnAlgorithm(G){let X=null;switch(G.name.toLowerCase()){case"ed25519":X=ew;break;case"x25519":X=tw;break;case"eddsa":switch(G.namedCurve.toLowerCase()){case"ed25519":X=ew;break;case"ed448":X=B3;break}break;case"ecdh-es":switch(G.namedCurve.toLowerCase()){case"x25519":X=tw;break;case"x448":X=L3;break}}if(X)return new T0({algorithm:X});return null}toWebAlgorithm(G){switch(G.algorithm){case ew:return{name:"Ed25519"};case B3:return{name:"EdDSA",namedCurve:"Ed448"};case tw:return{name:"X25519"};case L3:return{name:"ECDH-ES",namedCurve:"X448"}}return null}};Xj=j([S6()],Xj);V8.registerSingleton(qQ,Xj);var fV,cV,pV,lV,dV,oV,nV,JY;class v3 extends C4{get subjectName(){if(!M1(this,cV,"f"))q8(this,cV,new p5(this.asn.certificationRequestInfo.subject),"f");return M1(this,cV,"f")}get subject(){if(!M1(this,pV,"f"))q8(this,pV,this.subjectName.toString(),"f");return M1(this,pV,"f")}get signatureAlgorithm(){if(!M1(this,lV,"f")){let W=V8.resolve(QG);q8(this,lV,W.toWebAlgorithm(this.asn.signatureAlgorithm),"f")}return M1(this,lV,"f")}get signature(){if(!M1(this,dV,"f"))q8(this,dV,this.asn.signature,"f");return M1(this,dV,"f")}get publicKey(){if(!M1(this,oV,"f"))q8(this,oV,new l5(this.asn.certificationRequestInfo.subjectPKInfo),"f");return M1(this,oV,"f")}get attributes(){if(!M1(this,nV,"f"))q8(this,nV,this.asn.certificationRequestInfo.attributes.map((W)=>NQ.create(L0.serialize(W))),"f");return M1(this,nV,"f")}get extensions(){if(!M1(this,JY,"f")){q8(this,JY,[],"f");let W=this.getAttribute(hV);if(W instanceof eq)q8(this,JY,W.items,"f")}return M1(this,JY,"f")}get tbs(){if(!M1(this,fV,"f"))q8(this,fV,this.asn.certificationRequestInfoRaw||L0.serialize(this.asn.certificationRequestInfo),"f");return M1(this,fV,"f")}constructor(W){let G=C4.isAsnEncoded(W)?[W,VG]:[W];super(G[0],G[1]);fV.set(this,void 0),cV.set(this,void 0),pV.set(this,void 0),lV.set(this,void 0),dV.set(this,void 0),oV.set(this,void 0),nV.set(this,void 0),JY.set(this,void 0),this.tag=K9.CertificateRequestTag}onInit(W){}getAttribute(W){for(let G of this.attributes)if(G.type===W)return G;return null}getAttributes(W){return this.attributes.filter((G)=>G.type===W)}getExtension(W){for(let G of this.extensions)if(G.type===W)return G;return null}getExtensions(W){return this.extensions.filter((G)=>G.type===W)}async verify(W=y8.get()){let G={...this.publicKey.algorithm,...this.signatureAlgorithm},X=await this.publicKey.export(G,["verify"],W),Y=V8.resolveAll(HQ).reverse(),Z=null;for(let Q of Y)if(Z=Q.toWebSignature(G,this.signature),Z)break;if(!Z)throw Error("Cannot convert WebCrypto signature value to ASN.1 format");return await W.subtle.verify(this.signatureAlgorithm,X,Z,this.tbs)}toTextObject(){let W=this.toTextObjectEmpty(),G=L0.parse(this.rawData,VG),X=G.certificationRequestInfo,Y=new d1("",{Version:`${M7[X.version]} (${X.version})`,Subject:this.subject,"Subject Public Key Info":this.publicKey});if(this.attributes.length){let Z=new d1("");for(let V of this.attributes){let Q=V.toTextObject();Z[Q[d1.NAME]]=Q}Y.Attributes=Z}return W.Data=Y,W.Signature=new d1("",{Algorithm:k6.serializeAlgorithm(G.signatureAlgorithm),"":G.signature}),W}}fV=new WeakMap,cV=new WeakMap,pV=new WeakMap,lV=new WeakMap,dV=new WeakMap,oV=new WeakMap,nV=new WeakMap,JY=new WeakMap;v3.NAME="PKCS#10 Certificate Request";var iV,rV,aV,sV,tV,eV,WQ,GQ,XQ,YQ,UY,ZQ;class zj extends C4{get publicKey(){if(!M1(this,ZQ,"f"))q8(this,ZQ,new l5(this.asn.tbsCertificate.subjectPublicKeyInfo),"f");return M1(this,ZQ,"f")}get serialNumber(){if(!M1(this,rV,"f")){let W=this.asn.tbsCertificate,G=new Uint8Array(W.serialNumber);if(G.length>1&&G[0]===0&&G[1]>127)G=G.slice(1);q8(this,rV,p0.ToHex(G),"f")}return M1(this,rV,"f")}get subjectName(){if(!M1(this,aV,"f"))q8(this,aV,new p5(this.asn.tbsCertificate.subject),"f");return M1(this,aV,"f")}get subject(){if(!M1(this,sV,"f"))q8(this,sV,this.subjectName.toString(),"f");return M1(this,sV,"f")}get issuerName(){if(!M1(this,tV,"f"))q8(this,tV,new p5(this.asn.tbsCertificate.issuer),"f");return M1(this,tV,"f")}get issuer(){if(!M1(this,eV,"f"))q8(this,eV,this.issuerName.toString(),"f");return M1(this,eV,"f")}get notBefore(){if(!M1(this,WQ,"f")){let W=this.asn.tbsCertificate.validity.notBefore.utcTime||this.asn.tbsCertificate.validity.notBefore.generalTime;if(!W)throw Error("Cannot get 'notBefore' value");q8(this,WQ,W,"f")}return M1(this,WQ,"f")}get notAfter(){if(!M1(this,GQ,"f")){let W=this.asn.tbsCertificate.validity.notAfter.utcTime||this.asn.tbsCertificate.validity.notAfter.generalTime;if(!W)throw Error("Cannot get 'notAfter' value");q8(this,GQ,W,"f")}return M1(this,GQ,"f")}get signatureAlgorithm(){if(!M1(this,XQ,"f")){let W=V8.resolve(QG);q8(this,XQ,W.toWebAlgorithm(this.asn.signatureAlgorithm),"f")}return M1(this,XQ,"f")}get signature(){if(!M1(this,YQ,"f"))q8(this,YQ,this.asn.signatureValue,"f");return M1(this,YQ,"f")}get extensions(){if(!M1(this,UY,"f")){if(q8(this,UY,[],"f"),this.asn.tbsCertificate.extensions)q8(this,UY,this.asn.tbsCertificate.extensions.map((W)=>l9.create(L0.serialize(W))),"f")}return M1(this,UY,"f")}get tbs(){if(!M1(this,iV,"f"))q8(this,iV,this.asn.tbsCertificateRaw||L0.serialize(this.asn.tbsCertificate),"f");return M1(this,iV,"f")}constructor(W){let G=C4.isAsnEncoded(W)?[W,h5]:[W];super(G[0],G[1]);iV.set(this,void 0),rV.set(this,void 0),aV.set(this,void 0),sV.set(this,void 0),tV.set(this,void 0),eV.set(this,void 0),WQ.set(this,void 0),GQ.set(this,void 0),XQ.set(this,void 0),YQ.set(this,void 0),UY.set(this,void 0),ZQ.set(this,void 0),this.tag=K9.CertificateTag}onInit(W){}getExtension(W){for(let G of this.extensions)if(typeof W==="string"){if(G.type===W)return G}else if(G instanceof W)return G;return null}getExtensions(W){return this.extensions.filter((G)=>{if(typeof W==="string")return G.type===W;else return G instanceof W})}async verify(W={},G=y8.get()){let X,Y,Z=W.publicKey;try{if(!Z)X={...this.publicKey.algorithm,...this.signatureAlgorithm},Y=await this.publicKey.export(X,["verify"],G);else if("publicKey"in Z)X={...Z.publicKey.algorithm,...this.signatureAlgorithm},Y=await Z.publicKey.export(X,["verify"],G);else if(Z instanceof l5)X={...Z.algorithm,...this.signatureAlgorithm},Y=await Z.export(X,["verify"],G);else if(S0.isBufferSource(Z)){let U=new l5(Z);X={...U.algorithm,...this.signatureAlgorithm},Y=await U.export(X,["verify"],G)}else X={...Z.algorithm,...this.signatureAlgorithm},Y=Z}catch{return!1}let V=V8.resolveAll(HQ).reverse(),Q=null;for(let U of V)if(Q=U.toWebSignature(X,this.signature),Q)break;if(!Q)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");let J=await G.subtle.verify(this.signatureAlgorithm,Y,Q,this.tbs);if(W.signatureOnly)return J;else{let q=(W.date||new Date).getTime();return J&&this.notBefore.getTime()<q&&q<this.notAfter.getTime()}}async getThumbprint(...W){let G,X="SHA-1";if(W[0])if(!W[0].subtle)X=W[0]||X,G=W[1];else G=W[0];return G!==null&&G!==void 0||(G=y8.get()),await G.subtle.digest(X,this.rawData)}async isSelfSigned(W=y8.get()){return this.subject===this.issuer&&await this.verify({signatureOnly:!0},W)}toTextObject(){let W=this.toTextObjectEmpty(),G=L0.parse(this.rawData,h5),X=G.tbsCertificate,Y=new d1("",{Version:`${M7[X.version]} (${X.version})`,"Serial Number":X.serialNumber,"Signature Algorithm":k6.serializeAlgorithm(X.signature),Issuer:this.issuer,Validity:new d1("",{"Not Before":X.validity.notBefore.getTime(),"Not After":X.validity.notAfter.getTime()}),Subject:this.subject,"Subject Public Key Info":this.publicKey});if(X.issuerUniqueID)Y["Issuer Unique ID"]=X.issuerUniqueID;if(X.subjectUniqueID)Y["Subject Unique ID"]=X.subjectUniqueID;if(this.extensions.length){let Z=new d1("");for(let V of this.extensions){let Q=V.toTextObject();Z[Q[d1.NAME]]=Q}Y.Extensions=Z}return W.Data=Y,W.Signature=new d1("",{Algorithm:k6.serializeAlgorithm(G.signatureAlgorithm),"":G.signatureValue}),W}}iV=new WeakMap,rV=new WeakMap,aV=new WeakMap,sV=new WeakMap,tV=new WeakMap,eV=new WeakMap,WQ=new WeakMap,GQ=new WeakMap,XQ=new WeakMap,YQ=new WeakMap,UY=new WeakMap,ZQ=new WeakMap;zj.NAME="Certificate";function Vc(W,G=y8.get()){let X=S0.toUint8Array(p0.FromHex(W||"")),Y=X&&X.length&&X.some((V)=>V>0)?new Uint8Array(X):void 0;if(!Y)Y=G.getRandomValues(new Uint8Array(16));let Z=0;while(Z<Y.length-1&&Y[Z]===0)Z++;if(Y=Y.slice(Z),Y[0]>127){let V=new Uint8Array(Y.length+1);V[0]=0,V.set(Y,1),Y=V}return Y.buffer}class Ij{static async createSelfSigned(W,G=y8.get()){if(!W.keys.privateKey)throw Error("Bad field 'keys' in 'params' argument. 'privateKey' is empty");if(!W.keys.publicKey)throw Error("Bad field 'keys' in 'params' argument. 'publicKey' is empty");return this.create({serialNumber:W.serialNumber,subject:W.name,issuer:W.name,notBefore:W.notBefore,notAfter:W.notAfter,publicKey:W.keys.publicKey,signingKey:W.keys.privateKey,signingAlgorithm:W.signingAlgorithm,extensions:W.extensions},G)}static async create(W,G=y8.get()){var X;let Y;if(W.publicKey instanceof l5)Y=W.publicKey.rawData;else if("publicKey"in W.publicKey)Y=W.publicKey.publicKey.rawData;else if(S0.isBufferSource(W.publicKey))Y=W.publicKey;else Y=await G.subtle.exportKey("spki",W.publicKey);let Z=Vc(W.serialNumber,G),V=W.notBefore||new Date,Q=W.notAfter||new Date(V.getTime()+31536000000),J=new h5({tbsCertificate:new O9({version:M7.v3,serialNumber:Z,validity:new R6({notBefore:V,notAfter:Q}),extensions:new W5(((X=W.extensions)===null||X===void 0?void 0:X.map((C)=>L0.parse(C.rawData,j9)))||[]),subjectPublicKeyInfo:L0.parse(Y,w9)})});if(W.subject){let C=W.subject instanceof p5?W.subject:new p5(W.subject);J.tbsCertificate.subject=L0.parse(C.toArrayBuffer(),G8)}if(W.issuer){let C=W.issuer instanceof p5?W.issuer:new p5(W.issuer);J.tbsCertificate.issuer=L0.parse(C.toArrayBuffer(),G8)}let U={hash:"SHA-256"},q="signingKey"in W?{...U,...W.signingAlgorithm,...W.signingKey.algorithm}:{...U,...W.signingAlgorithm},N=V8.resolve(QG);J.tbsCertificate.signature=J.signatureAlgorithm=N.toAsnAlgorithm(q);let A=L0.serialize(J.tbsCertificate),H="signingKey"in W?await G.subtle.sign(q,W.signingKey,A):W.signature,I=V8.resolveAll(HQ).reverse(),w=null;for(let C of I)if(w=C.toAsnSignature(q,H),w)break;if(!w)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");return J.signatureValue=w,new zj(L0.serialize(J))}}var Qc,Jc,Uc,qc,Nc,E3;(function(W){W[W.unspecified=0]="unspecified",W[W.keyCompromise=1]="keyCompromise",W[W.cACompromise=2]="cACompromise",W[W.affiliationChanged=3]="affiliationChanged",W[W.superseded=4]="superseded",W[W.cessationOfOperation=5]="cessationOfOperation",W[W.certificateHold=6]="certificateHold",W[W.removeFromCRL=8]="removeFromCRL",W[W.privilegeWithdrawn=9]="privilegeWithdrawn",W[W.aACompromise=10]="aACompromise"})(E3||(E3={}));Qc=new WeakMap,Jc=new WeakMap,Uc=new WeakMap,qc=new WeakMap,Nc=new WeakMap;var Hc,Ac,zc,Ic,wc,jc,Oc;Hc=new WeakMap,Ac=new WeakMap,zc=new WeakMap,Ic=new WeakMap,wc=new WeakMap,jc=new WeakMap,Oc=new WeakMap;l9.register(Nq,Zj);l9.register(Kq,Vj);l9.register(Cq,Qj);l9.register(bI,tq);l9.register(qq,UQ);l9.register(uI,Jj);l9.register(jq,qj);l9.register(Uq,Nj);l9.register(xI,Hj);NQ.register(pw,Aj);NQ.register(hV,eq);V8.registerSingleton(HQ,y3);V8.registerSingleton(HQ,D5);D5.namedCurveSize.set("P-256",32);D5.namedCurveSize.set("K-256",32);D5.namedCurveSize.set("P-384",48);D5.namedCurveSize.set("P-521",66);var vY=v1(I8(),1),$2=v1(I8(),1),F2=v1(xU(),1);import{createHash as gd,createHmac as ud}from"crypto";import*as M4 from"crypto";var UG=M4&&typeof M4==="object"&&"webcrypto"in M4?M4.webcrypto:M4&&typeof M4==="object"&&("randomBytes"in M4)?M4:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function qG(W){return W instanceof Uint8Array||ArrayBuffer.isView(W)&&W.constructor.name==="Uint8Array"}function KQ(W){if(!Number.isSafeInteger(W)||W<0)throw Error("positive integer expected, got "+W)}function d5(W,...G){if(!qG(W))throw Error("Uint8Array expected");if(G.length>0&&!G.includes(W.length))throw Error("Uint8Array expected of length "+G+", got length="+W.length)}function JN(W){if(typeof W!=="function"||typeof W.create!=="function")throw Error("Hash should be wrapped by utils.createHasher");KQ(W.outputLen),KQ(W.blockLen)}function IY(W,G=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(G&&W.finished)throw Error("Hash#digest() has already been called")}function IE(W,G){d5(W);let X=G.outputLen;if(W.length<X)throw Error("digestInto() expects output buffer of length at least "+X)}function P4(...W){for(let G=0;G<W.length;G++)W[G].fill(0)}function UN(W){return new DataView(W.buffer,W.byteOffset,W.byteLength)}function o5(W,G){return W<<32-G|W>>>G}var wE=(()=>typeof Uint8Array.from([]).toHex==="function"&&typeof Uint8Array.fromHex==="function")(),op=Array.from({length:256},(W,G)=>G.toString(16).padStart(2,"0"));function R4(W){if(d5(W),wE)return W.toHex();let G="";for(let X=0;X<W.length;X++)G+=op[W[X]];return G}var T4={_0:48,_9:57,A:65,F:70,a:97,f:102};function zE(W){if(W>=T4._0&&W<=T4._9)return W-T4._0;if(W>=T4.A&&W<=T4.F)return W-(T4.A-10);if(W>=T4.a&&W<=T4.f)return W-(T4.a-10);return}function NG(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);if(wE)return Uint8Array.fromHex(W);let G=W.length,X=G/2;if(G%2)throw Error("hex string expected, got unpadded hex of length "+G);let Y=new Uint8Array(X);for(let Z=0,V=0;Z<X;Z++,V+=2){let Q=zE(W.charCodeAt(V)),J=zE(W.charCodeAt(V+1));if(Q===void 0||J===void 0){let U=W[V]+W[V+1];throw Error('hex string expected, got non-hex character "'+U+'" at index '+V)}Y[Z]=Q*16+J}return Y}function qN(W){if(typeof W!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(W))}function CQ(W){if(typeof W==="string")W=qN(W);return d5(W),W}function o9(...W){let G=0;for(let Y=0;Y<W.length;Y++){let Z=W[Y];d5(Z),G+=Z.length}let X=new Uint8Array(G);for(let Y=0,Z=0;Y<W.length;Y++){let V=W[Y];X.set(V,Z),Z+=V.length}return X}class DQ{}function NN(W){let G=(Y)=>W().update(CQ(Y)).digest(),X=W();return G.outputLen=X.outputLen,G.blockLen=X.blockLen,G.create=()=>W(),G}function HG(W=32){if(UG&&typeof UG.getRandomValues==="function")return UG.getRandomValues(new Uint8Array(W));if(UG&&typeof UG.randomBytes==="function")return Uint8Array.from(UG.randomBytes(W));throw Error("crypto.getRandomValues must be defined")}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Ej=BigInt(0),Bj=BigInt(1);function MQ(W,G=""){if(typeof W!=="boolean"){let X=G&&`"${G}"`;throw Error(X+"expected boolean, got type="+typeof W)}return W}function m6(W,G,X=""){let Y=qG(W),Z=W?.length,V=G!==void 0;if(!Y||V&&Z!==G){let Q=X&&`"${X}" `,J=V?` of length ${G}`:"",U=Y?`length=${Z}`:`type=${typeof W}`;throw Error(Q+"expected Uint8Array"+J+", got "+U)}return W}function TQ(W){let G=W.toString(16);return G.length&1?"0"+G:G}function jE(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return W===""?Ej:BigInt("0x"+W)}function L4(W){return jE(R4(W))}function $j(W){return d5(W),jE(R4(Uint8Array.from(W).reverse()))}function wY(W,G){return NG(W.toString(16).padStart(G*2,"0"))}function Fj(W,G){return wY(W,G).reverse()}function B8(W,G,X){let Y;if(typeof G==="string")try{Y=NG(G)}catch(V){throw Error(W+" must be hex string or Uint8Array, cause: "+V)}else if(qG(G))Y=Uint8Array.from(G);else throw Error(W+" must be hex string or Uint8Array");let Z=Y.length;if(typeof X==="number"&&Z!==X)throw Error(W+" of length "+X+" expected, got "+Z);return Y}var Lj=(W)=>typeof W==="bigint"&&Ej<=W;function PQ(W,G,X){return Lj(W)&&Lj(G)&&Lj(X)&&G<=W&&W<X}function OE(W,G,X,Y){if(!PQ(G,X,Y))throw Error("expected valid "+W+": "+X+" <= n < "+Y+", got "+G)}function HN(W){let G;for(G=0;W>Ej;W>>=Bj,G+=1);return G}var f6=(W)=>(Bj<<BigInt(W))-Bj;function KE(W,G,X){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof G!=="number"||G<2)throw Error("qByteLen must be a number");if(typeof X!=="function")throw Error("hmacFn must be a function");let Y=(I)=>new Uint8Array(I),Z=(I)=>Uint8Array.of(I),V=Y(W),Q=Y(W),J=0,U=()=>{V.fill(1),Q.fill(0),J=0},q=(...I)=>X(Q,V,...I),N=(I=Y(0))=>{if(Q=q(Z(0),I),V=q(),I.length===0)return;Q=q(Z(1),I),V=q()},A=()=>{if(J++>=1000)throw Error("drbg: tried 1000 values");let I=0,w=[];while(I<G){V=q();let C=V.slice();w.push(C),I+=V.length}return o9(...w)};return(I,w)=>{U(),N(I);let C=void 0;while(!(C=w(A())))N();return U(),C}}function RQ(W,G,X={}){if(!W||typeof W!=="object")throw Error("expected valid options object");function Y(Z,V,Q){let J=W[Z];if(Q&&J===void 0)return;let U=typeof J;if(U!==V||J===null)throw Error(`param "${Z}" is invalid: expected ${V}, got ${U}`)}Object.entries(G).forEach(([Z,V])=>Y(Z,V,!1)),Object.entries(X).forEach(([Z,V])=>Y(Z,V,!0))}function Sj(W){let G=new WeakMap;return(X,...Y)=>{let Z=G.get(X);if(Z!==void 0)return Z;let V=W(X,...Y);return G.set(X,V),V}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var _9=BigInt(0),C9=BigInt(1),AG=BigInt(2),ME=BigInt(3),TE=BigInt(4),PE=BigInt(5),np=BigInt(7),RE=BigInt(8),ip=BigInt(9),LE=BigInt(16);function Z5(W,G){let X=W%G;return X>=_9?X:G+X}function V5(W,G,X){let Y=W;while(G-- >_9)Y*=Y,Y%=X;return Y}function CE(W,G){if(W===_9)throw Error("invert: expected non-zero number");if(G<=_9)throw Error("invert: expected positive modulus, got "+G);let X=Z5(W,G),Y=G,Z=_9,V=C9,Q=C9,J=_9;while(X!==_9){let q=Y/X,N=Y%X,A=Z-Q*q,H=V-J*q;Y=X,X=N,Z=Q,V=J,Q=A,J=H}if(Y!==C9)throw Error("invert: does not exist");return Z5(Z,G)}function xj(W,G,X){if(!W.eql(W.sqr(G),X))throw Error("Cannot find square root")}function BE(W,G){let X=(W.ORDER+C9)/TE,Y=W.pow(G,X);return xj(W,Y,G),Y}function rp(W,G){let X=(W.ORDER-PE)/RE,Y=W.mul(G,AG),Z=W.pow(Y,X),V=W.mul(G,Z),Q=W.mul(W.mul(V,AG),Z),J=W.mul(V,W.sub(Q,W.ONE));return xj(W,J,G),J}function ap(W){let G=T5(W),X=EE(W),Y=X(G,G.neg(G.ONE)),Z=X(G,Y),V=X(G,G.neg(Y)),Q=(W+np)/LE;return(J,U)=>{let q=J.pow(U,Q),N=J.mul(q,Y),A=J.mul(q,Z),H=J.mul(q,V),I=J.eql(J.sqr(N),U),w=J.eql(J.sqr(A),U);q=J.cmov(q,N,I),N=J.cmov(H,A,w);let C=J.eql(J.sqr(N),U),D=J.cmov(q,N,C);return xj(J,D,U),D}}function EE(W){if(W<ME)throw Error("sqrt is not defined for small field");let G=W-C9,X=0;while(G%AG===_9)G/=AG,X++;let Y=AG,Z=T5(W);while(DE(Z,Y)===1)if(Y++>1000)throw Error("Cannot find square root: probably non-prime P");if(X===1)return BE;let V=Z.pow(Y,G),Q=(G+C9)/AG;return function(U,q){if(U.is0(q))return q;if(DE(U,q)!==1)throw Error("Cannot find square root");let N=X,A=U.mul(U.ONE,V),H=U.pow(q,G),I=U.pow(q,Q);while(!U.eql(H,U.ONE)){if(U.is0(H))return U.ZERO;let w=1,C=U.sqr(H);while(!U.eql(C,U.ONE))if(w++,C=U.sqr(C),w===N)throw Error("Cannot find square root");let D=C9<<BigInt(N-w-1),x=U.pow(A,D);N=w,A=U.sqr(x),H=U.mul(H,A),I=U.mul(I,x)}return I}}function sp(W){if(W%TE===ME)return BE;if(W%RE===PE)return rp;if(W%LE===ip)return ap(W);return EE(W)}var tp=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function kj(W){let G={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},X=tp.reduce((Y,Z)=>{return Y[Z]="function",Y},G);return RQ(W,X),W}function ep(W,G,X){if(X<_9)throw Error("invalid exponent, negatives unsupported");if(X===_9)return W.ONE;if(X===C9)return G;let Y=W.ONE,Z=G;while(X>_9){if(X&C9)Y=W.mul(Y,Z);Z=W.sqr(Z),X>>=C9}return Y}function AN(W,G,X=!1){let Y=Array(G.length).fill(X?W.ZERO:void 0),Z=G.reduce((Q,J,U)=>{if(W.is0(J))return Q;return Y[U]=Q,W.mul(Q,J)},W.ONE),V=W.inv(Z);return G.reduceRight((Q,J,U)=>{if(W.is0(J))return Q;return Y[U]=W.mul(Q,Y[U]),W.mul(Q,J)},V),Y}function DE(W,G){let X=(W.ORDER-C9)/AG,Y=W.pow(G,X),Z=W.eql(Y,W.ONE),V=W.eql(Y,W.ZERO),Q=W.eql(Y,W.neg(W.ONE));if(!Z&&!V&&!Q)throw Error("invalid Legendre symbol result");return Z?1:V?0:-1}function zN(W,G){if(G!==void 0)KQ(G);let X=G!==void 0?G:W.toString(2).length,Y=Math.ceil(X/8);return{nBitLength:X,nByteLength:Y}}function T5(W,G,X=!1,Y={}){if(W<=_9)throw Error("invalid field: expected ORDER > 0, got "+W);let Z=void 0,V=void 0,Q=!1,J=void 0;if(typeof G==="object"&&G!=null){if(Y.sqrt||X)throw Error("cannot specify opts in two arguments");let H=G;if(H.BITS)Z=H.BITS;if(H.sqrt)V=H.sqrt;if(typeof H.isLE==="boolean")X=H.isLE;if(typeof H.modFromBytes==="boolean")Q=H.modFromBytes;J=H.allowedLengths}else{if(typeof G==="number")Z=G;if(Y.sqrt)V=Y.sqrt}let{nBitLength:U,nByteLength:q}=zN(W,Z);if(q>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let N,A=Object.freeze({ORDER:W,isLE:X,BITS:U,BYTES:q,MASK:f6(U),ZERO:_9,ONE:C9,allowedLengths:J,create:(H)=>Z5(H,W),isValid:(H)=>{if(typeof H!=="bigint")throw Error("invalid field element: expected bigint, got "+typeof H);return _9<=H&&H<W},is0:(H)=>H===_9,isValidNot0:(H)=>!A.is0(H)&&A.isValid(H),isOdd:(H)=>(H&C9)===C9,neg:(H)=>Z5(-H,W),eql:(H,I)=>H===I,sqr:(H)=>Z5(H*H,W),add:(H,I)=>Z5(H+I,W),sub:(H,I)=>Z5(H-I,W),mul:(H,I)=>Z5(H*I,W),pow:(H,I)=>ep(A,H,I),div:(H,I)=>Z5(H*CE(I,W),W),sqrN:(H)=>H*H,addN:(H,I)=>H+I,subN:(H,I)=>H-I,mulN:(H,I)=>H*I,inv:(H)=>CE(H,W),sqrt:V||((H)=>{if(!N)N=sp(W);return N(A,H)}),toBytes:(H)=>X?Fj(H,q):wY(H,q),fromBytes:(H,I=!0)=>{if(J){if(!J.includes(H.length)||H.length>q)throw Error("Field.fromBytes: expected "+J+" bytes, got "+H.length);let C=new Uint8Array(q);C.set(H,X?0:C.length-H.length),H=C}if(H.length!==q)throw Error("Field.fromBytes: expected "+q+" bytes, got "+H.length);let w=X?$j(H):L4(H);if(Q)w=Z5(w,W);if(!I){if(!A.isValid(w))throw Error("invalid field element: outside of range 0..ORDER")}return w},invertBatch:(H)=>AN(A,H),cmov:(H,I,w)=>w?I:H});return Object.freeze(A)}function $E(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let G=W.toString(2).length;return Math.ceil(G/8)}function _j(W){let G=$E(W);return G+Math.ceil(G/2)}function IN(W,G,X=!1){let Y=W.length,Z=$E(G),V=_j(G);if(Y<16||Y<V||Y>1024)throw Error("expected "+V+"-1024 bytes of input, got "+Y);let Q=X?$j(W):L4(W),J=Z5(Q,G-C9)+C9;return X?Fj(J,Z):wY(J,Z)}function Wl(W,G,X,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(G,X,Y);let Z=BigInt(32),V=BigInt(4294967295),Q=Number(X>>Z&V),J=Number(X&V),U=Y?4:0,q=Y?0:4;W.setUint32(G+U,Q,Y),W.setUint32(G+q,J,Y)}function FE(W,G,X){return W&G^~W&X}function SE(W,G,X){return W&G^W&X^G&X}class wN extends DQ{constructor(W,G,X,Y){super();this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=W,this.outputLen=G,this.padOffset=X,this.isLE=Y,this.buffer=new Uint8Array(W),this.view=UN(this.buffer)}update(W){IY(this),W=CQ(W),d5(W);let{view:G,buffer:X,blockLen:Y}=this,Z=W.length;for(let V=0;V<Z;){let Q=Math.min(Y-this.pos,Z-V);if(Q===Y){let J=UN(W);for(;Y<=Z-V;V+=Y)this.process(J,V);continue}if(X.set(W.subarray(V,V+Q),this.pos),this.pos+=Q,V+=Q,this.pos===Y)this.process(G,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){IY(this),IE(W,this),this.finished=!0;let{buffer:G,view:X,blockLen:Y,isLE:Z}=this,{pos:V}=this;if(G[V++]=128,P4(this.buffer.subarray(V)),this.padOffset>Y-V)this.process(X,0),V=0;for(let N=V;N<Y;N++)G[N]=0;Wl(X,Y-8,BigInt(this.length*8),Z),this.process(X,0);let Q=UN(W),J=this.outputLen;if(J%4)throw Error("_sha2: outputLen should be aligned to 32bit");let U=J/4,q=this.get();if(U>q.length)throw Error("_sha2: outputLen bigger than state");for(let N=0;N<U;N++)Q.setUint32(4*N,q[N],Z)}digest(){let{buffer:W,outputLen:G}=this;this.digestInto(W);let X=W.slice(0,G);return this.destroy(),X}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:G,buffer:X,length:Y,finished:Z,destroyed:V,pos:Q}=this;if(W.destroyed=V,W.finished=Z,W.length=Y,W.pos=Q,Y%G)W.buffer.set(X);return W}clone(){return this._cloneInto()}}var B4=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var G9=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),X9=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var jN=BigInt(4294967295),xE=BigInt(32);function Gl(W,G=!1){if(G)return{h:Number(W&jN),l:Number(W>>xE&jN)};return{h:Number(W>>xE&jN)|0,l:Number(W&jN)|0}}function kE(W,G=!1){let X=W.length,Y=new Uint32Array(X),Z=new Uint32Array(X);for(let V=0;V<X;V++){let{h:Q,l:J}=Gl(W[V],G);[Y[V],Z[V]]=[Q,J]}return[Y,Z]}var yj=(W,G,X)=>W>>>X,vj=(W,G,X)=>W<<32-X|G>>>X,zG=(W,G,X)=>W>>>X|G<<32-X,IG=(W,G,X)=>W<<32-X|G>>>X,LQ=(W,G,X)=>W<<64-X|G>>>X-32,BQ=(W,G,X)=>W>>>X-32|G<<64-X;function F7(W,G,X,Y){let Z=(G>>>0)+(Y>>>0);return{h:W+X+(Z/4294967296|0)|0,l:Z|0}}var _E=(W,G,X)=>(W>>>0)+(G>>>0)+(X>>>0),yE=(W,G,X,Y)=>G+X+Y+(W/4294967296|0)|0,vE=(W,G,X,Y)=>(W>>>0)+(G>>>0)+(X>>>0)+(Y>>>0),gE=(W,G,X,Y,Z)=>G+X+Y+Z+(W/4294967296|0)|0,uE=(W,G,X,Y,Z)=>(W>>>0)+(G>>>0)+(X>>>0)+(Y>>>0)+(Z>>>0),hE=(W,G,X,Y,Z,V)=>G+X+Y+Z+V+(W/4294967296|0)|0;var Yl=Uint32Array.from([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]),c6=new Uint32Array(64);class bE extends wN{constructor(W=32){super(64,W,8,!1);this.A=B4[0]|0,this.B=B4[1]|0,this.C=B4[2]|0,this.D=B4[3]|0,this.E=B4[4]|0,this.F=B4[5]|0,this.G=B4[6]|0,this.H=B4[7]|0}get(){let{A:W,B:G,C:X,D:Y,E:Z,F:V,G:Q,H:J}=this;return[W,G,X,Y,Z,V,Q,J]}set(W,G,X,Y,Z,V,Q,J){this.A=W|0,this.B=G|0,this.C=X|0,this.D=Y|0,this.E=Z|0,this.F=V|0,this.G=Q|0,this.H=J|0}process(W,G){for(let N=0;N<16;N++,G+=4)c6[N]=W.getUint32(G,!1);for(let N=16;N<64;N++){let A=c6[N-15],H=c6[N-2],I=o5(A,7)^o5(A,18)^A>>>3,w=o5(H,17)^o5(H,19)^H>>>10;c6[N]=w+c6[N-7]+I+c6[N-16]|0}let{A:X,B:Y,C:Z,D:V,E:Q,F:J,G:U,H:q}=this;for(let N=0;N<64;N++){let A=o5(Q,6)^o5(Q,11)^o5(Q,25),H=q+A+FE(Q,J,U)+Yl[N]+c6[N]|0,w=(o5(X,2)^o5(X,13)^o5(X,22))+SE(X,Y,Z)|0;q=U,U=J,J=Q,Q=V+H|0,V=Z,Z=Y,Y=X,X=H+w|0}X=X+this.A|0,Y=Y+this.B|0,Z=Z+this.C|0,V=V+this.D|0,Q=Q+this.E|0,J=J+this.F|0,U=U+this.G|0,q=q+this.H|0,this.set(X,Y,Z,V,Q,J,U,q)}roundClean(){P4(c6)}destroy(){this.set(0,0,0,0,0,0,0,0),P4(this.buffer)}}var mE=(()=>kE(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map((W)=>BigInt(W))))(),Zl=(()=>mE[0])(),Vl=(()=>mE[1])(),p6=new Uint32Array(80),l6=new Uint32Array(80);class gj extends wN{constructor(W=64){super(128,W,16,!1);this.Ah=X9[0]|0,this.Al=X9[1]|0,this.Bh=X9[2]|0,this.Bl=X9[3]|0,this.Ch=X9[4]|0,this.Cl=X9[5]|0,this.Dh=X9[6]|0,this.Dl=X9[7]|0,this.Eh=X9[8]|0,this.El=X9[9]|0,this.Fh=X9[10]|0,this.Fl=X9[11]|0,this.Gh=X9[12]|0,this.Gl=X9[13]|0,this.Hh=X9[14]|0,this.Hl=X9[15]|0}get(){let{Ah:W,Al:G,Bh:X,Bl:Y,Ch:Z,Cl:V,Dh:Q,Dl:J,Eh:U,El:q,Fh:N,Fl:A,Gh:H,Gl:I,Hh:w,Hl:C}=this;return[W,G,X,Y,Z,V,Q,J,U,q,N,A,H,I,w,C]}set(W,G,X,Y,Z,V,Q,J,U,q,N,A,H,I,w,C){this.Ah=W|0,this.Al=G|0,this.Bh=X|0,this.Bl=Y|0,this.Ch=Z|0,this.Cl=V|0,this.Dh=Q|0,this.Dl=J|0,this.Eh=U|0,this.El=q|0,this.Fh=N|0,this.Fl=A|0,this.Gh=H|0,this.Gl=I|0,this.Hh=w|0,this.Hl=C|0}process(W,G){for(let h=0;h<16;h++,G+=4)p6[h]=W.getUint32(G),l6[h]=W.getUint32(G+=4);for(let h=16;h<80;h++){let l=p6[h-15]|0,u=l6[h-15]|0,n=zG(l,u,1)^zG(l,u,8)^yj(l,u,7),c=IG(l,u,1)^IG(l,u,8)^vj(l,u,7),p=p6[h-2]|0,W0=l6[h-2]|0,m=zG(p,W0,19)^LQ(p,W0,61)^yj(p,W0,6),Y0=IG(p,W0,19)^BQ(p,W0,61)^vj(p,W0,6),U0=vE(c,Y0,l6[h-7],l6[h-16]),y=gE(U0,n,m,p6[h-7],p6[h-16]);p6[h]=y|0,l6[h]=U0|0}let{Ah:X,Al:Y,Bh:Z,Bl:V,Ch:Q,Cl:J,Dh:U,Dl:q,Eh:N,El:A,Fh:H,Fl:I,Gh:w,Gl:C,Hh:D,Hl:x}=this;for(let h=0;h<80;h++){let l=zG(N,A,14)^zG(N,A,18)^LQ(N,A,41),u=IG(N,A,14)^IG(N,A,18)^BQ(N,A,41),n=N&H^~N&w,c=A&I^~A&C,p=uE(x,u,c,Vl[h],l6[h]),W0=hE(p,D,l,n,Zl[h],p6[h]),m=p|0,Y0=zG(X,Y,28)^LQ(X,Y,34)^LQ(X,Y,39),U0=IG(X,Y,28)^BQ(X,Y,34)^BQ(X,Y,39),y=X&Z^X&Q^Z&Q,o=Y&V^Y&J^V&J;D=w|0,x=C|0,w=H|0,C=I|0,H=N|0,I=A|0,{h:N,l:A}=F7(U|0,q|0,W0|0,m|0),U=Q|0,q=J|0,Q=Z|0,J=V|0,Z=X|0,V=Y|0;let B=_E(m,U0,o);X=yE(B,W0,Y0,y),Y=B|0}({h:X,l:Y}=F7(this.Ah|0,this.Al|0,X|0,Y|0)),{h:Z,l:V}=F7(this.Bh|0,this.Bl|0,Z|0,V|0),{h:Q,l:J}=F7(this.Ch|0,this.Cl|0,Q|0,J|0),{h:U,l:q}=F7(this.Dh|0,this.Dl|0,U|0,q|0),{h:N,l:A}=F7(this.Eh|0,this.El|0,N|0,A|0),{h:H,l:I}=F7(this.Fh|0,this.Fl|0,H|0,I|0),{h:w,l:C}=F7(this.Gh|0,this.Gl|0,w|0,C|0),{h:D,l:x}=F7(this.Hh|0,this.Hl|0,D|0,x|0),this.set(X,Y,Z,V,Q,J,U,q,N,A,H,I,w,C,D,x)}roundClean(){P4(p6,l6)}destroy(){P4(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class fE extends gj{constructor(){super(48);this.Ah=G9[0]|0,this.Al=G9[1]|0,this.Bh=G9[2]|0,this.Bl=G9[3]|0,this.Ch=G9[4]|0,this.Cl=G9[5]|0,this.Dh=G9[6]|0,this.Dl=G9[7]|0,this.Eh=G9[8]|0,this.El=G9[9]|0,this.Fh=G9[10]|0,this.Fl=G9[11]|0,this.Gh=G9[12]|0,this.Gl=G9[13]|0,this.Hh=G9[14]|0,this.Hl=G9[15]|0}}var jY=NN(()=>new bE);var cE=NN(()=>new gj),pE=NN(()=>new fE);class uj extends DQ{constructor(W,G){super();this.finished=!1,this.destroyed=!1,JN(W);let X=CQ(G);if(this.iHash=W.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let Y=this.blockLen,Z=new Uint8Array(Y);Z.set(X.length>Y?W.create().update(X).digest():X);for(let V=0;V<Z.length;V++)Z[V]^=54;this.iHash.update(Z),this.oHash=W.create();for(let V=0;V<Z.length;V++)Z[V]^=106;this.oHash.update(Z),P4(Z)}update(W){return IY(this),this.iHash.update(W),this}digestInto(W){IY(this),d5(W,this.outputLen),this.finished=!0,this.iHash.digestInto(W),this.oHash.update(W),this.oHash.digestInto(W),this.destroy()}digest(){let W=new Uint8Array(this.oHash.outputLen);return this.digestInto(W),W}_cloneInto(W){W||(W=Object.create(Object.getPrototypeOf(this),{}));let{oHash:G,iHash:X,finished:Y,destroyed:Z,blockLen:V,outputLen:Q}=this;return W=W,W.finished=Y,W.destroyed=Z,W.blockLen=V,W.outputLen=Q,W.oHash=G._cloneInto(W.oHash),W.iHash=X._cloneInto(W.iHash),W}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var hj=(W,G,X)=>new uj(W,G).update(X).digest();hj.create=(W,G)=>new uj(W,G);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var OY=BigInt(0),wG=BigInt(1);function EQ(W,G){let X=G.negate();return W?X:G}function ON(W,G){let X=AN(W.Fp,G.map((Y)=>Y.Z));return G.map((Y,Z)=>W.fromAffine(Y.toAffine(X[Z])))}function nE(W,G){if(!Number.isSafeInteger(W)||W<=0||W>G)throw Error("invalid window size, expected [1.."+G+"], got W="+W)}function bj(W,G){nE(W,G);let X=Math.ceil(G/W)+1,Y=2**(W-1),Z=2**W,V=f6(W),Q=BigInt(W);return{windows:X,windowSize:Y,mask:V,maxNumber:Z,shiftBy:Q}}function lE(W,G,X){let{windowSize:Y,mask:Z,maxNumber:V,shiftBy:Q}=X,J=Number(W&Z),U=W>>Q;if(J>Y)J-=V,U+=wG;let q=G*Y,N=q+Math.abs(J)-1,A=J===0,H=J<0,I=G%2!==0;return{nextN:U,offset:N,isZero:A,isNeg:H,isNegF:I,offsetF:q}}function Ql(W,G){if(!Array.isArray(W))throw Error("array expected");W.forEach((X,Y)=>{if(!(X instanceof G))throw Error("invalid point at index "+Y)})}function Jl(W,G){if(!Array.isArray(W))throw Error("array of scalars expected");W.forEach((X,Y)=>{if(!G.isValid(X))throw Error("invalid scalar at index "+Y)})}var mj=new WeakMap,iE=new WeakMap;function fj(W){return iE.get(W)||1}function dE(W){if(W!==OY)throw Error("invalid wNAF")}class cj{constructor(W,G){this.BASE=W.BASE,this.ZERO=W.ZERO,this.Fn=W.Fn,this.bits=G}_unsafeLadder(W,G,X=this.ZERO){let Y=W;while(G>OY){if(G&wG)X=X.add(Y);Y=Y.double(),G>>=wG}return X}precomputeWindow(W,G){let{windows:X,windowSize:Y}=bj(G,this.bits),Z=[],V=W,Q=V;for(let J=0;J<X;J++){Q=V,Z.push(Q);for(let U=1;U<Y;U++)Q=Q.add(V),Z.push(Q);V=Q.double()}return Z}wNAF(W,G,X){if(!this.Fn.isValid(X))throw Error("invalid scalar");let Y=this.ZERO,Z=this.BASE,V=bj(W,this.bits);for(let Q=0;Q<V.windows;Q++){let{nextN:J,offset:U,isZero:q,isNeg:N,isNegF:A,offsetF:H}=lE(X,Q,V);if(X=J,q)Z=Z.add(EQ(A,G[H]));else Y=Y.add(EQ(N,G[U]))}return dE(X),{p:Y,f:Z}}wNAFUnsafe(W,G,X,Y=this.ZERO){let Z=bj(W,this.bits);for(let V=0;V<Z.windows;V++){if(X===OY)break;let{nextN:Q,offset:J,isZero:U,isNeg:q}=lE(X,V,Z);if(X=Q,U)continue;else{let N=G[J];Y=Y.add(q?N.negate():N)}}return dE(X),Y}getPrecomputes(W,G,X){let Y=mj.get(G);if(!Y){if(Y=this.precomputeWindow(G,W),W!==1){if(typeof X==="function")Y=X(Y);mj.set(G,Y)}}return Y}cached(W,G,X){let Y=fj(W);return this.wNAF(Y,this.getPrecomputes(Y,W,X),G)}unsafe(W,G,X,Y){let Z=fj(W);if(Z===1)return this._unsafeLadder(W,G,Y);return this.wNAFUnsafe(Z,this.getPrecomputes(Z,W,X),G,Y)}createCache(W,G){nE(G,this.bits),iE.set(W,G),mj.delete(W)}hasCache(W){return fj(W)!==1}}function rE(W,G,X,Y){let Z=G,V=W.ZERO,Q=W.ZERO;while(X>OY||Y>OY){if(X&wG)V=V.add(Z);if(Y&wG)Q=Q.add(Z);Z=Z.double(),X>>=wG,Y>>=wG}return{p1:V,p2:Q}}function aE(W,G,X,Y){Ql(X,W),Jl(Y,G);let Z=X.length,V=Y.length;if(Z!==V)throw Error("arrays of points and scalars must have equal length");let Q=W.ZERO,J=HN(BigInt(Z)),U=1;if(J>12)U=J-3;else if(J>4)U=J-2;else if(J>0)U=2;let q=f6(U),N=Array(Number(q)+1).fill(Q),A=Math.floor((G.BITS-1)/U)*U,H=Q;for(let I=A;I>=0;I-=U){N.fill(Q);for(let C=0;C<V;C++){let D=Y[C],x=Number(D>>BigInt(I)&q);N[x]=N[x].add(X[C])}let w=Q;for(let C=N.length-1,D=Q;C>0;C--)D=D.add(N[C]),w=w.add(D);if(H=H.add(w),I!==0)for(let C=0;C<U;C++)H=H.double()}return H}function oE(W,G,X){if(G){if(G.ORDER!==W)throw Error("Field.ORDER must match order: Fp == p, Fn == n");return kj(G),G}else return T5(W,{isLE:X})}function sE(W,G,X={},Y){if(Y===void 0)Y=W==="edwards";if(!G||typeof G!=="object")throw Error(`expected valid ${W} CURVE object`);for(let U of["p","n","h"]){let q=G[U];if(!(typeof q==="bigint"&&q>OY))throw Error(`CURVE.${U} must be positive bigint`)}let Z=oE(G.p,X.Fp,Y),V=oE(G.n,X.Fn,Y),J=["Gx","Gy","a",W==="weierstrass"?"b":"d"];for(let U of J)if(!Z.isValid(G[U]))throw Error(`CURVE.${U} must be valid field element of CURVE.Fp`);return G=Object.freeze(Object.assign({},G)),{CURVE:G,Fp:Z,Fn:V}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var tE=(W,G)=>(W+(W>=0?G:-G)/W$)/G;function Ul(W,G,X){let[[Y,Z],[V,Q]]=G,J=tE(Q*W,X),U=tE(-Z*W,X),q=W-J*Y-U*V,N=-J*Z-U*Q,A=q<$4,H=N<$4;if(A)q=-q;if(H)N=-N;let I=f6(Math.ceil(HN(X)/2))+KY;if(q<$4||q>=I||N<$4||N>=I)throw Error("splitScalar (endomorphism): failed, k="+W);return{k1neg:A,k1:q,k2neg:H,k2:N}}function lj(W){if(!["compact","recovered","der"].includes(W))throw Error('Signature format must be "compact", "recovered", or "der"');return W}function pj(W,G){let X={};for(let Y of Object.keys(G))X[Y]=W[Y]===void 0?G[Y]:W[Y];if(MQ(X.lowS,"lowS"),MQ(X.prehash,"prehash"),X.format!==void 0)lj(X.format);return X}class eE extends Error{constructor(W=""){super(W)}}var E4={Err:eE,_tlv:{encode:(W,G)=>{let{Err:X}=E4;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length&1)throw new X("tlv.encode: unpadded data");let Y=G.length/2,Z=TQ(Y);if(Z.length/2&128)throw new X("tlv.encode: long form length too big");let V=Y>127?TQ(Z.length/2|128):"";return TQ(W)+V+Z+G},decode(W,G){let{Err:X}=E4,Y=0;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length<2||G[Y++]!==W)throw new X("tlv.decode: wrong tlv");let Z=G[Y++],V=!!(Z&128),Q=0;if(!V)Q=Z;else{let U=Z&127;if(!U)throw new X("tlv.decode(long): indefinite length not supported");if(U>4)throw new X("tlv.decode(long): byte length is too big");let q=G.subarray(Y,Y+U);if(q.length!==U)throw new X("tlv.decode: length bytes not complete");if(q[0]===0)throw new X("tlv.decode(long): zero leftmost byte");for(let N of q)Q=Q<<8|N;if(Y+=U,Q<128)throw new X("tlv.decode(long): not minimal encoding")}let J=G.subarray(Y,Y+Q);if(J.length!==Q)throw new X("tlv.decode: wrong value length");return{v:J,l:G.subarray(Y+Q)}}},_int:{encode(W){let{Err:G}=E4;if(W<$4)throw new G("integer: negative integers are not allowed");let X=TQ(W);if(Number.parseInt(X[0],16)&8)X="00"+X;if(X.length&1)throw new G("unexpected DER parsing assertion: unpadded hex");return X},decode(W){let{Err:G}=E4;if(W[0]&128)throw new G("invalid signature integer: negative");if(W[0]===0&&!(W[1]&128))throw new G("invalid signature integer: unnecessary leading zero");return L4(W)}},toSig(W){let{Err:G,_int:X,_tlv:Y}=E4,Z=B8("signature",W),{v:V,l:Q}=Y.decode(48,Z);if(Q.length)throw new G("invalid signature: left bytes after parsing");let{v:J,l:U}=Y.decode(2,V),{v:q,l:N}=Y.decode(2,U);if(N.length)throw new G("invalid signature: left bytes after parsing");return{r:X.decode(J),s:X.decode(q)}},hexFromSig(W){let{_tlv:G,_int:X}=E4,Y=G.encode(2,X.encode(W.r)),Z=G.encode(2,X.encode(W.s)),V=Y+Z;return G.encode(48,V)}},$4=BigInt(0),KY=BigInt(1),W$=BigInt(2),KN=BigInt(3),ql=BigInt(4);function d6(W,G){let{BYTES:X}=W,Y;if(typeof G==="bigint")Y=G;else{let Z=B8("private key",G);try{Y=W.fromBytes(Z)}catch(V){throw Error(`invalid private key: expected ui8a of size ${X}, got ${typeof G}`)}}if(!W.isValidNot0(Y))throw Error("invalid private key: out of range [1..N-1]");return Y}function Nl(W,G={}){let X=sE("weierstrass",W,G),{Fp:Y,Fn:Z}=X,V=X.CURVE,{h:Q,n:J}=V;RQ(G,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:U}=G;if(U){if(!Y.is0(V.a)||typeof U.beta!=="bigint"||!Array.isArray(U.basises))throw Error('invalid endo: expected "beta": bigint and "basises": array')}let q=X$(Y,Z);function N(){if(!Y.isOdd)throw Error("compression is not supported: Field does not have .isOdd()")}function A(y,o,B){let{x:R,y:_}=o.toAffine(),S=Y.toBytes(R);if(MQ(B,"isCompressed"),B){N();let v=!Y.isOdd(_);return o9(G$(v),S)}else return o9(Uint8Array.of(4),S,Y.toBytes(_))}function H(y){m6(y,void 0,"Point");let{publicKey:o,publicKeyUncompressed:B}=q,R=y.length,_=y[0],S=y.subarray(1);if(R===o&&(_===2||_===3)){let v=Y.fromBytes(S);if(!Y.isValid(v))throw Error("bad point: is not on curve, wrong x");let P=C(v),E;try{E=Y.sqrt(P)}catch(f){let e=f instanceof Error?": "+f.message:"";throw Error("bad point: is not on curve, sqrt error"+e)}N();let b=Y.isOdd(E);if((_&1)===1!==b)E=Y.neg(E);return{x:v,y:E}}else if(R===B&&_===4){let v=Y.BYTES,P=Y.fromBytes(S.subarray(0,v)),E=Y.fromBytes(S.subarray(v,v*2));if(!D(P,E))throw Error("bad point: is not on curve");return{x:P,y:E}}else throw Error(`bad point: got length ${R}, expected compressed=${o} or uncompressed=${B}`)}let I=G.toBytes||A,w=G.fromBytes||H;function C(y){let o=Y.sqr(y),B=Y.mul(o,y);return Y.add(Y.add(B,Y.mul(y,V.a)),V.b)}function D(y,o){let B=Y.sqr(o),R=C(y);return Y.eql(B,R)}if(!D(V.Gx,V.Gy))throw Error("bad curve params: generator point");let x=Y.mul(Y.pow(V.a,KN),ql),h=Y.mul(Y.sqr(V.b),BigInt(27));if(Y.is0(Y.add(x,h)))throw Error("bad curve params: a or b");function l(y,o,B=!1){if(!Y.isValid(o)||B&&Y.is0(o))throw Error(`bad point coordinate ${y}`);return o}function u(y){if(!(y instanceof m))throw Error("ProjectivePoint expected")}function n(y){if(!U||!U.basises)throw Error("no endo");return Ul(y,U.basises,Z.ORDER)}let c=Sj((y,o)=>{let{X:B,Y:R,Z:_}=y;if(Y.eql(_,Y.ONE))return{x:B,y:R};let S=y.is0();if(o==null)o=S?Y.ONE:Y.inv(_);let v=Y.mul(B,o),P=Y.mul(R,o),E=Y.mul(_,o);if(S)return{x:Y.ZERO,y:Y.ZERO};if(!Y.eql(E,Y.ONE))throw Error("invZ was invalid");return{x:v,y:P}}),p=Sj((y)=>{if(y.is0()){if(G.allowInfinityPoint&&!Y.is0(y.Y))return;throw Error("bad point: ZERO")}let{x:o,y:B}=y.toAffine();if(!Y.isValid(o)||!Y.isValid(B))throw Error("bad point: x or y not field elements");if(!D(o,B))throw Error("bad point: equation left != right");if(!y.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});function W0(y,o,B,R,_){return B=new m(Y.mul(B.X,y),B.Y,B.Z),o=EQ(R,o),B=EQ(_,B),o.add(B)}class m{constructor(y,o,B){this.X=l("x",y),this.Y=l("y",o,!0),this.Z=l("z",B),Object.freeze(this)}static CURVE(){return V}static fromAffine(y){let{x:o,y:B}=y||{};if(!y||!Y.isValid(o)||!Y.isValid(B))throw Error("invalid affine point");if(y instanceof m)throw Error("projective point not allowed");if(Y.is0(o)&&Y.is0(B))return m.ZERO;return new m(o,B,Y.ONE)}static fromBytes(y){let o=m.fromAffine(w(m6(y,void 0,"point")));return o.assertValidity(),o}static fromHex(y){return m.fromBytes(B8("pointHex",y))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(y=8,o=!0){if(U0.createCache(this,y),!o)this.multiply(KN);return this}assertValidity(){p(this)}hasEvenY(){let{y}=this.toAffine();if(!Y.isOdd)throw Error("Field doesn't support isOdd");return!Y.isOdd(y)}equals(y){u(y);let{X:o,Y:B,Z:R}=this,{X:_,Y:S,Z:v}=y,P=Y.eql(Y.mul(o,v),Y.mul(_,R)),E=Y.eql(Y.mul(B,v),Y.mul(S,R));return P&&E}negate(){return new m(this.X,Y.neg(this.Y),this.Z)}double(){let{a:y,b:o}=V,B=Y.mul(o,KN),{X:R,Y:_,Z:S}=this,v=Y.ZERO,P=Y.ZERO,E=Y.ZERO,b=Y.mul(R,R),k=Y.mul(_,_),f=Y.mul(S,S),e=Y.mul(R,_);return e=Y.add(e,e),E=Y.mul(R,S),E=Y.add(E,E),v=Y.mul(y,E),P=Y.mul(B,f),P=Y.add(v,P),v=Y.sub(k,P),P=Y.add(k,P),P=Y.mul(v,P),v=Y.mul(e,v),E=Y.mul(B,E),f=Y.mul(y,f),e=Y.sub(b,f),e=Y.mul(y,e),e=Y.add(e,E),E=Y.add(b,b),b=Y.add(E,b),b=Y.add(b,f),b=Y.mul(b,e),P=Y.add(P,b),f=Y.mul(_,S),f=Y.add(f,f),b=Y.mul(f,e),v=Y.sub(v,b),E=Y.mul(f,k),E=Y.add(E,E),E=Y.add(E,E),new m(v,P,E)}add(y){u(y);let{X:o,Y:B,Z:R}=this,{X:_,Y:S,Z:v}=y,P=Y.ZERO,E=Y.ZERO,b=Y.ZERO,k=V.a,f=Y.mul(V.b,KN),e=Y.mul(o,_),q0=Y.mul(B,S),Q0=Y.mul(R,v),$0=Y.add(o,B),D0=Y.add(_,S);$0=Y.mul($0,D0),D0=Y.add(e,q0),$0=Y.sub($0,D0),D0=Y.add(o,R);let x0=Y.add(_,v);return D0=Y.mul(D0,x0),x0=Y.add(e,Q0),D0=Y.sub(D0,x0),x0=Y.add(B,R),P=Y.add(S,v),x0=Y.mul(x0,P),P=Y.add(q0,Q0),x0=Y.sub(x0,P),b=Y.mul(k,D0),P=Y.mul(f,Q0),b=Y.add(P,b),P=Y.sub(q0,b),b=Y.add(q0,b),E=Y.mul(P,b),q0=Y.add(e,e),q0=Y.add(q0,e),Q0=Y.mul(k,Q0),D0=Y.mul(f,D0),q0=Y.add(q0,Q0),Q0=Y.sub(e,Q0),Q0=Y.mul(k,Q0),D0=Y.add(D0,Q0),e=Y.mul(q0,D0),E=Y.add(E,e),e=Y.mul(x0,D0),P=Y.mul($0,P),P=Y.sub(P,e),e=Y.mul($0,q0),b=Y.mul(x0,b),b=Y.add(b,e),new m(P,E,b)}subtract(y){return this.add(y.negate())}is0(){return this.equals(m.ZERO)}multiply(y){let{endo:o}=G;if(!Z.isValidNot0(y))throw Error("invalid scalar: out of range");let B,R,_=(S)=>U0.cached(this,S,(v)=>ON(m,v));if(o){let{k1neg:S,k1:v,k2neg:P,k2:E}=n(y),{p:b,f:k}=_(v),{p:f,f:e}=_(E);R=k.add(e),B=W0(o.beta,b,f,S,P)}else{let{p:S,f:v}=_(y);B=S,R=v}return ON(m,[B,R])[0]}multiplyUnsafe(y){let{endo:o}=G,B=this;if(!Z.isValid(y))throw Error("invalid scalar: out of range");if(y===$4||B.is0())return m.ZERO;if(y===KY)return B;if(U0.hasCache(this))return this.multiply(y);if(o){let{k1neg:R,k1:_,k2neg:S,k2:v}=n(y),{p1:P,p2:E}=rE(m,B,_,v);return W0(o.beta,P,E,R,S)}else return U0.unsafe(B,y)}multiplyAndAddUnsafe(y,o,B){let R=this.multiplyUnsafe(o).add(y.multiplyUnsafe(B));return R.is0()?void 0:R}toAffine(y){return c(this,y)}isTorsionFree(){let{isTorsionFree:y}=G;if(Q===KY)return!0;if(y)return y(m,this);return U0.unsafe(this,J).is0()}clearCofactor(){let{clearCofactor:y}=G;if(Q===KY)return this;if(y)return y(m,this);return this.multiplyUnsafe(Q)}isSmallOrder(){return this.multiplyUnsafe(Q).is0()}toBytes(y=!0){return MQ(y,"isCompressed"),this.assertValidity(),I(m,this,y)}toHex(y=!0){return R4(this.toBytes(y))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(y=!0){return this.toBytes(y)}_setWindowSize(y){this.precompute(y)}static normalizeZ(y){return ON(m,y)}static msm(y,o){return aE(m,Z,y,o)}static fromPrivateKey(y){return m.BASE.multiply(d6(Z,y))}}m.BASE=new m(V.Gx,V.Gy,Y.ONE),m.ZERO=new m(Y.ZERO,Y.ONE,Y.ZERO),m.Fp=Y,m.Fn=Z;let Y0=Z.BITS,U0=new cj(m,G.endo?Math.ceil(Y0/2):Y0);return m.BASE.precompute(8),m}function G$(W){return Uint8Array.of(W?2:3)}function X$(W,G){return{secretKey:G.BYTES,publicKey:1+W.BYTES,publicKeyUncompressed:1+2*W.BYTES,publicKeyHasPrefix:!0,signature:2*G.BYTES}}function Hl(W,G={}){let{Fn:X}=W,Y=G.randomBytes||HG,Z=Object.assign(X$(W.Fp,X),{seed:_j(X.ORDER)});function V(I){try{return!!d6(X,I)}catch(w){return!1}}function Q(I,w){let{publicKey:C,publicKeyUncompressed:D}=Z;try{let x=I.length;if(w===!0&&x!==C)return!1;if(w===!1&&x!==D)return!1;return!!W.fromBytes(I)}catch(x){return!1}}function J(I=Y(Z.seed)){return IN(m6(I,Z.seed,"seed"),X.ORDER)}function U(I,w=!0){return W.BASE.multiply(d6(X,I)).toBytes(w)}function q(I){let w=J(I);return{secretKey:w,publicKey:U(w)}}function N(I){if(typeof I==="bigint")return!1;if(I instanceof W)return!0;let{secretKey:w,publicKey:C,publicKeyUncompressed:D}=Z;if(X.allowedLengths||w===C)return;let x=B8("key",I).length;return x===C||x===D}function A(I,w,C=!0){if(N(I)===!0)throw Error("first arg must be private key");if(N(w)===!1)throw Error("second arg must be public key");let D=d6(X,I);return W.fromHex(w).multiply(D).toBytes(C)}return Object.freeze({getPublicKey:U,getSharedSecret:A,keygen:q,Point:W,utils:{isValidSecretKey:V,isValidPublicKey:Q,randomSecretKey:J,isValidPrivateKey:V,randomPrivateKey:J,normPrivateKeyToScalar:(I)=>d6(X,I),precompute(I=8,w=W.BASE){return w.precompute(I,!1)}},lengths:Z})}function Al(W,G,X={}){JN(G),RQ(X,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let Y=X.randomBytes||HG,Z=X.hmac||((B,...R)=>hj(G,B,o9(...R))),{Fp:V,Fn:Q}=W,{ORDER:J,BITS:U}=Q,{keygen:q,getPublicKey:N,getSharedSecret:A,utils:H,lengths:I}=Hl(W,X),w={prehash:!1,lowS:typeof X.lowS==="boolean"?X.lowS:!1,format:void 0,extraEntropy:!1},C="compact";function D(B){let R=J>>KY;return B>R}function x(B,R){if(!Q.isValidNot0(R))throw Error(`invalid signature ${B}: out of range 1..Point.Fn.ORDER`);return R}function h(B,R){lj(R);let _=I.signature,S=R==="compact"?_:R==="recovered"?_+1:void 0;return m6(B,S,`${R} signature`)}class l{constructor(B,R,_){if(this.r=x("r",B),this.s=x("s",R),_!=null)this.recovery=_;Object.freeze(this)}static fromBytes(B,R=C){h(B,R);let _;if(R==="der"){let{r:E,s:b}=E4.toSig(m6(B));return new l(E,b)}if(R==="recovered")_=B[0],R="compact",B=B.subarray(1);let S=Q.BYTES,v=B.subarray(0,S),P=B.subarray(S,S*2);return new l(Q.fromBytes(v),Q.fromBytes(P),_)}static fromHex(B,R){return this.fromBytes(NG(B),R)}addRecoveryBit(B){return new l(this.r,this.s,B)}recoverPublicKey(B){let R=V.ORDER,{r:_,s:S,recovery:v}=this;if(v==null||![0,1,2,3].includes(v))throw Error("recovery id invalid");if(J*W$<R&&v>1)throw Error("recovery id is ambiguous for h>1 curve");let E=v===2||v===3?_+J:_;if(!V.isValid(E))throw Error("recovery id 2 or 3 invalid");let b=V.toBytes(E),k=W.fromBytes(o9(G$((v&1)===0),b)),f=Q.inv(E),e=n(B8("msgHash",B)),q0=Q.create(-e*f),Q0=Q.create(S*f),$0=W.BASE.multiplyUnsafe(q0).add(k.multiplyUnsafe(Q0));if($0.is0())throw Error("point at infinify");return $0.assertValidity(),$0}hasHighS(){return D(this.s)}toBytes(B=C){if(lj(B),B==="der")return NG(E4.hexFromSig(this));let R=Q.toBytes(this.r),_=Q.toBytes(this.s);if(B==="recovered"){if(this.recovery==null)throw Error("recovery bit must be present");return o9(Uint8Array.of(this.recovery),R,_)}return o9(R,_)}toHex(B){return R4(this.toBytes(B))}assertValidity(){}static fromCompact(B){return l.fromBytes(B8("sig",B),"compact")}static fromDER(B){return l.fromBytes(B8("sig",B),"der")}normalizeS(){return this.hasHighS()?new l(this.r,Q.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return R4(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return R4(this.toBytes("compact"))}}let u=X.bits2int||function(R){if(R.length>8192)throw Error("input is too large");let _=L4(R),S=R.length*8-U;return S>0?_>>BigInt(S):_},n=X.bits2int_modN||function(R){return Q.create(u(R))},c=f6(U);function p(B){return OE("num < 2^"+U,B,$4,c),Q.toBytes(B)}function W0(B,R){return m6(B,void 0,"message"),R?m6(G(B),void 0,"prehashed message"):B}function m(B,R,_){if(["recovered","canonical"].some((Q0)=>(Q0 in _)))throw Error("sign() legacy options not supported");let{lowS:S,prehash:v,extraEntropy:P}=pj(_,w);B=W0(B,v);let E=n(B),b=d6(Q,R),k=[p(b),p(E)];if(P!=null&&P!==!1){let Q0=P===!0?Y(I.secretKey):P;k.push(B8("extraEntropy",Q0))}let f=o9(...k),e=E;function q0(Q0){let $0=u(Q0);if(!Q.isValidNot0($0))return;let D0=Q.inv($0),x0=W.BASE.multiply($0).toAffine(),N1=Q.create(x0.x);if(N1===$4)return;let U1=Q.create(D0*Q.create(e+N1*b));if(U1===$4)return;let J0=(x0.x===N1?0:2)|Number(x0.y&KY),B0=U1;if(S&&D(U1))B0=Q.neg(U1),J0^=1;return new l(N1,B0,J0)}return{seed:f,k2sig:q0}}function Y0(B,R,_={}){B=B8("message",B);let{seed:S,k2sig:v}=m(B,R,_);return KE(G.outputLen,Q.BYTES,Z)(S,v)}function U0(B){let R=void 0,_=typeof B==="string"||qG(B),S=!_&&B!==null&&typeof B==="object"&&typeof B.r==="bigint"&&typeof B.s==="bigint";if(!_&&!S)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(S)R=new l(B.r,B.s);else if(_){try{R=l.fromBytes(B8("sig",B),"der")}catch(v){if(!(v instanceof E4.Err))throw v}if(!R)try{R=l.fromBytes(B8("sig",B),"compact")}catch(v){return!1}}if(!R)return!1;return R}function y(B,R,_,S={}){let{lowS:v,prehash:P,format:E}=pj(S,w);if(_=B8("publicKey",_),R=W0(B8("message",R),P),"strict"in S)throw Error("options.strict was renamed to lowS");let b=E===void 0?U0(B):l.fromBytes(B8("sig",B),E);if(b===!1)return!1;try{let k=W.fromBytes(_);if(v&&b.hasHighS())return!1;let{r:f,s:e}=b,q0=n(R),Q0=Q.inv(e),$0=Q.create(q0*Q0),D0=Q.create(f*Q0),x0=W.BASE.multiplyUnsafe($0).add(k.multiplyUnsafe(D0));if(x0.is0())return!1;return Q.create(x0.x)===f}catch(k){return!1}}function o(B,R,_={}){let{prehash:S}=pj(_,w);return R=W0(R,S),l.fromBytes(B,"recovered").recoverPublicKey(R).toBytes()}return Object.freeze({keygen:q,getPublicKey:N,getSharedSecret:A,utils:H,lengths:I,Point:W,sign:Y0,verify:y,recoverPublicKey:o,Signature:l,hash:G})}function zl(W){let G={a:W.a,b:W.b,p:W.Fp.ORDER,n:W.n,h:W.h,Gx:W.Gx,Gy:W.Gy},X=W.Fp,Y=W.allowedPrivateKeyLengths?Array.from(new Set(W.allowedPrivateKeyLengths.map((Q)=>Math.ceil(Q/2)))):void 0,Z=T5(G.n,{BITS:W.nBitLength,allowedLengths:Y,modFromBytes:W.wrapPrivateKey}),V={Fp:X,Fn:Z,allowInfinityPoint:W.allowInfinityPoint,endo:W.endo,isTorsionFree:W.isTorsionFree,clearCofactor:W.clearCofactor,fromBytes:W.fromBytes,toBytes:W.toBytes};return{CURVE:G,curveOpts:V}}function Il(W){let{CURVE:G,curveOpts:X}=zl(W),Y={hmac:W.hmac,randomBytes:W.randomBytes,lowS:W.lowS,bits2int:W.bits2int,bits2int_modN:W.bits2int_modN};return{CURVE:G,curveOpts:X,hash:W.hash,ecdsaOpts:Y}}function wl(W,G){let X=G.Point;return Object.assign({},G,{ProjectivePoint:X,CURVE:Object.assign({},W,zN(X.Fn.ORDER,X.Fn.BITS))})}function Y$(W){let{CURVE:G,curveOpts:X,hash:Y,ecdsaOpts:Z}=Il(W),V=Nl(G,X),Q=Al(V,Y,Z);return wl(W,Q)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function CY(W,G){let X=(Y)=>Y$({...W,hash:Y});return{...X(G),create:X}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Z$={p:BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),h:BigInt(1),a:BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5")},V$={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff"),n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),h:BigInt(1),a:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc"),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f")},Q$={p:BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),h:BigInt(1),a:BigInt("0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650")},jl=T5(Z$.p),Ol=T5(V$.p),Kl=T5(Q$.p);var J$=CY({...Z$,Fp:jl,lowS:!1},jY);var TN0=CY({...V$,Fp:Ol,lowS:!1},pE);var PN0=CY({...Q$,Fp:Kl,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},cE);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var CN=J$;var Z9=v1(I8(),1),W7=v1(I8(),1),g2=v1(I8(),1),MG=v1(I8(),1),f4=v1(I8(),1),c2=v1(xU(),1),PG=v1(I8(),1),i6=v1(I8(),1),RG=v1(I8(),1),fY=v1(I8(),1),r6=v1(I8(),1),LG=v1(I8(),1),G7=v1(I8(),1),X7=v1(I8(),1),zH=v1(I8(),1),e5=v1(I8(),1),a2=v1(I8(),1),Ko=v1(H$(),1);import{randomBytes as ed}from"crypto";import{setTimeout as Wo}from"timers/promises";import{createCipheriv as Ho,createDecipheriv as Ao}from"crypto";var vN=v1(z$(),1),BG=v1(I8(),1),CG=v1(I8(),1),f7=v1(I8(),1),b7=v1(I8(),1),EG=v1(I8(),1);import{createHmac as VO}from"crypto";import{createCipheriv as WF,createDecipheriv as GF,createHmac as XF,timingSafeEqual as io}from"crypto";import{createCipheriv as QF,createDecipheriv as JF}from"crypto";import{setTimeout as Zn}from"timers/promises";import{randomBytes as qn}from"crypto";import{createHmac as jS}from"crypto";import{randomBytes as OS}from"crypto";var PN="undefined",RY=PN!==typeof Buffer&&Buffer,PY=PN!==typeof Uint8Array&&Uint8Array,TN=PN!==typeof ArrayBuffer&&ArrayBuffer,I$=[0,0,0,0,0,0,0,0],Ml=Array.isArray||Fl,TY=4294967296,Tl=16777216,LY,RN=j$("Uint64BE",!0,!0),nj=j$("Int64BE",!0,!1);function j$(W,G,X){var Y=G?0:4,Z=G?4:0,V=G?0:3,Q=G?1:2,J=G?2:1,U=G?3:0,q=G?Ll:El,N=G?Bl:$l,A=w.prototype,H="is"+W,I="_"+H;if(A.buffer=void 0,A.offset=0,A[I]=!0,A.toNumber=h,A.toString=l,A.toJSON=h,A.toArray=Pl,RY)A.toBuffer=Rl;if(PY)A.toArrayBuffer=O$;return w[H]=C,w;function w(c,p,W0,m){if(!(this instanceof w))return new w(c,p,W0,m);return D(this,c,p,W0,m)}function C(c){return!!(c&&c[I])}function D(c,p,W0,m,Y0){if(PY&&TN){if(p instanceof TN)p=new PY(p);if(m instanceof TN)m=new PY(m)}if(!p&&!W0&&!m&&!LY){c.buffer=K$(I$,0);return}if(!w$(p,W0)){var U0=LY||Array;Y0=W0,m=p,W0=0,p=LY===RY?RY.alloc(8):new U0(8)}if(c.buffer=p,c.offset=W0|=0,PN===typeof m)return;if(typeof m==="string")x(p,W0,m,Y0||10);else if(w$(m,Y0))oj(p,W0,m,Y0);else if(typeof Y0==="number")u(p,W0+Y,m),u(p,W0+Z,Y0);else if(m>0)q(p,W0,m);else if(m<0)N(p,W0,m);else oj(p,W0,I$,0)}function x(c,p,W0,m){var Y0=0,U0=W0.length,y=0,o=0;if(W0[0]==="-")Y0++;var B=Y0;while(Y0<U0){var R=parseInt(W0[Y0++],m);if(!(R>=0))break;o=o*m+R,y=y*m+Math.floor(o/TY),o%=TY}if(B)if(y=~y,o)o=TY-o;else y++;u(c,p+Y,y),u(c,p+Z,o)}function h(){var c=this.buffer,p=this.offset,W0=n(c,p+Y),m=n(c,p+Z);if(!X)W0|=0;return W0?W0*TY+m:m}function l(c){var p=this.buffer,W0=this.offset,m=n(p,W0+Y),Y0=n(p,W0+Z),U0="",y=!X&&m&2147483648;if(y)m=~m,Y0=TY-Y0;c=c||10;while(!0){var o=m%c*TY+Y0;if(m=Math.floor(m/c),Y0=Math.floor(o/c),U0=(o%c).toString(c)+U0,!m&&!Y0)break}if(y)U0="-"+U0;return U0}function u(c,p,W0){c[p+U]=W0&255,W0=W0>>8,c[p+J]=W0&255,W0=W0>>8,c[p+Q]=W0&255,W0=W0>>8,c[p+V]=W0&255}function n(c,p){return c[p+V]*Tl+(c[p+Q]<<16)+(c[p+J]<<8)+c[p+U]}}function Pl(W){var G=this.buffer,X=this.offset;if(LY=null,W!==!1&&Ml(G))return G.length===8?G:G.slice(X,X+8);return K$(G,X)}function Rl(W){var G=this.buffer,X=this.offset;if(LY=RY,W!==!1&&RY.isBuffer(G))return G.length===8?G:G.slice(X,X+8);return RY.from(O$.call(this,W))}function O$(W){var G=this.buffer,X=this.offset,Y=G.buffer;if(LY=PY,W!==!1&&!G.offset&&Y instanceof TN)return Y.byteLength===8?Y:Y.slice(X,X+8);var Z=new PY(8);return oj(Z,0,G,X),Z.buffer}function w$(W,G){var X=W&&W.length;return G|=0,X&&G+8<=X&&typeof W[G]!=="string"}function oj(W,G,X,Y){G|=0,Y|=0;for(var Z=0;Z<8;Z++)W[G++]=X[Y++]&255}function K$(W,G){return Array.prototype.slice.call(W,G,G+8)}function Ll(W,G,X){var Y=G+8;while(Y>G)W[--Y]=X&255,X/=256}function Bl(W,G,X){var Y=G+8;X++;while(Y>G)W[--Y]=-X&255^255,X/=256}function El(W,G,X){var Y=G+8;while(G<Y)W[G++]=X&255,X/=256}function $l(W,G,X){var Y=G+8;X++;while(G<Y)W[G++]=-X&255^255,X/=256}function Fl(W){return!!W&&Object.prototype.toString.call(W)=="[object Array]"}var aQ=v1(rj(),1);import{createHash as En}from"crypto";import{setTimeout as $n}from"timers/promises";import{createHash as gn}from"crypto";import{isIPv4 as EF}from"net";import{randomBytes as un}from"crypto";import{isIPv4 as $F}from"net";var bN=v1(M$(),1),LS=v1(g$(),1),ES=v1(rj(),1);import*as yO from"timers/promises";import{randomUUID as bn}from"crypto";import*as BS from"os";import{EventEmitter as sn}from"events";import{randomUUID as Ui}from"crypto";import{setTimeout as IO}from"timers/promises";import{createHash as qi}from"crypto";import{performance as FN}from"perf_hooks";import{randomUUID as Ni}from"crypto";import{randomUUID as bS}from"crypto";import{setTimeout as ki}from"timers/promises";import{randomBytes as gi}from"crypto";import{isIPv4 as ui}from"net";var sQ=v1(gz(),1);import{randomUUID as hi}from"crypto";import{setTimeout as bi}from"timers/promises";import{randomUUID as li}from"crypto";import{randomUUID as ri}from"crypto";import{createHmac as iF,randomBytes as ai}from"crypto";import{randomBytes as Q2}from"crypto";import{randomUUID as J2}from"crypto";import{setTimeout as U2}from"timers/promises";import{randomUUID as Rr}from"crypto";function z2(){return a1.Unpack("!H",A2(2))[0]}function DO(){return a1.Unpack("!L",A2(4))[0]}var nN=class{constructor(W){this.bitLength=W}value=0;set(W,G,X){return X&=(1<<W)-1,this.value|=X<<this.bitLength-W-G,this}get buffer(){let W=Math.ceil(this.bitLength/8),G=Buffer.alloc(W);return G.writeUIntBE(this.value,0,W),G}},I2=class{constructor(W){if(this.bitLength=W,W>32)throw Error()}_value=0n;offset=0n;set(W,G=1){let X=BigInt(W),Y=BigInt(G);return X&=(1n<<Y)-1n,this._value|=X<<BigInt(this.bitLength)-Y-this.offset,this.offset+=Y,this}get value(){return Number(this._value)}get buffer(){let W=Math.ceil(this.bitLength/8),G=Buffer.alloc(W);return G.writeUIntBE(this.value,0,W),G}};function g8(W,G,X=1){let Y=W.toString(2).split("");Y=[...Array(8-Y.length).fill("0"),...Y];let Z=Y.slice(G,G+X).join("");return Number.parseInt(Z,2)}function E8(W,G){return _N(W)(G)}function _N(W,G){let X=W.reduce((Z,V)=>Z+V,0),Y=G?Buffer.alloc(X):void 0;return(Z)=>{let V=Y||Buffer.alloc(X),Q=0;return Z.forEach((J,U)=>{let q=W[U];if(q===8)V.writeBigUInt64BE(J,Q);else V.writeUIntBE(J,Q,q);Q+=q}),V}}function r9(W,G){let X=0;return G.map((Y)=>{let Z;if(Y===8)Z=W.readBigUInt64BE(X);else Z=W.readUIntBE(X,Y);return X+=Y,Z})}var cQ=class{constructor(W){this.uint8Array=W}position=0;bitsPending=0;writeBits(W,G){if(W==0)return this;G&=4294967295>>>32-W;let X;if(this.bitsPending>0)if(this.bitsPending>W)this.uint8Array[this.position-1]|=G<<this.bitsPending-W,X=W,this.bitsPending-=W;else if(this.bitsPending==W)this.uint8Array[this.position-1]|=G,X=W,this.bitsPending=0;else this.uint8Array[this.position-1]|=G>>W-this.bitsPending,X=this.bitsPending,this.bitsPending=0;else X=Math.min(8,W),this.bitsPending=8-X,this.uint8Array[this.position++]=G>>W-X<<this.bitsPending;if(W-=X,W>0)this.writeBits(W,G);return this}readBits(W){return this._readBits(W)}_readBits(W,G){if(typeof G>"u")G=0;if(W==0)return G;let X,Y;if(this.bitsPending>0){let Z=this.uint8Array[this.position-1]&255>>8-this.bitsPending;Y=Math.min(this.bitsPending,W),this.bitsPending-=Y,X=Z>>this.bitsPending}else Y=Math.min(8,W),this.bitsPending=8-Y,X=this.uint8Array[this.position++]>>this.bitsPending;return W-=Y,G=G<<Y|X,W>0?this._readBits(W,G):G}seekTo(W){if(this.position=W/8|0,this.bitsPending=W%8,this.bitsPending>0)this.bitsPending=8-this.bitsPending,this.position++}},Kd=3988292384,Cd=2197175160;function w2(W){return typeof W!=="string"}function j2(W){let G=Array(256),X=0;for(let Y=0;Y<256;++Y)X=Y,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,G[Y]=X;return new Int32Array(G)}function O2(W){let G=new Int32Array(4096),X=0,Y=0,Z=0;for(Z=0;Z<256;++Z)G[Z]=W[Z];for(Z=0;Z<256;++Z){Y=W[Z];for(X=256+Z;X<4096;X+=256)Y=G[X]=Y>>>8^W[Y&255]}let V=[];for(Z=1;Z<16;++Z)V[Z-1]=G.subarray(Z*256,Z*256+256);return V}function K2(W,G,X){let Y=G^-1,Z=0,V=W.length,Q=0,J=0;while(Z<V)if(Q=W.charCodeAt(Z++),Q<128)Y=Y>>>8^X[(Y^Q)&255];else if(Q<2048)Y=Y>>>8^X[(Y^(192|Q>>6&31))&255],Y=Y>>>8^X[(Y^(128|Q&63))&255];else if(Q>=55296&&Q<57344)Q=(Q&1023)+64,J=W.charCodeAt(Z++)&1023,Y=Y>>>8^X[(Y^(240|Q>>8&7))&255],Y=Y>>>8^X[(Y^(128|Q>>2&63))&255],Y=Y>>>8^X[(Y^(128|J>>6&15|(Q&3)<<4))&255],Y=Y>>>8^X[(Y^(128|J&63))&255];else Y=Y>>>8^X[(Y^(224|Q>>12&15))&255],Y=Y>>>8^X[(Y^(128|Q>>6&63))&255],Y=Y>>>8^X[(Y^(128|Q&63))&255];return~Y>>>0}function C2(W,G,X,Y){let[Z,V,Q,J,U,q,N,A,H,I,w,C,D,x,h]=Y,l=G^-1,u=0,n=W.length-15;while(u<n)l=h[W[u++]^l&255]^x[W[u++]^l>>>8&255]^D[W[u++]^l>>>16&255]^C[W[u++]^l>>>24]^w[W[u++]]^I[W[u++]]^H[W[u++]]^A[W[u++]]^N[W[u++]]^q[W[u++]]^U[W[u++]]^J[W[u++]]^Q[W[u++]]^V[W[u++]]^Z[W[u++]]^X[W[u++]];for(n+=15;u<n;)l=l>>>8^X[(l^W[u++])&255];return~l>>>0}var MO=j2(Kd),Dd=O2(MO),TO=j2(Cd),Md=O2(TO);function Td(W,G=0){if(w2(W))return C2(W,G,MO,Dd);return K2(W,G,MO)}function D2(W,G=0){if(w2(W))return C2(W,G,TO,Md);return K2(W,G,TO)}function Pd(W,G){return W+G&255}function M9(W,G){return W+G&65535}function yY(W,G){return Number(BigInt(W)+BigInt(G)&0xffffffffn)}function Rd(W){return W&16777215}function M2(W,G){return W<G&&G-W>32768||W>G&&W-G<32768}function m4(W,G){return W<G&&G-W>2147483648||W>G&&W-G<2147483648}function bQ(W,G){return W===G||m4(W,G)}var pQ=(W)=>Number.parseInt(W,10);var T2=(W,G)=>G?G[W]:void 0;async function Bd(W,G,X="udp4",Y){let Z;for(let V=W;V<=G;V++){let Q=Ld(X);if(setImmediate(()=>Q.bind({port:V,address:T2(X,Y)})),await new Promise((U)=>{Q.once("error",(q)=>U(q)),Q.once("listening",()=>U())})){await new Promise((U)=>Q.close(()=>U()));continue}if(Z=Q.address()?.port,await new Promise((U)=>Q.close(()=>U())),W<=Z&&Z<=G)break}if(!Z)throw Error("port not found");return Z}function iN(W){if(W==="IPv4")return 4;if(W==="IPv6")return 6;return W}var T1=P2.default.debug,f0=class{event={stack:[],promiseStack:[],eventId:0};ended=!1;onended;onerror=(W)=>{};execute=(...W)=>{if(this.ended)return;for(let G of this.event.stack)G.execute(...W);(async()=>{for(let G of this.event.promiseStack)await G.execute(...W)})().catch((G)=>{this.onerror(G)})};complete=()=>{if(this.ended)return;for(let W of this.event.stack)if(W.complete)W.complete();if(this.allUnsubscribe(),this.ended=!0,this.onended)this.onended(),this.onended=void 0};error=(W)=>{if(this.ended)return;for(let G of this.event.stack)if(G.error)G.error(W);this.allUnsubscribe()};allUnsubscribe=()=>{if(this.ended)throw Error("event completed");this.event={stack:[],promiseStack:[],eventId:0}};subscribe=(W,G,X)=>{let Y=this.event.eventId;this.event.stack.push({execute:W,id:Y,complete:G,error:X}),this.event.eventId++;let Z=()=>{this.event.stack=this.event.stack.filter((Q)=>Q.id!==Y&&Q)};return{unSubscribe:Z,disposer:(Q)=>{Q.push(Z)}}};pipe(W){this.subscribe((...G)=>{W.execute(...G)})}queuingSubscribe=(W,G,X)=>{if(this.ended)throw Error("event completed");let Y=this.event.eventId;this.event.promiseStack.push({execute:W,id:Y,complete:G,error:X}),this.event.eventId++;let Z=()=>{this.event.stack=this.event.stack.filter((Q)=>Q.id!==Y&&Q)};return{unSubscribe:Z,disposer:(Q)=>{Q.push(Z)}}};once=(W,G,X)=>{let Y=this.subscribe((...Z)=>{Y.unSubscribe(),W(...Z)},G,X)};watch=(W,G)=>new Promise((X,Y)=>{let Z=G&&setTimeout(()=>{Y("Event watch timeout")},G),{unSubscribe:V}=this.subscribe((...Q)=>{if(W(...Q)){if(Z)clearTimeout(Z);V(),X(Q)}})});asPromise=(W)=>new Promise((G,X)=>{let Y=W&&setTimeout(()=>{X("Event asPromise timeout")},W);this.once((...Z)=>{if(Y)clearTimeout(Y);G(Z)},()=>{if(Y)clearTimeout(Y);G([])},(Z)=>{if(Y)clearTimeout(Y);X(Z)})});get returnTrigger(){let{execute:W,error:G,complete:X}=this;return{execute:W,error:G,complete:X}}get returnListener(){let{subscribe:W,once:G,asPromise:X}=this;return{subscribe:W,once:G,asPromise:X}}get length(){return this.event.stack.length}},Ed=class{_disposer=[];push(W){this._disposer.push(W)}dispose(){this._disposer.forEach((W)=>W()),this._disposer=[]}},u$=T1("werift-ice:packages/ice/src/transport.ts"),PO=class W{constructor(G,X={}){this.socketType=G,this.options=X,this.socket=$d(G),this.socket.on("message",(Y,Z)=>{if(iN(Z.family)===6)[Z.address]=Z.address.split("%");this.rinfo=Z;try{this.onData(Y,[Z.address,Z.port])}catch(V){u$("onData error",V)}})}type="udp";socket;rinfo;onData=()=>{};closed=!1;static async init(G,X={}){let Y=new W(G,X);return await Y.init(),Y}async init(){let G=T2(this.socketType,this.options.interfaceAddresses);if(this.options.port)this.socket.bind({port:this.options.port,address:G});else if(this.options.portRange){let X=await Bd(this.options.portRange[0],this.options.portRange[1],this.socketType,this.options.interfaceAddresses);this.socket.bind({port:X,address:G})}else this.socket.bind({address:G});await new Promise((X)=>this.socket.once("listening",X))}send=async(G,X)=>{if(X&&!R2.isIP(X[0]))return new Promise((Y,Z)=>{this.socket.send(G,X[1],X[0],(V)=>{if(V)u$("send error",X,G),Z(V);else Y()})});else X=X??[this.rinfo?.address,this.rinfo?.port],this.socket.send(G,X[1],X[0])};get address(){return this.socket.address()}get host(){return this.socket.address().address}get port(){return this.socket.address().port}close=()=>new Promise((G)=>{this.closed=!0,this.socket.once("close",G);try{this.socket.close()}catch(X){G()}})},Sd=class W{constructor(G){this.addr=G,this.connect()}type="tcp";connecting;client;onData=()=>{};closed=!1;connect(){if(this.closed)return;if(this.client)this.client.destroy();this.connecting=new Promise((G,X)=>{try{this.client=Fd({port:this.addr[1],host:this.addr[0]},G)}catch(Y){X(Y)}}),this.client.on("data",(G)=>{let X=[this.client.remoteAddress,this.client.remotePort];this.onData(G,X)}),this.client.on("end",()=>{this.connect()}),this.client.on("error",(G)=>{console.log("error",G)})}async init(){await this.connecting}static async init(G){let X=new W(G);return await X.init(),X}get address(){return{}}send=async(G,X)=>{await this.connecting,this.client.write(G,(Y)=>{if(Y)console.log("err",Y)})};close=async()=>{this.closed=!0,this.client.destroy()}},p4={rsa_1:1,ecdsa_3:3},rN={sha256_4:4},RO={TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_49195:49195,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256_49199:49199},yd=Object.values(RO),a6={x25519_29:29,secp256r1_23:23},L2=Object.values(a6),B2={named_curve_3:3},h$={rsa_pkcs1_sha256:1025,ecdsa_secp256r1_sha256:1027},vd=[1,64],E2=[{hash:rN.sha256_4,signature:p4.rsa_1},{hash:rN.sha256_4,signature:p4.ecdsa_3}],hd=()=>{let W=CN.utils.randomPrivateKey(),G=CN.getPublicKey(W,!1),X=Buffer.from(W),Y=Buffer.from(G);return{privateKey:X,publicKey:Y}},bd=({publicKey:W,privateKey:G})=>{let X=CN.getSharedSecret(G,W);return Buffer.from(X).subarray(1)};function S2(W,G,X){switch(X){case a6.secp256r1_23:return bd({publicKey:W,privateKey:G});case a6.x25519_29:return Buffer.from(F2.default.scalarMult(G,W));default:throw Error()}}function b$(W,G,X){let Y=ud(W,G);return Y.update(X),Y.digest()}function eQ(W,G,X,Y="sha256"){let Z=X,V=[],Q=G;do{Q=b$(Y,W,Q);let J=b$(Y,W,Buffer.concat([Q,G]));V.push(J),X-=J.length}while(X>0);return Buffer.concat(V,Z)}function x2(W,G,X){let Y=Buffer.concat([Buffer.from("master secret"),G,X]);return eQ(W,Y,48)}function k2(W,G){let X=_2("sha256",G),Y="extended master secret";return eQ(W,Buffer.concat([Buffer.from("extended master secret"),X]),48)}function md(W,G,X,Y,Z,V){let Q=V?Y:Z,J=V?Z:Y,U=Buffer.concat([Buffer.from(W),Q,J]);return eQ(X,U,G)}function _2(W,G){return gd(W).update(G).digest()}function y2(W,G,X,Y=12){let Z=_2("sha256",G);return eQ(W,Buffer.concat([Buffer.from(X),Z]),Y)}function fd(W,G){return y2(W,G,"client finished")}function cd(W,G){return y2(W,G,"server finished")}function pd(W,G,X,Y,Z,V,Q="sha256"){let J=Y*2+Z*2,U=W,q=Buffer.concat([X,G]),N=eQ(U,Buffer.concat([Buffer.from("key expansion"),q]),J,Q),A=$2.createDecode(N),H=A.readBuffer(Y),I=A.readBuffer(Y),w=A.readBuffer(Z),C=A.readBuffer(Z),D=Buffer.alloc(V,0),x=Buffer.alloc(V,0);return w.copy(D,0),C.copy(x,0),{clientWriteKey:H,serverWriteKey:I,clientNonce:D,serverNonce:x}}var c4={CLIENT:1,SERVER:2},ld=class{id=0;name;hashAlgorithm;verifyDataLength=12;blockAlgorithm;kx;init(...W){throw Error("not implemented")}encrypt(...W){throw Error("not implemented")}decrypt(...W){throw Error("not implemented")}toString(){return this.name}},LO=_d;y8.set(LO);var aN=class{constructor(W,G,X,Y){if(this.sessionType=W,this.certPem=G,this.keyPem=X,G&&X&&Y)this.parseX509(G,X,Y)}localRandom;remoteRandom;cipherSuite;remoteCertificate;remoteKeyPair;localKeyPair;masterSecret;cipher;namedCurve;signatureHashAlgorithm;localCert;localPrivateKey;static createSelfSignedCertificateWithKey=async(W,G)=>{let X=(()=>{switch(W.signature){case p4.rsa_1:return"RSASSA-PKCS1-v1_5";case p4.ecdsa_3:return"ECDSA"}})(),Y=(()=>{switch(W.hash){case rN.sha256_4:return"SHA-256"}})(),Z=(()=>{switch(G){case a6.secp256r1_23:return"P-256";case a6.x25519_29:if(X==="ECDSA")return"P-256";return"X25519";default:{if(X==="ECDSA")return"P-256";if(X==="RSASSA-PKCS1-v1_5")return"X25519"}}})(),V=(()=>{switch(X){case"ECDSA":return{name:X,hash:Y,namedCurve:Z};case"RSASSA-PKCS1-v1_5":return{name:X,hash:Y,publicExponent:new Uint8Array([1,0,1]),modulusLength:2048}}})(),Q=await LO.subtle.generateKey(V,!0,["sign","verify"]),U=(await Ij.createSelfSigned({serialNumber:kd(8).toString("hex"),name:"C=AU, ST=Some-State, O=Internet Widgits Pty Ltd",notBefore:new Date,notAfter:new Date(Date.now()+315360000000),signingAlgorithm:V,keys:Q})).toString("pem"),q=K9.encode(await LO.subtle.exportKey("pkcs8",Q.privateKey),"private key");return{certPem:U,keyPem:q,signatureHash:W}};encryptPacket(W){let G=W.recordLayerHeader,X=G.protocolVersion.major<<8|G.protocolVersion.minor,Y=this.cipher.encrypt(this.sessionType,W.fragment,{type:G.contentType,version:X,epoch:G.epoch,sequenceNumber:G.sequenceNumber});return W.fragment=Y,W.recordLayerHeader.contentLen=Y.length,W}decryptPacket(W){let G=W.recordLayerHeader,X=G.protocolVersion.major<<8|G.protocolVersion.minor;return this.cipher.decrypt(this.sessionType,W.fragment,{type:G.contentType,version:X,epoch:G.epoch,sequenceNumber:G.sequenceNumber})}verifyData(W){if(this.sessionType===c4.CLIENT)return fd(this.masterSecret,W);else return cd(this.masterSecret,W)}signatureData(W,G){let X=xd(G).update(W),Y=this.localPrivateKey.toPEM().toString();return X.sign(Y)}generateKeySignature(W){let G=this.sessionType===c4.CLIENT?this.localRandom:this.remoteRandom,X=this.sessionType===c4.SERVER?this.localRandom:this.remoteRandom,Y=this.valueKeySignature(G.serialize(),X.serialize(),this.localKeyPair.publicKey,this.namedCurve);return this.localPrivateKey.sign(Y,W)}parseX509(W,G,X){let Y=qH.Certificate.fromPEM(Buffer.from(W)),Z=qH.PrivateKey.fromPEM(Buffer.from(G));this.localCert=Y.raw,this.localPrivateKey=Z,this.signatureHashAlgorithm=X}valueKeySignature(W,G,X,Y){let Z=Buffer.from(vY.encode({type:B2.named_curve_3,curve:Y,len:X.length},{type:vY.types.uint8,curve:vY.types.uint16be,len:vY.types.uint8}).slice());return Buffer.concat([W,G,Z,X])}},sN=class{srtpProfile;static findMatchingSRTPProfile(W,G){for(let X of G)if(W.includes(X))return X}},eO=(W)=>"0x"+W.toString("hex").replace(/(.)(.)/g,"$1$2 ").split(" ").filter((G)=>G!=null&&G.length>0).join(",0x"),v2=(W)=>Object.entries({...W}).reduce((G,[X,Y])=>{if(typeof Y==="number"||typeof Y==="string")G[X]=Y;if(Buffer.isBuffer(Y))G[X]=eO(Y);return G},{}),P5=class W{constructor(G,X,Y,Z,V,Q){this.msg_type=G,this.length=X,this.message_seq=Y,this.fragment_offset=Z,this.fragment_length=V,this.fragment=Q}static spec={msg_type:W7.types.uint8,length:W7.types.uint24be,message_seq:W7.types.uint16be,fragment_offset:W7.types.uint24be,fragment_length:W7.types.uint24be,fragment:W7.types.buffer((G)=>G.current.fragment_length)};get summary(){return v2(this)}static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(W7.decode(G,W.spec)))}serialize(){let G=W7.encode(this,W.spec).slice();return Buffer.from(G)}chunk(G){let X=0,Y=this.fragment.length;if(Y===0)return[new W(this.msg_type,Y,this.message_seq,X,0,this.fragment)];let Z=[];if(!G)G=1240;while(X<Y){let V=Math.min(G,Y-X),Q=Buffer.from(this.fragment.slice(X,X+V));if(Q.length<=0)throw Error("Zero or less bytes processed while fragmenting handshake message.");Z.push(new W(this.msg_type,Y,this.message_seq,X,Q.length,Q)),X+=Q.length}return Z}static assemble(G){if(!G?.length)throw Error("cannot reassemble handshake from empty array");G=G.sort((Y,Z)=>Y.fragment_offset-Z.fragment_offset);let X=Buffer.alloc(G[0].length);for(let Y of G)Y.fragment.copy(X,Y.fragment_offset);return new W(G[0].msg_type,G[0].length,G[0].message_seq,0,X.length,X)}static findAllFragments(G,X){let Y=G.find((Z)=>Z.msg_type===X);if(!Y)return[];if(!G?.length)return[];return G.filter((Z)=>{return Z.msg_type===Y.msg_type&&Z.message_seq===Y.message_seq&&Z.length===Y.length})}},{uint16be:tN,uint24be:dd,buffer:u2,array:od,uint8:oQ,string:nd}=g2.types,id={type:tN,data:u2(tN)},BO=od(id,tN,"bytes"),rd=u2(dd),ad=oQ,sd=nd(tN),td={hash:oQ,signature:oQ},WK={major:oQ,minor:oQ},TG=class W{constructor(G=Math.floor(Date.now()/1000),X=ed(28)){this.gmt_unix_time=G,this.random_bytes=X}static spec={gmt_unix_time:MG.types.uint32be,random_bytes:MG.types.buffer(28)};static deSerialize(G){return new W(...Object.values(MG.decode(G,W.spec)))}static from(G){return new W(...Object.values(G))}serialize(){let G=MG.encode(this,W.spec).slice();return Buffer.from(G)}},h2=class W{constructor(G,X,Y,Z,V,Q,J){this.clientVersion=G,this.random=X,this.sessionId=Y,this.cookie=Z,this.cipherSuites=V,this.compressionMethods=Q,this.extensions=J}msgType=1;messageSeq=0;static spec={clientVersion:{major:Z9.types.uint8,minor:Z9.types.uint8},random:TG.spec,sessionId:Z9.types.buffer(Z9.types.uint8),cookie:Z9.types.buffer(Z9.types.uint8),cipherSuites:Z9.types.array(Z9.types.uint16be,Z9.types.uint16be,"bytes"),compressionMethods:Z9.types.array(Z9.types.uint8,Z9.types.uint8,"bytes"),extensions:BO};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(Z9.decode(G,W.spec)))}serialize(){let G=Z9.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},Go=class W{constructor(G,X,Y,Z,V){this.epoch=G,this.sequenceNumber=X,this.contentType=Y,this.protocolVersion=Z,this.contentLen=V}static spec={epoch:f4.types.uint16be,sequenceNumber:f4.types.uint48be,contentType:f4.types.uint8,protocolVersion:WK,contentLen:f4.types.uint16be};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(f4.decode(G,W.spec)))}serialize(){let G=f4.encode(this,W.spec).slice();return Buffer.from(G)}},b2=class W{constructor(G,X){this.recordLayerHeader=G,this.fragment=X}get summary(){return{header:this.recordLayerHeader,fragment:eO(this.fragment)}}static createEmpty(){return new W(void 0,void 0)}static deSerialize(G){if(G.length<13)throw Error("Invalid DTLS record: buffer is too short");let X=G.readUInt8(0),Y=G.readUInt8(1),Z=G.readUInt8(2),V=G.readUInt16BE(3),Q=G.slice(5,11).readUIntBE(0,6),J=G.readUInt16BE(11);if(G.length<13+J)throw Error("Invalid DTLS record: fragment length exceeds buffer");let U=G.slice(13,13+J);return new W({contentType:X,protocolVersion:{major:Y,minor:Z},epoch:V,sequenceNumber:Q,contentLen:J},U)}serialize(){let G=this.fragment.length,X=13+G,Y=Buffer.alloc(X);return Y.writeUInt8(this.recordLayerHeader.contentType,0),Y.writeUInt8(this.recordLayerHeader.protocolVersion.major,1),Y.writeUInt8(this.recordLayerHeader.protocolVersion.minor,2),Y.writeUInt16BE(this.recordLayerHeader.epoch,3),Y.writeUIntBE(this.recordLayerHeader.sequenceNumber,5,6),Y.writeUInt16BE(G,11),this.fragment.copy(Y,13),Y}computeMACHeader(){return new Go(this.recordLayerHeader.epoch,this.recordLayerHeader.sequenceNumber,this.recordLayerHeader.contentType,this.recordLayerHeader.protocolVersion,this.recordLayerHeader.contentLen).serialize()}},m2=(W)=>(G)=>{return W.lastFlight=G,G.flatMap((X)=>{return X.messageSeq=W.sequenceNumber++,X.toFragment().chunk()})},WJ=(W)=>(G,X)=>{return G.map((Y)=>{return new b2({contentType:Y.type,protocolVersion:W.version,epoch:W.epoch,sequenceNumber:X,contentLen:Y.fragment.length},Y.fragment)})},EO=((W)=>{return W[W.CloseNotify=0]="CloseNotify",W[W.UnexpectedMessage=10]="UnexpectedMessage",W[W.BadRecordMac=20]="BadRecordMac",W[W.DecryptionFailed=21]="DecryptionFailed",W[W.RecordOverflow=22]="RecordOverflow",W[W.DecompressionFailure=30]="DecompressionFailure",W[W.HandshakeFailure=40]="HandshakeFailure",W[W.NoCertificate=41]="NoCertificate",W[W.BadCertificate=42]="BadCertificate",W[W.UnsupportedCertificate=43]="UnsupportedCertificate",W[W.CertificateRevoked=44]="CertificateRevoked",W[W.CertificateExpired=45]="CertificateExpired",W[W.CertificateUnknown=46]="CertificateUnknown",W[W.IllegalParameter=47]="IllegalParameter",W[W.UnknownCa=48]="UnknownCa",W[W.AccessDenied=49]="AccessDenied",W[W.DecodeError=50]="DecodeError",W[W.DecryptError=51]="DecryptError",W[W.ExportRestriction=60]="ExportRestriction",W[W.ProtocolVersion=70]="ProtocolVersion",W[W.InsufficientSecurity=71]="InsufficientSecurity",W[W.InternalError=80]="InternalError",W[W.UserCanceled=90]="UserCanceled",W[W.NoRenegotiation=100]="NoRenegotiation",W[W.UnsupportedExtension=110]="UnsupportedExtension",W})(EO||{}),Xo=T1("werift-dtls : packages/dtls/src/flight/flight.ts : warn"),ZO=T1("werift-dtls : packages/dtls/src/flight/flight.ts : err"),GJ=class W{constructor(G,X,Y,Z){this.transport=G,this.dtls=X,this.flight=Y,this.nextFlight=Z}state="PREPARING";static RetransmitCount=10;createPacket(G){let X=m2(this.dtls)(G);return this.dtls.bufferHandshakeCache(X,!0,this.flight),WJ(this.dtls)(X.map((Z)=>({type:22,fragment:Z.serialize()})),++this.dtls.recordSequenceNumber)}async transmit(G){let X=0;for(;X<=W.RetransmitCount;X++){if(this.setState("SENDING"),this.send(G).catch((Y)=>{ZO("fail to send",ZO)}),this.setState("WAITING"),this.nextFlight===void 0){this.setState("FINISHED");break}if(await Wo(1000*((X+1)/2)),this.dtls.flight>=this.nextFlight){this.setState("FINISHED");break}else Xo(this.dtls.sessionId,"retransmit",X,this.dtls.flight)}if(X>W.RetransmitCount)throw ZO(this.dtls.sessionId,"retransmit failed",X),Error(`over retransmitCount : ${this.flight} ${this.nextFlight}`)}send=(G)=>Promise.all(G.map((X)=>this.transport.send(X)));setState(G){this.state=G}},Yo=class extends GJ{constructor(W,G,X){super(W,G,1,3);this.cipher=X}async exec(W){if(this.dtls.flight===1)throw Error();this.dtls.flight=1;let G=new h2({major:254,minor:253},new TG,Buffer.from([]),Buffer.from([]),yd,[0],W);this.dtls.version=G.clientVersion,this.cipher.localRandom=TG.from(G.random);let X=this.createPacket([G]),Y=Buffer.concat(X.map((Z)=>Z.serialize()));await this.transmit([Y])}},Zo=T1("werift-dtls : packages/dtls/src/flight/client/flight3.ts : log"),Vo=class extends GJ{constructor(W,G){super(W,G,3,5)}async exec(W){if(this.dtls.flight===3)throw Error();this.dtls.flight=3,this.dtls.handshakeCache=[];let[G]=this.dtls.lastFlight;Zo("dtls version",G.clientVersion),G.cookie=W.cookie,this.dtls.cookie=W.cookie;let X=this.createPacket([G]),Y=Buffer.concat(X.map((Z)=>Z.serialize()));await this.transmit([Y])}},NH={NULL:0,ECDHE:1},XJ={NULL:0,RSA:1,ECDSA:2,PSK:3},YJ={NULL:0,RSA:1,ECDHE_RSA:2,ECDHE_ECDSA:3,PSK:4,ECDHE_PSK:5},ZJ=class{id=0;name;signType;keyType;toString(){return this.name}};function Qo(){let W=new ZJ;return W.id=YJ.RSA,W.name="RSA",W.keyType=XJ.RSA,W}function Jo(){let W=new ZJ;return W.id=YJ.ECDHE_RSA,W.name="ECDHE_RSA",W.signType=NH.ECDHE,W.keyType=XJ.RSA,W}function Uo(){let W=new ZJ;return W.id=YJ.ECDHE_ECDSA,W.name="ECDHE_ECDSA",W.signType=NH.ECDHE,W.keyType=XJ.ECDSA,W}function qo(){let W=new ZJ;return W.id=YJ.PSK,W.name="PSK",W.signType=NH.NULL,W.keyType=XJ.PSK,W}function No(){let W=new ZJ;return W.id=YJ.ECDHE_PSK,W.name="ECDHE_PSK",W.signType=NH.ECDHE,W.keyType=XJ.PSK,W}var zo=T1("werift-dtls : packages/dtls/src/cipher/suites/aead.ts : err"),Io=class extends ld{keyLength=0;nonceLength=0;ivLength=0;authTagLength=0;nonceImplicitLength=0;nonceExplicitLength=0;clientWriteKey;serverWriteKey;clientNonce;serverNonce;constructor(){super()}get summary(){return v2(this)}init(W,G,X){let Y=pd(W,X,G,this.keyLength,this.ivLength,this.nonceLength,this.hashAlgorithm);this.clientWriteKey=Y.clientWriteKey,this.serverWriteKey=Y.serverWriteKey,this.clientNonce=Y.clientNonce,this.serverNonce=Y.serverNonce}encrypt(W,G,X){let Y=W===c4.CLIENT,Z=Y?this.clientNonce:this.serverNonce,V=Y?this.clientWriteKey:this.serverWriteKey;if(!Z||!V)throw Error();Z.writeUInt16BE(X.epoch,this.nonceImplicitLength),Z.writeUIntBE(X.sequenceNumber,this.nonceImplicitLength+2,6);let Q=Z.slice(this.nonceImplicitLength),J=this.encodeAdditionalBuffer(X,G.length),U=Ho(this.blockAlgorithm,V,Z,{authTagLength:this.authTagLength});U.setAAD(J,{plaintextLength:G.length});let q=U.update(G),N=U.final(),A=U.getAuthTag();return Buffer.concat([Q,q,N,A])}encodeAdditionalBuffer(W,G){let X=Buffer.alloc(13);return X.writeUInt16BE(W.epoch,0),X.writeUintBE(W.sequenceNumber,2,6),X.writeUInt8(W.type,8),X.writeUInt16BE(W.version,9),X.writeUInt16BE(G,11),X}decrypt(W,G,X){let Y=W===c4.CLIENT,Z=Y?this.serverNonce:this.clientNonce,V=Y?this.serverWriteKey:this.clientWriteKey;if(!Z||!V)throw Error();G.subarray(0,this.nonceExplicitLength).copy(Z,this.nonceImplicitLength);let J=G.subarray(this.nonceExplicitLength,G.length-this.authTagLength),U=G.subarray(G.length-this.authTagLength),q=this.encodeAdditionalBuffer(X,J.length),N=Ao(this.blockAlgorithm,V,Z,{authTagLength:this.authTagLength});N.setAuthTag(U),N.setAAD(q,{plaintextLength:J.length});let A=N.update(J);try{let H=N.final();return H.length>0?Buffer.concat([A,H]):A}catch(H){throw zo("decrypt failed",H,W,eO(G),X,this.summary),H}}},v8={TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:49195,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:49196,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:49199,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:49200,TLS_RSA_WITH_AES_128_GCM_SHA256:156,TLS_RSA_WITH_AES_256_GCM_SHA384:157,TLS_PSK_WITH_AES_128_GCM_SHA256:168,TLS_PSK_WITH_AES_256_GCM_SHA384:169,TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256:53249,TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384:53250,TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256:52396,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256:52393,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256:52392,TLS_PSK_WITH_CHACHA20_POLY1305_SHA256:52395},xQ={K_LEN:16,N_MIN:12,N_MAX:12,P_MAX:68719476705,A_MAX:9007199254740991,C_MAX:68719476721},kQ={K_LEN:32,N_MIN:12,N_MAX:12,P_MAX:68719476705,A_MAX:9007199254740991,C_MAX:68719476721},m$=Qo(),f$=Jo(),c$=Uo(),p$=qo(),l$=No();function f2(W){switch(W){case v8.TLS_RSA_WITH_AES_128_GCM_SHA256:return u7(v8.TLS_RSA_WITH_AES_128_GCM_SHA256,"TLS_RSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",m$,xQ);case v8.TLS_RSA_WITH_AES_256_GCM_SHA384:return u7(v8.TLS_RSA_WITH_AES_256_GCM_SHA384,"TLS_RSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",m$,kQ,"sha384");case v8.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:return u7(v8.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",f$,xQ);case v8.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:return u7(v8.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",f$,kQ,"sha384");case v8.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:return u7(v8.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",c$,xQ);case v8.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:return u7(v8.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",c$,kQ,"sha384");case v8.TLS_PSK_WITH_AES_128_GCM_SHA256:return u7(v8.TLS_PSK_WITH_AES_128_GCM_SHA256,"TLS_PSK_WITH_AES_128_GCM_SHA256","aes-128-gcm",p$,xQ,"sha256");case v8.TLS_PSK_WITH_AES_256_GCM_SHA384:return u7(v8.TLS_PSK_WITH_AES_256_GCM_SHA384,"TLS_PSK_WITH_AES_256_GCM_SHA384","aes-256-gcm",p$,kQ,"sha384");case v8.TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256:return u7(v8.TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256","aes-128-gcm",l$,xQ,"sha256");case v8.TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384:return u7(v8.TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384","aes-256-gcm",l$,kQ,"sha384");default:break}return null}function u7(W,G,X,Y,Z,V="sha256"){let Q=new Io;return Q.id=W,Q.name=G,Q.blockAlgorithm=X,Q.kx=Y,Q.hashAlgorithm=V,Q.keyLength=Z.K_LEN,Q.nonceLength=Z.N_MAX,Q.nonceImplicitLength=4,Q.nonceExplicitLength=8,Q.ivLength=Q.nonceImplicitLength,Q.authTagLength=16,Q}function p2(W){switch(W){case a6.secp256r1_23:{let{privateKey:G,publicKey:X}=hd();return{curve:W,privateKey:G,publicKey:X}}case a6.x25519_29:{let G=c2.default.box.keyPair();return{curve:W,privateKey:Buffer.from(G.secretKey.buffer),publicKey:Buffer.from(G.publicKey.buffer)}}default:throw Error()}}var HH=class{static type=23},AH=class W{static type=65281;static spec={type:PG.types.uint16be,data:PG.types.uint8};type=W.type;data=0;constructor(G={}){Object.assign(this,G)}static createEmpty(){return new W}static deSerialize(G){return new W(PG.decode(G,W.spec))}serialize(){let G=PG.encode(this,W.spec).slice();return Buffer.from(G)}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},gY=class W{static type=14;static spec={type:i6.types.uint16be,data:i6.types.buffer(i6.types.uint16be)};type=W.type;data=Buffer.from([]);profiles=[];mki=Buffer.from([0]);constructor(G={}){Object.assign(this,G)}static create(G,X){return new W({profiles:G,mki:X})}static deSerialize(G){let X=new W(i6.decode(G,W.spec)),Y=X.data.readUInt16BE(),Z=Array(Y/2);for(let V=0;V<Z.length;V++)Z[V]=X.data.readUInt16BE(V*2+2);return X.profiles=Z,X.mki=X.data.slice(Y+2),X}serialize(){let G=Buffer.alloc(2);G.writeUInt16BE(this.profiles.length*2);let X=Buffer.concat([G,...this.profiles.map((Z)=>{let V=Buffer.alloc(2);return V.writeUInt16BE(Z),V}),this.mki]);this.data=X;let Y=i6.encode(this,W.spec).slice();return Buffer.from(Y)}static fromData(G){let X=Buffer.alloc(4);return X.writeUInt16BE(W.type),X.writeUInt16BE(G.length,2),W.deSerialize(Buffer.concat([X,G]))}get extension(){return{type:this.type,data:this.serialize().slice(4)}}},eN=class W{constructor(G){this.certificateList=G}msgType=11;messageSeq;static spec={certificateList:RG.types.array(rd,RG.types.uint24be,"bytes")};static createEmpty(){return new W(void 0)}static deSerialize(G){return new W(...Object.values(RG.decode(G,W.spec)))}serialize(){let G=RG.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},l2=class W{constructor(G=1){this.type=G}static spec={type:fY.types.uint8};static createEmpty(){return new W}static deSerialize(G){return new W(...Object.values(fY.decode(G,W.spec)))}serialize(){let G=fY.encode(this,W.spec).slice();return Buffer.from(G)}},d2=class W{constructor(G,X){this.algorithm=G,this.signature=X}msgType=15;messageSeq;static spec={algorithm:r6.types.uint16be,signature:r6.types.buffer(r6.types.uint16be)};static createEmpty(){return new W(void 0,void 0)}static deSerialize(G){let X=r6.decode(G,W.spec);return new W(...Object.values(X))}serialize(){let G=r6.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},o2=class W{constructor(G){this.publicKey=G}msgType=16;messageSeq;static spec={publicKey:LG.types.buffer(LG.types.uint8)};static createEmpty(){return new W(void 0)}static deSerialize(G){let X=LG.decode(G,W.spec);return new W(...Object.values(X))}serialize(){let G=LG.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},$O=class W{constructor(G){this.verifyData=G}msgType=20;messageSeq;static createEmpty(){return new W(void 0)}static deSerialize(G){return new W(G)}serialize(){return this.verifyData}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},n2=class W{constructor(G,X,Y){this.certificateTypes=G,this.signatures=X,this.authorities=Y}msgType=13;messageSeq;static spec={certificateTypes:G7.types.array(ad,G7.types.uint8,"bytes"),signatures:G7.types.array(td,G7.types.uint16be,"bytes"),authorities:G7.types.array(sd,G7.types.uint16be,"bytes")};static createEmpty(){return new W(void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(G7.decode(G,W.spec)))}serialize(){let G=G7.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},i2=class W{constructor(G,X,Y,Z,V,Q){this.serverVersion=G,this.random=X,this.sessionId=Y,this.cipherSuite=Z,this.compressionMethod=V,this.extensions=Q}msgType=2;messageSeq;static spec={serverVersion:WK,random:TG.spec,sessionId:X7.types.buffer(X7.types.uint8),cipherSuite:X7.types.uint16be,compressionMethod:X7.types.uint8};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){let X=X7.decode(G,W.spec),Y=new W(...Object.values(X));if(Y.serialize().length<G.length)return new W(...Object.values(X7.decode(G,{...W.spec,extensions:BO})));return Y}serialize(){let G=this.extensions===void 0?X7.encode(this,W.spec).slice():X7.encode(this,{...W.spec,extensions:BO}).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},r2=class W{msgType=14;messageSeq;static spec={};static createEmpty(){return new W}static deSerialize(G){return new W(...Object.values(zH.decode(G,W.spec)))}serialize(){let G=zH.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}};function wo(W,G){return Buffer.from(a2.encode(W,G).slice())}var s2=class W{constructor(G,X,Y,Z,V,Q,J,U){this.ellipticCurveType=G,this.namedCurve=X,this.publicKeyLength=Y,this.publicKey=Z,this.hashAlgorithm=V,this.signatureAlgorithm=Q,this.signatureLength=J,this.signature=U}msgType=12;messageSeq;static spec={ellipticCurveType:e5.types.uint8,namedCurve:e5.types.uint16be,publicKeyLength:e5.types.uint8,publicKey:e5.types.buffer((G)=>G.current.publicKeyLength),hashAlgorithm:e5.types.uint8,signatureAlgorithm:e5.types.uint8,signatureLength:e5.types.uint16be,signature:e5.types.buffer((G)=>G.current.signatureLength)};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){let X=e5.decode(G,W.spec);return new W(...Object.values(X))}serialize(){return wo(this,W.spec)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},IH=1,VJ=7;var jo=(W)=>{switch(W){case IH:case VJ:return 16}},Oo=(W)=>{switch(W){case IH:return 14;case VJ:return 12}},LH0=T1("werift-rtp : packages/rtp/src/codec/av1.ts");var Co={0:"Reserved",1:"OBU_SEQUENCE_HEADER",2:"OBU_TEMPORAL_DELIMITER",3:"OBU_FRAME_HEADER",4:"OBU_TILE_GROUP",5:"OBU_METADATA",6:"OBU_FRAME",7:"OBU_REDUNDANT_FRAME_HEADER",8:"OBU_TILE_LIST",15:"OBU_PADDING"},BH0=Object.entries(Co).reduce((W,[G,X])=>{return W[X]=Number(G),W},{});var EH0=Buffer.from([0,0,0,1]);function d$(W,G){let X=Buffer.alloc(G);return W.copy(X),X}function WH(W){return Number.parseInt(W.toString(),10)}function Do(W){let G=W[0];return G>127&&G<192}var FO=4,e6=class W{version=2;padding=!1;count=0;type=0;length=0;constructor(G={}){Object.assign(this,G)}static serialize(G,X,Y,Z){let Q=new W({type:G,count:X,version:2,length:Z}).serialize();return Buffer.concat([Q,Y])}serialize(){let G=new nN(8);if(G.set(2,0,this.version),this.padding)G.set(1,2,1);return G.set(5,3,this.count),E8([1,1,2],[G.value,this.type,this.length])}static deSerialize(G){let[X,Y,Z]=r9(G,[1,1,2]),V=g8(X,0,2),Q=g8(X,2,1)>0,J=g8(X,3,5);return new W({version:V,padding:Q,count:J,type:Y,length:Z})}},o$=class W{static count=4;count=W.count;senderSsrc;mediaSsrc;fir=[];constructor(G={}){Object.assign(this,G)}get length(){return Math.floor(this.serialize().length/4-1)}static deSerialize(G){let[X,Y]=r9(G,[4,4]),Z=[];for(let V=8;V<G.length;V+=8)Z.push({ssrc:G.readUInt32BE(V),sequenceNumber:G[V+4]});return new W({senderSsrc:X,mediaSsrc:Y,fir:Z})}serialize(){let G=E8([4,4],[this.senderSsrc,this.mediaSsrc]),X=Buffer.alloc(this.fir.length*8);return this.fir.forEach(({ssrc:Y,sequenceNumber:Z},V)=>{X.writeUInt32BE(Y,V*8),X[V*8+4]=Z}),Buffer.concat([G,X])}},GH=class W{static count=1;count=W.count;length=2;senderSsrc;mediaSsrc;constructor(G={}){Object.assign(this,G)}static deSerialize(G){let[X,Y]=r9(G,[4,4]);return new W({senderSsrc:X,mediaSsrc:Y})}serialize(){return E8([4,4],[this.senderSsrc,this.mediaSsrc])}},XH=class W{static count=15;length;count=W.count;senderSsrc;mediaSsrc;uniqueID="REMB";ssrcNum=0;brExp;brMantissa;bitrate;ssrcFeedbacks=[];constructor(G={}){Object.assign(this,G)}static deSerialize(G){let[X,Y,Z,V,Q]=r9(G,[4,4,4,1,1]),J=g8(Q,0,6),U=(g8(Q,6,2)<<16)+(G[14]<<8)+G[15],q=J>46?18446744073709551615n:BigInt(U)<<BigInt(J),N=[];for(let A=16;A<G.length;A+=4){let H=G.slice(A).readUIntBE(0,4);N.push(H)}return new W({senderSsrc:X,mediaSsrc:Y,uniqueID:E8([4],[Z]).toString(),ssrcNum:V,brExp:J,brMantissa:U,ssrcFeedbacks:N,bitrate:q})}serialize(){let G=Buffer.concat([E8([4,4],[this.senderSsrc,this.mediaSsrc]),Buffer.from(this.uniqueID),E8([1],[this.ssrcNum])]),X=new nN(24);X.set(6,0,this.brExp).set(18,6,this.brMantissa);let Y=Buffer.concat(this.ssrcFeedbacks.map((V)=>E8([4],[V]))),Z=Buffer.concat([G,E8([3],[X.value]),Y]);return this.length=Z.length/4,Z}},Mo=T1("werift-rtp: /rtcp/psfb/index"),nQ=class W{static type=206;type=W.type;feedback;constructor(G={}){Object.assign(this,G)}serialize(){let G=this.feedback.serialize();return e6.serialize(this.type,this.feedback.count,G,this.feedback.length)}static deSerialize(G,X){let Y;switch(X.count){case o$.count:Y=o$.deSerialize(G);break;case GH.count:Y=GH.deSerialize(G);break;case XH.count:Y=XH.deSerialize(G);break;default:Mo("unknown psfb packet",X.count);break}return new W({feedback:Y})}},iQ=class W{ssrc=0;reports=[];static type=201;type=W.type;constructor(G={}){Object.assign(this,G)}serialize(){let G=E8([4],[this.ssrc]);return G=Buffer.concat([G,...this.reports.map((X)=>X.serialize())]),e6.serialize(W.type,this.reports.length,G,Math.floor(G.length/4))}static deSerialize(G,X){let[Y]=r9(G,[4]),Z=4,V=[];for(let Q=0;Q<X;Q++)V.push(GK.deSerialize(G.slice(Z,Z+24))),Z+=24;return new W({ssrc:Y,reports:V})}},GK=class W{ssrc;fractionLost;packetsLost;highestSequence;jitter;lsr;dlsr;constructor(G={}){Object.assign(this,G)}toJSON(){return{ssrc:this.ssrc,fractionLost:this.fractionLost,packetsLost:this.packetsLost,highestSequence:this.highestSequence,jitter:this.jitter,lsr:this.lsr,dlsr:this.dlsr}}serialize(){return E8([4,1,3,4,4,4,4],[this.ssrc,this.fractionLost,this.packetsLost,this.highestSequence,this.jitter,this.lsr,this.dlsr])}static deSerialize(G){let[X,Y,Z,V,Q,J,U]=r9(G,[4,1,3,4,4,4,4]);return new W({ssrc:X,fractionLost:Y,packetsLost:Z,highestSequence:V,jitter:Q,lsr:J,dlsr:U})}},t2=205,YH=class W{static count=1;count=W.count;header;senderSsrc;mediaSourceSsrc;lost=[];toJSON(){return{lost:this.lost,senderSsrc:this.senderSsrc,mediaSourceSsrc:this.mediaSourceSsrc}}constructor(G={}){if(Object.assign(this,G),!this.header)this.header=new e6({type:t2,count:this.count,version:2})}static deSerialize(G,X){let[Y,Z]=r9(G,[4,4]),V=[];for(let Q=8;Q<G.length;Q+=4){let[J,U]=r9(G.subarray(Q),[2,2]);V.push(J);for(let q=0;q<16;q++)if(U>>q&1)V.push(J+q+1)}return new W({header:X,senderSsrc:Y,mediaSourceSsrc:Z,lost:V})}serialize(){let G=E8([4,4],[this.senderSsrc,this.mediaSourceSsrc]),X=[];if(this.lost.length>0){let Z=this.lost[0],V=0;this.lost.slice(1).forEach((Q)=>{let J=Q-Z-1;if(J>=0&&J<16)V|=1<<J;else X.push(E8([2,2],[Z,V])),Z=Q,V=0}),X.push(E8([2,2],[Z,V]))}let Y=Buffer.concat([G,Buffer.concat(X)]);return this.header.length=Y.length/4,Buffer.concat([this.header.serialize(),Y])}},To=T1("werift/rtp/rtcp/rtpfb/twcc"),ZH=class W{static count=15;count=W.count;length=2;senderSsrc;mediaSourceSsrc;baseSequenceNumber;packetStatusCount;referenceTime;fbPktCount;packetChunks=[];recvDeltas=[];header;constructor(G={}){if(Object.assign(this,G),!this.header)this.header=new e6({type:205,count:this.count,version:2})}static deSerialize(G,X){let[Y,Z,V,Q,J,U]=r9(G,[4,4,2,2,3,1]),q=[],N=[],A=16;for(let I=0;I<Q;){let w=g8(G.slice(A,A+1)[0],0,1),C;switch(w){case 0:{let D=lQ.deSerialize(G.slice(A,A+2));C=D;let x=Math.min(Q-I,D.runLength);if(D.packetStatus===1||D.packetStatus===2)for(let h=0;h<x;h++)N.push(new yN({type:D.packetStatus}));I+=x}break;case 1:{let D=Po.deSerialize(G.slice(A,A+2));if(C=D,D.symbolSize===0)D.symbolList.forEach((x)=>{if(x===1)N.push(new yN({type:1}))});if(D.symbolSize===1)D.symbolList.forEach((x)=>{if(x===1||x===2)N.push(new yN({type:x}))});I+=D.symbolList.length}break}if(!C)throw Error();A+=2,q.push(C)}let H=A;return N.forEach((I)=>{if(I.type===1)I.deSerialize(G.slice(H,H+1)),H++;if(I.type===2)I.deSerialize(G.slice(H,H+2)),H+=2}),new W({senderSsrc:Y,mediaSourceSsrc:Z,baseSequenceNumber:V,packetStatusCount:Q,referenceTime:J,fbPktCount:U,recvDeltas:N,packetChunks:q,header:X})}serialize(){let G=E8([4,4,2,2,3,1],[this.senderSsrc,this.mediaSourceSsrc,this.baseSequenceNumber,this.packetStatusCount,this.referenceTime,this.fbPktCount]),X=Buffer.concat(this.packetChunks.map((V)=>V.serialize())),Y=Buffer.concat(this.recvDeltas.map((V)=>{try{return V.serialize()}catch(Q){To(Q?.message);return}}).filter((V)=>V)),Z=Buffer.concat([G,X,Y]);if(this.header.padding&&Z.length%4!==0){let V=4-Z.length%4,Q=Buffer.alloc(V);return Q[Q.length-1]=Q.length,this.header.length=Math.floor((Z.length+Q.length)/4),Buffer.concat([this.header.serialize(),Z,Q])}return this.header.length=Math.floor(Z.length/4),Buffer.concat([this.header.serialize(),Z])}get packetResults(){let G=this.baseSequenceNumber-1,X=this.packetChunks.filter((Q)=>Q instanceof lQ).flatMap((Q)=>Q.results(G)),Y=0,V=BigInt(this.referenceTime)*64n;for(let Q of X){let J=this.recvDeltas[Y];if(!Q.received||!J)continue;V+=BigInt(J.delta)/1000n,Q.delta=J.delta,Q.receivedAtMs=Number(V),Y++}return X}},lQ=class W{type;packetStatus;runLength;constructor(G={}){Object.assign(this,G),this.type=0}static deSerialize(G){let X=g8(G[0],1,2),Y=(g8(G[0],3,5)<<8)+G[1];return new W({type:0,packetStatus:X,runLength:Y})}serialize(){return new I2(16).set(0).set(this.packetStatus,2).set(this.runLength,13).buffer}results(G){let X=this.packetStatus===1||this.packetStatus===2,Y=[];for(let Z=0;Z<=this.runLength;++Z)Y.push(new Ro({sequenceNumber:++G,received:X}));return Y}},Po=class W{type;symbolSize;symbolList=[];constructor(G={}){Object.assign(this,G)}static deSerialize(G){let Y=g8(G[0],1,1),Z=[];function V(Q,J){for(let U=0;U<Q;U++)J(U)}switch(Y){case 0:V(6,(Q)=>Z.push(g8(G[0],2+Q,1))),V(8,(Q)=>Z.push(g8(G[1],Q,1)));break;case 1:V(3,(Q)=>Z.push(g8(G[0],2+Q*2,2))),V(4,(Q)=>Z.push(g8(G[1],Q*2,2)));break;default:Y=(g8(G[0],2,6)<<8)+G[1]}return new W({type:1,symbolSize:Y,symbolList:Z})}serialize(){let G=Buffer.alloc(2),X=new I2(16).set(1).set(this.symbolSize),Y=this.symbolSize===0?1:2;return this.symbolList.forEach((Z)=>{X.set(Z,Y)}),G.writeUInt16BE(X.value),G}},yN=class W{type;delta;constructor(G={}){Object.assign(this,G)}static deSerialize(G){let X,Y;if(G.length===1)X=1,Y=250*G[0];else if(G.length===2)X=2,Y=250*G.readInt16BE();if(X===void 0||Y===void 0)throw Error();return new W({type:X,delta:Y})}deSerialize(G){let X=W.deSerialize(G);this.delta=X.delta}parsed=!1;parseDelta(){if(this.delta=Math.floor(this.delta/250),this.delta<0||this.delta>255){if(this.delta>32767)this.delta=32767;if(this.delta<-32768)this.delta=-32768;if(!this.type)this.type=2}else if(!this.type)this.type=1;this.parsed=!0}serialize(){if(!this.parsed)this.parseDelta();if(this.type===1){let G=Buffer.alloc(1);return G.writeUInt8(this.delta),G}else if(this.type===2){let G=Buffer.alloc(2);return G.writeInt16BE(this.delta),G}throw Error("errDeltaExceedLimit "+this.delta+" "+this.type)}};var Ro=class{sequenceNumber=0;delta=0;received=!1;receivedAtMs=0;constructor(W){Object.assign(this,W)}},Lo=T1("werift-rtp:packages/rtp/rtcp/rtpfb/index"),uY=class W{static type=t2;type=W.type;feedback;header;constructor(G={}){Object.assign(this,G)}serialize(){return this.feedback.serialize()}static deSerialize(G,X){let Y;switch(X.count){case YH.count:Y=YH.deSerialize(G,X);break;case ZH.count:Y=ZH.deSerialize(G,X);break;default:Lo("unknown rtpfb packet",X.count);break}return new W({feedback:Y,header:X})}},VH=class W{static type=202;type=W.type;chunks=[];constructor(G){Object.assign(this,G)}get length(){let G=0;return this.chunks.forEach((X)=>G+=X.length),G}serialize(){let G=Buffer.concat(this.chunks.map((X)=>X.serialize()));while(G.length%4)G=Buffer.concat([G,Buffer.from([0])]);return e6.serialize(this.type,this.chunks.length,G,G.length/4)}static deSerialize(G,X){let Y=[];for(let Z=0;Z<G.length;){let V=e2.deSerialize(G.slice(Z));Y.push(V),Z+=V.length}return new W({chunks:Y})}},e2=class W{source;items=[];constructor(G={}){Object.assign(this,G)}get length(){let G=4;return this.items.forEach((X)=>G+=X.length),G+=1,G+=n$(G),G}serialize(){let G=Buffer.concat([E8([4],[this.source]),Buffer.concat(this.items.map((Y)=>Y.serialize()))]);return Buffer.concat([G,Buffer.alloc(n$(G.length))])}static deSerialize(G){let X=G.readUInt32BE(),Y=[];for(let Z=4;Z<G.length;){if(G[Z]===0)break;let Q=WS.deSerialize(G.slice(Z));Y.push(Q),Z+=Q.length}return new W({source:X,items:Y})}},WS=class W{type;text;constructor(G){Object.assign(this,G)}get length(){return 2+Buffer.from(this.text).length}serialize(){let G=Buffer.from(this.text);return Buffer.concat([E8([1,1],[this.type,G.length]),G])}static deSerialize(G){let X=G[0],Y=G[1],Z=G.slice(2,2+Y).toString();return new W({type:X,text:Z})}};function n$(W){if(W%4==0)return 0;return 4-W%4}var hY=class W{ssrc=0;senderInfo;reports=[];static type=200;type=W.type;constructor(G){Object.assign(this,G)}toJSON(){return{ssrc:this.ssrc,senderInfo:this.senderInfo.toJSON(),reports:this.reports.map((G)=>G.toJSON())}}serialize(){let G=Buffer.alloc(4);return G.writeUInt32BE(this.ssrc),G=Buffer.concat([G,this.senderInfo.serialize()]),G=Buffer.concat([G,...this.reports.map((X)=>X.serialize())]),e6.serialize(W.type,this.reports.length,G,Math.floor(G.length/4))}static deSerialize(G,X){let Y=G.readUInt32BE(),Z=GS.deSerialize(G.subarray(4,24)),V=24,Q=[];for(let U=0;U<X;U++)Q.push(GK.deSerialize(G.subarray(V,V+24))),V+=24;return new W({ssrc:Y,senderInfo:Z,reports:Q})}},GS=class W{ntpTimestamp;rtpTimestamp;packetCount;octetCount;constructor(G={}){Object.assign(this,G)}toJSON(){return{ntpTimestamp:Bo(this.ntpTimestamp),rtpTimestamp:this.rtpTimestamp}}serialize(){return E8([8,4,4,4],[this.ntpTimestamp,this.rtpTimestamp,this.packetCount,this.octetCount])}static deSerialize(G){let[X,Y,Z,V]=r9(G,[8,4,4,4]);return new W({ntpTimestamp:X,rtpTimestamp:Y,packetCount:Z,octetCount:V})}},Bo=(W)=>{let[G,X]=r9(E8([8],[W]),[4,4]);return Number(`${G}.${X}`)},Eo=T1("werift-rtp:packages/rtp/src/rtcp/rtcp.ts"),$o=class{static deSerialize(W){let G=0,X=[];while(G<W.length){let Y=e6.deSerialize(W.subarray(G,G+FO));G+=FO;let Z=W.subarray(G);if(G+=Y.length*4,Y.padding)Z=Z.subarray(0,Z.length-Z.subarray(-1)[0]);try{switch(Y.type){case hY.type:X.push(hY.deSerialize(Z,Y.count));break;case iQ.type:X.push(iQ.deSerialize(Z,Y.count));break;case VH.type:X.push(VH.deSerialize(Z,Y));break;case uY.type:X.push(uY.deSerialize(Z,Y));break;case nQ.type:X.push(nQ.deSerialize(Z,Y));break;default:break}}catch(V){Eo("deSerialize RTCP",V)}}return X}};function Fo(W){return W.length>=2&&W[1]>=192&&W[1]<=208}var D9={sdesMid:"urn:ietf:params:rtp-hdrext:sdes:mid",sdesRTPStreamID:"urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id",repairedRtpStreamId:"urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id",transportWideCC:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",absSendTime:"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",dependencyDescriptor:"https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension",audioLevelIndication:"urn:ietf:params:rtp-hdrext:ssrc-audio-level",videoOrientation:"urn:3gpp:video-orientation"};function So(W,G){return W.map((X)=>{let Y=G[X.id];if(!Y)return{uri:"unknown",value:X.payload};switch(Y){case D9.sdesMid:case D9.sdesRTPStreamID:case D9.repairedRtpStreamId:return{uri:Y,value:go(X.payload)};case D9.transportWideCC:return{uri:Y,value:uo(X.payload)};case D9.absSendTime:return{uri:Y,value:ho(X.payload)};case D9.audioLevelIndication:return{uri:Y,value:bo(X.payload)};case D9.videoOrientation:return{uri:Y,value:mo(X.payload)};default:return{uri:Y,value:X.payload}}}).reduce((X,Y)=>{if(Y)X[Y.uri]=Y.value;return X},{})}function xo(W){return Buffer.from(W)}function ko(W){return Buffer.from(W)}function _o(W){return Buffer.from(W)}function yo(W){return E8([2],[W])}function vo(W){let G=Buffer.alloc(3),X=W>>14n&0x00ffffffn;return G.writeUIntBE(Number(X),0,3),G}function go(W){return W.toString()}function uo(W){return W.readUInt16BE()}function ho(W){return r9(W,[3])[0]}function bo(W){let G=new cQ(W);return{v:G.readBits(1)===1,level:G.readBits(7)}}function mo(W){let G=new cQ(W);return G.readBits(4),{c:G.readBits(1),f:G.readBits(1),r1:G.readBits(1),r0:G.readBits(1)}}var fo=T1("packages/rtp/src/rtp/red/packet.ts"),XS=class W{header;blocks=[];static deSerialize(G){let X=G instanceof ArrayBuffer?Buffer.from(G):G,Y=new W,Z=0;return[Y.header,Z]=i$.deSerialize(X),Y.header.fields.forEach(({blockLength:V,timestampOffset:Q,blockPT:J})=>{if(V&&Q){let U=X.subarray(Z,Z+V);Y.blocks.push({block:U,blockPT:J,timestampOffset:Q}),Z+=V}else{let U=X.subarray(Z);Y.blocks.push({block:U,blockPT:J})}}),Y}serialize(){this.header=new i$;for(let{timestampOffset:X,blockPT:Y,block:Z}of this.blocks)if(X)this.header.fields.push({fBit:1,blockPT:Y,blockLength:Z.length,timestampOffset:X});else this.header.fields.push({fBit:0,blockPT:Y});let G=this.header.serialize();for(let{block:X}of this.blocks)G=Buffer.concat([G,X]);return G}},i$=class W{fields=[];static deSerialize(G){let X=0,Y=new W;for(;;){let Z={};Y.fields.push(Z);let V=new cQ(G.subarray(X));if(Z.fBit=V.readBits(1),Z.blockPT=V.readBits(7),X++,Z.fBit===0)break;Z.timestampOffset=V.readBits(14),Z.blockLength=V.readBits(10),X+=3}return[Y,X]}serialize(){let G=Buffer.alloc(0);for(let X of this.fields)try{if(X.timestampOffset&&X.blockLength){let Y=new cQ(Buffer.alloc(4)).writeBits(1,X.fBit).writeBits(7,X.blockPT).writeBits(14,X.timestampOffset).writeBits(10,X.blockLength);G=Buffer.concat([G,Y.uint8Array])}else{let Y=new cQ(Buffer.alloc(1)).writeBits(1,0).writeBits(7,X.blockPT);G=Buffer.concat([G,Y.uint8Array])}}catch(Y){fo(Y?.message)}return G}},co=class{constructor(W=1){this.distance=W}cache=[];cacheSize=10;push(W){if(this.cache.push(W),this.cache.length>this.cacheSize)this.cache.shift()}build(){let W=new XS,G=this.cache.slice(-(this.distance+1)),X=G.pop();if(!X)return W;return G.forEach((Y)=>{let Z=yY(X.timestamp,-Y.timestamp);if(Z>po)return;W.blocks.push({block:Y.block,blockPT:Y.blockPT,timestampOffset:Z})}),W.blocks.push({block:X.block,blockPT:X.blockPT}),W}},po=16383,lo=class{size=150;sequenceNumbers=[];push(W,G){let X=[];return W.blocks.forEach(({blockPT:Z,timestampOffset:V,block:Q},J)=>{let U=M9(G.header.sequenceNumber,-(W.blocks.length-(J+1)));if(V)X.push(new t6(new s6({timestamp:yY(G.header.timestamp,-V),payloadType:Z,ssrc:G.header.ssrc,sequenceNumber:U,marker:!0}),Q));else X.push(new t6(new s6({timestamp:G.header.timestamp,payloadType:Z,ssrc:G.header.ssrc,sequenceNumber:U,marker:!0}),Q))}),X.filter((Z)=>{if(this.sequenceNumbers.includes(Z.header.sequenceNumber))return!1;else{if(this.sequenceNumbers.length>this.size)this.sequenceNumbers.shift();return this.sequenceNumbers.push(Z.header.sequenceNumber),!0}})}},OG={OneByte:48862,TwoByte:4096},r$=2,a$=4,s$=8,t$=12,e$=4,s6=class W{version=2;padding=!1;paddingSize=0;extension=!1;marker=!1;payloadOffset=0;payloadType=0;sequenceNumber=0;timestamp=0;ssrc=0;csrcLength=0;csrc=[];extensionProfile=OG.OneByte;extensionLength;extensions=[];constructor(G={}){Object.assign(this,G)}static deSerialize(G){let X=new W,Y=0,Z=G[Y++];X.version=g8(Z,0,2),X.padding=g8(Z,2)>0,X.extension=g8(Z,3)>0,X.csrcLength=g8(Z,4,4),X.csrc=[...Array(X.csrcLength)].map(()=>{let Q=G.readUInt32BE(Y);return Y+=4,Q}),Y+=t$-1;let V=G[1];X.marker=g8(V,0)>0,X.payloadType=g8(V,1,7),X.sequenceNumber=G.readUInt16BE(r$),X.timestamp=G.readUInt32BE(a$),X.ssrc=G.readUInt32BE(s$);for(let Q=0;Q<X.csrc.length;Q++){let J=t$+Q*e$;X.csrc[Q]=G.subarray(J).readUInt32BE()}if(X.extension){X.extensionProfile=G.subarray(Y).readUInt16BE(),Y+=2;let Q=G.subarray(Y).readUInt16BE()*4;switch(X.extensionLength=Q,Y+=2,X.extensionProfile){case OG.OneByte:{let J=Y+Q;while(Y<J){if(G[Y]===0){Y++;continue}let U=G[Y]>>4,q=(G[Y]&(G[Y]^240))+1;if(Y++,U===15)break;let N={id:U,payload:G.subarray(Y,Y+q)};X.extensions=[...X.extensions,N],Y+=q}}break;case OG.TwoByte:{let J=Y+Q;while(Y<J){if(G[Y]===0){Y++;continue}let U=G[Y];Y++;let q=G[Y];Y++;let N={id:U,payload:G.subarray(Y,Y+q)};X.extensions=[...X.extensions,N],Y+=q}}break;default:{let J={id:0,payload:G.subarray(Y,Y+Q)};X.extensions=[...X.extensions,J],Y+=X.extensions[0].payload.length}break}}if(X.payloadOffset=Y,X.padding)X.paddingSize=G[G.length-1];return X}get serializeSize(){let{csrc:G,extensionProfile:X,extensions:Y}=this,Z=12+G.length*e$;if(Y.length>0||this.extension===!0){let V=4;switch(X){case OG.OneByte:for(let Q of Y)V+=1+Q.payload.length;break;case OG.TwoByte:for(let Q of Y)V+=2+Q.payload.length;break;default:V+=Y[0].payload.length}Z+=Math.floor((V+3)/4)*4}return Z}serialize(G){let X=Buffer.alloc(G),Y=0,Z=new nN(8);if(Z.set(2,0,this.version),this.padding)Z.set(1,2,1);if(this.extensions.length>0)this.extension=!0;if(this.extension)Z.set(1,3,1);Z.set(4,4,this.csrc.length),X.writeUInt8(Z.value,Y++);let V=new nN(8);if(this.marker)V.set(1,0,1);V.set(7,1,this.payloadType),X.writeUInt8(V.value,Y++),X.writeUInt16BE(this.sequenceNumber,r$),Y+=2,X.writeUInt32BE(this.timestamp,a$),Y+=4,X.writeUInt32BE(this.ssrc,s$),Y+=4;for(let Q of this.csrc)X.writeUInt32BE(Q,Y),Y+=4;if(this.extension){let Q=Y;X.writeUInt16BE(this.extensionProfile,Y),Y+=4;let J=Y;switch(this.extensionProfile){case OG.OneByte:for(let N of this.extensions)X.writeUInt8(N.id<<4|N.payload.length-1,Y++),N.payload.copy(X,Y),Y+=N.payload.length;break;case OG.TwoByte:for(let N of this.extensions)X.writeUInt8(N.id,Y++),X.writeUInt8(N.payload.length,Y++),N.payload.copy(X,Y),Y+=N.payload.length;break;default:{let N=this.extensions[0].payload.length;if(N%4!=0)throw Error();this.extensions[0].payload.copy(X,Y),Y+=N}}let U=Y-J,q=Math.trunc((U+3)/4)*4;X.writeUInt16BE(Math.trunc(q/4),Q+2);for(let N=0;N<q-U;N++)X.writeUInt8(0,Y),Y++}return this.payloadOffset=Y,X}},t6=class W{constructor(G,X){this.header=G,this.payload=X}get serializeSize(){return this.header.serializeSize+this.payload.length}clone(){return new W(new s6({...this.header}),this.payload)}serialize(){let G=this.header.serialize(this.header.serializeSize+this.payload.length),{payloadOffset:X}=this.header;if(this.payload.copy(G,X),this.header.padding){let Y=Buffer.alloc(this.header.paddingSize);Y.writeUInt8(this.header.paddingSize,this.header.paddingSize-1),G=Buffer.concat([G,Y])}return G}static deSerialize(G){let X=s6.deSerialize(G);return new W(X,G.subarray(X.payloadOffset,G.length-X.paddingSize))}clear(){this.payload=null}};function oo(W,G,X){return new t6(new s6({payloadType:G,marker:W.header.marker,sequenceNumber:a1.Unpack("!H",W.payload.subarray(0,2))[0],timestamp:W.header.timestamp,ssrc:X}),W.payload.subarray(2))}function no(W,G,X,Y){return new t6(new s6({payloadType:G,marker:W.header.marker,sequenceNumber:X,timestamp:W.header.timestamp,ssrc:Y,csrc:W.header.csrc,extensions:W.header.extensions}),Buffer.concat([Buffer.from(a1.Pack("!H",[W.header.sequenceNumber])),W.payload]))}var YS=class{constructor(W,G,X,Y){this.srtpSessionKey=W,this.srtpSessionSalt=G,this.srtcpSessionKey=X,this.srtcpSessionSalt=Y}encryptRtp(W,G,X){return Buffer.from([])}decryptRtp(W,G,X){return[]}encryptRTCP(W,G){return Buffer.from([])}decryptRTCP(W){return[]}},bY=class extends Error{constructor(W){super(W);this.name="SrtpAuthenticationError"}},YF=12,ro=8;function XK(W,G,X="Failed to authenticate SRTP packet"){let Y=W.length-G;rQ(W.length>=YF+G,X);let Z=VS(()=>s6.deSerialize(W.subarray(0,Y)),X);return Z.paddingSize=0,rQ(Z.payloadOffset>=YF&&Z.payloadOffset<=Y,X),Z}function ZS(W,G,X,Y="Failed to authenticate SRTCP packet"){return rQ(W.length>=ro+G+X,Y),VS(()=>e6.deSerialize(W.subarray(0,FO)),Y)}function rQ(W,G){if(!W)throw new bY(G)}function VS(W,G){try{return W()}catch{throw new bY(G)}}function QS(W,G,X="Failed to authenticate SRTP packet"){if(!W.padding)return W.paddingSize=0,W;rQ(G.length>W.payloadOffset,X);let Y=G[G.length-1];return rQ(Y>0&&Y<=G.length-W.payloadOffset,X),W.paddingSize=Y,W}var ao=class extends YS{constructor(W,G,X,Y,Z,V){super(W,G,X,Y);this.srtpSessionAuthTag=Z,this.srtcpSessionAuthTag=V}authTagLength=10;encryptRtp(W,G,X){let Y=W.serialize(W.serializeSize),Z=this.generateCounter(W.sequenceNumber,X,W.ssrc,this.srtpSessionSalt),Q=WF("aes-128-ctr",this.srtpSessionKey,Z).update(G),J=this.generateSrtpAuthTag(X,Y,Q);return Buffer.concat([Y,Q,J])}decryptRtp(W,G,X=XK(W,this.authTagLength)){let Y=W.length-this.authTagLength,Z=W.subarray(0,Y),V=W.subarray(Y),Q=this.generateSrtpAuthTag(G,Z.subarray(0,X.payloadOffset),Z.subarray(X.payloadOffset));VF(V,Q,"Failed to authenticate SRTP packet");let J=this.generateCounter(X.sequenceNumber,G,X.ssrc,this.srtpSessionSalt),U=GF("aes-128-ctr",this.srtpSessionKey,J),q=Z.subarray(X.payloadOffset),N=U.update(q),A=Buffer.concat([Z.subarray(0,X.payloadOffset),N]);return[A,QS(X,A,"Failed to authenticate SRTP packet")]}encryptRTCP(W,G){let X=Buffer.from(W),Y=X.readUInt32BE(4),Z=this.generateCounter(G&65535,G>>16,Y,this.srtcpSessionSalt);WF("aes-128-ctr",this.srtcpSessionKey,Z).update(X.slice(8)).copy(X,8),X=Buffer.concat([X,Buffer.alloc(4)]),X.writeUInt32BE(G,X.length-4),X[X.length-4]|=128;let J=this.generateSrtcpAuthTag(X);return X=Buffer.concat([X,J]),X}decryptRTCP(W){let G=ZS(W,this.authTagLength,ZF),X=W.length-(this.authTagLength+ZF),Y=W.subarray(0,W.length-this.authTagLength),Z=W.subarray(W.length-this.authTagLength),V=this.generateSrtcpAuthTag(Y);VF(Z,V,"Failed to authenticate SRTCP packet");let Q=Buffer.from(W).slice(0,X);if(W[X]>>>7===0)return[Q,G];let U=W.readUInt32BE(X);U&=2147483647;let q=W.readUInt32BE(4),N=this.generateCounter(U&65535,U>>16,q,this.srtcpSessionSalt);return GF("aes-128-ctr",this.srtcpSessionKey,N).update(Q.subarray(8)).copy(Q,8),[Q,G]}generateSrtcpAuthTag(W){return XF("sha1",this.srtcpSessionAuthTag).update(W).digest().slice(0,10)}generateCounter(W,G,X,Y){let Z=Buffer.alloc(16);Z.writeUInt32BE(X,4),Z.writeUInt32BE(G,8),Z.writeUInt32BE(Number(BigInt(W)<<16n),12);for(let V=0;V<Y.length;V++)Z[V]^=Y[V];return Z}generateSrtpAuthTag(W,...G){let X=XF("sha1",this.srtpSessionAuthTag),Y=Buffer.alloc(4);Y.writeUInt32BE(W);for(let Z of G)X.update(Z);return X.update(Y).digest().subarray(0,10)}},ZF=4;function VF(W,G,X){if(W.length!==G.length||!io(W,G))throw new bY(X)}var so=class extends YS{aeadAuthTagLen=16;rtpIvWriter=_N([2,4,4,2],!0);rtcpIvWriter=_N([2,4,2,4],!0);aadWriter=_N([4],!0);constructor(W,G,X,Y){super(W,G,X,Y)}encryptRtp(W,G,X){let Y=W.serialize(W.serializeSize),Z=this.rtpInitializationVector(W,X),V=QF("aes-128-gcm",this.srtpSessionKey,Z);V.setAAD(Y);let Q=V.update(G);V.final();let J=V.getAuthTag();return Buffer.concat([Y,Q,J])}decryptRtp(W,G,X=XK(W,this.aeadAuthTagLen)){let Y=W.subarray(0,X.payloadOffset),Z=W.length-this.aeadAuthTagLen,V=W.subarray(Z),Q=Buffer.from([]);Q=d$(Q,W.length-this.aeadAuthTagLen),Y.copy(Q);let J=this.rtpInitializationVector(X,G),U=W.slice(X.payloadOffset,Z),q=JF("aes-128-gcm",this.srtpSessionKey,J);q.setAAD(Y),q.setAuthTag(V);let N=q.update(U);return qF(q,"SRTP"),N.copy(Q,X.payloadOffset),[Q,QS(X,Q,"Failed to authenticate SRTP packet")]}encryptRTCP(W,G){let X=W.readUInt32BE(4),Y=W.length+this.aeadAuthTagLen,Z=Buffer.from([]);Z=d$(Z,Y+QO),W.slice(0,8).copy(Z);let V=this.rtcpInitializationVector(X,G),Q=this.rtcpAdditionalAuthenticatedData(W,G),J=QF("aes-128-gcm",this.srtcpSessionKey,V);J.setAAD(Q);let U=J.update(W.slice(8));return J.final(),U.copy(Z,8),J.getAuthTag().copy(Z,8+U.length),Q.slice(8,12).copy(Z,Y),Z}decryptRTCP(W){let G=ZS(W,this.aeadAuthTagLen,QO),X=W.length-QO,Y=X-this.aeadAuthTagLen,Z=W.readUInt32BE(4),V=W.readUInt32BE(X),Q=V>>>31===1,J=V&~(UF<<24),U=this.rtcpInitializationVector(Z,J),q=Q?Buffer.concat([W.subarray(0,8),W.subarray(X)]):Buffer.concat([W.subarray(0,Y),W.subarray(X)]),N=Q?W.slice(8,Y):Buffer.alloc(0),A=Q?Buffer.alloc(Y):Buffer.from(W.subarray(0,Y));if(Q)W.slice(0,8).copy(A);let H=JF("aes-128-gcm",this.srtcpSessionKey,U);H.setAAD(q),H.setAuthTag(W.subarray(Y,X));let I=H.update(N);if(qF(H,"SRTCP"),Q)I.copy(A,8);return[A,G]}rtpInitializationVector(W,G){let X=this.rtpIvWriter([0,W.ssrc,G,W.sequenceNumber]);for(let Y=0;Y<X.length;Y++)X[Y]^=this.srtpSessionSalt[Y];return X}rtcpInitializationVector(W,G){let X=this.rtcpIvWriter([0,W,0,G]);for(let Y=0;Y<X.length;Y++)X[Y]^=this.srtcpSessionSalt[Y];return X}rtcpAdditionalAuthenticatedData(W,G){let X=Buffer.concat([W.subarray(0,8),this.aadWriter([G])]);return X[8]|=UF,X}},QO=4,UF=128;function qF(W,G){try{W.final()}catch{throw new bY(`Failed to authenticate ${G} packet`)}}var JS=class{constructor(W,G,X){this.masterKey=W,this.masterSalt=G,this.profile=X;{let Y=14-G.length;if(Y>0)this.masterSalt=Buffer.concat([G,Buffer.alloc(Y)])}switch(this.srtpSessionKey=this.generateSessionKey(0),this.srtpSessionSalt=this.generateSessionSalt(2),this.srtpSessionAuthTag=this.generateSessionAuthTag(1),this.srtpSessionAuth=VO("sha1",this.srtpSessionAuthTag),this.srtcpSessionKey=this.generateSessionKey(3),this.srtcpSessionSalt=this.generateSessionSalt(5),this.srtcpSessionAuthTag=this.generateSessionAuthTag(4),this.srtcpSessionAuth=VO("sha1",this.srtcpSessionAuthTag),X){case IH:this.cipher=new ao(this.srtpSessionKey,this.srtpSessionSalt,this.srtcpSessionKey,this.srtcpSessionSalt,this.srtpSessionAuthTag,this.srtcpSessionAuthTag);break;case VJ:this.cipher=new so(this.srtpSessionKey,this.srtpSessionSalt,this.srtcpSessionKey,this.srtcpSessionSalt);break}}srtpSSRCStates={};srtpSessionKey;srtpSessionSalt;srtpSessionAuthTag;srtpSessionAuth;srtcpSSRCStates={};srtcpSessionKey;srtcpSessionSalt;srtcpSessionAuthTag;srtcpSessionAuth;cipher;generateSessionKey(W){let G=Buffer.from(this.masterSalt),X=Buffer.from([W,0,0,0,0,0,0]);for(let Z=X.length-1,V=G.length-1;Z>=0;Z--,V--)G[V]=G[V]^X[Z];G=Buffer.concat([G,Buffer.from([0,0])]);let Y=new vN.default.AES(this.masterKey);return Buffer.from(Y.encrypt(G))}generateSessionSalt(W){let G=Buffer.from(this.masterSalt),X=Buffer.from([W,0,0,0,0,0,0]);for(let Z=X.length-1,V=G.length-1;Z>=0;Z--,V--)G[V]=G[V]^X[Z];G=Buffer.concat([G,Buffer.from([0,0])]);let Y=new vN.default.AES(this.masterKey);return G=Buffer.from(Y.encrypt(G)),G.subarray(0,14)}generateSessionAuthTag(W){let G=Buffer.from(this.masterSalt),X=Buffer.from([W,0,0,0,0,0,0]);for(let Q=X.length-1,J=G.length-1;Q>=0;Q--,J--)G[J]=G[J]^X[Q];let Y=Buffer.concat([G,Buffer.from([0,0])]),Z=Buffer.concat([G,Buffer.from([0,1])]),V=new vN.default.AES(this.masterKey);return Y=Buffer.from(V.encrypt(Y)),Z=Buffer.from(V.encrypt(Z)),Buffer.concat([Y,Z.subarray(0,4)])}getSrtpSsrcState(W){let G=this.srtpSSRCStates[W];if(G)return G;return G={ssrc:W,rolloverCounter:0,lastSequenceNumber:0},this.srtpSSRCStates[W]=G,G}getSrtcpSsrcState(W){let G=this.srtcpSSRCStates[W];if(G)return G;return G={srtcpIndex:0,ssrc:W},this.srtcpSSRCStates[W]=G,G}updateRolloverCount(W,G){if(!G.rolloverHasProcessed)G.rolloverHasProcessed=!0;else if(W===0){if(G.lastSequenceNumber>_Q)G.rolloverCounter++}else if(G.lastSequenceNumber<_Q&&W>NF-_Q){if(G.rolloverCounter>0)G.rolloverCounter--}else if(W<_Q&&G.lastSequenceNumber>NF-_Q)G.rolloverCounter++;G.lastSequenceNumber=W}generateSrtpAuthTag(W,G){this.srtpSessionAuth=VO("sha1",this.srtpSessionAuthTag);let X=Buffer.alloc(4);return X.writeUInt32BE(G),this.srtpSessionAuth.update(W).update(X).digest().slice(0,10)}index(W){let G=this.srtcpSSRCStates[W];if(!G)return 0;return G.srtcpIndex}setIndex(W,G){let X=this.getSrtcpSsrcState(W);X.srtcpIndex=G%2147483647}},_Q=100,NF=65535,to=class extends JS{constructor(W,G,X){super(W,G,X)}encryptRTCP(W){let G=W.readUInt32BE(4),X=this.getSrtcpSsrcState(G);if(X.srtcpIndex++,X.srtcpIndex>>eo)X.srtcpIndex=0;return this.cipher.encryptRTCP(W,X.srtcpIndex)}decryptRTCP(W){return this.cipher.decryptRTCP(W)}},eo=2147483647,US=class{constructor(W){this.ContextCls=W}localContext;remoteContext;onData;start(W,G,X,Y,Z){this.localContext=new this.ContextCls(W,G,Z),this.remoteContext=new this.ContextCls(X,Y,Z)}},Wn=class extends US{constructor(W){super(to);this.config=W,this.start(W.keys.localMasterKey,W.keys.localMasterSalt,W.keys.remoteMasterKey,W.keys.remoteMasterSalt,W.profile)}decrypt=(W)=>{let[G]=this.remoteContext.decryptRTCP(W);return G};encrypt(W){return this.localContext.encryptRTCP(W)}},Gn=class extends JS{constructor(W,G,X){super(W,G,X)}encryptRtp(W,G){let X=this.getSrtpSsrcState(G.ssrc);return this.updateRolloverCount(G.sequenceNumber,X),this.cipher.encryptRtp(G,W,X.rolloverCounter)}decryptRtp(W){let G=XK(W,this.rtpAuthTagLength),X=this.srtpSSRCStates[G.ssrc],Y=X?{...X}:{ssrc:G.ssrc,rolloverCounter:0,lastSequenceNumber:0};this.updateRolloverCount(G.sequenceNumber,Y);let Z=this.cipher.decryptRtp(W,Y.rolloverCounter,G);if(X)Object.assign(X,Y);else this.srtpSSRCStates[G.ssrc]=Y;return Z}get rtpAuthTagLength(){return this.profile===VJ?16:10}},Xn=class extends US{constructor(W){super(Gn);this.config=W,this.start(W.keys.localMasterKey,W.keys.localMasterSalt,W.keys.remoteMasterKey,W.keys.remoteMasterSalt,W.profile)}decrypt=(W)=>{let[G]=this.remoteContext.decryptRtp(W);return G};encrypt(W,G){return this.localContext.encryptRtp(W,G)}},kH0=class{constructor(W){this.props=W}sequenceNumber=z2();timestamp=DO();create(W){this.sequenceNumber=M9(this.sequenceNumber,1);let G=this.props.between*this.props.clockRate/1000;this.timestamp=yY(this.timestamp,G);let X=new s6({sequenceNumber:this.sequenceNumber,timestamp:Number(this.timestamp),payloadType:96,extension:!0,marker:!1,padding:!1});return new t6(X,W)}},v9=T1("werift-dtls : packages/dtls/src/flight/client/flight5.ts : log"),Yn=class extends GJ{constructor(W,G,X,Y){super(W,G,5,7);this.cipher=X,this.srtp=Y}handleHandshake(W){this.dtls.bufferHandshakeCache([W],!1,4);let G=(()=>{switch(W.msg_type){case 2:return i2.deSerialize(W.fragment);case 11:return eN.deSerialize(W.fragment);case 12:return s2.deSerialize(W.fragment);case 13:return n2.deSerialize(W.fragment);case 14:return r2.deSerialize(W.fragment)}})();if(G)cY[G.msgType]({dtls:this.dtls,cipher:this.cipher,srtp:this.srtp})(G)}async exec(){if(this.dtls.flight===5){v9(this.dtls.sessionId,"flight5 twice"),this.send(this.dtls.lastMessage);return}this.dtls.flight=5;let W=this.dtls.requestedCertificateTypes.length>0;v9(this.dtls.sessionId,"send flight5",W);let G=[W&&this.sendCertificate(),this.sendClientKeyExchange(),W&&this.sendCertificateVerify(),this.sendChangeCipherSpec(),this.sendFinished()].filter((X)=>X);this.dtls.lastMessage=G,await this.transmit(G)}sendCertificate(){let W=new eN([Buffer.from(this.cipher.localCert)]),G=this.createPacket([W]);return Buffer.concat(G.map((Y)=>Y.serialize()))}sendClientKeyExchange(){if(!this.cipher.localKeyPair)throw Error();let W=new o2(this.cipher.localKeyPair.publicKey),G=this.createPacket([W]),X=Buffer.concat(G.map((J)=>J.serialize())),Y=this.cipher.localKeyPair,Z=this.cipher.remoteKeyPair;if(!Z.publicKey)throw Error("not exist");let V=S2(Z.publicKey,Y.privateKey,Y.curve);v9(this.dtls.sessionId,"extendedMasterSecret",this.dtls.options.extendedMasterSecret,this.dtls.remoteExtendedMasterSecret);let Q=Buffer.concat(this.dtls.sortedHandshakeCache.map((J)=>J.serialize()));return this.cipher.masterSecret=this.dtls.options.extendedMasterSecret&&this.dtls.remoteExtendedMasterSecret?k2(V,Q):x2(V,this.cipher.localRandom.serialize(),this.cipher.remoteRandom.serialize()),this.cipher.cipher=f2(this.cipher.cipherSuite),this.cipher.cipher.init(this.cipher.masterSecret,this.cipher.remoteRandom.serialize(),this.cipher.localRandom.serialize()),v9(this.dtls.sessionId,"cipher",this.cipher.cipher.summary),X}sendCertificateVerify(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((Q)=>Q.serialize())),G=this.cipher.signatureData(W,"sha256"),X=(()=>{switch(this.cipher.signatureHashAlgorithm?.signature){case p4.ecdsa_3:return h$.ecdsa_secp256r1_sha256;case p4.rsa_1:return h$.rsa_pkcs1_sha256}})();if(!X)throw Error();v9(this.dtls.sessionId,"signatureScheme",this.cipher.signatureHashAlgorithm?.signature,X);let Y=new d2(X,G),Z=this.createPacket([Y]);return Buffer.concat(Z.map((Q)=>Q.serialize()))}sendChangeCipherSpec(){let W=l2.createEmpty().serialize(),G=WJ(this.dtls)([{type:20,fragment:W}],++this.dtls.recordSequenceNumber);return Buffer.concat(G.map((Y)=>Y.serialize()))}sendFinished(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((V)=>V.serialize())),G=this.cipher.verifyData(W),X=new $O(G);this.dtls.epoch=1;let[Y]=this.createPacket([X]);this.dtls.recordSequenceNumber=0;let Z=this.cipher.encryptPacket(Y).serialize();return v9(this.dtls.sessionId,"finished",this.cipher.cipher.summary),Z}},cY={};cY[2]=({cipher:W,srtp:G,dtls:X})=>(Y)=>{if(v9(X.sessionId,"serverHello",Y.cipherSuite),W.remoteRandom=TG.from(Y.random),W.cipherSuite=Y.cipherSuite,v9(X.sessionId,"selected cipherSuite",W.cipherSuite),Y.extensions)Y.extensions.forEach((Z)=>{switch(Z.type){case gY.type:{let V=gY.fromData(Z.data),Q=sN.findMatchingSRTPProfile(V.profiles,X.options.srtpProfiles||[]);if(v9(X.sessionId,"selected srtp profile",Q),Q==null)return;G.srtpProfile=Q}break;case HH.type:X.remoteExtendedMasterSecret=!0;break;case AH.type:v9(X.sessionId,"RenegotiationIndication");break}})};cY[11]=({cipher:W,dtls:G})=>(X)=>{v9(G.sessionId,"handshake certificate",X),W.remoteCertificate=X.certificateList[0]};cY[12]=({cipher:W,dtls:G})=>(X)=>{if(!W.localRandom||!W.remoteRandom)throw Error();v9(G.sessionId,"ServerKeyExchange",X),v9(G.sessionId,"selected curve",X.namedCurve),W.remoteKeyPair={curve:X.namedCurve,publicKey:X.publicKey},W.localKeyPair=p2(X.namedCurve)};cY[13]=({dtls:W})=>(G)=>{v9(W.sessionId,"certificate_request",G),W.requestedCertificateTypes=G.certificateTypes,W.requestedSignatureAlgorithms=G.signatures};cY[14]=({dtls:W})=>(G)=>{v9(W.sessionId,"server_hello_done",G)};var qS=class W{constructor(G,X){this.serverVersion=G,this.cookie=X}msgType=3;messageSeq;static spec={serverVersion:WK,cookie:BG.types.buffer(BG.types.uint8)};static createEmpty(){return new W(void 0,void 0)}static deSerialize(G){return new W(...Object.values(BG.decode(G,W.spec)))}serialize(){let G=BG.encode(this,W.spec).slice();return Buffer.from(G)}get version(){return{major:255-this.serverVersion.major,minor:255-this.serverVersion.minor}}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},Vn=T1("werift-dtls : packages/dtls/src/context/dtls.ts : log"),HF=class{constructor(W,G){this.options=W,this.sessionType=G}version={major:254,minor:253};lastFlight=[];lastMessage=[];recordSequenceNumber=0;sequenceNumber=0;epoch=0;flight=0;handshakeCache={};cookie;requestedCertificateTypes=[];requestedSignatureAlgorithms=[];remoteExtendedMasterSecret=!1;get sessionId(){return this.cookie?this.cookie.toString("hex").slice(0,10):""}get sortedHandshakeCache(){return Object.entries(this.handshakeCache).sort(([W],[G])=>Number(W)-Number(G)).flatMap(([,{data:W}])=>W.sort((G,X)=>G.message_seq-X.message_seq))}checkHandshakesExist=(W)=>!W.find((G)=>this.sortedHandshakeCache.find((X)=>X.msg_type===G)==null);bufferHandshakeCache(W,G,X){if(!this.handshakeCache[X])this.handshakeCache[X]={data:[],isLocal:G,flight:X};let Y=W.filter((Z)=>{let V=this.handshakeCache[X].data.find((Q)=>Q.msg_type===Z.msg_type);if(V)return Vn(this.sessionId,"exist",V.summary,G,X),!1;return!0});this.handshakeCache[X].data=[...this.handshakeCache[X].data,...Y]}},Qn=class{constructor(W){this.socket=W}send=(W)=>{return this.socket.send(W)}},SO=class W{static type=10;static spec={type:f7.types.uint16be,data:f7.types.array(f7.types.uint16be,f7.types.uint16be,"bytes")};type=W.type;data=[];constructor(G={}){Object.assign(this,G)}static createEmpty(){return new W}static fromData(G){return new W({type:W.type,data:f7.decode(G,W.spec.data)})}static deSerialize(G){return new W(f7.decode(G,W.spec))}serialize(){return Buffer.from(f7.encode(this,W.spec).slice())}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},xO=class W{static type=13;static spec={type:b7.types.uint16be,data:b7.types.array({hash:b7.types.uint8,signature:b7.types.uint8},b7.types.uint16be,"bytes")};type=W.type;data=[];constructor(G={}){Object.assign(this,G)}static createEmpty(){return new W}static deSerialize(G){return new W(b7.decode(G,W.spec))}serialize(){let G=b7.encode(this,W.spec).slice();return Buffer.from(G)}static fromData(G){let X=Buffer.alloc(2);return X.writeUInt16BE(W.type),W.deSerialize(Buffer.concat([X,G]))}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},AF=class W{constructor(G,X){this.level=G,this.description=X}static spec={level:EG.types.uint8,description:EG.types.uint8};static deSerialize(G){return new W(...Object.values(EG.decode(G,W.spec)))}serialize(){let G=EG.encode(this,W.spec).slice();return Buffer.from(G)}},zF=T1("werift-dtls : packages/dtls/record/receive.ts : log"),JO=T1("werift-dtls : packages/dtls/record/receive.ts : err"),Jn=(W)=>{let G=0,X=[];while(W.length>G){let Y=W.readUInt16BE(G+11);if(W.length<G+(12+Y))break;let Z=b2.deSerialize(W.subarray(G));X.push(Z),G+=13+Y}return X},Un=(W,G)=>(X)=>{switch(X.recordLayerHeader.contentType){case 20:return zF(W.sessionId,"change cipher spec"),[{type:20,data:void 0}];case 22:{let Z=X.fragment;try{if(X.recordLayerHeader.epoch>0)zF(W.sessionId,"decrypt handshake"),Z=G.decryptPacket(X)}catch(V){throw JO(W.sessionId,"decrypt failed",V),V}try{let V=0,Q=[];while(Z.length>V){let J=P5.deSerialize(Z.subarray(V));Q.push({type:22,data:J}),V+=J.fragment_length+12}return Q}catch(V){throw JO(W.sessionId,"decSerialize failed",V,Z),V}}case 23:return[{type:23,data:G.decryptPacket(X)}];case 21:{let Z=AF.deSerialize(X.fragment);if(EO[Z.description]==null){let V=G.decryptPacket(X);Z=AF.deSerialize(V)}if(JO(W.sessionId,"ContentType.alert",Z,EO[Z.description],"flight",W.flight,"lastFlight",W.lastFlight),Z.level>1)throw Error("alert fatal error");return[{type:21,data:void 0}]}default:return[{type:21,data:void 0}]}},IF=T1("werift-dtls : packages/dtls/src/socket.ts : log"),wF=T1("werift-dtls : packages/dtls/src/socket.ts : err"),NS=class{constructor(W,G){this.options=W,this.sessionType=G,this.dtls=new HF(this.options,this.sessionType),this.cipher=new aN(this.sessionType,this.options.cert,this.options.key,this.options.signatureHash),this.transport=new Qn(this.options.transport),this.setupExtensions(),this.transport.socket.onData=this.udpOnMessage}onConnect=new f0;onData=new f0;onError=new f0;onClose=new f0;transport;cipher;dtls;srtp=new sN;connected=!1;extensions=[];onHandleHandshakes;bufferFragmentedHandshakes=[];renegotiation(){IF("renegotiation",this.sessionType),this.connected=!1,this.cipher=new aN(this.sessionType,this.options.cert,this.options.key,this.options.signatureHash),this.dtls=new HF(this.options,this.sessionType),this.srtp=new sN,this.extensions=[],this.bufferFragmentedHandshakes=[]}udpOnMessage=(W)=>{let G=Jn(W);for(let X of G)try{let Y=Un(this.dtls,this.cipher)(X);for(let Z of Y)switch(Z.type){case 22:{let V=Z.data,Q=this.handleFragmentHandshake([V]),J=Object.values(Q.reduce((U,q)=>{if(!U[q.msg_type])U[q.msg_type]=[];return U[q.msg_type].push(q),U},{})).map((U)=>P5.assemble(U)).sort((U,q)=>U.msg_type-q.msg_type);this.onHandleHandshakes(J).catch((U)=>{wF(this.dtls.sessionId,"onHandleHandshakes error",U),this.onError.execute(U)})}break;case 23:this.onData.execute(Z.data);break;case 21:this.onClose.execute();break}}catch(Y){wF(this.dtls.sessionId,"catch udpOnMessage error",Y)}};setupExtensions(){if(IF(this.dtls.sessionId,"support srtpProfiles",this.options.srtpProfiles),this.options.srtpProfiles&&this.options.srtpProfiles.length>0){let W=gY.create(this.options.srtpProfiles,Buffer.from([0]));this.extensions.push(W.extension)}{let W=SO.createEmpty();W.data=L2,this.extensions.push(W.extension)}{let W=xO.createEmpty();W.data=E2,this.extensions.push(W.extension)}if(this.options.extendedMasterSecret)this.extensions.push({type:HH.type,data:Buffer.alloc(0)});{let W=AH.createEmpty();this.extensions.push(W.extension)}}waitForReady=(W)=>new Promise(async(G,X)=>{for(let Y=0;Y<10;Y++)if(W()){G();break}else await Zn(100*Y);X("waitForReady timeout")});handleFragmentHandshake(W){let G=W.filter((X)=>{if(X.fragment_length!==X.length)return this.bufferFragmentedHandshakes.push(X),!1;return!0});if(this.bufferFragmentedHandshakes.length>1){let[X]=this.bufferFragmentedHandshakes.slice(-1);if(X.fragment_offset+X.fragment_length===X.length)G=[...this.bufferFragmentedHandshakes,...G],this.bufferFragmentedHandshakes=[]}return G}send=async(W)=>{let G=WJ(this.dtls)([{type:23,fragment:W}],++this.dtls.recordSequenceNumber)[0];await this.transport.send(this.cipher.encryptPacket(G).serialize())};close(){this.transport.socket.close()}extractSessionKeys(W,G){let X=this.exportKeyingMaterial("EXTRACTOR-dtls_srtp",W*2+G*2),{clientKey:Y,serverKey:Z,clientSalt:V,serverSalt:Q}=CG.decode(X,{clientKey:CG.types.buffer(W),serverKey:CG.types.buffer(W),clientSalt:CG.types.buffer(G),serverSalt:CG.types.buffer(G)});if(this.sessionType===c4.CLIENT)return{localKey:Y,localSalt:V,remoteKey:Z,remoteSalt:Q};else return{localKey:Z,localSalt:Q,remoteKey:Y,remoteSalt:V}}exportKeyingMaterial(W,G){return md(W,G,this.cipher.masterSecret,this.cipher.localRandom.serialize(),this.cipher.remoteRandom.serialize(),this.sessionType===c4.CLIENT)}get remoteCertificate(){return this.cipher.remoteCertificate}},UO=T1("werift-dtls : packages/dtls/src/client.ts : log"),jF=class extends NS{constructor(W){super(W,c4.CLIENT);this.onHandleHandshakes=this.handleHandshakes,UO(this.dtls.sessionId,"start client")}async connect(){await new Yo(this.transport,this.dtls,this.cipher).exec(this.extensions)}flight5;handleHandshakes=async(W)=>{UO(this.dtls.sessionId,"handleHandshakes",W.map((G)=>G.msg_type));for(let G of W)switch(G.msg_type){case 3:{let X=qS.deSerialize(G.fragment);await new Vo(this.transport,this.dtls).exec(X)}break;case 2:{if(this.connected)return;this.flight5=new Yn(this.transport,this.dtls,this.cipher,this.srtp),this.flight5.handleHandshake(G)}break;case 11:case 12:case 13:await this.waitForReady(()=>!!this.flight5),this.flight5?.handleHandshake(G);break;case 14:{await this.waitForReady(()=>!!this.flight5),this.flight5?.handleHandshake(G);let X=[11,12,this.options.certificateRequest&&13].filter((Y)=>typeof Y==="number");await this.waitForReady(()=>this.dtls.checkHandshakesExist(X)),await this.flight5?.exec()}break;case 20:this.dtls.flight=7,this.connected=!0,this.onConnect.execute(),UO(this.dtls.sessionId,"dtls connected");break}}},h7=T1("werift-dtls : packages/dtls/flight/server/flight2.ts : log"),Nn=(W,G,X,Y)=>(Z)=>{h7("dtls version",Z.clientVersion),G.flight=2,G.recordSequenceNumber=0,G.sequenceNumber=0,Z.extensions.forEach((A)=>{switch(A.type){case SO.type:{let H=SO.fromData(A.data).data;h7(G.sessionId,"curves",H);let I=H.filter((w)=>L2.includes(w))[0];X.namedCurve=I,h7(G.sessionId,"curve selected",X.namedCurve)}break;case xO.type:{if(!X.signatureHashAlgorithm)throw Error("need to set certificate");let H=xO.fromData(A.data).data;h7(G.sessionId,"hash,signature",H);let I=H.find((C)=>C.signature===X.signatureHashAlgorithm?.signature)?.signature,w=H.find((C)=>C.hash===X.signatureHashAlgorithm?.hash)?.hash;if(I==null||w==null)throw Error("invalid signatureHash")}break;case gY.type:{if(!G.options?.srtpProfiles)return;if(G.options.srtpProfiles.length===0)return;let H=gY.fromData(A.data);h7(G.sessionId,"srtp profiles",H.profiles);let I=sN.findMatchingSRTPProfile(H.profiles,G.options?.srtpProfiles);if(!I)throw Error();Y.srtpProfile=I,h7(G.sessionId,"srtp profile selected",Y.srtpProfile)}break;case HH.type:G.remoteExtendedMasterSecret=!0;break;case AH.type:h7(G.sessionId,"RenegotiationIndication",A.data);break;case 43:{let I=[...A.data.subarray(1)].map((w)=>w.toString(10));h7("dtls supported version",I)}break}}),X.localRandom=new TG,X.remoteRandom=TG.from(Z.random);let V=Z.cipherSuites;h7(G.sessionId,"cipher suites",V);let Q=(()=>{switch(X.signatureHashAlgorithm?.signature){case p4.ecdsa_3:return RO.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_49195;case p4.rsa_1:return RO.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256_49199}})();if(Q===void 0||!V.includes(Q))throw Error("dtls cipher suite negotiation failed");X.cipherSuite=Q,h7(G.sessionId,"selected cipherSuite",X.cipherSuite),X.localKeyPair=p2(X.namedCurve),G.cookie||=qn(20);let J=new qS({major:254,minor:253},G.cookie),U=m2(G)([J]),N=WJ(G)(U.map((A)=>({type:22,fragment:A.serialize()})),++G.recordSequenceNumber).map((A)=>A.serialize());for(let A of N)W.send(A)},OF=T1("werift-dtls : packages/dtls/flight/server/flight4.ts : log"),Hn=class extends GJ{constructor(W,G,X,Y){super(W,G,4,6);this.cipher=X,this.srtp=Y}async exec(W,G=!1){if(this.dtls.flight===4){OF(this.dtls.sessionId,"flight4 twice"),this.send(this.dtls.lastMessage);return}this.dtls.flight=4,this.dtls.sequenceNumber=1,this.dtls.bufferHandshakeCache([W],!1,4);let X=[this.sendServerHello(),this.sendCertificate(),this.sendServerKeyExchange(),G&&this.sendCertificateRequest(),this.sendServerHelloDone()].filter((Y)=>Y);this.dtls.lastMessage=X,await this.transmit(X)}sendServerHello(){let W=[];if(this.srtp.srtpProfile)W.push(gY.create([this.srtp.srtpProfile],Buffer.from([0])).extension);if(this.dtls.options.extendedMasterSecret)W.push({type:HH.type,data:Buffer.alloc(0)});let G=AH.createEmpty();W.push(G.extension);let X=new i2(this.dtls.version,this.cipher.localRandom,Buffer.from([0]),this.cipher.cipherSuite,0,W),Y=this.createPacket([X]);return Buffer.concat(Y.map((Z)=>Z.serialize()))}sendCertificate(){let W=new eN([Buffer.from(this.cipher.localCert)]),G=this.createPacket([W]);return Buffer.concat(G.map((X)=>X.serialize()))}sendServerKeyExchange(){let W=this.cipher.generateKeySignature("sha256");if(!this.cipher.signatureHashAlgorithm)throw Error("not exist");let G=new s2(B2.named_curve_3,this.cipher.namedCurve,this.cipher.localKeyPair.publicKey.length,this.cipher.localKeyPair.publicKey,this.cipher.signatureHashAlgorithm.hash,this.cipher.signatureHashAlgorithm.signature,W.length,W),X=this.createPacket([G]);return Buffer.concat(X.map((Y)=>Y.serialize()))}sendCertificateRequest(){let W=new n2(vd,E2,[]);OF(this.dtls.sessionId,"sendCertificateRequest",W);let G=this.createPacket([W]);return Buffer.concat(G.map((X)=>X.serialize()))}sendServerHelloDone(){let W=new r2,G=this.createPacket([W]);return Buffer.concat(G.map((X)=>X.serialize()))}},mY=T1("werift-dtls : packages/dtls/flight/server/flight6.ts"),An=class extends GJ{constructor(W,G,X){super(W,G,6);this.cipher=X}handleHandshake(W){this.dtls.bufferHandshakeCache([W],!1,5);let G=(()=>{switch(W.msg_type){case 11:return eN.deSerialize(W.fragment);case 15:return d2.deSerialize(W.fragment);case 16:return o2.deSerialize(W.fragment);case 20:return $O.deSerialize(W.fragment)}})();if(G){let X=QJ[G.msgType];if(!X)return;X({dtls:this.dtls,cipher:this.cipher})(G)}}async exec(){if(this.dtls.flight===6){mY(this.dtls.sessionId,"flight6 twice"),this.send(this.dtls.lastMessage);return}this.dtls.flight=6;let W=[this.sendChangeCipherSpec(),this.sendFinished()];this.dtls.lastMessage=W,await this.transmit(W)}sendChangeCipherSpec(){let W=l2.createEmpty().serialize(),G=WJ(this.dtls)([{type:20,fragment:W}],++this.dtls.recordSequenceNumber);return Buffer.concat(G.map((Y)=>Y.serialize()))}sendFinished(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((V)=>V.serialize())),G=this.cipher.verifyData(W),X=new $O(G);this.dtls.epoch=1;let[Y]=this.createPacket([X]);return this.dtls.recordSequenceNumber=0,this.cipher.encryptPacket(Y).serialize()}},QJ={};QJ[16]=({cipher:W,dtls:G})=>(X)=>{if(W.remoteKeyPair={curve:W.namedCurve,publicKey:X.publicKey},!W.remoteKeyPair.publicKey||!W.localKeyPair||!W.remoteRandom||!W.localRandom)throw Error("not exist");let Y=S2(W.remoteKeyPair.publicKey,W.localKeyPair.privateKey,W.localKeyPair.curve);mY(G.sessionId,"extendedMasterSecret",G.options.extendedMasterSecret,G.remoteExtendedMasterSecret);let Z=Buffer.concat(G.sortedHandshakeCache.map((V)=>V.serialize()));W.masterSecret=G.options.extendedMasterSecret&&G.remoteExtendedMasterSecret?k2(Y,Z):x2(Y,W.remoteRandom.serialize(),W.localRandom.serialize()),W.cipher=f2(W.cipherSuite),W.cipher.init(W.masterSecret,W.localRandom.serialize(),W.remoteRandom.serialize()),mY(G.sessionId,"setup cipher",W.cipher.summary)};QJ[11]=({cipher:W,dtls:G})=>(X)=>{mY(G.sessionId,"handshake certificate",X),W.remoteCertificate=X.certificateList[0]};QJ[15]=({cipher:W,dtls:G})=>(X)=>{if(!W.remoteCertificate)throw Error("client certificate missing before certificate verify");mY(G.sessionId,"certificate_verify",X.algorithm)};QJ[20]=({dtls:W})=>(G)=>{mY(W.sessionId,"finished",G)};var $Y=T1("werift-dtls : packages/dtls/src/server.ts : log"),zn=class extends NS{constructor(W){super(W,c4.SERVER);this.onHandleHandshakes=this.handleHandshakes,$Y(this.dtls.sessionId,"start server")}flight6;handleHandshakes=async(W)=>{$Y(this.dtls.sessionId,"handleHandshakes",W.map((G)=>G.msg_type));for(let G of W)switch(G.msg_type){case 1:{if(this.connected)this.renegotiation();let X=h2.deSerialize(G.fragment);if(X.cookie.length===0)$Y(this.dtls.sessionId,"send flight2"),Nn(this.transport,this.dtls,this.cipher,this.srtp)(X);else if(this.dtls.cookie&&X.cookie.equals(this.dtls.cookie))$Y(this.dtls.sessionId,"send flight4"),await new Hn(this.transport,this.dtls,this.cipher,this.srtp).exec(G,this.options.certificateRequest);else $Y("wrong state",{dtlsCookie:this.dtls.cookie?.toString("hex").slice(10),helloCookie:X.cookie.toString("hex").slice(10)})}break;case 11:case 15:case 16:{if(this.connected)return;this.flight6=new An(this.transport,this.dtls,this.cipher),this.flight6.handleHandshake(G)}break;case 20:{await this.waitForReady(()=>!!this.flight6),this.flight6?.handleHandshake(G);let X=[16,this.options.certificateRequest&&11,this.options.certificateRequest&&15].filter((Y)=>typeof Y==="number");await this.waitForReady(()=>this.dtls.checkHandshakesExist(X)),await this.flight6?.exec(),this.connected=!0,this.onConnect.execute(),$Y(this.dtls.sessionId,"dtls connected")}break}}},YK=554869826,In=8,wn=1398035790,n6=20,HS=24,AS=1,zS=2,jn=6,On=50;var IS=((W)=>{return W[W.REQUEST=0]="REQUEST",W[W.INDICATION=16]="INDICATION",W[W.RESPONSE=256]="RESPONSE",W[W.ERROR=272]="ERROR",W})(IS||{}),wS=((W)=>{return W[W.BINDING=1]="BINDING",W[W.SHARED_SECRET=2]="SHARED_SECRET",W[W.ALLOCATE=3]="ALLOCATE",W[W.REFRESH=4]="REFRESH",W[W.SEND=6]="SEND",W[W.DATA=7]="DATA",W[W.CREATE_PERMISSION=8]="CREATE_PERMISSION",W[W.CHANNEL_BIND=9]="CHANNEL_BIND",W})(wS||{});function yQ(W){return OS(W).toString("hex").substring(0,W)}function KS(){return OS(12)}var KF=class{queue=[];wait=new f0;put(W){if(this.queue.push(W),this.queue.length===1)this.wait.execute(W)}get(){let W=this.queue.shift();if(!W)return new Promise((G)=>{this.wait.subscribe((X)=>{this.queue.shift(),G(X)})});return W}},kO=(W)=>{let G,X,Y=new Promise((V,Q)=>{G=V,X=Q});Y.then(()=>{Z.execute(void 0),Z.complete()}).catch((V)=>{Z.execute(V??Error()),Z.complete()});let Z=new f0;return W(G,X,Z).catch(()=>{}),{awaitable:Y,resolve:G,reject:X}};function xY(W){let[G]=W,X=aQ.default.isV4Format(G)?AS:zS,Y=Buffer.alloc(4);return Y.writeUInt8(0,0),Y.writeUInt8(X,1),Y.writeUInt16BE(W[1],2),Buffer.concat([Y,aQ.default.toBuffer(G)])}function Kn(W){if(W.length<4)throw Error("STUN error code is less than 4 bytes");let G=W.readUInt8(2),X=W.readUInt8(3),Y=W.slice(4).toString("utf8");return[G*100+X,Y]}function kY(W){if(W.length<4)throw Error("STUN address length is less than 4 bytes");let G=W.readUInt8(1),X=W.readUInt16BE(2),Y=W.slice(4);switch(G){case AS:if(Y.length!=4)throw Error("STUN address has invalid length for IPv4");return[aQ.default.toString(Y),X];case zS:if(Y.length!=16)throw Error("STUN address has invalid length for IPv6");return[aQ.default.toString(Y),X];default:throw Error("STUN address has unknown protocol")}}var ZK=Buffer.alloc(6);ZK.writeUInt16BE(YK>>16,0);ZK.writeUInt32BE(YK,2);function CS(W,G){let X=[...ZK,...G],Y=W.slice(0,2);for(let Z=2;Z<W.length;Z++){let V=W[Z]^X[Z-2],Q=Buffer.alloc(1);Q.writeUIntBE(V,0,1),Y=Buffer.concat([Y,Q])}return Y}function gN(W,G){return kY(CS(W,G))}function Cn(W){let G=Buffer.alloc(4);G.writeUInt16BE(0,0),G.writeUInt8(Math.floor(W[0]/100),2),G.writeUInt8(W[0]%100,3);let X=Buffer.from(W[1],"utf8");return Buffer.concat([G,X])}function uN(W,G){return CS(xY(W),G)}var vQ=(W)=>{let G=Buffer.alloc(4);return G.writeUInt32BE(W,0),G},gQ=(W)=>W.readUInt32BE(0),Dn=(W)=>{let G=Buffer.alloc(4);return G.writeUInt16BE(W,0),G},Mn=(W)=>W.readUInt16BE(0),CF=(W)=>{return new nj(W.toString()).toBuffer()},DF=(W)=>{let G=new nj(W);return BigInt(G.toString())},qO=(W)=>Buffer.from(W,"utf8"),NO=(W)=>W.toString("utf8"),HO=(W)=>W,AO=(W)=>W,Tn=(W)=>Buffer.from([]),Pn=(W)=>null,DS=[[1,"MAPPED-ADDRESS",xY,kY],[3,"CHANGE-REQUEST",vQ,gQ],[4,"SOURCE-ADDRESS",xY,kY],[5,"CHANGED-ADDRESS",xY,kY],[6,"USERNAME",qO,NO],[8,"MESSAGE-INTEGRITY",HO,AO],[9,"ERROR-CODE",Cn,Kn],[12,"CHANNEL-NUMBER",Dn,Mn],[13,"LIFETIME",vQ,gQ],[18,"XOR-PEER-ADDRESS",uN,gN],[19,"DATA",HO,AO],[20,"REALM",qO,NO],[21,"NONCE",HO,AO],[22,"XOR-RELAYED-ADDRESS",uN,gN],[25,"REQUESTED-TRANSPORT",vQ,gQ],[32,"XOR-MAPPED-ADDRESS",uN,gN],[36,"PRIORITY",vQ,gQ],[37,"USE-CANDIDATE",Tn,Pn],[32802,"SOFTWARE",qO,NO],[32808,"FINGERPRINT",vQ,gQ],[32809,"ICE-CONTROLLED",CF,DF],[32810,"ICE-CONTROLLING",CF,DF],[32811,"RESPONSE-ORIGIN",xY,kY],[32812,"OTHER-ADDRESS",xY,kY]],MS=class{constructor(W=[]){this.attributes=W}getAttributes(){return this.attributes}setAttribute(W,G){let X=this.attributes.find((Y)=>Y[0]===W);if(X)X[1]=G;else this.attributes.push([W,G]);return this}getAttributeValue(W){let G=this.attributes.find((X)=>X[0]===W);if(!G)return;return G[1]}get attributesKeys(){return this.attributes.map((W)=>W[0])}clear(){this.attributes=[]}},MF=DS.reduce((W,G)=>{return W[G[0]]=G,W},{}),Rn=DS.reduce((W,G)=>{return W[G[1]]=G,W},{});function VK(W,G){if(W.length<n6)return;let X=W.readUint16BE(2);if(W.length!==n6+X)return;let Y=W.readUint16BE(0),Z=Buffer.from(W.slice(n6-12,n6)),V=new MS;for(let J=n6;J<=W.length-4;){let U=W.readUInt16BE(J),q=W.readUInt16BE(J+2),N=W.slice(J+4,J+4+q),A=4*Math.floor((q+3)/4)-q;if(Object.keys(MF).includes(U.toString())){let[,I,,w]=MF[U];if(w.name===gN.name)V.setAttribute(I,w(N,Z));else V.setAttribute(I,w(N));if(I==="FINGERPRINT"){let C=TS(W.slice(0,J));if(V.getAttributeValue("FINGERPRINT")!==C)return}else if(I==="MESSAGE-INTEGRITY"){if(G){let C=Ln(W.slice(0,J),G),D=V.getAttributeValue("MESSAGE-INTEGRITY");if(!C.equals(D))return}}}J+=4+q+A}let Q=V.getAttributes();return V.clear(),new m7(Y&16111,Y&272,Z,Q)}var m7=class extends MS{constructor(W,G,X=KS(),Y=[]){super(Y);this.messageMethod=W,this.messageClass=G,this.transactionId=X}toJSON(){return this.json}get json(){return{messageMethod:wS[this.messageMethod],messageClass:IS[this.messageClass],attributes:this.attributes}}get transactionIdHex(){return this.transactionId.toString("hex")}get bytes(){let W=Buffer.from([]);for(let X of this.attributesKeys){let Y=this.getAttributeValue(X),[Z,,V]=Rn[X],Q=V.name===uN.name?V(Y,this.transactionId):V(Y),J=Q.length,U=4*Math.floor((J+3)/4)-J,q=Buffer.alloc(4);q.writeUInt16BE(Z,0),q.writeUInt16BE(J,2),W=Buffer.concat([W,q,Q,Buffer.alloc(U,0)])}let G=Buffer.alloc(8);return G.writeUInt16BE(this.messageMethod|this.messageClass,0),G.writeUInt16BE(W.length,2),G.writeUInt32BE(YK,4),Buffer.concat([G,this.transactionId,W])}addMessageIntegrity(W){return this.setAttribute("MESSAGE-INTEGRITY",this.messageIntegrity(W)),this}messageIntegrity(W){let G=QK(this.bytes,this.bytes.length-n6+HS);return Buffer.from(jS("sha1",W).update(G).digest("hex"),"hex")}addFingerprint(){this.setAttribute("FINGERPRINT",TS(this.bytes))}},QK=(W,G)=>{let X=Buffer.alloc(W.length);return W.copy(X,0,0,2),X.writeUInt16BE(G,2),W.copy(X,4,4),X};function TS(W){let G=QK(W,W.length-n6+In);return(Td(G)^wn)>>>0}function Ln(W,G){let X=QK(W,W.length-n6+HS);return Buffer.from(jS("sha1",G).update(X).digest("hex"),"hex")}function TF(W){let G=W%4;if(G===0)return 0;else return 4-G}var PS=class extends Error{response;addr},RS=class extends PS{constructor(W,G){super();this.response=W,this.addr=G}get str(){let W="STUN transaction failed",G=this.response.getAttributeValue("ERROR-CODE");if(G){let[X,Y]=G;W+=` (${X} - ${Y})`}return W}},Bn=class extends PS{get str(){return"STUN transaction timed out"}},zO=T1("werift-ice:packages/ice/src/stun/transaction.ts"),JK=class{constructor(W,G,X,Y){this.request=W,this.addr=G,this.protocol=X,this.retransmissions=Y,this.triesMax=1+(this.retransmissions?this.retransmissions:jn)}timeoutDelay=On;ended=!1;tries=0;triesMax;onResponse=new f0;responseReceived=(W,G)=>{if(this.onResponse.length>0)if(W.messageClass===256)this.onResponse.execute(W,G),this.onResponse.complete();else this.onResponse.error(new RS(W,G))};run=async()=>{try{return this.retry().catch((G)=>{zO("retry failed",G)}),await this.onResponse.asPromise()}catch(W){throw W}finally{this.cancel()}};retry=async()=>{while(this.tries<this.triesMax&&!this.ended){if(this.protocol.sendStun(this.request,this.addr).catch((W)=>{zO("send stun failed",W)}),await new Promise((W)=>setTimeout(W,this.timeoutDelay)),this.ended)break;this.timeoutDelay*=2,this.tries++}if(this.tries>=this.triesMax)zO(`retry failed times:${this.tries} maxLimit:${this.triesMax}`),this.onResponse.error(new Bn)};cancel(){this.ended=!0}},PF=T1("werift-ice : packages/ice/src/stun/protocol.ts"),RF=class W{static type="stun";type=W.type;transport;transactions={};get transactionsKeys(){return Object.keys(this.transactions)}localCandidate;sentMessage;localIp;onRequestReceived=new f0;onDataReceived=new f0;constructor(){}connectionMade=async(G,X,Y)=>{if(G)this.transport=await PO.init("udp4",{portRange:X,interfaceAddresses:Y});else this.transport=await PO.init("udp6",{portRange:X,interfaceAddresses:Y});this.transport.onData=(Z,V)=>{this.datagramReceived(Z,V)}};datagramReceived(G,X){try{let Y=VK(G);if(!Y){if(this.localCandidate)this.onDataReceived.execute(G);return}if((Y.messageClass===256||Y.messageClass===272)&&this.transactionsKeys.includes(Y.transactionIdHex))this.transactions[Y.transactionIdHex].responseReceived(Y,X);else if(Y.messageClass===0)this.onRequestReceived.execute(Y,X,G)}catch(Y){PF("datagramReceived error",Y)}}getExtraInfo(){let{address:G,port:X}=this.transport.address;return[G,X]}async sendStun(G,X){if(this.transport.closed)return;let Y=G.bytes;await this.transport.send(Y,X).catch(()=>{PF("sendStun failed",X,G)})}async sendData(G,X){if(this.transport.closed)return;await this.transport.send(G,X)}async request(G,X,Y,Z){if(this.transactionsKeys.includes(G.transactionIdHex))throw Error("already request ed");if(Y)G.addMessageIntegrity(Y),G.addFingerprint();let V=new JK(G,X,this,Z);this.transactions[G.transactionIdHex]=V;try{return await V.run()}catch(Q){throw Q}finally{delete this.transactions[G.transactionIdHex]}}async close(){Object.values(this.transactions).forEach((G)=>{G.cancel()}),await this.transport.close(),this.onRequestReceived.complete(),this.onDataReceived.complete()}},i9=T1("werift-ice:packages/ice/src/turn/protocol.ts"),Fn=500,Sn=600,xn=285212672,kn=class W{constructor(G){this.turn=G,G.onData.subscribe((X,Y)=>{this.handleStunMessage(X,Y)}).disposer(this.disposer)}static type="turn";type=W.type;localCandidate;disposer=new Ed;onRequestReceived=new f0;onDataReceived=new f0;handleStunMessage=(G,X)=>{try{let Y=VK(G);if(!Y){this.onDataReceived.execute(G);return}if(Y.messageClass===256||Y.messageClass===272){let Z=this.turn.transactions[Y.transactionIdHex];if(Z)Z.responseReceived(Y,X)}else if(Y.messageClass===0)this.onRequestReceived.execute(Y,X,G)}catch(Y){i9("datagramReceived error",Y)}};async request(G,X,Y){if(this.turn.transactions[G.transactionIdHex])throw Error("exist");if(Y)G.addMessageIntegrity(Y),G.addFingerprint();let Z=new JK(G,X,this);this.turn.transactions[G.transactionIdHex]=Z;try{return await Z.run()}catch(V){throw V}finally{delete this.turn.transactions[G.transactionIdHex]}}async connectionMade(){}async sendData(G,X){await this.turn.sendData(G,X)}async sendStun(G,X){await this.turn.sendData(G.bytes,X)}async close(){return this.disposer.dispose(),this.turn.close()}},_n=class W{constructor(G,X,Y,Z,V,Q={}){this.server=G,this.username=X,this.password=Y,this.lifetime=Z,this.transport=V,this.options=Q,this.channelRefreshTime=this.options.channelRefreshTime??Fn}static type="turn";type=W.type;onData=new f0;onRequestReceived=new f0;onDataReceived=new f0;integrityKey;nonce;realm;relayedAddress;mappedAddress;localCandidate;transactions={};refreshHandle;channelNumber=16384;channelByAddr={};addrByChannel={};channelRefreshTime;channelBinding;channelRefreshAt=0;tcpBuffer=Buffer.alloc(0);permissionByAddr={};creatingPermission=Promise.resolve();async connectionMade(){this.transport.onData=(Z,V)=>{this.dataReceived(Z,V)};let G=new m7(3,0);G.setAttribute("LIFETIME",this.lifetime).setAttribute("REQUESTED-TRANSPORT",xn);let[X]=await this.requestWithRetry(G,this.server).catch((Z)=>{throw i9("connect error",Z),Z});this.relayedAddress=X.getAttributeValue("XOR-RELAYED-ADDRESS"),this.mappedAddress=X.getAttributeValue("XOR-MAPPED-ADDRESS");let Y=X.getAttributeValue("LIFETIME");i9("connect",this.relayedAddress,this.mappedAddress,{exp:Y}),this.refresh(Y)}handleChannelData(G){let[X,Y]=a1.Unpack("!HH",G.slice(0,4)),Z=this.addrByChannel[X];if(Z){let V=G.subarray(4,4+Y);this.onData.execute(V,Z)}}handleSTUNMessage(G,X){try{let Y=VK(G);if(!Y)throw Error("not stun message");if(Y.messageClass===256||Y.messageClass===272){let Z=this.transactions[Y.transactionIdHex];if(Z)Z.responseReceived(Y,X)}else if(Y.messageClass===0)this.onData.execute(G,X);if(Y.getAttributeValue("DATA")){let Z=Y.getAttributeValue("DATA");this.onData.execute(Z,X)}}catch(Y){i9("parse error",G.toString())}}dataReceived(G,X){let Y=(Z,V)=>{if(Z.length>=4&&BF(Z))this.handleChannelData(Z);else this.handleSTUNMessage(Z,V)};if(this.transport.type==="tcp"){this.tcpBuffer=Buffer.concat([this.tcpBuffer,G]);while(this.tcpBuffer.length>=4){let[,Z]=r9(this.tcpBuffer.subarray(0,4),[2,2]);Z+=TF(Z);let V=BF(this.tcpBuffer)?4+Z:20+Z;if(this.tcpBuffer.length<V)break;Y(this.tcpBuffer.subarray(0,V),X),this.tcpBuffer=this.tcpBuffer.subarray(V)}}else Y(G,X)}async send(G,X){if(this.transport.closed)return;if(this.transport.type==="tcp"){let Y=TF(G.length);await this.transport.send(Y>0?Buffer.concat([G,Buffer.alloc(Y)]):G,X)}else await this.transport.send(G,X)}async createPermission(G){let X=new m7(8,0);X.setAttribute("XOR-PEER-ADDRESS",G).setAttribute("USERNAME",this.username).setAttribute("REALM",this.realm).setAttribute("NONCE",this.nonce),await this.request(X,this.server).catch((Y)=>{throw Y})}refresh=(G)=>{this.refreshHandle=kO(async(X,Y,Z)=>{let V=!0;Z.once(()=>{V=!1});while(V){let Q=0.8333333333333334*G*1000;i9("refresh delay",Q,{exp:G}),await $n(Q);let J=new m7(4,0);J.setAttribute("LIFETIME",G);try{let[U]=await this.requestWithRetry(J,this.server);G=U.getAttributeValue("LIFETIME"),i9("refresh",{exp:G})}catch(U){i9("refresh error",U)}}})};async request(G,X){if(this.transactions[G.transactionIdHex])throw Error("exist");if(this.integrityKey)G.setAttribute("USERNAME",this.username).setAttribute("REALM",this.realm).setAttribute("NONCE",this.nonce).addMessageIntegrity(this.integrityKey).addFingerprint();let Y=new JK(G,X,this);this.transactions[G.transactionIdHex]=Y;try{return await Y.run()}catch(Z){throw Z}finally{delete this.transactions[G.transactionIdHex]}}async requestWithRetry(G,X){let Y,Z;try{[Y,Z]=await this.request(G,X)}catch(V){if(V instanceof RS==!1)throw i9("requestWithRetry error",V),V;this.server=V.addr;let[Q]=V.response.getAttributeValue("ERROR-CODE"),J=V.response.getAttributeValue("NONCE"),U=V.response.getAttributeValue("REALM");if((Q===401&&U||Q===438&&this.realm)&&J){if(i9("retry with nonce",Q),this.nonce=J,Q===401)this.realm=U;this.integrityKey=vn(this.username,this.realm,this.password),G.transactionId=KS(),[Y,Z]=await this.request(G,this.server)}else throw V}return[Y,Z]}async sendData(G,X){let Y=await this.getChannel(X).catch((V)=>{return Error("channelBind error")});if(Y instanceof Error){await this.getPermission(X);let V=new m7(6,16).setAttribute("DATA",G).setAttribute("XOR-PEER-ADDRESS",X);await this.sendStun(V,this.server);return}let Z=a1.Pack("!HH",[Y.number,G.length]);await this.send(Buffer.concat([Buffer.from(Z),G]),this.server)}async getPermission(G){if(await this.creatingPermission,!this.permissionByAddr[G.join(":")])this.creatingPermission=this.createPermission(G),this.permissionByAddr[G.join(":")]=!0,await this.creatingPermission.catch((Y)=>{throw i9("createPermission error",Y),Y})}async getChannel(G){if(this.channelBinding)await this.channelBinding;let X=this.channelByAddr[G.join(":")];if(!X)this.channelByAddr[G.join(":")]={number:this.channelNumber++,address:G},X=this.channelByAddr[G.join(":")],this.addrByChannel[X.number]=G,this.channelBinding=this.channelBind(X.number,G),await this.channelBinding.catch((Y)=>{throw i9("channelBind error",Y),Y}),this.channelRefreshAt=pQ(Date.now()/1000)+this.channelRefreshTime,this.channelBinding=void 0,i9("channelBind",X);else if(this.channelRefreshAt<pQ(Date.now()/1000))this.channelBinding=this.channelBind(X.number,G),this.channelRefreshAt=pQ(Date.now()/1000)+this.channelRefreshTime,await this.channelBinding.catch((Y)=>{throw i9("channelBind error",Y),Y}),this.channelBinding=void 0,i9("channelBind refresh",X);return X}async channelBind(G,X){let Y=new m7(9,0);Y.setAttribute("CHANNEL-NUMBER",G).setAttribute("XOR-PEER-ADDRESS",X);let[Z]=await this.requestWithRetry(Y,this.server);if(Z.messageMethod!==9)throw Error("should be CHANNEL_BIND")}async sendStun(G,X){await this.send(G.bytes,X)}async close(){this.refreshHandle?.resolve?.(),await this.transport.close()}};async function yn({address:W,username:G,password:X},{lifetime:Y,portRange:Z,interfaceAddresses:V,transport:Q}={}){Y??=Sn,Q??="udp";let J=Q==="udp"?await PO.init("udp4",{portRange:Z,interfaceAddresses:V}):await Sd.init(W),U=new _n(W,G,X,Y,J);return await U.connectionMade(),U}async function LF({address:W,username:G,password:X},{lifetime:Y,portRange:Z,interfaceAddresses:V,transport:Q}={}){let J=await yn({address:W,username:G,password:X},{lifetime:Y,portRange:Z,interfaceAddresses:V,transport:Q});return new kn(J)}function vn(W,G,X){return En("md5").update(Buffer.from([W,G,X].join(":"))).digest()}function BF(W){return(W[0]&192)==64}var DG=class W{constructor(G,X,Y,Z,V,Q,J,U,q,N,A,H){this.foundation=G,this.component=X,this.transport=Y,this.priority=Z,this.host=V,this.port=Q,this.type=J,this.relatedAddress=U,this.relatedPort=q,this.tcptype=N,this.generation=A,this.ufrag=H}static fromSdp(G){let X=G.split(" ");if(X.length<8)throw Error("SDP does not have enough properties");let Y={foundation:X[0],component:Number(X[1]),transport:X[2],priority:Number(X[3]),host:X[4],port:Number(X[5]),type:X[7]};for(let A=8,H=X.length-1;A<H;A+=2)if(X[A]==="raddr")Y.related_address=X[A+1];else if(X[A]==="rport")Y.related_port=Number(X[A+1]);else if(X[A]==="tcptype")Y.tcptype=X[A+1];else if(X[A]==="generation")Y.generation=Number(X[A+1]);else if(X[A]==="ufrag")Y.ufrag=X[A+1];let{foundation:Z,component:V,transport:Q,priority:J,host:U,port:q,type:N}=Y;return new W(Z,V,Q,J,U,q,N,Y.related_address,Y.related_port,Y.tcptype,Y.generation,Y.ufrag)}canPairWith(G){let X=EF(this.host),Y=EF(G.host);return this.component===G.component&&this.transport.toLowerCase()===G.transport.toLowerCase()&&X===Y}toSdp(){let G=`${this.foundation} ${this.component} ${this.transport} ${this.priority} ${this.host} ${this.port} typ ${this.type}`;if(this.relatedAddress)G+=` raddr ${this.relatedAddress}`;if(this.relatedPort!=null)G+=` rport ${this.relatedPort}`;if(this.tcptype)G+=` tcptype ${this.tcptype}`;if(this.generation!=null)G+=` generation ${this.generation}`;if(this.ufrag!=null)G+=` ufrag ${this.ufrag}`;return G}};function _O(W,G,X){let Y=`${W}|${G}|${X}`;return gn("md5").update(Y,"ascii").digest("hex").slice(7)}function hN(W,G=65535){let Y=0;if(W==="host")Y=126;else if(W==="prflx")Y=110;else if(W==="srflx")Y=100;else Y=0;return 16777216*Y+256*G+255}var hn=class{cache=new Map;mdnsInstance=LS.default();constructor(){this.mdnsInstance.setMaxListeners(50)}lookup(W){return new Promise((G,X)=>{let Y=()=>{this.mdnsInstance.removeListener("response",V),clearTimeout(Z)},Z=setTimeout(()=>{Y(),X(Error("No mDNS response"))},1e4),V=(Q)=>{let J=Q.answers?.[0];if(J?.type!=="A")return;if(J.name!==W)return;Y(),G(J.data)};this.mdnsInstance.on("response",V),this.mdnsInstance.query(W,"A")})}close(){this.mdnsInstance.destroy()}},mn=T1("werift-ice : packages/ice/src/ice.ts : log"),FF=class{constructor(W,G,X){this.protocol=W,this.remoteCandidate=G,this.iceControlling=X}id=bn().toString();handle;nominated=!1;remoteNominated=!1;_state=0;get state(){return this._state}packetsSent=0;packetsReceived=0;bytesSent=0;bytesReceived=0;rtt;totalRoundTripTime=0;roundTripTimeMeasurements=0;toJSON(){return this.json}get json(){return{protocol:this.protocol.type,localCandidate:this.localCandidate.toSdp(),remoteCandidate:this.remoteCandidate.toSdp()}}updateState(W){this._state=W}get localCandidate(){if(!this.protocol.localCandidate)throw Error("localCandidate not exist");return this.protocol.localCandidate}get remoteAddr(){return[this.remoteCandidate.host,this.remoteCandidate.port]}get component(){return this.localCandidate.component}get priority(){return vO(this.localCandidate,this.remoteCandidate,this.iceControlling)}get foundation(){return this.localCandidate.foundation}},SF=1,$N=2,fn=5,xF=6;var cn={useIpv4:!0,useIpv6:!0};function kF(W){if(!["host","relay","srflx"].includes(W.type))throw Error(`Unexpected candidate type "${W.type}"`);return W}function pn(W,G){return W.sort((X,Y)=>vO(X.localCandidate,X.remoteCandidate,G)-vO(Y.localCandidate,Y.remoteCandidate,G)).reverse()}function vO(W,G,X){let Y=X&&W.priority||G.priority,Z=X&&G.priority||W.priority;return 1*Math.min(Y,Z)+2*Math.max(Y,Z)+(Y>Z?1:0)}async function ln(W,G){let X=new m7(1,0);try{let[Y]=await W.request(X,G),Z=W.localCandidate;if(!Z)throw Error("not exist");return new DG(_O("srflx","udp",Z.host),Z.component,Z.transport,hN("srflx"),Y.getAttributeValue("XOR-MAPPED-ADDRESS")[0],Y.getAttributeValue("XOR-MAPPED-ADDRESS")[1],"srflx",Z.host,Z.port)}catch(Y){mn("error serverReflexiveCandidate",Y)}}function _F(W){if(W&&Number.isNaN(W[1]))return[W[0],443];return W}var dn=T1("werift-ice : packages/ice/src/utils.ts");function on(W){return iN(W.family)===4&&W.address?.startsWith("169.254.")||iN(W.family)===6&&W.address?.startsWith("fe80::")}function yF(W,{useLinkLocalAddress:G}={}){let X=["ipsec","tun","utun","tap"],Y=["vmnet","veth"],Z=BS.networkInterfaces();dn(Z);let V=Object.keys(Z).map((Q)=>{for(let U of[...X,...Y])if(Q.startsWith(U))return{nic:Q,addresses:[]};let J=Z[Q].filter((U)=>iN(U.family)===W&&!ES.default.isLoopback(U.address)&&(G?!0:!on(U)));return{nic:Q,addresses:J.map((U)=>U.address)}}).filter((Q)=>!!Q);return V.sort((Q,J)=>Q.nic.localeCompare(J.nic)),Object.values(V).flatMap((Q)=>Q.addresses)}function nn(W,G,X={}){let Y=[];if(W)Y.push(...yF(4,X));if(G)Y.push(...yF(6,X));return Y}var e1=T1("werift-ice : packages/ice/src/ice.ts : log"),rn=class{constructor(W,G){this._iceControlling=W,this.options={...cn,...G};let{stunServer:X,turnServer:Y}=this.options;this.stunServer=_F(X)??["stun.l.google.com",19302],this.turnServer=_F(Y),this.restart(),e1("new Connection",this.options)}localUsername=yQ(4);localPassword=yQ(22);remoteIsLite=!1;remotePassword="";remoteUsername="";checkList=[];localCandidates=[];stunServer;turnServer;options;remoteCandidatesEnd=!1;localCandidatesEnd=!1;generation=-1;userHistory={};tieBreaker=BigInt(new RN(un(64)).toString());state="new";lookup;_remoteCandidates=[];nominated;nominating=!1;checkListDone=!1;checkListState=new KF;earlyChecks=[];earlyChecksDone=!1;localCandidatesStart=!1;protocols=[];queryConsentHandle;onData=new f0;stateChanged=new f0;onIceCandidate=new f0;get iceControlling(){return this._iceControlling}set iceControlling(W){if(this.generation>0||this.nominated)return;this._iceControlling=W;for(let G of this.checkList)G.iceControlling=W}async restart(){if(this.generation++,this.localUsername=yQ(4),this.localPassword=yQ(22),this.options.localPasswordPrefix)this.localPassword=this.options.localPasswordPrefix+this.localPassword.slice(this.options.localPasswordPrefix.length);this.userHistory[this.localUsername]=this.localPassword,this.remoteUsername="",this.remotePassword="",this.localCandidates=[],this._remoteCandidates=[],this.remoteCandidatesEnd=!1,this.localCandidatesEnd=!1,this.state="new",this.lookup?.close?.(),this.lookup=void 0,this.nominated=void 0,this.nominating=!1,this.checkList=[],this.checkListDone=!1,this.checkListState=new KF,this.earlyChecks=[],this.earlyChecksDone=!1,this.localCandidatesStart=!1;for(let W of this.protocols)if(W.localCandidate)W.localCandidate.generation=this.generation,W.localCandidate.ufrag=this.localUsername;this.queryConsentHandle?.resolve?.(),this.queryConsentHandle=void 0}resetNominatedPair(){e1("resetNominatedPair"),this.nominated=void 0,this.nominating=!1}setRemoteParams({iceLite:W,usernameFragment:G,password:X}){e1("setRemoteParams",{iceLite:W,usernameFragment:G,password:X}),this.remoteIsLite=W,this.remoteUsername=G,this.remotePassword=X}async gatherCandidates(){if(!this.localCandidatesStart){this.localCandidatesStart=!0;let W=nn(this.options.useIpv4,this.options.useIpv6,{useLinkLocalAddress:this.options.useLinkLocalAddress}),{interfaceAddresses:G}=this.options;if(G){let Y=W.filter((Z)=>Object.values(G).includes(Z));if(Y.length)W=Y}if(this.options.additionalHostAddresses)W=Array.from(new Set([...this.options.additionalHostAddresses,...W]));let X=this.getCandidatePromises(W,5);await Promise.allSettled(X),this.localCandidatesEnd=!0}this.setState("completed")}appendLocalCandidate(W){this.localCandidates.push(W),this.onIceCandidate.execute(W)}ensureProtocol(W){W.onRequestReceived.subscribe((G,X,Y)=>{if(G.messageMethod!==1){this.respondError(G,X,W,[400,"Bad Request"]);return}let Z=G.getAttributeValue("USERNAME"),{remoteUsername:V}=vF(Z),Q=this.userHistory[V]??this.localPassword,{iceControlling:J}=this;if(J&&G.attributesKeys.includes("ICE-CONTROLLING"))if(this.tieBreaker>=G.getAttributeValue("ICE-CONTROLLING")){this.respondError(G,X,W,[487,"Role Conflict"]);return}else this.switchRole(!1);else if(!J&&G.attributesKeys.includes("ICE-CONTROLLED"))if(this.tieBreaker<G.getAttributeValue("ICE-CONTROLLED"))this.respondError(G,X,W,[487,"Role Conflict"]);else{this.switchRole(!0);return}if(this.options.filterStunResponse&&!this.options.filterStunResponse(G,X,W))return;let U=new m7(1,256,G.transactionId);if(U.setAttribute("XOR-MAPPED-ADDRESS",X).addMessageIntegrity(Buffer.from(Q,"utf8")).addFingerprint(),W.sendStun(U,X).catch((q)=>{e1("sendStun error",q)}),this.checkList.length===0&&!this.earlyChecksDone)this.earlyChecks.push([G,X,W]);else this.checkIncoming(G,X,W)}),W.onDataReceived.subscribe((G)=>{try{let X=this.nominated;if(X&&X.protocol===W)X.packetsReceived++,X.bytesReceived+=G.length;this.onData.execute(G)}catch(X){e1("dataReceived",X)}})}getCandidatePromises(W,G=5){let X=[];W=W.filter((U)=>{if(this.protocols.find((q)=>q.localIp===U))return!1;return!0});let Y=W.map(async(U)=>{let q=new RF;this.ensureProtocol(q);try{await q.connectionMade($F(U),this.options.portRange,this.options.interfaceAddresses),q.localIp=U,this.protocols.push(q),e1("protocol",q.localIp);let N=[U,q.getExtraInfo()[1]];return q.localCandidate=new DG(_O("host","udp",N[0]),1,"udp",hN("host"),N[0],N[1],"host",void 0,void 0,void 0,this.generation,this.localUsername),this.pairLocalProtocol(q),this.appendLocalCandidate(q.localCandidate),q}catch(N){e1("error protocol STUN",N)}});X.push(...Y.map((U)=>U.then((q)=>q?.localCandidate)));let{stunServer:Z,turnServer:V}=this;if(Z){let U=Y.map(async(q)=>{let N=await q;if(!N)return;return new Promise(async(H,I)=>{let w=setTimeout(I,G*1000);if(N.localCandidate?.host&&$F(N.localCandidate?.host)){let C=await ln(N,Z).catch((D)=>{e1("error",D)});if(C)this.appendLocalCandidate(C);clearTimeout(w),H(C)}else clearTimeout(w),H()}).catch((H)=>{e1("query STUN server",H)})});X.push(...U)}let{turnUsername:Q,turnPassword:J}=this.options;if(V&&Q&&J){let U=(async()=>{let q=await LF({address:V,username:Q,password:J},{portRange:this.options.portRange,interfaceAddresses:this.options.interfaceAddresses,transport:this.options.turnTransport==="tcp"?"tcp":"udp"}).catch(async(H)=>{if(this.options.turnTransport!=="tcp")return await LF({address:V,username:Q,password:J},{portRange:this.options.portRange,interfaceAddresses:this.options.interfaceAddresses,transport:"tcp"});else throw H});this.ensureProtocol(q),this.protocols.push(q);let N=q.turn.relayedAddress,A=q.turn.mappedAddress;return e1("turn candidateAddress",N),q.localCandidate=new DG(_O("relay","udp",N[0]),1,"udp",hN("relay"),N[0],N[1],"relay",A[0],A[1],void 0,this.generation,this.localUsername),this.appendLocalCandidate(q.localCandidate),q.localCandidate})().catch((q)=>{e1("query TURN server",q)});if(this.options.forceTurn)X=[];X.push(U)}return X}async connect(){if(e1("start connect ice"),!this.localCandidatesEnd){if(!this.localCandidatesStart)throw Error("Local candidates gathering was not performed")}if(!this.remoteUsername||!this.remotePassword)throw Error("Remote username or password is missing");for(let G of this.remoteCandidates)this.pairRemoteCandidate(G);this.sortCheckList(),this.unfreezeInitial(),e1("earlyChecks",this.localPassword,this.earlyChecks.length);for(let G of this.earlyChecks)this.checkIncoming(...G);this.earlyChecks=[],this.earlyChecksDone=!0;for(;;){if(this.state==="closed")break;if(!this.schedulingChecks())break;await yO.setTimeout(20)}let W=$N;while(this.checkList.length>0&&W===$N)W=await this.checkListState.get(),e1("checkListState",W);for(let G of this.checkList)G.handle?.resolve?.();if(W!==SF)throw Error("ICE negotiation failed");this.queryConsent(),this.setState("connected")}unfreezeInitial(){let[W]=this.checkList;if(!W)return;if(W.state===0)W.updateState(1);let G=new Set(W.localCandidate.foundation);for(let X of this.checkList)if(X.component===W.component&&!G.has(X.localCandidate.foundation)&&X.state===0)X.updateState(1),G.add(X.localCandidate.foundation)}schedulingChecks(){{let W=this.checkList.filter((G)=>{if(this.options.forceTurn&&G.protocol.type===RF.type)return!1;return!0}).find((G)=>G.state===1);if(W)return W.handle=this.checkStart(W),!0}{let W=this.checkList.find((G)=>G.state===0);if(W)return W.handle=this.checkStart(W),!0}if(!this.remoteCandidatesEnd)return!this.checkListDone;return!1}queryConsent=()=>{if(this.queryConsentHandle)this.queryConsentHandle.resolve();this.queryConsentHandle=kO(async(W,G,X)=>{let Y=0,Z=!1,V=new AbortController;X.once(()=>{Z=!0,Y+=xF,V.abort(),this.queryConsentHandle=void 0});let{localUsername:Q,remoteUsername:J,iceControlling:U}=this;try{while(this.state!=="closed"&&!Z){await yO.setTimeout(fn*(0.8+0.4*Math.random())*1000,void 0,{signal:V.signal});let q=this.nominated;if(!q||Z)break;let N=this.buildRequest({nominate:!1,localUsername:Q,remoteUsername:J,iceControlling:U});try{if(await q.protocol.request(N,q.remoteAddr,Buffer.from(this.remotePassword,"utf8"),0),Y=0,this.state==="disconnected")this.setState("connected")}catch(A){if(q.id===this.nominated?.id){e1("no stun response"),Y++,this.setState("disconnected");break}}if(Y>=xF){e1("Consent to send expired"),this.queryConsentHandle=void 0,this.setState("closed");break}}}catch(q){}})};async close(){if(this.setState("closed"),this.queryConsentHandle?.resolve?.(),this.checkList&&!this.checkListDone)this.checkListState.put(new Promise((W)=>{W($N)}));this.nominated=void 0;for(let W of this.protocols)if(W.close)await W.close();this.protocols=[],this.localCandidates=[],this.lookup?.close?.(),this.lookup=void 0}setState(W){this.state=W,this.stateChanged.execute(W)}async addRemoteCandidate(W){if(!W){this.remoteCandidatesEnd=!0;return}if(W.host.includes(".local"))try{if(!this.lookup)this.lookup=new hn;let G=await this.lookup.lookup(W.host);W.host=G}catch(G){return}try{kF(W)}catch(G){return}e1("addRemoteCandidate",W),this._remoteCandidates.push(W),this.pairRemoteCandidate(W),this.sortCheckList()}send=async(W)=>{let G=this.nominated;if(G)await G.protocol.sendData(W,G.remoteAddr),G.packetsSent++,G.bytesSent+=W.length;else return};getDefaultCandidate(){let W=this.localCandidates.sort((X,Y)=>X.priority-Y.priority),[G]=W;return G}set remoteCandidates(W){if(this.remoteCandidatesEnd)throw Error("Cannot set remote candidates after end-of-candidates.");this._remoteCandidates=[];for(let G of W){try{kF(G)}catch(X){continue}this._remoteCandidates.push(G)}this.remoteCandidatesEnd=!0}get remoteCandidates(){return this._remoteCandidates}get candidatePairs(){return this.checkList}sortCheckList(){pn(this.checkList,this.iceControlling)}findPair(W,G){return this.checkList.find((Y)=>bN.default(Y.protocol,W)&&bN.default(Y.remoteCandidate,G))}switchRole(W){e1("switch role",W),this.iceControlling=W,this.sortCheckList()}checkComplete(W){if(W.handle=void 0,W.state===3){if(W.nominated&&(W.remoteCandidate.generation!=null?W.remoteCandidate.generation===this.generation:!0)&&this.nominated==null){e1("nominated",W.toJSON()),this.nominated=W,this.nominating=!1;for(let G of this.checkList)if(G.component===W.component&&[1,0].includes(G.state))G.updateState(4)}if(this.nominated){if(!this.checkListDone)e1("ICE completed"),this.checkListState.put(new Promise((G)=>G(SF))),this.checkListDone=!0;return}e1("not completed",W.toJSON());for(let G of this.checkList)if(G.localCandidate.foundation===W.localCandidate.foundation&&G.state===0)G.updateState(1)}{let G=[3,4];if(this.checkList.find(({state:X})=>!G.includes(X)))return}if(!this.iceControlling){if(this.checkList.find(({state:X})=>X===3))return}if(!this.checkListDone)e1("ICE failed"),this.checkListState.put(new Promise((G)=>{G($N)}))}checkStart=(W)=>kO(async(G)=>{e1("check start",W.toJSON()),W.updateState(2);let X={},{remotePassword:Y,remoteUsername:Z,generation:V}=this,Q=W.localCandidate.ufrag??this.localUsername,J=this.iceControlling&&!this.remoteIsLite,U=this.buildRequest({nominate:J,localUsername:Q,remoteUsername:Z,iceControlling:this.iceControlling}),q=performance.now();try{let[N,A]=await W.protocol.request(U,W.remoteAddr,Buffer.from(Y,"utf8"),4),I=(performance.now()-q)/1000;W.rtt=I,W.totalRoundTripTime+=I,W.roundTripTimeMeasurements++,e1("response received",U.toJSON(),N.toJSON(),A,{localUsername:Q,remoteUsername:Z,remotePassword:Y,generation:V,rtt:I}),X.response=N,X.addr=A}catch(N){let A=N;if(e1("failure case",U.toJSON(),A.response?JSON.stringify(A.response.toJSON(),null,2):N,{localUsername:Q,remoteUsername:Z,remotePassword:Y,generation:V},W.remoteAddr),A.response?.getAttributeValue("ERROR-CODE")[0]===487){if(U.attributesKeys.includes("ICE-CONTROLLED"))this.switchRole(!0);else if(U.attributesKeys.includes("ICE-CONTROLLING"))this.switchRole(!1);await this.checkStart(W).awaitable,G();return}if(A.response?.getAttributeValue("ERROR-CODE")[0]===401){e1("retry 401",W.toJSON()),await this.checkStart(W).awaitable,G();return}else{e1("checkStart CandidatePairState.FAILED",W.toJSON()),W.updateState(4),this.checkComplete(W),G();return}}if(!bN.default(X.addr,W.remoteAddr)){W.updateState(4),this.checkComplete(W),G();return}if(J||W.remoteNominated)W.nominated=!0;else if(this.iceControlling&&!this.nominating){this.nominating=!0;let N=this.buildRequest({nominate:!0,localUsername:Q,remoteUsername:Z,iceControlling:this.iceControlling});try{await W.protocol.request(N,W.remoteAddr,Buffer.from(this.remotePassword,"utf8"))}catch(A){W.updateState(4),this.checkComplete(W);return}W.nominated=!0}W.updateState(3),this.checkComplete(W),G()});addPair(W){this.checkList.push(W),this.sortCheckList()}checkIncoming(W,G,X){let Y=W.getAttributeValue("USERNAME"),{remoteUsername:Z}=vF(Y),V,[Q,J]=G;for(let q of this.remoteCandidates)if(q.host===Q&&q.port===J){V=q;break}if(!V)V=new DG(yQ(10),1,"udp",W.getAttributeValue("PRIORITY"),Q,J,"prflx",void 0,void 0,void 0,void 0,void 0),this._remoteCandidates.push(V);let U=this.findPair(X,V);if(!U)U=new FF(X,V,this.iceControlling),U.updateState(1),this.addPair(U);if(U.localCandidate.ufrag=Z,e1("Triggered Checks",W.toJSON(),U.toJSON(),{localUsername:this.localUsername,remoteUsername:this.remoteUsername,localPassword:this.localPassword,remotePassword:this.remotePassword,generation:this.generation}),[1,4].includes(U.state))U.handle=this.checkStart(U);if(W.attributesKeys.includes("USE-CANDIDATE")&&!this.iceControlling){if(U.remoteNominated=!0,U.state===3)U.nominated=!0,this.checkComplete(U)}}tryPair(W,G){if(W.localCandidate?.canPairWith(G)&&!this.findPair(W,G)){let X=new FF(W,G,this.iceControlling);if(this.options.filterCandidatePair&&!this.options.filterCandidatePair(X))return;X.updateState(1),this.addPair(X)}}pairLocalProtocol(W){for(let G of this.remoteCandidates)this.tryPair(W,G)}pairRemoteCandidate=(W)=>{for(let G of this.protocols)this.tryPair(G,W)};buildRequest({nominate:W,remoteUsername:G,localUsername:X,iceControlling:Y}){let Z=an({remoteUsername:G,localUsername:X}),V=new m7(1,0);if(V.setAttribute("USERNAME",Z).setAttribute("PRIORITY",hN("prflx")),Y){if(V.setAttribute("ICE-CONTROLLING",this.tieBreaker),W)V.setAttribute("USE-CANDIDATE",null)}else V.setAttribute("ICE-CONTROLLED",this.tieBreaker);return V}respondError(W,G,X,Y){let Z=new m7(W.messageMethod,272,W.transactionId);Z.setAttribute("ERROR-CODE",Y).addMessageIntegrity(Buffer.from(this.localPassword,"utf8")).addFingerprint(),X.sendStun(Z,G).catch((V)=>{e1("sendStun error",V)})}},an=({remoteUsername:W,localUsername:G})=>{return`${W}:${G}`},vF=(W)=>{let[G,X]=W.split(":");return{remoteUsername:G,localUsername:X}};function gF(W){return W.map((G,X)=>[X,G])}function b4(W,G){let X=W.split(G);return[X[0],X.slice(1).join(G)]}var UK=class extends sn{addEventListener=(W,G)=>{this.addListener(W,G)};removeEventListener=(W,G)=>{this.removeListener(W,G)}},tn=T1("werift:packages/webrtc/src/dataChannel.ts");function en(W){return Buffer.isBuffer(W)?W.length:Buffer.byteLength(W)}var $S=class extends UK{constructor(W,G,X=!0){super();if(this.sctp=W,this.parameters=G,this.sendOpen=X,this.id=this.parameters.id,G.negotiated){if(this.id==null||this.id<0||this.id>65534)throw Error("ID must be in range 0-65534 if data channel is negotiated out-of-band");this.sctp.dataChannelAddNegotiated(this)}else if(X)this.sendOpen=!1,this.sctp.dataChannelOpen(this)}stateChange=new f0;stateChanged=new f0;onMessage=new f0;error=new f0;bufferedAmountLow=new f0;onopen;onclose;onclosing;onmessage;onerror;isCreatedByRemote=!1;id;readyState="connecting";bufferedAmount=0;_bufferedAmountLowThreshold=0;messagesSent=0;bytesSent=0;messagesReceived=0;bytesReceived=0;get ordered(){return this.parameters.ordered}get maxRetransmits(){return this.parameters.maxRetransmits}get maxPacketLifeTime(){return this.parameters.maxPacketLifeTime}get label(){return this.parameters.label}get protocol(){return this.parameters.protocol}get negotiated(){return this.parameters.negotiated}get bufferedAmountLowThreshold(){return this._bufferedAmountLowThreshold}set bufferedAmountLowThreshold(W){if(W<0||W>4294967295)throw Error("bufferedAmountLowThreshold must be in range 0 - 4294967295");this._bufferedAmountLowThreshold=W}setId(W){this.id=W}setReadyState(W){if(W!==this.readyState){switch(this.readyState=W,this.stateChange.execute(W),this.stateChanged.execute(W),W){case"open":if(this.onopen)this.onopen();this.emit("open");break;case"closed":if(this.onclose)this.onclose();this.emit("close");break;case"closing":if(this.onclosing)this.onclosing();break}tn("change state",W)}}addBufferedAmount(W){let G=this.bufferedAmount>this.bufferedAmountLowThreshold&&this.bufferedAmount+W<=this.bufferedAmountLowThreshold;if(this.bufferedAmount+=W,G)this.bufferedAmountLow.execute(),this.emit("bufferedamountlow")}send(W){let G=this.sctp.datachannelSend(this,W);this.messagesSent++,this.bytesSent+=G}close(){this.sctp.dataChannelClose(this)}},FS=class{label="";maxPacketLifeTime;maxRetransmits;ordered=!0;protocol="";negotiated=!1;id;constructor(W={}){Object.assign(this,W)}};var wH=()=>({type:"nack"}),JJ=()=>({type:"nack",parameter:"pli"}),jH=()=>({type:"goog-remb"}),Wi=()=>({type:"transport-cc"}),$G=class{payloadType;mimeType;clockRate;channels;rtcpFeedback=[];parameters;direction="all";constructor(W){Object.assign(this,W)}get name(){return this.mimeType.split("/")[1]}get contentType(){return this.mimeType.split("/")[0]}get str(){let W=`${this.name}/${this.clockRate}`;if(this.channels===2)W+="/2";return W}},Gi=class{id;uri;constructor(W){Object.assign(this,W)}};var Xi=class{type;parameter;constructor(W={}){Object.assign(this,W)}},Yi=class{ssrc;constructor(W={}){Object.assign(this,W)}},Zi=class{ssrc;payloadType;rtx;constructor(W){Object.assign(this,W)}},SS=class{rid;direction;constructor(W){Object.assign(this,W)}},Vi=(W={})=>new $G({mimeType:"video/h264",clockRate:90000,rtcpFeedback:[wH(),JJ(),jH()],parameters:"profile-level-id=42e01f;packetization-mode=1;level-asymmetry-allowed=1",...W}),xS=(W={})=>new $G({mimeType:"video/VP8",clockRate:90000,rtcpFeedback:[wH(),JJ(),jH()],...W}),Qi=(W={})=>new $G({mimeType:"video/VP9",clockRate:90000,rtcpFeedback:[wH(),JJ(),jH()],...W}),Ji=(W={})=>new $G({mimeType:"video/AV1X",clockRate:90000,rtcpFeedback:[wH(),JJ(),jH()],...W}),kS=(W={})=>new $G({mimeType:"audio/OPUS",clockRate:48000,channels:2,...W}),_S=(W={})=>new $G({mimeType:"audio/PCMU",clockRate:8000,channels:1,payloadType:0,...W}),yS=[Ji(),Qi(),xS(),Vi(),kS(),_S()].map((W)=>W.mimeType),oH0=yS.filter((W)=>W.toLowerCase().startsWith("video/")),nH0=yS.filter((W)=>W.toLowerCase().startsWith("audio/"));var uF=2,hF=3,Hi=0,SN=50,bF=51,mF=53,Ai=56,zi=57,Ii="0.0.0.0",fF=9,gO={auto:"actpass",client:"active",server:"passive"},cF=Object.keys(gO).reduce((W,G)=>{let X=gO[G];return W[X]=G,W},{}),wi=["apt","max-fr","max-fs","maxplaybackrate","minptime","stereo","useinbandfec"],vS=["cname","msid","mslabel","label"],pF={SRTP_AES128_CM_HMAC_SHA1_80:IH,SRTP_AEAD_AES_128_GCM:VJ},mN=["sendonly","sendrecv"],ji=["sendrecv","recvonly"],Oi=class extends Map{constructor(W){super();if(W)for(let G of W)this.set(G.id,G)}};function Z8(W,...G){let X=G.filter((Y)=>Y!==void 0);return`${W}_${X.join("_")}`}function FG(){return performance.now()}var Ki=class{constructor(W,G,X,Y,Z){if(this.kind=W,this.receiver=X,this.sender=Y,this._direction=Z,G)this.setDtlsTransport(G)}id=Ni().toString();onTrack=new f0;mid;mLineIndex;usedForSender=!1;_currentDirection;offerDirection;_codecs=[];set codecs(W){this._codecs=W}get codecs(){return this._codecs}headerExtensions=[];options={};stopping=!1;stopped=!1;get dtlsTransport(){return this.receiver.dtlsTransport}get direction(){return this._direction}setDirection(W){if(this._direction=W,mN.includes(this._currentDirection??""))this.usedForSender=!0}get currentDirection(){return this._currentDirection}setCurrentDirection(W){this._currentDirection=W}setDtlsTransport(W){this.receiver.setDtlsTransport(W),this.sender.setDtlsTransport(W)}get msid(){return`${this.sender.streamId} ${this.sender.trackId}`}addTrack(W){if(this.receiver.addTrack(W))this.onTrack.execute(W,this)}stop(){if(this.stopping)return;this.stopping=!0}getPayloadType(W){return this.codecs.find((G)=>G.mimeType.toLowerCase().includes(W.toLowerCase()))?.payloadType}getCodecStats(){let W=FG(),G=[];if(!this.dtlsTransport)return G;let X=Z8("transport",this.dtlsTransport.id);for(let Y of this.codecs){let Z={type:"codec",id:Z8("codec",Y.payloadType,X),timestamp:W,payloadType:Y.payloadType,transportId:X,mimeType:Y.mimeType,clockRate:Y.clockRate,channels:Y.channels,sdpFmtpLine:Y.parameters};G.push(Z)}return G}},Ci="inactive",gS="sendonly",uS="recvonly",hS="sendrecv",wO=[Ci,gS,uS,hS],uO=class extends UK{uuid=bS().toString();streamId;remote=!1;label;kind;id;ssrc;rid;header;codec;enabled=!0;onReceiveRtp=new f0;onReceiveRtcp=new f0;onSourceChanged=new f0;stopped=!1;muted=!0;constructor(W){super();Object.assign(this,W),this.onReceiveRtp.subscribe((G)=>{this.muted=!1,this.header=G.header}),this.label=`${this.remote?"remote":"local"} ${this.kind}`}stop=()=>{this.stopped=!0,this.muted=!0,this.onReceiveRtp.complete(),this.emit("ended")};writeRtp=(W)=>{if(this.remote)throw Error("this is remoteTrack");if(this.stopped)return;let G=Buffer.isBuffer(W)?t6.deSerialize(W):W;G.header.payloadType=this.codec?.payloadType??G.header.payloadType,this.onReceiveRtp.execute(G)}},Di=class{id;tracks=[];constructor(W){if(Array.isArray(W))this.tracks=W;else Object.assign(this,W);this.id??=bS().toString()}addTrack(W){W.streamId=this.id,this.tracks.push(W)}getTracks(){return this.tracks}getAudioTracks(){return this.tracks.filter((W)=>W.kind==="audio")}getVideoTracks(){return this.tracks.filter((W)=>W.kind==="video")}},Mi=T1("werift:packages/webrtc/src/utils.ts");function mS(W,G){let X=(V)=>V.toUpperCase(),Y=(V)=>V.match(/(.{2})/g).join(":"),Z=qi(G).update(W).digest("hex");return Y(X(Z))}var Ti={sha1:"sha1","sha-1":"sha1",sha224:"sha224","sha-224":"sha224",sha256:"sha256","sha-256":"sha256",sha384:"sha384","sha-384":"sha384",sha512:"sha512","sha-512":"sha512"};function fS(W){return Ti[W.trim().toLowerCase()]}function hO(W){return W.replace(/[^0-9a-f]/gi,"").toLowerCase()}function Pi(W){let G=W[0];return G>19&&G<64}var cS=(W,G)=>wO[wO.indexOf(W)&wO.indexOf(G)];function Ri(W){if(W==="sendonly")return"recvonly";if(W==="recvonly")return"sendonly";return W}var pS=Date.now,Li=BigInt(Date.now())*1000n-process.hrtime.bigint()/1000n,Bi=()=>{return Li+process.hrtime.bigint()/1000n},QH=()=>Date.now()/1000,Ei=()=>{let G=(FN.timeOrigin+FN.now()-Date.UTC(1900,0,1))/1000,[X,Y]=G.toString().split(".").map(Number);return E8([4,4],[X,Y]).readBigUInt64BE()},lS=(W)=>{let G=E8([8],[W]),[,X,Y]=r9(G,[2,2,2,2]);return E8([2,2],[X,Y]).readUInt32BE()};function $i(W){let G=(J)=>{if(!J)return;let[U,q]=J.split(":");return[U,Number.parseInt(q)]},X=G(W.find(({urls:J})=>J.includes("stun:"))?.urls.slice(5)),Y=G(W.find(({urls:J})=>J.includes("turn:"))?.urls.slice(5)),{credential:Z,username:V}=W.find(({urls:J})=>J.includes("turn:"))||{},Q={stunServer:X,turnServer:Y,turnUsername:V,turnPassword:Z};return Mi("iceOptions",Q),Q}var WA0=aN.createSelfSignedCertificateWithKey;var Fi=(W,G)=>{if(!W||typeof W!=="object")if(G!==null&&typeof G==="object")return G;else return W;if(!G||typeof G!=="object"){if(G==null)return W;return G}for(let X in G)if(Object.prototype.hasOwnProperty.call(G,X)){let Y=G[X];if(Y!=null)W[X]=Y}return W},Si=T1("werift:packages/webrtc/src/media/receiver/nack.ts"),lF=150,xi=class{constructor(W){this.receiver=W}newEstSeqNum=0;_lost={};nackLoop;onPacketLost=new f0;mediaSourceSsrc;retryCount=10;closed=!1;get lostSeqNumbers(){return Object.keys(this._lost).map(Number).sort()}getLost(W){return this._lost[W]}setLost(W,G){if(this._lost[W]=G,this.nackLoop||this.closed)return;this.nackLoop=setInterval(async()=>{try{if(await this.sendNack(),!Object.keys(this._lost).length)clearInterval(this.nackLoop),this.nackLoop=void 0}catch(X){Si("failed to send nack",X)}},5)}removeLost(W){delete this._lost[W]}addPacket(W){let{sequenceNumber:G,ssrc:X}=W.header;if(this.mediaSourceSsrc=X,this.newEstSeqNum===0){this.newEstSeqNum=G;return}if(this.getLost(G)){this.removeLost(G);return}if(G===M9(this.newEstSeqNum,1))this.newEstSeqNum=G;else if(G>M9(this.newEstSeqNum,1)){for(let Y=M9(this.newEstSeqNum,1);Y<G;Y=M9(Y,1))this.setLost(Y,1);this.newEstSeqNum=G,this.pruneLost()}}pruneLost(){if(this.lostSeqNumbers.length>lF)this._lost=Object.entries(this._lost).slice(-lF).reduce((W,[G,X])=>{return W[G]=X,W},{})}close(){this.closed=!0,clearInterval(this.nackLoop),this._lost={}}updateRetryCount(){this.lostSeqNumbers.forEach((W)=>{if(this._lost[W]++>this.retryCount)return this.removeLost(W),W})}sendNack=()=>new Promise((W,G)=>{if(this.lostSeqNumbers.length>0&&this.mediaSourceSsrc){let X=new YH({senderSsrc:this.receiver.rtcpSsrc,mediaSourceSsrc:this.mediaSourceSsrc,lost:this.lostSeqNumbers}),Y=new uY({feedback:X});this.receiver.dtlsTransport.sendRtcp([Y]).then(W).catch(G),this.updateRetryCount(),this.onPacketLost.execute(X)}})},_i=T1("werift:packages/webrtc/media/receiver/receiverTwcc"),yi=class{constructor(W,G,X){this.dtlsTransport=W,this.rtcpSsrc=G,this.mediaSourceSsrc=X,this.runTWCC()}extensionInfo={};twccRunning=!1;fbPktCount=0;lastTimestamp;handleTWCC(W){if(this.extensionInfo[W]={tsn:W,timestamp:Bi()},Object.keys(this.extensionInfo).length>10)this.sendTWCC()}async runTWCC(){while(this.twccRunning)this.sendTWCC(),await ki(100)}sendTWCC(){if(Object.keys(this.extensionInfo).length===0)return;let W=Object.values(this.extensionInfo).sort((N,A)=>N.tsn-A.tsn),G=W[0].tsn,X=W.slice(-1)[0].tsn,Y=[],Z=W[0].tsn,V=M9(X-G,1),Q,J,U=[];for(let N=G;N<=X;N++){let A=this.extensionInfo[N]?.timestamp;if(A){if(!this.lastTimestamp)this.lastTimestamp=A;if(!Q)Q=this.lastTimestamp;let H=A-this.lastTimestamp;this.lastTimestamp=A;let I=new yN({delta:Number(H)});if(I.parseDelta(),U.push(I),J!=null&&J.status!==I.type)Y.push(new lQ({packetStatus:J.status,runLength:N-J.minTSN})),J={minTSN:N,status:I.type};if(N===X)if(J!=null)Y.push(new lQ({packetStatus:J.status,runLength:N-J.minTSN+1}));else Y.push(new lQ({packetStatus:I.type,runLength:1}));if(J==null)J={minTSN:N,status:I.type}}}if(!Q)return;let q=new uY({feedback:new ZH({senderSsrc:this.rtcpSsrc,mediaSourceSsrc:this.mediaSourceSsrc,baseSequenceNumber:Z,packetStatusCount:V,referenceTime:Rd(Math.floor(Number(Q/1000n/64n))),fbPktCount:this.fbPktCount,recvDeltas:U,packetChunks:Y})});this.dtlsTransport.sendRtcp([q]).catch((N)=>{_i(N)}),this.extensionInfo={},this.fbPktCount=Pd(this.fbPktCount,1)}},vi=class{base_seq;max_seq;cycles=0;packets_received=0;clockRate;jitter_q4=0;last_arrival;last_timestamp;expected_prior=0;received_prior=0;constructor(W){this.clockRate=W}add(W,G=Date.now()/1000){let X=this.max_seq==null||M2(W.header.sequenceNumber,this.max_seq);if(this.packets_received++,this.base_seq==null)this.base_seq=W.header.sequenceNumber;if(X){let Y=pQ(G*this.clockRate);if(this.max_seq!=null&&W.header.sequenceNumber<this.max_seq)this.cycles+=65536;if(this.max_seq=W.header.sequenceNumber,W.header.timestamp!==this.last_timestamp&&this.packets_received>1){let Z=Math.abs(Y-(this.last_arrival??0)-(W.header.timestamp-(this.last_timestamp??0)));this.jitter_q4+=Z-(this.jitter_q4+8>>4)}this.last_arrival=Y,this.last_timestamp=W.header.timestamp}}get fraction_lost(){let W=this.packets_expected-this.expected_prior;this.expected_prior=this.packets_expected;let G=this.packets_received-this.received_prior;this.received_prior=this.packets_received;let X=W-G;if(W==0||X<=0)return 0;else return Math.floor((X<<8)/W)}get jitter(){return this.jitter_q4>>4}get packets_expected(){return this.cycles+(this.max_seq??0)-(this.base_seq??0)+1}get packets_lost(){let W=this.packets_expected-this.packets_received;return W<0?0:W}},a5=T1("werift:packages/webrtc/src/transport/dtls.ts"),dF=class W{constructor(G,X,Y,Z=[]){this.config=G,this.iceTransport=X,this.localCertificate=Y,this.srtpProfiles=Z,this.localCertificate??=W.localCertificate}id=hi().toString();state="new";role="auto";srtpStarted=!1;transportSequenceNumber=0;bytesSent=0;bytesReceived=0;packetsSent=0;packetsReceived=0;dataReceiver=()=>{};dtls;srtp;srtcp;onStateChange=new f0;onRtcp=new f0;onRtp=new f0;static localCertificate;static localCertificatePromise;remoteParameters;get localParameters(){return new mO(this.localCertificate?this.localCertificate.getFingerprints():[],this.role)}static async SetupCertificate(){if(this.localCertificate)return this.localCertificate;if(this.localCertificatePromise)return this.localCertificatePromise;return this.localCertificatePromise=(async()=>{let{certPem:G,keyPem:X,signatureHash:Y}=await aN.createSelfSignedCertificateWithKey({signature:p4.ecdsa_3,hash:rN.sha256_4},a6.secp256r1_23);return this.localCertificate=new dS(X,G,Y),this.localCertificate})(),this.localCertificatePromise}setRemoteParams(G){let X=mi([...this.remoteParameters?.fingerprints??[],...G.fingerprints]),Y=G.role==="auto"&&this.remoteParameters?.role?this.remoteParameters.role:G.role;this.remoteParameters=new mO(X,Y)}async start(){if(this.state!=="new")throw Error("state must be new");if(!this.remoteParameters||this.remoteParameters.fingerprints.length===0)throw Error("remote fingerprint not exist");if(this.role==="auto")if(this.iceTransport.role==="controlling")this.role="server";else this.role="client";this.setState("connecting"),await new Promise(async(G,X)=>{if(this.role==="server")this.dtls=new zn({cert:this.localCertificate?.certPem,key:this.localCertificate?.privateKey,signatureHash:this.localCertificate?.signatureHash,transport:oF(this.iceTransport.connection),srtpProfiles:this.srtpProfiles,extendedMasterSecret:!0,certificateRequest:!0});else this.dtls=new jF({cert:this.localCertificate?.certPem,key:this.localCertificate?.privateKey,signatureHash:this.localCertificate?.signatureHash,transport:oF(this.iceTransport.connection),srtpProfiles:this.srtpProfiles,extendedMasterSecret:!0});if(this.dtls.onData.subscribe((Y)=>{if(this.config.debug.inboundPacketLoss&&this.config.debug.inboundPacketLoss/100<Math.random())return;this.dataReceiver(Y)}),this.dtls.onClose.subscribe(()=>{if(this.state!=="failed")this.setState("closed")}),this.dtls.onConnect.once(G),this.dtls.onError.once((Y)=>{this.setState("failed"),a5("dtls failed",Y),X(Y)}),this.dtls instanceof jF)await bi(100),this.dtls.connect().catch((Y)=>{this.setState("failed"),a5("dtls connect failed",Y),X(Y)})});try{this.verifyRemoteCertificateFingerprint()}catch(G){throw this.setState("failed"),this.dtls?.close(),G}if(this.srtpProfiles.length>0)this.startSrtp();this.setState("connected"),a5("dtls connected")}verifyRemoteCertificateFingerprint(){if(!this.remoteParameters||this.remoteParameters.fingerprints.length===0)throw Error("remote fingerprint not exist");let G=this.dtls?.remoteCertificate;if(!G)throw Error("remote certificate not available");let X=this.remoteParameters.fingerprints.flatMap(({algorithm:J,value:U})=>{let q=fS(J);if(!q)return[];let N=hO(U);if(!N)throw Error("remote fingerprint value is empty");return[{normalizedAlgorithm:q,normalizedValue:N}]});if(X.length===0)throw Error("no supported remote fingerprint algorithms");let Y=ci(X),Z=X.filter(({normalizedAlgorithm:J})=>J===Y),V=Z.reduce((J,{normalizedAlgorithm:U})=>{if(!J.has(U))J.set(U,hO(mS(G,U)));return J},new Map);if(!Z.some(({normalizedAlgorithm:J,normalizedValue:U})=>V.get(J)===U))throw Error("remote certificate fingerprint mismatch")}updateSrtpSession(){if(!this.dtls)throw Error();let G=this.dtls.srtp.srtpProfile;if(!G)throw Error("need srtpProfile");a5("selected SRTP Profile",G);let{localKey:X,localSalt:Y,remoteKey:Z,remoteSalt:V}=this.dtls.extractSessionKeys(jo(G),Oo(G)),Q={keys:{localMasterKey:X,localMasterSalt:Y,remoteMasterKey:Z,remoteMasterSalt:V},profile:G};this.srtp=new Xn(Q),this.srtcp=new Wn(Q)}startSrtp(){if(this.srtpStarted)return;this.srtpStarted=!0,this.updateSrtpSession(),this.iceTransport.connection.onData.subscribe((G)=>{if(this.config.debug.inboundPacketLoss&&this.config.debug.inboundPacketLoss/100<Math.random())return;if(!Do(G))return;if(this.bytesReceived+=G.length,this.packetsReceived++,Fo(G)){let X;try{X=this.srtcp.decrypt(G)}catch(Z){if(Z instanceof bY){a5("dropping invalid SRTCP packet",Z);return}throw Z}let Y;try{Y=$o.deSerialize(X)}catch(Z){a5("dropping malformed SRTCP packet",Z);return}for(let Z of Y)try{this.onRtcp.execute(Z)}catch(V){a5("RTCP error",V)}}else{let X;try{X=this.srtp.decrypt(G)}catch(Z){if(Z instanceof bY){a5("dropping invalid SRTP packet",Z);return}throw Z}let Y;try{Y=t6.deSerialize(X)}catch(Z){a5("dropping malformed SRTP packet",Z);return}try{this.onRtp.execute(Y)}catch(Z){a5("RTP error",Z)}}})}sendData=async(G)=>{if(this.config.debug.outboundPacketLoss&&this.config.debug.outboundPacketLoss/100<Math.random())return;if(!this.dtls)throw Error("dtls not established");await this.dtls.send(G)};async sendRtp(G,X){try{let Y=this.srtp.encrypt(G,X);if(this.config.debug.outboundPacketLoss&&this.config.debug.outboundPacketLoss/100<Math.random())return Y.length;return this.bytesSent+=Y.length,this.packetsSent++,await this.iceTransport.connection.send(Y).catch(()=>{}),Y.length}catch(Y){return a5("failed to send",Y),0}}async sendRtcp(G){let X=Buffer.concat(G.map((Z)=>Z.serialize())),Y=this.srtcp.encrypt(X);if(this.config.debug.outboundPacketLoss&&this.config.debug.outboundPacketLoss/100<Math.random())return Y.length;this.bytesSent+=Y.length,this.packetsSent++,await this.iceTransport.connection.send(Y).catch(()=>{})}setState(G){if(G!=this.state)this.state=G,this.onStateChange.execute(G)}async stop(){this.setState("closed"),await this.iceTransport.stop()}async getStats(){let G=FG(),X=[],Z={type:"transport",id:Z8("transport",this.id),timestamp:G,bytesSent:this.bytesSent,bytesReceived:this.bytesReceived,packetsSent:this.packetsSent,packetsReceived:this.packetsReceived,dtlsState:this.state,iceState:this.iceTransport.state,selectedCandidatePairId:this.iceTransport.connection.nominated?Z8("candidate-pair",this.iceTransport.connection.nominated.localCandidate.foundation,this.iceTransport.connection.nominated.remoteCandidate.foundation):void 0,localCertificateId:this.localCertificate?Z8("certificate","local"):void 0,remoteCertificateId:this.remoteParameters?Z8("certificate","remote"):void 0,dtlsRole:this.role==="auto"?void 0:this.role};if(X.push(Z),this.localCertificate){let Q=this.localCertificate.getFingerprints();if(Q.length>0){let J={type:"certificate",id:Z8("certificate","local"),timestamp:G,fingerprint:Q[0].value,fingerprintAlgorithm:Q[0].algorithm,base64Certificate:Buffer.from(this.localCertificate.certPem).toString("base64")};X.push(J)}}if(this.remoteParameters&&this.remoteParameters.fingerprints.length>0){let Q={type:"certificate",id:Z8("certificate","remote"),timestamp:G,fingerprint:this.remoteParameters.fingerprints[0].value,fingerprintAlgorithm:this.remoteParameters.fingerprints[0].algorithm,base64Certificate:""};X.push(Q)}let V=await this.iceTransport.getStats();return X.push(...V),X}};var dS=class{constructor(W,G,X){this.certPem=G,this.signatureHash=X;let Y=sQ.Certificate.fromPEM(Buffer.from(G));this.publicKey=Y.publicKey.toPEM(),this.privateKey=sQ.PrivateKey.fromPEM(Buffer.from(W)).toPEM()}publicKey;privateKey;getFingerprints(){return[new bO("sha-256",mS(sQ.Certificate.fromPEM(Buffer.from(this.certPem)).raw,"sha256"))]}},bO=class{constructor(W,G){this.algorithm=W,this.value=G}},mO=class{constructor(W=[],G){this.fingerprints=W,this.role=G}},mi=(W)=>{let G=new Set;return W.filter(({algorithm:X,value:Y})=>{let Z=`${fS(X)??X.trim().toLowerCase()}:${hO(Y)}`;if(G.has(Z))return!1;return G.add(Z),!0})},fi=["sha512","sha384","sha256","sha224","sha1"],ci=(W)=>{return fi.find((G)=>W.some(({normalizedAlgorithm:X})=>X===G))??W[0].normalizedAlgorithm},pi=class{constructor(W){this.ice=W,W.onData.subscribe((G)=>{if(Pi(G)){if(this.onData)this.onData(G)}})}closed=!1;onData=()=>{};get address(){return{}}type="ice";send=(W)=>{return this.ice.send(W)};async close(){this.closed=!0,this.ice.close()}},oF=(W)=>new pi(W),nF=T1("werift:packages/webrtc/src/transport/ice.ts"),di=class{constructor(W){this.iceGather=W,this.connection=this.iceGather.connection,this.connection.stateChanged.subscribe((G)=>{this.setState(G)}),this.iceGather.onIceCandidate=(G)=>{this.onIceCandidate.execute(G)}}id=li().toString();connection;state="new";waitStart;renominating=!1;onStateChange=new f0;onIceCandidate=new f0;onNegotiationNeeded=new f0;get role(){if(this.connection.iceControlling)return"controlling";else return"controlled"}get gatheringState(){return this.iceGather.gatheringState}get localCandidates(){return this.iceGather.localCandidates}get localParameters(){return this.iceGather.localParameters}setState(W){if(W!==this.state)this.state=W,this.onStateChange.execute(W)}gather(){return this.iceGather.gather()}addRemoteCandidate=(W)=>{if(!this.connection.remoteCandidatesEnd)if(!W)return this.connection.addRemoteCandidate(void 0);else return this.connection.addRemoteCandidate(ni(W))};setRemoteParams(W,G=!1){if(G)this.renominating=!0;if(this.connection.remoteUsername&&this.connection.remotePassword&&(this.connection.remoteUsername!==W.usernameFragment||this.connection.remotePassword!==W.password))if(this.renominating)nF("renomination",W),this.connection.resetNominatedPair(),this.renominating=!1;else nF("restart",W),this.restart();this.connection.setRemoteParams(W)}restart(){this.connection.restart(),this.setState("new"),this.iceGather.gatheringState="new",this.waitStart=void 0,this.onNegotiationNeeded.execute()}async start(){if(this.state==="closed")throw Error("RTCIceTransport is closed");if(!this.connection.remotePassword||!this.connection.remoteUsername)throw Error("remoteParams missing");if(this.waitStart)await this.waitStart.asPromise();this.waitStart=new f0,this.setState("checking");try{await this.connection.connect()}catch(W){throw this.setState("failed"),W}this.waitStart.execute(),this.waitStart.complete(),this.waitStart=void 0}async stop(){if(this.state!=="closed")this.setState("closed"),await this.connection.close();this.onStateChange.complete(),this.onIceCandidate.complete(),this.onNegotiationNeeded.complete()}async getStats(){let W=FG(),G=[];for(let Y of this.localCandidates){let Z={type:"local-candidate",id:Z8("local-candidate",Y.foundation),timestamp:W,transportId:Z8("transport",this.id),address:Y.ip,port:Y.port,protocol:Y.protocol,candidateType:Y.type,priority:Y.priority,foundation:Y.foundation};G.push(Z)}for(let Y of this.connection.remoteCandidates){let Z=tQ(Y),V={type:"remote-candidate",id:Z8("remote-candidate",Z.foundation),timestamp:W,transportId:Z8("transport",this.id),address:Z.ip,port:Z.port,protocol:Z.protocol,candidateType:Z.type,priority:Z.priority,foundation:Z.foundation};G.push(V)}let X=this.connection?.candidatePairs?[...this.connection.candidatePairs.filter((Y)=>Y.nominated),...this.connection.candidatePairs.filter((Y)=>!Y.nominated)]:[];for(let Y of X){let Z={type:"candidate-pair",id:Z8("candidate-pair",Y.foundation),timestamp:W,transportId:Z8("transport",this.id),localCandidateId:Z8("local-candidate",Y.localCandidate.foundation),remoteCandidateId:Z8("remote-candidate",Y.remoteCandidate.foundation),state:Y.state,nominated:Y.nominated,packetsSent:Y.packetsSent,packetsReceived:Y.packetsReceived,bytesSent:Y.bytesSent,bytesReceived:Y.bytesReceived,currentRoundTripTime:Y.rtt};G.push(Z)}return G}};var oi=class{constructor(W={}){this.options=W,this.connection=new rn(!1,this.options),this.connection.onIceCandidate.subscribe((G)=>{this.onIceCandidate(tQ(G))})}onIceCandidate=()=>{};gatheringState="new";connection;onGatheringStateChange=new f0;async gather(){if(this.gatheringState==="new")this.setState("gathering"),await this.connection.gatherCandidates(),this.onIceCandidate(void 0),this.setState("complete")}get localCandidates(){return this.connection.localCandidates.map(tQ)}get localParameters(){return new nS({usernameFragment:this.connection.localUsername,password:this.connection.localPassword})}setState(W){if(W!==this.gatheringState)this.gatheringState=W,this.onGatheringStateChange.execute(W)}};function tQ(W){let G=new oS(W.component,W.foundation,W.host,W.port,W.priority,W.transport,W.type,W.generation,W.ufrag);return G.relatedAddress=W.relatedAddress,G.relatedPort=W.relatedPort,G.tcpType=W.tcptype,G}function ni(W){return new DG(W.foundation,W.component,W.protocol,W.priority,W.ip,W.port,W.type,W.relatedAddress,W.relatedPort,W.tcpType,W.generation,W.ufrag)}var ii=class{candidate;sdpMid;sdpMLineIndex;usernameFragment;constructor(W){Object.assign(this,W)}static fromSdp(W){let G=DG.fromSdp(W);return tQ(G).toJSON()}static isThis(W){if(typeof W?.candidate==="string")return!0}toJSON(){return{candidate:this.candidate,sdpMid:this.sdpMid,sdpMLineIndex:this.sdpMLineIndex,usernameFragment:this.usernameFragment}}},oS=class{constructor(W,G,X,Y,Z,V,Q,J,U){this.component=W,this.foundation=G,this.ip=X,this.port=Y,this.priority=Z,this.protocol=V,this.type=Q,this.generation=J,this.ufrag=U}relatedAddress;relatedPort;sdpMid;sdpMLineIndex;tcpType;toJSON(){return new ii({candidate:Yx(this),sdpMLineIndex:this.sdpMLineIndex,sdpMid:this.sdpMid,usernameFragment:this.ufrag})}static fromJSON(W){try{if(!W.candidate)throw Error("candidate is required");let G=Zx(W.candidate);return G.sdpMLineIndex=W.sdpMLineIndex??void 0,G.sdpMid=W.sdpMid??void 0,G}catch(G){}}},nS=class{iceLite=!1;usernameFragment;password;constructor(W={}){Object.assign(this,W)}},c7=class W{constructor(G=0,X=Buffer.from("")){this.flags=G,this._body=X}get body(){return this._body}set body(G){this._body=G}static type=-1;get type(){return W.type}get bytes(){if(!this.body)throw Error();let G=Buffer.alloc(4);return G.writeUInt8(this.type,0),G.writeUInt8(this.flags,1),G.writeUInt16BE(this.body.length+4,2),Buffer.concat([G,this.body,...[...Array(qJ(this.body.length))].map(()=>Buffer.from("\x00"))])}},qK=class extends c7{constructor(W=0,G){super(W,G);if(this.flags=W,G)this.initiateTag=G.readUInt32BE(0),this.advertisedRwnd=G.readUInt32BE(4),this.outboundStreams=G.readUInt16BE(8),this.inboundStreams=G.readUInt16BE(10),this.initialTsn=G.readUInt32BE(12),this.params=eS(G.slice(16));else this.initiateTag=0,this.advertisedRwnd=0,this.outboundStreams=0,this.inboundStreams=0,this.initialTsn=0,this.params=[]}initiateTag;advertisedRwnd;outboundStreams;inboundStreams;initialTsn;params;get body(){let W=Buffer.alloc(16);return W.writeUInt32BE(this.initiateTag,0),W.writeUInt32BE(this.advertisedRwnd,4),W.writeUInt16BE(this.outboundStreams,8),W.writeUInt16BE(this.inboundStreams,10),W.writeUInt32BE(this.initialTsn,12),Buffer.concat([W,tS(this.params)])}},fN=class W extends qK{static type=1;get type(){return W.type}},fO=class W extends qK{static type=2;get type(){return W.type}},si=class W extends qK{static type=130;get type(){return W.type}},cN=class W extends c7{constructor(G=0,X){super(G,X);if(this.flags=G,X){this.cumulativeTsn=X.readUInt32BE(0);let Y=4;while(Y<X.length)this.streams.push([X.readUInt16BE(Y),X.readUInt16BE(Y+2)]),Y+=4}else this.cumulativeTsn=0}static type=192;streams=[];cumulativeTsn;get type(){return W.type}set body(G){}get body(){let G=Buffer.alloc(4);return G.writeUInt32BE(this.cumulativeTsn,0),Buffer.concat([G,...this.streams.map(([X,Y])=>{let Z=Buffer.alloc(4);return Z.writeUInt16BE(X,0),Z.writeUInt16BE(Y,2),Z})])}},pN=class W extends c7{constructor(G=0,X){super(G,X);if(this.flags=G,X)this.tsn=X.readUInt32BE(0),this.streamId=X.readUInt16BE(4),this.streamSeqNum=X.readUInt16BE(6),this.protocol=X.readUInt32BE(8),this.userData=X.slice(12)}static type=0;get type(){return W.type}tsn=0;streamId=0;streamSeqNum=0;protocol=0;userData=Buffer.from("");abandoned=!1;acked=!1;misses=0;retransmit=!1;sentCount=0;bookSize=0;expiry;maxRetransmits;sentTime;get bytes(){let G=16+this.userData.length,X=Buffer.alloc(16);X.writeUInt8(this.type,0),X.writeUInt8(this.flags,1),X.writeUInt16BE(G,2),X.writeUInt32BE(this.tsn,4),X.writeUInt16BE(this.streamId,8),X.writeUInt16BE(this.streamSeqNum,10),X.writeUInt32BE(this.protocol,12);let Y=Buffer.concat([X,this.userData]);if(G%4)Y=Buffer.concat([Y,...[...Array(qJ(G))].map(()=>Buffer.from("\x00"))]);return Y}},cO=class W extends c7{static type=10;get type(){return W.type}},pO=class W extends c7{static type=11;get type(){return W.type}},UJ=class extends c7{constructor(W=0,G=void 0){super(W,G);if(this.flags=W,G)this.params=eS(G)}params=[];get body(){return tS(this.params)}},lO=class W extends UJ{static type=6;get type(){return W.type}},lN=class W extends UJ{static type=9;static CODE={InvalidStreamIdentifier:1,MissingMandatoryParameter:2,StaleCookieError:3,OutofResource:4,UnresolvableAddress:5,UnrecognizedChunkType:6,InvalidMandatoryParameter:7,UnrecognizedParameters:8,NoUserData:9,CookieReceivedWhileShuttingDown:10,RestartofanAssociationwithNewAddresses:11,UserInitiatedAbort:12,ProtocolViolation:13};get type(){return W.type}get descriptions(){return this.params.map(([G,X])=>{return{name:(Object.entries(W.CODE).find(([,Z])=>Z===G)||[])[0],body:X}})}},dO=class W extends UJ{static type=4;get type(){return W.type}},iS=class W extends UJ{static type=5;get type(){return W.type}},oO=class W extends UJ{static type=130;get type(){return W.type}},nO=class W extends c7{constructor(G=0,X){super(G,X);if(this.flags=G,X){this.cumulativeTsn=X.readUInt32BE(0),this.advertisedRwnd=X.readUInt32BE(4);let Y=X.readUInt16BE(8),Z=X.readUInt16BE(10),V=12;[...Array(Y)].forEach(()=>{this.gaps.push([X.readUInt16BE(V),X.readUInt16BE(V+2)]),V+=4}),[...Array(Z)].forEach(()=>{this.duplicates.push(X.readUInt32BE(V)),V+=4})}}static type=3;get type(){return W.type}gaps=[];duplicates=[];cumulativeTsn=0;advertisedRwnd=0;get bytes(){let G=16+4*(this.gaps.length+this.duplicates.length),X=Buffer.alloc(16);X.writeUInt8(this.type,0),X.writeUInt8(this.flags,1),X.writeUInt16BE(G,2),X.writeUInt32BE(this.cumulativeTsn,4),X.writeUInt32BE(this.advertisedRwnd,8),X.writeUInt16BE(this.gaps.length,12),X.writeUInt16BE(this.duplicates.length,14);let Y=Buffer.concat([X,...this.gaps.map((Z)=>{let V=Buffer.alloc(4);return V.writeUInt16BE(Z[0],0),V.writeUInt16BE(Z[1],2),V})]);return Y=Buffer.concat([Y,...this.duplicates.map((Z)=>{let V=Buffer.alloc(4);return V.writeUInt32BE(Z,0),V})]),Y}},rS=class W extends c7{constructor(G=0,X){super(G,X);if(this.flags=G,X)this.cumulativeTsn=X.readUInt32BE(0)}static type=7;get type(){return W.type}cumulativeTsn=0;get body(){let G=Buffer.alloc(4);return G.writeUInt32BE(this.cumulativeTsn,0),G}},aS=class W extends c7{static type=8;get type(){return W.type}},sS=class W extends c7{static type=14;get type(){return W.type}},ti=[pN,fN,fO,nO,dO,iS,lO,rS,aS,lN,cO,pO,sS,oO,cN],ei=ti.reduce((W,G)=>{return W[G.type]=G,W},{});function qJ(W){let G=W%4;return G?4-G:0}function tS(W){let G=Buffer.from(""),X=Buffer.from("");return W.forEach(([Y,Z])=>{let V=Z.length+4,Q=Buffer.alloc(4);Q.writeUInt16BE(Y,0),Q.writeUInt16BE(V,2),G=Buffer.concat([G,X,Q,Z]),X=Buffer.concat([...Array(qJ(V))].map(()=>Buffer.from("\x00")))}),G}function eS(W){let G=[],X=0;while(X<=W.length-4){let Y=W.readUInt16BE(X),Z=W.readUInt16BE(X+2);G.push([Y,W.slice(X+4,X+Z)]),X+=Z+qJ(Z)}return G}function Wr(W){if(W.length<12)throw Error("SCTP packet length is less than 12 bytes");let G=W.readUInt16BE(0),X=W.readUInt16BE(2),Y=W.readUInt32BE(4),Z=W.readUInt32LE(8),V=D2(Buffer.concat([W.slice(0,8),Buffer.from("\x00\x00\x00\x00"),W.slice(12)]));if(Z!==V)throw Error("SCTP packet has invalid checksum");let Q=[],J=12;while(J+4<=W.length){let U=W.readUInt8(J),q=W.readUInt8(J+1),N=W.readUInt16BE(J+2),A=W.slice(J+4,J+N),H=ei[U.toString()];if(H)Q.push(new H(q,A));else throw Error("unknown");J+=N+qJ(N)}return[G,X,Y,Q]}function Gr(W,G,X,Y){let Z=Buffer.alloc(8);Z.writeUInt16BE(W,0),Z.writeUInt16BE(G,2),Z.writeUInt32BE(X,4);let V=Y.bytes,Q=D2(Buffer.concat([Z,Buffer.from("\x00\x00\x00\x00"),V])),J=Buffer.alloc(4);return J.writeUInt32LE(Q,0),Buffer.concat([Z,J,V])}function Xr(W){return W.map((G,X)=>[X,G])}function Yr(W){return W.reduce((G,X)=>{return G[X]=new f0,G},{})}var iO=class W{constructor(G,X,Y,Z){this.requestSequence=G,this.responseSequence=X,this.lastTsn=Y,this.streams=Z}static type=13;get type(){return W.type}get bytes(){let G=Buffer.from(a1.Pack("!LLL",[this.requestSequence,this.responseSequence,this.lastTsn]));return Buffer.concat([G,...this.streams.map((X)=>Buffer.from(a1.Pack("!H",[X])))])}static parse(G){let[X,Y,Z]=a1.Unpack("!LLL",G),V=[];for(let Q=12;Q<G.length;Q+=2)V.push(a1.Unpack("!H",G.slice(Q))[0]);return new W(X,Y,Z,V)}},Wx=class W{constructor(G,X){this.requestSequence=G,this.newStreams=X}static type=17;get type(){return W.type}get bytes(){return Buffer.from(a1.Pack("!LHH",[this.requestSequence,this.newStreams,0]))}static parse(G){let[X,Y]=a1.Unpack("!LHH",G);return new W(X,Y)}},xN={ReconfigResultSuccessPerformed:1,BadSequenceNumber:5},dN=class W{constructor(G,X){this.responseSequence=G,this.result=X}static type=16;get type(){return W.type}get bytes(){return Buffer.from(a1.Pack("!LL",[this.responseSequence,this.result]))}static parse(G){let[X,Y]=a1.Unpack("!LL",G);return new W(X,Y)}},rF={13:iO,16:dN,17:Wx},r1=T1("werift/sctp/sctp"),Zr=24,Vr=60,aF=65535,s5=1200,mQ=1,Gx=2,rO=4,sF=10,Qr=8,tF=0.125,eF=0.25,W2=3,Jr=1,Ur=60,JH=4294967296,qr=200,Nr=30,G2=135,X2=7,Y2=32776,Z2=49152,Hr=["new","closed","connected","connecting"],Ar=class W{constructor(G,X=5000){this.transport=G,this.port=X,this.localPort=this.port,this.transport.onData=(Y)=>{this.handleData(Y)}}flush=new f0;stateChanged=Yr(Hr);onReconfigStreams=new f0;onReceive=new f0;onSackReceived=async()=>{};associationState=1;started=!1;state="new";isServer=!0;isStopping=!1;isClosed=!1;hmacKey=ai(16);localPartialReliability=!0;localPort;localVerificationTag=DO();remoteExtensions=[];remotePartialReliability=!0;remotePort;remoteVerificationTag=0;advertisedRwnd=1048576;peerAdvertisedRwnd=this.advertisedRwnd;get peerRwnd(){return Math.max(0,this.peerAdvertisedRwnd-this.flightSize)}inboundStreams={};_inboundStreamsCount=0;_inboundStreamsMax=aF;lastReceivedTsn;sackDuplicates=[];sackMisOrdered=new Set;sackNeeded=!1;sackPacketCount=0;sackHasNewDataInPacket=!1;sackImmediate=!1;sackTimeout;cwnd=3*s5;fastRecoveryExit;fastRecoveryTransmit=!1;forwardTsnChunk;flightSize=0;outboundQueue=[];outboundStreamSeq={};_outboundStreamsCount=aF;localTsn=Number(DO());lastSackedTsn=KG(this.localTsn);advancedPeerAckTsn=KG(this.localTsn);partialBytesAcked=0;sentQueue=[];transmitting=!1;transmitRequested=!1;reconfigRequestSeq=this.localTsn;reconfigResponseSeq=0;reconfigRequest;reconfigQueue=[];srtt;rttvar;rto=W2;timer1Handle;timer1Chunk;timer1Failures=0;timer2Handle;timer2Chunk;timer2Failures=0;timer3Handle;timerReconfigHandle;timerReconfigFailures=0;timerHeartbeatHandle;heartbeatInterval=Nr;ssthresh;get isStopped(){return this.isStopping||this.isClosed}get maxChannels(){if(this._inboundStreamsCount>0)return Math.min(this._inboundStreamsCount,this._outboundStreamsCount);return}static client(G,X=5000){let Y=new W(G,X);return Y.isServer=!1,Y}static server(G,X=5000){let Y=new W(G,X);return Y.isServer=!0,Y}async handleData(G){if(this.isStopped)return;let X,[,,Y,Z]=Wr(G);if(Z.filter((Q)=>Q.type===fN.type).length>0){if(Z.length!=1)throw Error();X=0}else X=this.localVerificationTag;if(Y!==X)return;this.sackHasNewDataInPacket=!1;for(let Q of Z)await this.receiveChunk(Q);if(this.sackNeeded){if(this.sackHasNewDataInPacket)this.sackPacketCount++;if(this.sackPacketCount>=2)this.sackImmediate=!0;await this.scheduleSack()}}async scheduleSack(){if(this.isStopped)return;if(!this.sackNeeded)return;if(this.sackImmediate){if(this.sackTimeout)clearTimeout(this.sackTimeout),this.sackTimeout=void 0;await this.sendSack();return}if(this.sackTimeout)return;this.sackTimeout=setTimeout(()=>{this.sackTimeout=void 0,this.sendSack().catch((G)=>{r1("send delayed sack failed",G.message)})},qr)}async sendSack(){if(this.isStopped)return;if(!this.sackNeeded)return;let G=[],X;[...this.sackMisOrdered].sort().forEach((Z)=>{let V=(Z-this.lastReceivedTsn)%JH;if(Z===X)G[G.length-1][1]=V;else G.push([V,V]);X=_Y(Z)});let Y=new nO(0,void 0);Y.cumulativeTsn=this.lastReceivedTsn,Y.advertisedRwnd=Math.max(0,this.advertisedRwnd),Y.duplicates=[...this.sackDuplicates],Y.gaps=G,await this.sendChunk(Y).catch((Z)=>{r1("send sack failed",Z.message)}),this.sackDuplicates=[],this.sackNeeded=!1,this.sackPacketCount=0,this.sackImmediate=!1}async receiveChunk(G){switch(G.type){case pN.type:this.receiveDataChunk(G);break;case fN.type:{if(!this.isServer)return;let X=G;r1("receive init",X),this.lastReceivedTsn=KG(X.initialTsn),this.reconfigResponseSeq=KG(X.initialTsn),this.remoteVerificationTag=X.initiateTag,this.ssthresh=X.advertisedRwnd,this.peerAdvertisedRwnd=X.advertisedRwnd,this.getExtensions(X.params),this._inboundStreamsCount=Math.min(X.outboundStreams,this._inboundStreamsMax),this._outboundStreamsCount=Math.min(this._outboundStreamsCount,X.inboundStreams);let Y=new fO;Y.initiateTag=this.localVerificationTag,Y.advertisedRwnd=this.advertisedRwnd,Y.outboundStreams=this._outboundStreamsCount,Y.inboundStreams=this._inboundStreamsCount,Y.initialTsn=this.localTsn,this.setExtensions(Y.params);let Z=Date.now()/1000,V=Buffer.from(a1.Pack("!L",[Z]));V=Buffer.concat([V,iF("sha1",this.hmacKey).update(V).digest()]),Y.params.push([X2,V]),r1("send initAck",Y),await this.sendChunk(Y).catch((Q)=>{r1("send initAck failed",Q.message)})}break;case fO.type:{if(this.associationState!=2)return;let X=G;this.timer1Cancel(),this.lastReceivedTsn=KG(X.initialTsn),this.reconfigResponseSeq=KG(X.initialTsn),this.remoteVerificationTag=X.initiateTag,this.ssthresh=X.advertisedRwnd,this.peerAdvertisedRwnd=X.advertisedRwnd,this.getExtensions(X.params),this._inboundStreamsCount=Math.min(X.outboundStreams,this._inboundStreamsMax),this._outboundStreamsCount=Math.min(this._outboundStreamsCount,X.inboundStreams);let Y=new cO;for(let[Z,V]of X.params)if(Z===X2){Y.body=V;break}await this.sendChunk(Y).catch((Z)=>{r1("send echo failed",Z.message)}),this.timer1Start(Y),this.setState(3)}break;case nO.type:await this.receiveSackChunk(G);break;case dO.type:{let X=new iS;X.params=G.params,await this.sendChunk(X).catch((Y)=>{r1("send heartbeat ack failed",Y.message)})}break;case lO.type:this.setState(1);break;case rS.type:{this.timer2Cancel(),this.setState(7);let X=new aS;await this.sendChunk(X).catch((Y)=>{r1("send shutdown ack failed",Y.message)}),this.t2Start(X),this.setState(6)}break;case lN.type:r1("ErrorChunk",G.descriptions);break;case cO.type:{if(!this.isServer)return;let Y=G.body,Z=iF("sha1",this.hmacKey).update(Y.slice(0,4)).digest();if(Y?.length!=Zr||!Y.slice(4).equals(Z)){r1("x State cookie is invalid");return}let V=Date.now()/1000,Q=a1.Unpack("!L",Y)[0];if(Q<V-Vr||Q>V){let U=new lN(0,void 0);U.params.push([lN.CODE.StaleCookieError,Buffer.concat([...Array(8)].map(()=>Buffer.from("\x00")))]),await this.sendChunk(U).catch((q)=>{r1("send errorChunk failed",q.message)});return}let J=new pO;await this.sendChunk(J).catch((U)=>{r1("send cookieAck failed",U.message)}),this.setState(4)}break;case pO.type:{if(this.associationState!=3)return;this.timer1Cancel(),this.setState(4)}break;case sS.type:{if(this.associationState!=8)return;this.timer2Cancel(),this.setState(1)}break;case oO.type:{if(this.associationState!=4)return;let X=G;for(let[Y,Z]of X.params){let V=rF[Y];if(V)await this.receiveReconfigParam(V.parse(Z))}}break;case cN.type:this.receiveForwardTsnChunk(G);break}}getExtensions(G){for(let[X,Y]of G)if(X===Z2)this.remotePartialReliability=!0;else if(X===Y2)this.remoteExtensions=[...Y]}async receiveReconfigParam(G){switch(r1("receiveReconfigParam",rF[G.type]),G.type){case iO.type:{let X=G,Y=new dN(X.requestSequence,xN.ReconfigResultSuccessPerformed);this.reconfigResponseSeq=X.requestSequence,await this.sendReconfigParam(Y),await Promise.all(X.streams.map(async(Z)=>{if(delete this.inboundStreams[Z],this.outboundStreamSeq[Z]){if(!this.reconfigQueue.includes(Z))this.reconfigQueue.push(Z)}})),await this.transmitReconfigRequest(),this.onReconfigStreams.execute(X.streams)}break;case dN.type:{let X=G;if(X.result!==xN.ReconfigResultSuccessPerformed)r1("OutgoingSSNResetRequestParam failed",Object.keys(xN).find((Y)=>xN[Y]===X.result));else if(X.responseSequence===this.reconfigRequest?.requestSequence){let Y=this.reconfigRequest.streams.map((Z)=>{return delete this.outboundStreamSeq[Z],Z});if(this.onReconfigStreams.execute(Y),this.reconfigRequest=void 0,this.timerReconfigCancel(),this.rto=W2,this.timerReconfigFailures=0,this.reconfigQueue.length>0)await this.transmitReconfigRequest()}}break;case Wx.type:{let X=G;this._inboundStreamsCount+=X.newStreams;let Y=new dN(X.requestSequence,1);this.reconfigResponseSeq=X.requestSequence,await this.sendReconfigParam(Y)}break}}receiveDataChunk(G){if(this.sackNeeded=!0,this.markReceived(G.tsn)){this.sackImmediate=!0;return}if(this.sackHasNewDataInPacket=!0,this.sackImmediate=!0,(G.flags&mQ)===0)this.sackImmediate=!0;if(this.sackMisOrdered.size>0)this.sackImmediate=!0;let X=this.getInboundStream(G.streamId);X.addChunk(G),this.advertisedRwnd-=G.userData.length;for(let Y of X.popMessages())this.advertisedRwnd+=Y[2].length,this.receive(...Y)}async receiveSackChunk(G){if(m4(this.lastSackedTsn,G.cumulativeTsn))return;let X=Date.now()/1000;this.lastSackedTsn=G.cumulativeTsn;let Y=this.flightSize>=this.cwnd,Z=0,V=0;while(this.sentQueue.length>0&&bQ(this.lastSackedTsn,this.sentQueue[0].tsn)){let J=this.sentQueue.shift();if(Z++,!J?.acked)V+=J.bookSize,this.flightSizeDecrease(J);if(Z===1&&J.sentCount===1)this.updateRto(X-J.sentTime)}if(!this.sentQueue.length)this.sentQueue=[];let Q=!1;if(G.gaps.length>0){let J=new Set,U;G.gaps.forEach((N)=>{for(let A=N[0];A<N[1]+1;A++)U=(G.cumulativeTsn+A)%JH,J.add(U)});let q=G.cumulativeTsn;for(let N of this.sentQueue){if(m4(N.tsn,U))break;if(J.has(N.tsn)&&!N.acked)V+=N.bookSize,N.acked=!0,this.flightSizeDecrease(N),q=N.tsn}for(let N of this.sentQueue){if(m4(N.tsn,q))break;if(!J.has(N.tsn)){if(N.misses++,N.misses===3){if(N.misses=0,!this.maybeAbandon(N))N.retransmit=!0;N.acked=!1,this.flightSizeDecrease(N),Q=!0}}}}if(this.fastRecoveryExit===void 0){if(Z&&Y){if(this.cwnd<=this.ssthresh)this.cwnd+=Math.min(V,s5);else if(this.partialBytesAcked+=V,this.partialBytesAcked>=this.cwnd)this.partialBytesAcked-=this.cwnd,this.cwnd+=s5}if(Q)this.ssthresh=Math.max(Math.floor(this.cwnd/2),4*s5),this.cwnd=this.ssthresh,this.partialBytesAcked=0,this.fastRecoveryExit=this.sentQueue[this.sentQueue.length-1].tsn,this.fastRecoveryTransmit=!0}else if(bQ(G.cumulativeTsn,this.fastRecoveryExit))this.fastRecoveryExit=void 0;if(this.sentQueue.length===0)this.timer3Cancel();else if(Z>0)this.timer3Restart();this.peerAdvertisedRwnd=G.advertisedRwnd,this.updateAdvancedPeerAckPoint(),await this.onSackReceived(),await this.transmit()}receiveForwardTsnChunk(G){if(this.sackNeeded=!0,this.sackImmediate=!0,bQ(this.lastReceivedTsn,G.cumulativeTsn))return;let X=(Y)=>m4(Y,this.lastReceivedTsn);this.lastReceivedTsn=G.cumulativeTsn,this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(X));for(let Y of[...this.sackMisOrdered].sort())if(Y===_Y(this.lastReceivedTsn))this.lastReceivedTsn=Y;else break;this.sackDuplicates=this.sackDuplicates.filter(X),this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(X));for(let[Y,Z]of G.streams){let V=this.getInboundStream(Y);V.streamSequenceNumber=M9(Z,1);for(let Q of V.popMessages())this.advertisedRwnd+=Q[2].length,this.receive(...Q)}Object.values(this.inboundStreams).forEach((Y)=>{this.advertisedRwnd+=Y.pruneChunks(this.lastReceivedTsn)})}updateRto(G){if(!this.srtt)this.rttvar=G/2,this.srtt=G;else this.rttvar=(1-eF)*this.rttvar+eF*Math.abs(this.srtt-G),this.srtt=(1-tF)*this.srtt+tF*G;this.rto=Math.max(Jr,Math.min(this.srtt+4*this.rttvar,Ur))}receive(G,X,Y){this.onReceive.execute(G,X,Y)}getInboundStream(G){if(!this.inboundStreams[G])this.inboundStreams[G]=new zr;return this.inboundStreams[G]}markReceived(G){if(bQ(this.lastReceivedTsn,G)||this.sackMisOrdered.has(G))return this.sackDuplicates.push(G),!0;this.sackMisOrdered.add(G);for(let Y of[...this.sackMisOrdered].sort())if(Y===_Y(this.lastReceivedTsn))this.lastReceivedTsn=Y;else break;let X=(Y)=>m4(Y,this.lastReceivedTsn);return this.sackDuplicates=this.sackDuplicates.filter(X),this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(X)),!1}send=async(G,X,Y,{expiry:Z,maxRetransmits:V,ordered:Q}={expiry:void 0,maxRetransmits:void 0,ordered:!0})=>{let J=Q?this.outboundStreamSeq[G]||0:0,U=Math.ceil(Y.length/s5),q=0,N=[];for(let A=0;A<U;A++){let H=new pN(0,void 0);if(H.flags=0,!Q)H.flags=rO;if(A===0)H.flags|=Gx;if(A===U-1)H.flags|=mQ;H.tsn=this.localTsn,H.streamId=G,H.streamSeqNum=J,H.protocol=X,H.userData=Y.slice(q,q+s5),H.bookSize=H.userData.length,H.expiry=Z,H.maxRetransmits=V,q+=s5,this.localTsn=_Y(this.localTsn),N.push(H)}if(N.forEach((A)=>{this.outboundQueue.push(A)}),Q)this.outboundStreamSeq[G]=M9(J,1);await this.transmit();while(this.outboundQueue.length)await this.flush.asPromise()};async transmit(){if(this.isStopped)return;if(this.transmitting){this.transmitRequested=!0;return}this.transmitting=!0;try{do this.transmitRequested=!1,await this.transmitOnce();while(this.transmitRequested)}finally{this.transmitting=!1}}async transmitOnce(){if(this.isStopped)return;if(this.forwardTsnChunk){if(await this.sendChunk(this.forwardTsnChunk).catch((Z)=>{r1("send forwardTsn failed",Z.message)}),this.forwardTsnChunk=void 0,!this.timer3Handle)this.timer3Start()}let G=this.fastRecoveryExit!=null?2*s5:4*s5,X=Math.min(this.flightSize+G,this.cwnd),Y=!0;for(let Z of this.sentQueue){if(Z.retransmit){if(this.fastRecoveryTransmit)this.fastRecoveryTransmit=!1;else if(this.flightSize>=X)break;if(this.flightSizeIncrease(Z),Z.misses=0,Z.retransmit=!1,Z.sentCount++,await this.sendChunk(Z).catch((V)=>{r1("send data failed",V.message)}),Y)this.timer3Restart()}Y=!1}while(this.outboundQueue.length>0&&this.flightSize<X&&this.peerRwnd>0){let Z=this.outboundQueue.shift();if(!Z)break;if(Z.bookSize>this.peerRwnd&&this.flightSize>0){this.outboundQueue.unshift(Z);break}if(this.sentQueue.push(Z),this.flightSizeIncrease(Z),Z.sentCount++,Z.sentTime=Date.now()/1000,await this.sendChunk(Z).catch((V)=>{r1("send data outboundQueue failed",V.message)}),!this.timer3Handle)this.timer3Start()}if(!this.outboundQueue.length)this.outboundQueue=[];this.flush.execute()}async transmitReconfigRequest(){if(this.reconfigQueue.length>0&&this.associationState===4&&!this.reconfigRequest){let G=[...new Set(this.reconfigQueue)],X=G.slice(0,G2);this.reconfigQueue=G.slice(G2);let Y=new iO(this.reconfigRequestSeq,this.reconfigResponseSeq,KG(this.localTsn),X);this.reconfigRequestSeq=_Y(this.reconfigRequestSeq),this.reconfigRequest=Y,await this.sendReconfigParam(Y),this.timerReconfigHandleStart()}}async sendReconfigParam(G){r1("sendReconfigParam",G);let X=new oO;X.params.push([G.type,G.bytes]),await this.sendChunk(X).catch((Y)=>{r1("send reconfig failed",Y.message)})}async sendResetRequest(G){r1("sendResetRequest",G);let X=new pN(0,void 0);if(X.streamId=G,this.outboundQueue.push(X),!this.timer3Handle)await this.transmit()}flightSizeIncrease(G){this.flightSize+=G.bookSize}flightSizeDecrease(G){this.flightSize=Math.max(0,this.flightSize-G.bookSize)}timer1Start(G){if(this.timer1Handle)throw Error();this.timer1Chunk=G,this.timer1Failures=0,this.timer1Handle=setTimeout(this.timer1Expired,this.rto*1000)}timer1Expired=()=>{if(this.isStopped)return;if(this.timer1Failures++,this.timer1Handle=void 0,this.timer1Failures>Qr)this.setState(1);else{if(setImmediate(()=>{if(this.isStopped)return;this.sendChunk(this.timer1Chunk).catch((G)=>{r1("send timer1 chunk failed",G.message)})}),this.isStopped)return;this.timer1Handle=setTimeout(this.timer1Expired,this.rto*1000)}};timer1Cancel(){if(this.timer1Handle)clearTimeout(this.timer1Handle),this.timer1Handle=void 0,this.timer1Chunk=void 0}t2Start(G){if(this.timer2Handle)throw Error();this.timer2Chunk=G,this.timer2Failures=0,this.timer2Handle=setTimeout(this.timer2Expired,this.rto*1000)}timer2Expired=()=>{if(this.isStopped)return;if(this.timer2Failures++,this.timer2Handle=void 0,this.timer2Failures>sF)this.setState(1);else{if(setImmediate(()=>{if(this.isStopped)return;this.sendChunk(this.timer2Chunk).catch((G)=>{r1("send timer2Chunk failed",G.message)})}),this.isStopped)return;this.timer2Handle=setTimeout(this.timer2Expired,this.rto*1000)}};timer2Cancel(){if(this.timer2Handle)clearTimeout(this.timer2Handle),this.timer2Handle=void 0,this.timer2Chunk=void 0}timer3Start(){if(this.isStopped)return;if(this.timer3Handle)throw Error();this.timer3Handle=setTimeout(this.timer3Expired,this.rto*1000)}timer3Restart(){if(this.isStopped)return;this.timer3Cancel(),this.timer3Handle=setTimeout(this.timer3Expired,this.rto*1000)}timer3Expired=()=>{if(this.isStopped)return;this.timer3Handle=void 0,this.sentQueue.forEach((G)=>{if(!this.maybeAbandon(G))G.retransmit=!0}),this.updateAdvancedPeerAckPoint(),this.fastRecoveryExit=void 0,this.flightSize=0,this.partialBytesAcked=0,this.ssthresh=Math.max(Math.floor(this.cwnd/2),4*s5),this.cwnd=s5,this.transmit()};timer3Cancel(){if(this.timer3Handle)clearTimeout(this.timer3Handle),this.timer3Handle=void 0}timerReconfigHandleStart(){if(this.isStopped)return;if(this.timerReconfigHandle)return;r1("timerReconfigHandleStart",{rto:this.rto}),this.timerReconfigFailures=0,this.timerReconfigHandle=setTimeout(this.timerReconfigHandleExpired,this.rto*1000)}timerReconfigHandleExpired=async()=>{if(this.isStopped)return;if(this.timerReconfigFailures++,this.rto=Math.ceil(this.rto*1.5),this.timerReconfigFailures>sF)r1("timerReconfigFailures",this.timerReconfigFailures),this.setState(1),this.timerReconfigHandle=void 0;else if(this.reconfigRequest){if(r1("timerReconfigHandleExpired",this.timerReconfigFailures,this.rto),await this.sendReconfigParam(this.reconfigRequest),this.isStopped)return;this.timerReconfigHandle=setTimeout(this.timerReconfigHandleExpired,this.rto*1000)}};timerReconfigCancel(){if(this.timerReconfigHandle)r1("timerReconfigCancel"),clearTimeout(this.timerReconfigHandle),this.timerReconfigHandle=void 0,this.timerReconfigFailures=0}heartbeatStart(){if(this.timerHeartbeatHandle||this.associationState!==4)return;this.timerHeartbeatHandle=setTimeout(this.timerHeartbeatExpired,(this.rto+this.heartbeatInterval)*1000)}heartbeatRestart(){this.heartbeatCancel(),this.heartbeatStart()}heartbeatCancel(){if(this.timerHeartbeatHandle)clearTimeout(this.timerHeartbeatHandle),this.timerHeartbeatHandle=void 0}timerHeartbeatExpired=async()=>{if(this.timerHeartbeatHandle=void 0,this.associationState!==4)return;if(this.flightSize===0&&this.outboundQueue.length===0){let G=new dO;G.params.push([1,Buffer.from(a1.Pack("!L",[Math.floor(Date.now()/1000)]))]),await this.sendChunk(G).catch((X)=>{r1("send heartbeat failed",X.message)})}this.heartbeatStart()};setHeartbeatInterval(G){if(G<=0)throw Error("heartbeat interval must be > 0");this.heartbeatInterval=G,this.heartbeatRestart()}updateAdvancedPeerAckPoint(){if(m4(this.lastSackedTsn,this.advancedPeerAckTsn))this.advancedPeerAckTsn=this.lastSackedTsn;let G=0,X={};while(this.sentQueue.length>0&&this.sentQueue[0].abandoned){let Y=this.sentQueue.shift();if(this.advancedPeerAckTsn=Y.tsn,G++,!(Y.flags&rO))X[Y.streamId]=Y.streamSeqNum}if(!this.sentQueue.length)this.sentQueue=[];if(G)this.forwardTsnChunk=new cN(0,void 0),this.forwardTsnChunk.cumulativeTsn=this.advancedPeerAckTsn,this.forwardTsnChunk.streams=Object.entries(X).map(([Y,Z])=>[Number(Y),Z])}maybeAbandon(G){if(G.abandoned)return!0;if(!(!!G.maxRetransmits&&G.maxRetransmits<G.sentCount||!!G.expiry&&G.expiry<Date.now()/1000))return!1;let Y=this.sentQueue.findIndex((Z)=>Z.type===G.type);for(let Z=Y;Z>=0;Z--){let V=this.sentQueue[Z];if(V.abandoned=!0,V.retransmit=!1,V.flags&mQ)break}for(let Z=Y;Z<this.sentQueue.length;Z++){let V=this.sentQueue[Z];if(V.abandoned=!0,V.retransmit=!1,V.flags&mQ)break}return!0}static getCapabilities(){return new Ir(65536)}setRemotePort(G){this.remotePort=G}async start(G){if(!this.started){if(this.started=!0,this.setConnectionState("connecting"),G)this.setRemotePort(G);if(!this.isServer)await this.init()}}async init(){let G=new fN;G.initiateTag=this.localVerificationTag,G.advertisedRwnd=this.advertisedRwnd,G.outboundStreams=this._outboundStreamsCount,G.inboundStreams=this._inboundStreamsMax,G.initialTsn=this.localTsn,this.setExtensions(G.params),r1("send init",G);try{await this.sendChunk(G),this.timer1Start(G),this.setState(2)}catch(X){r1("send init failed",X.message)}}setExtensions(G){let X=[];if(this.localPartialReliability)G.push([Z2,Buffer.from("")]),X.push(cN.type);X.push(si.type),G.push([Y2,Buffer.from(X)])}async sendChunk(G){if(this.state==="closed")return;if(this.remotePort===void 0)throw Error("invalid remote port");let X=Gr(this.localPort,this.remotePort,this.remoteVerificationTag,G);await this.transport.send(X)}setState(G){if(G!=this.associationState)this.associationState=G;if(G===4)this.isStopping=!1,this.isClosed=!1,this.setConnectionState("connected"),this.heartbeatStart();else if(G===1){if(this.isClosed=!0,this.timer1Cancel(),this.timer2Cancel(),this.timer3Cancel(),this.timerReconfigCancel(),this.heartbeatCancel(),this.sackTimeout)clearTimeout(this.sackTimeout),this.sackTimeout=void 0;this.setConnectionState("closed"),this.removeAllListeners()}}setConnectionState(G){this.state=G,r1("setConnectionState",G),this.stateChanged[G].execute()}async stop(){if(this.isStopped){this.setState(1);return}if(this.isStopping=!0,this.transport.onData=void 0,this.sackTimeout)clearTimeout(this.sackTimeout),this.sackTimeout=void 0;if(this.associationState!==1)await this.abort();this.setState(1),clearTimeout(this.timer1Handle),clearTimeout(this.timer2Handle),clearTimeout(this.timer3Handle),clearTimeout(this.timerReconfigHandle),clearTimeout(this.timerHeartbeatHandle),clearTimeout(this.sackTimeout)}async abort(){let G=new lO;await this.sendChunk(G).catch((X)=>{r1("send abort failed",X.message)})}removeAllListeners(){Object.values(this.stateChanged).forEach((G)=>G.allUnsubscribe())}},zr=class{reassembly=[];streamSequenceNumber=0;constructor(){}addChunk(W){if(this.reassembly.length===0||m4(W.tsn,this.reassembly[this.reassembly.length-1].tsn)){this.reassembly.push(W);return}for(let[G,X]of Xr(this.reassembly)){if(X.tsn===W.tsn)throw Error("duplicate chunk in reassembly");if(m4(X.tsn,W.tsn)){this.reassembly.splice(G,0,W);break}}}*popMessages(){let W=0,G,X,Y;while(W<this.reassembly.length){let Z=this.reassembly[W];if(G===void 0){if(Y=!(Z.flags&rO),!(Z.flags&Gx))if(Y)break;else{W++;continue}if(Y&&M2(Z.streamSeqNum,this.streamSequenceNumber))break;X=Z.tsn,G=W}else if(Z.tsn!==X)if(Y)break;else{G=void 0,W++;continue}if(Z.flags&mQ){let V=this.reassembly.slice(G,W+1).map((J)=>J.userData).reduce((J,U)=>{return J.push(U),J.push(Buffer.from("")),J},[]);V.pop();let Q=Buffer.concat(V);if(this.reassembly=[...this.reassembly.slice(0,G),...this.reassembly.slice(W+1)],Y&&Z.streamSeqNum===this.streamSequenceNumber)this.streamSequenceNumber=M9(this.streamSequenceNumber,1);W=G,yield[Z.streamId,Z.protocol,Q]}else W++;X=_Y(X)}}pruneChunks(W){let G=-1,X=0;for(let[Y,Z]of this.reassembly.entries())if(bQ(W,Z.tsn))G=Y,X+=Z.userData.length;else break;return this.reassembly=this.reassembly.slice(G+1),X}},Ir=class{constructor(W){this.maxMessageSize=W}};function KG(W){return(W-1)%JH}function _Y(W){return(W+1)%JH}var FY=T1("werift:packages/webrtc/src/transport/sctp.ts"),fQ=65536,wr=class W{constructor(G=5000,X=fQ){this.port=G,this.maxMessageSize=X}dtlsTransport;sctp;onDataChannel=new f0;id=ri().toString();mid;mLineIndex;bundled=!1;dataChannels={};remoteMaxMessageSize=fQ;dataChannelQueue=[];dataChannelId;eventDisposer=[];setDtlsTransport(G){if(this.dtlsTransport&&this.dtlsTransport.id===G.id)return;this.eventDisposer.forEach((X)=>X()),this.dtlsTransport=G,this.sctp=new Ar(new jr(this.dtlsTransport),this.port),this.eventDisposer=[...[this.sctp.onReceive.subscribe(this.datachannelReceive),this.sctp.onReconfigStreams.subscribe((X)=>{X.forEach((Y)=>{let Z=this.dataChannels[Y];if(!Z)return;Z.setReadyState("closing"),Z.setReadyState("closed"),delete this.dataChannels[Y]})}),this.sctp.stateChanged.connected.subscribe(()=>{Object.values(this.dataChannels).forEach((X)=>{if(X.negotiated&&X.readyState!=="open")X.setReadyState("open")}),this.dataChannelFlush()}),this.sctp.stateChanged.closed.subscribe(()=>{Object.values(this.dataChannels).forEach((X)=>{X.setReadyState("closed")}),this.dataChannels={}}),this.dtlsTransport.onStateChange.subscribe((X)=>{if(X==="closed")this.sctp.setState(1)})].map((X)=>X.unSubscribe),()=>this.sctp.onSackReceived=async()=>{}],this.sctp.onSackReceived=async()=>{await this.dataChannelFlush()}}get isServer(){return this.dtlsTransport.iceTransport.role!=="controlling"}channelByLabel(G){return Object.values(this.dataChannels).find((X)=>X.label===G)}datachannelReceive=async(G,X,Y)=>{if(X===SN&&Y.length>0)switch(FY("DCEP",G,X,Y),Y[0]){case hF:{if(Y.length<12){FY("DATA_CHANNEL_OPEN data.length not enough");return}if(!Object.keys(this.dataChannels).includes(G.toString())){let[,V,,Q,J,U]=a1.Unpack("!BBHLHH",Y),q=12,N=Y.slice(q,q+J).toString("utf8");q+=J;let A=Y.slice(q,q+U).toString("utf8");FY("DATA_CHANNEL_OPEN",{channelType:V,reliability:Q,streamId:G,label:N,protocol:A});let H=(V&3)===1?Q:void 0,I=(V&3)===2?Q:void 0,w=new FS({label:N,ordered:(V&128)===0,maxPacketLifeTime:I,maxRetransmits:H,protocol:A,id:G}),C=new $S(this,w,!1);C.isCreatedByRemote=!0,this.dataChannels[G]=C,this.onDataChannel.execute(C),C.setReadyState("open")}else FY("datachannel already opened","retransmit ack");let Z=this.dataChannels[G];this.dataChannelQueue.push([Z,SN,Buffer.from(a1.Pack("!B",[uF]))]),await this.dataChannelFlush()}break;case uF:{FY("DATA_CHANNEL_ACK",G,X);let Z=this.dataChannels[G];if(!Z)throw Error("channel not found");Z.setReadyState("open")}break}else{let Z=this.dataChannels[G];if(Z){let V=(()=>{switch(X){case bF:return Y.toString("utf8");case Ai:return"";case mF:return Y;case zi:return Buffer.from([]);default:throw Error()}})();if(Z.messagesReceived++,Z.bytesReceived+=Y.length,Z.onMessage.execute(V),Z.emit("message",{data:V}),Z.onmessage)Z.onmessage({data:V})}}};dataChannelAddNegotiated(G){if(G.id==null)throw Error();if(this.dataChannels[G.id])throw Error();if(this.dataChannels[G.id]=G,this.sctp.associationState===4)G.setReadyState("open")}dataChannelOpen(G){if(G.id){if(this.dataChannels[G.id])throw Error(`Data channel with ID ${G.id} already registered`);this.dataChannels[G.id]=G}let X=Hi,Y=0,Z=0;if(!G.ordered)X=128;if(G.maxRetransmits)X=1,Z=G.maxRetransmits;else if(G.maxPacketLifeTime)X=2,Z=G.maxPacketLifeTime;let V=a1.Pack("!BBHLHH",[hF,X,Y,Z,G.label.length,G.protocol.length]),Q=Buffer.concat([Buffer.from(V),Buffer.from(G.label,"utf8"),Buffer.from(G.protocol,"utf8")]);this.dataChannelQueue.push([G,SN,Q]),this.dataChannelFlush()}async dataChannelFlush(){if(this.sctp.associationState!=4)return;while(this.dataChannelQueue.length>0){let[G,X,Y]=this.dataChannelQueue.shift(),Z=G.id;if(Z===void 0){Z=this.dataChannelId;while(Object.keys(this.dataChannels).includes(Z.toString()))Z+=2;this.dataChannels[Z]=G,G.setId(Z)}if(X===SN)await this.sctp.send(Z,X,Y,{ordered:!0});else{let V=G.maxPacketLifeTime?Date.now()+G.maxPacketLifeTime/1000:void 0;await this.sctp.send(Z,X,Y,{expiry:V,maxRetransmits:G.maxRetransmits,ordered:G.ordered}),G.addBufferedAmount(-Y.length)}}this.dataChannelQueue=[]}assertSendableMessageSize(G){if(this.remoteMaxMessageSize!==0&&G>this.remoteMaxMessageSize)throw Error(`max-message-size exceeded: ${G} > ${this.remoteMaxMessageSize}`)}datachannelSend=(G,X)=>{let Y=Buffer.isBuffer(X)?X:Buffer.from(X),Z=en(X);if(this.assertSendableMessageSize(Z),G.addBufferedAmount(Z),this.dataChannelQueue.push(typeof X==="string"?[G,bF,Y]:[G,mF,Y]),this.sctp.associationState!==4)FY("sctp not established",this.sctp.associationState);return this.dataChannelFlush(),Z};getCapabilities(){return W.getCapabilities(this.maxMessageSize)}static getCapabilities(G=fQ){return new Xx(G)}setRemoteMaxMessageSize(G){this.remoteMaxMessageSize=G??fQ}setRemotePort(G){this.sctp.setRemotePort(G)}async start(G){if(this.isServer)this.dataChannelId=0;else this.dataChannelId=1;this.sctp.isServer=this.isServer,await this.sctp.start(G)}async stop(){this.dtlsTransport.dataReceiver=()=>{},await this.sctp.stop()}dataChannelClose(G){if(!["closing","closed"].includes(G.readyState))if(G.setReadyState("closing"),this.sctp.associationState===4){if(!this.sctp.reconfigQueue.includes(G.id))this.sctp.reconfigQueue.push(G.id);if(this.sctp.reconfigQueue.length===1)this.sctp.transmitReconfigRequest()}else{if(this.dataChannelQueue=this.dataChannelQueue.filter((X)=>X[0].id!==G.id),this.sctp.reconfigQueue=this.sctp.reconfigQueue.filter((X)=>X!==G.id),G.id)delete this.dataChannels[G.id];G.setReadyState("closed")}}},Xx=class{constructor(W){this.maxMessageSize=W}},jr=class{constructor(W){this.dtls=W}set onData(W){this.dtls.dataReceiver=W}send=(W)=>{return this.dtls.sendData(W)};close(){}},oN=class W{version=0;origin;name="-";time="0 0";host;group=[];extMapAllowMixed=!0;msidSemantic=[];media=[];type;dtlsRole;iceOptions;iceLite;icePassword;iceUsernameFragment;dtlsFingerprints=[];static parse(G){let[X,Y]=Or(G),Z=new W;X.forEach((Q)=>{if(Q.startsWith("v="))Z.version=Number.parseInt(Q.slice(2),10);else if(Q.startsWith("o="))Z.origin=Q.slice(2);else if(Q.startsWith("s="))Z.name=Q.slice(2);else if(Q.startsWith("c="))Z.host=jO(Q.slice(2));else if(Q.startsWith("t="))Z.time=Q.slice(2);else if(Q.startsWith("a=")){let[J,U]=OO(Q);switch(J){case"fingerprint":{let[q,N]=U?.split(" ")||[];Z.dtlsFingerprints.push(new bO(q,N))}break;case"ice-lite":Z.iceLite=!0;break;case"ice-options":Z.iceOptions=U;break;case"ice-pwd":Z.icePassword=U;break;case"ice-ufrag":Z.iceUsernameFragment=U;break;case"group":KO(Z.group,U);break;case"msid-semantic":KO(Z.msidSemantic,U);break;case"setup":Z.dtlsRole=cF[U];break;case"extmap-allow-mixed":Z.extMapAllowMixed=!0;break}}});let V=Z.group.find((Q)=>Q.semantic==="BUNDLE");return Y.forEach((Q)=>{let U=Q[0].match(/^m=([^ ]+) ([0-9]+) ([A-Z/]+) (.+)/);if(!U)throw Error("m line not found");let q=U[1],N=U[4].split(" "),A=["audio","video"].includes(q)?N.map((w)=>Number(w)):void 0,H=new aO(q,Number.parseInt(U[2]),U[3],A||N);if(H.dtlsParams=new mO([...Z.dtlsFingerprints],Z.dtlsRole),H.iceParams=new nS({iceLite:Z.iceLite,usernameFragment:Z.iceUsernameFragment,password:Z.icePassword}),H.iceOptions=Z.iceOptions,Z.media.push(H),Q.slice(1).forEach((w)=>{if(w.startsWith("c="))H.host=jO(w.slice(2));else if(w.startsWith("a=")){let[C,D]=OO(w);switch(C){case"candidate":if(!D)throw Error();H.iceCandidates.push(Zx(D));break;case"end-of-candidates":H.iceCandidatesComplete=!0;break;case"extmap":{let[x,h]=D.split(" ");if(x.includes("/"))[x]=x.split("/");H.rtp.headerExtensions.push(new Gi({id:Number.parseInt(x),uri:h}))}break;case"fingerprint":{if(!D)throw Error();let[x,h]=D.split(" ");H.dtlsParams?.fingerprints.push(new bO(x,h))}break;case"ice-options":H.iceOptions=D;break;case"ice-pwd":H.iceParams.password=D;break;case"ice-ufrag":H.iceParams.usernameFragment=D;break;case"ice-lite":H.iceParams.iceLite=!0;break;case"max-message-size":H.sctpCapabilities=new Xx(Number.parseInt(D,10));break;case"mid":H.rtp.muxId=D;break;case"msid":H.msid=D;break;case"rtcp":{let[x,h]=b4(D," ");H.rtcpPort=Number.parseInt(x),H.rtcpHost=jO(h)}break;case"rtcp-mux":H.rtcpMux=!0;break;case"setup":H.dtlsParams.role=cF[D];break;case"recvonly":case"sendonly":case"sendrecv":case"inactive":H.direction=C;break;case"rtpmap":{let[x,h]=b4(D," "),[l,u,n]=h.split("/"),c;if(H.kind==="audio")c=n?Number.parseInt(n):1;let p=new $G({mimeType:H.kind+"/"+l,channels:c,clockRate:Number.parseInt(u),payloadType:Number.parseInt(x)});H.rtp.codecs.push(p)}break;case"sctpmap":{if(!D)throw Error();let[x,h]=b4(D," ");H.sctpMap[Number.parseInt(x)]=h,H.sctpPort=Number.parseInt(x)}break;case"sctp-port":if(!D)throw Error();H.sctpPort=Number.parseInt(D);break;case"ssrc":{let[x,h]=b4(D," "),l=Number.parseInt(x),[u,n]=b4(h,":"),c=H.ssrc.find((p)=>p.ssrc===l);if(!c)c=new tO({ssrc:l}),H.ssrc.push(c);if(vS.includes(u))c[u]=n}break;case"ssrc-group":KO(H.ssrcGroup,D);break;case"rid":{let[x,h]=b4(D," ");H.simulcastParameters.push(new SS({rid:x,direction:h}))}break}}}),!H.iceParams.usernameFragment||!H.iceParams.password){if(H.rtp.muxId&&V&&V.items.includes(H.rtp.muxId))for(let w=0;w<V.items.length;w++){if(!V.items.includes(w.toString()))continue;let C=Z.media[w];if(C.iceParams?.usernameFragment&&C.iceParams.password){H.iceParams={...C.iceParams};break}}}if(!H.dtlsParams.role)H.dtlsParams=void 0;let I=(w)=>H.rtp.codecs.find((C)=>C.payloadType===w);Q.slice(1).forEach((w)=>{if(w.startsWith("a=")){let[C,D]=OO(w);if(C==="fmtp"){let[x,h]=b4(D," "),l=I(Number(x));l.parameters=h}else if(C==="rtcp-fb"){let[x,h,l]=D.split(" ");H.rtp.codecs.forEach((u)=>{if(["*",u.payloadType.toString()].includes(x))u.rtcpFeedback.push(new Xi({type:h,parameter:l}))})}}})}),Z}webrtcTrackId(G){if(G.msid?.includes(" ")){let X=G.msid.split(" ");for(let Y of this.msidSemantic)if(Y.semantic==="WMS"&&(Y.items.includes(X[0])||Y.items.includes("*")))return X[1]}return}get string(){let G=[`v=${this.version}`,`o=${this.origin}`,`s=${this.name}`];if(this.host)G.push(`c=${sO(this.host)}`);if(G.push(`t=${this.time}`),this.group.forEach((Z)=>G.push(`a=group:${Z.str}`)),this.extMapAllowMixed)G.push("a=extmap-allow-mixed");this.msidSemantic.forEach((Z)=>G.push(`a=msid-semantic:${Z.str}`));let X=this.media.map((Z)=>Z.toString()).join("");return G.join(`\r
|
|
243
243
|
`)+`\r
|
|
244
244
|
`+X}toJSON(){return new Kr(this.string,this.type)}toSdp(){return{type:this.type,sdp:this.string}}},aO=class{constructor(W,G,X,Y){this.kind=W,this.port=G,this.profile=X,this.fmt=Y}host;direction;msid;rtcpPort;rtcpHost;rtcpMux=!1;ssrc=[];ssrcGroup=[];rtp={codecs:[],headerExtensions:[]};sctpCapabilities;sctpMap={};sctpPort;dtlsParams;iceParams;iceCandidates=[];iceCandidatesComplete=!1;iceOptions;simulcastParameters=[];toString(){let W=[];if(W.push(`m=${this.kind} ${this.port} ${this.profile} ${this.fmt.map((G)=>G.toString()).join(" ")}`),this.host)W.push(`c=${sO(this.host)}`);if(this.iceCandidates.forEach((G)=>{W.push(`a=candidate:${Yx(G)}`)}),this.iceCandidatesComplete)W.push("a=end-of-candidates");if(this.iceParams?.usernameFragment)W.push(`a=ice-ufrag:${this.iceParams.usernameFragment}`);if(this.iceParams?.password)W.push(`a=ice-pwd:${this.iceParams.password}`);if(this.iceParams?.iceLite)W.push("a=ice-lite");if(this.iceOptions)W.push(`a=ice-options:${this.iceOptions}`);if(this.dtlsParams)this.dtlsParams.fingerprints.forEach((G)=>{W.push(`a=fingerprint:${G.algorithm} ${G.value}`)}),W.push(`a=setup:${gO[this.dtlsParams.role]}`);if(this.direction)W.push(`a=${this.direction}`);if(this.rtp.muxId)W.push(`a=mid:${this.rtp.muxId}`);if(this.msid)W.push(`a=msid:${this.msid}`);if(this.rtcpPort&&this.rtcpHost){if(W.push(`a=rtcp:${this.rtcpPort} ${sO(this.rtcpHost)}`),this.rtcpMux)W.push("a=rtcp-mux")}if(this.ssrcGroup.forEach((G)=>{W.push(`a=ssrc-group:${G.str}`)}),this.ssrc.forEach((G)=>{vS.forEach((X)=>{let Y=G[X];if(Y!==void 0)W.push(`a=ssrc:${G.ssrc} ${X}:${Y}`)})}),this.rtp.codecs.forEach((G)=>{if(W.push(`a=rtpmap:${G.payloadType} ${G.str}`),G.rtcpFeedback.forEach((X)=>{let Y=X.type;if(X.parameter)Y+=` ${X.parameter}`;W.push(`a=rtcp-fb:${G.payloadType} ${Y}`)}),G.parameters)W.push(`a=fmtp:${G.payloadType} ${G.parameters}`)}),Object.keys(this.sctpMap).forEach((G)=>{let X=this.sctpMap[Number(G)];W.push(`a=sctpmap:${G} ${X}`)}),this.sctpPort)W.push(`a=sctp-port:${this.sctpPort}`);if(this.sctpCapabilities)W.push(`a=max-message-size:${this.sctpCapabilities.maxMessageSize}`);if(this.rtp.headerExtensions.forEach((G)=>W.push(`a=extmap:${G.id} ${G.uri}`)),this.simulcastParameters.length){this.simulcastParameters.forEach((Z)=>{W.push(`a=rid:${Z.rid} ${Z.direction}`)});let G="a=simulcast:",X=this.simulcastParameters.filter((Z)=>Z.direction==="recv");if(X.length)G+=`recv ${X.map((Z)=>Z.rid).join(";")} `;let Y=this.simulcastParameters.filter((Z)=>Z.direction==="send");if(Y.length)G+=`send ${Y.map((Z)=>Z.rid).join(";")}`;W.push(G)}return W.join(`\r
|
|
245
245
|
`)+`\r
|
|
246
246
|
`}},dQ=class{constructor(W,G){this.semantic=W,this.items=G}get str(){return`${this.semantic} ${this.items.join(" ")}`}};function jO(W){let G=W.match(/^IN (IP4|IP6) ([^ ]+)$/);if(!G)throw Error("exception");return G[2]}function sO(W){return`IN IP${ui(W)?4:6} ${W}`}function Yx(W){let G=`${W.foundation} ${W.component} ${W.protocol} ${W.priority} ${W.ip} ${W.port} typ ${W.type}`;if(W.relatedAddress!=null)G+=` raddr ${W.relatedAddress}`;if(W.relatedPort!=null)G+=` rport ${W.relatedPort}`;if(W.tcpType!=null)G+=` tcptype ${W.tcpType}`;if(W.generation!=null)G+=` generation ${W.generation}`;if(W.ufrag!=null)G+=` ufrag ${W.ufrag}`;return G}function Or(W){let G=[],X=[],Y=W.split(`\r
|
|
247
247
|
`);if(Y.length===1)Y=W.split(`
|
|
248
|
-
`);return Y.forEach((Z)=>{if(Z.startsWith("m="))X.push([Z]);else if(X.length>0)X[X.length-1].push(Z);else G.push(Z)}),[G,X]}function OO(W){if(W.includes(":")){let G=b4(W.slice(2),":");return[G[0],G[1]]}else return[W.slice(2),void 0]}function KO(W,G,X=(Y)=>Y.toString()){let Y=G.split(" ");if(Y.length>0)W.push(new dQ(Y[0],Y.slice(1).map(X)))}function Zx(W){let G=DG.fromSdp(W);return tQ(G)}var Kr=class{constructor(W,G){this.sdp=W,this.type=G}static isThis(W){if(typeof W?.sdp==="string")return!0}toSdp(){return{sdp:this.sdp,type:this.type}}};function V2(W,G){let Y=new RN(gi(64)).toString().slice(0,8),Z=0;G.origin=`- ${Y} 0 IN IP4 0.0.0.0`,G.msidSemantic.push(new dQ("WMS",["*"])),G.type=W}function UH(W){let G={};return W.split(";").forEach((X)=>{if(X.includes("=")){let[Y,Z]=b4(X,"=");if(wi.includes(Y))G[Y]=Number(Z);else G[Y]=Z}else if(X.includes(":")){let[Y,Z]=X.split(":");G[Y]=Number.isNaN(Number(Z))?Z:Number(Z)}else G[X]=void 0}),G}var tO=class{ssrc;cname;msid;msLabel;label;constructor(W){Object.assign(this,W)}},kN=M1("werift:packages/webrtc/src/media/rtpReceiver.ts"),Vx=class{constructor(W,G,X){this.config=W,this.kind=G,this.rtcpSsrc=X}codecs={};get codecArray(){return Object.values(this.codecs).sort((W,G)=>W.payloadType-G.payloadType)}ssrcByRtx={};nack=new xi(this);audioRedHandler=new lo;type="receiver";uuid=Ui().toString();tracks=[];trackBySSRC={};trackByRID={};lastSRtimestamp={};receiveLastSRTimestamp={};onPacketLost=this.nack.onPacketLost;onRtcp=new f0;dtlsTransport;sdesMid;latestRid;latestRepairedRid;receiverTWCC;stopped=!1;remoteStreamId;remoteTrackId;rtcpRunning=!1;rtcpCancel=new AbortController;remoteStreams={};setDtlsTransport(W){this.dtlsTransport=W}get track(){return this.tracks[0]??new uO({kind:this.kind})}get nackEnabled(){return this.codecArray[0]?.rtcpFeedback.find((W)=>W.type==="nack")}get twccEnabled(){return this.codecArray[0]?.rtcpFeedback.find((W)=>W.type===Wi().type)}get pliEnabled(){return this.codecArray[0]?.rtcpFeedback.find((W)=>W.type===JJ().type)}prepareReceive(W){W.codecs.forEach((G)=>{this.codecs[G.payloadType]=G}),W.encodings.forEach((G)=>{if(G.rtx)this.ssrcByRtx[G.rtx.ssrc]=G.ssrc})}setupTWCC(W){if(this.twccEnabled&&!this.receiverTWCC)this.receiverTWCC=new yi(this.dtlsTransport,this.rtcpSsrc,W)}addTrack(W){if(this.tracks.find((X)=>{if(X.rid)return X.rid===W.rid;if(X.ssrc)return X.ssrc===W.ssrc}))return!1;if(this.tracks.push(W),W.ssrc)this.trackBySSRC[W.ssrc]=W;if(W.rid)this.trackByRID[W.rid]=W;return!0}stop(){if(this.stopped=!0,this.rtcpRunning=!1,this.rtcpCancel.abort(),this.receiverTWCC)this.receiverTWCC.twccRunning=!1;this.nack.close()}async runRtcp(){if(this.rtcpRunning||this.stopped)return;this.rtcpRunning=!0;try{while(this.rtcpRunning){await IO(500+Math.random()*1000,void 0,{signal:this.rtcpCancel.signal});let W=Object.entries(this.remoteStreams).map(([X,Y])=>{let Z=0,V=0;if(this.lastSRtimestamp[X]){Z=this.lastSRtimestamp[X];let Q=QH()-this.receiveLastSRTimestamp[X];if(Q>0&&Q<65536)V=pQ(Q*65536)}return new GK({ssrc:Number(X),fractionLost:Y.fraction_lost,packetsLost:Y.packets_lost,highestSequence:Y.max_seq,jitter:Y.jitter,lsr:Z,dlsr:V})}),G=new iQ({ssrc:this.rtcpSsrc,reports:W});try{if(this.config.debug.receiverReportDelay)await IO(this.config.debug.receiverReportDelay);await this.dtlsTransport.sendRtcp([G])}catch(X){kN("sendRtcp failed",X),await IO(500+Math.random()*1000)}}}catch(W){}}async getStats(){let W=FG(),G=[];if(!this.dtlsTransport)return G;let X=Z8("transport",this.dtlsTransport.id);for(let Y of this.tracks){if(!Y.ssrc)continue;let Z=this.remoteStreams[Y.ssrc];if(!Z)continue;let V={type:"inbound-rtp",id:Z8("inbound-rtp",Y.ssrc),timestamp:W,ssrc:Y.ssrc,kind:this.kind,transportId:X,codecId:this.codecs[0]?Z8("codec",this.codecs[0].payloadType,X):void 0,mid:this.sdesMid,trackIdentifier:Y.id,packetsReceived:Z.packets_received,packetsLost:Z.packets_lost,jitter:Z.jitter};if(G.push(V),this.lastSRtimestamp[Y.ssrc]){let Q={type:"remote-outbound-rtp",id:Z8("remote-outbound-rtp",Y.ssrc),timestamp:W,ssrc:Y.ssrc,kind:this.kind,transportId:X,codecId:V.codecId,localId:V.id,remoteTimestamp:this.receiveLastSRTimestamp[Y.ssrc]*1000};G.push(Q)}}return G}async sendRtcpPLI(W){if(!this.pliEnabled){kN("pli not supported",{mediaSsrc:W});return}if(this.stopped)return;kN("sendRtcpPLI",{mediaSsrc:W});let G=new nQ({feedback:new GH({senderSsrc:this.rtcpSsrc,mediaSsrc:W})});try{await this.dtlsTransport.sendRtcp([G])}catch(X){kN(X)}}handleRtcpPacket(W){switch(W.type){case hY.type:{let G=W;this.lastSRtimestamp[G.ssrc]=lS(G.senderInfo.ntpTimestamp),this.receiveLastSRTimestamp[G.ssrc]=QH();let X=this.trackBySSRC[W.ssrc];if(X)X.onReceiveRtcp.execute(W)}break}this.onRtcp.execute(W)}handleRtpBySsrc=(W,G)=>{let X=this.trackBySSRC[W.header.ssrc];this.handleRTP(W,G,X)};handleRtpByRid=(W,G,X)=>{let Y=this.trackByRID[G];if(!this.trackBySSRC[W.header.ssrc])this.trackBySSRC[W.header.ssrc]=Y;this.handleRTP(W,X,Y)};handleRTP(W,G,X){if(this.stopped)return;let Y=this.codecs[W.header.payloadType];if(!Y)return;if(this.remoteStreams[W.header.ssrc]=this.remoteStreams[W.header.ssrc]??new vi(Y.clockRate),this.remoteStreams[W.header.ssrc].add(W),this.receiverTWCC){let V=G[D9.transportWideCC];if(!V==null)throw Error("undefined");this.receiverTWCC.handleTWCC(V)}else if(this.twccEnabled)this.setupTWCC(W.header.ssrc);if(Y.name.toLowerCase()==="rtx"){let V=this.ssrcByRtx[W.header.ssrc],Q=UH(Y.parameters??""),J=this.codecs[Q.apt];if(W.payload.length<2)return;W=oo(W,J.payloadType,V),X=this.trackBySSRC[V]}let Z;if(Y.name.toLowerCase()==="red"){if(Z=XS.deSerialize(W.payload),!Object.keys(this.codecs).includes(Z.header.fields[0].blockPT.toString()))return}if(X?.kind==="video"&&this.nackEnabled)this.nack.addPacket(W);if(X)if(Z){if(X.kind==="audio"){let V=this.audioRedHandler.push(Z,W);for(let Q of V)X.onReceiveRtp.execute(Q.clone(),G)}}else X.onReceiveRtp.execute(W.clone(),G);this.runRtcp()}},uQ=M1("werift:packages/webrtc/src/media/router.ts"),Cr=class{ssrcTable={};ridTable={};extIdUriMap={};constructor(){}registerRtpSender(W){this.ssrcTable[W.ssrc]=W}registerRtpReceiver(W,G){uQ("registerRtpReceiver",G),this.ssrcTable[G]=W}registerRtpReceiverBySsrc(W,G){uQ("registerRtpReceiverBySsrc",G),G.encodings.filter((X)=>X.ssrc!=null).forEach((X,Y)=>{if(this.registerRtpReceiver(W.receiver,X.ssrc),W.addTrack(new uO({ssrc:X.ssrc,kind:W.kind,id:W.sender.trackId,remote:!0,codec:G.codecs[Y]})),X.rtx)this.registerRtpReceiver(W.receiver,X.rtx.ssrc)}),G.headerExtensions.forEach((X)=>{this.extIdUriMap[X.id]=X.uri})}registerRtpReceiverByRid(W,G,X){let[Y]=X.codecs;uQ("registerRtpReceiverByRid",G),W.addTrack(new uO({rid:G.rid,kind:W.kind,id:W.sender.trackId,remote:!0,codec:Y})),this.ridTable[G.rid]=W.receiver}routeRtp=(W)=>{let G=So(W.header.extensions,this.extIdUriMap),X=this.ssrcTable[W.header.ssrc],Y=G[D9.sdesRTPStreamID];if(typeof Y==="string")X=this.ridTable[Y],X.latestRid=Y,X.handleRtpByRid(W,Y,G);else if(X)X.handleRtpBySsrc(W,G);else if(X=Object.values(this.ridTable).filter((Q)=>Q instanceof Vx).find((Q)=>Q.trackBySSRC[W.header.ssrc]),X)uQ("simulcast register receiver by ssrc",W.header.ssrc),this.registerRtpReceiver(X,W.header.ssrc),X.handleRtpBySsrc(W,G);if(!X){uQ("ssrcReceiver not found");return}let Z=G[D9.sdesMid];if(typeof Z==="string")X.sdesMid=Z;let V=G[D9.repairedRtpStreamId];if(typeof V==="string")X.latestRepairedRid=V};routeRtcp=(W)=>{let G=[];switch(W.type){case hY.type:W=W,G.push(this.ssrcTable[W.ssrc]);break;case iQ.type:W=W,W.reports.forEach((X)=>{G.push(this.ssrcTable[X.ssrc])});break;case VH.type:{let X=W}break;case uY.type:{let X=W;if(X.feedback)G.push(this.ssrcTable[X.feedback.mediaSourceSsrc])}break;case nQ.type:{let X=W;switch(X.feedback.count){case XH.count:{let Y=X.feedback;G.push(this.ssrcTable[Y.ssrcFeedbacks[0]])}break;default:G.push(this.ssrcTable[X.feedback.senderSsrc]||this.ssrcTable[X.feedback.mediaSsrc])}}break}G.filter((X)=>X).forEach((X)=>X.handleRtcpPacket(W))}},Dr=class{numPackets=0;totalSize=0;firstPacketSentAtMs=0;lastPacketSentAtMs=0;firstPacketReceivedAtMs=0;lastPacketReceivedAtMs=0;addPacket(W,G,X){if(this.numPackets===0)this.firstPacketSentAtMs=G,this.firstPacketReceivedAtMs=X,this.lastPacketSentAtMs=G,this.lastPacketReceivedAtMs=X;else{if(G<this.firstPacketSentAtMs)this.firstPacketSentAtMs=G;if(X<this.firstPacketReceivedAtMs)this.firstPacketReceivedAtMs=X;if(G>this.lastPacketSentAtMs)this.lastPacketSentAtMs=G;if(X>this.lastPacketReceivedAtMs)this.lastPacketReceivedAtMs=X}this.numPackets++,this.totalSize+=W}reset(){this.numPackets=0,this.totalSize=0,this.firstPacketSentAtMs=0,this.lastPacketSentAtMs=0,this.firstPacketReceivedAtMs=0,this.lastPacketReceivedAtMs=0}get receiveBitrate(){let W=this.lastPacketReceivedAtMs-this.firstPacketReceivedAtMs,G=this.totalSize/W*8*1000;return WH(G)}get sendBitrate(){let W=this.lastPacketSentAtMs-this.firstPacketSentAtMs,G=this.totalSize/W*8*1000;return WH(G)}},SY=20,Mr=10,Tr=class{congestion=!1;onAvailableBitrate=new f0;onCongestion=new f0;onCongestionScore=new f0;congestionCounter=0;cumulativeResult=new Dr;sentInfos={};_congestionScore=1;get congestionScore(){return this._congestionScore}set congestionScore(W){this._congestionScore=W,this.onCongestionScore.execute(W)}_availableBitrate=0;get availableBitrate(){return this._availableBitrate}set availableBitrate(W){this._availableBitrate=W,this.onAvailableBitrate.execute(W)}constructor(){}receiveTWCC(W){let X=pS()-this.cumulativeResult.firstPacketSentAtMs;if(X>1000){if(this.cumulativeResult.reset(),this.congestionCounter<SY)this.congestionCounter++;else if(this.congestionScore<Mr)this.congestionScore++;if(this.congestionCounter>=SY&&!this.congestion)this.congestion=!0,this.onCongestion.execute(this.congestion)}for(let Y of W.packetResults){if(!Y.received)continue;let Z=Y.sequenceNumber,V=this.sentInfos[Z];if(!V)continue;if(!Y.receivedAtMs)continue;this.cumulativeResult.addPacket(V.size,V.sendingAtMs,Y.receivedAtMs)}if(X>=100&&this.cumulativeResult.numPackets>=20){if(this.availableBitrate=Math.min(this.cumulativeResult.sendBitrate,this.cumulativeResult.receiveBitrate),this.cumulativeResult.reset(),this.congestionCounter>-SY){let Y=WH(SY/2)+1,Z=WH(SY/4)+1,V=Y-(Y-Z)/10*this.congestionScore;this.congestionCounter=this.congestionCounter-V}if(this.congestionCounter<=-SY){if(this.congestionScore>1)this.congestionScore--,this.onCongestion.execute(!1);this.congestionCounter=0}if(this.congestionCounter<=0&&this.congestion)this.congestion=!1,this.onCongestion.execute(this.congestion)}}rtpPacketSent(W){Object.keys(W).map((G)=>Number(G)).sort().filter((G)=>G<W.wideSeq).forEach((G)=>{delete this.sentInfos[G]}),this.sentInfos[W.wideSeq]=W}},CO=M1("werift:packages/webrtc/src/media/rtpSender.ts"),q2=128,N2=0.85,Pr=class{constructor(W){if(this.trackOrKind=W,this.kind=typeof this.trackOrKind==="string"?this.trackOrKind:this.trackOrKind.kind,typeof W!=="string"){if(W.streamId)this.streamId=W.streamId;this.registerTrack(W)}}type="sender";kind;ssrc=a1.Unpack("!L",Q2(4))[0];rtxSsrc=a1.Unpack("!L",Q2(4))[0];streamId=J2().toString();trackId=J2().toString();onReady=new f0;onRtcp=new f0;onPictureLossIndication=new f0;onGenericNack=new f0;senderBWE=new Tr;cname;mid;rtpStreamId;repairedRtpStreamId;rtxPayloadType;rtxSequenceNumber=z2();redRedundantPayloadType;_redDistance=2;redEncoder=new co(this._redDistance);headerExtensions=[];disposeTrack;lastSRtimestamp;lastSentSRTimestamp;ntpTimestamp=0n;rtpTimestamp=0;octetCount=0;packetCount=0;rtt;receiverEstimatedMaxBitrate=0n;sequenceNumber;timestamp;timestampOffset=0;seqOffset=0;rtpCache=[];codec;dtlsTransport;dtlsDisposer=[];track;stopped=!1;rtcpRunning=!1;rtcpCancel=new AbortController;setDtlsTransport(W){if(this.dtlsTransport)this.dtlsDisposer.forEach((G)=>G());this.dtlsTransport=W,this.dtlsDisposer=[this.dtlsTransport.onStateChange.subscribe((G)=>{if(G==="connected")this.onReady.execute()}).unSubscribe]}get redDistance(){return this._redDistance}set redDistance(W){this._redDistance=W,this.redEncoder.distance=W}prepareSend(W){if(this.cname=W.rtcp?.cname,this.mid=W.muxId,this.headerExtensions=W.headerExtensions,this.rtpStreamId=W.rtpStreamId,this.repairedRtpStreamId=W.repairedRtpStreamId,this.codec=W.codecs[0],this.track)this.track.codec=this.codec;W.codecs.forEach((G)=>{let X=UH(G.parameters??"");if(G.name.toLowerCase()==="rtx"&&X.apt===this.codec?.payloadType)this.rtxPayloadType=G.payloadType;if(G.name.toLowerCase()==="red")this.redRedundantPayloadType=Number((G.parameters??"").split("/")[0])})}registerTrack(W){if(W.stopped)throw Error("track is ended");if(this.disposeTrack)this.disposeTrack();W.id=this.trackId;let{unSubscribe:G}=W.onReceiveRtp.subscribe(async(X)=>{await this.sendRtp(X)});if(this.track=W,this.disposeTrack=G,this.codec)W.codec=this.codec;W.onSourceChanged.subscribe((X)=>{this.replaceRTP(X)})}async replaceTrack(W){if(W===null)return;if(W.stopped)throw Error("track is ended");if(this.sequenceNumber!=null){let G=W.header||(await W.onReceiveRtp.asPromise())[0].header;this.replaceRTP(G)}this.registerTrack(W),CO("replaceTrack","ssrc",W.ssrc,"rid",W.rid)}stop(){if(this.stopped=!0,this.rtcpRunning=!1,this.rtcpCancel.abort(),this.disposeTrack)this.disposeTrack();this.track=void 0}async runRtcp(){if(this.rtcpRunning||this.stopped)return;this.rtcpRunning=!0;try{while(this.rtcpRunning){await U2(500+Math.random()*1000,void 0,{signal:this.rtcpCancel.signal});let W=[new hY({ssrc:this.ssrc,senderInfo:new GS({ntpTimestamp:this.ntpTimestamp,rtpTimestamp:this.rtpTimestamp,packetCount:this.packetCount,octetCount:this.octetCount})})];if(this.lastSRtimestamp=lS(this.ntpTimestamp),this.lastSentSRTimestamp=QH(),this.cname)W.push(new VH({chunks:[new e2({source:this.ssrc,items:[new WS({type:1,text:this.cname})]})]}));try{await this.dtlsTransport.sendRtcp(W)}catch(G){CO("sendRtcp failed",G),await U2(500+Math.random()*1000)}}}catch(W){}}replaceRTP({sequenceNumber:W,timestamp:G},X=!1){if(this.sequenceNumber!=null){if(this.seqOffset=M9(this.sequenceNumber,-W),X)this.seqOffset=M9(this.seqOffset,2)}if(this.timestamp!=null){if(this.timestampOffset=yY(this.timestamp,-G),X)this.timestampOffset=M9(this.timestampOffset,1)}this.rtpCache=[],CO("replaceRTP",this.sequenceNumber,W,this.seqOffset)}async sendRtp(W){if(this.dtlsTransport.state!=="connected"||!this.codec)return;W=Buffer.isBuffer(W)?t6.deSerialize(W):W;let{header:G,payload:X}=W;G.ssrc=this.ssrc,G.payloadType=this.codec.payloadType,G.timestamp=yY(G.timestamp,this.timestampOffset),G.sequenceNumber=M9(G.sequenceNumber,this.seqOffset),this.timestamp=G.timestamp,this.sequenceNumber=G.sequenceNumber;let Y=Ei(),Z=[...G.extensions];G.extensions=this.headerExtensions.map((q)=>{let N=(()=>{switch(q.uri){case D9.sdesMid:if(this.mid)return xo(this.mid);return;case D9.sdesRTPStreamID:if(this.rtpStreamId)return ko(this.rtpStreamId);return;case D9.repairedRtpStreamId:if(this.repairedRtpStreamId)return _o(this.repairedRtpStreamId);return;case D9.transportWideCC:return this.dtlsTransport.transportSequenceNumber=M9(this.dtlsTransport.transportSequenceNumber,1),yo(this.dtlsTransport.transportSequenceNumber);case D9.absSendTime:return vo(Y)}})();if(N)return{id:q.id,payload:N}}).filter((q)=>q);for(let q of Z){let N=G.extensions.find((A)=>A.id===q.id);if(N)N.payload=q.payload;else G.extensions.push(q)}G.extensions=G.extensions.sort((q,N)=>q.id-N.id),this.ntpTimestamp=Y,this.rtpTimestamp=G.timestamp,this.octetCount+=X.length,this.packetCount=yY(this.packetCount,1),this.rtpCache[G.sequenceNumber%q2]=W;let V=X;if(this.redRedundantPayloadType)this.redEncoder.push({block:V,timestamp:G.timestamp,blockPT:this.redRedundantPayloadType}),V=this.redEncoder.build().serialize();let Q=await this.dtlsTransport.sendRtp(V,G);this.runRtcp();let J=pS(),U={wideSeq:this.dtlsTransport.transportSequenceNumber,size:Q,sendingAtMs:J,sentAtMs:J};this.senderBWE.rtpPacketSent(U)}handleRtcpPacket(W){switch(W.type){case hY.type:case iQ.type:W.reports.filter((X)=>X.ssrc===this.ssrc).forEach((X)=>{if(this.lastSRtimestamp===X.lsr&&X.dlsr){if(this.lastSentSRTimestamp){let Y=QH()-this.lastSentSRTimestamp-X.dlsr/65536;if(this.rtt===void 0)this.rtt=Y;else this.rtt=N2*this.rtt+(1-N2)*Y}}});break;case uY.type:{let G=W;switch(G.feedback.count){case ZH.count:{let X=G.feedback;this.senderBWE.receiveTWCC(X)}break;case YH.count:{let X=G.feedback;X.lost.forEach(async(Y)=>{let Z=this.rtpCache[Y%q2];if(Z&&Z.header.sequenceNumber!==Y)Z=void 0;if(Z){if(this.rtxPayloadType!=null)Z=no(Z,this.rtxPayloadType,this.rtxSequenceNumber,this.rtxSsrc),this.rtxSequenceNumber=M9(this.rtxSequenceNumber,1);await this.dtlsTransport.sendRtp(Z.payload,Z.header)}}),this.onGenericNack.execute(X)}break}}break;case nQ.type:{let G=W;switch(G.feedback.count){case XH.count:{let X=G.feedback;this.receiverEstimatedMaxBitrate=X.bitrate}break;case GH.count:this.onPictureLossIndication.execute();break}}break}this.onRtcp.execute(W)}getParameters(){return{encodings:[]}}setParameters(W){}async getStats(){let W=FG(),G=[];if(!this.dtlsTransport)return G;let X=Z8("transport",this.dtlsTransport.id),Y={type:"outbound-rtp",id:Z8("outbound-rtp",this.ssrc),timestamp:W,ssrc:this.ssrc,kind:this.kind,transportId:X,codecId:this.codec?Z8("codec",this.codec.payloadType,X):void 0,mid:this.mid,packetsSent:this.packetCount,bytesSent:this.octetCount,rtxSsrc:this.rtxPayloadType?this.rtxSsrc:void 0};if(G.push(Y),this.track){let Z={type:"media-source",id:Z8("media-source",this.trackId),timestamp:W,trackIdentifier:this.trackId,kind:this.kind};G.push(Z)}if(this.rtt!==void 0){let Z={type:"remote-inbound-rtp",id:Z8("remote-inbound-rtp",this.ssrc),timestamp:W,ssrc:this.ssrc,kind:this.kind,transportId:X,codecId:Y.codecId,localId:Y.id,roundTripTime:this.rtt};G.push(Z)}return G}},Lr=M1("werift:packages/webrtc/src/transport/sctpManager.ts"),Br=class{sctpTransport;sctpRemotePort;dataChannelsOpened=0;dataChannelsClosed=0;dataChannels=[];onDataChannel=new f0;constructor(){}createSctpTransport(W){let G=new wr(5000,W);return G.mid=void 0,G.onDataChannel.subscribe((X)=>{this.dataChannelsOpened++,this.dataChannels.push(X),this.onDataChannel.execute(X)}),this.sctpTransport=G,G}createDataChannel(W,G={}){let Y={...{protocol:"",ordered:!0,negotiated:!1},...G};if(Y.maxPacketLifeTime&&Y.maxRetransmits)throw Error("can not select both");if(!this.sctpTransport)this.sctpTransport=this.createSctpTransport();let Z=new FS({id:Y.id,label:W,maxPacketLifeTime:Y.maxPacketLifeTime,maxRetransmits:Y.maxRetransmits,negotiated:Y.negotiated,ordered:Y.ordered,protocol:Y.protocol}),V=new $S(this.sctpTransport,Z);return this.dataChannelsOpened++,this.dataChannels.push(V),V.stateChange.subscribe((Q)=>{if(Q==="closed"){this.dataChannelsClosed++;let J=this.dataChannels.indexOf(V);if(J!==-1)this.dataChannels.splice(J,1)}}),V}async connectSctp(){if(!this.sctpTransport||!this.sctpRemotePort)return;await this.sctpTransport.start(this.sctpRemotePort),await this.sctpTransport.sctp.stateChanged.connected.asPromise(),Lr("sctp connected")}setRemoteSCTP(W,G){if(!this.sctpTransport)return;if(this.sctpTransport.setRemoteMaxMessageSize(W.sctpCapabilities?.maxMessageSize),this.sctpRemotePort=W.sctpPort,!this.sctpRemotePort)throw Error("sctpRemotePort not exist");if(this.sctpTransport.setRemotePort(this.sctpRemotePort),this.sctpTransport.mLineIndex=G,!this.sctpTransport.mid)this.sctpTransport.mid=W.rtp.muxId}async close(){if(this.sctpTransport)await this.sctpTransport.stop();this.onDataChannel.allUnsubscribe()}async getStats(){let W=FG(),G=[];for(let X of this.dataChannels){let Y={type:"data-channel",id:Z8("data-channel",X.id),timestamp:W,label:X.label,protocol:X.protocol,dataChannelIdentifier:X.id,state:X.readyState,messagesSent:X.messagesSent||0,bytesSent:X.bytesSent||0,messagesReceived:X.messagesReceived||0,bytesReceived:X.bytesReceived||0};G.push(Y)}return G}},Er=class{currentLocalDescription;currentRemoteDescription;pendingLocalDescription;pendingRemoteDescription;cname;midSuffix;bundlePolicy;seenMid=new Set;constructor({cname:W,midSuffix:G,bundlePolicy:X}){this.cname=W,this.midSuffix=G??!1,this.bundlePolicy=X}get localDescription(){if(!this._localDescription)return;return this._localDescription.toJSON()}get remoteDescription(){if(!this._remoteDescription)return;return this._remoteDescription.toJSON()}get _localDescription(){return this.pendingLocalDescription||this.currentLocalDescription}get _remoteDescription(){return this.pendingRemoteDescription||this.currentRemoteDescription}get inactiveRemoteMedia(){return this._remoteDescription?.media?.find?.((W)=>W.direction==="inactive")}createMediaDescriptionForTransceiver(W,G){let X=new aO(W.kind,9,"UDP/TLS/RTP/SAVPF",W.codecs.map((Y)=>Y.payloadType));if(X.direction=G,X.msid=W.msid,X.rtp={codecs:W.codecs,headerExtensions:W.headerExtensions,muxId:W.mid},X.rtcpHost="0.0.0.0",X.rtcpPort=9,X.rtcpMux=!0,X.ssrc=[new tO({ssrc:W.sender.ssrc,cname:this.cname})],W.options.simulcast)X.simulcastParameters=W.options.simulcast.map((Y)=>new SS(Y));if(X.rtp.codecs.find((Y)=>Y.name.toLowerCase()==="rtx"))X.ssrc.push(new tO({ssrc:W.sender.rtxSsrc,cname:this.cname})),X.ssrcGroup=[new dQ("FID",[W.sender.ssrc.toString(),W.sender.rtxSsrc.toString()])];return this.addTransportDescription(X,W.dtlsTransport),X}createMediaDescriptionForSctp(W){let G=new aO("application",fF,"UDP/DTLS/SCTP",["webrtc-datachannel"]);return G.sctpPort=W.port,G.rtp.muxId=W.mid,G.sctpCapabilities=W.getCapabilities(),this.addTransportDescription(G,W.dtlsTransport),G}addTransportDescription(W,G){let X=G.iceTransport;if(W.iceCandidates=X.localCandidates,W.iceCandidatesComplete=X.gatheringState==="complete",W.iceParams=X.localParameters,W.iceOptions="trickle",W.host=Ii,W.port=fF,W.direction==="inactive")W.port=0,W.msid=void 0;if(!W.dtlsParams){if(W.dtlsParams=G.localParameters,!W.dtlsParams.fingerprints)W.dtlsParams.fingerprints=G.localParameters.fingerprints}}allocateMid(W=""){let G="";for(let X=0;;)if(G=(X++).toString()+W,!this.seenMid.has(G))break;return this.seenMid.add(G),G}parseSdp({sdp:W,isLocal:G,signalingState:X,type:Y}){let Z=oN.parse(W);return this.validateDescription({description:Z,isLocal:G,signalingState:X}),Z.type=Y,Z}validateDescription({description:W,isLocal:G,signalingState:X}){if(G){if(W.type==="offer"){if(!["stable","have-local-offer"].includes(X))throw Error("Cannot handle offer in signaling state")}else if(W.type==="answer"){if(!["have-remote-offer","have-local-pranswer"].includes(X))throw Error("Cannot handle answer in signaling state")}}else if(W.type==="offer"){if(!["stable","have-remote-offer"].includes(X))throw Error("Cannot handle offer in signaling state")}else if(W.type==="answer"){if(!["have-local-offer","have-remote-pranswer"].includes(X))throw Error("Cannot handle answer in signaling state")}}buildOfferSdp(W,G){let X=new oN;V2("offer",X),(this.currentLocalDescription?.media??[]).forEach((Z,V)=>{let Q=Z.rtp.muxId;if(!Q)return;if(Z.kind==="application"){if(!G)throw Error("sctpTransport not found");G.mLineIndex=V,X.media.push(this.createMediaDescriptionForSctp(G))}else{let J=W.find((U)=>U.mid===Q);if(!J){if(Z.direction==="inactive"){X.media.push(Z);return}throw Error("transceiver not found")}J.mLineIndex=V,X.media.push(this.createMediaDescriptionForTransceiver(J,J.direction))}});for(let Z of W.filter((V)=>!X.media.find((Q)=>Q.rtp.muxId===V.mid))){if(Z.mid==null)Z.mid=this.allocateMid(this.midSuffix?"av":"");let V=this.createMediaDescriptionForTransceiver(Z,Z.direction);if(Z.mLineIndex===void 0)Z.mLineIndex=X.media.length,X.media.push(V);else X.media[Z.mLineIndex]=V}if(G&&!X.media.find((Z)=>Z.kind==="application")){if(G.mLineIndex=X.media.length,G.mid==null)G.mid=this.allocateMid(this.midSuffix?"dc":"");X.media.push(this.createMediaDescriptionForSctp(G))}if(this.bundlePolicy!=="disable"){let Z=X.media.map((V)=>V.rtp.muxId).filter((V)=>V);if(Z.length){let V=new dQ("BUNDLE",Z);X.group.push(V)}}return X}buildAnswerSdp({transceivers:W,sctpTransport:G,signalingState:X}){if(!["have-remote-offer","have-local-pranswer"].includes(X))throw Error("createAnswer failed");if(!this._remoteDescription)throw Error("wrong state");let Y=new oN;V2("answer",Y);for(let Z of this._remoteDescription.media){let V,Q;if(["audio","video"].includes(Z.kind)){let J=W.find((U)=>U.mid===Z.rtp.muxId);if(!J)throw Error(`Transceiver with mid=${Z.rtp.muxId} not found`);Q=this.createMediaDescriptionForTransceiver(J,cS(J.direction,J.offerDirection)),V=J.dtlsTransport}else if(Z.kind==="application"){if(!G||!G.mid)throw Error("sctpTransport not found");Q=this.createMediaDescriptionForSctp(G),V=G.dtlsTransport}else throw Error("invalid kind");if(Q.dtlsParams)if(V.role==="auto")Q.dtlsParams.role="client";else Q.dtlsParams.role=V.role;if(Z.simulcastParameters&&Z.simulcastParameters.length>0)Q.simulcastParameters=Z.simulcastParameters.map((J)=>({...J,direction:J.direction==="send"?"recv":"send"}));Y.media.push(Q)}if(this.bundlePolicy!=="disable"){let Z=new dQ("BUNDLE",[]);for(let V of Y.media)if(V.rtp.muxId)Z.items.push(V.rtp.muxId);Y.group.push(Z)}return Y}setLocalDescription(W){if(this.currentLocalDescription=W,W.type==="answer")this.pendingLocalDescription=void 0;else this.pendingLocalDescription=W}setRemoteDescription(W,G){if(!W.sdp||!W.type||W.type==="rollback"||W.type==="pranswer")throw Error("invalid sessionDescription");let X=this.parseSdp({sdp:W.sdp,isLocal:!1,signalingState:G,type:W.type});if(X.type==="answer")this.currentRemoteDescription=X,this.pendingRemoteDescription=void 0;else this.pendingRemoteDescription=X;return X}registerMid(W){this.seenMid.add(W)}get remoteIsBundled(){let W=this._remoteDescription;if(!W)return;return W.group.find((X)=>X.semantic==="BUNDLE"&&this.bundlePolicy!=="disable")}setLocal(W,G,X){let Y=new Map(G.map((Q)=>[Q?.mLineIndex,Q])),Z=G.find((Q)=>Q?.dtlsTransport)?.dtlsTransport??X?.dtlsTransport;W.media.filter((Q)=>["audio","video"].includes(Q.kind)).forEach((Q,J)=>{let q=(Y.get(J)??G[J])?.dtlsTransport??Z;if(!q)throw Error(`dtls transport not found for media index ${J}`);this.addTransportDescription(Q,q)});let V=W.media.find((Q)=>Q.kind==="application");if(X&&V)this.addTransportDescription(V,X.dtlsTransport);this.setLocalDescription(W)}},hQ=M1("werift:packages/webrtc/src/transport/secureTransportManager.ts"),$r=class{connectionState="new";iceConnectionState="new";iceGatheringState="new";certificate;iceGatheringStateChange=new f0;iceConnectionStateChange=new f0;onIceCandidate=new f0;connectionStateChange=new f0;config;transceiverManager;sctpManager;constructor({config:W,transceiverManager:G,sctpManager:X}){if(this.config=W,this.transceiverManager=G,this.sctpManager=X,this.config.dtls){let{keys:Y}=this.config.dtls;if(Y)this.setupCertificate(Y)}}get dtlsTransports(){return[...this.transceiverManager.getTransceivers().map((G)=>G?.dtlsTransport),this.sctpManager.sctpTransport?.dtlsTransport].filter((G)=>G!=null).reduce((G,X)=>{if(!G.map((Y)=>Y.id).includes(X.id))G.push(X);return G},[])}get iceTransports(){return this.dtlsTransports.map((W)=>W.iceTransport)}setupCertificate(W){this.certificate=new dS(W.keyPem,W.certPem,W.signatureHash)}createTransport(){let W=this.iceTransports.find((Z)=>Z.state!=="closed"),G=new oi({...$i(this.config.iceServers),forceTurn:this.config.iceTransportPolicy==="relay",portRange:this.config.icePortRange,interfaceAddresses:this.config.iceInterfaceAddresses,additionalHostAddresses:this.config.iceAdditionalHostAddresses,filterStunResponse:this.config.iceFilterStunResponse,filterCandidatePair:this.config.iceFilterCandidatePair,localPasswordPrefix:this.config.icePasswordPrefix,useIpv4:this.config.iceUseIpv4,useIpv6:this.config.iceUseIpv6,turnTransport:this.config.forceTurnTCP===!0?"tcp":"udp",useLinkLocalAddress:this.config.iceUseLinkLocalAddress});if(W)G.connection.localUsername=W.connection.localUsername,G.connection.localPassword=W.connection.localPassword;G.onGatheringStateChange.subscribe(()=>{this.updateIceGatheringState()}),this.updateIceGatheringState();let X=new di(G);return X.onStateChange.subscribe(()=>{this.updateIceConnectionState()}),new dF(this.config,X,this.certificate,Fr)}handleNewIceCandidate({candidate:W,media:G,remoteIsBundled:X,transceiver:Y,sctpTransport:Z,bundlePolicy:V}){if(V==="max-bundle"||X){if(W.sdpMLineIndex=0,G)W.sdpMid=G.rtp.muxId}else{if(Y)W.sdpMLineIndex=Y.mLineIndex,W.sdpMid=Y.mid;if(Z)W.sdpMLineIndex=Z.mLineIndex,W.sdpMid=Z.mid}if(W.foundation&&!W.foundation.startsWith("candidate:"))W.foundation="candidate:"+W.foundation;return this.onIceCandidate.execute(W),W}async addIceCandidate(W,G){let X=oS.fromJSON(G);if(!X)return;let Y;if(typeof X.sdpMid==="number")Y=this.getTransportByMid(X.sdpMid);if(!Y&&typeof X.sdpMLineIndex==="number")Y=this.getTransportByMLineIndex(W,X.sdpMLineIndex);if(!Y)Y=this.iceTransports[0];if(Y)await Y.addRemoteCandidate(X);else hQ("iceTransport not found for candidate",X)}getTransportByMid(W){let G,X=this.transceiverManager.getTransceivers().find((Y)=>Y.mid===W);if(X)G=X.dtlsTransport.iceTransport;else if(!G&&this.sctpManager.sctpTransport?.mid===W)G=this.sctpManager.sctpTransport.dtlsTransport.iceTransport;return G}getTransportByMLineIndex(W,G){let X=W.media[G];if(!X)return;return this.getTransportByMid(X.rtp.muxId)}restartIce(){for(let W of this.iceTransports)W.restart()}setLocalRole({type:W,role:G}){for(let X of this.dtlsTransports){let Y=X.iceTransport;if(W==="offer")Y.connection.iceControlling=!0;else Y.connection.iceControlling=!1;if(Y.connection.remoteIsLite)Y.connection.iceControlling=!0;if(W==="answer"){if(G)X.role=G}}}updateIceGatheringState(){let W=this.iceTransports;function G(...Y){return W.filter((Z)=>Y.includes(Z.gatheringState)).length===W.length}let X;if(W.length&&G("complete"))X="complete";else if(!W.length||G("new","complete"))X="new";else if(W.map((Y)=>Y.gatheringState).includes("gathering"))X="gathering";else X="new";if(this.iceGatheringState===X)return;this.iceGatheringState=X,this.iceGatheringStateChange.execute(X)}updateIceConnectionState(){let W=this.iceTransports,G;function X(...Z){return W.filter((V)=>Z.includes(V.state)).length===W.length}function Y(...Z){return W.some((V)=>Z.includes(V.state))}if(this.connectionState==="closed")G="closed";else if(Y("failed"))G="failed";else if(Y("disconnected"))G="disconnected";else if(X("new","closed"))G="new";else if(Y("new","checking"))G="checking";else if(X("completed","closed"))G="completed";else if(X("connected","completed","closed"))G="connected";else G="new";if(this.iceConnectionState===G)return;hQ("iceConnectionStateChange",G),this.iceConnectionState=G,this.iceConnectionStateChange.execute(G)}async gatherCandidates(W){let G=this.iceTransports.find((X)=>X.state==="connected"||X.state==="completed");if(W&&G)hQ("skipping ICE gathering for bundled connection");else await Promise.allSettled(this.iceTransports.map((X)=>X.gather())).catch((X)=>{hQ("gatherCandidates failed",X)})}setConnectionState(W){hQ("connectionStateChange",W),this.connectionState=W,this.connectionStateChange.execute(W)}async getStats(){let W=[];for(let G of this.dtlsTransports){let X=await G.getStats();if(X)W.push(...X)}return W}async ensureCerts(){if(!this.certificate)this.certificate=await dF.SetupCertificate();for(let W of this.dtlsTransports)W.localCertificate=this.certificate}async close(){this.setConnectionState("closed"),await Promise.allSettled([...this.dtlsTransports.map((W)=>W.stop())]),this.iceGatheringStateChange.allUnsubscribe(),this.iceConnectionStateChange.allUnsubscribe(),this.onIceCandidate.allUnsubscribe(),this.connectionStateChange.allUnsubscribe()}},Fr=[pF.SRTP_AEAD_AES_128_GCM,pF.SRTP_AES128_CM_HMAC_SHA1_80],t5=M1("werift:packages/webrtc/src/peerConnection.ts"),Qx=class extends UK{cname=Rr().toString();config=Jx();signalingState="stable";negotiationneeded=!1;needRestart=!1;router=new Cr;sdpManager;transceiverManager;sctpManager;secureManager;isClosed=!1;shouldNegotiationneeded=!1;remoteBundleNegotiated=!1;iceGatheringStateChange=new f0;iceConnectionStateChange=new f0;signalingStateChange=new f0;connectionStateChange=new f0;onDataChannel=new f0;onRemoteTransceiverAdded=new f0;onTransceiverAdded=new f0;onIceCandidate=new f0;onNegotiationneeded=new f0;onTrack=new f0;ondatachannel;onicecandidate;onicecandidateerror;onicegatheringstatechange;onnegotiationneeded;onsignalingstatechange;ontrack;onconnectionstatechange;oniceconnectionstatechange;constructor(W={}){super();this.setConfiguration(W),this.sdpManager=new Er({cname:this.cname,bundlePolicy:this.config.bundlePolicy}),this.transceiverManager=new xr(this.cname,this.config,this.router),this.transceiverManager.onTransceiverAdded.pipe(this.onTransceiverAdded),this.transceiverManager.onRemoteTransceiverAdded.pipe(this.onRemoteTransceiverAdded),this.transceiverManager.onTrack.subscribe(({track:G,stream:X,transceiver:Y})=>{let Z={track:G,streams:[X],transceiver:Y,receiver:Y.receiver};if(this.onTrack.execute(G),this.emit("track",Z),this.ontrack)this.ontrack(Z)}),this.transceiverManager.onNegotiationNeeded.subscribe(()=>this.needNegotiation()),this.sctpManager=new Br,this.sctpManager.onDataChannel.subscribe((G)=>{this.onDataChannel.execute(G);let X={channel:G};this.ondatachannel?.(X),this.emit("datachannel",X)}),this.secureManager=new $r({config:this.config,sctpManager:this.sctpManager,transceiverManager:this.transceiverManager}),this.secureManager.iceGatheringStateChange.pipe(this.iceGatheringStateChange),this.secureManager.iceConnectionStateChange.subscribe((G)=>{if(G==="closed")this.close();this.iceConnectionStateChange.execute(G)}),this.secureManager.connectionStateChange.subscribe((G)=>{this.connectionStateChange.execute(G),this.onconnectionstatechange?.(),this.emit("connectionstatechange")}),this.secureManager.onIceCandidate.subscribe((G)=>{let X=G?G.toJSON():void 0;this.onIceCandidate.execute(X),this.onicecandidate?.({candidate:X}),this.emit("icecandidate",{candidate:X})})}get connectionState(){return this.secureManager.connectionState}get iceConnectionState(){return this.secureManager.iceConnectionState}get iceGathererState(){return this.secureManager.iceGatheringState}get iceGatheringState(){return this.secureManager.iceGatheringState}get dtlsTransports(){return this.secureManager.dtlsTransports}get sctpTransport(){return this.sctpManager.sctpTransport}get sctpRemotePort(){return this.sctpManager.sctpRemotePort}get iceTransports(){return this.secureManager.iceTransports}get extIdUriMap(){return this.router.extIdUriMap}get iceGeneration(){return this.iceTransports[0].connection.generation}get localDescription(){return this.sdpManager.localDescription}get remoteDescription(){return this.sdpManager.remoteDescription}get remoteIsBundled(){return this.sdpManager.remoteIsBundled}get _localDescription(){return this.sdpManager._localDescription}get _remoteDescription(){return this.sdpManager._remoteDescription}getTransceivers(){return this.transceiverManager.getTransceivers()}getSenders(){return this.transceiverManager.getSenders()}getReceivers(){return this.transceiverManager.getReceivers()}setConfiguration(W){if(Fi(this.config,W),this.config.icePortRange){let[G,X]=this.config.icePortRange;if(G===X)throw Error("should not be same value");if(G>=X)throw Error("The min must be less than max")}if(!Number.isInteger(this.config.maxMessageSize)||this.config.maxMessageSize<0)throw Error("maxMessageSize must be a non-negative integer");if(this.sctpManager?.sctpTransport)this.sctpManager.sctpTransport.maxMessageSize=this.config.maxMessageSize;for(let[G,X]of gF([...this.config.codecs.audio||[],...this.config.codecs.video||[]])){if(X.payloadType!=null)continue;switch(X.payloadType=96+G,X.name.toLowerCase()){case"rtx":X.parameters=`apt=${X.payloadType-1}`;break;case"red":if(X.contentType==="audio"){let Y=X.payloadType+1;X.parameters=`${Y}/${Y}`,X.payloadType=63}break}}[...this.config.headerExtensions.audio||[],...this.config.headerExtensions.video||[]].forEach((G,X)=>{G.id=1+X})}getConfiguration(){return this.config}async createOffer({iceRestart:W}={}){if(W||this.needRestart)this.needRestart=!1,this.secureManager.restartIce();await this.secureManager.ensureCerts();for(let X of this.transceiverManager.getTransceivers()){if(X.codecs.length===0)this.transceiverManager.assignTransceiverCodecs(X);if(X.headerExtensions.length===0)X.headerExtensions=this.config.headerExtensions[X.kind]??[]}return this.sdpManager.buildOfferSdp(this.transceiverManager.getTransceivers(),this.sctpTransport).toJSON()}createSctpTransport(){let W=this.sctpManager.createSctpTransport(this.config.maxMessageSize),G=this.findOrCreateTransport();return W.setDtlsTransport(G),W}createDataChannel(W,G={}){if(!this.sctpTransport)this.createSctpTransport(),this.needNegotiation();let X=this.sctpManager.createDataChannel(W,G);if(!X.sctp.dtlsTransport){let Y=this.findOrCreateTransport();X.sctp.setDtlsTransport(Y)}return X}removeTrack(W){if(this.isClosed)throw Error("peer closed");this.transceiverManager.removeTrack(W),this.needNegotiation()}needNegotiation=async()=>{if(this.shouldNegotiationneeded=!0,this.negotiationneeded||this.signalingState!=="stable")return;this.shouldNegotiationneeded=!1,setImmediate(()=>{if(this.negotiationneeded=!0,this.onNegotiationneeded.execute(),this.onnegotiationneeded)this.onnegotiationneeded({})})};findOrCreateTransport(){let W=this.dtlsTransports.find((Z)=>Z.state!=="closed"),G=W?.iceTransport;if(this.sdpManager.bundlePolicy==="max-bundle"||this.sdpManager.bundlePolicy!=="disable"&&(this.remoteIsBundled||this.remoteBundleNegotiated)){if(W)return W}let X=this.secureManager.createTransport();X.onRtp.subscribe((Z)=>{this.router.routeRtp(Z)}),X.onRtcp.subscribe((Z)=>{this.router.routeRtcp(Z)});let Y=X.iceTransport;return Y.onNegotiationNeeded.subscribe(()=>{this.needNegotiation()}),Y.onIceCandidate.subscribe((Z)=>{if(!this.localDescription){t5("localDescription not found when ice candidate was gathered");return}if(!Z){if(this.sdpManager.setLocal(this._localDescription,this.transceiverManager.getTransceivers(),this.sctpTransport),this.onIceCandidate.execute(void 0),this.onicecandidate)this.onicecandidate({candidate:void 0});this.emit("icecandidate",{candidate:void 0});return}if(!this._localDescription){t5("localDescription not found when ice candidate was gathered");return}this.secureManager.handleNewIceCandidate({candidate:Z,bundlePolicy:this.sdpManager.bundlePolicy,remoteIsBundled:!!this.sdpManager.remoteIsBundled,media:this._localDescription.media[0],transceiver:this.transceiverManager.getTransceivers().find((V)=>V?.dtlsTransport?.iceTransport.id===Y.id),sctpTransport:this.sctpTransport?.dtlsTransport.iceTransport.id===Y.id?this.sctpTransport:void 0})}),X}async setLocalDescription(W){W=W??(["stable","have-local-offer","have-remote-pranswer"].includes(this.signalingState)?await this.createOffer():await this.createAnswer());let X=this.sdpManager.parseSdp({sdp:W.sdp,isLocal:!0,signalingState:this.signalingState,type:W.type});if(X.type==="offer")this.setSignalingState("have-local-offer");else if(X.type==="answer")this.setSignalingState("stable");for(let[Z,V]of gF(X.media)){let Q=V.rtp.muxId;if(this.sdpManager.registerMid(Q),["audio","video"].includes(V.kind)){let J=this.transceiverManager.getTransceiverByMLineIndex(Z);if(J)J.mid=Q}if(V.kind==="application"&&this.sctpTransport)this.sctpTransport.mid=Q}let Y=X.media.find((Z)=>Z.dtlsParams)?.dtlsParams?.role;if(this.secureManager.setLocalRole({type:X.type,role:Y}),["answer","pranswer"].includes(X.type))for(let Z of this.transceiverManager.getTransceivers()){let V=cS(Z.direction,Z.offerDirection);Z.setCurrentDirection(V)}if(this.sdpManager.setLocal(X,this.transceiverManager.getTransceivers(),this.sctpTransport),await this.gatherCandidates().catch((Z)=>{t5("gatherCandidates failed",Z)}),X.type==="answer")this.connect().catch((Z)=>{t5("connect failed",Z),this.secureManager.setConnectionState("failed")});if(this.sdpManager.setLocal(X,this.transceiverManager.getTransceivers(),this.sctpTransport),this.shouldNegotiationneeded)this.needNegotiation();return X}async gatherCandidates(){await this.secureManager.gatherCandidates(!!this.sdpManager.remoteIsBundled)}async addIceCandidate(W){let G=this.sdpManager.buildOfferSdp(this.transceiverManager.getTransceivers(),this.sctpTransport);await this.secureManager.addIceCandidate(G,W)}async connect(){if(t5("start connect"),(await Promise.allSettled(this.dtlsTransports.map(async(G)=>{let{iceTransport:X}=G;if(X.state==="connected")return;let Y=()=>G.state==="connected";if(Y())return;if(this.secureManager.setConnectionState("connecting"),await X.start().catch((Z)=>{throw t5("iceTransport.start failed",Z),Z}),Y())return;if(await G.start().catch((Z)=>{throw t5("dtlsTransport.start failed",Z),Z}),this.sctpTransport&&this.sctpTransport.dtlsTransport.id===G.id)await this.sctpManager.connectSctp()}))).find((G)=>G.status==="rejected"))this.secureManager.setConnectionState("failed");else this.secureManager.setConnectionState("connected")}restartIce(){this.needRestart=!0,this.needNegotiation()}async setRemoteDescription(W){if(W instanceof oN)W=W.toSdp();let G=this.sdpManager.setRemoteDescription(W,this.signalingState);if(G.group.some((Q)=>Q.semantic==="BUNDLE"&&Q.items.length>0))this.remoteBundleNegotiated=!0;let X,Y=(Q,J)=>Q.kind===J.kind&&[void 0,J.rtp.muxId].includes(Q.mid),Z=G.media.map((Q,J)=>{let U;if(["audio","video"].includes(Q.kind)){let N=this.transceiverManager.getTransceivers().find((A)=>Y(A,Q));if(!N)N=this.addTransceiver(Q.kind,{direction:"recvonly"}),N.mid=Q.rtp.muxId,this.onRemoteTransceiverAdded.execute(N);else if(N.direction==="inactive"&&N.stopping){if(N.stopped=!0,W.type==="answer")N.setCurrentDirection("inactive");return}if(this.sdpManager.remoteIsBundled)if(!X)X=N.dtlsTransport;else N.setDtlsTransport(X);U=N.dtlsTransport,this.transceiverManager.setRemoteRTP(N,Q,G.type,J)}else if(Q.kind==="application"){let N=this.sctpTransport;if(!N)N=this.createSctpTransport(),N.mid=Q.rtp.muxId;if(this.sdpManager.remoteIsBundled)if(!X)X=N.dtlsTransport;else N.setDtlsTransport(X);U=N.dtlsTransport,this.sctpManager.setRemoteSCTP(Q,J)}else throw Error("invalid media kind");let q=U.iceTransport;if(Q.iceParams){let N=!!this.sdpManager.inactiveRemoteMedia;if(q.setRemoteParams(Q.iceParams,N),Q.iceParams?.iceLite)q.connection.iceControlling=!0}if(Q.dtlsParams)U.setRemoteParams(Q.dtlsParams);if(Q.iceCandidates.forEach(q.addRemoteCandidate),Q.iceCandidatesComplete)q.addRemoteCandidate(void 0);if(G.type==="answer"&&Q.dtlsParams?.role)U.role=Q.dtlsParams.role==="client"?"server":"client";return q});Z=Z.filter((Q)=>!!Q);let V=this.transceiverManager.getTransceivers().filter((Q)=>G.media.find((J)=>Y(Q,J))==null);if(W.type==="answer")for(let Q of V)Q.stop(),Q.stopped=!0;if(G.type==="offer")this.setSignalingState("have-remote-offer");else if(G.type==="answer")this.setSignalingState("stable");if(G.type==="answer")t5("caller start connect"),this.connect().catch((Q)=>{t5("connect failed",Q),this.secureManager.setConnectionState("failed")});if(this.negotiationneeded=!1,this.shouldNegotiationneeded)this.needNegotiation()}addTransceiver(W,G={}){let X=this.findOrCreateTransport(),Y=this.transceiverManager.addTransceiver(W,X,G);return this.secureManager.updateIceConnectionState(),this.needNegotiation(),Y}addTrack(W,G){if(this.isClosed)throw Error("is closed");let X=this.transceiverManager.addTrack(W,G);if(!X.dtlsTransport){let Y=this.findOrCreateTransport();X.setDtlsTransport(Y)}return this.needNegotiation(),X.sender}async createAnswer(){return this.assertNotClosed(),await this.secureManager.ensureCerts(),this.sdpManager.buildAnswerSdp({transceivers:this.transceiverManager.getTransceivers(),sctpTransport:this.sctpTransport,signalingState:this.signalingState}).toJSON()}assertNotClosed(){if(this.isClosed)throw Error("RTCPeerConnection is closed")}setSignalingState(W){if(t5("signalingStateChange",W),this.signalingState=W,this.signalingStateChange.execute(W),this.onsignalingstatechange)this.onsignalingstatechange({})}createPeerConnectionStats(){let W=FG();return{type:"peer-connection",id:Z8("peer-connection"),timestamp:W,dataChannelsOpened:this.sctpManager.dataChannelsOpened,dataChannelsClosed:this.sctpManager.dataChannelsClosed}}async getStats(W){let G=[];G.push(this.createPeerConnectionStats());let X=await this.transceiverManager.getStats(W);G.push(...X);let Y=await this.secureManager.getStats();if(G.push(...Y),this.sctpTransport){let Z=await this.sctpManager.getStats();if(Z)G.push(...Z)}return new Oi(G)}async close(){if(this.isClosed)return;this.isClosed=!0,this.setSignalingState("closed"),this.transceiverManager.close(),await this.secureManager.close(),await this.sctpManager.close(),this.onDataChannel.allUnsubscribe(),this.iceGatheringStateChange.allUnsubscribe(),this.iceConnectionStateChange.allUnsubscribe(),this.signalingStateChange.allUnsubscribe(),this.onTransceiverAdded.allUnsubscribe(),this.onRemoteTransceiverAdded.allUnsubscribe(),this.onIceCandidate.allUnsubscribe(),t5("peerConnection closed")}},H2=(W,G)=>W.find((X)=>X.mimeType.toLowerCase()===G.mimeType.toLowerCase())?G:void 0;function Jx(){return{codecs:{audio:[kS(),_S()],video:[xS()]},headerExtensions:{audio:[],video:[]},iceTransportPolicy:"all",iceServers:[{urls:"stun:stun.l.google.com:19302"}],icePortRange:void 0,iceInterfaceAddresses:void 0,iceAdditionalHostAddresses:void 0,iceUseIpv4:!0,iceUseIpv6:!0,iceFilterStunResponse:void 0,iceFilterCandidatePair:void 0,icePasswordPrefix:void 0,iceUseLinkLocalAddress:void 0,dtls:{},bundlePolicy:"max-compat",debug:{},midSuffix:!1,forceTurnTCP:!1,maxMessageSize:fQ}}var OA0=Jx(),Sr=M1("werift:packages/webrtc/src/media/rtpTransceiverManager.ts"),xr=class{constructor(W,G,X){this.cname=W,this.config=G,this.router=X}transceivers=[];onTransceiverAdded=new f0;onRemoteTransceiverAdded=new f0;onTrack=new f0;onNegotiationNeeded=new f0;getTransceivers(){return this.transceivers}getSenders(){return this.getTransceivers().map((W)=>W.sender)}getReceivers(){return this.getTransceivers().map((W)=>W.receiver)}getTransceiverByMLineIndex(W){return this.transceivers.find((G)=>G.mLineIndex===W)}pushTransceiver(W){this.transceivers.push(W)}replaceTransceiver(W,G){this.transceivers[G]=W}addTransceiver(W,G,X={}){let Y=typeof W==="string"?W:W.kind,Z=X.direction||"sendrecv",V=new Pr(W),Q=new Vx(this.config,Y,V.ssrc),J=new Ki(Y,G,Q,V,Z);J.options=X,this.router.registerRtpSender(J.sender);let U=this.transceivers.findIndex((N)=>N.currentDirection==="inactive"&&!N.usedForSender),q=this.transceivers.find((N)=>N.currentDirection==="inactive"&&!N.usedForSender);if(U>-1&&q)this.replaceTransceiver(J,U),J.mLineIndex=q.mLineIndex,J.mid=q.mid,q.setCurrentDirection(void 0);else this.pushTransceiver(J);return this.onTransceiverAdded.execute(J),J}addTrack(W,G){if(this.getSenders().find((Z)=>Z.track?.uuid===W.uuid))throw Error("Track already added");let X=this.transceivers.find((Z)=>Z.sender.track==null&&Z.kind===W.kind&&mN.includes(Z.direction)===!0);if(X)return X.sender.registerTrack(W),X;let Y=this.transceivers.find((Z)=>Z.sender.track==null&&Z.kind===W.kind&&mN.includes(Z.direction)===!1&&!Z.usedForSender);if(Y){switch(Y.sender.registerTrack(W),Y.direction){case"recvonly":Y.setDirection("sendrecv");break;case"inactive":Y.setDirection("sendonly");break}return Y}else return this.addTransceiver(W,void 0,{direction:"sendrecv"})}removeTrack(W){if(!this.getSenders().find(({ssrc:X})=>W.ssrc===X))throw Error("Sender does not exist");let G=this.transceivers.find(({sender:{ssrc:X}})=>W.ssrc===X);if(!G)throw Error("No matching transceiver found");if(W.stop(),G.currentDirection==="recvonly"){this.onNegotiationNeeded.execute();return}if(G.stopping||G.stopped)G.setDirection("inactive");else if(G.direction==="sendrecv")G.setDirection("recvonly");else if(G.direction==="sendonly"||G.direction==="recvonly")G.setDirection("inactive")}assignTransceiverCodecs(W){let G=this.config.codecs[W.kind].filter((X)=>{switch(X.direction){case"recvonly":{if(ji.includes(W.direction))return!0;return!1}case"sendonly":{if(mN.includes(W.direction))return!0;return!1}case"sendrecv":{if([hS,uS,gS].includes(W.direction))return!0;return!1}case"all":return!0;default:return!1}});W.codecs=G}getLocalRtpParams(W){if(W.mid==null)throw Error("mid not assigned");return{codecs:W.codecs,muxId:W.mid,headerExtensions:W.headerExtensions,rtcp:{cname:this.cname,ssrc:W.sender.ssrc,mux:!0}}}getRemoteRtpParams(W,G){return{muxId:W.rtp.muxId,rtcp:W.rtp.rtcp,codecs:G.codecs,headerExtensions:G.headerExtensions,encodings:Object.values(G.codecs.reduce((Y,Z)=>{if(Z.name.toLowerCase()==="rtx"){let V=UH(Z.parameters??""),Q=Y[V.apt];if(Q&&W.ssrc.length===2)Q.rtx=new Yi({ssrc:W.ssrc[1].ssrc});return Y}return Y[Z.payloadType]=new Zi({ssrc:W.ssrc[0]?.ssrc,payloadType:Z.payloadType}),Y},{}))}}setRemoteRTP(W,G,X,Y){if(!W.mid)W.mid=G.rtp.muxId;if(W.mLineIndex=Y,W.codecs=G.rtp.codecs.filter((J)=>{let U=this.config.codecs[G.kind]||[],q=H2(U,J);if(!q)return!1;if(q?.name.toLowerCase()==="rtx"){let A=UH(q.parameters??"").apt,H=G.rtp.codecs.find((I)=>I.payloadType===A);if(!H)return!1;return!!H2(U,H)}return!0}),Sr("negotiated codecs",W.codecs),W.codecs.length===0)throw Error("negotiate codecs failed.");W.headerExtensions=G.rtp.headerExtensions.filter((J)=>(this.config.headerExtensions[G.kind]||[]).find((U)=>U.uri===J.uri));let Z=G.direction??"inactive",V=Ri(Z);if(["answer","pranswer"].includes(X))W.setCurrentDirection(V);else W.offerDirection=V;let Q=this.getLocalRtpParams(W);if(W.sender.prepareSend(Q),["recvonly","sendrecv"].includes(W.direction)){let J=this.getRemoteRtpParams(G,W);for(let U of G.simulcastParameters)this.router.registerRtpReceiverByRid(W,U,J);W.receiver.prepareReceive(J),this.router.registerRtpReceiverBySsrc(W,J)}if(["sendonly","sendrecv"].includes(Z)){if(G.msid){let[J,U]=G.msid.split(" ");W.receiver.remoteStreamId=J,W.receiver.remoteTrackId=U}this.onTrack.execute({track:W.receiver.track,transceiver:W,stream:new Di({id:W.receiver.remoteStreamId,tracks:[W.receiver.track]})})}if(G.ssrc[0]?.ssrc)W.receiver.setupTWCC(G.ssrc[0].ssrc)}async getStats(W){let G=[];for(let X of this.transceivers){let Y=!W||X.sender.track===W||X.receiver.track===W;if(X.sender){let Z=await X.sender.getStats();if(Z)for(let V of Z)if(V.type==="outbound-rtp"||V.type==="media-source"){if(Y)G.push(V)}else G.push(V)}if(X.receiver){let Z=await X.receiver.getStats();if(Z)for(let V of Z)if(V.type==="inbound-rtp"||V.type==="remote-outbound-rtp"){if(Y)G.push(V)}else G.push(V)}if(Y){let Z=X.getCodecStats();if(Z)G.push(...Z)}}return G}close(){for(let W of this.transceivers)W.receiver.stop(),W.sender.stop();this.onTransceiverAdded.allUnsubscribe(),this.onRemoteTransceiverAdded.allUnsubscribe(),this.onTrack.allUnsubscribe(),this.onNegotiationNeeded.allUnsubscribe()}};class NK extends Qx{toJSON(){return{}}createDataChannel(...W){let G=super.createDataChannel(...W);try{G.toJSON=()=>({})}catch{}return G}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var pY={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},kr={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},_r=BigInt(0),Ux=BigInt(1),HK=BigInt(2);function yr(W){let G=pY.p,X=BigInt(3),Y=BigInt(6),Z=BigInt(11),V=BigInt(22),Q=BigInt(23),J=BigInt(44),U=BigInt(88),q=W*W*W%G,N=q*q*W%G,A=V5(N,X,G)*N%G,H=V5(A,X,G)*N%G,I=V5(H,HK,G)*q%G,w=V5(I,Z,G)*I%G,C=V5(w,V,G)*w%G,D=V5(C,J,G)*C%G,x=V5(D,U,G)*D%G,h=V5(x,J,G)*C%G,l=V5(h,X,G)*N%G,u=V5(l,Q,G)*w%G,n=V5(u,Y,G)*q%G,c=V5(n,HK,G);if(!OH.eql(OH.sqr(c),W))throw Error("Cannot find square root");return c}var OH=T5(pY.p,{sqrt:yr}),Hx=CY({...pY,Fp:OH,lowS:!0,endo:kr},jY),qx={};function KH(W,...G){let X=qx[W];if(X===void 0){let Y=jY(qN(W));X=o9(Y,Y),qx[W]=X}return jY(o9(X,...G))}var zK=(W)=>W.toBytes(!0).slice(1),lY=(()=>Hx.Point)(),IK=(W)=>W%HK===_r;function AK(W){let{Fn:G,BASE:X}=lY,Y=d6(G,W),Z=X.multiply(Y);return{scalar:IK(Z.y)?Y:G.neg(Y),bytes:zK(Z)}}function Ax(W){let G=OH;if(!G.isValidNot0(W))throw Error("invalid x: Fail if x \u2265 p");let X=G.create(W*W),Y=G.create(X*W+BigInt(7)),Z=G.sqrt(Y);if(!IK(Z))Z=G.neg(Z);let V=lY.fromAffine({x:W,y:Z});return V.assertValidity(),V}var NJ=L4;function zx(...W){return lY.Fn.create(NJ(KH("BIP0340/challenge",...W)))}function Nx(W){return AK(W).bytes}function vr(W,G,X=HG(32)){let{Fn:Y}=lY,Z=B8("message",W),{bytes:V,scalar:Q}=AK(G),J=B8("auxRand",X,32),U=Y.toBytes(Q^NJ(KH("BIP0340/aux",J))),q=KH("BIP0340/nonce",U,V,Z),{bytes:N,scalar:A}=AK(q),H=zx(N,V,Z),I=new Uint8Array(64);if(I.set(N,0),I.set(Y.toBytes(Y.create(A+H*Q)),32),!Ix(I,Z,V))throw Error("sign: Invalid signature produced");return I}function Ix(W,G,X){let{Fn:Y,BASE:Z}=lY,V=B8("signature",W,64),Q=B8("message",G),J=B8("publicKey",X,32);try{let U=Ax(NJ(J)),q=NJ(V.subarray(0,32));if(!PQ(q,Ux,pY.p))return!1;let N=NJ(V.subarray(32,64));if(!PQ(N,Ux,pY.n))return!1;let A=zx(Y.toBytes(q),zK(U),Q),H=Z.multiplyUnsafe(N).add(U.multiplyUnsafe(Y.neg(A))),{x:I,y:w}=H.toAffine();if(H.is0()||!IK(w)||I!==q)return!1;return!0}catch(U){return!1}}var wx=(()=>{let X=(Z=HG(48))=>{return IN(Z,pY.n)};Hx.utils.randomSecretKey;function Y(Z){let V=X(Z);return{secretKey:V,publicKey:Nx(V)}}return{keygen:Y,getPublicKey:Nx,sign:vr,verify:Ix,Point:lY,utils:{randomSecretKey:X,randomPrivateKey:X,taggedHash:KH,lift_x:Ax,pointToBytes:zK,numberToBytesBE:wY,bytesToNumberBE:L4,mod:Z5},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})();var jx=(W)=>Uint8Array.from(W.match(/.{2}/g).map((G)=>parseInt(G,16))),gr=(W)=>[...W].map((G)=>G.toString(16).padStart(2,"0")).join(""),ur=async(W)=>{try{if(typeof W.pubkey!=="string"||typeof W.sig!=="string"||typeof W.id!=="string")return!1;let G=new TextEncoder().encode(JSON.stringify([0,W.pubkey,W.created_at,W.kind,W.tags,W.content])),X=new Uint8Array(await crypto.subtle.digest("SHA-256",G));if(gr(X)!==W.id)return!1;return wx.verify(jx(W.sig),X,jx(W.pubkey))}catch{return!1}},hr=(W,G)=>{if(W.kinds&&!W.kinds.includes(G.kind))return!1;if(W.since&&G.created_at<W.since-60)return!1;if(W["#x"]){let X=(G.tags??[]).filter((Y)=>Y?.[0]==="x").map((Y)=>Y[1]);if(!W["#x"].some((Y)=>X.includes(Y)))return!1}return!0};function Ox({port:W=Number(process.env.PORT)||8080}={}){let G=new Map,X=0,Y=0,Z=Bun.serve({port:W,fetch(V,Q){if(Q.upgrade(V))return;return Response.json({relay:"GenosSRV embedded relay",protocol:"nostr (ephemeral subset)",connections:G.size,events:X,dropped:Y})},websocket:{open(V){G.set(V,new Map)},close(V){G.delete(V)},async message(V,Q){let J;try{J=JSON.parse(String(Q))}catch{return}if(!Array.isArray(J))return;let[U,q,N]=J;if(U==="REQ"&&typeof q==="string"&&N&&typeof N==="object"){G.get(V)?.set(q,N),V.send(JSON.stringify(["EOSE",q]));return}if(U==="CLOSE"&&typeof q==="string"){G.get(V)?.delete(q);return}if(U==="EVENT"&&q&&typeof q==="object"){if(!await ur(q)){Y++,V.send(JSON.stringify(["OK",q.id??"",!1,"invalid: bad signature"]));return}X++,V.send(JSON.stringify(["OK",q.id,!0,""]));for(let[A,H]of G)for(let[I,w]of H)if(hr(w,q)){try{A.send(JSON.stringify(["EVENT",I,q]))}catch{}break}}}}});return console.info(`\uD83D\uDCE1 Relay listening on :${Z.port} (ephemeral, schnorr-verified)`),{port:Z.port,stats:()=>({connections:G.size,events:X,dropped:Y}),stop:()=>Z.stop(!0)}}var CH="6.15.0";function br(W,G,X){let Y=G.split("|").map((V)=>V.trim());for(let V=0;V<Y.length;V++)switch(G){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof W===G)return}let Z=Error(`invalid value for type ${G}`);throw Z.code="INVALID_ARGUMENT",Z.argument=`value.${X}`,Z.value=W,Z}async function p7(W){let G=Object.keys(W);return(await Promise.all(G.map((Y)=>Promise.resolve(W[Y])))).reduce((Y,Z,V)=>{return Y[G[V]]=Z,Y},{})}function Q8(W,G,X){for(let Y in G){let Z=G[Y],V=X?X[Y]:null;if(V)br(Z,V,Y);Object.defineProperty(W,Y,{enumerable:!0,value:Z,writable:!1})}}function dY(W,G){if(W==null)return"null";if(G==null)G=new Set;if(typeof W==="object"){if(G.has(W))return"[Circular]";G.add(W)}if(Array.isArray(W))return"[ "+W.map((X)=>dY(X,G)).join(", ")+" ]";if(W instanceof Uint8Array){let Y="0x";for(let Z=0;Z<W.length;Z++)Y+="0123456789abcdef"[W[Z]>>4],Y+="0123456789abcdef"[W[Z]&15];return Y}if(typeof W==="object"&&typeof W.toJSON==="function")return dY(W.toJSON(),G);switch(typeof W){case"boolean":case"number":case"symbol":return W.toString();case"bigint":return BigInt(W).toString();case"string":return JSON.stringify(W);case"object":{let X=Object.keys(W);return X.sort(),"{ "+X.map((Y)=>`${dY(Y,G)}: ${dY(W[Y],G)}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function DH(W,G){return W&&W.code===G}function HJ(W,G,X){let Y=W;{let V=[];if(X){if("message"in X||"code"in X||"name"in X)throw Error(`value will overwrite populated values: ${dY(X)}`);for(let Q in X){if(Q==="shortMessage")continue;let J=X[Q];V.push(Q+"="+dY(J))}}if(V.push(`code=${G}`),V.push(`version=${CH}`),V.length)W+=" ("+V.join(", ")+")"}let Z;switch(G){case"INVALID_ARGUMENT":Z=TypeError(W);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":Z=RangeError(W);break;default:Z=Error(W)}if(Q8(Z,{code:G}),X)Object.assign(Z,X);if(Z.shortMessage==null)Q8(Z,{shortMessage:Y});return Z}function t0(W,G,X,Y){if(!W)throw HJ(G,X,Y)}function s(W,G,X,Y){t0(W,G,"INVALID_ARGUMENT",{argument:X,value:Y})}var mr=["NFD","NFC","NFKD","NFKC"].reduce((W,G)=>{try{if("test".normalize(G)!=="test")throw Error("bad");if(G==="NFD"){let X=String.fromCharCode(233).normalize("NFD"),Y=String.fromCharCode(101,769);if(X!==Y)throw Error("broken")}W.push(G)}catch(X){}return W},[]);function oY(W){t0(mr.indexOf(W)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:W}})}function l4(W,G,X){if(X==null)X="";if(W!==G){let Y=X,Z="new";if(X)Y+=".",Z+=" "+X;t0(!1,`private constructor; use ${Y}from* methods`,"UNSUPPORTED_OPERATION",{operation:Z})}}function Cx(W,G,X){if(W instanceof Uint8Array){if(X)return new Uint8Array(W);return W}if(typeof W==="string"&&W.match(/^0x(?:[0-9a-f][0-9a-f])*$/i)){let Y=new Uint8Array((W.length-2)/2),Z=2;for(let V=0;V<Y.length;V++)Y[V]=parseInt(W.substring(Z,Z+2),16),Z+=2;return Y}s(!1,"invalid BytesLike value",G||"value",W)}function R0(W,G){return Cx(W,G,!1)}function Y7(W,G){return Cx(W,G,!0)}function T9(W,G){if(typeof W!=="string"||!W.match(/^0x[0-9A-Fa-f]*$/))return!1;if(typeof G==="number"&&W.length!==2+2*G)return!1;if(G===!0&&W.length%2!==0)return!1;return!0}function l7(W){return T9(W,!0)||W instanceof Uint8Array}var Kx="0123456789abcdef";function C0(W){let G=R0(W),X="0x";for(let Y=0;Y<G.length;Y++){let Z=G[Y];X+=Kx[(Z&240)>>4]+Kx[Z&15]}return X}function s1(W){return"0x"+W.map((G)=>C0(G).substring(2)).join("")}function d4(W){if(T9(W,!0))return(W.length-2)/2;return R0(W).length}function nY(W,G,X){let Y=R0(W);if(X!=null&&X>Y.length)t0(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:Y,length:Y.length,offset:X});return C0(Y.slice(G==null?0:G,X==null?Y.length:X))}function fr(W,G,X){let Y=R0(W);t0(G>=Y.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(Y),length:G,offset:G+1});let Z=new Uint8Array(G);if(Z.fill(0),X)Z.set(Y,G-Y.length);else Z.set(Y,0);return C0(Z)}function q5(W,G){return fr(W,G,!0)}var wK=BigInt(0),SG=BigInt(1),iY=9007199254740991;function MH(W,G){let X=u1(W,"value"),Y=BigInt(i8(G,"width")),Z=SG<<Y-SG;if(X<wK){X=-X,t0(X<=Z,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:W});let V=(SG<<Y)-SG;return(~X&V)+SG}else t0(X<Z,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:W});return X}function TH(W,G){let X=AJ(W,"value"),Y=BigInt(i8(G,"bits"));return X&(SG<<Y)-SG}function u1(W,G){switch(typeof W){case"bigint":return W;case"number":return s(Number.isInteger(W),"underflow",G||"value",W),s(W>=-iY&&W<=iY,"overflow",G||"value",W),BigInt(W);case"string":try{if(W==="")throw Error("empty string");if(W[0]==="-"&&W[1]!=="-")return-BigInt(W.substring(1));return BigInt(W)}catch(X){s(!1,`invalid BigNumberish string: ${X.message}`,G||"value",W)}}s(!1,"invalid BigNumberish value",G||"value",W)}function AJ(W,G){let X=u1(W,G);return t0(X>=wK,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:W}),X}var Dx="0123456789abcdef";function rY(W){if(W instanceof Uint8Array){let G="0x0";for(let X of W)G+=Dx[X>>4],G+=Dx[X&15];return BigInt(G)}return u1(W)}function i8(W,G){switch(typeof W){case"bigint":return s(W>=-iY&&W<=iY,"overflow",G||"value",W),Number(W);case"number":return s(Number.isInteger(W),"underflow",G||"value",W),s(W>=-iY&&W<=iY,"overflow",G||"value",W),W;case"string":try{if(W==="")throw Error("empty string");return i8(BigInt(W),G)}catch(X){s(!1,`invalid numeric string: ${X.message}`,G||"value",W)}}s(!1,"invalid numeric value",G||"value",W)}function Z7(W,G){let Y=AJ(W,"value").toString(16);if(G==null){if(Y.length%2)Y="0"+Y}else{let Z=i8(G,"width");t0(Z*2>=Y.length,`value exceeds width (${Z} bytes)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:W});while(Y.length<Z*2)Y="0"+Y}return"0x"+Y}function J8(W){let G=AJ(W,"value");if(G===wK)return new Uint8Array([]);let X=G.toString(16);if(X.length%2)X="0"+X;let Y=new Uint8Array(X.length/2);for(let Z=0;Z<Y.length;Z++){let V=Z*2;Y[Z]=parseInt(X.substring(V,V+2),16)}return Y}function PH(W){let G=C0(l7(W)?W:J8(W)).substring(2);while(G.startsWith("0"))G=G.substring(1);if(G==="")G="0";return"0x"+G}var LH="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",RH=null;function cr(W){if(RH==null){RH={};for(let X=0;X<LH.length;X++)RH[LH[X]]=BigInt(X)}let G=RH[W];return s(G!=null,"invalid base58 value","letter",W),G}var pr=BigInt(0),jK=BigInt(58);function BH(W){let G=R0(W),X=rY(G),Y="";while(X)Y=LH[Number(X%jK)]+Y,X/=jK;for(let Z=0;Z<G.length;Z++){if(G[Z])break;Y=LH[0]+Y}return Y}function EH(W){let G=pr;for(let X=0;X<W.length;X++)G*=jK,G+=cr(W[X]);return G}function lr(W,G,X,Y,Z){s(!1,`invalid codepoint at offset ${G}; ${W}`,"bytes",X)}function Mx(W,G,X,Y,Z){if(W==="BAD_PREFIX"||W==="UNEXPECTED_CONTINUE"){let V=0;for(let Q=G+1;Q<X.length;Q++){if(X[Q]>>6!==2)break;V++}return V}if(W==="OVERRUN")return X.length-G-1;return 0}function dr(W,G,X,Y,Z){if(W==="OVERLONG")return s(typeof Z==="number","invalid bad code point for replacement","badCodepoint",Z),Y.push(Z),0;return Y.push(65533),Mx(W,G,X,Y,Z)}var Tx=Object.freeze({error:lr,ignore:Mx,replace:dr});function P9(W,G){if(s(typeof W==="string","invalid string value","str",W),G!=null)oY(G),W=W.normalize(G);let X=[];for(let Y=0;Y<W.length;Y++){let Z=W.charCodeAt(Y);if(Z<128)X.push(Z);else if(Z<2048)X.push(Z>>6|192),X.push(Z&63|128);else if((Z&64512)==55296){Y++;let V=W.charCodeAt(Y);s(Y<W.length&&(V&64512)===56320,"invalid surrogate pair","str",W);let Q=65536+((Z&1023)<<10)+(V&1023);X.push(Q>>18|240),X.push(Q>>12&63|128),X.push(Q>>6&63|128),X.push(Q&63|128)}else X.push(Z>>12|224),X.push(Z>>6&63|128),X.push(Z&63|128)}return new Uint8Array(X)}function or(W){let G=W.toString(16);while(G.length<2)G="0"+G;return"0x"+G}function Px(W,G,X){let Y=0;for(let Z=0;Z<X;Z++)Y=Y*256+W[G+Z];return Y}function Rx(W,G,X,Y){let Z=[];while(X<G+1+Y){let V=Lx(W,X);Z.push(V.result),X+=V.consumed,t0(X<=G+1+Y,"child data too short","BUFFER_OVERRUN",{buffer:W,length:Y,offset:G})}return{consumed:1+Y,result:Z}}function Lx(W,G){t0(W.length!==0,"data too short","BUFFER_OVERRUN",{buffer:W,length:0,offset:1});let X=(Y)=>{t0(Y<=W.length,"data short segment too short","BUFFER_OVERRUN",{buffer:W,length:W.length,offset:Y})};if(W[G]>=248){let Y=W[G]-247;X(G+1+Y);let Z=Px(W,G+1,Y);return X(G+1+Y+Z),Rx(W,G,G+1+Y,Y+Z)}else if(W[G]>=192){let Y=W[G]-192;return X(G+1+Y),Rx(W,G,G+1,Y)}else if(W[G]>=184){let Y=W[G]-183;X(G+1+Y);let Z=Px(W,G+1,Y);X(G+1+Y+Z);let V=C0(W.slice(G+1+Y,G+1+Y+Z));return{consumed:1+Y+Z,result:V}}else if(W[G]>=128){let Y=W[G]-128;X(G+1+Y);let Z=C0(W.slice(G+1,G+1+Y));return{consumed:1+Y,result:Z}}return{consumed:1,result:or(W[G])}}function WW(W){let G=R0(W,"data"),X=Lx(G,0);return s(X.consumed===G.length,"unexpected junk after rlp payload","data",W),X.result}function Bx(W){let G=[];while(W)G.unshift(W&255),W>>=8;return G}function $x(W){if(Array.isArray(W)){let Y=[];if(W.forEach(function(V){Y=Y.concat($x(V))}),Y.length<=55)return Y.unshift(192+Y.length),Y;let Z=Bx(Y.length);return Z.unshift(247+Z.length),Z.concat(Y)}let G=Array.prototype.slice.call(R0(W,"object"));if(G.length===1&&G[0]<=127)return G;else if(G.length<=55)return G.unshift(128+G.length),G;let X=Bx(G.length);return X.unshift(183+X.length),X.concat(G)}var Ex="0123456789abcdef";function R5(W){let G="0x";for(let X of $x(W))G+=Ex[X>>4],G+=Ex[X&15];return G}function $H(W){let G=R0(W,"randomBytes");G[6]=G[6]&15|64,G[8]=G[8]&63|128;let X=C0(G);return[X.substring(2,10),X.substring(10,14),X.substring(14,18),X.substring(18,22),X.substring(22,34)].join("-")}import{createHash as OK,createHmac as Fx,pbkdf2Sync as Sx,randomBytes as xx}from"crypto";var kx=!1,_x=function(W,G,X){return Fx(W,G).update(X).digest()},yx=_x;function GW(W,G,X){let Y=R0(G,"key"),Z=R0(X,"data");return C0(yx(W,Y,Z))}GW._=_x;GW.lock=function(){kx=!0};GW.register=function(W){if(kx)throw Error("computeHmac is locked");yx=W};Object.freeze(GW);function R9(W){if(!Number.isSafeInteger(W)||W<0)throw Error(`Wrong positive integer: ${W}`)}function zJ(W,...G){if(!(W instanceof Uint8Array))throw Error("Expected Uint8Array");if(G.length>0&&!G.includes(W.length))throw Error(`Expected Uint8Array of length ${G}, not of length=${W.length}`)}function FH(W){if(typeof W!=="function"||typeof W.create!=="function")throw Error("Hash should be wrapped by utils.wrapConstructor");R9(W.outputLen),R9(W.blockLen)}function o4(W,G=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(G&&W.finished)throw Error("Hash#digest() has already been called")}function SH(W,G){zJ(W);let X=G.outputLen;if(W.length<X)throw Error(`digestInto() expects output buffer of length at least ${X}`)}var xH=BigInt(4294967295),vx=BigInt(32);function Ga(W,G=!1){if(G)return{h:Number(W&xH),l:Number(W>>vx&xH)};return{h:Number(W>>vx&xH)|0,l:Number(W&xH)|0}}function gx(W,G=!1){let X=new Uint32Array(W.length),Y=new Uint32Array(W.length);for(let Z=0;Z<W.length;Z++){let{h:V,l:Q}=Ga(W[Z],G);[X[Z],Y[Z]]=[V,Q]}return[X,Y]}var ux=(W,G,X)=>W<<X|G>>>32-X,hx=(W,G,X)=>G<<X|W>>>32-X,bx=(W,G,X)=>G<<X-32|W>>>64-X,mx=(W,G,X)=>W<<X-32|G>>>64-X;import*as IJ from"crypto";var kH=IJ&&typeof IJ==="object"&&"webcrypto"in IJ?IJ.webcrypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */var fx=(W)=>W instanceof Uint8Array;var aY=(W)=>new Uint32Array(W.buffer,W.byteOffset,Math.floor(W.byteLength/4)),sY=(W)=>new DataView(W.buffer,W.byteOffset,W.byteLength),V7=(W,G)=>W<<32-G|W>>>G,Xa=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!Xa)throw Error("Non little-endian hardware is not supported");var Ya=async()=>{};async function _H(W,G,X){let Y=Date.now();for(let Z=0;Z<W;Z++){X(Z);let V=Date.now()-Y;if(V>=0&&V<G)continue;await Ya(),Y+=V}}function Za(W){if(typeof W!=="string")throw Error(`utf8ToBytes expected string, got ${typeof W}`);return new Uint8Array(new TextEncoder().encode(W))}function d7(W){if(typeof W==="string")W=Za(W);if(!fx(W))throw Error(`expected Uint8Array, got ${typeof W}`);return W}function cx(...W){let G=new Uint8Array(W.reduce((Y,Z)=>Y+Z.length,0)),X=0;return W.forEach((Y)=>{if(!fx(Y))throw Error("Uint8Array expected");G.set(Y,X),X+=Y.length}),G}class xG{clone(){return this._cloneInto()}}var Va={}.toString;function yH(W,G){if(G!==void 0&&Va.call(G)!=="[object Object]")throw Error("Options should be object or undefined");return Object.assign(W,G)}function tY(W){let G=(Y)=>W().update(d7(Y)).digest(),X=W();return G.outputLen=X.outputLen,G.blockLen=X.blockLen,G.create=()=>W(),G}function px(W=32){if(kH&&typeof kH.getRandomValues==="function")return kH.getRandomValues(new Uint8Array(W));throw Error("crypto.getRandomValues must be defined")}var[ox,nx,ix]=[[],[],[]],Qa=BigInt(0),wJ=BigInt(1),Ja=BigInt(2),Ua=BigInt(7),qa=BigInt(256),Na=BigInt(113);for(let W=0,G=wJ,X=1,Y=0;W<24;W++){[X,Y]=[Y,(2*X+3*Y)%5],ox.push(2*(5*Y+X)),nx.push((W+1)*(W+2)/2%64);let Z=Qa;for(let V=0;V<7;V++)if(G=(G<<wJ^(G>>Ua)*Na)%qa,G&Ja)Z^=wJ<<(wJ<<BigInt(V))-wJ;ix.push(Z)}var[Ha,Aa]=gx(ix,!0),lx=(W,G,X)=>X>32?bx(W,G,X):ux(W,G,X),dx=(W,G,X)=>X>32?mx(W,G,X):hx(W,G,X);function za(W,G=24){let X=new Uint32Array(10);for(let Y=24-G;Y<24;Y++){for(let Q=0;Q<10;Q++)X[Q]=W[Q]^W[Q+10]^W[Q+20]^W[Q+30]^W[Q+40];for(let Q=0;Q<10;Q+=2){let J=(Q+8)%10,U=(Q+2)%10,q=X[U],N=X[U+1],A=lx(q,N,1)^X[J],H=dx(q,N,1)^X[J+1];for(let I=0;I<50;I+=10)W[Q+I]^=A,W[Q+I+1]^=H}let Z=W[2],V=W[3];for(let Q=0;Q<24;Q++){let J=nx[Q],U=lx(Z,V,J),q=dx(Z,V,J),N=ox[Q];Z=W[N],V=W[N+1],W[N]=U,W[N+1]=q}for(let Q=0;Q<50;Q+=10){for(let J=0;J<10;J++)X[J]=W[Q+J];for(let J=0;J<10;J++)W[Q+J]^=~X[(J+2)%10]&X[(J+4)%10]}W[0]^=Ha[Y],W[1]^=Aa[Y]}X.fill(0)}class KK extends xG{constructor(W,G,X,Y=!1,Z=24){super();if(this.blockLen=W,this.suffix=G,this.outputLen=X,this.enableXOF=Y,this.rounds=Z,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,R9(X),0>=this.blockLen||this.blockLen>=200)throw Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=aY(this.state)}keccak(){za(this.state32,this.rounds),this.posOut=0,this.pos=0}update(W){o4(this);let{blockLen:G,state:X}=this;W=d7(W);let Y=W.length;for(let Z=0;Z<Y;){let V=Math.min(G-this.pos,Y-Z);for(let Q=0;Q<V;Q++)X[this.pos++]^=W[Z++];if(this.pos===G)this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:W,suffix:G,pos:X,blockLen:Y}=this;if(W[X]^=G,(G&128)!==0&&X===Y-1)this.keccak();W[Y-1]^=128,this.keccak()}writeInto(W){o4(this,!1),zJ(W),this.finish();let G=this.state,{blockLen:X}=this;for(let Y=0,Z=W.length;Y<Z;){if(this.posOut>=X)this.keccak();let V=Math.min(X-this.posOut,Z-Y);W.set(G.subarray(this.posOut,this.posOut+V),Y),this.posOut+=V,Y+=V}return W}xofInto(W){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto(W)}xof(W){return R9(W),this.xofInto(new Uint8Array(W))}digestInto(W){if(SH(W,this),this.finished)throw Error("digest() was already called");return this.writeInto(W),this.destroy(),W}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(W){let{blockLen:G,suffix:X,outputLen:Y,rounds:Z,enableXOF:V}=this;return W||(W=new KK(G,X,Y,V,Z)),W.state32.set(this.state32),W.pos=this.pos,W.posOut=this.posOut,W.finished=this.finished,W.rounds=Z,W.suffix=X,W.outputLen=Y,W.enableXOF=V,W.destroyed=this.destroyed,W}}var Ia=(W,G,X)=>tY(()=>new KK(G,W,X));var rx=Ia(1,136,32);var ax=!1,sx=function(W){return rx(W)},tx=sx;function X8(W){let G=R0(W,"data");return C0(tx(G))}X8._=sx;X8.lock=function(){ax=!0};X8.register=function(W){if(ax)throw TypeError("keccak256 is locked");tx=W};Object.freeze(X8);function wa(W,G,X,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(G,X,Y);let Z=BigInt(32),V=BigInt(4294967295),Q=Number(X>>Z&V),J=Number(X&V),U=Y?4:0,q=Y?0:4;W.setUint32(G+U,Q,Y),W.setUint32(G+q,J,Y)}class jJ extends xG{constructor(W,G,X,Y){super();this.blockLen=W,this.outputLen=G,this.padOffset=X,this.isLE=Y,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(W),this.view=sY(this.buffer)}update(W){o4(this);let{view:G,buffer:X,blockLen:Y}=this;W=d7(W);let Z=W.length;for(let V=0;V<Z;){let Q=Math.min(Y-this.pos,Z-V);if(Q===Y){let J=sY(W);for(;Y<=Z-V;V+=Y)this.process(J,V);continue}if(X.set(W.subarray(V,V+Q),this.pos),this.pos+=Q,V+=Q,this.pos===Y)this.process(G,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){o4(this),SH(W,this),this.finished=!0;let{buffer:G,view:X,blockLen:Y,isLE:Z}=this,{pos:V}=this;if(G[V++]=128,this.buffer.subarray(V).fill(0),this.padOffset>Y-V)this.process(X,0),V=0;for(let N=V;N<Y;N++)G[N]=0;wa(X,Y-8,BigInt(this.length*8),Z),this.process(X,0);let Q=sY(W),J=this.outputLen;if(J%4)throw Error("_sha2: outputLen should be aligned to 32bit");let U=J/4,q=this.get();if(U>q.length)throw Error("_sha2: outputLen bigger than state");for(let N=0;N<U;N++)Q.setUint32(4*N,q[N],Z)}digest(){let{buffer:W,outputLen:G}=this;this.digestInto(W);let X=W.slice(0,G);return this.destroy(),X}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:G,buffer:X,length:Y,finished:Z,destroyed:V,pos:Q}=this;if(W.length=Y,W.pos=Q,W.finished=Z,W.destroyed=V,Y%G)W.buffer.set(X);return W}}var ja=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),Wk=Uint8Array.from({length:16},(W,G)=>G),Oa=Wk.map((W)=>(9*W+5)%16),CK=[Wk],DK=[Oa];for(let W=0;W<4;W++)for(let G of[CK,DK])G.push(G[W].map((X)=>ja[X]));var Gk=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map((W)=>new Uint8Array(W)),Ka=CK.map((W,G)=>W.map((X)=>Gk[G][X])),Ca=DK.map((W,G)=>W.map((X)=>Gk[G][X])),Da=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),Ma=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),vH=(W,G)=>W<<G|W>>>32-G;function ex(W,G,X,Y){if(W===0)return G^X^Y;else if(W===1)return G&X|~G&Y;else if(W===2)return(G|~X)^Y;else if(W===3)return G&Y|X&~Y;else return G^(X|~Y)}var gH=new Uint32Array(16);class Xk extends jJ{constructor(){super(64,20,8,!0);this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){let{h0:W,h1:G,h2:X,h3:Y,h4:Z}=this;return[W,G,X,Y,Z]}set(W,G,X,Y,Z){this.h0=W|0,this.h1=G|0,this.h2=X|0,this.h3=Y|0,this.h4=Z|0}process(W,G){for(let H=0;H<16;H++,G+=4)gH[H]=W.getUint32(G,!0);let X=this.h0|0,Y=X,Z=this.h1|0,V=Z,Q=this.h2|0,J=Q,U=this.h3|0,q=U,N=this.h4|0,A=N;for(let H=0;H<5;H++){let I=4-H,w=Da[H],C=Ma[H],D=CK[H],x=DK[H],h=Ka[H],l=Ca[H];for(let u=0;u<16;u++){let n=vH(X+ex(H,Z,Q,U)+gH[D[u]]+w,h[u])+N|0;X=N,N=U,U=vH(Q,10)|0,Q=Z,Z=n}for(let u=0;u<16;u++){let n=vH(Y+ex(I,V,J,q)+gH[x[u]]+C,l[u])+A|0;Y=A,A=q,q=vH(J,10)|0,J=V,V=n}}this.set(this.h1+Q+q|0,this.h2+U+A|0,this.h3+N+Y|0,this.h4+X+V|0,this.h0+Z+J|0)}roundClean(){gH.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}}var Yk=tY(()=>new Xk);var Zk=!1,Vk=function(W){return Yk(W)},Qk=Vk;function XW(W){let G=R0(W,"data");return C0(Qk(G))}XW._=Vk;XW.lock=function(){Zk=!0};XW.register=function(W){if(Zk)throw TypeError("ripemd160 is locked");Qk=W};Object.freeze(XW);var Jk=!1,Uk=function(W,G,X,Y,Z){return Sx(W,G,X,Y,Z)},qk=Uk;function L5(W,G,X,Y,Z){let V=R0(W,"password"),Q=R0(G,"salt");return C0(qk(V,Q,X,Y,Z))}L5._=Uk;L5.lock=function(){Jk=!0};L5.register=function(W){if(Jk)throw Error("pbkdf2 is locked");qk=W};Object.freeze(L5);var Nk=!1,Hk=function(W){return new Uint8Array(xx(W))},Ak=Hk;function B5(W){return Ak(W)}B5._=Hk;B5.lock=function(){Nk=!0};B5.register=function(W){if(Nk)throw Error("randomBytes is locked");Ak=W};Object.freeze(B5);var Ta=(W,G,X)=>W&G^~W&X,Pa=(W,G,X)=>W&G^W&X^G&X,Ra=new Uint32Array([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]),YW=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ZW=new Uint32Array(64);class zk extends jJ{constructor(){super(64,32,8,!1);this.A=YW[0]|0,this.B=YW[1]|0,this.C=YW[2]|0,this.D=YW[3]|0,this.E=YW[4]|0,this.F=YW[5]|0,this.G=YW[6]|0,this.H=YW[7]|0}get(){let{A:W,B:G,C:X,D:Y,E:Z,F:V,G:Q,H:J}=this;return[W,G,X,Y,Z,V,Q,J]}set(W,G,X,Y,Z,V,Q,J){this.A=W|0,this.B=G|0,this.C=X|0,this.D=Y|0,this.E=Z|0,this.F=V|0,this.G=Q|0,this.H=J|0}process(W,G){for(let N=0;N<16;N++,G+=4)ZW[N]=W.getUint32(G,!1);for(let N=16;N<64;N++){let A=ZW[N-15],H=ZW[N-2],I=V7(A,7)^V7(A,18)^A>>>3,w=V7(H,17)^V7(H,19)^H>>>10;ZW[N]=w+ZW[N-7]+I+ZW[N-16]|0}let{A:X,B:Y,C:Z,D:V,E:Q,F:J,G:U,H:q}=this;for(let N=0;N<64;N++){let A=V7(Q,6)^V7(Q,11)^V7(Q,25),H=q+A+Ta(Q,J,U)+Ra[N]+ZW[N]|0,w=(V7(X,2)^V7(X,13)^V7(X,22))+Pa(X,Y,Z)|0;q=U,U=J,J=Q,Q=V+H|0,V=Z,Z=Y,Y=X,X=H+w|0}X=X+this.A|0,Y=Y+this.B|0,Z=Z+this.C|0,V=V+this.D|0,Q=Q+this.E|0,J=J+this.F|0,U=U+this.G|0,q=q+this.H|0,this.set(X,Y,Z,V,Q,J,U,q)}roundClean(){ZW.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}var OJ=tY(()=>new zk);class MK extends xG{constructor(W,G){super();this.finished=!1,this.destroyed=!1,FH(W);let X=d7(G);if(this.iHash=W.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let Y=this.blockLen,Z=new Uint8Array(Y);Z.set(X.length>Y?W.create().update(X).digest():X);for(let V=0;V<Z.length;V++)Z[V]^=54;this.iHash.update(Z),this.oHash=W.create();for(let V=0;V<Z.length;V++)Z[V]^=106;this.oHash.update(Z),Z.fill(0)}update(W){return o4(this),this.iHash.update(W),this}digestInto(W){o4(this),zJ(W,this.outputLen),this.finished=!0,this.iHash.digestInto(W),this.oHash.update(W),this.oHash.digestInto(W),this.destroy()}digest(){let W=new Uint8Array(this.oHash.outputLen);return this.digestInto(W),W}_cloneInto(W){W||(W=Object.create(Object.getPrototypeOf(this),{}));let{oHash:G,iHash:X,finished:Y,destroyed:Z,blockLen:V,outputLen:Q}=this;return W=W,W.finished=Y,W.destroyed=Z,W.blockLen=V,W.outputLen=Q,W.oHash=G._cloneInto(W.oHash),W.iHash=X._cloneInto(W.iHash),W}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var KJ=(W,G,X)=>new MK(W,G).update(X).digest();KJ.create=(W,G)=>new MK(W,G);function La(W,G,X,Y){FH(W);let Z=yH({dkLen:32,asyncTick:10},Y),{c:V,dkLen:Q,asyncTick:J}=Z;if(R9(V),R9(Q),R9(J),V<1)throw Error("PBKDF2: iterations (c) should be >= 1");let U=d7(G),q=d7(X),N=new Uint8Array(Q),A=KJ.create(W,U),H=A._cloneInto().update(q);return{c:V,dkLen:Q,asyncTick:J,DK:N,PRF:A,PRFSalt:H}}function Ba(W,G,X,Y,Z){if(W.destroy(),G.destroy(),Y)Y.destroy();return Z.fill(0),X}function TK(W,G,X,Y){let{c:Z,dkLen:V,DK:Q,PRF:J,PRFSalt:U}=La(W,G,X,Y),q,N=new Uint8Array(4),A=sY(N),H=new Uint8Array(J.outputLen);for(let I=1,w=0;w<V;I++,w+=J.outputLen){let C=Q.subarray(w,w+J.outputLen);A.setInt32(0,I,!1),(q=U._cloneInto(q)).update(N).digestInto(H),C.set(H.subarray(0,C.length));for(let D=1;D<Z;D++){J._cloneInto(q).update(H).digestInto(H);for(let x=0;x<C.length;x++)C[x]^=H[x]}}return Ba(J,U,Q,q,H)}var o1=(W,G)=>W<<G|W>>>32-G;function Ik(W,G,X,Y,Z,V){let Q=W[G++]^X[Y++],J=W[G++]^X[Y++],U=W[G++]^X[Y++],q=W[G++]^X[Y++],N=W[G++]^X[Y++],A=W[G++]^X[Y++],H=W[G++]^X[Y++],I=W[G++]^X[Y++],w=W[G++]^X[Y++],C=W[G++]^X[Y++],D=W[G++]^X[Y++],x=W[G++]^X[Y++],h=W[G++]^X[Y++],l=W[G++]^X[Y++],u=W[G++]^X[Y++],n=W[G++]^X[Y++],c=Q,p=J,W0=U,m=q,Y0=N,U0=A,y=H,o=I,B=w,R=C,_=D,S=x,v=h,P=l,E=u,b=n;for(let k=0;k<8;k+=2)Y0^=o1(c+v|0,7),B^=o1(Y0+c|0,9),v^=o1(B+Y0|0,13),c^=o1(v+B|0,18),R^=o1(U0+p|0,7),P^=o1(R+U0|0,9),p^=o1(P+R|0,13),U0^=o1(p+P|0,18),E^=o1(_+y|0,7),W0^=o1(E+_|0,9),y^=o1(W0+E|0,13),_^=o1(y+W0|0,18),m^=o1(b+S|0,7),o^=o1(m+b|0,9),S^=o1(o+m|0,13),b^=o1(S+o|0,18),p^=o1(c+m|0,7),W0^=o1(p+c|0,9),m^=o1(W0+p|0,13),c^=o1(m+W0|0,18),y^=o1(U0+Y0|0,7),o^=o1(y+U0|0,9),Y0^=o1(o+y|0,13),U0^=o1(Y0+o|0,18),S^=o1(_+R|0,7),B^=o1(S+_|0,9),R^=o1(B+S|0,13),_^=o1(R+B|0,18),v^=o1(b+E|0,7),P^=o1(v+b|0,9),E^=o1(P+v|0,13),b^=o1(E+P|0,18);Z[V++]=Q+c|0,Z[V++]=J+p|0,Z[V++]=U+W0|0,Z[V++]=q+m|0,Z[V++]=N+Y0|0,Z[V++]=A+U0|0,Z[V++]=H+y|0,Z[V++]=I+o|0,Z[V++]=w+B|0,Z[V++]=C+R|0,Z[V++]=D+_|0,Z[V++]=x+S|0,Z[V++]=h+v|0,Z[V++]=l+P|0,Z[V++]=u+E|0,Z[V++]=n+b|0}function eY(W,G,X,Y,Z){let V=Y+0,Q=Y+16*Z;for(let J=0;J<16;J++)X[Q+J]=W[G+(2*Z-1)*16+J];for(let J=0;J<Z;J++,V+=16,G+=16){if(Ik(X,Q,W,G,X,V),J>0)Q+=16;Ik(X,V,W,G+=16,X,Q)}}function wk(W,G,X){let Y=yH({dkLen:32,asyncTick:10,maxmem:1073742848},X),{N:Z,r:V,p:Q,dkLen:J,asyncTick:U,maxmem:q,onProgress:N}=Y;if(R9(Z),R9(V),R9(Q),R9(J),R9(U),R9(q),N!==void 0&&typeof N!=="function")throw Error("progressCb should be function");let A=128*V,H=A/4;if(Z<=1||(Z&Z-1)!==0||Z>=2**(A/8)||Z>4294967296)throw Error("Scrypt: N must be larger than 1, a power of 2, less than 2^(128 * r / 8) and less than 2^32");if(Q<0||Q>137438953440/A)throw Error("Scrypt: p must be a positive integer less than or equal to ((2^32 - 1) * 32) / (128 * r)");if(J<0||J>137438953440)throw Error("Scrypt: dkLen should be positive integer less than or equal to (2^32 - 1) * 32");let I=A*(Z+Q);if(I>q)throw Error(`Scrypt: parameters too large, ${I} (128 * r * (N + p)) > ${q} (maxmem)`);let w=TK(OJ,W,G,{c:1,dkLen:A*Q}),C=aY(w),D=aY(new Uint8Array(A*Z)),x=aY(new Uint8Array(A)),h=()=>{};if(N){let l=2*Z*Q,u=Math.max(Math.floor(l/1e4),1),n=0;h=()=>{if(n++,N&&(!(n%u)||n===l))N(n/l)}}return{N:Z,r:V,p:Q,dkLen:J,blockSize32:H,V:D,B32:C,B:w,tmp:x,blockMixCb:h,asyncTick:U}}function jk(W,G,X,Y,Z){let V=TK(OJ,W,X,{c:1,dkLen:G});return X.fill(0),Y.fill(0),Z.fill(0),V}function Ok(W,G,X){let{N:Y,r:Z,p:V,dkLen:Q,blockSize32:J,V:U,B32:q,B:N,tmp:A,blockMixCb:H}=wk(W,G,X);for(let I=0;I<V;I++){let w=J*I;for(let C=0;C<J;C++)U[C]=q[w+C];for(let C=0,D=0;C<Y-1;C++)eY(U,D,U,D+=J,Z),H();eY(U,(Y-1)*J,q,w,Z),H();for(let C=0;C<Y;C++){let D=q[w+J-16]%Y;for(let x=0;x<J;x++)A[x]=q[w+x]^U[D*J+x];eY(A,0,q,w,Z),H()}}return jk(W,Q,N,U,A)}async function Kk(W,G,X){let{N:Y,r:Z,p:V,dkLen:Q,blockSize32:J,V:U,B32:q,B:N,tmp:A,blockMixCb:H,asyncTick:I}=wk(W,G,X);for(let w=0;w<V;w++){let C=J*w;for(let x=0;x<J;x++)U[x]=q[C+x];let D=0;await _H(Y-1,I,()=>{eY(U,D,U,D+=J,Z),H()}),eY(U,(Y-1)*J,q,C,Z),H(),await _H(Y,I,()=>{let x=q[C+J-16]%Y;for(let h=0;h<J;h++)A[h]=q[C+h]^U[x*J+h];eY(A,0,q,C,Z),H()})}return jk(W,Q,N,U,A)}var Ck=!1,Dk=!1,Mk=async function(W,G,X,Y,Z,V,Q){return await Kk(W,G,{N:X,r:Y,p:Z,dkLen:V,onProgress:Q})},Tk=function(W,G,X,Y,Z,V){return Ok(W,G,{N:X,r:Y,p:Z,dkLen:V})},Pk=Mk,Rk=Tk;async function VW(W,G,X,Y,Z,V,Q){let J=R0(W,"passwd"),U=R0(G,"salt");return C0(await Pk(J,U,X,Y,Z,V,Q))}VW._=Mk;VW.lock=function(){Dk=!0};VW.register=function(W){if(Dk)throw Error("scrypt is locked");Pk=W};Object.freeze(VW);function QW(W,G,X,Y,Z,V){let Q=R0(W,"passwd"),J=R0(G,"salt");return C0(Rk(Q,J,X,Y,Z,V))}QW._=Tk;QW.lock=function(){Ck=!0};QW.register=function(W){if(Ck)throw Error("scryptSync is locked");Rk=W};Object.freeze(QW);var Lk=function(W){return OK("sha256").update(W).digest()},Bk=function(W){return OK("sha512").update(W).digest()},Ek=Lk,$k=Bk,Fk=!1,Sk=!1;function L9(W){let G=R0(W,"data");return C0(Ek(G))}L9._=Lk;L9.lock=function(){Fk=!0};L9.register=function(W){if(Fk)throw Error("sha256 is locked");Ek=W};Object.freeze(L9);function uH(W){let G=R0(W,"data");return C0($k(G))}uH._=Bk;uH.lock=function(){Sk=!0};uH.register=function(W){if(Sk)throw Error("sha512 is locked");$k=W};Object.freeze(L9);var BK={};qA(BK,{validateObject:()=>UW,utf8ToBytes:()=>xa,numberToVarBytesBE:()=>Fa,numberToHexUnpadded:()=>_k,numberToBytesLE:()=>fH,numberToBytesBE:()=>JW,hexToNumber:()=>RK,hexToBytes:()=>_G,equalBytes:()=>Sa,ensureBytes:()=>N5,createHmacDrbg:()=>LK,concatBytes:()=>WZ,bytesToNumberLE:()=>mH,bytesToNumberBE:()=>n4,bytesToHex:()=>kG,bitSet:()=>ya,bitMask:()=>CJ,bitLen:()=>ka,bitGet:()=>_a});/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var kk=BigInt(0),hH=BigInt(1),Ea=BigInt(2),bH=(W)=>W instanceof Uint8Array,$a=Array.from({length:256},(W,G)=>G.toString(16).padStart(2,"0"));function kG(W){if(!bH(W))throw Error("Uint8Array expected");let G="";for(let X=0;X<W.length;X++)G+=$a[W[X]];return G}function _k(W){let G=W.toString(16);return G.length&1?`0${G}`:G}function RK(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return BigInt(W===""?"0":`0x${W}`)}function _G(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);let G=W.length;if(G%2)throw Error("padded hex string expected, got unpadded hex of length "+G);let X=new Uint8Array(G/2);for(let Y=0;Y<X.length;Y++){let Z=Y*2,V=W.slice(Z,Z+2),Q=Number.parseInt(V,16);if(Number.isNaN(Q)||Q<0)throw Error("Invalid byte sequence");X[Y]=Q}return X}function n4(W){return RK(kG(W))}function mH(W){if(!bH(W))throw Error("Uint8Array expected");return RK(kG(Uint8Array.from(W).reverse()))}function JW(W,G){return _G(W.toString(16).padStart(G*2,"0"))}function fH(W,G){return JW(W,G).reverse()}function Fa(W){return _G(_k(W))}function N5(W,G,X){let Y;if(typeof G==="string")try{Y=_G(G)}catch(V){throw Error(`${W} must be valid hex string, got "${G}". Cause: ${V}`)}else if(bH(G))Y=Uint8Array.from(G);else throw Error(`${W} must be hex string or Uint8Array`);let Z=Y.length;if(typeof X==="number"&&Z!==X)throw Error(`${W} expected ${X} bytes, got ${Z}`);return Y}function WZ(...W){let G=new Uint8Array(W.reduce((Y,Z)=>Y+Z.length,0)),X=0;return W.forEach((Y)=>{if(!bH(Y))throw Error("Uint8Array expected");G.set(Y,X),X+=Y.length}),G}function Sa(W,G){if(W.length!==G.length)return!1;for(let X=0;X<W.length;X++)if(W[X]!==G[X])return!1;return!0}function xa(W){if(typeof W!=="string")throw Error(`utf8ToBytes expected string, got ${typeof W}`);return new Uint8Array(new TextEncoder().encode(W))}function ka(W){let G;for(G=0;W>kk;W>>=hH,G+=1);return G}function _a(W,G){return W>>BigInt(G)&hH}var ya=(W,G,X)=>{return W|(X?hH:kk)<<BigInt(G)},CJ=(W)=>(Ea<<BigInt(W-1))-hH,PK=(W)=>new Uint8Array(W),xk=(W)=>Uint8Array.from(W);function LK(W,G,X){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof G!=="number"||G<2)throw Error("qByteLen must be a number");if(typeof X!=="function")throw Error("hmacFn must be a function");let Y=PK(W),Z=PK(W),V=0,Q=()=>{Y.fill(1),Z.fill(0),V=0},J=(...A)=>X(Z,Y,...A),U=(A=PK())=>{if(Z=J(xk([0]),A),Y=J(),A.length===0)return;Z=J(xk([1]),A),Y=J()},q=()=>{if(V++>=1000)throw Error("drbg: tried 1000 values");let A=0,H=[];while(A<G){Y=J();let I=Y.slice();H.push(I),A+=Y.length}return WZ(...H)};return(A,H)=>{Q(),U(A);let I=void 0;while(!(I=H(q())))U();return Q(),I}}var va={bigint:(W)=>typeof W==="bigint",function:(W)=>typeof W==="function",boolean:(W)=>typeof W==="boolean",string:(W)=>typeof W==="string",stringOrUint8Array:(W)=>typeof W==="string"||W instanceof Uint8Array,isSafeInteger:(W)=>Number.isSafeInteger(W),array:(W)=>Array.isArray(W),field:(W,G)=>G.Fp.isValid(W),hash:(W)=>typeof W==="function"&&Number.isSafeInteger(W.outputLen)};function UW(W,G,X={}){let Y=(Z,V,Q)=>{let J=va[V];if(typeof J!=="function")throw Error(`Invalid validator "${V}", expected function`);let U=W[Z];if(Q&&U===void 0)return;if(!J(U,W))throw Error(`Invalid param ${String(Z)}=${U} (${typeof U}), expected ${V}`)};for(let[Z,V]of Object.entries(G))Y(Z,V,!1);for(let[Z,V]of Object.entries(X))Y(Z,V,!0);return W}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var l8=BigInt(0),$8=BigInt(1),yG=BigInt(2),ga=BigInt(3),EK=BigInt(4),yk=BigInt(5),vk=BigInt(8),ua=BigInt(9),ha=BigInt(16);function B9(W,G){let X=W%G;return X>=l8?X:G+X}function ba(W,G,X){if(X<=l8||G<l8)throw Error("Expected power/modulo > 0");if(X===$8)return l8;let Y=$8;while(G>l8){if(G&$8)Y=Y*W%X;W=W*W%X,G>>=$8}return Y}function H5(W,G,X){let Y=W;while(G-- >l8)Y*=Y,Y%=X;return Y}function cH(W,G){if(W===l8||G<=l8)throw Error(`invert: expected positive integers, got n=${W} mod=${G}`);let X=B9(W,G),Y=G,Z=l8,V=$8,Q=$8,J=l8;while(X!==l8){let q=Y/X,N=Y%X,A=Z-Q*q,H=V-J*q;Y=X,X=N,Z=Q,V=J,Q=A,J=H}if(Y!==$8)throw Error("invert: does not exist");return B9(Z,G)}function ma(W){let G=(W-$8)/yG,X,Y,Z;for(X=W-$8,Y=0;X%yG===l8;X/=yG,Y++);for(Z=yG;Z<W&&ba(Z,G,W)!==W-$8;Z++);if(Y===1){let Q=(W+$8)/EK;return function(U,q){let N=U.pow(q,Q);if(!U.eql(U.sqr(N),q))throw Error("Cannot find square root");return N}}let V=(X+$8)/yG;return function(J,U){if(J.pow(U,G)===J.neg(J.ONE))throw Error("Cannot find square root");let q=Y,N=J.pow(J.mul(J.ONE,Z),X),A=J.pow(U,V),H=J.pow(U,X);while(!J.eql(H,J.ONE)){if(J.eql(H,J.ZERO))return J.ZERO;let I=1;for(let C=J.sqr(H);I<q;I++){if(J.eql(C,J.ONE))break;C=J.sqr(C)}let w=J.pow(N,$8<<BigInt(q-I-1));N=J.sqr(w),A=J.mul(A,w),H=J.mul(H,N),q=I}return A}}function fa(W){if(W%EK===ga){let G=(W+$8)/EK;return function(Y,Z){let V=Y.pow(Z,G);if(!Y.eql(Y.sqr(V),Z))throw Error("Cannot find square root");return V}}if(W%vk===yk){let G=(W-yk)/vk;return function(Y,Z){let V=Y.mul(Z,yG),Q=Y.pow(V,G),J=Y.mul(Z,Q),U=Y.mul(Y.mul(J,yG),Q),q=Y.mul(J,Y.sub(U,Y.ONE));if(!Y.eql(Y.sqr(q),Z))throw Error("Cannot find square root");return q}}if(W%ha===ua);return ma(W)}var ca=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function $K(W){let G={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},X=ca.reduce((Y,Z)=>{return Y[Z]="function",Y},G);return UW(W,X)}function pa(W,G,X){if(X<l8)throw Error("Expected power > 0");if(X===l8)return W.ONE;if(X===$8)return G;let Y=W.ONE,Z=G;while(X>l8){if(X&$8)Y=W.mul(Y,Z);Z=W.sqr(Z),X>>=$8}return Y}function la(W,G){let X=Array(G.length),Y=G.reduce((V,Q,J)=>{if(W.is0(Q))return V;return X[J]=V,W.mul(V,Q)},W.ONE),Z=W.inv(Y);return G.reduceRight((V,Q,J)=>{if(W.is0(Q))return V;return X[J]=W.mul(V,X[J]),W.mul(V,Q)},Z),X}function FK(W,G){let X=G!==void 0?G:W.toString(2).length,Y=Math.ceil(X/8);return{nBitLength:X,nByteLength:Y}}function gk(W,G,X=!1,Y={}){if(W<=l8)throw Error(`Expected Field ORDER > 0, got ${W}`);let{nBitLength:Z,nByteLength:V}=FK(W,G);if(V>2048)throw Error("Field lengths over 2048 bytes are not supported");let Q=fa(W),J=Object.freeze({ORDER:W,BITS:Z,BYTES:V,MASK:CJ(Z),ZERO:l8,ONE:$8,create:(U)=>B9(U,W),isValid:(U)=>{if(typeof U!=="bigint")throw Error(`Invalid field element: expected bigint, got ${typeof U}`);return l8<=U&&U<W},is0:(U)=>U===l8,isOdd:(U)=>(U&$8)===$8,neg:(U)=>B9(-U,W),eql:(U,q)=>U===q,sqr:(U)=>B9(U*U,W),add:(U,q)=>B9(U+q,W),sub:(U,q)=>B9(U-q,W),mul:(U,q)=>B9(U*q,W),pow:(U,q)=>pa(J,U,q),div:(U,q)=>B9(U*cH(q,W),W),sqrN:(U)=>U*U,addN:(U,q)=>U+q,subN:(U,q)=>U-q,mulN:(U,q)=>U*q,inv:(U)=>cH(U,W),sqrt:Y.sqrt||((U)=>Q(J,U)),invertBatch:(U)=>la(J,U),cmov:(U,q,N)=>N?q:U,toBytes:(U)=>X?fH(U,V):JW(U,V),fromBytes:(U)=>{if(U.length!==V)throw Error(`Fp.fromBytes: expected ${V}, got ${U.length}`);return X?mH(U):n4(U)}});return Object.freeze(J)}function uk(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let G=W.toString(2).length;return Math.ceil(G/8)}function SK(W){let G=uk(W);return G+Math.ceil(G/2)}function hk(W,G,X=!1){let Y=W.length,Z=uk(G),V=SK(G);if(Y<16||Y<V||Y>1024)throw Error(`expected ${V}-1024 bytes of input, got ${Y}`);let Q=X?n4(W):mH(W),J=B9(Q,G-$8)+$8;return X?fH(J,Z):JW(J,Z)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var oa=BigInt(0),xK=BigInt(1);function bk(W,G){let X=(Z,V)=>{let Q=V.negate();return Z?Q:V},Y=(Z)=>{let V=Math.ceil(G/Z)+1,Q=2**(Z-1);return{windows:V,windowSize:Q}};return{constTimeNegate:X,unsafeLadder(Z,V){let Q=W.ZERO,J=Z;while(V>oa){if(V&xK)Q=Q.add(J);J=J.double(),V>>=xK}return Q},precomputeWindow(Z,V){let{windows:Q,windowSize:J}=Y(V),U=[],q=Z,N=q;for(let A=0;A<Q;A++){N=q,U.push(N);for(let H=1;H<J;H++)N=N.add(q),U.push(N);q=N.double()}return U},wNAF(Z,V,Q){let{windows:J,windowSize:U}=Y(Z),q=W.ZERO,N=W.BASE,A=BigInt(2**Z-1),H=2**Z,I=BigInt(Z);for(let w=0;w<J;w++){let C=w*U,D=Number(Q&A);if(Q>>=I,D>U)D-=H,Q+=xK;let x=C,h=C+Math.abs(D)-1,l=w%2!==0,u=D<0;if(D===0)N=N.add(X(l,V[x]));else q=q.add(X(u,V[h]))}return{p:q,f:N}},wNAFCached(Z,V,Q,J){let U=Z._WINDOW_SIZE||1,q=V.get(Z);if(!q){if(q=this.precomputeWindow(Z,U),U!==1)V.set(Z,J(q))}return this.wNAF(U,q,Q)}}}function kK(W){return $K(W.Fp),UW(W,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...FK(W.n,W.nBitLength),...W,...{p:W.Fp.ORDER}})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function na(W){let G=kK(W);UW(G,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:X,Fp:Y,a:Z}=G;if(X){if(!Y.eql(Z,Y.ZERO))throw Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof X!=="object"||typeof X.beta!=="bigint"||typeof X.splitScalar!=="function")throw Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...G})}var{bytesToNumberBE:ia,hexToBytes:ra}=BK,vG={Err:class extends Error{constructor(G=""){super(G)}},_parseInt(W){let{Err:G}=vG;if(W.length<2||W[0]!==2)throw new G("Invalid signature integer tag");let X=W[1],Y=W.subarray(2,X+2);if(!X||Y.length!==X)throw new G("Invalid signature integer: wrong length");if(Y[0]&128)throw new G("Invalid signature integer: negative");if(Y[0]===0&&!(Y[1]&128))throw new G("Invalid signature integer: unnecessary leading zero");return{d:ia(Y),l:W.subarray(X+2)}},toSig(W){let{Err:G}=vG,X=typeof W==="string"?ra(W):W;if(!(X instanceof Uint8Array))throw Error("ui8a expected");let Y=X.length;if(Y<2||X[0]!=48)throw new G("Invalid signature tag");if(X[1]!==Y-2)throw new G("Invalid signature: incorrect length");let{d:Z,l:V}=vG._parseInt(X.subarray(2)),{d:Q,l:J}=vG._parseInt(V);if(J.length)throw new G("Invalid signature: left bytes after parsing");return{r:Z,s:Q}},hexFromSig(W){let G=(q)=>Number.parseInt(q[0],16)&8?"00"+q:q,X=(q)=>{let N=q.toString(16);return N.length&1?`0${N}`:N},Y=G(X(W.s)),Z=G(X(W.r)),V=Y.length/2,Q=Z.length/2,J=X(V),U=X(Q);return`30${X(Q+V+4)}02${U}${Z}02${J}${Y}`}},i4=BigInt(0),E5=BigInt(1),ew0=BigInt(2),mk=BigInt(3),Wj0=BigInt(4);function aa(W){let G=na(W),{Fp:X}=G,Y=G.toBytes||((w,C,D)=>{let x=C.toAffine();return WZ(Uint8Array.from([4]),X.toBytes(x.x),X.toBytes(x.y))}),Z=G.fromBytes||((w)=>{let C=w.subarray(1),D=X.fromBytes(C.subarray(0,X.BYTES)),x=X.fromBytes(C.subarray(X.BYTES,2*X.BYTES));return{x:D,y:x}});function V(w){let{a:C,b:D}=G,x=X.sqr(w),h=X.mul(x,w);return X.add(X.add(h,X.mul(w,C)),D)}if(!X.eql(X.sqr(G.Gy),V(G.Gx)))throw Error("bad generator point: equation left != right");function Q(w){return typeof w==="bigint"&&i4<w&&w<G.n}function J(w){if(!Q(w))throw Error("Expected valid bigint: 0 < bigint < curve.n")}function U(w){let{allowedPrivateKeyLengths:C,nByteLength:D,wrapPrivateKey:x,n:h}=G;if(C&&typeof w!=="bigint"){if(w instanceof Uint8Array)w=kG(w);if(typeof w!=="string"||!C.includes(w.length))throw Error("Invalid key");w=w.padStart(D*2,"0")}let l;try{l=typeof w==="bigint"?w:n4(N5("private key",w,D))}catch(u){throw Error(`private key must be ${D} bytes, hex or bigint, not ${typeof w}`)}if(x)l=B9(l,h);return J(l),l}let q=new Map;function N(w){if(!(w instanceof A))throw Error("ProjectivePoint expected")}class A{constructor(w,C,D){if(this.px=w,this.py=C,this.pz=D,w==null||!X.isValid(w))throw Error("x required");if(C==null||!X.isValid(C))throw Error("y required");if(D==null||!X.isValid(D))throw Error("z required")}static fromAffine(w){let{x:C,y:D}=w||{};if(!w||!X.isValid(C)||!X.isValid(D))throw Error("invalid affine point");if(w instanceof A)throw Error("projective point not allowed");let x=(h)=>X.eql(h,X.ZERO);if(x(C)&&x(D))return A.ZERO;return new A(C,D,X.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(w){let C=X.invertBatch(w.map((D)=>D.pz));return w.map((D,x)=>D.toAffine(C[x])).map(A.fromAffine)}static fromHex(w){let C=A.fromAffine(Z(N5("pointHex",w)));return C.assertValidity(),C}static fromPrivateKey(w){return A.BASE.multiply(U(w))}_setWindowSize(w){this._WINDOW_SIZE=w,q.delete(this)}assertValidity(){if(this.is0()){if(G.allowInfinityPoint&&!X.is0(this.py))return;throw Error("bad point: ZERO")}let{x:w,y:C}=this.toAffine();if(!X.isValid(w)||!X.isValid(C))throw Error("bad point: x or y not FE");let D=X.sqr(C),x=V(w);if(!X.eql(D,x))throw Error("bad point: equation left != right");if(!this.isTorsionFree())throw Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:w}=this.toAffine();if(X.isOdd)return!X.isOdd(w);throw Error("Field doesn't support isOdd")}equals(w){N(w);let{px:C,py:D,pz:x}=this,{px:h,py:l,pz:u}=w,n=X.eql(X.mul(C,u),X.mul(h,x)),c=X.eql(X.mul(D,u),X.mul(l,x));return n&&c}negate(){return new A(this.px,X.neg(this.py),this.pz)}double(){let{a:w,b:C}=G,D=X.mul(C,mk),{px:x,py:h,pz:l}=this,u=X.ZERO,n=X.ZERO,c=X.ZERO,p=X.mul(x,x),W0=X.mul(h,h),m=X.mul(l,l),Y0=X.mul(x,h);return Y0=X.add(Y0,Y0),c=X.mul(x,l),c=X.add(c,c),u=X.mul(w,c),n=X.mul(D,m),n=X.add(u,n),u=X.sub(W0,n),n=X.add(W0,n),n=X.mul(u,n),u=X.mul(Y0,u),c=X.mul(D,c),m=X.mul(w,m),Y0=X.sub(p,m),Y0=X.mul(w,Y0),Y0=X.add(Y0,c),c=X.add(p,p),p=X.add(c,p),p=X.add(p,m),p=X.mul(p,Y0),n=X.add(n,p),m=X.mul(h,l),m=X.add(m,m),p=X.mul(m,Y0),u=X.sub(u,p),c=X.mul(m,W0),c=X.add(c,c),c=X.add(c,c),new A(u,n,c)}add(w){N(w);let{px:C,py:D,pz:x}=this,{px:h,py:l,pz:u}=w,n=X.ZERO,c=X.ZERO,p=X.ZERO,W0=G.a,m=X.mul(G.b,mk),Y0=X.mul(C,h),U0=X.mul(D,l),y=X.mul(x,u),o=X.add(C,D),B=X.add(h,l);o=X.mul(o,B),B=X.add(Y0,U0),o=X.sub(o,B),B=X.add(C,x);let R=X.add(h,u);return B=X.mul(B,R),R=X.add(Y0,y),B=X.sub(B,R),R=X.add(D,x),n=X.add(l,u),R=X.mul(R,n),n=X.add(U0,y),R=X.sub(R,n),p=X.mul(W0,B),n=X.mul(m,y),p=X.add(n,p),n=X.sub(U0,p),p=X.add(U0,p),c=X.mul(n,p),U0=X.add(Y0,Y0),U0=X.add(U0,Y0),y=X.mul(W0,y),B=X.mul(m,B),U0=X.add(U0,y),y=X.sub(Y0,y),y=X.mul(W0,y),B=X.add(B,y),Y0=X.mul(U0,B),c=X.add(c,Y0),Y0=X.mul(R,B),n=X.mul(o,n),n=X.sub(n,Y0),Y0=X.mul(o,U0),p=X.mul(R,p),p=X.add(p,Y0),new A(n,c,p)}subtract(w){return this.add(w.negate())}is0(){return this.equals(A.ZERO)}wNAF(w){return I.wNAFCached(this,q,w,(C)=>{let D=X.invertBatch(C.map((x)=>x.pz));return C.map((x,h)=>x.toAffine(D[h])).map(A.fromAffine)})}multiplyUnsafe(w){let C=A.ZERO;if(w===i4)return C;if(J(w),w===E5)return this;let{endo:D}=G;if(!D)return I.unsafeLadder(this,w);let{k1neg:x,k1:h,k2neg:l,k2:u}=D.splitScalar(w),n=C,c=C,p=this;while(h>i4||u>i4){if(h&E5)n=n.add(p);if(u&E5)c=c.add(p);p=p.double(),h>>=E5,u>>=E5}if(x)n=n.negate();if(l)c=c.negate();return c=new A(X.mul(c.px,D.beta),c.py,c.pz),n.add(c)}multiply(w){J(w);let C=w,D,x,{endo:h}=G;if(h){let{k1neg:l,k1:u,k2neg:n,k2:c}=h.splitScalar(C),{p,f:W0}=this.wNAF(u),{p:m,f:Y0}=this.wNAF(c);p=I.constTimeNegate(l,p),m=I.constTimeNegate(n,m),m=new A(X.mul(m.px,h.beta),m.py,m.pz),D=p.add(m),x=W0.add(Y0)}else{let{p:l,f:u}=this.wNAF(C);D=l,x=u}return A.normalizeZ([D,x])[0]}multiplyAndAddUnsafe(w,C,D){let x=A.BASE,h=(u,n)=>n===i4||n===E5||!u.equals(x)?u.multiplyUnsafe(n):u.multiply(n),l=h(this,C).add(h(w,D));return l.is0()?void 0:l}toAffine(w){let{px:C,py:D,pz:x}=this,h=this.is0();if(w==null)w=h?X.ONE:X.inv(x);let l=X.mul(C,w),u=X.mul(D,w),n=X.mul(x,w);if(h)return{x:X.ZERO,y:X.ZERO};if(!X.eql(n,X.ONE))throw Error("invZ was invalid");return{x:l,y:u}}isTorsionFree(){let{h:w,isTorsionFree:C}=G;if(w===E5)return!0;if(C)return C(A,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:w,clearCofactor:C}=G;if(w===E5)return this;if(C)return C(A,this);return this.multiplyUnsafe(G.h)}toRawBytes(w=!0){return this.assertValidity(),Y(A,this,w)}toHex(w=!0){return kG(this.toRawBytes(w))}}A.BASE=new A(G.Gx,G.Gy,X.ONE),A.ZERO=new A(X.ZERO,X.ONE,X.ZERO);let H=G.nBitLength,I=bk(A,G.endo?Math.ceil(H/2):H);return{CURVE:G,ProjectivePoint:A,normPrivateKeyToScalar:U,weierstrassEquation:V,isWithinCurveOrder:Q}}function sa(W){let G=kK(W);return UW(G,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...G})}function fk(W){let G=sa(W),{Fp:X,n:Y}=G,Z=X.BYTES+1,V=2*X.BYTES+1;function Q(R){return i4<R&&R<X.ORDER}function J(R){return B9(R,Y)}function U(R){return cH(R,Y)}let{ProjectivePoint:q,normPrivateKeyToScalar:N,weierstrassEquation:A,isWithinCurveOrder:H}=aa({...G,toBytes(R,_,S){let v=_.toAffine(),P=X.toBytes(v.x),E=WZ;if(S)return E(Uint8Array.from([_.hasEvenY()?2:3]),P);else return E(Uint8Array.from([4]),P,X.toBytes(v.y))},fromBytes(R){let _=R.length,S=R[0],v=R.subarray(1);if(_===Z&&(S===2||S===3)){let P=n4(v);if(!Q(P))throw Error("Point is not on curve");let E=A(P),b=X.sqrt(E),k=(b&E5)===E5;if((S&1)===1!==k)b=X.neg(b);return{x:P,y:b}}else if(_===V&&S===4){let P=X.fromBytes(v.subarray(0,X.BYTES)),E=X.fromBytes(v.subarray(X.BYTES,2*X.BYTES));return{x:P,y:E}}else throw Error(`Point of length ${_} was invalid. Expected ${Z} compressed bytes or ${V} uncompressed bytes`)}}),I=(R)=>kG(JW(R,G.nByteLength));function w(R){let _=Y>>E5;return R>_}function C(R){return w(R)?J(-R):R}let D=(R,_,S)=>n4(R.slice(_,S));class x{constructor(R,_,S){this.r=R,this.s=_,this.recovery=S,this.assertValidity()}static fromCompact(R){let _=G.nByteLength;return R=N5("compactSignature",R,_*2),new x(D(R,0,_),D(R,_,2*_))}static fromDER(R){let{r:_,s:S}=vG.toSig(N5("DER",R));return new x(_,S)}assertValidity(){if(!H(this.r))throw Error("r must be 0 < r < CURVE.n");if(!H(this.s))throw Error("s must be 0 < s < CURVE.n")}addRecoveryBit(R){return new x(this.r,this.s,R)}recoverPublicKey(R){let{r:_,s:S,recovery:v}=this,P=p(N5("msgHash",R));if(v==null||![0,1,2,3].includes(v))throw Error("recovery id invalid");let E=v===2||v===3?_+G.n:_;if(E>=X.ORDER)throw Error("recovery id 2 or 3 invalid");let b=(v&1)===0?"02":"03",k=q.fromHex(b+I(E)),f=U(E),e=J(-P*f),q0=J(S*f),Q0=q.BASE.multiplyAndAddUnsafe(k,e,q0);if(!Q0)throw Error("point at infinify");return Q0.assertValidity(),Q0}hasHighS(){return w(this.s)}normalizeS(){return this.hasHighS()?new x(this.r,J(-this.s),this.recovery):this}toDERRawBytes(){return _G(this.toDERHex())}toDERHex(){return vG.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return _G(this.toCompactHex())}toCompactHex(){return I(this.r)+I(this.s)}}let h={isValidPrivateKey(R){try{return N(R),!0}catch(_){return!1}},normPrivateKeyToScalar:N,randomPrivateKey:()=>{let R=SK(G.n);return hk(G.randomBytes(R),G.n)},precompute(R=8,_=q.BASE){return _._setWindowSize(R),_.multiply(BigInt(3)),_}};function l(R,_=!0){return q.fromPrivateKey(R).toRawBytes(_)}function u(R){let _=R instanceof Uint8Array,S=typeof R==="string",v=(_||S)&&R.length;if(_)return v===Z||v===V;if(S)return v===2*Z||v===2*V;if(R instanceof q)return!0;return!1}function n(R,_,S=!0){if(u(R))throw Error("first arg must be private key");if(!u(_))throw Error("second arg must be public key");return q.fromHex(_).multiply(N(R)).toRawBytes(S)}let c=G.bits2int||function(R){let _=n4(R),S=R.length*8-G.nBitLength;return S>0?_>>BigInt(S):_},p=G.bits2int_modN||function(R){return J(c(R))},W0=CJ(G.nBitLength);function m(R){if(typeof R!=="bigint")throw Error("bigint expected");if(!(i4<=R&&R<W0))throw Error(`bigint expected < 2^${G.nBitLength}`);return JW(R,G.nByteLength)}function Y0(R,_,S=U0){if(["recovered","canonical"].some((x0)=>(x0 in S)))throw Error("sign() legacy options not supported");let{hash:v,randomBytes:P}=G,{lowS:E,prehash:b,extraEntropy:k}=S;if(E==null)E=!0;if(R=N5("msgHash",R),b)R=N5("prehashed msgHash",v(R));let f=p(R),e=N(_),q0=[m(e),m(f)];if(k!=null){let x0=k===!0?P(X.BYTES):k;q0.push(N5("extraEntropy",x0))}let Q0=WZ(...q0),$0=f;function D0(x0){let N1=c(x0);if(!H(N1))return;let U1=U(N1),J0=q.BASE.multiply(N1).toAffine(),B0=J(J0.x);if(B0===i4)return;let h0=J(U1*J($0+B0*e));if(h0===i4)return;let Y1=(J0.x===B0?0:2)|Number(J0.y&E5),w8=h0;if(E&&w(h0))w8=C(h0),Y1^=1;return new x(B0,w8,Y1)}return{seed:Q0,k2sig:D0}}let U0={lowS:G.lowS,prehash:!1},y={lowS:G.lowS,prehash:!1};function o(R,_,S=U0){let{seed:v,k2sig:P}=Y0(R,_,S),E=G;return LK(E.hash.outputLen,E.nByteLength,E.hmac)(v,P)}q.BASE._setWindowSize(8);function B(R,_,S,v=y){let P=R;if(_=N5("msgHash",_),S=N5("publicKey",S),"strict"in v)throw Error("options.strict was renamed to lowS");let{lowS:E,prehash:b}=v,k=void 0,f;try{if(typeof P==="string"||P instanceof Uint8Array)try{k=x.fromDER(P)}catch(J0){if(!(J0 instanceof vG.Err))throw J0;k=x.fromCompact(P)}else if(typeof P==="object"&&typeof P.r==="bigint"&&typeof P.s==="bigint"){let{r:J0,s:B0}=P;k=new x(J0,B0)}else throw Error("PARSE");f=q.fromHex(S)}catch(J0){if(J0.message==="PARSE")throw Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(E&&k.hasHighS())return!1;if(b)_=G.hash(_);let{r:e,s:q0}=k,Q0=p(_),$0=U(q0),D0=J(Q0*$0),x0=J(e*$0),N1=q.BASE.multiplyAndAddUnsafe(f,D0,x0)?.toAffine();if(!N1)return!1;return J(N1.x)===e}return{CURVE:G,getPublicKey:l,getSharedSecret:n,sign:o,verify:B,ProjectivePoint:q,Signature:x,utils:h}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function ta(W){return{hash:W,hmac:(G,...X)=>KJ(W,G,cx(...X)),randomBytes:px}}function ck(W,G){let X=(Y)=>fk({...W,...ta(Y)});return Object.freeze({...X(G),create:X})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var dk=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),pk=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),ea=BigInt(1),_K=BigInt(2),lk=(W,G)=>(W+G/_K)/G;function Ws(W){let G=dk,X=BigInt(3),Y=BigInt(6),Z=BigInt(11),V=BigInt(22),Q=BigInt(23),J=BigInt(44),U=BigInt(88),q=W*W*W%G,N=q*q*W%G,A=H5(N,X,G)*N%G,H=H5(A,X,G)*N%G,I=H5(H,_K,G)*q%G,w=H5(I,Z,G)*I%G,C=H5(w,V,G)*w%G,D=H5(C,J,G)*C%G,x=H5(D,U,G)*D%G,h=H5(x,J,G)*C%G,l=H5(h,X,G)*N%G,u=H5(l,Q,G)*w%G,n=H5(u,Y,G)*q%G,c=H5(n,_K,G);if(!yK.eql(yK.sqr(c),W))throw Error("Cannot find square root");return c}var yK=gk(dk,void 0,void 0,{sqrt:Ws}),r4=ck({a:BigInt(0),b:BigInt(7),Fp:yK,n:pk,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:(W)=>{let G=pk,X=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),Y=-ea*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),Z=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),V=X,Q=BigInt("0x100000000000000000000000000000000"),J=lk(V*W,G),U=lk(-Y*W,G),q=B9(W-J*X-U*Z,G),N=B9(-J*Y-U*V,G),A=q>Q,H=N>Q;if(A)q=G-q;if(H)N=G-N;if(q>Q||N>Q)throw Error("splitScalar: Endomorphism failed, k="+W);return{k1neg:A,k1:q,k2neg:H,k2:N}}}},OJ),qj0=BigInt(0);var Nj0=r4.ProjectivePoint;var vK="0x0000000000000000000000000000000000000000";var pH="0x0000000000000000000000000000000000000000000000000000000000000000";var gK=`\x19Ethereum Signed Message:
|
|
249
|
-
`;var ok=BigInt(0),nk=BigInt(1),ik=BigInt(2),rk=BigInt(27),ak=BigInt(28),lH=BigInt(35),GZ={};function sk(W){return q5(J8(W),32)}class O8{#W;#G;#X;#Y;get r(){return this.#W}set r(W){s(d4(W)===32,"invalid r","value",W),this.#W=C0(W)}get s(){return s(parseInt(this.#G.substring(0,3))<8,"non-canonical s; use ._s","s",this.#G),this.#G}set s(W){s(d4(W)===32,"invalid s","value",W),this.#G=C0(W)}get _s(){return this.#G}isValid(){return parseInt(this.#G.substring(0,3))<8}get v(){return this.#X}set v(W){let G=i8(W,"value");s(G===27||G===28,"invalid v","v",W),this.#X=G}get networkV(){return this.#Y}get legacyChainId(){let W=this.networkV;if(W==null)return null;return O8.getChainId(W)}get yParity(){return this.v===27?0:1}get yParityAndS(){let W=R0(this.s);if(this.yParity)W[0]|=128;return C0(W)}get compactSerialized(){return s1([this.r,this.yParityAndS])}get serialized(){return s1([this.r,this.s,this.yParity?"0x1c":"0x1b"])}constructor(W,G,X,Y){l4(W,GZ,"Signature"),this.#W=G,this.#G=X,this.#X=Y,this.#Y=null}[Symbol.for("nodejs.util.inspect.custom")](){return`Signature { r: "${this.r}", s: "${this._s}"${this.isValid()?"":', valid: "false"'}, yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){let W=new O8(GZ,this.r,this._s,this.v);if(this.networkV)W.#Y=this.networkV;return W}toJSON(){let W=this.networkV;return{_type:"signature",networkV:W!=null?W.toString():null,r:this.r,s:this._s,v:this.v}}static getChainId(W){let G=u1(W,"v");if(G==rk||G==ak)return ok;return s(G>=lH,"invalid EIP-155 v","v",W),(G-lH)/ik}static getChainIdV(W,G){return u1(W)*ik+BigInt(35+G-27)}static getNormalizedV(W){let G=u1(W);if(G===ok||G===rk)return 27;if(G===nk||G===ak)return 28;return s(G>=lH,"invalid v","v",W),G&nk?27:28}static from(W){function G(U,q){s(U,q,"signature",W)}if(W==null)return new O8(GZ,pH,pH,27);if(typeof W==="string"){let U=R0(W,"signature");if(U.length===64){let q=C0(U.slice(0,32)),N=U.slice(32,64),A=N[0]&128?28:27;return N[0]&=127,new O8(GZ,q,C0(N),A)}if(U.length===65){let q=C0(U.slice(0,32)),N=C0(U.slice(32,64)),A=O8.getNormalizedV(U[64]);return new O8(GZ,q,N,A)}G(!1,"invalid raw signature length")}if(W instanceof O8)return W.clone();let X=W.r;G(X!=null,"missing r");let Y=sk(X),Z=function(U,q){if(U!=null)return sk(U);if(q!=null){G(T9(q,32),"invalid yParityAndS");let N=R0(q);return N[0]&=127,C0(N)}G(!1,"missing s")}(W.s,W.yParityAndS),{networkV:V,v:Q}=function(U,q,N){if(U!=null){let A=u1(U);return{networkV:A>=lH?A:void 0,v:O8.getNormalizedV(A)}}if(q!=null)return G(T9(q,32),"invalid yParityAndS"),{v:R0(q)[0]&128?28:27};if(N!=null){switch(i8(N,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}G(!1,"invalid yParity")}G(!1,"missing v")}(W.v,W.yParityAndS,W.yParity),J=new O8(GZ,Y,Z,Q);if(V)J.#Y=V;return G(W.yParity==null||i8(W.yParity,"sig.yParity")===J.yParity,"yParity mismatch"),G(W.yParityAndS==null||W.yParityAndS===J.yParityAndS,"yParityAndS mismatch"),J}}class d8{#W;constructor(W){s(d4(W)===32,"invalid private key","privateKey","[REDACTED]"),this.#W=C0(W)}get privateKey(){return this.#W}get publicKey(){return d8.computePublicKey(this.#W)}get compressedPublicKey(){return d8.computePublicKey(this.#W,!0)}sign(W){s(d4(W)===32,"invalid digest length","digest",W);let G=r4.sign(Y7(W),Y7(this.#W),{lowS:!0});return O8.from({r:Z7(G.r,32),s:Z7(G.s,32),v:G.recovery?28:27})}computeSharedSecret(W){let G=d8.computePublicKey(W);return C0(r4.getSharedSecret(Y7(this.#W),R0(G),!1))}static computePublicKey(W,G){let X=R0(W,"key");if(X.length===32){let Z=r4.getPublicKey(X,!!G);return C0(Z)}if(X.length===64){let Z=new Uint8Array(65);Z[0]=4,Z.set(X,1),X=Z}let Y=r4.ProjectivePoint.fromHex(X);return C0(Y.toRawBytes(G))}static recoverPublicKey(W,G){s(d4(W)===32,"invalid digest length","digest",W);let X=O8.from(G),Y=r4.Signature.fromCompact(Y7(s1([X.r,X.s])));Y=Y.addRecoveryBit(X.yParity);let Z=Y.recoverPublicKey(Y7(W));return s(Z!=null,"invalid signature for digest","signature",G),"0x"+Z.toHex(!1)}static addPoints(W,G,X){let Y=r4.ProjectivePoint.fromHex(d8.computePublicKey(W).substring(2)),Z=r4.ProjectivePoint.fromHex(d8.computePublicKey(G).substring(2));return"0x"+Y.add(Z).toHex(!!X)}}var Gs=BigInt(0),Xs=BigInt(36);function tk(W){W=W.toLowerCase();let G=W.substring(2).split(""),X=new Uint8Array(40);for(let Z=0;Z<40;Z++)X[Z]=G[Z].charCodeAt(0);let Y=R0(X8(X));for(let Z=0;Z<40;Z+=2){if(Y[Z>>1]>>4>=8)G[Z]=G[Z].toUpperCase();if((Y[Z>>1]&15)>=8)G[Z+1]=G[Z+1].toUpperCase()}return"0x"+G.join("")}var uK={};for(let W=0;W<10;W++)uK[String(W)]=String(W);for(let W=0;W<26;W++)uK[String.fromCharCode(65+W)]=String(10+W);var ek=15;function Ys(W){W=W.toUpperCase(),W=W.substring(4)+W.substring(0,2)+"00";let G=W.split("").map((Y)=>{return uK[Y]}).join("");while(G.length>=ek){let Y=G.substring(0,ek);G=parseInt(Y,10)%97+G.substring(Y.length)}let X=String(98-parseInt(G,10)%97);while(X.length<2)X="0"+X;return X}var Zs=function(){let W={};for(let G=0;G<36;G++){let X="0123456789abcdefghijklmnopqrstuvwxyz"[G];W[X]=BigInt(G)}return W}();function Vs(W){W=W.toLowerCase();let G=Gs;for(let X=0;X<W.length;X++)G=G*Xs+Zs[W[X]];return G}function f1(W){if(s(typeof W==="string","invalid address","address",W),W.match(/^(0x)?[0-9a-fA-F]{40}$/)){if(!W.startsWith("0x"))W="0x"+W;let G=tk(W);return s(!W.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||G===W,"bad address checksum","address",W),G}if(W.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){s(W.substring(2,4)===Ys(W),"bad icap checksum","address",W);let G=Vs(W.substring(4)).toString(16);while(G.length<40)G="0"+G;return tk("0x"+G)}s(!1,"invalid address","address",W)}function bK(W){return W&&typeof W.getAddress==="function"}async function hK(W,G){let X=await G;if(X==null||X==="0x0000000000000000000000000000000000000000")t0(typeof W!=="string","unconfigured name","UNCONFIGURED_NAME",{value:W}),s(!1,"invalid AddressLike value; did not resolve to a value address","target",W);return f1(X)}function a4(W,G){if(typeof W==="string"){if(W.match(/^0x[0-9a-f]{40}$/i))return f1(W);return t0(G!=null,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),hK(W,G.resolveName(W))}else if(bK(W))return hK(W,W.getAddress());else if(W&&typeof W.then==="function")return hK(W,W);s(!1,"unsupported addressable value","target",W)}function mK(W,G){return{address:f1(W),storageKeys:G.map((X,Y)=>{return s(T9(X,32),"invalid slot",`storageKeys[${Y}]`,X),X.toLowerCase()})}}function gG(W){if(Array.isArray(W))return W.map((X,Y)=>{if(Array.isArray(X))return s(X.length===2,"invalid slot set",`value[${Y}]`,X),mK(X[0],X[1]);return s(X!=null&&typeof X==="object","invalid address-slot set","value",W),mK(X.address,X.storageKeys)});s(W!=null&&typeof W==="object","invalid access list","value",W);let G=Object.keys(W).map((X)=>{let Y=W[X].reduce((Z,V)=>{return Z[V]=!0,Z},{});return mK(X,Object.keys(Y).sort())});return G.sort((X,Y)=>X.address.localeCompare(Y.address)),G}function W_(W){return{address:f1(W.address),nonce:u1(W.nonce!=null?W.nonce:0),chainId:u1(W.chainId!=null?W.chainId:0),signature:O8.from(W.signature)}}function s4(W){let G;if(typeof W==="string")G=d8.computePublicKey(W,!1);else G=W.publicKey;return f1(X8("0x"+G.substring(4)).substring(26))}function DJ(W,G){return s4(d8.recoverPublicKey(W,G))}var r8=BigInt(0),Us=BigInt(2),qs=BigInt(27),Ns=BigInt(28),Hs=BigInt(35),As=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),fK=131072;function zs(W){return{blobToKzgCommitment:(Y)=>{if("computeBlobProof"in W){if("blobToKzgCommitment"in W&&typeof W.blobToKzgCommitment==="function")return R0(W.blobToKzgCommitment(C0(Y)))}else if("blobToKzgCommitment"in W&&typeof W.blobToKzgCommitment==="function")return R0(W.blobToKzgCommitment(Y));if("blobToKZGCommitment"in W&&typeof W.blobToKZGCommitment==="function")return R0(W.blobToKZGCommitment(C0(Y)));s(!1,"unsupported KZG library","kzg",W)},computeBlobKzgProof:(Y,Z)=>{if("computeBlobProof"in W&&typeof W.computeBlobProof==="function")return R0(W.computeBlobProof(C0(Y),C0(Z)));if("computeBlobKzgProof"in W&&typeof W.computeBlobKzgProof==="function")return W.computeBlobKzgProof(Y,Z);if("computeBlobKZGProof"in W&&typeof W.computeBlobKZGProof==="function")return R0(W.computeBlobKZGProof(C0(Y),C0(Z)));s(!1,"unsupported KZG library","kzg",W)}}}function G_(W,G){let X=W.toString(16);while(X.length<2)X="0"+X;return X+=L9(G).substring(4),"0x"+X}function XZ(W){if(W==="0x")return null;return f1(W)}function dH(W,G){try{return gG(W)}catch(X){s(!1,X.message,G,W)}}function Is(W,G){try{if(!Array.isArray(W))throw Error("authorizationList: invalid array");let X=[];for(let Y=0;Y<W.length;Y++){let Z=W[Y];if(!Array.isArray(Z))throw Error(`authorization[${Y}]: invalid array`);if(Z.length!==6)throw Error(`authorization[${Y}]: wrong length`);if(!Z[1])throw Error(`authorization[${Y}]: null address`);X.push({address:XZ(Z[1]),nonce:Y8(Z[2],"nonce"),chainId:Y8(Z[0],"chainId"),signature:O8.from({yParity:uG(Z[3],"yParity"),r:q5(Z[4],32),s:q5(Z[5],32)})})}return X}catch(X){s(!1,X.message,G,W)}}function uG(W,G){if(W==="0x")return 0;return i8(W,G)}function Y8(W,G){if(W==="0x")return r8;let X=u1(W,G);return s(X<=As,"value exceeds uint size",G,X),X}function h1(W,G){let X=u1(W,"value"),Y=J8(X);return s(Y.length<=32,"value too large",`tx.${G}`,X),Y}function oH(W){return gG(W).map((G)=>[G.address,G.storageKeys])}function ws(W){return W.map((G)=>{return[h1(G.chainId,"chainId"),G.address,h1(G.nonce,"nonce"),h1(G.signature.yParity,"yParity"),J8(G.signature.r),J8(G.signature.s)]})}function js(W,G){s(Array.isArray(W),`invalid ${G}`,"value",W);for(let X=0;X<W.length;X++)s(T9(W[X],32),"invalid ${ param } hash",`value[${X}]`,W[X]);return W}function Os(W){let G=WW(W);s(Array.isArray(G)&&(G.length===9||G.length===6),"invalid field count for legacy transaction","data",W);let X={type:0,nonce:uG(G[0],"nonce"),gasPrice:Y8(G[1],"gasPrice"),gasLimit:Y8(G[2],"gasLimit"),to:XZ(G[3]),value:Y8(G[4],"value"),data:C0(G[5]),chainId:r8};if(G.length===6)return X;let Y=Y8(G[6],"v"),Z=Y8(G[7],"r"),V=Y8(G[8],"s");if(Z===r8&&V===r8)X.chainId=Y;else{let Q=(Y-Hs)/Us;if(Q<r8)Q=r8;X.chainId=Q,s(Q!==r8||(Y===qs||Y===Ns),"non-canonical legacy v","v",G[6]),X.signature=O8.from({r:q5(G[7],32),s:q5(G[8],32),v:Y})}return X}function Ks(W,G){let X=[h1(W.nonce,"nonce"),h1(W.gasPrice||0,"gasPrice"),h1(W.gasLimit,"gasLimit"),W.to||"0x",h1(W.value,"value"),W.data],Y=r8;if(W.chainId!=r8)Y=u1(W.chainId,"tx.chainId"),s(!G||G.networkV==null||G.legacyChainId===Y,"tx.chainId/sig.v mismatch","sig",G);else if(W.signature){let V=W.signature.legacyChainId;if(V!=null)Y=V}if(!G){if(Y!==r8)X.push(J8(Y)),X.push("0x"),X.push("0x");return R5(X)}let Z=BigInt(27+G.yParity);if(Y!==r8)Z=O8.getChainIdV(Y,G.v);else if(BigInt(G.v)!==Z)s(!1,"tx.chainId/sig.v mismatch","sig",G);return X.push(J8(Z)),X.push(J8(G.r)),X.push(J8(G.s)),R5(X)}function nH(W,G){let X;try{if(X=uG(G[0],"yParity"),X!==0&&X!==1)throw Error("bad yParity")}catch(Q){s(!1,"invalid yParity","yParity",G[0])}let Y=q5(G[1],32),Z=q5(G[2],32),V=O8.from({r:Y,s:Z,yParity:X});W.signature=V}function Cs(W){let G=WW(R0(W).slice(1));s(Array.isArray(G)&&(G.length===9||G.length===12),"invalid field count for transaction type: 2","data",C0(W));let X={type:2,chainId:Y8(G[0],"chainId"),nonce:uG(G[1],"nonce"),maxPriorityFeePerGas:Y8(G[2],"maxPriorityFeePerGas"),maxFeePerGas:Y8(G[3],"maxFeePerGas"),gasPrice:null,gasLimit:Y8(G[4],"gasLimit"),to:XZ(G[5]),value:Y8(G[6],"value"),data:C0(G[7]),accessList:dH(G[8],"accessList")};if(G.length===9)return X;return nH(X,G.slice(9)),X}function Ds(W,G){let X=[h1(W.chainId,"chainId"),h1(W.nonce,"nonce"),h1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),h1(W.maxFeePerGas||0,"maxFeePerGas"),h1(W.gasLimit,"gasLimit"),W.to||"0x",h1(W.value,"value"),W.data,oH(W.accessList||[])];if(G)X.push(h1(G.yParity,"yParity")),X.push(J8(G.r)),X.push(J8(G.s));return s1(["0x02",R5(X)])}function Ms(W){let G=WW(R0(W).slice(1));s(Array.isArray(G)&&(G.length===8||G.length===11),"invalid field count for transaction type: 1","data",C0(W));let X={type:1,chainId:Y8(G[0],"chainId"),nonce:uG(G[1],"nonce"),gasPrice:Y8(G[2],"gasPrice"),gasLimit:Y8(G[3],"gasLimit"),to:XZ(G[4]),value:Y8(G[5],"value"),data:C0(G[6]),accessList:dH(G[7],"accessList")};if(G.length===8)return X;return nH(X,G.slice(8)),X}function Ts(W,G){let X=[h1(W.chainId,"chainId"),h1(W.nonce,"nonce"),h1(W.gasPrice||0,"gasPrice"),h1(W.gasLimit,"gasLimit"),W.to||"0x",h1(W.value,"value"),W.data,oH(W.accessList||[])];if(G)X.push(h1(G.yParity,"recoveryParam")),X.push(J8(G.r)),X.push(J8(G.s));return s1(["0x01",R5(X)])}function Ps(W){let G=WW(R0(W).slice(1)),X="3",Y=null;if(G.length===4&&Array.isArray(G[0])){X="3 (network format)";let V=G[1],Q=G[2],J=G[3];s(Array.isArray(V),"invalid network format: blobs not an array","fields[1]",V),s(Array.isArray(Q),"invalid network format: commitments not an array","fields[2]",Q),s(Array.isArray(J),"invalid network format: proofs not an array","fields[3]",J),s(V.length===Q.length,"invalid network format: blobs/commitments length mismatch","fields",G),s(V.length===J.length,"invalid network format: blobs/proofs length mismatch","fields",G),Y=[];for(let U=0;U<G[1].length;U++)Y.push({data:V[U],commitment:Q[U],proof:J[U]});G=G[0]}s(Array.isArray(G)&&(G.length===11||G.length===14),`invalid field count for transaction type: ${X}`,"data",C0(W));let Z={type:3,chainId:Y8(G[0],"chainId"),nonce:uG(G[1],"nonce"),maxPriorityFeePerGas:Y8(G[2],"maxPriorityFeePerGas"),maxFeePerGas:Y8(G[3],"maxFeePerGas"),gasPrice:null,gasLimit:Y8(G[4],"gasLimit"),to:XZ(G[5]),value:Y8(G[6],"value"),data:C0(G[7]),accessList:dH(G[8],"accessList"),maxFeePerBlobGas:Y8(G[9],"maxFeePerBlobGas"),blobVersionedHashes:G[10]};if(Y)Z.blobs=Y;s(Z.to!=null,`invalid address for transaction type: ${X}`,"data",W),s(Array.isArray(Z.blobVersionedHashes),"invalid blobVersionedHashes: must be an array","data",W);for(let V=0;V<Z.blobVersionedHashes.length;V++)s(T9(Z.blobVersionedHashes[V],32),`invalid blobVersionedHash at index ${V}: must be length 32`,"data",W);if(G.length===11)return Z;return nH(Z,G.slice(11)),Z}function Rs(W,G,X){let Y=[h1(W.chainId,"chainId"),h1(W.nonce,"nonce"),h1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),h1(W.maxFeePerGas||0,"maxFeePerGas"),h1(W.gasLimit,"gasLimit"),W.to||vK,h1(W.value,"value"),W.data,oH(W.accessList||[]),h1(W.maxFeePerBlobGas||0,"maxFeePerBlobGas"),js(W.blobVersionedHashes||[],"blobVersionedHashes")];if(G){if(Y.push(h1(G.yParity,"yParity")),Y.push(J8(G.r)),Y.push(J8(G.s)),X)return s1(["0x03",R5([Y,X.map((Z)=>Z.data),X.map((Z)=>Z.commitment),X.map((Z)=>Z.proof)])])}return s1(["0x03",R5(Y)])}function Ls(W){let G=WW(R0(W).slice(1));s(Array.isArray(G)&&(G.length===10||G.length===13),"invalid field count for transaction type: 4","data",C0(W));let X={type:4,chainId:Y8(G[0],"chainId"),nonce:uG(G[1],"nonce"),maxPriorityFeePerGas:Y8(G[2],"maxPriorityFeePerGas"),maxFeePerGas:Y8(G[3],"maxFeePerGas"),gasPrice:null,gasLimit:Y8(G[4],"gasLimit"),to:XZ(G[5]),value:Y8(G[6],"value"),data:C0(G[7]),accessList:dH(G[8],"accessList"),authorizationList:Is(G[9],"authorizationList")};if(G.length===10)return X;return nH(X,G.slice(10)),X}function Bs(W,G){let X=[h1(W.chainId,"chainId"),h1(W.nonce,"nonce"),h1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),h1(W.maxFeePerGas||0,"maxFeePerGas"),h1(W.gasLimit,"gasLimit"),W.to||"0x",h1(W.value,"value"),W.data,oH(W.accessList||[]),ws(W.authorizationList||[])];if(G)X.push(h1(G.yParity,"yParity")),X.push(J8(G.r)),X.push(J8(G.s));return s1(["0x04",R5(X)])}class a9{#W;#G;#X;#Y;#U;#q;#N;#H;#A;#z;#I;#w;#J;#V;#Z;#Q;#j;get type(){return this.#W}set type(W){switch(W){case null:this.#W=null;break;case 0:case"legacy":this.#W=0;break;case 1:case"berlin":case"eip-2930":this.#W=1;break;case 2:case"london":case"eip-1559":this.#W=2;break;case 3:case"cancun":case"eip-4844":this.#W=3;break;case 4:case"pectra":case"eip-7702":this.#W=4;break;default:s(!1,"unsupported transaction type","type",W)}}get typeName(){switch(this.type){case 0:return"legacy";case 1:return"eip-2930";case 2:return"eip-1559";case 3:return"eip-4844";case 4:return"eip-7702"}return null}get to(){let W=this.#G;if(W==null&&this.type===3)return vK;return W}set to(W){this.#G=W==null?null:f1(W)}get nonce(){return this.#Y}set nonce(W){this.#Y=i8(W,"value")}get gasLimit(){return this.#U}set gasLimit(W){this.#U=u1(W)}get gasPrice(){let W=this.#q;if(W==null&&(this.type===0||this.type===1))return r8;return W}set gasPrice(W){this.#q=W==null?null:u1(W,"gasPrice")}get maxPriorityFeePerGas(){let W=this.#N;if(W==null){if(this.type===2||this.type===3)return r8;return null}return W}set maxPriorityFeePerGas(W){this.#N=W==null?null:u1(W,"maxPriorityFeePerGas")}get maxFeePerGas(){let W=this.#H;if(W==null){if(this.type===2||this.type===3)return r8;return null}return W}set maxFeePerGas(W){this.#H=W==null?null:u1(W,"maxFeePerGas")}get data(){return this.#X}set data(W){this.#X=C0(W)}get value(){return this.#A}set value(W){this.#A=u1(W,"value")}get chainId(){return this.#z}set chainId(W){this.#z=u1(W)}get signature(){return this.#I||null}set signature(W){this.#I=W==null?null:O8.from(W)}get accessList(){let W=this.#w||null;if(W==null){if(this.type===1||this.type===2||this.type===3)return[];return null}return W}set accessList(W){this.#w=W==null?null:gG(W)}get authorizationList(){let W=this.#j||null;if(W==null){if(this.type===4)return[]}return W}set authorizationList(W){this.#j=W==null?null:W.map((G)=>W_(G))}get maxFeePerBlobGas(){let W=this.#J;if(W==null&&this.type===3)return r8;return W}set maxFeePerBlobGas(W){this.#J=W==null?null:u1(W,"maxFeePerBlobGas")}get blobVersionedHashes(){let W=this.#V;if(W==null&&this.type===3)return[];return W}set blobVersionedHashes(W){if(W!=null){s(Array.isArray(W),"blobVersionedHashes must be an Array","value",W),W=W.slice();for(let G=0;G<W.length;G++)s(T9(W[G],32),"invalid blobVersionedHash",`value[${G}]`,W[G])}this.#V=W}get blobs(){if(this.#Q==null)return null;return this.#Q.map((W)=>Object.assign({},W))}set blobs(W){if(W==null){this.#Q=null;return}let G=[],X=[];for(let Y=0;Y<W.length;Y++){let Z=W[Y];if(l7(Z)){t0(this.#Z,"adding a raw blob requires a KZG library","UNSUPPORTED_OPERATION",{operation:"set blobs()"});let V=R0(Z);if(s(V.length<=fK,"blob is too large",`blobs[${Y}]`,Z),V.length!==fK){let U=new Uint8Array(fK);U.set(V),V=U}let Q=this.#Z.blobToKzgCommitment(V),J=C0(this.#Z.computeBlobKzgProof(V,Q));G.push({data:C0(V),commitment:C0(Q),proof:J}),X.push(G_(1,Q))}else{let V=C0(Z.commitment);G.push({data:C0(Z.data),commitment:V,proof:C0(Z.proof)}),X.push(G_(1,V))}}this.#Q=G,this.#V=X}get kzg(){return this.#Z}set kzg(W){if(W==null)this.#Z=null;else this.#Z=zs(W)}constructor(){this.#W=null,this.#G=null,this.#Y=0,this.#U=r8,this.#q=null,this.#N=null,this.#H=null,this.#X="0x",this.#A=r8,this.#z=r8,this.#I=null,this.#w=null,this.#J=null,this.#V=null,this.#Z=null,this.#Q=null,this.#j=null}get hash(){if(this.signature==null)return null;return X8(this.#O(!0,!1))}get unsignedHash(){return X8(this.unsignedSerialized)}get from(){if(this.signature==null)return null;return DJ(this.unsignedHash,this.signature)}get fromPublicKey(){if(this.signature==null)return null;return d8.recoverPublicKey(this.unsignedHash,this.signature)}isSigned(){return this.signature!=null}#O(W,G){t0(!W||this.signature!=null,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"});let X=W?this.signature:null;switch(this.inferType()){case 0:return Ks(this,X);case 1:return Ts(this,X);case 2:return Ds(this,X);case 3:return Rs(this,X,G?this.blobs:null);case 4:return Bs(this,X)}t0(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})}get serialized(){return this.#O(!0,!0)}get unsignedSerialized(){return this.#O(!1,!1)}inferType(){let W=this.inferTypes();if(W.indexOf(2)>=0)return 2;return W.pop()}inferTypes(){let W=this.gasPrice!=null,G=this.maxFeePerGas!=null||this.maxPriorityFeePerGas!=null,X=this.accessList!=null,Y=this.#J!=null||this.#V;if(this.maxFeePerGas!=null&&this.maxPriorityFeePerGas!=null)t0(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this});t0(!G||this.type!==0&&this.type!==1,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),t0(this.type!==0||!X,"legacy transaction cannot have accessList","BAD_DATA",{value:this});let Z=[];if(this.type!=null)Z.push(this.type);else if(this.authorizationList&&this.authorizationList.length)Z.push(4);else if(G)Z.push(2);else if(W){if(Z.push(1),!X)Z.push(0)}else if(X)Z.push(1),Z.push(2);else if(Y&&this.to)Z.push(3);else Z.push(0),Z.push(1),Z.push(2),Z.push(3);return Z.sort(),Z}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}clone(){return a9.from(this)}toJSON(){let W=(G)=>{if(G==null)return null;return G.toString()};return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:W(this.gasLimit),gasPrice:W(this.gasPrice),maxPriorityFeePerGas:W(this.maxPriorityFeePerGas),maxFeePerGas:W(this.maxFeePerGas),value:W(this.value),chainId:W(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}static from(W){if(W==null)return new a9;if(typeof W==="string"){let X=R0(W);if(X[0]>=127)return a9.from(Os(X));switch(X[0]){case 1:return a9.from(Ms(X));case 2:return a9.from(Cs(X));case 3:return a9.from(Ps(X));case 4:return a9.from(Ls(X))}t0(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}let G=new a9;if(W.type!=null)G.type=W.type;if(W.to!=null)G.to=W.to;if(W.nonce!=null)G.nonce=W.nonce;if(W.gasLimit!=null)G.gasLimit=W.gasLimit;if(W.gasPrice!=null)G.gasPrice=W.gasPrice;if(W.maxPriorityFeePerGas!=null)G.maxPriorityFeePerGas=W.maxPriorityFeePerGas;if(W.maxFeePerGas!=null)G.maxFeePerGas=W.maxFeePerGas;if(W.maxFeePerBlobGas!=null)G.maxFeePerBlobGas=W.maxFeePerBlobGas;if(W.data!=null)G.data=W.data;if(W.value!=null)G.value=W.value;if(W.chainId!=null)G.chainId=W.chainId;if(W.signature!=null)G.signature=O8.from(W.signature);if(W.accessList!=null)G.accessList=W.accessList;if(W.authorizationList!=null)G.authorizationList=W.authorizationList;if(W.blobVersionedHashes!=null)G.blobVersionedHashes=W.blobVersionedHashes;if(W.kzg!=null)G.kzg=W.kzg;if(W.blobs!=null)G.blobs=W.blobs;if(W.hash!=null)s(G.isSigned(),"unsigned transaction cannot define '.hash'","tx",W),s(G.hash===W.hash,"hash mismatch","tx",W);if(W.from!=null)s(G.isSigned(),"unsigned transaction cannot define '.from'","tx",W),s(G.from.toLowerCase()===(W.from||"").toLowerCase(),"from mismatch","tx",W);return G}}function iH(W){return s(typeof W.address==="string","invalid address for hashAuthorization","auth.address",W),X8(s1(["0x05",R5([W.chainId!=null?J8(W.chainId):"0x",f1(W.address),W.nonce!=null?J8(W.nonce):"0x"])]))}function t4(W){return X8(P9(W))}function MJ(W){if(typeof W==="string")W=P9(W);return X8(s1([P9(gK),P9(String(W.length)),W]))}function rH(W,G){let X=MJ(W);return DJ(X,G)}var V_=new Uint8Array(32);V_.fill(0);var Es=BigInt(-1),Q_=BigInt(0),J_=BigInt(1),$s=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function Fs(W){let G=R0(W),X=G.length%32;if(X)return s1([G,V_.slice(X)]);return C0(G)}var Ss=Z7(J_,32),xs=Z7(Q_,32),X_={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},cK=["name","version","chainId","verifyingContract","salt"];function Y_(W){return function(G){return s(typeof G==="string",`invalid domain value for ${JSON.stringify(W)}`,`domain.${W}`,G),G}}var ks={name:Y_("name"),version:Y_("version"),chainId:function(W){let G=u1(W,"domain.chainId");if(s(G>=0,"invalid chain ID","domain.chainId",W),Number.isSafeInteger(G))return Number(G);return PH(G)},verifyingContract:function(W){try{return f1(W).toLowerCase()}catch(G){}s(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",W)},salt:function(W){let G=R0(W,"domain.salt");return s(G.length===32,'invalid domain value "salt"',"domain.salt",W),C0(G)}};function pK(W){{let G=W.match(/^(u?)int(\d+)$/);if(G){let X=G[1]==="",Y=parseInt(G[2]);s(Y%8===0&&Y!==0&&Y<=256&&G[2]===String(Y),"invalid numeric width","type",W);let Z=TH($s,X?Y-1:Y),V=X?(Z+J_)*Es:Q_;return function(Q){let J=u1(Q,"value");return s(J>=V&&J<=Z,`value out-of-bounds for ${W}`,"value",J),Z7(X?MH(J,256):J,32)}}}{let G=W.match(/^bytes(\d+)$/);if(G){let X=parseInt(G[1]);return s(X!==0&&X<=32&&G[1]===String(X),"invalid bytes width","type",W),function(Y){let Z=R0(Y);return s(Z.length===X,`invalid length for ${W}`,"value",Y),Fs(Y)}}}switch(W){case"address":return function(G){return q5(f1(G),32)};case"bool":return function(G){return!G?xs:Ss};case"bytes":return function(G){return X8(G)};case"string":return function(G){return t4(G)}}return null}function Z_(W,G){return`${W}(${G.map(({name:X,type:Y})=>Y+" "+X).join(",")})`}function aH(W){let G=W.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);if(G)return{base:G[1],index:G[2]+G[4],array:{base:G[1],prefix:G[1]+G[2],count:G[5]?parseInt(G[5]):-1}};return{base:W}}class E9{primaryType;#W;get types(){return JSON.parse(this.#W)}#G;#X;constructor(W){this.#G=new Map,this.#X=new Map;let G=new Map,X=new Map,Y=new Map,Z={};Object.keys(W).forEach((J)=>{Z[J]=W[J].map(({name:U,type:q})=>{let{base:N,index:A}=aH(q);if(N==="int"&&!W.int)N="int256";if(N==="uint"&&!W.uint)N="uint256";return{name:U,type:N+(A||"")}}),G.set(J,new Set),X.set(J,[]),Y.set(J,new Set)}),this.#W=JSON.stringify(Z);for(let J in Z){let U=new Set;for(let q of Z[J]){s(!U.has(q.name),`duplicate variable name ${JSON.stringify(q.name)} in ${JSON.stringify(J)}`,"types",W),U.add(q.name);let N=aH(q.type).base;if(s(N!==J,`circular type reference to ${JSON.stringify(N)}`,"types",W),pK(N))continue;s(X.has(N),`unknown type ${JSON.stringify(N)}`,"types",W),X.get(N).push(J),G.get(J).add(N)}}let V=Array.from(X.keys()).filter((J)=>X.get(J).length===0);s(V.length!==0,"missing primary type","types",W),s(V.length===1,`ambiguous primary types or unused types: ${V.map((J)=>JSON.stringify(J)).join(", ")}`,"types",W),Q8(this,{primaryType:V[0]});function Q(J,U){s(!U.has(J),`circular type reference to ${JSON.stringify(J)}`,"types",W),U.add(J);for(let q of G.get(J)){if(!X.has(q))continue;Q(q,U);for(let N of U)Y.get(N).add(q)}U.delete(J)}Q(this.primaryType,new Set);for(let[J,U]of Y){let q=Array.from(U);q.sort(),this.#G.set(J,Z_(J,Z[J])+q.map((N)=>Z_(N,Z[N])).join(""))}}getEncoder(W){let G=this.#X.get(W);if(!G)G=this.#Y(W),this.#X.set(W,G);return G}#Y(W){{let Y=pK(W);if(Y)return Y}let G=aH(W).array;if(G){let Y=G.prefix,Z=this.getEncoder(Y);return(V)=>{s(G.count===-1||G.count===V.length,`array length mismatch; expected length ${G.count}`,"value",V);let Q=V.map(Z);if(this.#G.has(Y))Q=Q.map(X8);return X8(s1(Q))}}let X=this.types[W];if(X){let Y=t4(this.#G.get(W));return(Z)=>{let V=X.map(({name:Q,type:J})=>{let U=this.getEncoder(J)(Z[Q]);if(this.#G.has(J))return X8(U);return U});return V.unshift(Y),s1(V)}}s(!1,`unknown type: ${W}`,"type",W)}encodeType(W){let G=this.#G.get(W);return s(G,`unknown type: ${JSON.stringify(W)}`,"name",W),G}encodeData(W,G){return this.getEncoder(W)(G)}hashStruct(W,G){return X8(this.encodeData(W,G))}encode(W){return this.encodeData(this.primaryType,W)}hash(W){return this.hashStruct(this.primaryType,W)}_visit(W,G,X){if(pK(W))return X(W,G);let Y=aH(W).array;if(Y)return s(Y.count===-1||Y.count===G.length,`array length mismatch; expected length ${Y.count}`,"value",G),G.map((V)=>this._visit(Y.prefix,V,X));let Z=this.types[W];if(Z)return Z.reduce((V,{name:Q,type:J})=>{return V[Q]=this._visit(J,G[Q],X),V},{});s(!1,`unknown type: ${W}`,"type",W)}visit(W,G){return this._visit(this.primaryType,W,G)}static from(W){return new E9(W)}static getPrimaryType(W){return E9.from(W).primaryType}static hashStruct(W,G,X){return E9.from(G).hashStruct(W,X)}static hashDomain(W){let G=[];for(let X in W){if(W[X]==null)continue;let Y=X_[X];s(Y,`invalid typed-data domain key: ${JSON.stringify(X)}`,"domain",W),G.push({name:X,type:Y})}return G.sort((X,Y)=>{return cK.indexOf(X.name)-cK.indexOf(Y.name)}),E9.hashStruct("EIP712Domain",{EIP712Domain:G},W)}static encode(W,G,X){return s1(["0x1901",E9.hashDomain(W),E9.from(G).hash(X)])}static hash(W,G,X){return X8(E9.encode(W,G,X))}static async resolveNames(W,G,X,Y){W=Object.assign({},W);for(let Q in W)if(W[Q]==null)delete W[Q];let Z={};if(W.verifyingContract&&!T9(W.verifyingContract,20))Z[W.verifyingContract]="0x";let V=E9.from(G);V.visit(X,(Q,J)=>{if(Q==="address"&&!T9(J,20))Z[J]="0x";return J});for(let Q in Z)Z[Q]=await Y(Q);if(W.verifyingContract&&Z[W.verifyingContract])W.verifyingContract=Z[W.verifyingContract];return X=V.visit(X,(Q,J)=>{if(Q==="address"&&Z[J])return Z[J];return J}),{domain:W,value:X}}static getPayload(W,G,X){E9.hashDomain(W);let Y={},Z=[];cK.forEach((J)=>{let U=W[J];if(U==null)return;Y[J]=ks[J](U),Z.push({name:J,type:X_[J]})});let V=E9.from(G);G=V.types;let Q=Object.assign({},G);return s(Q.EIP712Domain==null,"types must not contain EIP712Domain type","types.EIP712Domain",G),Q.EIP712Domain=Z,V.encode(X),{types:Q,domain:Y,primaryType:V.primaryType,message:V.visit(X,(J,U)=>{if(J.match(/^bytes(\d*)/))return C0(R0(U));if(J.match(/^u?int/))return u1(U).toString();switch(J){case"address":return U.toLowerCase();case"bool":return!!U;case"string":return s(typeof U==="string","invalid string","value",U),U}s(!1,"unsupported type","type",J)})}}}var U_=BigInt(0);function lK(W){if(W==null)return null;return W}function a8(W){if(W==null)return null;return W.toString()}function TJ(W){let G={};if(W.to)G.to=W.to;if(W.from)G.from=W.from;if(W.data)G.data=C0(W.data);let X="chainId,gasLimit,gasPrice,maxFeePerBlobGas,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(let Z of X){if(!(Z in W)||W[Z]==null)continue;G[Z]=u1(W[Z],`request.${Z}`)}let Y="type,nonce".split(/,/);for(let Z of Y){if(!(Z in W)||W[Z]==null)continue;G[Z]=i8(W[Z],`request.${Z}`)}if(W.accessList)G.accessList=gG(W.accessList);if(W.authorizationList)G.authorizationList=W.authorizationList.slice();if("blockTag"in W)G.blockTag=W.blockTag;if("enableCcipRead"in W)G.enableCcipRead=!!W.enableCcipRead;if("customData"in W)G.customData=W.customData;if("blobVersionedHashes"in W&&W.blobVersionedHashes)G.blobVersionedHashes=W.blobVersionedHashes.slice();if("kzg"in W)G.kzg=W.kzg;if("blobs"in W&&W.blobs)G.blobs=W.blobs.map((Z)=>{if(l7(Z))return C0(Z);return Object.assign({},Z)});return G}class q_{provider;number;hash;timestamp;parentHash;parentBeaconBlockRoot;nonce;difficulty;gasLimit;gasUsed;stateRoot;receiptsRoot;blobGasUsed;excessBlobGas;miner;prevRandao;extraData;baseFeePerGas;#W;constructor(W,G){this.#W=W.transactions.map((X)=>{if(typeof X!=="string")return new sH(X,G);return X}),Q8(this,{provider:G,hash:lK(W.hash),number:W.number,timestamp:W.timestamp,parentHash:W.parentHash,parentBeaconBlockRoot:W.parentBeaconBlockRoot,nonce:W.nonce,difficulty:W.difficulty,gasLimit:W.gasLimit,gasUsed:W.gasUsed,blobGasUsed:W.blobGasUsed,excessBlobGas:W.excessBlobGas,miner:W.miner,prevRandao:lK(W.prevRandao),extraData:W.extraData,baseFeePerGas:lK(W.baseFeePerGas),stateRoot:W.stateRoot,receiptsRoot:W.receiptsRoot})}get transactions(){return this.#W.map((W)=>{if(typeof W==="string")return W;return W.hash})}get prefetchedTransactions(){let W=this.#W.slice();if(W.length===0)return[];return t0(typeof W[0]==="object","transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),W}toJSON(){let{baseFeePerGas:W,difficulty:G,extraData:X,gasLimit:Y,gasUsed:Z,hash:V,miner:Q,prevRandao:J,nonce:U,number:q,parentHash:N,parentBeaconBlockRoot:A,stateRoot:H,receiptsRoot:I,timestamp:w,transactions:C}=this;return{_type:"Block",baseFeePerGas:a8(W),difficulty:a8(G),extraData:X,gasLimit:a8(Y),gasUsed:a8(Z),blobGasUsed:a8(this.blobGasUsed),excessBlobGas:a8(this.excessBlobGas),hash:V,miner:Q,prevRandao:J,nonce:U,number:q,parentHash:N,timestamp:w,parentBeaconBlockRoot:A,stateRoot:H,receiptsRoot:I,transactions:C}}[Symbol.iterator](){let W=0,G=this.transactions;return{next:()=>{if(W<this.length)return{value:G[W++],done:!1};return{value:void 0,done:!0}}}}get length(){return this.#W.length}get date(){if(this.timestamp==null)return null;return new Date(this.timestamp*1000)}async getTransaction(W){let G=void 0;if(typeof W==="number")G=this.#W[W];else{let X=W.toLowerCase();for(let Y of this.#W)if(typeof Y==="string"){if(Y!==X)continue;G=Y;break}else{if(Y.hash!==X)continue;G=Y;break}}if(G==null)throw Error("no such tx");if(typeof G==="string")return await this.provider.getTransaction(G);else return G}getPrefetchedTransaction(W){let G=this.prefetchedTransactions;if(typeof W==="number")return G[W];W=W.toLowerCase();for(let X of G)if(X.hash===W)return X;s(!1,"no matching transaction","indexOrHash",W)}isMined(){return!!this.hash}isLondon(){return!!this.baseFeePerGas}orphanedEvent(){if(!this.isMined())throw Error("");return vs(this)}}class dK{provider;transactionHash;blockHash;blockNumber;removed;address;data;topics;index;transactionIndex;constructor(W,G){this.provider=G;let X=Object.freeze(W.topics.slice());Q8(this,{transactionHash:W.transactionHash,blockHash:W.blockHash,blockNumber:W.blockNumber,removed:W.removed,address:W.address,data:W.data,topics:X,index:W.index,transactionIndex:W.transactionIndex})}toJSON(){let{address:W,blockHash:G,blockNumber:X,data:Y,index:Z,removed:V,topics:Q,transactionHash:J,transactionIndex:U}=this;return{_type:"log",address:W,blockHash:G,blockNumber:X,data:Y,index:Z,removed:V,topics:Q,transactionHash:J,transactionIndex:U}}async getBlock(){let W=await this.provider.getBlock(this.blockHash);return t0(!!W,"failed to find transaction","UNKNOWN_ERROR",{}),W}async getTransaction(){let W=await this.provider.getTransaction(this.transactionHash);return t0(!!W,"failed to find transaction","UNKNOWN_ERROR",{}),W}async getTransactionReceipt(){let W=await this.provider.getTransactionReceipt(this.transactionHash);return t0(!!W,"failed to find transaction receipt","UNKNOWN_ERROR",{}),W}removedEvent(){return gs(this)}}class N_{provider;to;from;contractAddress;hash;index;blockHash;blockNumber;logsBloom;gasUsed;blobGasUsed;cumulativeGasUsed;gasPrice;blobGasPrice;type;status;root;#W;constructor(W,G){this.#W=Object.freeze(W.logs.map((Y)=>{return new dK(Y,G)}));let X=U_;if(W.effectiveGasPrice!=null)X=W.effectiveGasPrice;else if(W.gasPrice!=null)X=W.gasPrice;Q8(this,{provider:G,to:W.to,from:W.from,contractAddress:W.contractAddress,hash:W.hash,index:W.index,blockHash:W.blockHash,blockNumber:W.blockNumber,logsBloom:W.logsBloom,gasUsed:W.gasUsed,cumulativeGasUsed:W.cumulativeGasUsed,blobGasUsed:W.blobGasUsed,gasPrice:X,blobGasPrice:W.blobGasPrice,type:W.type,status:W.status,root:W.root})}get logs(){return this.#W}toJSON(){let{to:W,from:G,contractAddress:X,hash:Y,index:Z,blockHash:V,blockNumber:Q,logsBloom:J,logs:U,status:q,root:N}=this;return{_type:"TransactionReceipt",blockHash:V,blockNumber:Q,contractAddress:X,cumulativeGasUsed:a8(this.cumulativeGasUsed),from:G,gasPrice:a8(this.gasPrice),blobGasUsed:a8(this.blobGasUsed),blobGasPrice:a8(this.blobGasPrice),gasUsed:a8(this.gasUsed),hash:Y,index:Z,logs:U,logsBloom:J,root:N,status:q,to:W}}get length(){return this.logs.length}[Symbol.iterator](){let W=0;return{next:()=>{if(W<this.length)return{value:this.logs[W++],done:!1};return{value:void 0,done:!0}}}}get fee(){return this.gasUsed*this.gasPrice}async getBlock(){let W=await this.provider.getBlock(this.blockHash);if(W==null)throw Error("TODO");return W}async getTransaction(){let W=await this.provider.getTransaction(this.hash);if(W==null)throw Error("TODO");return W}async getResult(){return await this.provider.getTransactionResult(this.hash)}async confirmations(){return await this.provider.getBlockNumber()-this.blockNumber+1}removedEvent(){return A_(this)}reorderedEvent(W){return t0(!W||W.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),H_(this,W)}}class sH{provider;blockNumber;blockHash;index;hash;type;to;from;nonce;gasLimit;gasPrice;maxPriorityFeePerGas;maxFeePerGas;maxFeePerBlobGas;data;value;chainId;signature;accessList;blobVersionedHashes;authorizationList;#W;constructor(W,G){this.provider=G,this.blockNumber=W.blockNumber!=null?W.blockNumber:null,this.blockHash=W.blockHash!=null?W.blockHash:null,this.hash=W.hash,this.index=W.index,this.type=W.type,this.from=W.from,this.to=W.to||null,this.gasLimit=W.gasLimit,this.nonce=W.nonce,this.data=W.data,this.value=W.value,this.gasPrice=W.gasPrice,this.maxPriorityFeePerGas=W.maxPriorityFeePerGas!=null?W.maxPriorityFeePerGas:null,this.maxFeePerGas=W.maxFeePerGas!=null?W.maxFeePerGas:null,this.maxFeePerBlobGas=W.maxFeePerBlobGas!=null?W.maxFeePerBlobGas:null,this.chainId=W.chainId,this.signature=W.signature,this.accessList=W.accessList!=null?W.accessList:null,this.blobVersionedHashes=W.blobVersionedHashes!=null?W.blobVersionedHashes:null,this.authorizationList=W.authorizationList!=null?W.authorizationList:null,this.#W=-1}toJSON(){let{blockNumber:W,blockHash:G,index:X,hash:Y,type:Z,to:V,from:Q,nonce:J,data:U,signature:q,accessList:N,blobVersionedHashes:A}=this;return{_type:"TransactionResponse",accessList:N,blockNumber:W,blockHash:G,blobVersionedHashes:A,chainId:a8(this.chainId),data:U,from:Q,gasLimit:a8(this.gasLimit),gasPrice:a8(this.gasPrice),hash:Y,maxFeePerGas:a8(this.maxFeePerGas),maxPriorityFeePerGas:a8(this.maxPriorityFeePerGas),maxFeePerBlobGas:a8(this.maxFeePerBlobGas),nonce:J,signature:q,to:V,index:X,type:Z,value:a8(this.value)}}async getBlock(){let W=this.blockNumber;if(W==null){let X=await this.getTransaction();if(X)W=X.blockNumber}if(W==null)return null;let G=this.provider.getBlock(W);if(G==null)throw Error("TODO");return G}async getTransaction(){return this.provider.getTransaction(this.hash)}async confirmations(){if(this.blockNumber==null){let{tx:G,blockNumber:X}=await p7({tx:this.getTransaction(),blockNumber:this.provider.getBlockNumber()});if(G==null||G.blockNumber==null)return 0;return X-G.blockNumber+1}return await this.provider.getBlockNumber()-this.blockNumber+1}async wait(W,G){let X=W==null?1:W,Y=G==null?0:G,Z=this.#W,V=-1,Q=Z===-1?!0:!1,J=async()=>{if(Q)return null;let{blockNumber:A,nonce:H}=await p7({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(H<this.nonce){Z=A;return}if(Q)return null;let I=await this.getTransaction();if(I&&I.blockNumber!=null)return;if(V===-1){if(V=Z-3,V<this.#W)V=this.#W}while(V<=A){if(Q)return null;let w=await this.provider.getBlock(V,!0);if(w==null)return;for(let C of w)if(C===this.hash)return;for(let C=0;C<w.length;C++){let D=await w.getTransaction(C);if(D.from===this.from&&D.nonce===this.nonce){if(Q)return null;let x=await this.provider.getTransactionReceipt(D.hash);if(x==null)return;if(A-x.blockNumber+1<X)return;let h="replaced";if(D.data===this.data&&D.to===this.to&&D.value===this.value)h="repriced";else if(D.data==="0x"&&D.from===D.to&&D.value===U_)h="cancelled";t0(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:h==="replaced"||h==="cancelled",reason:h,replacement:D.replaceableTransaction(Z),hash:D.hash,receipt:x})}}V++}return},U=(A)=>{if(A==null||A.status!==0)return A;t0(!1,"transaction execution reverted","CALL_EXCEPTION",{action:"sendTransaction",data:null,reason:null,invocation:null,revert:null,transaction:{to:A.to,from:A.from,data:""},receipt:A})},q=await this.provider.getTransactionReceipt(this.hash);if(X===0)return U(q);if(q){if(X===1||await q.confirmations()>=X)return U(q)}else if(await J(),X===0)return null;return await new Promise((A,H)=>{let I=[],w=()=>{I.forEach((D)=>D())};if(I.push(()=>{Q=!0}),Y>0){let D=setTimeout(()=>{w(),H(HJ("wait for transaction timeout","TIMEOUT"))},Y);I.push(()=>{clearTimeout(D)})}let C=async(D)=>{if(await D.confirmations()>=X){w();try{A(U(D))}catch(x){H(x)}}};if(I.push(()=>{this.provider.off(this.hash,C)}),this.provider.on(this.hash,C),Z>=0){let D=async()=>{try{await J()}catch(x){if(DH(x,"TRANSACTION_REPLACED")){w(),H(x);return}}if(!Q)this.provider.once("block",D)};I.push(()=>{this.provider.off("block",D)}),this.provider.once("block",D)}})}isMined(){return this.blockHash!=null}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}removedEvent(){return t0(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),A_(this)}reorderedEvent(W){return t0(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),t0(!W||W.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),H_(this,W)}replaceableTransaction(W){s(Number.isInteger(W)&&W>=0,"invalid startBlock","startBlock",W);let G=new sH(this,this.provider);return G.#W=W,G}}function vs(W){return{orphan:"drop-block",hash:W.hash,number:W.number}}function H_(W,G){return{orphan:"reorder-transaction",tx:W,other:G}}function A_(W){return{orphan:"drop-transaction",tx:W}}function gs(W){return{orphan:"drop-log",log:{transactionHash:W.transactionHash,blockHash:W.blockHash,blockNumber:W.blockNumber,address:W.address,data:W.data,topics:Object.freeze(W.topics.slice()),index:W.index}}}function hG(W,G){if(W.provider)return W.provider;t0(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:G})}async function z_(W,G){let X=TJ(G);if(X.to!=null)X.to=a4(X.to,W);if(X.from!=null){let Y=X.from;X.from=Promise.all([W.getAddress(),a4(Y,W)]).then(([Z,V])=>{return s(Z.toLowerCase()===V.toLowerCase(),"transaction from mismatch","tx.from",V),Z})}else X.from=W.getAddress();return await p7(X)}class PJ{provider;constructor(W){Q8(this,{provider:W||null})}async getNonce(W){return hG(this,"getTransactionCount").getTransactionCount(await this.getAddress(),W)}async populateCall(W){return await z_(this,W)}async populateTransaction(W){let G=hG(this,"populateTransaction"),X=await z_(this,W);if(X.nonce==null)X.nonce=await this.getNonce("pending");if(X.gasLimit==null)X.gasLimit=await this.estimateGas(X);let Y=await this.provider.getNetwork();if(X.chainId!=null){let V=u1(X.chainId);s(V===Y.chainId,"transaction chainId mismatch","tx.chainId",W.chainId)}else X.chainId=Y.chainId;let Z=X.maxFeePerGas!=null||X.maxPriorityFeePerGas!=null;if(X.gasPrice!=null&&(X.type===2||Z))s(!1,"eip-1559 transaction do not support gasPrice","tx",W);else if((X.type===0||X.type===1)&&Z)s(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",W);if((X.type===2||X.type==null)&&(X.maxFeePerGas!=null&&X.maxPriorityFeePerGas!=null))X.type=2;else if(X.type===0||X.type===1){let V=await G.getFeeData();if(t0(V.gasPrice!=null,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),X.gasPrice==null)X.gasPrice=V.gasPrice}else{let V=await G.getFeeData();if(X.type==null)if(V.maxFeePerGas!=null&&V.maxPriorityFeePerGas!=null){if(X.authorizationList&&X.authorizationList.length)X.type=4;else X.type=2;if(X.gasPrice!=null){let Q=X.gasPrice;delete X.gasPrice,X.maxFeePerGas=Q,X.maxPriorityFeePerGas=Q}else{if(X.maxFeePerGas==null)X.maxFeePerGas=V.maxFeePerGas;if(X.maxPriorityFeePerGas==null)X.maxPriorityFeePerGas=V.maxPriorityFeePerGas}}else if(V.gasPrice!=null){if(t0(!Z,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),X.gasPrice==null)X.gasPrice=V.gasPrice;X.type=0}else t0(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else if(X.type===2||X.type===3||X.type===4){if(X.maxFeePerGas==null)X.maxFeePerGas=V.maxFeePerGas;if(X.maxPriorityFeePerGas==null)X.maxPriorityFeePerGas=V.maxPriorityFeePerGas}}return await p7(X)}async populateAuthorization(W){let G=Object.assign({},W);if(G.chainId==null)G.chainId=(await hG(this,"getNetwork").getNetwork()).chainId;if(G.nonce==null)G.nonce=await this.getNonce();return G}async estimateGas(W){return hG(this,"estimateGas").estimateGas(await this.populateCall(W))}async call(W){return hG(this,"call").call(await this.populateCall(W))}async resolveName(W){return await hG(this,"resolveName").resolveName(W)}async sendTransaction(W){let G=hG(this,"sendTransaction"),X=await this.populateTransaction(W);delete X.from;let Y=a9.from(X);return await G.broadcastTransaction(await this.signTransaction(Y))}authorize(W){t0(!1,"authorization not implemented for this signer","UNSUPPORTED_OPERATION",{operation:"authorize"})}}class RJ extends PJ{address;constructor(W,G){super(G);Q8(this,{address:W})}async getAddress(){return this.address}connect(W){return new RJ(this.address,W)}#W(W,G){t0(!1,`VoidSigner cannot sign ${W}`,"UNSUPPORTED_OPERATION",{operation:G})}async signTransaction(W){this.#W("transactions","signTransaction")}async signMessage(W){this.#W("messages","signMessage")}async signTypedData(W,G,X){this.#W("typed-data","signTypedData")}}class bG extends PJ{address;#W;constructor(W,G){super(G);s(W&&typeof W.sign==="function","invalid private key","privateKey","[ REDACTED ]"),this.#W=W;let X=s4(this.signingKey.publicKey);Q8(this,{address:X})}get signingKey(){return this.#W}get privateKey(){return this.signingKey.privateKey}async getAddress(){return this.address}connect(W){return new bG(this.#W,W)}async signTransaction(W){W=TJ(W);let{to:G,from:X}=await p7({to:W.to?a4(W.to,this):void 0,from:W.from?a4(W.from,this):void 0});if(G!=null)W.to=G;if(X!=null)W.from=X;if(W.from!=null)s(f1(W.from)===this.address,"transaction from address mismatch","tx.from",W.from),delete W.from;let Y=a9.from(W);return Y.signature=this.signingKey.sign(Y.unsignedHash),Y.serialized}async signMessage(W){return this.signMessageSync(W)}signMessageSync(W){return this.signingKey.sign(MJ(W)).serialized}authorizeSync(W){s(typeof W.address==="string","invalid address for authorizeSync","auth.address",W);let G=this.signingKey.sign(iH(W));return Object.assign({},{address:f1(W.address),nonce:u1(W.nonce||0),chainId:u1(W.chainId||0)},{signature:G})}async authorize(W){return W=Object.assign({},W,{address:await a4(W.address,this)}),this.authorizeSync(await this.populateAuthorization(W))}async signTypedData(W,G,X){let Y=await E9.resolveNames(W,G,X,async(Z)=>{t0(this.provider!=null,"cannot resolve ENS names without a provider","UNSUPPORTED_OPERATION",{operation:"resolveName",info:{name:Z}});let V=await this.provider.resolveName(Z);return t0(V!=null,"unconfigured ENS name","UNCONFIGURED_NAME",{value:Z}),V});return this.signingKey.sign(E9.hash(Y.domain,G,Y.value)).serialized}}var tH=" !#$%&'()*+,-./<=>?@[]^_`{|}~",us=/^[a-z]*$/i;function I_(W,G){let X=97;return W.reduce((Y,Z)=>{if(Z===G)X++;else if(Z.match(us))Y.push(String.fromCharCode(X)+Z);else X=97,Y.push(Z);return Y},[])}function hs(W,G){for(let Z=tH.length-1;Z>=0;Z--)W=W.split(tH[Z]).join(G.substring(2*Z,2*Z+2));let X=[],Y=W.replace(/(:|([0-9])|([A-Z][a-z]*))/g,(Z,V,Q,J)=>{if(Q)for(let U=parseInt(Q);U>=0;U--)X.push(";");else X.push(V.toLowerCase());return""});if(Y)throw Error(`leftovers: ${JSON.stringify(Y)}`);return I_(I_(X,";"),":")}function w_(W){return s(W[0]==="0","unsupported auwl data","data",W),hs(W.substring(1+2*tH.length),W.substring(1,1+2*tH.length))}class oK{locale;constructor(W){Q8(this,{locale:W})}split(W){return W.toLowerCase().split(/\s+/g)}join(W){return W.join(" ")}}class nK extends oK{#W;#G;constructor(W,G,X){super(W);this.#W=G,this.#G=X,this.#X=null}get _data(){return this.#W}_decodeWords(){return w_(this.#W)}#X;#Y(){if(this.#X==null){let W=this._decodeWords();if(t4(W.join(`
|
|
248
|
+
`);return Y.forEach((Z)=>{if(Z.startsWith("m="))X.push([Z]);else if(X.length>0)X[X.length-1].push(Z);else G.push(Z)}),[G,X]}function OO(W){if(W.includes(":")){let G=b4(W.slice(2),":");return[G[0],G[1]]}else return[W.slice(2),void 0]}function KO(W,G,X=(Y)=>Y.toString()){let Y=G.split(" ");if(Y.length>0)W.push(new dQ(Y[0],Y.slice(1).map(X)))}function Zx(W){let G=DG.fromSdp(W);return tQ(G)}var Kr=class{constructor(W,G){this.sdp=W,this.type=G}static isThis(W){if(typeof W?.sdp==="string")return!0}toSdp(){return{sdp:this.sdp,type:this.type}}};function V2(W,G){let Y=new RN(gi(64)).toString().slice(0,8),Z=0;G.origin=`- ${Y} 0 IN IP4 0.0.0.0`,G.msidSemantic.push(new dQ("WMS",["*"])),G.type=W}function UH(W){let G={};return W.split(";").forEach((X)=>{if(X.includes("=")){let[Y,Z]=b4(X,"=");if(wi.includes(Y))G[Y]=Number(Z);else G[Y]=Z}else if(X.includes(":")){let[Y,Z]=X.split(":");G[Y]=Number.isNaN(Number(Z))?Z:Number(Z)}else G[X]=void 0}),G}var tO=class{ssrc;cname;msid;msLabel;label;constructor(W){Object.assign(this,W)}},kN=T1("werift:packages/webrtc/src/media/rtpReceiver.ts"),Vx=class{constructor(W,G,X){this.config=W,this.kind=G,this.rtcpSsrc=X}codecs={};get codecArray(){return Object.values(this.codecs).sort((W,G)=>W.payloadType-G.payloadType)}ssrcByRtx={};nack=new xi(this);audioRedHandler=new lo;type="receiver";uuid=Ui().toString();tracks=[];trackBySSRC={};trackByRID={};lastSRtimestamp={};receiveLastSRTimestamp={};onPacketLost=this.nack.onPacketLost;onRtcp=new f0;dtlsTransport;sdesMid;latestRid;latestRepairedRid;receiverTWCC;stopped=!1;remoteStreamId;remoteTrackId;rtcpRunning=!1;rtcpCancel=new AbortController;remoteStreams={};setDtlsTransport(W){this.dtlsTransport=W}get track(){return this.tracks[0]??new uO({kind:this.kind})}get nackEnabled(){return this.codecArray[0]?.rtcpFeedback.find((W)=>W.type==="nack")}get twccEnabled(){return this.codecArray[0]?.rtcpFeedback.find((W)=>W.type===Wi().type)}get pliEnabled(){return this.codecArray[0]?.rtcpFeedback.find((W)=>W.type===JJ().type)}prepareReceive(W){W.codecs.forEach((G)=>{this.codecs[G.payloadType]=G}),W.encodings.forEach((G)=>{if(G.rtx)this.ssrcByRtx[G.rtx.ssrc]=G.ssrc})}setupTWCC(W){if(this.twccEnabled&&!this.receiverTWCC)this.receiverTWCC=new yi(this.dtlsTransport,this.rtcpSsrc,W)}addTrack(W){if(this.tracks.find((X)=>{if(X.rid)return X.rid===W.rid;if(X.ssrc)return X.ssrc===W.ssrc}))return!1;if(this.tracks.push(W),W.ssrc)this.trackBySSRC[W.ssrc]=W;if(W.rid)this.trackByRID[W.rid]=W;return!0}stop(){if(this.stopped=!0,this.rtcpRunning=!1,this.rtcpCancel.abort(),this.receiverTWCC)this.receiverTWCC.twccRunning=!1;this.nack.close()}async runRtcp(){if(this.rtcpRunning||this.stopped)return;this.rtcpRunning=!0;try{while(this.rtcpRunning){await IO(500+Math.random()*1000,void 0,{signal:this.rtcpCancel.signal});let W=Object.entries(this.remoteStreams).map(([X,Y])=>{let Z=0,V=0;if(this.lastSRtimestamp[X]){Z=this.lastSRtimestamp[X];let Q=QH()-this.receiveLastSRTimestamp[X];if(Q>0&&Q<65536)V=pQ(Q*65536)}return new GK({ssrc:Number(X),fractionLost:Y.fraction_lost,packetsLost:Y.packets_lost,highestSequence:Y.max_seq,jitter:Y.jitter,lsr:Z,dlsr:V})}),G=new iQ({ssrc:this.rtcpSsrc,reports:W});try{if(this.config.debug.receiverReportDelay)await IO(this.config.debug.receiverReportDelay);await this.dtlsTransport.sendRtcp([G])}catch(X){kN("sendRtcp failed",X),await IO(500+Math.random()*1000)}}}catch(W){}}async getStats(){let W=FG(),G=[];if(!this.dtlsTransport)return G;let X=Z8("transport",this.dtlsTransport.id);for(let Y of this.tracks){if(!Y.ssrc)continue;let Z=this.remoteStreams[Y.ssrc];if(!Z)continue;let V={type:"inbound-rtp",id:Z8("inbound-rtp",Y.ssrc),timestamp:W,ssrc:Y.ssrc,kind:this.kind,transportId:X,codecId:this.codecs[0]?Z8("codec",this.codecs[0].payloadType,X):void 0,mid:this.sdesMid,trackIdentifier:Y.id,packetsReceived:Z.packets_received,packetsLost:Z.packets_lost,jitter:Z.jitter};if(G.push(V),this.lastSRtimestamp[Y.ssrc]){let Q={type:"remote-outbound-rtp",id:Z8("remote-outbound-rtp",Y.ssrc),timestamp:W,ssrc:Y.ssrc,kind:this.kind,transportId:X,codecId:V.codecId,localId:V.id,remoteTimestamp:this.receiveLastSRTimestamp[Y.ssrc]*1000};G.push(Q)}}return G}async sendRtcpPLI(W){if(!this.pliEnabled){kN("pli not supported",{mediaSsrc:W});return}if(this.stopped)return;kN("sendRtcpPLI",{mediaSsrc:W});let G=new nQ({feedback:new GH({senderSsrc:this.rtcpSsrc,mediaSsrc:W})});try{await this.dtlsTransport.sendRtcp([G])}catch(X){kN(X)}}handleRtcpPacket(W){switch(W.type){case hY.type:{let G=W;this.lastSRtimestamp[G.ssrc]=lS(G.senderInfo.ntpTimestamp),this.receiveLastSRTimestamp[G.ssrc]=QH();let X=this.trackBySSRC[W.ssrc];if(X)X.onReceiveRtcp.execute(W)}break}this.onRtcp.execute(W)}handleRtpBySsrc=(W,G)=>{let X=this.trackBySSRC[W.header.ssrc];this.handleRTP(W,G,X)};handleRtpByRid=(W,G,X)=>{let Y=this.trackByRID[G];if(!this.trackBySSRC[W.header.ssrc])this.trackBySSRC[W.header.ssrc]=Y;this.handleRTP(W,X,Y)};handleRTP(W,G,X){if(this.stopped)return;let Y=this.codecs[W.header.payloadType];if(!Y)return;if(this.remoteStreams[W.header.ssrc]=this.remoteStreams[W.header.ssrc]??new vi(Y.clockRate),this.remoteStreams[W.header.ssrc].add(W),this.receiverTWCC){let V=G[D9.transportWideCC];if(!V==null)throw Error("undefined");this.receiverTWCC.handleTWCC(V)}else if(this.twccEnabled)this.setupTWCC(W.header.ssrc);if(Y.name.toLowerCase()==="rtx"){let V=this.ssrcByRtx[W.header.ssrc],Q=UH(Y.parameters??""),J=this.codecs[Q.apt];if(W.payload.length<2)return;W=oo(W,J.payloadType,V),X=this.trackBySSRC[V]}let Z;if(Y.name.toLowerCase()==="red"){if(Z=XS.deSerialize(W.payload),!Object.keys(this.codecs).includes(Z.header.fields[0].blockPT.toString()))return}if(X?.kind==="video"&&this.nackEnabled)this.nack.addPacket(W);if(X)if(Z){if(X.kind==="audio"){let V=this.audioRedHandler.push(Z,W);for(let Q of V)X.onReceiveRtp.execute(Q.clone(),G)}}else X.onReceiveRtp.execute(W.clone(),G);this.runRtcp()}},uQ=T1("werift:packages/webrtc/src/media/router.ts"),Cr=class{ssrcTable={};ridTable={};extIdUriMap={};constructor(){}registerRtpSender(W){this.ssrcTable[W.ssrc]=W}registerRtpReceiver(W,G){uQ("registerRtpReceiver",G),this.ssrcTable[G]=W}registerRtpReceiverBySsrc(W,G){uQ("registerRtpReceiverBySsrc",G),G.encodings.filter((X)=>X.ssrc!=null).forEach((X,Y)=>{if(this.registerRtpReceiver(W.receiver,X.ssrc),W.addTrack(new uO({ssrc:X.ssrc,kind:W.kind,id:W.sender.trackId,remote:!0,codec:G.codecs[Y]})),X.rtx)this.registerRtpReceiver(W.receiver,X.rtx.ssrc)}),G.headerExtensions.forEach((X)=>{this.extIdUriMap[X.id]=X.uri})}registerRtpReceiverByRid(W,G,X){let[Y]=X.codecs;uQ("registerRtpReceiverByRid",G),W.addTrack(new uO({rid:G.rid,kind:W.kind,id:W.sender.trackId,remote:!0,codec:Y})),this.ridTable[G.rid]=W.receiver}routeRtp=(W)=>{let G=So(W.header.extensions,this.extIdUriMap),X=this.ssrcTable[W.header.ssrc],Y=G[D9.sdesRTPStreamID];if(typeof Y==="string")X=this.ridTable[Y],X.latestRid=Y,X.handleRtpByRid(W,Y,G);else if(X)X.handleRtpBySsrc(W,G);else if(X=Object.values(this.ridTable).filter((Q)=>Q instanceof Vx).find((Q)=>Q.trackBySSRC[W.header.ssrc]),X)uQ("simulcast register receiver by ssrc",W.header.ssrc),this.registerRtpReceiver(X,W.header.ssrc),X.handleRtpBySsrc(W,G);if(!X){uQ("ssrcReceiver not found");return}let Z=G[D9.sdesMid];if(typeof Z==="string")X.sdesMid=Z;let V=G[D9.repairedRtpStreamId];if(typeof V==="string")X.latestRepairedRid=V};routeRtcp=(W)=>{let G=[];switch(W.type){case hY.type:W=W,G.push(this.ssrcTable[W.ssrc]);break;case iQ.type:W=W,W.reports.forEach((X)=>{G.push(this.ssrcTable[X.ssrc])});break;case VH.type:{let X=W}break;case uY.type:{let X=W;if(X.feedback)G.push(this.ssrcTable[X.feedback.mediaSourceSsrc])}break;case nQ.type:{let X=W;switch(X.feedback.count){case XH.count:{let Y=X.feedback;G.push(this.ssrcTable[Y.ssrcFeedbacks[0]])}break;default:G.push(this.ssrcTable[X.feedback.senderSsrc]||this.ssrcTable[X.feedback.mediaSsrc])}}break}G.filter((X)=>X).forEach((X)=>X.handleRtcpPacket(W))}},Dr=class{numPackets=0;totalSize=0;firstPacketSentAtMs=0;lastPacketSentAtMs=0;firstPacketReceivedAtMs=0;lastPacketReceivedAtMs=0;addPacket(W,G,X){if(this.numPackets===0)this.firstPacketSentAtMs=G,this.firstPacketReceivedAtMs=X,this.lastPacketSentAtMs=G,this.lastPacketReceivedAtMs=X;else{if(G<this.firstPacketSentAtMs)this.firstPacketSentAtMs=G;if(X<this.firstPacketReceivedAtMs)this.firstPacketReceivedAtMs=X;if(G>this.lastPacketSentAtMs)this.lastPacketSentAtMs=G;if(X>this.lastPacketReceivedAtMs)this.lastPacketReceivedAtMs=X}this.numPackets++,this.totalSize+=W}reset(){this.numPackets=0,this.totalSize=0,this.firstPacketSentAtMs=0,this.lastPacketSentAtMs=0,this.firstPacketReceivedAtMs=0,this.lastPacketReceivedAtMs=0}get receiveBitrate(){let W=this.lastPacketReceivedAtMs-this.firstPacketReceivedAtMs,G=this.totalSize/W*8*1000;return WH(G)}get sendBitrate(){let W=this.lastPacketSentAtMs-this.firstPacketSentAtMs,G=this.totalSize/W*8*1000;return WH(G)}},SY=20,Mr=10,Tr=class{congestion=!1;onAvailableBitrate=new f0;onCongestion=new f0;onCongestionScore=new f0;congestionCounter=0;cumulativeResult=new Dr;sentInfos={};_congestionScore=1;get congestionScore(){return this._congestionScore}set congestionScore(W){this._congestionScore=W,this.onCongestionScore.execute(W)}_availableBitrate=0;get availableBitrate(){return this._availableBitrate}set availableBitrate(W){this._availableBitrate=W,this.onAvailableBitrate.execute(W)}constructor(){}receiveTWCC(W){let X=pS()-this.cumulativeResult.firstPacketSentAtMs;if(X>1000){if(this.cumulativeResult.reset(),this.congestionCounter<SY)this.congestionCounter++;else if(this.congestionScore<Mr)this.congestionScore++;if(this.congestionCounter>=SY&&!this.congestion)this.congestion=!0,this.onCongestion.execute(this.congestion)}for(let Y of W.packetResults){if(!Y.received)continue;let Z=Y.sequenceNumber,V=this.sentInfos[Z];if(!V)continue;if(!Y.receivedAtMs)continue;this.cumulativeResult.addPacket(V.size,V.sendingAtMs,Y.receivedAtMs)}if(X>=100&&this.cumulativeResult.numPackets>=20){if(this.availableBitrate=Math.min(this.cumulativeResult.sendBitrate,this.cumulativeResult.receiveBitrate),this.cumulativeResult.reset(),this.congestionCounter>-SY){let Y=WH(SY/2)+1,Z=WH(SY/4)+1,V=Y-(Y-Z)/10*this.congestionScore;this.congestionCounter=this.congestionCounter-V}if(this.congestionCounter<=-SY){if(this.congestionScore>1)this.congestionScore--,this.onCongestion.execute(!1);this.congestionCounter=0}if(this.congestionCounter<=0&&this.congestion)this.congestion=!1,this.onCongestion.execute(this.congestion)}}rtpPacketSent(W){Object.keys(W).map((G)=>Number(G)).sort().filter((G)=>G<W.wideSeq).forEach((G)=>{delete this.sentInfos[G]}),this.sentInfos[W.wideSeq]=W}},CO=T1("werift:packages/webrtc/src/media/rtpSender.ts"),q2=128,N2=0.85,Pr=class{constructor(W){if(this.trackOrKind=W,this.kind=typeof this.trackOrKind==="string"?this.trackOrKind:this.trackOrKind.kind,typeof W!=="string"){if(W.streamId)this.streamId=W.streamId;this.registerTrack(W)}}type="sender";kind;ssrc=a1.Unpack("!L",Q2(4))[0];rtxSsrc=a1.Unpack("!L",Q2(4))[0];streamId=J2().toString();trackId=J2().toString();onReady=new f0;onRtcp=new f0;onPictureLossIndication=new f0;onGenericNack=new f0;senderBWE=new Tr;cname;mid;rtpStreamId;repairedRtpStreamId;rtxPayloadType;rtxSequenceNumber=z2();redRedundantPayloadType;_redDistance=2;redEncoder=new co(this._redDistance);headerExtensions=[];disposeTrack;lastSRtimestamp;lastSentSRTimestamp;ntpTimestamp=0n;rtpTimestamp=0;octetCount=0;packetCount=0;rtt;receiverEstimatedMaxBitrate=0n;sequenceNumber;timestamp;timestampOffset=0;seqOffset=0;rtpCache=[];codec;dtlsTransport;dtlsDisposer=[];track;stopped=!1;rtcpRunning=!1;rtcpCancel=new AbortController;setDtlsTransport(W){if(this.dtlsTransport)this.dtlsDisposer.forEach((G)=>G());this.dtlsTransport=W,this.dtlsDisposer=[this.dtlsTransport.onStateChange.subscribe((G)=>{if(G==="connected")this.onReady.execute()}).unSubscribe]}get redDistance(){return this._redDistance}set redDistance(W){this._redDistance=W,this.redEncoder.distance=W}prepareSend(W){if(this.cname=W.rtcp?.cname,this.mid=W.muxId,this.headerExtensions=W.headerExtensions,this.rtpStreamId=W.rtpStreamId,this.repairedRtpStreamId=W.repairedRtpStreamId,this.codec=W.codecs[0],this.track)this.track.codec=this.codec;W.codecs.forEach((G)=>{let X=UH(G.parameters??"");if(G.name.toLowerCase()==="rtx"&&X.apt===this.codec?.payloadType)this.rtxPayloadType=G.payloadType;if(G.name.toLowerCase()==="red")this.redRedundantPayloadType=Number((G.parameters??"").split("/")[0])})}registerTrack(W){if(W.stopped)throw Error("track is ended");if(this.disposeTrack)this.disposeTrack();W.id=this.trackId;let{unSubscribe:G}=W.onReceiveRtp.subscribe(async(X)=>{await this.sendRtp(X)});if(this.track=W,this.disposeTrack=G,this.codec)W.codec=this.codec;W.onSourceChanged.subscribe((X)=>{this.replaceRTP(X)})}async replaceTrack(W){if(W===null)return;if(W.stopped)throw Error("track is ended");if(this.sequenceNumber!=null){let G=W.header||(await W.onReceiveRtp.asPromise())[0].header;this.replaceRTP(G)}this.registerTrack(W),CO("replaceTrack","ssrc",W.ssrc,"rid",W.rid)}stop(){if(this.stopped=!0,this.rtcpRunning=!1,this.rtcpCancel.abort(),this.disposeTrack)this.disposeTrack();this.track=void 0}async runRtcp(){if(this.rtcpRunning||this.stopped)return;this.rtcpRunning=!0;try{while(this.rtcpRunning){await U2(500+Math.random()*1000,void 0,{signal:this.rtcpCancel.signal});let W=[new hY({ssrc:this.ssrc,senderInfo:new GS({ntpTimestamp:this.ntpTimestamp,rtpTimestamp:this.rtpTimestamp,packetCount:this.packetCount,octetCount:this.octetCount})})];if(this.lastSRtimestamp=lS(this.ntpTimestamp),this.lastSentSRTimestamp=QH(),this.cname)W.push(new VH({chunks:[new e2({source:this.ssrc,items:[new WS({type:1,text:this.cname})]})]}));try{await this.dtlsTransport.sendRtcp(W)}catch(G){CO("sendRtcp failed",G),await U2(500+Math.random()*1000)}}}catch(W){}}replaceRTP({sequenceNumber:W,timestamp:G},X=!1){if(this.sequenceNumber!=null){if(this.seqOffset=M9(this.sequenceNumber,-W),X)this.seqOffset=M9(this.seqOffset,2)}if(this.timestamp!=null){if(this.timestampOffset=yY(this.timestamp,-G),X)this.timestampOffset=M9(this.timestampOffset,1)}this.rtpCache=[],CO("replaceRTP",this.sequenceNumber,W,this.seqOffset)}async sendRtp(W){if(this.dtlsTransport.state!=="connected"||!this.codec)return;W=Buffer.isBuffer(W)?t6.deSerialize(W):W;let{header:G,payload:X}=W;G.ssrc=this.ssrc,G.payloadType=this.codec.payloadType,G.timestamp=yY(G.timestamp,this.timestampOffset),G.sequenceNumber=M9(G.sequenceNumber,this.seqOffset),this.timestamp=G.timestamp,this.sequenceNumber=G.sequenceNumber;let Y=Ei(),Z=[...G.extensions];G.extensions=this.headerExtensions.map((q)=>{let N=(()=>{switch(q.uri){case D9.sdesMid:if(this.mid)return xo(this.mid);return;case D9.sdesRTPStreamID:if(this.rtpStreamId)return ko(this.rtpStreamId);return;case D9.repairedRtpStreamId:if(this.repairedRtpStreamId)return _o(this.repairedRtpStreamId);return;case D9.transportWideCC:return this.dtlsTransport.transportSequenceNumber=M9(this.dtlsTransport.transportSequenceNumber,1),yo(this.dtlsTransport.transportSequenceNumber);case D9.absSendTime:return vo(Y)}})();if(N)return{id:q.id,payload:N}}).filter((q)=>q);for(let q of Z){let N=G.extensions.find((A)=>A.id===q.id);if(N)N.payload=q.payload;else G.extensions.push(q)}G.extensions=G.extensions.sort((q,N)=>q.id-N.id),this.ntpTimestamp=Y,this.rtpTimestamp=G.timestamp,this.octetCount+=X.length,this.packetCount=yY(this.packetCount,1),this.rtpCache[G.sequenceNumber%q2]=W;let V=X;if(this.redRedundantPayloadType)this.redEncoder.push({block:V,timestamp:G.timestamp,blockPT:this.redRedundantPayloadType}),V=this.redEncoder.build().serialize();let Q=await this.dtlsTransport.sendRtp(V,G);this.runRtcp();let J=pS(),U={wideSeq:this.dtlsTransport.transportSequenceNumber,size:Q,sendingAtMs:J,sentAtMs:J};this.senderBWE.rtpPacketSent(U)}handleRtcpPacket(W){switch(W.type){case hY.type:case iQ.type:W.reports.filter((X)=>X.ssrc===this.ssrc).forEach((X)=>{if(this.lastSRtimestamp===X.lsr&&X.dlsr){if(this.lastSentSRTimestamp){let Y=QH()-this.lastSentSRTimestamp-X.dlsr/65536;if(this.rtt===void 0)this.rtt=Y;else this.rtt=N2*this.rtt+(1-N2)*Y}}});break;case uY.type:{let G=W;switch(G.feedback.count){case ZH.count:{let X=G.feedback;this.senderBWE.receiveTWCC(X)}break;case YH.count:{let X=G.feedback;X.lost.forEach(async(Y)=>{let Z=this.rtpCache[Y%q2];if(Z&&Z.header.sequenceNumber!==Y)Z=void 0;if(Z){if(this.rtxPayloadType!=null)Z=no(Z,this.rtxPayloadType,this.rtxSequenceNumber,this.rtxSsrc),this.rtxSequenceNumber=M9(this.rtxSequenceNumber,1);await this.dtlsTransport.sendRtp(Z.payload,Z.header)}}),this.onGenericNack.execute(X)}break}}break;case nQ.type:{let G=W;switch(G.feedback.count){case XH.count:{let X=G.feedback;this.receiverEstimatedMaxBitrate=X.bitrate}break;case GH.count:this.onPictureLossIndication.execute();break}}break}this.onRtcp.execute(W)}getParameters(){return{encodings:[]}}setParameters(W){}async getStats(){let W=FG(),G=[];if(!this.dtlsTransport)return G;let X=Z8("transport",this.dtlsTransport.id),Y={type:"outbound-rtp",id:Z8("outbound-rtp",this.ssrc),timestamp:W,ssrc:this.ssrc,kind:this.kind,transportId:X,codecId:this.codec?Z8("codec",this.codec.payloadType,X):void 0,mid:this.mid,packetsSent:this.packetCount,bytesSent:this.octetCount,rtxSsrc:this.rtxPayloadType?this.rtxSsrc:void 0};if(G.push(Y),this.track){let Z={type:"media-source",id:Z8("media-source",this.trackId),timestamp:W,trackIdentifier:this.trackId,kind:this.kind};G.push(Z)}if(this.rtt!==void 0){let Z={type:"remote-inbound-rtp",id:Z8("remote-inbound-rtp",this.ssrc),timestamp:W,ssrc:this.ssrc,kind:this.kind,transportId:X,codecId:Y.codecId,localId:Y.id,roundTripTime:this.rtt};G.push(Z)}return G}},Lr=T1("werift:packages/webrtc/src/transport/sctpManager.ts"),Br=class{sctpTransport;sctpRemotePort;dataChannelsOpened=0;dataChannelsClosed=0;dataChannels=[];onDataChannel=new f0;constructor(){}createSctpTransport(W){let G=new wr(5000,W);return G.mid=void 0,G.onDataChannel.subscribe((X)=>{this.dataChannelsOpened++,this.dataChannels.push(X),this.onDataChannel.execute(X)}),this.sctpTransport=G,G}createDataChannel(W,G={}){let Y={...{protocol:"",ordered:!0,negotiated:!1},...G};if(Y.maxPacketLifeTime&&Y.maxRetransmits)throw Error("can not select both");if(!this.sctpTransport)this.sctpTransport=this.createSctpTransport();let Z=new FS({id:Y.id,label:W,maxPacketLifeTime:Y.maxPacketLifeTime,maxRetransmits:Y.maxRetransmits,negotiated:Y.negotiated,ordered:Y.ordered,protocol:Y.protocol}),V=new $S(this.sctpTransport,Z);return this.dataChannelsOpened++,this.dataChannels.push(V),V.stateChange.subscribe((Q)=>{if(Q==="closed"){this.dataChannelsClosed++;let J=this.dataChannels.indexOf(V);if(J!==-1)this.dataChannels.splice(J,1)}}),V}async connectSctp(){if(!this.sctpTransport||!this.sctpRemotePort)return;await this.sctpTransport.start(this.sctpRemotePort),await this.sctpTransport.sctp.stateChanged.connected.asPromise(),Lr("sctp connected")}setRemoteSCTP(W,G){if(!this.sctpTransport)return;if(this.sctpTransport.setRemoteMaxMessageSize(W.sctpCapabilities?.maxMessageSize),this.sctpRemotePort=W.sctpPort,!this.sctpRemotePort)throw Error("sctpRemotePort not exist");if(this.sctpTransport.setRemotePort(this.sctpRemotePort),this.sctpTransport.mLineIndex=G,!this.sctpTransport.mid)this.sctpTransport.mid=W.rtp.muxId}async close(){if(this.sctpTransport)await this.sctpTransport.stop();this.onDataChannel.allUnsubscribe()}async getStats(){let W=FG(),G=[];for(let X of this.dataChannels){let Y={type:"data-channel",id:Z8("data-channel",X.id),timestamp:W,label:X.label,protocol:X.protocol,dataChannelIdentifier:X.id,state:X.readyState,messagesSent:X.messagesSent||0,bytesSent:X.bytesSent||0,messagesReceived:X.messagesReceived||0,bytesReceived:X.bytesReceived||0};G.push(Y)}return G}},Er=class{currentLocalDescription;currentRemoteDescription;pendingLocalDescription;pendingRemoteDescription;cname;midSuffix;bundlePolicy;seenMid=new Set;constructor({cname:W,midSuffix:G,bundlePolicy:X}){this.cname=W,this.midSuffix=G??!1,this.bundlePolicy=X}get localDescription(){if(!this._localDescription)return;return this._localDescription.toJSON()}get remoteDescription(){if(!this._remoteDescription)return;return this._remoteDescription.toJSON()}get _localDescription(){return this.pendingLocalDescription||this.currentLocalDescription}get _remoteDescription(){return this.pendingRemoteDescription||this.currentRemoteDescription}get inactiveRemoteMedia(){return this._remoteDescription?.media?.find?.((W)=>W.direction==="inactive")}createMediaDescriptionForTransceiver(W,G){let X=new aO(W.kind,9,"UDP/TLS/RTP/SAVPF",W.codecs.map((Y)=>Y.payloadType));if(X.direction=G,X.msid=W.msid,X.rtp={codecs:W.codecs,headerExtensions:W.headerExtensions,muxId:W.mid},X.rtcpHost="0.0.0.0",X.rtcpPort=9,X.rtcpMux=!0,X.ssrc=[new tO({ssrc:W.sender.ssrc,cname:this.cname})],W.options.simulcast)X.simulcastParameters=W.options.simulcast.map((Y)=>new SS(Y));if(X.rtp.codecs.find((Y)=>Y.name.toLowerCase()==="rtx"))X.ssrc.push(new tO({ssrc:W.sender.rtxSsrc,cname:this.cname})),X.ssrcGroup=[new dQ("FID",[W.sender.ssrc.toString(),W.sender.rtxSsrc.toString()])];return this.addTransportDescription(X,W.dtlsTransport),X}createMediaDescriptionForSctp(W){let G=new aO("application",fF,"UDP/DTLS/SCTP",["webrtc-datachannel"]);return G.sctpPort=W.port,G.rtp.muxId=W.mid,G.sctpCapabilities=W.getCapabilities(),this.addTransportDescription(G,W.dtlsTransport),G}addTransportDescription(W,G){let X=G.iceTransport;if(W.iceCandidates=X.localCandidates,W.iceCandidatesComplete=X.gatheringState==="complete",W.iceParams=X.localParameters,W.iceOptions="trickle",W.host=Ii,W.port=fF,W.direction==="inactive")W.port=0,W.msid=void 0;if(!W.dtlsParams){if(W.dtlsParams=G.localParameters,!W.dtlsParams.fingerprints)W.dtlsParams.fingerprints=G.localParameters.fingerprints}}allocateMid(W=""){let G="";for(let X=0;;)if(G=(X++).toString()+W,!this.seenMid.has(G))break;return this.seenMid.add(G),G}parseSdp({sdp:W,isLocal:G,signalingState:X,type:Y}){let Z=oN.parse(W);return this.validateDescription({description:Z,isLocal:G,signalingState:X}),Z.type=Y,Z}validateDescription({description:W,isLocal:G,signalingState:X}){if(G){if(W.type==="offer"){if(!["stable","have-local-offer"].includes(X))throw Error("Cannot handle offer in signaling state")}else if(W.type==="answer"){if(!["have-remote-offer","have-local-pranswer"].includes(X))throw Error("Cannot handle answer in signaling state")}}else if(W.type==="offer"){if(!["stable","have-remote-offer"].includes(X))throw Error("Cannot handle offer in signaling state")}else if(W.type==="answer"){if(!["have-local-offer","have-remote-pranswer"].includes(X))throw Error("Cannot handle answer in signaling state")}}buildOfferSdp(W,G){let X=new oN;V2("offer",X),(this.currentLocalDescription?.media??[]).forEach((Z,V)=>{let Q=Z.rtp.muxId;if(!Q)return;if(Z.kind==="application"){if(!G)throw Error("sctpTransport not found");G.mLineIndex=V,X.media.push(this.createMediaDescriptionForSctp(G))}else{let J=W.find((U)=>U.mid===Q);if(!J){if(Z.direction==="inactive"){X.media.push(Z);return}throw Error("transceiver not found")}J.mLineIndex=V,X.media.push(this.createMediaDescriptionForTransceiver(J,J.direction))}});for(let Z of W.filter((V)=>!X.media.find((Q)=>Q.rtp.muxId===V.mid))){if(Z.mid==null)Z.mid=this.allocateMid(this.midSuffix?"av":"");let V=this.createMediaDescriptionForTransceiver(Z,Z.direction);if(Z.mLineIndex===void 0)Z.mLineIndex=X.media.length,X.media.push(V);else X.media[Z.mLineIndex]=V}if(G&&!X.media.find((Z)=>Z.kind==="application")){if(G.mLineIndex=X.media.length,G.mid==null)G.mid=this.allocateMid(this.midSuffix?"dc":"");X.media.push(this.createMediaDescriptionForSctp(G))}if(this.bundlePolicy!=="disable"){let Z=X.media.map((V)=>V.rtp.muxId).filter((V)=>V);if(Z.length){let V=new dQ("BUNDLE",Z);X.group.push(V)}}return X}buildAnswerSdp({transceivers:W,sctpTransport:G,signalingState:X}){if(!["have-remote-offer","have-local-pranswer"].includes(X))throw Error("createAnswer failed");if(!this._remoteDescription)throw Error("wrong state");let Y=new oN;V2("answer",Y);for(let Z of this._remoteDescription.media){let V,Q;if(["audio","video"].includes(Z.kind)){let J=W.find((U)=>U.mid===Z.rtp.muxId);if(!J)throw Error(`Transceiver with mid=${Z.rtp.muxId} not found`);Q=this.createMediaDescriptionForTransceiver(J,cS(J.direction,J.offerDirection)),V=J.dtlsTransport}else if(Z.kind==="application"){if(!G||!G.mid)throw Error("sctpTransport not found");Q=this.createMediaDescriptionForSctp(G),V=G.dtlsTransport}else throw Error("invalid kind");if(Q.dtlsParams)if(V.role==="auto")Q.dtlsParams.role="client";else Q.dtlsParams.role=V.role;if(Z.simulcastParameters&&Z.simulcastParameters.length>0)Q.simulcastParameters=Z.simulcastParameters.map((J)=>({...J,direction:J.direction==="send"?"recv":"send"}));Y.media.push(Q)}if(this.bundlePolicy!=="disable"){let Z=new dQ("BUNDLE",[]);for(let V of Y.media)if(V.rtp.muxId)Z.items.push(V.rtp.muxId);Y.group.push(Z)}return Y}setLocalDescription(W){if(this.currentLocalDescription=W,W.type==="answer")this.pendingLocalDescription=void 0;else this.pendingLocalDescription=W}setRemoteDescription(W,G){if(!W.sdp||!W.type||W.type==="rollback"||W.type==="pranswer")throw Error("invalid sessionDescription");let X=this.parseSdp({sdp:W.sdp,isLocal:!1,signalingState:G,type:W.type});if(X.type==="answer")this.currentRemoteDescription=X,this.pendingRemoteDescription=void 0;else this.pendingRemoteDescription=X;return X}registerMid(W){this.seenMid.add(W)}get remoteIsBundled(){let W=this._remoteDescription;if(!W)return;return W.group.find((X)=>X.semantic==="BUNDLE"&&this.bundlePolicy!=="disable")}setLocal(W,G,X){let Y=new Map(G.map((Q)=>[Q?.mLineIndex,Q])),Z=G.find((Q)=>Q?.dtlsTransport)?.dtlsTransport??X?.dtlsTransport;W.media.filter((Q)=>["audio","video"].includes(Q.kind)).forEach((Q,J)=>{let q=(Y.get(J)??G[J])?.dtlsTransport??Z;if(!q)throw Error(`dtls transport not found for media index ${J}`);this.addTransportDescription(Q,q)});let V=W.media.find((Q)=>Q.kind==="application");if(X&&V)this.addTransportDescription(V,X.dtlsTransport);this.setLocalDescription(W)}},hQ=T1("werift:packages/webrtc/src/transport/secureTransportManager.ts"),$r=class{connectionState="new";iceConnectionState="new";iceGatheringState="new";certificate;iceGatheringStateChange=new f0;iceConnectionStateChange=new f0;onIceCandidate=new f0;connectionStateChange=new f0;config;transceiverManager;sctpManager;constructor({config:W,transceiverManager:G,sctpManager:X}){if(this.config=W,this.transceiverManager=G,this.sctpManager=X,this.config.dtls){let{keys:Y}=this.config.dtls;if(Y)this.setupCertificate(Y)}}get dtlsTransports(){return[...this.transceiverManager.getTransceivers().map((G)=>G?.dtlsTransport),this.sctpManager.sctpTransport?.dtlsTransport].filter((G)=>G!=null).reduce((G,X)=>{if(!G.map((Y)=>Y.id).includes(X.id))G.push(X);return G},[])}get iceTransports(){return this.dtlsTransports.map((W)=>W.iceTransport)}setupCertificate(W){this.certificate=new dS(W.keyPem,W.certPem,W.signatureHash)}createTransport(){let W=this.iceTransports.find((Z)=>Z.state!=="closed"),G=new oi({...$i(this.config.iceServers),forceTurn:this.config.iceTransportPolicy==="relay",portRange:this.config.icePortRange,interfaceAddresses:this.config.iceInterfaceAddresses,additionalHostAddresses:this.config.iceAdditionalHostAddresses,filterStunResponse:this.config.iceFilterStunResponse,filterCandidatePair:this.config.iceFilterCandidatePair,localPasswordPrefix:this.config.icePasswordPrefix,useIpv4:this.config.iceUseIpv4,useIpv6:this.config.iceUseIpv6,turnTransport:this.config.forceTurnTCP===!0?"tcp":"udp",useLinkLocalAddress:this.config.iceUseLinkLocalAddress});if(W)G.connection.localUsername=W.connection.localUsername,G.connection.localPassword=W.connection.localPassword;G.onGatheringStateChange.subscribe(()=>{this.updateIceGatheringState()}),this.updateIceGatheringState();let X=new di(G);return X.onStateChange.subscribe(()=>{this.updateIceConnectionState()}),new dF(this.config,X,this.certificate,Fr)}handleNewIceCandidate({candidate:W,media:G,remoteIsBundled:X,transceiver:Y,sctpTransport:Z,bundlePolicy:V}){if(V==="max-bundle"||X){if(W.sdpMLineIndex=0,G)W.sdpMid=G.rtp.muxId}else{if(Y)W.sdpMLineIndex=Y.mLineIndex,W.sdpMid=Y.mid;if(Z)W.sdpMLineIndex=Z.mLineIndex,W.sdpMid=Z.mid}if(W.foundation&&!W.foundation.startsWith("candidate:"))W.foundation="candidate:"+W.foundation;return this.onIceCandidate.execute(W),W}async addIceCandidate(W,G){let X=oS.fromJSON(G);if(!X)return;let Y;if(typeof X.sdpMid==="number")Y=this.getTransportByMid(X.sdpMid);if(!Y&&typeof X.sdpMLineIndex==="number")Y=this.getTransportByMLineIndex(W,X.sdpMLineIndex);if(!Y)Y=this.iceTransports[0];if(Y)await Y.addRemoteCandidate(X);else hQ("iceTransport not found for candidate",X)}getTransportByMid(W){let G,X=this.transceiverManager.getTransceivers().find((Y)=>Y.mid===W);if(X)G=X.dtlsTransport.iceTransport;else if(!G&&this.sctpManager.sctpTransport?.mid===W)G=this.sctpManager.sctpTransport.dtlsTransport.iceTransport;return G}getTransportByMLineIndex(W,G){let X=W.media[G];if(!X)return;return this.getTransportByMid(X.rtp.muxId)}restartIce(){for(let W of this.iceTransports)W.restart()}setLocalRole({type:W,role:G}){for(let X of this.dtlsTransports){let Y=X.iceTransport;if(W==="offer")Y.connection.iceControlling=!0;else Y.connection.iceControlling=!1;if(Y.connection.remoteIsLite)Y.connection.iceControlling=!0;if(W==="answer"){if(G)X.role=G}}}updateIceGatheringState(){let W=this.iceTransports;function G(...Y){return W.filter((Z)=>Y.includes(Z.gatheringState)).length===W.length}let X;if(W.length&&G("complete"))X="complete";else if(!W.length||G("new","complete"))X="new";else if(W.map((Y)=>Y.gatheringState).includes("gathering"))X="gathering";else X="new";if(this.iceGatheringState===X)return;this.iceGatheringState=X,this.iceGatheringStateChange.execute(X)}updateIceConnectionState(){let W=this.iceTransports,G;function X(...Z){return W.filter((V)=>Z.includes(V.state)).length===W.length}function Y(...Z){return W.some((V)=>Z.includes(V.state))}if(this.connectionState==="closed")G="closed";else if(Y("failed"))G="failed";else if(Y("disconnected"))G="disconnected";else if(X("new","closed"))G="new";else if(Y("new","checking"))G="checking";else if(X("completed","closed"))G="completed";else if(X("connected","completed","closed"))G="connected";else G="new";if(this.iceConnectionState===G)return;hQ("iceConnectionStateChange",G),this.iceConnectionState=G,this.iceConnectionStateChange.execute(G)}async gatherCandidates(W){let G=this.iceTransports.find((X)=>X.state==="connected"||X.state==="completed");if(W&&G)hQ("skipping ICE gathering for bundled connection");else await Promise.allSettled(this.iceTransports.map((X)=>X.gather())).catch((X)=>{hQ("gatherCandidates failed",X)})}setConnectionState(W){hQ("connectionStateChange",W),this.connectionState=W,this.connectionStateChange.execute(W)}async getStats(){let W=[];for(let G of this.dtlsTransports){let X=await G.getStats();if(X)W.push(...X)}return W}async ensureCerts(){if(!this.certificate)this.certificate=await dF.SetupCertificate();for(let W of this.dtlsTransports)W.localCertificate=this.certificate}async close(){this.setConnectionState("closed"),await Promise.allSettled([...this.dtlsTransports.map((W)=>W.stop())]),this.iceGatheringStateChange.allUnsubscribe(),this.iceConnectionStateChange.allUnsubscribe(),this.onIceCandidate.allUnsubscribe(),this.connectionStateChange.allUnsubscribe()}},Fr=[pF.SRTP_AEAD_AES_128_GCM,pF.SRTP_AES128_CM_HMAC_SHA1_80],t5=T1("werift:packages/webrtc/src/peerConnection.ts"),Qx=class extends UK{cname=Rr().toString();config=Jx();signalingState="stable";negotiationneeded=!1;needRestart=!1;router=new Cr;sdpManager;transceiverManager;sctpManager;secureManager;isClosed=!1;shouldNegotiationneeded=!1;remoteBundleNegotiated=!1;iceGatheringStateChange=new f0;iceConnectionStateChange=new f0;signalingStateChange=new f0;connectionStateChange=new f0;onDataChannel=new f0;onRemoteTransceiverAdded=new f0;onTransceiverAdded=new f0;onIceCandidate=new f0;onNegotiationneeded=new f0;onTrack=new f0;ondatachannel;onicecandidate;onicecandidateerror;onicegatheringstatechange;onnegotiationneeded;onsignalingstatechange;ontrack;onconnectionstatechange;oniceconnectionstatechange;constructor(W={}){super();this.setConfiguration(W),this.sdpManager=new Er({cname:this.cname,bundlePolicy:this.config.bundlePolicy}),this.transceiverManager=new xr(this.cname,this.config,this.router),this.transceiverManager.onTransceiverAdded.pipe(this.onTransceiverAdded),this.transceiverManager.onRemoteTransceiverAdded.pipe(this.onRemoteTransceiverAdded),this.transceiverManager.onTrack.subscribe(({track:G,stream:X,transceiver:Y})=>{let Z={track:G,streams:[X],transceiver:Y,receiver:Y.receiver};if(this.onTrack.execute(G),this.emit("track",Z),this.ontrack)this.ontrack(Z)}),this.transceiverManager.onNegotiationNeeded.subscribe(()=>this.needNegotiation()),this.sctpManager=new Br,this.sctpManager.onDataChannel.subscribe((G)=>{this.onDataChannel.execute(G);let X={channel:G};this.ondatachannel?.(X),this.emit("datachannel",X)}),this.secureManager=new $r({config:this.config,sctpManager:this.sctpManager,transceiverManager:this.transceiverManager}),this.secureManager.iceGatheringStateChange.pipe(this.iceGatheringStateChange),this.secureManager.iceConnectionStateChange.subscribe((G)=>{if(G==="closed")this.close();this.iceConnectionStateChange.execute(G)}),this.secureManager.connectionStateChange.subscribe((G)=>{this.connectionStateChange.execute(G),this.onconnectionstatechange?.(),this.emit("connectionstatechange")}),this.secureManager.onIceCandidate.subscribe((G)=>{let X=G?G.toJSON():void 0;this.onIceCandidate.execute(X),this.onicecandidate?.({candidate:X}),this.emit("icecandidate",{candidate:X})})}get connectionState(){return this.secureManager.connectionState}get iceConnectionState(){return this.secureManager.iceConnectionState}get iceGathererState(){return this.secureManager.iceGatheringState}get iceGatheringState(){return this.secureManager.iceGatheringState}get dtlsTransports(){return this.secureManager.dtlsTransports}get sctpTransport(){return this.sctpManager.sctpTransport}get sctpRemotePort(){return this.sctpManager.sctpRemotePort}get iceTransports(){return this.secureManager.iceTransports}get extIdUriMap(){return this.router.extIdUriMap}get iceGeneration(){return this.iceTransports[0].connection.generation}get localDescription(){return this.sdpManager.localDescription}get remoteDescription(){return this.sdpManager.remoteDescription}get remoteIsBundled(){return this.sdpManager.remoteIsBundled}get _localDescription(){return this.sdpManager._localDescription}get _remoteDescription(){return this.sdpManager._remoteDescription}getTransceivers(){return this.transceiverManager.getTransceivers()}getSenders(){return this.transceiverManager.getSenders()}getReceivers(){return this.transceiverManager.getReceivers()}setConfiguration(W){if(Fi(this.config,W),this.config.icePortRange){let[G,X]=this.config.icePortRange;if(G===X)throw Error("should not be same value");if(G>=X)throw Error("The min must be less than max")}if(!Number.isInteger(this.config.maxMessageSize)||this.config.maxMessageSize<0)throw Error("maxMessageSize must be a non-negative integer");if(this.sctpManager?.sctpTransport)this.sctpManager.sctpTransport.maxMessageSize=this.config.maxMessageSize;for(let[G,X]of gF([...this.config.codecs.audio||[],...this.config.codecs.video||[]])){if(X.payloadType!=null)continue;switch(X.payloadType=96+G,X.name.toLowerCase()){case"rtx":X.parameters=`apt=${X.payloadType-1}`;break;case"red":if(X.contentType==="audio"){let Y=X.payloadType+1;X.parameters=`${Y}/${Y}`,X.payloadType=63}break}}[...this.config.headerExtensions.audio||[],...this.config.headerExtensions.video||[]].forEach((G,X)=>{G.id=1+X})}getConfiguration(){return this.config}async createOffer({iceRestart:W}={}){if(W||this.needRestart)this.needRestart=!1,this.secureManager.restartIce();await this.secureManager.ensureCerts();for(let X of this.transceiverManager.getTransceivers()){if(X.codecs.length===0)this.transceiverManager.assignTransceiverCodecs(X);if(X.headerExtensions.length===0)X.headerExtensions=this.config.headerExtensions[X.kind]??[]}return this.sdpManager.buildOfferSdp(this.transceiverManager.getTransceivers(),this.sctpTransport).toJSON()}createSctpTransport(){let W=this.sctpManager.createSctpTransport(this.config.maxMessageSize),G=this.findOrCreateTransport();return W.setDtlsTransport(G),W}createDataChannel(W,G={}){if(!this.sctpTransport)this.createSctpTransport(),this.needNegotiation();let X=this.sctpManager.createDataChannel(W,G);if(!X.sctp.dtlsTransport){let Y=this.findOrCreateTransport();X.sctp.setDtlsTransport(Y)}return X}removeTrack(W){if(this.isClosed)throw Error("peer closed");this.transceiverManager.removeTrack(W),this.needNegotiation()}needNegotiation=async()=>{if(this.shouldNegotiationneeded=!0,this.negotiationneeded||this.signalingState!=="stable")return;this.shouldNegotiationneeded=!1,setImmediate(()=>{if(this.negotiationneeded=!0,this.onNegotiationneeded.execute(),this.onnegotiationneeded)this.onnegotiationneeded({})})};findOrCreateTransport(){let W=this.dtlsTransports.find((Z)=>Z.state!=="closed"),G=W?.iceTransport;if(this.sdpManager.bundlePolicy==="max-bundle"||this.sdpManager.bundlePolicy!=="disable"&&(this.remoteIsBundled||this.remoteBundleNegotiated)){if(W)return W}let X=this.secureManager.createTransport();X.onRtp.subscribe((Z)=>{this.router.routeRtp(Z)}),X.onRtcp.subscribe((Z)=>{this.router.routeRtcp(Z)});let Y=X.iceTransport;return Y.onNegotiationNeeded.subscribe(()=>{this.needNegotiation()}),Y.onIceCandidate.subscribe((Z)=>{if(!this.localDescription){t5("localDescription not found when ice candidate was gathered");return}if(!Z){if(this.sdpManager.setLocal(this._localDescription,this.transceiverManager.getTransceivers(),this.sctpTransport),this.onIceCandidate.execute(void 0),this.onicecandidate)this.onicecandidate({candidate:void 0});this.emit("icecandidate",{candidate:void 0});return}if(!this._localDescription){t5("localDescription not found when ice candidate was gathered");return}this.secureManager.handleNewIceCandidate({candidate:Z,bundlePolicy:this.sdpManager.bundlePolicy,remoteIsBundled:!!this.sdpManager.remoteIsBundled,media:this._localDescription.media[0],transceiver:this.transceiverManager.getTransceivers().find((V)=>V?.dtlsTransport?.iceTransport.id===Y.id),sctpTransport:this.sctpTransport?.dtlsTransport.iceTransport.id===Y.id?this.sctpTransport:void 0})}),X}async setLocalDescription(W){W=W??(["stable","have-local-offer","have-remote-pranswer"].includes(this.signalingState)?await this.createOffer():await this.createAnswer());let X=this.sdpManager.parseSdp({sdp:W.sdp,isLocal:!0,signalingState:this.signalingState,type:W.type});if(X.type==="offer")this.setSignalingState("have-local-offer");else if(X.type==="answer")this.setSignalingState("stable");for(let[Z,V]of gF(X.media)){let Q=V.rtp.muxId;if(this.sdpManager.registerMid(Q),["audio","video"].includes(V.kind)){let J=this.transceiverManager.getTransceiverByMLineIndex(Z);if(J)J.mid=Q}if(V.kind==="application"&&this.sctpTransport)this.sctpTransport.mid=Q}let Y=X.media.find((Z)=>Z.dtlsParams)?.dtlsParams?.role;if(this.secureManager.setLocalRole({type:X.type,role:Y}),["answer","pranswer"].includes(X.type))for(let Z of this.transceiverManager.getTransceivers()){let V=cS(Z.direction,Z.offerDirection);Z.setCurrentDirection(V)}if(this.sdpManager.setLocal(X,this.transceiverManager.getTransceivers(),this.sctpTransport),await this.gatherCandidates().catch((Z)=>{t5("gatherCandidates failed",Z)}),X.type==="answer")this.connect().catch((Z)=>{t5("connect failed",Z),this.secureManager.setConnectionState("failed")});if(this.sdpManager.setLocal(X,this.transceiverManager.getTransceivers(),this.sctpTransport),this.shouldNegotiationneeded)this.needNegotiation();return X}async gatherCandidates(){await this.secureManager.gatherCandidates(!!this.sdpManager.remoteIsBundled)}async addIceCandidate(W){let G=this.sdpManager.buildOfferSdp(this.transceiverManager.getTransceivers(),this.sctpTransport);await this.secureManager.addIceCandidate(G,W)}async connect(){if(t5("start connect"),(await Promise.allSettled(this.dtlsTransports.map(async(G)=>{let{iceTransport:X}=G;if(X.state==="connected")return;let Y=()=>G.state==="connected";if(Y())return;if(this.secureManager.setConnectionState("connecting"),await X.start().catch((Z)=>{throw t5("iceTransport.start failed",Z),Z}),Y())return;if(await G.start().catch((Z)=>{throw t5("dtlsTransport.start failed",Z),Z}),this.sctpTransport&&this.sctpTransport.dtlsTransport.id===G.id)await this.sctpManager.connectSctp()}))).find((G)=>G.status==="rejected"))this.secureManager.setConnectionState("failed");else this.secureManager.setConnectionState("connected")}restartIce(){this.needRestart=!0,this.needNegotiation()}async setRemoteDescription(W){if(W instanceof oN)W=W.toSdp();let G=this.sdpManager.setRemoteDescription(W,this.signalingState);if(G.group.some((Q)=>Q.semantic==="BUNDLE"&&Q.items.length>0))this.remoteBundleNegotiated=!0;let X,Y=(Q,J)=>Q.kind===J.kind&&[void 0,J.rtp.muxId].includes(Q.mid),Z=G.media.map((Q,J)=>{let U;if(["audio","video"].includes(Q.kind)){let N=this.transceiverManager.getTransceivers().find((A)=>Y(A,Q));if(!N)N=this.addTransceiver(Q.kind,{direction:"recvonly"}),N.mid=Q.rtp.muxId,this.onRemoteTransceiverAdded.execute(N);else if(N.direction==="inactive"&&N.stopping){if(N.stopped=!0,W.type==="answer")N.setCurrentDirection("inactive");return}if(this.sdpManager.remoteIsBundled)if(!X)X=N.dtlsTransport;else N.setDtlsTransport(X);U=N.dtlsTransport,this.transceiverManager.setRemoteRTP(N,Q,G.type,J)}else if(Q.kind==="application"){let N=this.sctpTransport;if(!N)N=this.createSctpTransport(),N.mid=Q.rtp.muxId;if(this.sdpManager.remoteIsBundled)if(!X)X=N.dtlsTransport;else N.setDtlsTransport(X);U=N.dtlsTransport,this.sctpManager.setRemoteSCTP(Q,J)}else throw Error("invalid media kind");let q=U.iceTransport;if(Q.iceParams){let N=!!this.sdpManager.inactiveRemoteMedia;if(q.setRemoteParams(Q.iceParams,N),Q.iceParams?.iceLite)q.connection.iceControlling=!0}if(Q.dtlsParams)U.setRemoteParams(Q.dtlsParams);if(Q.iceCandidates.forEach(q.addRemoteCandidate),Q.iceCandidatesComplete)q.addRemoteCandidate(void 0);if(G.type==="answer"&&Q.dtlsParams?.role)U.role=Q.dtlsParams.role==="client"?"server":"client";return q});Z=Z.filter((Q)=>!!Q);let V=this.transceiverManager.getTransceivers().filter((Q)=>G.media.find((J)=>Y(Q,J))==null);if(W.type==="answer")for(let Q of V)Q.stop(),Q.stopped=!0;if(G.type==="offer")this.setSignalingState("have-remote-offer");else if(G.type==="answer")this.setSignalingState("stable");if(G.type==="answer")t5("caller start connect"),this.connect().catch((Q)=>{t5("connect failed",Q),this.secureManager.setConnectionState("failed")});if(this.negotiationneeded=!1,this.shouldNegotiationneeded)this.needNegotiation()}addTransceiver(W,G={}){let X=this.findOrCreateTransport(),Y=this.transceiverManager.addTransceiver(W,X,G);return this.secureManager.updateIceConnectionState(),this.needNegotiation(),Y}addTrack(W,G){if(this.isClosed)throw Error("is closed");let X=this.transceiverManager.addTrack(W,G);if(!X.dtlsTransport){let Y=this.findOrCreateTransport();X.setDtlsTransport(Y)}return this.needNegotiation(),X.sender}async createAnswer(){return this.assertNotClosed(),await this.secureManager.ensureCerts(),this.sdpManager.buildAnswerSdp({transceivers:this.transceiverManager.getTransceivers(),sctpTransport:this.sctpTransport,signalingState:this.signalingState}).toJSON()}assertNotClosed(){if(this.isClosed)throw Error("RTCPeerConnection is closed")}setSignalingState(W){if(t5("signalingStateChange",W),this.signalingState=W,this.signalingStateChange.execute(W),this.onsignalingstatechange)this.onsignalingstatechange({})}createPeerConnectionStats(){let W=FG();return{type:"peer-connection",id:Z8("peer-connection"),timestamp:W,dataChannelsOpened:this.sctpManager.dataChannelsOpened,dataChannelsClosed:this.sctpManager.dataChannelsClosed}}async getStats(W){let G=[];G.push(this.createPeerConnectionStats());let X=await this.transceiverManager.getStats(W);G.push(...X);let Y=await this.secureManager.getStats();if(G.push(...Y),this.sctpTransport){let Z=await this.sctpManager.getStats();if(Z)G.push(...Z)}return new Oi(G)}async close(){if(this.isClosed)return;this.isClosed=!0,this.setSignalingState("closed"),this.transceiverManager.close(),await this.secureManager.close(),await this.sctpManager.close(),this.onDataChannel.allUnsubscribe(),this.iceGatheringStateChange.allUnsubscribe(),this.iceConnectionStateChange.allUnsubscribe(),this.signalingStateChange.allUnsubscribe(),this.onTransceiverAdded.allUnsubscribe(),this.onRemoteTransceiverAdded.allUnsubscribe(),this.onIceCandidate.allUnsubscribe(),t5("peerConnection closed")}},H2=(W,G)=>W.find((X)=>X.mimeType.toLowerCase()===G.mimeType.toLowerCase())?G:void 0;function Jx(){return{codecs:{audio:[kS(),_S()],video:[xS()]},headerExtensions:{audio:[],video:[]},iceTransportPolicy:"all",iceServers:[{urls:"stun:stun.l.google.com:19302"}],icePortRange:void 0,iceInterfaceAddresses:void 0,iceAdditionalHostAddresses:void 0,iceUseIpv4:!0,iceUseIpv6:!0,iceFilterStunResponse:void 0,iceFilterCandidatePair:void 0,icePasswordPrefix:void 0,iceUseLinkLocalAddress:void 0,dtls:{},bundlePolicy:"max-compat",debug:{},midSuffix:!1,forceTurnTCP:!1,maxMessageSize:fQ}}var OA0=Jx(),Sr=T1("werift:packages/webrtc/src/media/rtpTransceiverManager.ts"),xr=class{constructor(W,G,X){this.cname=W,this.config=G,this.router=X}transceivers=[];onTransceiverAdded=new f0;onRemoteTransceiverAdded=new f0;onTrack=new f0;onNegotiationNeeded=new f0;getTransceivers(){return this.transceivers}getSenders(){return this.getTransceivers().map((W)=>W.sender)}getReceivers(){return this.getTransceivers().map((W)=>W.receiver)}getTransceiverByMLineIndex(W){return this.transceivers.find((G)=>G.mLineIndex===W)}pushTransceiver(W){this.transceivers.push(W)}replaceTransceiver(W,G){this.transceivers[G]=W}addTransceiver(W,G,X={}){let Y=typeof W==="string"?W:W.kind,Z=X.direction||"sendrecv",V=new Pr(W),Q=new Vx(this.config,Y,V.ssrc),J=new Ki(Y,G,Q,V,Z);J.options=X,this.router.registerRtpSender(J.sender);let U=this.transceivers.findIndex((N)=>N.currentDirection==="inactive"&&!N.usedForSender),q=this.transceivers.find((N)=>N.currentDirection==="inactive"&&!N.usedForSender);if(U>-1&&q)this.replaceTransceiver(J,U),J.mLineIndex=q.mLineIndex,J.mid=q.mid,q.setCurrentDirection(void 0);else this.pushTransceiver(J);return this.onTransceiverAdded.execute(J),J}addTrack(W,G){if(this.getSenders().find((Z)=>Z.track?.uuid===W.uuid))throw Error("Track already added");let X=this.transceivers.find((Z)=>Z.sender.track==null&&Z.kind===W.kind&&mN.includes(Z.direction)===!0);if(X)return X.sender.registerTrack(W),X;let Y=this.transceivers.find((Z)=>Z.sender.track==null&&Z.kind===W.kind&&mN.includes(Z.direction)===!1&&!Z.usedForSender);if(Y){switch(Y.sender.registerTrack(W),Y.direction){case"recvonly":Y.setDirection("sendrecv");break;case"inactive":Y.setDirection("sendonly");break}return Y}else return this.addTransceiver(W,void 0,{direction:"sendrecv"})}removeTrack(W){if(!this.getSenders().find(({ssrc:X})=>W.ssrc===X))throw Error("Sender does not exist");let G=this.transceivers.find(({sender:{ssrc:X}})=>W.ssrc===X);if(!G)throw Error("No matching transceiver found");if(W.stop(),G.currentDirection==="recvonly"){this.onNegotiationNeeded.execute();return}if(G.stopping||G.stopped)G.setDirection("inactive");else if(G.direction==="sendrecv")G.setDirection("recvonly");else if(G.direction==="sendonly"||G.direction==="recvonly")G.setDirection("inactive")}assignTransceiverCodecs(W){let G=this.config.codecs[W.kind].filter((X)=>{switch(X.direction){case"recvonly":{if(ji.includes(W.direction))return!0;return!1}case"sendonly":{if(mN.includes(W.direction))return!0;return!1}case"sendrecv":{if([hS,uS,gS].includes(W.direction))return!0;return!1}case"all":return!0;default:return!1}});W.codecs=G}getLocalRtpParams(W){if(W.mid==null)throw Error("mid not assigned");return{codecs:W.codecs,muxId:W.mid,headerExtensions:W.headerExtensions,rtcp:{cname:this.cname,ssrc:W.sender.ssrc,mux:!0}}}getRemoteRtpParams(W,G){return{muxId:W.rtp.muxId,rtcp:W.rtp.rtcp,codecs:G.codecs,headerExtensions:G.headerExtensions,encodings:Object.values(G.codecs.reduce((Y,Z)=>{if(Z.name.toLowerCase()==="rtx"){let V=UH(Z.parameters??""),Q=Y[V.apt];if(Q&&W.ssrc.length===2)Q.rtx=new Yi({ssrc:W.ssrc[1].ssrc});return Y}return Y[Z.payloadType]=new Zi({ssrc:W.ssrc[0]?.ssrc,payloadType:Z.payloadType}),Y},{}))}}setRemoteRTP(W,G,X,Y){if(!W.mid)W.mid=G.rtp.muxId;if(W.mLineIndex=Y,W.codecs=G.rtp.codecs.filter((J)=>{let U=this.config.codecs[G.kind]||[],q=H2(U,J);if(!q)return!1;if(q?.name.toLowerCase()==="rtx"){let A=UH(q.parameters??"").apt,H=G.rtp.codecs.find((I)=>I.payloadType===A);if(!H)return!1;return!!H2(U,H)}return!0}),Sr("negotiated codecs",W.codecs),W.codecs.length===0)throw Error("negotiate codecs failed.");W.headerExtensions=G.rtp.headerExtensions.filter((J)=>(this.config.headerExtensions[G.kind]||[]).find((U)=>U.uri===J.uri));let Z=G.direction??"inactive",V=Ri(Z);if(["answer","pranswer"].includes(X))W.setCurrentDirection(V);else W.offerDirection=V;let Q=this.getLocalRtpParams(W);if(W.sender.prepareSend(Q),["recvonly","sendrecv"].includes(W.direction)){let J=this.getRemoteRtpParams(G,W);for(let U of G.simulcastParameters)this.router.registerRtpReceiverByRid(W,U,J);W.receiver.prepareReceive(J),this.router.registerRtpReceiverBySsrc(W,J)}if(["sendonly","sendrecv"].includes(Z)){if(G.msid){let[J,U]=G.msid.split(" ");W.receiver.remoteStreamId=J,W.receiver.remoteTrackId=U}this.onTrack.execute({track:W.receiver.track,transceiver:W,stream:new Di({id:W.receiver.remoteStreamId,tracks:[W.receiver.track]})})}if(G.ssrc[0]?.ssrc)W.receiver.setupTWCC(G.ssrc[0].ssrc)}async getStats(W){let G=[];for(let X of this.transceivers){let Y=!W||X.sender.track===W||X.receiver.track===W;if(X.sender){let Z=await X.sender.getStats();if(Z)for(let V of Z)if(V.type==="outbound-rtp"||V.type==="media-source"){if(Y)G.push(V)}else G.push(V)}if(X.receiver){let Z=await X.receiver.getStats();if(Z)for(let V of Z)if(V.type==="inbound-rtp"||V.type==="remote-outbound-rtp"){if(Y)G.push(V)}else G.push(V)}if(Y){let Z=X.getCodecStats();if(Z)G.push(...Z)}}return G}close(){for(let W of this.transceivers)W.receiver.stop(),W.sender.stop();this.onTransceiverAdded.allUnsubscribe(),this.onRemoteTransceiverAdded.allUnsubscribe(),this.onTrack.allUnsubscribe(),this.onNegotiationNeeded.allUnsubscribe()}};class NK extends Qx{toJSON(){return{}}createDataChannel(...W){let G=super.createDataChannel(...W);try{G.toJSON=()=>({})}catch{}return G}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var pY={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},kr={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},_r=BigInt(0),Ux=BigInt(1),HK=BigInt(2);function yr(W){let G=pY.p,X=BigInt(3),Y=BigInt(6),Z=BigInt(11),V=BigInt(22),Q=BigInt(23),J=BigInt(44),U=BigInt(88),q=W*W*W%G,N=q*q*W%G,A=V5(N,X,G)*N%G,H=V5(A,X,G)*N%G,I=V5(H,HK,G)*q%G,w=V5(I,Z,G)*I%G,C=V5(w,V,G)*w%G,D=V5(C,J,G)*C%G,x=V5(D,U,G)*D%G,h=V5(x,J,G)*C%G,l=V5(h,X,G)*N%G,u=V5(l,Q,G)*w%G,n=V5(u,Y,G)*q%G,c=V5(n,HK,G);if(!OH.eql(OH.sqr(c),W))throw Error("Cannot find square root");return c}var OH=T5(pY.p,{sqrt:yr}),Hx=CY({...pY,Fp:OH,lowS:!0,endo:kr},jY),qx={};function KH(W,...G){let X=qx[W];if(X===void 0){let Y=jY(qN(W));X=o9(Y,Y),qx[W]=X}return jY(o9(X,...G))}var zK=(W)=>W.toBytes(!0).slice(1),lY=(()=>Hx.Point)(),IK=(W)=>W%HK===_r;function AK(W){let{Fn:G,BASE:X}=lY,Y=d6(G,W),Z=X.multiply(Y);return{scalar:IK(Z.y)?Y:G.neg(Y),bytes:zK(Z)}}function Ax(W){let G=OH;if(!G.isValidNot0(W))throw Error("invalid x: Fail if x \u2265 p");let X=G.create(W*W),Y=G.create(X*W+BigInt(7)),Z=G.sqrt(Y);if(!IK(Z))Z=G.neg(Z);let V=lY.fromAffine({x:W,y:Z});return V.assertValidity(),V}var NJ=L4;function zx(...W){return lY.Fn.create(NJ(KH("BIP0340/challenge",...W)))}function Nx(W){return AK(W).bytes}function vr(W,G,X=HG(32)){let{Fn:Y}=lY,Z=B8("message",W),{bytes:V,scalar:Q}=AK(G),J=B8("auxRand",X,32),U=Y.toBytes(Q^NJ(KH("BIP0340/aux",J))),q=KH("BIP0340/nonce",U,V,Z),{bytes:N,scalar:A}=AK(q),H=zx(N,V,Z),I=new Uint8Array(64);if(I.set(N,0),I.set(Y.toBytes(Y.create(A+H*Q)),32),!Ix(I,Z,V))throw Error("sign: Invalid signature produced");return I}function Ix(W,G,X){let{Fn:Y,BASE:Z}=lY,V=B8("signature",W,64),Q=B8("message",G),J=B8("publicKey",X,32);try{let U=Ax(NJ(J)),q=NJ(V.subarray(0,32));if(!PQ(q,Ux,pY.p))return!1;let N=NJ(V.subarray(32,64));if(!PQ(N,Ux,pY.n))return!1;let A=zx(Y.toBytes(q),zK(U),Q),H=Z.multiplyUnsafe(N).add(U.multiplyUnsafe(Y.neg(A))),{x:I,y:w}=H.toAffine();if(H.is0()||!IK(w)||I!==q)return!1;return!0}catch(U){return!1}}var wx=(()=>{let X=(Z=HG(48))=>{return IN(Z,pY.n)};Hx.utils.randomSecretKey;function Y(Z){let V=X(Z);return{secretKey:V,publicKey:Nx(V)}}return{keygen:Y,getPublicKey:Nx,sign:vr,verify:Ix,Point:lY,utils:{randomSecretKey:X,randomPrivateKey:X,taggedHash:KH,lift_x:Ax,pointToBytes:zK,numberToBytesBE:wY,bytesToNumberBE:L4,mod:Z5},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})();var jx=(W)=>Uint8Array.from(W.match(/.{2}/g).map((G)=>parseInt(G,16))),gr=(W)=>[...W].map((G)=>G.toString(16).padStart(2,"0")).join(""),ur=async(W)=>{try{if(typeof W.pubkey!=="string"||typeof W.sig!=="string"||typeof W.id!=="string")return!1;let G=new TextEncoder().encode(JSON.stringify([0,W.pubkey,W.created_at,W.kind,W.tags,W.content])),X=new Uint8Array(await crypto.subtle.digest("SHA-256",G));if(gr(X)!==W.id)return!1;return wx.verify(jx(W.sig),X,jx(W.pubkey))}catch{return!1}},hr=(W,G)=>{if(W.kinds&&!W.kinds.includes(G.kind))return!1;if(W.since&&G.created_at<W.since-60)return!1;if(W["#x"]){let X=(G.tags??[]).filter((Y)=>Y?.[0]==="x").map((Y)=>Y[1]);if(!W["#x"].some((Y)=>X.includes(Y)))return!1}return!0};function Ox({port:W=Number(process.env.PORT)||8080}={}){let G=new Map,X=0,Y=0,Z=Bun.serve({port:W,fetch(V,Q){if(Q.upgrade(V))return;return Response.json({relay:"GenosSRV embedded relay",protocol:"nostr (ephemeral subset)",connections:G.size,events:X,dropped:Y})},websocket:{open(V){G.set(V,new Map)},close(V){G.delete(V)},async message(V,Q){let J;try{J=JSON.parse(String(Q))}catch{return}if(!Array.isArray(J))return;let[U,q,N]=J;if(U==="REQ"&&typeof q==="string"&&N&&typeof N==="object"){G.get(V)?.set(q,N),V.send(JSON.stringify(["EOSE",q]));return}if(U==="CLOSE"&&typeof q==="string"){G.get(V)?.delete(q);return}if(U==="EVENT"&&q&&typeof q==="object"){if(!await ur(q)){Y++,V.send(JSON.stringify(["OK",q.id??"",!1,"invalid: bad signature"]));return}X++,V.send(JSON.stringify(["OK",q.id,!0,""]));for(let[A,H]of G)for(let[I,w]of H)if(hr(w,q)){try{A.send(JSON.stringify(["EVENT",I,q]))}catch{}break}}}}});return console.info(`\uD83D\uDCE1 Relay listening on :${Z.port} (ephemeral, schnorr-verified)`),{port:Z.port,stats:()=>({connections:G.size,events:X,dropped:Y}),stop:()=>Z.stop(!0)}}var CH="6.15.0";function br(W,G,X){let Y=G.split("|").map((V)=>V.trim());for(let V=0;V<Y.length;V++)switch(G){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof W===G)return}let Z=Error(`invalid value for type ${G}`);throw Z.code="INVALID_ARGUMENT",Z.argument=`value.${X}`,Z.value=W,Z}async function p7(W){let G=Object.keys(W);return(await Promise.all(G.map((Y)=>Promise.resolve(W[Y])))).reduce((Y,Z,V)=>{return Y[G[V]]=Z,Y},{})}function Q8(W,G,X){for(let Y in G){let Z=G[Y],V=X?X[Y]:null;if(V)br(Z,V,Y);Object.defineProperty(W,Y,{enumerable:!0,value:Z,writable:!1})}}function dY(W,G){if(W==null)return"null";if(G==null)G=new Set;if(typeof W==="object"){if(G.has(W))return"[Circular]";G.add(W)}if(Array.isArray(W))return"[ "+W.map((X)=>dY(X,G)).join(", ")+" ]";if(W instanceof Uint8Array){let Y="0x";for(let Z=0;Z<W.length;Z++)Y+="0123456789abcdef"[W[Z]>>4],Y+="0123456789abcdef"[W[Z]&15];return Y}if(typeof W==="object"&&typeof W.toJSON==="function")return dY(W.toJSON(),G);switch(typeof W){case"boolean":case"number":case"symbol":return W.toString();case"bigint":return BigInt(W).toString();case"string":return JSON.stringify(W);case"object":{let X=Object.keys(W);return X.sort(),"{ "+X.map((Y)=>`${dY(Y,G)}: ${dY(W[Y],G)}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function DH(W,G){return W&&W.code===G}function HJ(W,G,X){let Y=W;{let V=[];if(X){if("message"in X||"code"in X||"name"in X)throw Error(`value will overwrite populated values: ${dY(X)}`);for(let Q in X){if(Q==="shortMessage")continue;let J=X[Q];V.push(Q+"="+dY(J))}}if(V.push(`code=${G}`),V.push(`version=${CH}`),V.length)W+=" ("+V.join(", ")+")"}let Z;switch(G){case"INVALID_ARGUMENT":Z=TypeError(W);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":Z=RangeError(W);break;default:Z=Error(W)}if(Q8(Z,{code:G}),X)Object.assign(Z,X);if(Z.shortMessage==null)Q8(Z,{shortMessage:Y});return Z}function t0(W,G,X,Y){if(!W)throw HJ(G,X,Y)}function s(W,G,X,Y){t0(W,G,"INVALID_ARGUMENT",{argument:X,value:Y})}var mr=["NFD","NFC","NFKD","NFKC"].reduce((W,G)=>{try{if("test".normalize(G)!=="test")throw Error("bad");if(G==="NFD"){let X=String.fromCharCode(233).normalize("NFD"),Y=String.fromCharCode(101,769);if(X!==Y)throw Error("broken")}W.push(G)}catch(X){}return W},[]);function oY(W){t0(mr.indexOf(W)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:W}})}function l4(W,G,X){if(X==null)X="";if(W!==G){let Y=X,Z="new";if(X)Y+=".",Z+=" "+X;t0(!1,`private constructor; use ${Y}from* methods`,"UNSUPPORTED_OPERATION",{operation:Z})}}function Cx(W,G,X){if(W instanceof Uint8Array){if(X)return new Uint8Array(W);return W}if(typeof W==="string"&&W.match(/^0x(?:[0-9a-f][0-9a-f])*$/i)){let Y=new Uint8Array((W.length-2)/2),Z=2;for(let V=0;V<Y.length;V++)Y[V]=parseInt(W.substring(Z,Z+2),16),Z+=2;return Y}s(!1,"invalid BytesLike value",G||"value",W)}function R0(W,G){return Cx(W,G,!1)}function Y7(W,G){return Cx(W,G,!0)}function T9(W,G){if(typeof W!=="string"||!W.match(/^0x[0-9A-Fa-f]*$/))return!1;if(typeof G==="number"&&W.length!==2+2*G)return!1;if(G===!0&&W.length%2!==0)return!1;return!0}function l7(W){return T9(W,!0)||W instanceof Uint8Array}var Kx="0123456789abcdef";function C0(W){let G=R0(W),X="0x";for(let Y=0;Y<G.length;Y++){let Z=G[Y];X+=Kx[(Z&240)>>4]+Kx[Z&15]}return X}function s1(W){return"0x"+W.map((G)=>C0(G).substring(2)).join("")}function d4(W){if(T9(W,!0))return(W.length-2)/2;return R0(W).length}function nY(W,G,X){let Y=R0(W);if(X!=null&&X>Y.length)t0(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:Y,length:Y.length,offset:X});return C0(Y.slice(G==null?0:G,X==null?Y.length:X))}function fr(W,G,X){let Y=R0(W);t0(G>=Y.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(Y),length:G,offset:G+1});let Z=new Uint8Array(G);if(Z.fill(0),X)Z.set(Y,G-Y.length);else Z.set(Y,0);return C0(Z)}function q5(W,G){return fr(W,G,!0)}var wK=BigInt(0),SG=BigInt(1),iY=9007199254740991;function MH(W,G){let X=u1(W,"value"),Y=BigInt(i8(G,"width")),Z=SG<<Y-SG;if(X<wK){X=-X,t0(X<=Z,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:W});let V=(SG<<Y)-SG;return(~X&V)+SG}else t0(X<Z,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:W});return X}function TH(W,G){let X=AJ(W,"value"),Y=BigInt(i8(G,"bits"));return X&(SG<<Y)-SG}function u1(W,G){switch(typeof W){case"bigint":return W;case"number":return s(Number.isInteger(W),"underflow",G||"value",W),s(W>=-iY&&W<=iY,"overflow",G||"value",W),BigInt(W);case"string":try{if(W==="")throw Error("empty string");if(W[0]==="-"&&W[1]!=="-")return-BigInt(W.substring(1));return BigInt(W)}catch(X){s(!1,`invalid BigNumberish string: ${X.message}`,G||"value",W)}}s(!1,"invalid BigNumberish value",G||"value",W)}function AJ(W,G){let X=u1(W,G);return t0(X>=wK,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:W}),X}var Dx="0123456789abcdef";function rY(W){if(W instanceof Uint8Array){let G="0x0";for(let X of W)G+=Dx[X>>4],G+=Dx[X&15];return BigInt(G)}return u1(W)}function i8(W,G){switch(typeof W){case"bigint":return s(W>=-iY&&W<=iY,"overflow",G||"value",W),Number(W);case"number":return s(Number.isInteger(W),"underflow",G||"value",W),s(W>=-iY&&W<=iY,"overflow",G||"value",W),W;case"string":try{if(W==="")throw Error("empty string");return i8(BigInt(W),G)}catch(X){s(!1,`invalid numeric string: ${X.message}`,G||"value",W)}}s(!1,"invalid numeric value",G||"value",W)}function Z7(W,G){let Y=AJ(W,"value").toString(16);if(G==null){if(Y.length%2)Y="0"+Y}else{let Z=i8(G,"width");t0(Z*2>=Y.length,`value exceeds width (${Z} bytes)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:W});while(Y.length<Z*2)Y="0"+Y}return"0x"+Y}function J8(W){let G=AJ(W,"value");if(G===wK)return new Uint8Array([]);let X=G.toString(16);if(X.length%2)X="0"+X;let Y=new Uint8Array(X.length/2);for(let Z=0;Z<Y.length;Z++){let V=Z*2;Y[Z]=parseInt(X.substring(V,V+2),16)}return Y}function PH(W){let G=C0(l7(W)?W:J8(W)).substring(2);while(G.startsWith("0"))G=G.substring(1);if(G==="")G="0";return"0x"+G}var LH="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",RH=null;function cr(W){if(RH==null){RH={};for(let X=0;X<LH.length;X++)RH[LH[X]]=BigInt(X)}let G=RH[W];return s(G!=null,"invalid base58 value","letter",W),G}var pr=BigInt(0),jK=BigInt(58);function BH(W){let G=R0(W),X=rY(G),Y="";while(X)Y=LH[Number(X%jK)]+Y,X/=jK;for(let Z=0;Z<G.length;Z++){if(G[Z])break;Y=LH[0]+Y}return Y}function EH(W){let G=pr;for(let X=0;X<W.length;X++)G*=jK,G+=cr(W[X]);return G}function lr(W,G,X,Y,Z){s(!1,`invalid codepoint at offset ${G}; ${W}`,"bytes",X)}function Mx(W,G,X,Y,Z){if(W==="BAD_PREFIX"||W==="UNEXPECTED_CONTINUE"){let V=0;for(let Q=G+1;Q<X.length;Q++){if(X[Q]>>6!==2)break;V++}return V}if(W==="OVERRUN")return X.length-G-1;return 0}function dr(W,G,X,Y,Z){if(W==="OVERLONG")return s(typeof Z==="number","invalid bad code point for replacement","badCodepoint",Z),Y.push(Z),0;return Y.push(65533),Mx(W,G,X,Y,Z)}var Tx=Object.freeze({error:lr,ignore:Mx,replace:dr});function P9(W,G){if(s(typeof W==="string","invalid string value","str",W),G!=null)oY(G),W=W.normalize(G);let X=[];for(let Y=0;Y<W.length;Y++){let Z=W.charCodeAt(Y);if(Z<128)X.push(Z);else if(Z<2048)X.push(Z>>6|192),X.push(Z&63|128);else if((Z&64512)==55296){Y++;let V=W.charCodeAt(Y);s(Y<W.length&&(V&64512)===56320,"invalid surrogate pair","str",W);let Q=65536+((Z&1023)<<10)+(V&1023);X.push(Q>>18|240),X.push(Q>>12&63|128),X.push(Q>>6&63|128),X.push(Q&63|128)}else X.push(Z>>12|224),X.push(Z>>6&63|128),X.push(Z&63|128)}return new Uint8Array(X)}function or(W){let G=W.toString(16);while(G.length<2)G="0"+G;return"0x"+G}function Px(W,G,X){let Y=0;for(let Z=0;Z<X;Z++)Y=Y*256+W[G+Z];return Y}function Rx(W,G,X,Y){let Z=[];while(X<G+1+Y){let V=Lx(W,X);Z.push(V.result),X+=V.consumed,t0(X<=G+1+Y,"child data too short","BUFFER_OVERRUN",{buffer:W,length:Y,offset:G})}return{consumed:1+Y,result:Z}}function Lx(W,G){t0(W.length!==0,"data too short","BUFFER_OVERRUN",{buffer:W,length:0,offset:1});let X=(Y)=>{t0(Y<=W.length,"data short segment too short","BUFFER_OVERRUN",{buffer:W,length:W.length,offset:Y})};if(W[G]>=248){let Y=W[G]-247;X(G+1+Y);let Z=Px(W,G+1,Y);return X(G+1+Y+Z),Rx(W,G,G+1+Y,Y+Z)}else if(W[G]>=192){let Y=W[G]-192;return X(G+1+Y),Rx(W,G,G+1,Y)}else if(W[G]>=184){let Y=W[G]-183;X(G+1+Y);let Z=Px(W,G+1,Y);X(G+1+Y+Z);let V=C0(W.slice(G+1+Y,G+1+Y+Z));return{consumed:1+Y+Z,result:V}}else if(W[G]>=128){let Y=W[G]-128;X(G+1+Y);let Z=C0(W.slice(G+1,G+1+Y));return{consumed:1+Y,result:Z}}return{consumed:1,result:or(W[G])}}function WW(W){let G=R0(W,"data"),X=Lx(G,0);return s(X.consumed===G.length,"unexpected junk after rlp payload","data",W),X.result}function Bx(W){let G=[];while(W)G.unshift(W&255),W>>=8;return G}function $x(W){if(Array.isArray(W)){let Y=[];if(W.forEach(function(V){Y=Y.concat($x(V))}),Y.length<=55)return Y.unshift(192+Y.length),Y;let Z=Bx(Y.length);return Z.unshift(247+Z.length),Z.concat(Y)}let G=Array.prototype.slice.call(R0(W,"object"));if(G.length===1&&G[0]<=127)return G;else if(G.length<=55)return G.unshift(128+G.length),G;let X=Bx(G.length);return X.unshift(183+X.length),X.concat(G)}var Ex="0123456789abcdef";function R5(W){let G="0x";for(let X of $x(W))G+=Ex[X>>4],G+=Ex[X&15];return G}function $H(W){let G=R0(W,"randomBytes");G[6]=G[6]&15|64,G[8]=G[8]&63|128;let X=C0(G);return[X.substring(2,10),X.substring(10,14),X.substring(14,18),X.substring(18,22),X.substring(22,34)].join("-")}import{createHash as OK,createHmac as Fx,pbkdf2Sync as Sx,randomBytes as xx}from"crypto";var kx=!1,_x=function(W,G,X){return Fx(W,G).update(X).digest()},yx=_x;function GW(W,G,X){let Y=R0(G,"key"),Z=R0(X,"data");return C0(yx(W,Y,Z))}GW._=_x;GW.lock=function(){kx=!0};GW.register=function(W){if(kx)throw Error("computeHmac is locked");yx=W};Object.freeze(GW);function R9(W){if(!Number.isSafeInteger(W)||W<0)throw Error(`Wrong positive integer: ${W}`)}function zJ(W,...G){if(!(W instanceof Uint8Array))throw Error("Expected Uint8Array");if(G.length>0&&!G.includes(W.length))throw Error(`Expected Uint8Array of length ${G}, not of length=${W.length}`)}function FH(W){if(typeof W!=="function"||typeof W.create!=="function")throw Error("Hash should be wrapped by utils.wrapConstructor");R9(W.outputLen),R9(W.blockLen)}function o4(W,G=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(G&&W.finished)throw Error("Hash#digest() has already been called")}function SH(W,G){zJ(W);let X=G.outputLen;if(W.length<X)throw Error(`digestInto() expects output buffer of length at least ${X}`)}var xH=BigInt(4294967295),vx=BigInt(32);function Ga(W,G=!1){if(G)return{h:Number(W&xH),l:Number(W>>vx&xH)};return{h:Number(W>>vx&xH)|0,l:Number(W&xH)|0}}function gx(W,G=!1){let X=new Uint32Array(W.length),Y=new Uint32Array(W.length);for(let Z=0;Z<W.length;Z++){let{h:V,l:Q}=Ga(W[Z],G);[X[Z],Y[Z]]=[V,Q]}return[X,Y]}var ux=(W,G,X)=>W<<X|G>>>32-X,hx=(W,G,X)=>G<<X|W>>>32-X,bx=(W,G,X)=>G<<X-32|W>>>64-X,mx=(W,G,X)=>W<<X-32|G>>>64-X;import*as IJ from"crypto";var kH=IJ&&typeof IJ==="object"&&"webcrypto"in IJ?IJ.webcrypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */var fx=(W)=>W instanceof Uint8Array;var aY=(W)=>new Uint32Array(W.buffer,W.byteOffset,Math.floor(W.byteLength/4)),sY=(W)=>new DataView(W.buffer,W.byteOffset,W.byteLength),V7=(W,G)=>W<<32-G|W>>>G,Xa=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!Xa)throw Error("Non little-endian hardware is not supported");var Ya=async()=>{};async function _H(W,G,X){let Y=Date.now();for(let Z=0;Z<W;Z++){X(Z);let V=Date.now()-Y;if(V>=0&&V<G)continue;await Ya(),Y+=V}}function Za(W){if(typeof W!=="string")throw Error(`utf8ToBytes expected string, got ${typeof W}`);return new Uint8Array(new TextEncoder().encode(W))}function d7(W){if(typeof W==="string")W=Za(W);if(!fx(W))throw Error(`expected Uint8Array, got ${typeof W}`);return W}function cx(...W){let G=new Uint8Array(W.reduce((Y,Z)=>Y+Z.length,0)),X=0;return W.forEach((Y)=>{if(!fx(Y))throw Error("Uint8Array expected");G.set(Y,X),X+=Y.length}),G}class xG{clone(){return this._cloneInto()}}var Va={}.toString;function yH(W,G){if(G!==void 0&&Va.call(G)!=="[object Object]")throw Error("Options should be object or undefined");return Object.assign(W,G)}function tY(W){let G=(Y)=>W().update(d7(Y)).digest(),X=W();return G.outputLen=X.outputLen,G.blockLen=X.blockLen,G.create=()=>W(),G}function px(W=32){if(kH&&typeof kH.getRandomValues==="function")return kH.getRandomValues(new Uint8Array(W));throw Error("crypto.getRandomValues must be defined")}var[ox,nx,ix]=[[],[],[]],Qa=BigInt(0),wJ=BigInt(1),Ja=BigInt(2),Ua=BigInt(7),qa=BigInt(256),Na=BigInt(113);for(let W=0,G=wJ,X=1,Y=0;W<24;W++){[X,Y]=[Y,(2*X+3*Y)%5],ox.push(2*(5*Y+X)),nx.push((W+1)*(W+2)/2%64);let Z=Qa;for(let V=0;V<7;V++)if(G=(G<<wJ^(G>>Ua)*Na)%qa,G&Ja)Z^=wJ<<(wJ<<BigInt(V))-wJ;ix.push(Z)}var[Ha,Aa]=gx(ix,!0),lx=(W,G,X)=>X>32?bx(W,G,X):ux(W,G,X),dx=(W,G,X)=>X>32?mx(W,G,X):hx(W,G,X);function za(W,G=24){let X=new Uint32Array(10);for(let Y=24-G;Y<24;Y++){for(let Q=0;Q<10;Q++)X[Q]=W[Q]^W[Q+10]^W[Q+20]^W[Q+30]^W[Q+40];for(let Q=0;Q<10;Q+=2){let J=(Q+8)%10,U=(Q+2)%10,q=X[U],N=X[U+1],A=lx(q,N,1)^X[J],H=dx(q,N,1)^X[J+1];for(let I=0;I<50;I+=10)W[Q+I]^=A,W[Q+I+1]^=H}let Z=W[2],V=W[3];for(let Q=0;Q<24;Q++){let J=nx[Q],U=lx(Z,V,J),q=dx(Z,V,J),N=ox[Q];Z=W[N],V=W[N+1],W[N]=U,W[N+1]=q}for(let Q=0;Q<50;Q+=10){for(let J=0;J<10;J++)X[J]=W[Q+J];for(let J=0;J<10;J++)W[Q+J]^=~X[(J+2)%10]&X[(J+4)%10]}W[0]^=Ha[Y],W[1]^=Aa[Y]}X.fill(0)}class KK extends xG{constructor(W,G,X,Y=!1,Z=24){super();if(this.blockLen=W,this.suffix=G,this.outputLen=X,this.enableXOF=Y,this.rounds=Z,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,R9(X),0>=this.blockLen||this.blockLen>=200)throw Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=aY(this.state)}keccak(){za(this.state32,this.rounds),this.posOut=0,this.pos=0}update(W){o4(this);let{blockLen:G,state:X}=this;W=d7(W);let Y=W.length;for(let Z=0;Z<Y;){let V=Math.min(G-this.pos,Y-Z);for(let Q=0;Q<V;Q++)X[this.pos++]^=W[Z++];if(this.pos===G)this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:W,suffix:G,pos:X,blockLen:Y}=this;if(W[X]^=G,(G&128)!==0&&X===Y-1)this.keccak();W[Y-1]^=128,this.keccak()}writeInto(W){o4(this,!1),zJ(W),this.finish();let G=this.state,{blockLen:X}=this;for(let Y=0,Z=W.length;Y<Z;){if(this.posOut>=X)this.keccak();let V=Math.min(X-this.posOut,Z-Y);W.set(G.subarray(this.posOut,this.posOut+V),Y),this.posOut+=V,Y+=V}return W}xofInto(W){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto(W)}xof(W){return R9(W),this.xofInto(new Uint8Array(W))}digestInto(W){if(SH(W,this),this.finished)throw Error("digest() was already called");return this.writeInto(W),this.destroy(),W}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(W){let{blockLen:G,suffix:X,outputLen:Y,rounds:Z,enableXOF:V}=this;return W||(W=new KK(G,X,Y,V,Z)),W.state32.set(this.state32),W.pos=this.pos,W.posOut=this.posOut,W.finished=this.finished,W.rounds=Z,W.suffix=X,W.outputLen=Y,W.enableXOF=V,W.destroyed=this.destroyed,W}}var Ia=(W,G,X)=>tY(()=>new KK(G,W,X));var rx=Ia(1,136,32);var ax=!1,sx=function(W){return rx(W)},tx=sx;function X8(W){let G=R0(W,"data");return C0(tx(G))}X8._=sx;X8.lock=function(){ax=!0};X8.register=function(W){if(ax)throw TypeError("keccak256 is locked");tx=W};Object.freeze(X8);function wa(W,G,X,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(G,X,Y);let Z=BigInt(32),V=BigInt(4294967295),Q=Number(X>>Z&V),J=Number(X&V),U=Y?4:0,q=Y?0:4;W.setUint32(G+U,Q,Y),W.setUint32(G+q,J,Y)}class jJ extends xG{constructor(W,G,X,Y){super();this.blockLen=W,this.outputLen=G,this.padOffset=X,this.isLE=Y,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(W),this.view=sY(this.buffer)}update(W){o4(this);let{view:G,buffer:X,blockLen:Y}=this;W=d7(W);let Z=W.length;for(let V=0;V<Z;){let Q=Math.min(Y-this.pos,Z-V);if(Q===Y){let J=sY(W);for(;Y<=Z-V;V+=Y)this.process(J,V);continue}if(X.set(W.subarray(V,V+Q),this.pos),this.pos+=Q,V+=Q,this.pos===Y)this.process(G,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){o4(this),SH(W,this),this.finished=!0;let{buffer:G,view:X,blockLen:Y,isLE:Z}=this,{pos:V}=this;if(G[V++]=128,this.buffer.subarray(V).fill(0),this.padOffset>Y-V)this.process(X,0),V=0;for(let N=V;N<Y;N++)G[N]=0;wa(X,Y-8,BigInt(this.length*8),Z),this.process(X,0);let Q=sY(W),J=this.outputLen;if(J%4)throw Error("_sha2: outputLen should be aligned to 32bit");let U=J/4,q=this.get();if(U>q.length)throw Error("_sha2: outputLen bigger than state");for(let N=0;N<U;N++)Q.setUint32(4*N,q[N],Z)}digest(){let{buffer:W,outputLen:G}=this;this.digestInto(W);let X=W.slice(0,G);return this.destroy(),X}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:G,buffer:X,length:Y,finished:Z,destroyed:V,pos:Q}=this;if(W.length=Y,W.pos=Q,W.finished=Z,W.destroyed=V,Y%G)W.buffer.set(X);return W}}var ja=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),Wk=Uint8Array.from({length:16},(W,G)=>G),Oa=Wk.map((W)=>(9*W+5)%16),CK=[Wk],DK=[Oa];for(let W=0;W<4;W++)for(let G of[CK,DK])G.push(G[W].map((X)=>ja[X]));var Gk=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map((W)=>new Uint8Array(W)),Ka=CK.map((W,G)=>W.map((X)=>Gk[G][X])),Ca=DK.map((W,G)=>W.map((X)=>Gk[G][X])),Da=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),Ma=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),vH=(W,G)=>W<<G|W>>>32-G;function ex(W,G,X,Y){if(W===0)return G^X^Y;else if(W===1)return G&X|~G&Y;else if(W===2)return(G|~X)^Y;else if(W===3)return G&Y|X&~Y;else return G^(X|~Y)}var gH=new Uint32Array(16);class Xk extends jJ{constructor(){super(64,20,8,!0);this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){let{h0:W,h1:G,h2:X,h3:Y,h4:Z}=this;return[W,G,X,Y,Z]}set(W,G,X,Y,Z){this.h0=W|0,this.h1=G|0,this.h2=X|0,this.h3=Y|0,this.h4=Z|0}process(W,G){for(let H=0;H<16;H++,G+=4)gH[H]=W.getUint32(G,!0);let X=this.h0|0,Y=X,Z=this.h1|0,V=Z,Q=this.h2|0,J=Q,U=this.h3|0,q=U,N=this.h4|0,A=N;for(let H=0;H<5;H++){let I=4-H,w=Da[H],C=Ma[H],D=CK[H],x=DK[H],h=Ka[H],l=Ca[H];for(let u=0;u<16;u++){let n=vH(X+ex(H,Z,Q,U)+gH[D[u]]+w,h[u])+N|0;X=N,N=U,U=vH(Q,10)|0,Q=Z,Z=n}for(let u=0;u<16;u++){let n=vH(Y+ex(I,V,J,q)+gH[x[u]]+C,l[u])+A|0;Y=A,A=q,q=vH(J,10)|0,J=V,V=n}}this.set(this.h1+Q+q|0,this.h2+U+A|0,this.h3+N+Y|0,this.h4+X+V|0,this.h0+Z+J|0)}roundClean(){gH.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}}var Yk=tY(()=>new Xk);var Zk=!1,Vk=function(W){return Yk(W)},Qk=Vk;function XW(W){let G=R0(W,"data");return C0(Qk(G))}XW._=Vk;XW.lock=function(){Zk=!0};XW.register=function(W){if(Zk)throw TypeError("ripemd160 is locked");Qk=W};Object.freeze(XW);var Jk=!1,Uk=function(W,G,X,Y,Z){return Sx(W,G,X,Y,Z)},qk=Uk;function L5(W,G,X,Y,Z){let V=R0(W,"password"),Q=R0(G,"salt");return C0(qk(V,Q,X,Y,Z))}L5._=Uk;L5.lock=function(){Jk=!0};L5.register=function(W){if(Jk)throw Error("pbkdf2 is locked");qk=W};Object.freeze(L5);var Nk=!1,Hk=function(W){return new Uint8Array(xx(W))},Ak=Hk;function B5(W){return Ak(W)}B5._=Hk;B5.lock=function(){Nk=!0};B5.register=function(W){if(Nk)throw Error("randomBytes is locked");Ak=W};Object.freeze(B5);var Ta=(W,G,X)=>W&G^~W&X,Pa=(W,G,X)=>W&G^W&X^G&X,Ra=new Uint32Array([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]),YW=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ZW=new Uint32Array(64);class zk extends jJ{constructor(){super(64,32,8,!1);this.A=YW[0]|0,this.B=YW[1]|0,this.C=YW[2]|0,this.D=YW[3]|0,this.E=YW[4]|0,this.F=YW[5]|0,this.G=YW[6]|0,this.H=YW[7]|0}get(){let{A:W,B:G,C:X,D:Y,E:Z,F:V,G:Q,H:J}=this;return[W,G,X,Y,Z,V,Q,J]}set(W,G,X,Y,Z,V,Q,J){this.A=W|0,this.B=G|0,this.C=X|0,this.D=Y|0,this.E=Z|0,this.F=V|0,this.G=Q|0,this.H=J|0}process(W,G){for(let N=0;N<16;N++,G+=4)ZW[N]=W.getUint32(G,!1);for(let N=16;N<64;N++){let A=ZW[N-15],H=ZW[N-2],I=V7(A,7)^V7(A,18)^A>>>3,w=V7(H,17)^V7(H,19)^H>>>10;ZW[N]=w+ZW[N-7]+I+ZW[N-16]|0}let{A:X,B:Y,C:Z,D:V,E:Q,F:J,G:U,H:q}=this;for(let N=0;N<64;N++){let A=V7(Q,6)^V7(Q,11)^V7(Q,25),H=q+A+Ta(Q,J,U)+Ra[N]+ZW[N]|0,w=(V7(X,2)^V7(X,13)^V7(X,22))+Pa(X,Y,Z)|0;q=U,U=J,J=Q,Q=V+H|0,V=Z,Z=Y,Y=X,X=H+w|0}X=X+this.A|0,Y=Y+this.B|0,Z=Z+this.C|0,V=V+this.D|0,Q=Q+this.E|0,J=J+this.F|0,U=U+this.G|0,q=q+this.H|0,this.set(X,Y,Z,V,Q,J,U,q)}roundClean(){ZW.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}var OJ=tY(()=>new zk);class MK extends xG{constructor(W,G){super();this.finished=!1,this.destroyed=!1,FH(W);let X=d7(G);if(this.iHash=W.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let Y=this.blockLen,Z=new Uint8Array(Y);Z.set(X.length>Y?W.create().update(X).digest():X);for(let V=0;V<Z.length;V++)Z[V]^=54;this.iHash.update(Z),this.oHash=W.create();for(let V=0;V<Z.length;V++)Z[V]^=106;this.oHash.update(Z),Z.fill(0)}update(W){return o4(this),this.iHash.update(W),this}digestInto(W){o4(this),zJ(W,this.outputLen),this.finished=!0,this.iHash.digestInto(W),this.oHash.update(W),this.oHash.digestInto(W),this.destroy()}digest(){let W=new Uint8Array(this.oHash.outputLen);return this.digestInto(W),W}_cloneInto(W){W||(W=Object.create(Object.getPrototypeOf(this),{}));let{oHash:G,iHash:X,finished:Y,destroyed:Z,blockLen:V,outputLen:Q}=this;return W=W,W.finished=Y,W.destroyed=Z,W.blockLen=V,W.outputLen=Q,W.oHash=G._cloneInto(W.oHash),W.iHash=X._cloneInto(W.iHash),W}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var KJ=(W,G,X)=>new MK(W,G).update(X).digest();KJ.create=(W,G)=>new MK(W,G);function La(W,G,X,Y){FH(W);let Z=yH({dkLen:32,asyncTick:10},Y),{c:V,dkLen:Q,asyncTick:J}=Z;if(R9(V),R9(Q),R9(J),V<1)throw Error("PBKDF2: iterations (c) should be >= 1");let U=d7(G),q=d7(X),N=new Uint8Array(Q),A=KJ.create(W,U),H=A._cloneInto().update(q);return{c:V,dkLen:Q,asyncTick:J,DK:N,PRF:A,PRFSalt:H}}function Ba(W,G,X,Y,Z){if(W.destroy(),G.destroy(),Y)Y.destroy();return Z.fill(0),X}function TK(W,G,X,Y){let{c:Z,dkLen:V,DK:Q,PRF:J,PRFSalt:U}=La(W,G,X,Y),q,N=new Uint8Array(4),A=sY(N),H=new Uint8Array(J.outputLen);for(let I=1,w=0;w<V;I++,w+=J.outputLen){let C=Q.subarray(w,w+J.outputLen);A.setInt32(0,I,!1),(q=U._cloneInto(q)).update(N).digestInto(H),C.set(H.subarray(0,C.length));for(let D=1;D<Z;D++){J._cloneInto(q).update(H).digestInto(H);for(let x=0;x<C.length;x++)C[x]^=H[x]}}return Ba(J,U,Q,q,H)}var o1=(W,G)=>W<<G|W>>>32-G;function Ik(W,G,X,Y,Z,V){let Q=W[G++]^X[Y++],J=W[G++]^X[Y++],U=W[G++]^X[Y++],q=W[G++]^X[Y++],N=W[G++]^X[Y++],A=W[G++]^X[Y++],H=W[G++]^X[Y++],I=W[G++]^X[Y++],w=W[G++]^X[Y++],C=W[G++]^X[Y++],D=W[G++]^X[Y++],x=W[G++]^X[Y++],h=W[G++]^X[Y++],l=W[G++]^X[Y++],u=W[G++]^X[Y++],n=W[G++]^X[Y++],c=Q,p=J,W0=U,m=q,Y0=N,U0=A,y=H,o=I,B=w,R=C,_=D,S=x,v=h,P=l,E=u,b=n;for(let k=0;k<8;k+=2)Y0^=o1(c+v|0,7),B^=o1(Y0+c|0,9),v^=o1(B+Y0|0,13),c^=o1(v+B|0,18),R^=o1(U0+p|0,7),P^=o1(R+U0|0,9),p^=o1(P+R|0,13),U0^=o1(p+P|0,18),E^=o1(_+y|0,7),W0^=o1(E+_|0,9),y^=o1(W0+E|0,13),_^=o1(y+W0|0,18),m^=o1(b+S|0,7),o^=o1(m+b|0,9),S^=o1(o+m|0,13),b^=o1(S+o|0,18),p^=o1(c+m|0,7),W0^=o1(p+c|0,9),m^=o1(W0+p|0,13),c^=o1(m+W0|0,18),y^=o1(U0+Y0|0,7),o^=o1(y+U0|0,9),Y0^=o1(o+y|0,13),U0^=o1(Y0+o|0,18),S^=o1(_+R|0,7),B^=o1(S+_|0,9),R^=o1(B+S|0,13),_^=o1(R+B|0,18),v^=o1(b+E|0,7),P^=o1(v+b|0,9),E^=o1(P+v|0,13),b^=o1(E+P|0,18);Z[V++]=Q+c|0,Z[V++]=J+p|0,Z[V++]=U+W0|0,Z[V++]=q+m|0,Z[V++]=N+Y0|0,Z[V++]=A+U0|0,Z[V++]=H+y|0,Z[V++]=I+o|0,Z[V++]=w+B|0,Z[V++]=C+R|0,Z[V++]=D+_|0,Z[V++]=x+S|0,Z[V++]=h+v|0,Z[V++]=l+P|0,Z[V++]=u+E|0,Z[V++]=n+b|0}function eY(W,G,X,Y,Z){let V=Y+0,Q=Y+16*Z;for(let J=0;J<16;J++)X[Q+J]=W[G+(2*Z-1)*16+J];for(let J=0;J<Z;J++,V+=16,G+=16){if(Ik(X,Q,W,G,X,V),J>0)Q+=16;Ik(X,V,W,G+=16,X,Q)}}function wk(W,G,X){let Y=yH({dkLen:32,asyncTick:10,maxmem:1073742848},X),{N:Z,r:V,p:Q,dkLen:J,asyncTick:U,maxmem:q,onProgress:N}=Y;if(R9(Z),R9(V),R9(Q),R9(J),R9(U),R9(q),N!==void 0&&typeof N!=="function")throw Error("progressCb should be function");let A=128*V,H=A/4;if(Z<=1||(Z&Z-1)!==0||Z>=2**(A/8)||Z>4294967296)throw Error("Scrypt: N must be larger than 1, a power of 2, less than 2^(128 * r / 8) and less than 2^32");if(Q<0||Q>137438953440/A)throw Error("Scrypt: p must be a positive integer less than or equal to ((2^32 - 1) * 32) / (128 * r)");if(J<0||J>137438953440)throw Error("Scrypt: dkLen should be positive integer less than or equal to (2^32 - 1) * 32");let I=A*(Z+Q);if(I>q)throw Error(`Scrypt: parameters too large, ${I} (128 * r * (N + p)) > ${q} (maxmem)`);let w=TK(OJ,W,G,{c:1,dkLen:A*Q}),C=aY(w),D=aY(new Uint8Array(A*Z)),x=aY(new Uint8Array(A)),h=()=>{};if(N){let l=2*Z*Q,u=Math.max(Math.floor(l/1e4),1),n=0;h=()=>{if(n++,N&&(!(n%u)||n===l))N(n/l)}}return{N:Z,r:V,p:Q,dkLen:J,blockSize32:H,V:D,B32:C,B:w,tmp:x,blockMixCb:h,asyncTick:U}}function jk(W,G,X,Y,Z){let V=TK(OJ,W,X,{c:1,dkLen:G});return X.fill(0),Y.fill(0),Z.fill(0),V}function Ok(W,G,X){let{N:Y,r:Z,p:V,dkLen:Q,blockSize32:J,V:U,B32:q,B:N,tmp:A,blockMixCb:H}=wk(W,G,X);for(let I=0;I<V;I++){let w=J*I;for(let C=0;C<J;C++)U[C]=q[w+C];for(let C=0,D=0;C<Y-1;C++)eY(U,D,U,D+=J,Z),H();eY(U,(Y-1)*J,q,w,Z),H();for(let C=0;C<Y;C++){let D=q[w+J-16]%Y;for(let x=0;x<J;x++)A[x]=q[w+x]^U[D*J+x];eY(A,0,q,w,Z),H()}}return jk(W,Q,N,U,A)}async function Kk(W,G,X){let{N:Y,r:Z,p:V,dkLen:Q,blockSize32:J,V:U,B32:q,B:N,tmp:A,blockMixCb:H,asyncTick:I}=wk(W,G,X);for(let w=0;w<V;w++){let C=J*w;for(let x=0;x<J;x++)U[x]=q[C+x];let D=0;await _H(Y-1,I,()=>{eY(U,D,U,D+=J,Z),H()}),eY(U,(Y-1)*J,q,C,Z),H(),await _H(Y,I,()=>{let x=q[C+J-16]%Y;for(let h=0;h<J;h++)A[h]=q[C+h]^U[x*J+h];eY(A,0,q,C,Z),H()})}return jk(W,Q,N,U,A)}var Ck=!1,Dk=!1,Mk=async function(W,G,X,Y,Z,V,Q){return await Kk(W,G,{N:X,r:Y,p:Z,dkLen:V,onProgress:Q})},Tk=function(W,G,X,Y,Z,V){return Ok(W,G,{N:X,r:Y,p:Z,dkLen:V})},Pk=Mk,Rk=Tk;async function VW(W,G,X,Y,Z,V,Q){let J=R0(W,"passwd"),U=R0(G,"salt");return C0(await Pk(J,U,X,Y,Z,V,Q))}VW._=Mk;VW.lock=function(){Dk=!0};VW.register=function(W){if(Dk)throw Error("scrypt is locked");Pk=W};Object.freeze(VW);function QW(W,G,X,Y,Z,V){let Q=R0(W,"passwd"),J=R0(G,"salt");return C0(Rk(Q,J,X,Y,Z,V))}QW._=Tk;QW.lock=function(){Ck=!0};QW.register=function(W){if(Ck)throw Error("scryptSync is locked");Rk=W};Object.freeze(QW);var Lk=function(W){return OK("sha256").update(W).digest()},Bk=function(W){return OK("sha512").update(W).digest()},Ek=Lk,$k=Bk,Fk=!1,Sk=!1;function L9(W){let G=R0(W,"data");return C0(Ek(G))}L9._=Lk;L9.lock=function(){Fk=!0};L9.register=function(W){if(Fk)throw Error("sha256 is locked");Ek=W};Object.freeze(L9);function uH(W){let G=R0(W,"data");return C0($k(G))}uH._=Bk;uH.lock=function(){Sk=!0};uH.register=function(W){if(Sk)throw Error("sha512 is locked");$k=W};Object.freeze(L9);var BK={};qA(BK,{validateObject:()=>UW,utf8ToBytes:()=>xa,numberToVarBytesBE:()=>Fa,numberToHexUnpadded:()=>_k,numberToBytesLE:()=>fH,numberToBytesBE:()=>JW,hexToNumber:()=>RK,hexToBytes:()=>_G,equalBytes:()=>Sa,ensureBytes:()=>N5,createHmacDrbg:()=>LK,concatBytes:()=>WZ,bytesToNumberLE:()=>mH,bytesToNumberBE:()=>n4,bytesToHex:()=>kG,bitSet:()=>ya,bitMask:()=>CJ,bitLen:()=>ka,bitGet:()=>_a});/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var kk=BigInt(0),hH=BigInt(1),Ea=BigInt(2),bH=(W)=>W instanceof Uint8Array,$a=Array.from({length:256},(W,G)=>G.toString(16).padStart(2,"0"));function kG(W){if(!bH(W))throw Error("Uint8Array expected");let G="";for(let X=0;X<W.length;X++)G+=$a[W[X]];return G}function _k(W){let G=W.toString(16);return G.length&1?`0${G}`:G}function RK(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return BigInt(W===""?"0":`0x${W}`)}function _G(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);let G=W.length;if(G%2)throw Error("padded hex string expected, got unpadded hex of length "+G);let X=new Uint8Array(G/2);for(let Y=0;Y<X.length;Y++){let Z=Y*2,V=W.slice(Z,Z+2),Q=Number.parseInt(V,16);if(Number.isNaN(Q)||Q<0)throw Error("Invalid byte sequence");X[Y]=Q}return X}function n4(W){return RK(kG(W))}function mH(W){if(!bH(W))throw Error("Uint8Array expected");return RK(kG(Uint8Array.from(W).reverse()))}function JW(W,G){return _G(W.toString(16).padStart(G*2,"0"))}function fH(W,G){return JW(W,G).reverse()}function Fa(W){return _G(_k(W))}function N5(W,G,X){let Y;if(typeof G==="string")try{Y=_G(G)}catch(V){throw Error(`${W} must be valid hex string, got "${G}". Cause: ${V}`)}else if(bH(G))Y=Uint8Array.from(G);else throw Error(`${W} must be hex string or Uint8Array`);let Z=Y.length;if(typeof X==="number"&&Z!==X)throw Error(`${W} expected ${X} bytes, got ${Z}`);return Y}function WZ(...W){let G=new Uint8Array(W.reduce((Y,Z)=>Y+Z.length,0)),X=0;return W.forEach((Y)=>{if(!bH(Y))throw Error("Uint8Array expected");G.set(Y,X),X+=Y.length}),G}function Sa(W,G){if(W.length!==G.length)return!1;for(let X=0;X<W.length;X++)if(W[X]!==G[X])return!1;return!0}function xa(W){if(typeof W!=="string")throw Error(`utf8ToBytes expected string, got ${typeof W}`);return new Uint8Array(new TextEncoder().encode(W))}function ka(W){let G;for(G=0;W>kk;W>>=hH,G+=1);return G}function _a(W,G){return W>>BigInt(G)&hH}var ya=(W,G,X)=>{return W|(X?hH:kk)<<BigInt(G)},CJ=(W)=>(Ea<<BigInt(W-1))-hH,PK=(W)=>new Uint8Array(W),xk=(W)=>Uint8Array.from(W);function LK(W,G,X){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof G!=="number"||G<2)throw Error("qByteLen must be a number");if(typeof X!=="function")throw Error("hmacFn must be a function");let Y=PK(W),Z=PK(W),V=0,Q=()=>{Y.fill(1),Z.fill(0),V=0},J=(...A)=>X(Z,Y,...A),U=(A=PK())=>{if(Z=J(xk([0]),A),Y=J(),A.length===0)return;Z=J(xk([1]),A),Y=J()},q=()=>{if(V++>=1000)throw Error("drbg: tried 1000 values");let A=0,H=[];while(A<G){Y=J();let I=Y.slice();H.push(I),A+=Y.length}return WZ(...H)};return(A,H)=>{Q(),U(A);let I=void 0;while(!(I=H(q())))U();return Q(),I}}var va={bigint:(W)=>typeof W==="bigint",function:(W)=>typeof W==="function",boolean:(W)=>typeof W==="boolean",string:(W)=>typeof W==="string",stringOrUint8Array:(W)=>typeof W==="string"||W instanceof Uint8Array,isSafeInteger:(W)=>Number.isSafeInteger(W),array:(W)=>Array.isArray(W),field:(W,G)=>G.Fp.isValid(W),hash:(W)=>typeof W==="function"&&Number.isSafeInteger(W.outputLen)};function UW(W,G,X={}){let Y=(Z,V,Q)=>{let J=va[V];if(typeof J!=="function")throw Error(`Invalid validator "${V}", expected function`);let U=W[Z];if(Q&&U===void 0)return;if(!J(U,W))throw Error(`Invalid param ${String(Z)}=${U} (${typeof U}), expected ${V}`)};for(let[Z,V]of Object.entries(G))Y(Z,V,!1);for(let[Z,V]of Object.entries(X))Y(Z,V,!0);return W}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var l8=BigInt(0),$8=BigInt(1),yG=BigInt(2),ga=BigInt(3),EK=BigInt(4),yk=BigInt(5),vk=BigInt(8),ua=BigInt(9),ha=BigInt(16);function B9(W,G){let X=W%G;return X>=l8?X:G+X}function ba(W,G,X){if(X<=l8||G<l8)throw Error("Expected power/modulo > 0");if(X===$8)return l8;let Y=$8;while(G>l8){if(G&$8)Y=Y*W%X;W=W*W%X,G>>=$8}return Y}function H5(W,G,X){let Y=W;while(G-- >l8)Y*=Y,Y%=X;return Y}function cH(W,G){if(W===l8||G<=l8)throw Error(`invert: expected positive integers, got n=${W} mod=${G}`);let X=B9(W,G),Y=G,Z=l8,V=$8,Q=$8,J=l8;while(X!==l8){let q=Y/X,N=Y%X,A=Z-Q*q,H=V-J*q;Y=X,X=N,Z=Q,V=J,Q=A,J=H}if(Y!==$8)throw Error("invert: does not exist");return B9(Z,G)}function ma(W){let G=(W-$8)/yG,X,Y,Z;for(X=W-$8,Y=0;X%yG===l8;X/=yG,Y++);for(Z=yG;Z<W&&ba(Z,G,W)!==W-$8;Z++);if(Y===1){let Q=(W+$8)/EK;return function(U,q){let N=U.pow(q,Q);if(!U.eql(U.sqr(N),q))throw Error("Cannot find square root");return N}}let V=(X+$8)/yG;return function(J,U){if(J.pow(U,G)===J.neg(J.ONE))throw Error("Cannot find square root");let q=Y,N=J.pow(J.mul(J.ONE,Z),X),A=J.pow(U,V),H=J.pow(U,X);while(!J.eql(H,J.ONE)){if(J.eql(H,J.ZERO))return J.ZERO;let I=1;for(let C=J.sqr(H);I<q;I++){if(J.eql(C,J.ONE))break;C=J.sqr(C)}let w=J.pow(N,$8<<BigInt(q-I-1));N=J.sqr(w),A=J.mul(A,w),H=J.mul(H,N),q=I}return A}}function fa(W){if(W%EK===ga){let G=(W+$8)/EK;return function(Y,Z){let V=Y.pow(Z,G);if(!Y.eql(Y.sqr(V),Z))throw Error("Cannot find square root");return V}}if(W%vk===yk){let G=(W-yk)/vk;return function(Y,Z){let V=Y.mul(Z,yG),Q=Y.pow(V,G),J=Y.mul(Z,Q),U=Y.mul(Y.mul(J,yG),Q),q=Y.mul(J,Y.sub(U,Y.ONE));if(!Y.eql(Y.sqr(q),Z))throw Error("Cannot find square root");return q}}if(W%ha===ua);return ma(W)}var ca=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function $K(W){let G={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},X=ca.reduce((Y,Z)=>{return Y[Z]="function",Y},G);return UW(W,X)}function pa(W,G,X){if(X<l8)throw Error("Expected power > 0");if(X===l8)return W.ONE;if(X===$8)return G;let Y=W.ONE,Z=G;while(X>l8){if(X&$8)Y=W.mul(Y,Z);Z=W.sqr(Z),X>>=$8}return Y}function la(W,G){let X=Array(G.length),Y=G.reduce((V,Q,J)=>{if(W.is0(Q))return V;return X[J]=V,W.mul(V,Q)},W.ONE),Z=W.inv(Y);return G.reduceRight((V,Q,J)=>{if(W.is0(Q))return V;return X[J]=W.mul(V,X[J]),W.mul(V,Q)},Z),X}function FK(W,G){let X=G!==void 0?G:W.toString(2).length,Y=Math.ceil(X/8);return{nBitLength:X,nByteLength:Y}}function gk(W,G,X=!1,Y={}){if(W<=l8)throw Error(`Expected Field ORDER > 0, got ${W}`);let{nBitLength:Z,nByteLength:V}=FK(W,G);if(V>2048)throw Error("Field lengths over 2048 bytes are not supported");let Q=fa(W),J=Object.freeze({ORDER:W,BITS:Z,BYTES:V,MASK:CJ(Z),ZERO:l8,ONE:$8,create:(U)=>B9(U,W),isValid:(U)=>{if(typeof U!=="bigint")throw Error(`Invalid field element: expected bigint, got ${typeof U}`);return l8<=U&&U<W},is0:(U)=>U===l8,isOdd:(U)=>(U&$8)===$8,neg:(U)=>B9(-U,W),eql:(U,q)=>U===q,sqr:(U)=>B9(U*U,W),add:(U,q)=>B9(U+q,W),sub:(U,q)=>B9(U-q,W),mul:(U,q)=>B9(U*q,W),pow:(U,q)=>pa(J,U,q),div:(U,q)=>B9(U*cH(q,W),W),sqrN:(U)=>U*U,addN:(U,q)=>U+q,subN:(U,q)=>U-q,mulN:(U,q)=>U*q,inv:(U)=>cH(U,W),sqrt:Y.sqrt||((U)=>Q(J,U)),invertBatch:(U)=>la(J,U),cmov:(U,q,N)=>N?q:U,toBytes:(U)=>X?fH(U,V):JW(U,V),fromBytes:(U)=>{if(U.length!==V)throw Error(`Fp.fromBytes: expected ${V}, got ${U.length}`);return X?mH(U):n4(U)}});return Object.freeze(J)}function uk(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let G=W.toString(2).length;return Math.ceil(G/8)}function SK(W){let G=uk(W);return G+Math.ceil(G/2)}function hk(W,G,X=!1){let Y=W.length,Z=uk(G),V=SK(G);if(Y<16||Y<V||Y>1024)throw Error(`expected ${V}-1024 bytes of input, got ${Y}`);let Q=X?n4(W):mH(W),J=B9(Q,G-$8)+$8;return X?fH(J,Z):JW(J,Z)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var oa=BigInt(0),xK=BigInt(1);function bk(W,G){let X=(Z,V)=>{let Q=V.negate();return Z?Q:V},Y=(Z)=>{let V=Math.ceil(G/Z)+1,Q=2**(Z-1);return{windows:V,windowSize:Q}};return{constTimeNegate:X,unsafeLadder(Z,V){let Q=W.ZERO,J=Z;while(V>oa){if(V&xK)Q=Q.add(J);J=J.double(),V>>=xK}return Q},precomputeWindow(Z,V){let{windows:Q,windowSize:J}=Y(V),U=[],q=Z,N=q;for(let A=0;A<Q;A++){N=q,U.push(N);for(let H=1;H<J;H++)N=N.add(q),U.push(N);q=N.double()}return U},wNAF(Z,V,Q){let{windows:J,windowSize:U}=Y(Z),q=W.ZERO,N=W.BASE,A=BigInt(2**Z-1),H=2**Z,I=BigInt(Z);for(let w=0;w<J;w++){let C=w*U,D=Number(Q&A);if(Q>>=I,D>U)D-=H,Q+=xK;let x=C,h=C+Math.abs(D)-1,l=w%2!==0,u=D<0;if(D===0)N=N.add(X(l,V[x]));else q=q.add(X(u,V[h]))}return{p:q,f:N}},wNAFCached(Z,V,Q,J){let U=Z._WINDOW_SIZE||1,q=V.get(Z);if(!q){if(q=this.precomputeWindow(Z,U),U!==1)V.set(Z,J(q))}return this.wNAF(U,q,Q)}}}function kK(W){return $K(W.Fp),UW(W,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...FK(W.n,W.nBitLength),...W,...{p:W.Fp.ORDER}})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function na(W){let G=kK(W);UW(G,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:X,Fp:Y,a:Z}=G;if(X){if(!Y.eql(Z,Y.ZERO))throw Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof X!=="object"||typeof X.beta!=="bigint"||typeof X.splitScalar!=="function")throw Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...G})}var{bytesToNumberBE:ia,hexToBytes:ra}=BK,vG={Err:class extends Error{constructor(G=""){super(G)}},_parseInt(W){let{Err:G}=vG;if(W.length<2||W[0]!==2)throw new G("Invalid signature integer tag");let X=W[1],Y=W.subarray(2,X+2);if(!X||Y.length!==X)throw new G("Invalid signature integer: wrong length");if(Y[0]&128)throw new G("Invalid signature integer: negative");if(Y[0]===0&&!(Y[1]&128))throw new G("Invalid signature integer: unnecessary leading zero");return{d:ia(Y),l:W.subarray(X+2)}},toSig(W){let{Err:G}=vG,X=typeof W==="string"?ra(W):W;if(!(X instanceof Uint8Array))throw Error("ui8a expected");let Y=X.length;if(Y<2||X[0]!=48)throw new G("Invalid signature tag");if(X[1]!==Y-2)throw new G("Invalid signature: incorrect length");let{d:Z,l:V}=vG._parseInt(X.subarray(2)),{d:Q,l:J}=vG._parseInt(V);if(J.length)throw new G("Invalid signature: left bytes after parsing");return{r:Z,s:Q}},hexFromSig(W){let G=(q)=>Number.parseInt(q[0],16)&8?"00"+q:q,X=(q)=>{let N=q.toString(16);return N.length&1?`0${N}`:N},Y=G(X(W.s)),Z=G(X(W.r)),V=Y.length/2,Q=Z.length/2,J=X(V),U=X(Q);return`30${X(Q+V+4)}02${U}${Z}02${J}${Y}`}},i4=BigInt(0),E5=BigInt(1),ew0=BigInt(2),mk=BigInt(3),Wj0=BigInt(4);function aa(W){let G=na(W),{Fp:X}=G,Y=G.toBytes||((w,C,D)=>{let x=C.toAffine();return WZ(Uint8Array.from([4]),X.toBytes(x.x),X.toBytes(x.y))}),Z=G.fromBytes||((w)=>{let C=w.subarray(1),D=X.fromBytes(C.subarray(0,X.BYTES)),x=X.fromBytes(C.subarray(X.BYTES,2*X.BYTES));return{x:D,y:x}});function V(w){let{a:C,b:D}=G,x=X.sqr(w),h=X.mul(x,w);return X.add(X.add(h,X.mul(w,C)),D)}if(!X.eql(X.sqr(G.Gy),V(G.Gx)))throw Error("bad generator point: equation left != right");function Q(w){return typeof w==="bigint"&&i4<w&&w<G.n}function J(w){if(!Q(w))throw Error("Expected valid bigint: 0 < bigint < curve.n")}function U(w){let{allowedPrivateKeyLengths:C,nByteLength:D,wrapPrivateKey:x,n:h}=G;if(C&&typeof w!=="bigint"){if(w instanceof Uint8Array)w=kG(w);if(typeof w!=="string"||!C.includes(w.length))throw Error("Invalid key");w=w.padStart(D*2,"0")}let l;try{l=typeof w==="bigint"?w:n4(N5("private key",w,D))}catch(u){throw Error(`private key must be ${D} bytes, hex or bigint, not ${typeof w}`)}if(x)l=B9(l,h);return J(l),l}let q=new Map;function N(w){if(!(w instanceof A))throw Error("ProjectivePoint expected")}class A{constructor(w,C,D){if(this.px=w,this.py=C,this.pz=D,w==null||!X.isValid(w))throw Error("x required");if(C==null||!X.isValid(C))throw Error("y required");if(D==null||!X.isValid(D))throw Error("z required")}static fromAffine(w){let{x:C,y:D}=w||{};if(!w||!X.isValid(C)||!X.isValid(D))throw Error("invalid affine point");if(w instanceof A)throw Error("projective point not allowed");let x=(h)=>X.eql(h,X.ZERO);if(x(C)&&x(D))return A.ZERO;return new A(C,D,X.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(w){let C=X.invertBatch(w.map((D)=>D.pz));return w.map((D,x)=>D.toAffine(C[x])).map(A.fromAffine)}static fromHex(w){let C=A.fromAffine(Z(N5("pointHex",w)));return C.assertValidity(),C}static fromPrivateKey(w){return A.BASE.multiply(U(w))}_setWindowSize(w){this._WINDOW_SIZE=w,q.delete(this)}assertValidity(){if(this.is0()){if(G.allowInfinityPoint&&!X.is0(this.py))return;throw Error("bad point: ZERO")}let{x:w,y:C}=this.toAffine();if(!X.isValid(w)||!X.isValid(C))throw Error("bad point: x or y not FE");let D=X.sqr(C),x=V(w);if(!X.eql(D,x))throw Error("bad point: equation left != right");if(!this.isTorsionFree())throw Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:w}=this.toAffine();if(X.isOdd)return!X.isOdd(w);throw Error("Field doesn't support isOdd")}equals(w){N(w);let{px:C,py:D,pz:x}=this,{px:h,py:l,pz:u}=w,n=X.eql(X.mul(C,u),X.mul(h,x)),c=X.eql(X.mul(D,u),X.mul(l,x));return n&&c}negate(){return new A(this.px,X.neg(this.py),this.pz)}double(){let{a:w,b:C}=G,D=X.mul(C,mk),{px:x,py:h,pz:l}=this,u=X.ZERO,n=X.ZERO,c=X.ZERO,p=X.mul(x,x),W0=X.mul(h,h),m=X.mul(l,l),Y0=X.mul(x,h);return Y0=X.add(Y0,Y0),c=X.mul(x,l),c=X.add(c,c),u=X.mul(w,c),n=X.mul(D,m),n=X.add(u,n),u=X.sub(W0,n),n=X.add(W0,n),n=X.mul(u,n),u=X.mul(Y0,u),c=X.mul(D,c),m=X.mul(w,m),Y0=X.sub(p,m),Y0=X.mul(w,Y0),Y0=X.add(Y0,c),c=X.add(p,p),p=X.add(c,p),p=X.add(p,m),p=X.mul(p,Y0),n=X.add(n,p),m=X.mul(h,l),m=X.add(m,m),p=X.mul(m,Y0),u=X.sub(u,p),c=X.mul(m,W0),c=X.add(c,c),c=X.add(c,c),new A(u,n,c)}add(w){N(w);let{px:C,py:D,pz:x}=this,{px:h,py:l,pz:u}=w,n=X.ZERO,c=X.ZERO,p=X.ZERO,W0=G.a,m=X.mul(G.b,mk),Y0=X.mul(C,h),U0=X.mul(D,l),y=X.mul(x,u),o=X.add(C,D),B=X.add(h,l);o=X.mul(o,B),B=X.add(Y0,U0),o=X.sub(o,B),B=X.add(C,x);let R=X.add(h,u);return B=X.mul(B,R),R=X.add(Y0,y),B=X.sub(B,R),R=X.add(D,x),n=X.add(l,u),R=X.mul(R,n),n=X.add(U0,y),R=X.sub(R,n),p=X.mul(W0,B),n=X.mul(m,y),p=X.add(n,p),n=X.sub(U0,p),p=X.add(U0,p),c=X.mul(n,p),U0=X.add(Y0,Y0),U0=X.add(U0,Y0),y=X.mul(W0,y),B=X.mul(m,B),U0=X.add(U0,y),y=X.sub(Y0,y),y=X.mul(W0,y),B=X.add(B,y),Y0=X.mul(U0,B),c=X.add(c,Y0),Y0=X.mul(R,B),n=X.mul(o,n),n=X.sub(n,Y0),Y0=X.mul(o,U0),p=X.mul(R,p),p=X.add(p,Y0),new A(n,c,p)}subtract(w){return this.add(w.negate())}is0(){return this.equals(A.ZERO)}wNAF(w){return I.wNAFCached(this,q,w,(C)=>{let D=X.invertBatch(C.map((x)=>x.pz));return C.map((x,h)=>x.toAffine(D[h])).map(A.fromAffine)})}multiplyUnsafe(w){let C=A.ZERO;if(w===i4)return C;if(J(w),w===E5)return this;let{endo:D}=G;if(!D)return I.unsafeLadder(this,w);let{k1neg:x,k1:h,k2neg:l,k2:u}=D.splitScalar(w),n=C,c=C,p=this;while(h>i4||u>i4){if(h&E5)n=n.add(p);if(u&E5)c=c.add(p);p=p.double(),h>>=E5,u>>=E5}if(x)n=n.negate();if(l)c=c.negate();return c=new A(X.mul(c.px,D.beta),c.py,c.pz),n.add(c)}multiply(w){J(w);let C=w,D,x,{endo:h}=G;if(h){let{k1neg:l,k1:u,k2neg:n,k2:c}=h.splitScalar(C),{p,f:W0}=this.wNAF(u),{p:m,f:Y0}=this.wNAF(c);p=I.constTimeNegate(l,p),m=I.constTimeNegate(n,m),m=new A(X.mul(m.px,h.beta),m.py,m.pz),D=p.add(m),x=W0.add(Y0)}else{let{p:l,f:u}=this.wNAF(C);D=l,x=u}return A.normalizeZ([D,x])[0]}multiplyAndAddUnsafe(w,C,D){let x=A.BASE,h=(u,n)=>n===i4||n===E5||!u.equals(x)?u.multiplyUnsafe(n):u.multiply(n),l=h(this,C).add(h(w,D));return l.is0()?void 0:l}toAffine(w){let{px:C,py:D,pz:x}=this,h=this.is0();if(w==null)w=h?X.ONE:X.inv(x);let l=X.mul(C,w),u=X.mul(D,w),n=X.mul(x,w);if(h)return{x:X.ZERO,y:X.ZERO};if(!X.eql(n,X.ONE))throw Error("invZ was invalid");return{x:l,y:u}}isTorsionFree(){let{h:w,isTorsionFree:C}=G;if(w===E5)return!0;if(C)return C(A,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:w,clearCofactor:C}=G;if(w===E5)return this;if(C)return C(A,this);return this.multiplyUnsafe(G.h)}toRawBytes(w=!0){return this.assertValidity(),Y(A,this,w)}toHex(w=!0){return kG(this.toRawBytes(w))}}A.BASE=new A(G.Gx,G.Gy,X.ONE),A.ZERO=new A(X.ZERO,X.ONE,X.ZERO);let H=G.nBitLength,I=bk(A,G.endo?Math.ceil(H/2):H);return{CURVE:G,ProjectivePoint:A,normPrivateKeyToScalar:U,weierstrassEquation:V,isWithinCurveOrder:Q}}function sa(W){let G=kK(W);return UW(G,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...G})}function fk(W){let G=sa(W),{Fp:X,n:Y}=G,Z=X.BYTES+1,V=2*X.BYTES+1;function Q(R){return i4<R&&R<X.ORDER}function J(R){return B9(R,Y)}function U(R){return cH(R,Y)}let{ProjectivePoint:q,normPrivateKeyToScalar:N,weierstrassEquation:A,isWithinCurveOrder:H}=aa({...G,toBytes(R,_,S){let v=_.toAffine(),P=X.toBytes(v.x),E=WZ;if(S)return E(Uint8Array.from([_.hasEvenY()?2:3]),P);else return E(Uint8Array.from([4]),P,X.toBytes(v.y))},fromBytes(R){let _=R.length,S=R[0],v=R.subarray(1);if(_===Z&&(S===2||S===3)){let P=n4(v);if(!Q(P))throw Error("Point is not on curve");let E=A(P),b=X.sqrt(E),k=(b&E5)===E5;if((S&1)===1!==k)b=X.neg(b);return{x:P,y:b}}else if(_===V&&S===4){let P=X.fromBytes(v.subarray(0,X.BYTES)),E=X.fromBytes(v.subarray(X.BYTES,2*X.BYTES));return{x:P,y:E}}else throw Error(`Point of length ${_} was invalid. Expected ${Z} compressed bytes or ${V} uncompressed bytes`)}}),I=(R)=>kG(JW(R,G.nByteLength));function w(R){let _=Y>>E5;return R>_}function C(R){return w(R)?J(-R):R}let D=(R,_,S)=>n4(R.slice(_,S));class x{constructor(R,_,S){this.r=R,this.s=_,this.recovery=S,this.assertValidity()}static fromCompact(R){let _=G.nByteLength;return R=N5("compactSignature",R,_*2),new x(D(R,0,_),D(R,_,2*_))}static fromDER(R){let{r:_,s:S}=vG.toSig(N5("DER",R));return new x(_,S)}assertValidity(){if(!H(this.r))throw Error("r must be 0 < r < CURVE.n");if(!H(this.s))throw Error("s must be 0 < s < CURVE.n")}addRecoveryBit(R){return new x(this.r,this.s,R)}recoverPublicKey(R){let{r:_,s:S,recovery:v}=this,P=p(N5("msgHash",R));if(v==null||![0,1,2,3].includes(v))throw Error("recovery id invalid");let E=v===2||v===3?_+G.n:_;if(E>=X.ORDER)throw Error("recovery id 2 or 3 invalid");let b=(v&1)===0?"02":"03",k=q.fromHex(b+I(E)),f=U(E),e=J(-P*f),q0=J(S*f),Q0=q.BASE.multiplyAndAddUnsafe(k,e,q0);if(!Q0)throw Error("point at infinify");return Q0.assertValidity(),Q0}hasHighS(){return w(this.s)}normalizeS(){return this.hasHighS()?new x(this.r,J(-this.s),this.recovery):this}toDERRawBytes(){return _G(this.toDERHex())}toDERHex(){return vG.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return _G(this.toCompactHex())}toCompactHex(){return I(this.r)+I(this.s)}}let h={isValidPrivateKey(R){try{return N(R),!0}catch(_){return!1}},normPrivateKeyToScalar:N,randomPrivateKey:()=>{let R=SK(G.n);return hk(G.randomBytes(R),G.n)},precompute(R=8,_=q.BASE){return _._setWindowSize(R),_.multiply(BigInt(3)),_}};function l(R,_=!0){return q.fromPrivateKey(R).toRawBytes(_)}function u(R){let _=R instanceof Uint8Array,S=typeof R==="string",v=(_||S)&&R.length;if(_)return v===Z||v===V;if(S)return v===2*Z||v===2*V;if(R instanceof q)return!0;return!1}function n(R,_,S=!0){if(u(R))throw Error("first arg must be private key");if(!u(_))throw Error("second arg must be public key");return q.fromHex(_).multiply(N(R)).toRawBytes(S)}let c=G.bits2int||function(R){let _=n4(R),S=R.length*8-G.nBitLength;return S>0?_>>BigInt(S):_},p=G.bits2int_modN||function(R){return J(c(R))},W0=CJ(G.nBitLength);function m(R){if(typeof R!=="bigint")throw Error("bigint expected");if(!(i4<=R&&R<W0))throw Error(`bigint expected < 2^${G.nBitLength}`);return JW(R,G.nByteLength)}function Y0(R,_,S=U0){if(["recovered","canonical"].some((x0)=>(x0 in S)))throw Error("sign() legacy options not supported");let{hash:v,randomBytes:P}=G,{lowS:E,prehash:b,extraEntropy:k}=S;if(E==null)E=!0;if(R=N5("msgHash",R),b)R=N5("prehashed msgHash",v(R));let f=p(R),e=N(_),q0=[m(e),m(f)];if(k!=null){let x0=k===!0?P(X.BYTES):k;q0.push(N5("extraEntropy",x0))}let Q0=WZ(...q0),$0=f;function D0(x0){let N1=c(x0);if(!H(N1))return;let U1=U(N1),J0=q.BASE.multiply(N1).toAffine(),B0=J(J0.x);if(B0===i4)return;let h0=J(U1*J($0+B0*e));if(h0===i4)return;let Y1=(J0.x===B0?0:2)|Number(J0.y&E5),w8=h0;if(E&&w(h0))w8=C(h0),Y1^=1;return new x(B0,w8,Y1)}return{seed:Q0,k2sig:D0}}let U0={lowS:G.lowS,prehash:!1},y={lowS:G.lowS,prehash:!1};function o(R,_,S=U0){let{seed:v,k2sig:P}=Y0(R,_,S),E=G;return LK(E.hash.outputLen,E.nByteLength,E.hmac)(v,P)}q.BASE._setWindowSize(8);function B(R,_,S,v=y){let P=R;if(_=N5("msgHash",_),S=N5("publicKey",S),"strict"in v)throw Error("options.strict was renamed to lowS");let{lowS:E,prehash:b}=v,k=void 0,f;try{if(typeof P==="string"||P instanceof Uint8Array)try{k=x.fromDER(P)}catch(J0){if(!(J0 instanceof vG.Err))throw J0;k=x.fromCompact(P)}else if(typeof P==="object"&&typeof P.r==="bigint"&&typeof P.s==="bigint"){let{r:J0,s:B0}=P;k=new x(J0,B0)}else throw Error("PARSE");f=q.fromHex(S)}catch(J0){if(J0.message==="PARSE")throw Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(E&&k.hasHighS())return!1;if(b)_=G.hash(_);let{r:e,s:q0}=k,Q0=p(_),$0=U(q0),D0=J(Q0*$0),x0=J(e*$0),N1=q.BASE.multiplyAndAddUnsafe(f,D0,x0)?.toAffine();if(!N1)return!1;return J(N1.x)===e}return{CURVE:G,getPublicKey:l,getSharedSecret:n,sign:o,verify:B,ProjectivePoint:q,Signature:x,utils:h}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function ta(W){return{hash:W,hmac:(G,...X)=>KJ(W,G,cx(...X)),randomBytes:px}}function ck(W,G){let X=(Y)=>fk({...W,...ta(Y)});return Object.freeze({...X(G),create:X})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var dk=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),pk=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),ea=BigInt(1),_K=BigInt(2),lk=(W,G)=>(W+G/_K)/G;function Ws(W){let G=dk,X=BigInt(3),Y=BigInt(6),Z=BigInt(11),V=BigInt(22),Q=BigInt(23),J=BigInt(44),U=BigInt(88),q=W*W*W%G,N=q*q*W%G,A=H5(N,X,G)*N%G,H=H5(A,X,G)*N%G,I=H5(H,_K,G)*q%G,w=H5(I,Z,G)*I%G,C=H5(w,V,G)*w%G,D=H5(C,J,G)*C%G,x=H5(D,U,G)*D%G,h=H5(x,J,G)*C%G,l=H5(h,X,G)*N%G,u=H5(l,Q,G)*w%G,n=H5(u,Y,G)*q%G,c=H5(n,_K,G);if(!yK.eql(yK.sqr(c),W))throw Error("Cannot find square root");return c}var yK=gk(dk,void 0,void 0,{sqrt:Ws}),r4=ck({a:BigInt(0),b:BigInt(7),Fp:yK,n:pk,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:(W)=>{let G=pk,X=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),Y=-ea*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),Z=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),V=X,Q=BigInt("0x100000000000000000000000000000000"),J=lk(V*W,G),U=lk(-Y*W,G),q=B9(W-J*X-U*Z,G),N=B9(-J*Y-U*V,G),A=q>Q,H=N>Q;if(A)q=G-q;if(H)N=G-N;if(q>Q||N>Q)throw Error("splitScalar: Endomorphism failed, k="+W);return{k1neg:A,k1:q,k2neg:H,k2:N}}}},OJ),qj0=BigInt(0);var Nj0=r4.ProjectivePoint;var vK="0x0000000000000000000000000000000000000000";var pH="0x0000000000000000000000000000000000000000000000000000000000000000";var gK=`\x19Ethereum Signed Message:
|
|
249
|
+
`;var ok=BigInt(0),nk=BigInt(1),ik=BigInt(2),rk=BigInt(27),ak=BigInt(28),lH=BigInt(35),GZ={};function sk(W){return q5(J8(W),32)}class K8{#W;#G;#X;#Y;get r(){return this.#W}set r(W){s(d4(W)===32,"invalid r","value",W),this.#W=C0(W)}get s(){return s(parseInt(this.#G.substring(0,3))<8,"non-canonical s; use ._s","s",this.#G),this.#G}set s(W){s(d4(W)===32,"invalid s","value",W),this.#G=C0(W)}get _s(){return this.#G}isValid(){return parseInt(this.#G.substring(0,3))<8}get v(){return this.#X}set v(W){let G=i8(W,"value");s(G===27||G===28,"invalid v","v",W),this.#X=G}get networkV(){return this.#Y}get legacyChainId(){let W=this.networkV;if(W==null)return null;return K8.getChainId(W)}get yParity(){return this.v===27?0:1}get yParityAndS(){let W=R0(this.s);if(this.yParity)W[0]|=128;return C0(W)}get compactSerialized(){return s1([this.r,this.yParityAndS])}get serialized(){return s1([this.r,this.s,this.yParity?"0x1c":"0x1b"])}constructor(W,G,X,Y){l4(W,GZ,"Signature"),this.#W=G,this.#G=X,this.#X=Y,this.#Y=null}[Symbol.for("nodejs.util.inspect.custom")](){return`Signature { r: "${this.r}", s: "${this._s}"${this.isValid()?"":', valid: "false"'}, yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){let W=new K8(GZ,this.r,this._s,this.v);if(this.networkV)W.#Y=this.networkV;return W}toJSON(){let W=this.networkV;return{_type:"signature",networkV:W!=null?W.toString():null,r:this.r,s:this._s,v:this.v}}static getChainId(W){let G=u1(W,"v");if(G==rk||G==ak)return ok;return s(G>=lH,"invalid EIP-155 v","v",W),(G-lH)/ik}static getChainIdV(W,G){return u1(W)*ik+BigInt(35+G-27)}static getNormalizedV(W){let G=u1(W);if(G===ok||G===rk)return 27;if(G===nk||G===ak)return 28;return s(G>=lH,"invalid v","v",W),G&nk?27:28}static from(W){function G(U,q){s(U,q,"signature",W)}if(W==null)return new K8(GZ,pH,pH,27);if(typeof W==="string"){let U=R0(W,"signature");if(U.length===64){let q=C0(U.slice(0,32)),N=U.slice(32,64),A=N[0]&128?28:27;return N[0]&=127,new K8(GZ,q,C0(N),A)}if(U.length===65){let q=C0(U.slice(0,32)),N=C0(U.slice(32,64)),A=K8.getNormalizedV(U[64]);return new K8(GZ,q,N,A)}G(!1,"invalid raw signature length")}if(W instanceof K8)return W.clone();let X=W.r;G(X!=null,"missing r");let Y=sk(X),Z=function(U,q){if(U!=null)return sk(U);if(q!=null){G(T9(q,32),"invalid yParityAndS");let N=R0(q);return N[0]&=127,C0(N)}G(!1,"missing s")}(W.s,W.yParityAndS),{networkV:V,v:Q}=function(U,q,N){if(U!=null){let A=u1(U);return{networkV:A>=lH?A:void 0,v:K8.getNormalizedV(A)}}if(q!=null)return G(T9(q,32),"invalid yParityAndS"),{v:R0(q)[0]&128?28:27};if(N!=null){switch(i8(N,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}G(!1,"invalid yParity")}G(!1,"missing v")}(W.v,W.yParityAndS,W.yParity),J=new K8(GZ,Y,Z,Q);if(V)J.#Y=V;return G(W.yParity==null||i8(W.yParity,"sig.yParity")===J.yParity,"yParity mismatch"),G(W.yParityAndS==null||W.yParityAndS===J.yParityAndS,"yParityAndS mismatch"),J}}class d8{#W;constructor(W){s(d4(W)===32,"invalid private key","privateKey","[REDACTED]"),this.#W=C0(W)}get privateKey(){return this.#W}get publicKey(){return d8.computePublicKey(this.#W)}get compressedPublicKey(){return d8.computePublicKey(this.#W,!0)}sign(W){s(d4(W)===32,"invalid digest length","digest",W);let G=r4.sign(Y7(W),Y7(this.#W),{lowS:!0});return K8.from({r:Z7(G.r,32),s:Z7(G.s,32),v:G.recovery?28:27})}computeSharedSecret(W){let G=d8.computePublicKey(W);return C0(r4.getSharedSecret(Y7(this.#W),R0(G),!1))}static computePublicKey(W,G){let X=R0(W,"key");if(X.length===32){let Z=r4.getPublicKey(X,!!G);return C0(Z)}if(X.length===64){let Z=new Uint8Array(65);Z[0]=4,Z.set(X,1),X=Z}let Y=r4.ProjectivePoint.fromHex(X);return C0(Y.toRawBytes(G))}static recoverPublicKey(W,G){s(d4(W)===32,"invalid digest length","digest",W);let X=K8.from(G),Y=r4.Signature.fromCompact(Y7(s1([X.r,X.s])));Y=Y.addRecoveryBit(X.yParity);let Z=Y.recoverPublicKey(Y7(W));return s(Z!=null,"invalid signature for digest","signature",G),"0x"+Z.toHex(!1)}static addPoints(W,G,X){let Y=r4.ProjectivePoint.fromHex(d8.computePublicKey(W).substring(2)),Z=r4.ProjectivePoint.fromHex(d8.computePublicKey(G).substring(2));return"0x"+Y.add(Z).toHex(!!X)}}var Gs=BigInt(0),Xs=BigInt(36);function tk(W){W=W.toLowerCase();let G=W.substring(2).split(""),X=new Uint8Array(40);for(let Z=0;Z<40;Z++)X[Z]=G[Z].charCodeAt(0);let Y=R0(X8(X));for(let Z=0;Z<40;Z+=2){if(Y[Z>>1]>>4>=8)G[Z]=G[Z].toUpperCase();if((Y[Z>>1]&15)>=8)G[Z+1]=G[Z+1].toUpperCase()}return"0x"+G.join("")}var uK={};for(let W=0;W<10;W++)uK[String(W)]=String(W);for(let W=0;W<26;W++)uK[String.fromCharCode(65+W)]=String(10+W);var ek=15;function Ys(W){W=W.toUpperCase(),W=W.substring(4)+W.substring(0,2)+"00";let G=W.split("").map((Y)=>{return uK[Y]}).join("");while(G.length>=ek){let Y=G.substring(0,ek);G=parseInt(Y,10)%97+G.substring(Y.length)}let X=String(98-parseInt(G,10)%97);while(X.length<2)X="0"+X;return X}var Zs=function(){let W={};for(let G=0;G<36;G++){let X="0123456789abcdefghijklmnopqrstuvwxyz"[G];W[X]=BigInt(G)}return W}();function Vs(W){W=W.toLowerCase();let G=Gs;for(let X=0;X<W.length;X++)G=G*Xs+Zs[W[X]];return G}function f1(W){if(s(typeof W==="string","invalid address","address",W),W.match(/^(0x)?[0-9a-fA-F]{40}$/)){if(!W.startsWith("0x"))W="0x"+W;let G=tk(W);return s(!W.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||G===W,"bad address checksum","address",W),G}if(W.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){s(W.substring(2,4)===Ys(W),"bad icap checksum","address",W);let G=Vs(W.substring(4)).toString(16);while(G.length<40)G="0"+G;return tk("0x"+G)}s(!1,"invalid address","address",W)}function bK(W){return W&&typeof W.getAddress==="function"}async function hK(W,G){let X=await G;if(X==null||X==="0x0000000000000000000000000000000000000000")t0(typeof W!=="string","unconfigured name","UNCONFIGURED_NAME",{value:W}),s(!1,"invalid AddressLike value; did not resolve to a value address","target",W);return f1(X)}function a4(W,G){if(typeof W==="string"){if(W.match(/^0x[0-9a-f]{40}$/i))return f1(W);return t0(G!=null,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),hK(W,G.resolveName(W))}else if(bK(W))return hK(W,W.getAddress());else if(W&&typeof W.then==="function")return hK(W,W);s(!1,"unsupported addressable value","target",W)}function mK(W,G){return{address:f1(W),storageKeys:G.map((X,Y)=>{return s(T9(X,32),"invalid slot",`storageKeys[${Y}]`,X),X.toLowerCase()})}}function gG(W){if(Array.isArray(W))return W.map((X,Y)=>{if(Array.isArray(X))return s(X.length===2,"invalid slot set",`value[${Y}]`,X),mK(X[0],X[1]);return s(X!=null&&typeof X==="object","invalid address-slot set","value",W),mK(X.address,X.storageKeys)});s(W!=null&&typeof W==="object","invalid access list","value",W);let G=Object.keys(W).map((X)=>{let Y=W[X].reduce((Z,V)=>{return Z[V]=!0,Z},{});return mK(X,Object.keys(Y).sort())});return G.sort((X,Y)=>X.address.localeCompare(Y.address)),G}function W_(W){return{address:f1(W.address),nonce:u1(W.nonce!=null?W.nonce:0),chainId:u1(W.chainId!=null?W.chainId:0),signature:K8.from(W.signature)}}function s4(W){let G;if(typeof W==="string")G=d8.computePublicKey(W,!1);else G=W.publicKey;return f1(X8("0x"+G.substring(4)).substring(26))}function DJ(W,G){return s4(d8.recoverPublicKey(W,G))}var r8=BigInt(0),Us=BigInt(2),qs=BigInt(27),Ns=BigInt(28),Hs=BigInt(35),As=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),fK=131072;function zs(W){return{blobToKzgCommitment:(Y)=>{if("computeBlobProof"in W){if("blobToKzgCommitment"in W&&typeof W.blobToKzgCommitment==="function")return R0(W.blobToKzgCommitment(C0(Y)))}else if("blobToKzgCommitment"in W&&typeof W.blobToKzgCommitment==="function")return R0(W.blobToKzgCommitment(Y));if("blobToKZGCommitment"in W&&typeof W.blobToKZGCommitment==="function")return R0(W.blobToKZGCommitment(C0(Y)));s(!1,"unsupported KZG library","kzg",W)},computeBlobKzgProof:(Y,Z)=>{if("computeBlobProof"in W&&typeof W.computeBlobProof==="function")return R0(W.computeBlobProof(C0(Y),C0(Z)));if("computeBlobKzgProof"in W&&typeof W.computeBlobKzgProof==="function")return W.computeBlobKzgProof(Y,Z);if("computeBlobKZGProof"in W&&typeof W.computeBlobKZGProof==="function")return R0(W.computeBlobKZGProof(C0(Y),C0(Z)));s(!1,"unsupported KZG library","kzg",W)}}}function G_(W,G){let X=W.toString(16);while(X.length<2)X="0"+X;return X+=L9(G).substring(4),"0x"+X}function XZ(W){if(W==="0x")return null;return f1(W)}function dH(W,G){try{return gG(W)}catch(X){s(!1,X.message,G,W)}}function Is(W,G){try{if(!Array.isArray(W))throw Error("authorizationList: invalid array");let X=[];for(let Y=0;Y<W.length;Y++){let Z=W[Y];if(!Array.isArray(Z))throw Error(`authorization[${Y}]: invalid array`);if(Z.length!==6)throw Error(`authorization[${Y}]: wrong length`);if(!Z[1])throw Error(`authorization[${Y}]: null address`);X.push({address:XZ(Z[1]),nonce:Y8(Z[2],"nonce"),chainId:Y8(Z[0],"chainId"),signature:K8.from({yParity:uG(Z[3],"yParity"),r:q5(Z[4],32),s:q5(Z[5],32)})})}return X}catch(X){s(!1,X.message,G,W)}}function uG(W,G){if(W==="0x")return 0;return i8(W,G)}function Y8(W,G){if(W==="0x")return r8;let X=u1(W,G);return s(X<=As,"value exceeds uint size",G,X),X}function h1(W,G){let X=u1(W,"value"),Y=J8(X);return s(Y.length<=32,"value too large",`tx.${G}`,X),Y}function oH(W){return gG(W).map((G)=>[G.address,G.storageKeys])}function ws(W){return W.map((G)=>{return[h1(G.chainId,"chainId"),G.address,h1(G.nonce,"nonce"),h1(G.signature.yParity,"yParity"),J8(G.signature.r),J8(G.signature.s)]})}function js(W,G){s(Array.isArray(W),`invalid ${G}`,"value",W);for(let X=0;X<W.length;X++)s(T9(W[X],32),"invalid ${ param } hash",`value[${X}]`,W[X]);return W}function Os(W){let G=WW(W);s(Array.isArray(G)&&(G.length===9||G.length===6),"invalid field count for legacy transaction","data",W);let X={type:0,nonce:uG(G[0],"nonce"),gasPrice:Y8(G[1],"gasPrice"),gasLimit:Y8(G[2],"gasLimit"),to:XZ(G[3]),value:Y8(G[4],"value"),data:C0(G[5]),chainId:r8};if(G.length===6)return X;let Y=Y8(G[6],"v"),Z=Y8(G[7],"r"),V=Y8(G[8],"s");if(Z===r8&&V===r8)X.chainId=Y;else{let Q=(Y-Hs)/Us;if(Q<r8)Q=r8;X.chainId=Q,s(Q!==r8||(Y===qs||Y===Ns),"non-canonical legacy v","v",G[6]),X.signature=K8.from({r:q5(G[7],32),s:q5(G[8],32),v:Y})}return X}function Ks(W,G){let X=[h1(W.nonce,"nonce"),h1(W.gasPrice||0,"gasPrice"),h1(W.gasLimit,"gasLimit"),W.to||"0x",h1(W.value,"value"),W.data],Y=r8;if(W.chainId!=r8)Y=u1(W.chainId,"tx.chainId"),s(!G||G.networkV==null||G.legacyChainId===Y,"tx.chainId/sig.v mismatch","sig",G);else if(W.signature){let V=W.signature.legacyChainId;if(V!=null)Y=V}if(!G){if(Y!==r8)X.push(J8(Y)),X.push("0x"),X.push("0x");return R5(X)}let Z=BigInt(27+G.yParity);if(Y!==r8)Z=K8.getChainIdV(Y,G.v);else if(BigInt(G.v)!==Z)s(!1,"tx.chainId/sig.v mismatch","sig",G);return X.push(J8(Z)),X.push(J8(G.r)),X.push(J8(G.s)),R5(X)}function nH(W,G){let X;try{if(X=uG(G[0],"yParity"),X!==0&&X!==1)throw Error("bad yParity")}catch(Q){s(!1,"invalid yParity","yParity",G[0])}let Y=q5(G[1],32),Z=q5(G[2],32),V=K8.from({r:Y,s:Z,yParity:X});W.signature=V}function Cs(W){let G=WW(R0(W).slice(1));s(Array.isArray(G)&&(G.length===9||G.length===12),"invalid field count for transaction type: 2","data",C0(W));let X={type:2,chainId:Y8(G[0],"chainId"),nonce:uG(G[1],"nonce"),maxPriorityFeePerGas:Y8(G[2],"maxPriorityFeePerGas"),maxFeePerGas:Y8(G[3],"maxFeePerGas"),gasPrice:null,gasLimit:Y8(G[4],"gasLimit"),to:XZ(G[5]),value:Y8(G[6],"value"),data:C0(G[7]),accessList:dH(G[8],"accessList")};if(G.length===9)return X;return nH(X,G.slice(9)),X}function Ds(W,G){let X=[h1(W.chainId,"chainId"),h1(W.nonce,"nonce"),h1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),h1(W.maxFeePerGas||0,"maxFeePerGas"),h1(W.gasLimit,"gasLimit"),W.to||"0x",h1(W.value,"value"),W.data,oH(W.accessList||[])];if(G)X.push(h1(G.yParity,"yParity")),X.push(J8(G.r)),X.push(J8(G.s));return s1(["0x02",R5(X)])}function Ms(W){let G=WW(R0(W).slice(1));s(Array.isArray(G)&&(G.length===8||G.length===11),"invalid field count for transaction type: 1","data",C0(W));let X={type:1,chainId:Y8(G[0],"chainId"),nonce:uG(G[1],"nonce"),gasPrice:Y8(G[2],"gasPrice"),gasLimit:Y8(G[3],"gasLimit"),to:XZ(G[4]),value:Y8(G[5],"value"),data:C0(G[6]),accessList:dH(G[7],"accessList")};if(G.length===8)return X;return nH(X,G.slice(8)),X}function Ts(W,G){let X=[h1(W.chainId,"chainId"),h1(W.nonce,"nonce"),h1(W.gasPrice||0,"gasPrice"),h1(W.gasLimit,"gasLimit"),W.to||"0x",h1(W.value,"value"),W.data,oH(W.accessList||[])];if(G)X.push(h1(G.yParity,"recoveryParam")),X.push(J8(G.r)),X.push(J8(G.s));return s1(["0x01",R5(X)])}function Ps(W){let G=WW(R0(W).slice(1)),X="3",Y=null;if(G.length===4&&Array.isArray(G[0])){X="3 (network format)";let V=G[1],Q=G[2],J=G[3];s(Array.isArray(V),"invalid network format: blobs not an array","fields[1]",V),s(Array.isArray(Q),"invalid network format: commitments not an array","fields[2]",Q),s(Array.isArray(J),"invalid network format: proofs not an array","fields[3]",J),s(V.length===Q.length,"invalid network format: blobs/commitments length mismatch","fields",G),s(V.length===J.length,"invalid network format: blobs/proofs length mismatch","fields",G),Y=[];for(let U=0;U<G[1].length;U++)Y.push({data:V[U],commitment:Q[U],proof:J[U]});G=G[0]}s(Array.isArray(G)&&(G.length===11||G.length===14),`invalid field count for transaction type: ${X}`,"data",C0(W));let Z={type:3,chainId:Y8(G[0],"chainId"),nonce:uG(G[1],"nonce"),maxPriorityFeePerGas:Y8(G[2],"maxPriorityFeePerGas"),maxFeePerGas:Y8(G[3],"maxFeePerGas"),gasPrice:null,gasLimit:Y8(G[4],"gasLimit"),to:XZ(G[5]),value:Y8(G[6],"value"),data:C0(G[7]),accessList:dH(G[8],"accessList"),maxFeePerBlobGas:Y8(G[9],"maxFeePerBlobGas"),blobVersionedHashes:G[10]};if(Y)Z.blobs=Y;s(Z.to!=null,`invalid address for transaction type: ${X}`,"data",W),s(Array.isArray(Z.blobVersionedHashes),"invalid blobVersionedHashes: must be an array","data",W);for(let V=0;V<Z.blobVersionedHashes.length;V++)s(T9(Z.blobVersionedHashes[V],32),`invalid blobVersionedHash at index ${V}: must be length 32`,"data",W);if(G.length===11)return Z;return nH(Z,G.slice(11)),Z}function Rs(W,G,X){let Y=[h1(W.chainId,"chainId"),h1(W.nonce,"nonce"),h1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),h1(W.maxFeePerGas||0,"maxFeePerGas"),h1(W.gasLimit,"gasLimit"),W.to||vK,h1(W.value,"value"),W.data,oH(W.accessList||[]),h1(W.maxFeePerBlobGas||0,"maxFeePerBlobGas"),js(W.blobVersionedHashes||[],"blobVersionedHashes")];if(G){if(Y.push(h1(G.yParity,"yParity")),Y.push(J8(G.r)),Y.push(J8(G.s)),X)return s1(["0x03",R5([Y,X.map((Z)=>Z.data),X.map((Z)=>Z.commitment),X.map((Z)=>Z.proof)])])}return s1(["0x03",R5(Y)])}function Ls(W){let G=WW(R0(W).slice(1));s(Array.isArray(G)&&(G.length===10||G.length===13),"invalid field count for transaction type: 4","data",C0(W));let X={type:4,chainId:Y8(G[0],"chainId"),nonce:uG(G[1],"nonce"),maxPriorityFeePerGas:Y8(G[2],"maxPriorityFeePerGas"),maxFeePerGas:Y8(G[3],"maxFeePerGas"),gasPrice:null,gasLimit:Y8(G[4],"gasLimit"),to:XZ(G[5]),value:Y8(G[6],"value"),data:C0(G[7]),accessList:dH(G[8],"accessList"),authorizationList:Is(G[9],"authorizationList")};if(G.length===10)return X;return nH(X,G.slice(10)),X}function Bs(W,G){let X=[h1(W.chainId,"chainId"),h1(W.nonce,"nonce"),h1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),h1(W.maxFeePerGas||0,"maxFeePerGas"),h1(W.gasLimit,"gasLimit"),W.to||"0x",h1(W.value,"value"),W.data,oH(W.accessList||[]),ws(W.authorizationList||[])];if(G)X.push(h1(G.yParity,"yParity")),X.push(J8(G.r)),X.push(J8(G.s));return s1(["0x04",R5(X)])}class a9{#W;#G;#X;#Y;#U;#q;#N;#H;#A;#z;#I;#w;#J;#V;#Z;#Q;#j;get type(){return this.#W}set type(W){switch(W){case null:this.#W=null;break;case 0:case"legacy":this.#W=0;break;case 1:case"berlin":case"eip-2930":this.#W=1;break;case 2:case"london":case"eip-1559":this.#W=2;break;case 3:case"cancun":case"eip-4844":this.#W=3;break;case 4:case"pectra":case"eip-7702":this.#W=4;break;default:s(!1,"unsupported transaction type","type",W)}}get typeName(){switch(this.type){case 0:return"legacy";case 1:return"eip-2930";case 2:return"eip-1559";case 3:return"eip-4844";case 4:return"eip-7702"}return null}get to(){let W=this.#G;if(W==null&&this.type===3)return vK;return W}set to(W){this.#G=W==null?null:f1(W)}get nonce(){return this.#Y}set nonce(W){this.#Y=i8(W,"value")}get gasLimit(){return this.#U}set gasLimit(W){this.#U=u1(W)}get gasPrice(){let W=this.#q;if(W==null&&(this.type===0||this.type===1))return r8;return W}set gasPrice(W){this.#q=W==null?null:u1(W,"gasPrice")}get maxPriorityFeePerGas(){let W=this.#N;if(W==null){if(this.type===2||this.type===3)return r8;return null}return W}set maxPriorityFeePerGas(W){this.#N=W==null?null:u1(W,"maxPriorityFeePerGas")}get maxFeePerGas(){let W=this.#H;if(W==null){if(this.type===2||this.type===3)return r8;return null}return W}set maxFeePerGas(W){this.#H=W==null?null:u1(W,"maxFeePerGas")}get data(){return this.#X}set data(W){this.#X=C0(W)}get value(){return this.#A}set value(W){this.#A=u1(W,"value")}get chainId(){return this.#z}set chainId(W){this.#z=u1(W)}get signature(){return this.#I||null}set signature(W){this.#I=W==null?null:K8.from(W)}get accessList(){let W=this.#w||null;if(W==null){if(this.type===1||this.type===2||this.type===3)return[];return null}return W}set accessList(W){this.#w=W==null?null:gG(W)}get authorizationList(){let W=this.#j||null;if(W==null){if(this.type===4)return[]}return W}set authorizationList(W){this.#j=W==null?null:W.map((G)=>W_(G))}get maxFeePerBlobGas(){let W=this.#J;if(W==null&&this.type===3)return r8;return W}set maxFeePerBlobGas(W){this.#J=W==null?null:u1(W,"maxFeePerBlobGas")}get blobVersionedHashes(){let W=this.#V;if(W==null&&this.type===3)return[];return W}set blobVersionedHashes(W){if(W!=null){s(Array.isArray(W),"blobVersionedHashes must be an Array","value",W),W=W.slice();for(let G=0;G<W.length;G++)s(T9(W[G],32),"invalid blobVersionedHash",`value[${G}]`,W[G])}this.#V=W}get blobs(){if(this.#Q==null)return null;return this.#Q.map((W)=>Object.assign({},W))}set blobs(W){if(W==null){this.#Q=null;return}let G=[],X=[];for(let Y=0;Y<W.length;Y++){let Z=W[Y];if(l7(Z)){t0(this.#Z,"adding a raw blob requires a KZG library","UNSUPPORTED_OPERATION",{operation:"set blobs()"});let V=R0(Z);if(s(V.length<=fK,"blob is too large",`blobs[${Y}]`,Z),V.length!==fK){let U=new Uint8Array(fK);U.set(V),V=U}let Q=this.#Z.blobToKzgCommitment(V),J=C0(this.#Z.computeBlobKzgProof(V,Q));G.push({data:C0(V),commitment:C0(Q),proof:J}),X.push(G_(1,Q))}else{let V=C0(Z.commitment);G.push({data:C0(Z.data),commitment:V,proof:C0(Z.proof)}),X.push(G_(1,V))}}this.#Q=G,this.#V=X}get kzg(){return this.#Z}set kzg(W){if(W==null)this.#Z=null;else this.#Z=zs(W)}constructor(){this.#W=null,this.#G=null,this.#Y=0,this.#U=r8,this.#q=null,this.#N=null,this.#H=null,this.#X="0x",this.#A=r8,this.#z=r8,this.#I=null,this.#w=null,this.#J=null,this.#V=null,this.#Z=null,this.#Q=null,this.#j=null}get hash(){if(this.signature==null)return null;return X8(this.#O(!0,!1))}get unsignedHash(){return X8(this.unsignedSerialized)}get from(){if(this.signature==null)return null;return DJ(this.unsignedHash,this.signature)}get fromPublicKey(){if(this.signature==null)return null;return d8.recoverPublicKey(this.unsignedHash,this.signature)}isSigned(){return this.signature!=null}#O(W,G){t0(!W||this.signature!=null,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"});let X=W?this.signature:null;switch(this.inferType()){case 0:return Ks(this,X);case 1:return Ts(this,X);case 2:return Ds(this,X);case 3:return Rs(this,X,G?this.blobs:null);case 4:return Bs(this,X)}t0(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})}get serialized(){return this.#O(!0,!0)}get unsignedSerialized(){return this.#O(!1,!1)}inferType(){let W=this.inferTypes();if(W.indexOf(2)>=0)return 2;return W.pop()}inferTypes(){let W=this.gasPrice!=null,G=this.maxFeePerGas!=null||this.maxPriorityFeePerGas!=null,X=this.accessList!=null,Y=this.#J!=null||this.#V;if(this.maxFeePerGas!=null&&this.maxPriorityFeePerGas!=null)t0(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this});t0(!G||this.type!==0&&this.type!==1,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),t0(this.type!==0||!X,"legacy transaction cannot have accessList","BAD_DATA",{value:this});let Z=[];if(this.type!=null)Z.push(this.type);else if(this.authorizationList&&this.authorizationList.length)Z.push(4);else if(G)Z.push(2);else if(W){if(Z.push(1),!X)Z.push(0)}else if(X)Z.push(1),Z.push(2);else if(Y&&this.to)Z.push(3);else Z.push(0),Z.push(1),Z.push(2),Z.push(3);return Z.sort(),Z}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}clone(){return a9.from(this)}toJSON(){let W=(G)=>{if(G==null)return null;return G.toString()};return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:W(this.gasLimit),gasPrice:W(this.gasPrice),maxPriorityFeePerGas:W(this.maxPriorityFeePerGas),maxFeePerGas:W(this.maxFeePerGas),value:W(this.value),chainId:W(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}static from(W){if(W==null)return new a9;if(typeof W==="string"){let X=R0(W);if(X[0]>=127)return a9.from(Os(X));switch(X[0]){case 1:return a9.from(Ms(X));case 2:return a9.from(Cs(X));case 3:return a9.from(Ps(X));case 4:return a9.from(Ls(X))}t0(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}let G=new a9;if(W.type!=null)G.type=W.type;if(W.to!=null)G.to=W.to;if(W.nonce!=null)G.nonce=W.nonce;if(W.gasLimit!=null)G.gasLimit=W.gasLimit;if(W.gasPrice!=null)G.gasPrice=W.gasPrice;if(W.maxPriorityFeePerGas!=null)G.maxPriorityFeePerGas=W.maxPriorityFeePerGas;if(W.maxFeePerGas!=null)G.maxFeePerGas=W.maxFeePerGas;if(W.maxFeePerBlobGas!=null)G.maxFeePerBlobGas=W.maxFeePerBlobGas;if(W.data!=null)G.data=W.data;if(W.value!=null)G.value=W.value;if(W.chainId!=null)G.chainId=W.chainId;if(W.signature!=null)G.signature=K8.from(W.signature);if(W.accessList!=null)G.accessList=W.accessList;if(W.authorizationList!=null)G.authorizationList=W.authorizationList;if(W.blobVersionedHashes!=null)G.blobVersionedHashes=W.blobVersionedHashes;if(W.kzg!=null)G.kzg=W.kzg;if(W.blobs!=null)G.blobs=W.blobs;if(W.hash!=null)s(G.isSigned(),"unsigned transaction cannot define '.hash'","tx",W),s(G.hash===W.hash,"hash mismatch","tx",W);if(W.from!=null)s(G.isSigned(),"unsigned transaction cannot define '.from'","tx",W),s(G.from.toLowerCase()===(W.from||"").toLowerCase(),"from mismatch","tx",W);return G}}function iH(W){return s(typeof W.address==="string","invalid address for hashAuthorization","auth.address",W),X8(s1(["0x05",R5([W.chainId!=null?J8(W.chainId):"0x",f1(W.address),W.nonce!=null?J8(W.nonce):"0x"])]))}function t4(W){return X8(P9(W))}function MJ(W){if(typeof W==="string")W=P9(W);return X8(s1([P9(gK),P9(String(W.length)),W]))}function rH(W,G){let X=MJ(W);return DJ(X,G)}var V_=new Uint8Array(32);V_.fill(0);var Es=BigInt(-1),Q_=BigInt(0),J_=BigInt(1),$s=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function Fs(W){let G=R0(W),X=G.length%32;if(X)return s1([G,V_.slice(X)]);return C0(G)}var Ss=Z7(J_,32),xs=Z7(Q_,32),X_={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},cK=["name","version","chainId","verifyingContract","salt"];function Y_(W){return function(G){return s(typeof G==="string",`invalid domain value for ${JSON.stringify(W)}`,`domain.${W}`,G),G}}var ks={name:Y_("name"),version:Y_("version"),chainId:function(W){let G=u1(W,"domain.chainId");if(s(G>=0,"invalid chain ID","domain.chainId",W),Number.isSafeInteger(G))return Number(G);return PH(G)},verifyingContract:function(W){try{return f1(W).toLowerCase()}catch(G){}s(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",W)},salt:function(W){let G=R0(W,"domain.salt");return s(G.length===32,'invalid domain value "salt"',"domain.salt",W),C0(G)}};function pK(W){{let G=W.match(/^(u?)int(\d+)$/);if(G){let X=G[1]==="",Y=parseInt(G[2]);s(Y%8===0&&Y!==0&&Y<=256&&G[2]===String(Y),"invalid numeric width","type",W);let Z=TH($s,X?Y-1:Y),V=X?(Z+J_)*Es:Q_;return function(Q){let J=u1(Q,"value");return s(J>=V&&J<=Z,`value out-of-bounds for ${W}`,"value",J),Z7(X?MH(J,256):J,32)}}}{let G=W.match(/^bytes(\d+)$/);if(G){let X=parseInt(G[1]);return s(X!==0&&X<=32&&G[1]===String(X),"invalid bytes width","type",W),function(Y){let Z=R0(Y);return s(Z.length===X,`invalid length for ${W}`,"value",Y),Fs(Y)}}}switch(W){case"address":return function(G){return q5(f1(G),32)};case"bool":return function(G){return!G?xs:Ss};case"bytes":return function(G){return X8(G)};case"string":return function(G){return t4(G)}}return null}function Z_(W,G){return`${W}(${G.map(({name:X,type:Y})=>Y+" "+X).join(",")})`}function aH(W){let G=W.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);if(G)return{base:G[1],index:G[2]+G[4],array:{base:G[1],prefix:G[1]+G[2],count:G[5]?parseInt(G[5]):-1}};return{base:W}}class E9{primaryType;#W;get types(){return JSON.parse(this.#W)}#G;#X;constructor(W){this.#G=new Map,this.#X=new Map;let G=new Map,X=new Map,Y=new Map,Z={};Object.keys(W).forEach((J)=>{Z[J]=W[J].map(({name:U,type:q})=>{let{base:N,index:A}=aH(q);if(N==="int"&&!W.int)N="int256";if(N==="uint"&&!W.uint)N="uint256";return{name:U,type:N+(A||"")}}),G.set(J,new Set),X.set(J,[]),Y.set(J,new Set)}),this.#W=JSON.stringify(Z);for(let J in Z){let U=new Set;for(let q of Z[J]){s(!U.has(q.name),`duplicate variable name ${JSON.stringify(q.name)} in ${JSON.stringify(J)}`,"types",W),U.add(q.name);let N=aH(q.type).base;if(s(N!==J,`circular type reference to ${JSON.stringify(N)}`,"types",W),pK(N))continue;s(X.has(N),`unknown type ${JSON.stringify(N)}`,"types",W),X.get(N).push(J),G.get(J).add(N)}}let V=Array.from(X.keys()).filter((J)=>X.get(J).length===0);s(V.length!==0,"missing primary type","types",W),s(V.length===1,`ambiguous primary types or unused types: ${V.map((J)=>JSON.stringify(J)).join(", ")}`,"types",W),Q8(this,{primaryType:V[0]});function Q(J,U){s(!U.has(J),`circular type reference to ${JSON.stringify(J)}`,"types",W),U.add(J);for(let q of G.get(J)){if(!X.has(q))continue;Q(q,U);for(let N of U)Y.get(N).add(q)}U.delete(J)}Q(this.primaryType,new Set);for(let[J,U]of Y){let q=Array.from(U);q.sort(),this.#G.set(J,Z_(J,Z[J])+q.map((N)=>Z_(N,Z[N])).join(""))}}getEncoder(W){let G=this.#X.get(W);if(!G)G=this.#Y(W),this.#X.set(W,G);return G}#Y(W){{let Y=pK(W);if(Y)return Y}let G=aH(W).array;if(G){let Y=G.prefix,Z=this.getEncoder(Y);return(V)=>{s(G.count===-1||G.count===V.length,`array length mismatch; expected length ${G.count}`,"value",V);let Q=V.map(Z);if(this.#G.has(Y))Q=Q.map(X8);return X8(s1(Q))}}let X=this.types[W];if(X){let Y=t4(this.#G.get(W));return(Z)=>{let V=X.map(({name:Q,type:J})=>{let U=this.getEncoder(J)(Z[Q]);if(this.#G.has(J))return X8(U);return U});return V.unshift(Y),s1(V)}}s(!1,`unknown type: ${W}`,"type",W)}encodeType(W){let G=this.#G.get(W);return s(G,`unknown type: ${JSON.stringify(W)}`,"name",W),G}encodeData(W,G){return this.getEncoder(W)(G)}hashStruct(W,G){return X8(this.encodeData(W,G))}encode(W){return this.encodeData(this.primaryType,W)}hash(W){return this.hashStruct(this.primaryType,W)}_visit(W,G,X){if(pK(W))return X(W,G);let Y=aH(W).array;if(Y)return s(Y.count===-1||Y.count===G.length,`array length mismatch; expected length ${Y.count}`,"value",G),G.map((V)=>this._visit(Y.prefix,V,X));let Z=this.types[W];if(Z)return Z.reduce((V,{name:Q,type:J})=>{return V[Q]=this._visit(J,G[Q],X),V},{});s(!1,`unknown type: ${W}`,"type",W)}visit(W,G){return this._visit(this.primaryType,W,G)}static from(W){return new E9(W)}static getPrimaryType(W){return E9.from(W).primaryType}static hashStruct(W,G,X){return E9.from(G).hashStruct(W,X)}static hashDomain(W){let G=[];for(let X in W){if(W[X]==null)continue;let Y=X_[X];s(Y,`invalid typed-data domain key: ${JSON.stringify(X)}`,"domain",W),G.push({name:X,type:Y})}return G.sort((X,Y)=>{return cK.indexOf(X.name)-cK.indexOf(Y.name)}),E9.hashStruct("EIP712Domain",{EIP712Domain:G},W)}static encode(W,G,X){return s1(["0x1901",E9.hashDomain(W),E9.from(G).hash(X)])}static hash(W,G,X){return X8(E9.encode(W,G,X))}static async resolveNames(W,G,X,Y){W=Object.assign({},W);for(let Q in W)if(W[Q]==null)delete W[Q];let Z={};if(W.verifyingContract&&!T9(W.verifyingContract,20))Z[W.verifyingContract]="0x";let V=E9.from(G);V.visit(X,(Q,J)=>{if(Q==="address"&&!T9(J,20))Z[J]="0x";return J});for(let Q in Z)Z[Q]=await Y(Q);if(W.verifyingContract&&Z[W.verifyingContract])W.verifyingContract=Z[W.verifyingContract];return X=V.visit(X,(Q,J)=>{if(Q==="address"&&Z[J])return Z[J];return J}),{domain:W,value:X}}static getPayload(W,G,X){E9.hashDomain(W);let Y={},Z=[];cK.forEach((J)=>{let U=W[J];if(U==null)return;Y[J]=ks[J](U),Z.push({name:J,type:X_[J]})});let V=E9.from(G);G=V.types;let Q=Object.assign({},G);return s(Q.EIP712Domain==null,"types must not contain EIP712Domain type","types.EIP712Domain",G),Q.EIP712Domain=Z,V.encode(X),{types:Q,domain:Y,primaryType:V.primaryType,message:V.visit(X,(J,U)=>{if(J.match(/^bytes(\d*)/))return C0(R0(U));if(J.match(/^u?int/))return u1(U).toString();switch(J){case"address":return U.toLowerCase();case"bool":return!!U;case"string":return s(typeof U==="string","invalid string","value",U),U}s(!1,"unsupported type","type",J)})}}}var U_=BigInt(0);function lK(W){if(W==null)return null;return W}function a8(W){if(W==null)return null;return W.toString()}function TJ(W){let G={};if(W.to)G.to=W.to;if(W.from)G.from=W.from;if(W.data)G.data=C0(W.data);let X="chainId,gasLimit,gasPrice,maxFeePerBlobGas,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(let Z of X){if(!(Z in W)||W[Z]==null)continue;G[Z]=u1(W[Z],`request.${Z}`)}let Y="type,nonce".split(/,/);for(let Z of Y){if(!(Z in W)||W[Z]==null)continue;G[Z]=i8(W[Z],`request.${Z}`)}if(W.accessList)G.accessList=gG(W.accessList);if(W.authorizationList)G.authorizationList=W.authorizationList.slice();if("blockTag"in W)G.blockTag=W.blockTag;if("enableCcipRead"in W)G.enableCcipRead=!!W.enableCcipRead;if("customData"in W)G.customData=W.customData;if("blobVersionedHashes"in W&&W.blobVersionedHashes)G.blobVersionedHashes=W.blobVersionedHashes.slice();if("kzg"in W)G.kzg=W.kzg;if("blobs"in W&&W.blobs)G.blobs=W.blobs.map((Z)=>{if(l7(Z))return C0(Z);return Object.assign({},Z)});return G}class q_{provider;number;hash;timestamp;parentHash;parentBeaconBlockRoot;nonce;difficulty;gasLimit;gasUsed;stateRoot;receiptsRoot;blobGasUsed;excessBlobGas;miner;prevRandao;extraData;baseFeePerGas;#W;constructor(W,G){this.#W=W.transactions.map((X)=>{if(typeof X!=="string")return new sH(X,G);return X}),Q8(this,{provider:G,hash:lK(W.hash),number:W.number,timestamp:W.timestamp,parentHash:W.parentHash,parentBeaconBlockRoot:W.parentBeaconBlockRoot,nonce:W.nonce,difficulty:W.difficulty,gasLimit:W.gasLimit,gasUsed:W.gasUsed,blobGasUsed:W.blobGasUsed,excessBlobGas:W.excessBlobGas,miner:W.miner,prevRandao:lK(W.prevRandao),extraData:W.extraData,baseFeePerGas:lK(W.baseFeePerGas),stateRoot:W.stateRoot,receiptsRoot:W.receiptsRoot})}get transactions(){return this.#W.map((W)=>{if(typeof W==="string")return W;return W.hash})}get prefetchedTransactions(){let W=this.#W.slice();if(W.length===0)return[];return t0(typeof W[0]==="object","transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),W}toJSON(){let{baseFeePerGas:W,difficulty:G,extraData:X,gasLimit:Y,gasUsed:Z,hash:V,miner:Q,prevRandao:J,nonce:U,number:q,parentHash:N,parentBeaconBlockRoot:A,stateRoot:H,receiptsRoot:I,timestamp:w,transactions:C}=this;return{_type:"Block",baseFeePerGas:a8(W),difficulty:a8(G),extraData:X,gasLimit:a8(Y),gasUsed:a8(Z),blobGasUsed:a8(this.blobGasUsed),excessBlobGas:a8(this.excessBlobGas),hash:V,miner:Q,prevRandao:J,nonce:U,number:q,parentHash:N,timestamp:w,parentBeaconBlockRoot:A,stateRoot:H,receiptsRoot:I,transactions:C}}[Symbol.iterator](){let W=0,G=this.transactions;return{next:()=>{if(W<this.length)return{value:G[W++],done:!1};return{value:void 0,done:!0}}}}get length(){return this.#W.length}get date(){if(this.timestamp==null)return null;return new Date(this.timestamp*1000)}async getTransaction(W){let G=void 0;if(typeof W==="number")G=this.#W[W];else{let X=W.toLowerCase();for(let Y of this.#W)if(typeof Y==="string"){if(Y!==X)continue;G=Y;break}else{if(Y.hash!==X)continue;G=Y;break}}if(G==null)throw Error("no such tx");if(typeof G==="string")return await this.provider.getTransaction(G);else return G}getPrefetchedTransaction(W){let G=this.prefetchedTransactions;if(typeof W==="number")return G[W];W=W.toLowerCase();for(let X of G)if(X.hash===W)return X;s(!1,"no matching transaction","indexOrHash",W)}isMined(){return!!this.hash}isLondon(){return!!this.baseFeePerGas}orphanedEvent(){if(!this.isMined())throw Error("");return vs(this)}}class dK{provider;transactionHash;blockHash;blockNumber;removed;address;data;topics;index;transactionIndex;constructor(W,G){this.provider=G;let X=Object.freeze(W.topics.slice());Q8(this,{transactionHash:W.transactionHash,blockHash:W.blockHash,blockNumber:W.blockNumber,removed:W.removed,address:W.address,data:W.data,topics:X,index:W.index,transactionIndex:W.transactionIndex})}toJSON(){let{address:W,blockHash:G,blockNumber:X,data:Y,index:Z,removed:V,topics:Q,transactionHash:J,transactionIndex:U}=this;return{_type:"log",address:W,blockHash:G,blockNumber:X,data:Y,index:Z,removed:V,topics:Q,transactionHash:J,transactionIndex:U}}async getBlock(){let W=await this.provider.getBlock(this.blockHash);return t0(!!W,"failed to find transaction","UNKNOWN_ERROR",{}),W}async getTransaction(){let W=await this.provider.getTransaction(this.transactionHash);return t0(!!W,"failed to find transaction","UNKNOWN_ERROR",{}),W}async getTransactionReceipt(){let W=await this.provider.getTransactionReceipt(this.transactionHash);return t0(!!W,"failed to find transaction receipt","UNKNOWN_ERROR",{}),W}removedEvent(){return gs(this)}}class N_{provider;to;from;contractAddress;hash;index;blockHash;blockNumber;logsBloom;gasUsed;blobGasUsed;cumulativeGasUsed;gasPrice;blobGasPrice;type;status;root;#W;constructor(W,G){this.#W=Object.freeze(W.logs.map((Y)=>{return new dK(Y,G)}));let X=U_;if(W.effectiveGasPrice!=null)X=W.effectiveGasPrice;else if(W.gasPrice!=null)X=W.gasPrice;Q8(this,{provider:G,to:W.to,from:W.from,contractAddress:W.contractAddress,hash:W.hash,index:W.index,blockHash:W.blockHash,blockNumber:W.blockNumber,logsBloom:W.logsBloom,gasUsed:W.gasUsed,cumulativeGasUsed:W.cumulativeGasUsed,blobGasUsed:W.blobGasUsed,gasPrice:X,blobGasPrice:W.blobGasPrice,type:W.type,status:W.status,root:W.root})}get logs(){return this.#W}toJSON(){let{to:W,from:G,contractAddress:X,hash:Y,index:Z,blockHash:V,blockNumber:Q,logsBloom:J,logs:U,status:q,root:N}=this;return{_type:"TransactionReceipt",blockHash:V,blockNumber:Q,contractAddress:X,cumulativeGasUsed:a8(this.cumulativeGasUsed),from:G,gasPrice:a8(this.gasPrice),blobGasUsed:a8(this.blobGasUsed),blobGasPrice:a8(this.blobGasPrice),gasUsed:a8(this.gasUsed),hash:Y,index:Z,logs:U,logsBloom:J,root:N,status:q,to:W}}get length(){return this.logs.length}[Symbol.iterator](){let W=0;return{next:()=>{if(W<this.length)return{value:this.logs[W++],done:!1};return{value:void 0,done:!0}}}}get fee(){return this.gasUsed*this.gasPrice}async getBlock(){let W=await this.provider.getBlock(this.blockHash);if(W==null)throw Error("TODO");return W}async getTransaction(){let W=await this.provider.getTransaction(this.hash);if(W==null)throw Error("TODO");return W}async getResult(){return await this.provider.getTransactionResult(this.hash)}async confirmations(){return await this.provider.getBlockNumber()-this.blockNumber+1}removedEvent(){return A_(this)}reorderedEvent(W){return t0(!W||W.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),H_(this,W)}}class sH{provider;blockNumber;blockHash;index;hash;type;to;from;nonce;gasLimit;gasPrice;maxPriorityFeePerGas;maxFeePerGas;maxFeePerBlobGas;data;value;chainId;signature;accessList;blobVersionedHashes;authorizationList;#W;constructor(W,G){this.provider=G,this.blockNumber=W.blockNumber!=null?W.blockNumber:null,this.blockHash=W.blockHash!=null?W.blockHash:null,this.hash=W.hash,this.index=W.index,this.type=W.type,this.from=W.from,this.to=W.to||null,this.gasLimit=W.gasLimit,this.nonce=W.nonce,this.data=W.data,this.value=W.value,this.gasPrice=W.gasPrice,this.maxPriorityFeePerGas=W.maxPriorityFeePerGas!=null?W.maxPriorityFeePerGas:null,this.maxFeePerGas=W.maxFeePerGas!=null?W.maxFeePerGas:null,this.maxFeePerBlobGas=W.maxFeePerBlobGas!=null?W.maxFeePerBlobGas:null,this.chainId=W.chainId,this.signature=W.signature,this.accessList=W.accessList!=null?W.accessList:null,this.blobVersionedHashes=W.blobVersionedHashes!=null?W.blobVersionedHashes:null,this.authorizationList=W.authorizationList!=null?W.authorizationList:null,this.#W=-1}toJSON(){let{blockNumber:W,blockHash:G,index:X,hash:Y,type:Z,to:V,from:Q,nonce:J,data:U,signature:q,accessList:N,blobVersionedHashes:A}=this;return{_type:"TransactionResponse",accessList:N,blockNumber:W,blockHash:G,blobVersionedHashes:A,chainId:a8(this.chainId),data:U,from:Q,gasLimit:a8(this.gasLimit),gasPrice:a8(this.gasPrice),hash:Y,maxFeePerGas:a8(this.maxFeePerGas),maxPriorityFeePerGas:a8(this.maxPriorityFeePerGas),maxFeePerBlobGas:a8(this.maxFeePerBlobGas),nonce:J,signature:q,to:V,index:X,type:Z,value:a8(this.value)}}async getBlock(){let W=this.blockNumber;if(W==null){let X=await this.getTransaction();if(X)W=X.blockNumber}if(W==null)return null;let G=this.provider.getBlock(W);if(G==null)throw Error("TODO");return G}async getTransaction(){return this.provider.getTransaction(this.hash)}async confirmations(){if(this.blockNumber==null){let{tx:G,blockNumber:X}=await p7({tx:this.getTransaction(),blockNumber:this.provider.getBlockNumber()});if(G==null||G.blockNumber==null)return 0;return X-G.blockNumber+1}return await this.provider.getBlockNumber()-this.blockNumber+1}async wait(W,G){let X=W==null?1:W,Y=G==null?0:G,Z=this.#W,V=-1,Q=Z===-1?!0:!1,J=async()=>{if(Q)return null;let{blockNumber:A,nonce:H}=await p7({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(H<this.nonce){Z=A;return}if(Q)return null;let I=await this.getTransaction();if(I&&I.blockNumber!=null)return;if(V===-1){if(V=Z-3,V<this.#W)V=this.#W}while(V<=A){if(Q)return null;let w=await this.provider.getBlock(V,!0);if(w==null)return;for(let C of w)if(C===this.hash)return;for(let C=0;C<w.length;C++){let D=await w.getTransaction(C);if(D.from===this.from&&D.nonce===this.nonce){if(Q)return null;let x=await this.provider.getTransactionReceipt(D.hash);if(x==null)return;if(A-x.blockNumber+1<X)return;let h="replaced";if(D.data===this.data&&D.to===this.to&&D.value===this.value)h="repriced";else if(D.data==="0x"&&D.from===D.to&&D.value===U_)h="cancelled";t0(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:h==="replaced"||h==="cancelled",reason:h,replacement:D.replaceableTransaction(Z),hash:D.hash,receipt:x})}}V++}return},U=(A)=>{if(A==null||A.status!==0)return A;t0(!1,"transaction execution reverted","CALL_EXCEPTION",{action:"sendTransaction",data:null,reason:null,invocation:null,revert:null,transaction:{to:A.to,from:A.from,data:""},receipt:A})},q=await this.provider.getTransactionReceipt(this.hash);if(X===0)return U(q);if(q){if(X===1||await q.confirmations()>=X)return U(q)}else if(await J(),X===0)return null;return await new Promise((A,H)=>{let I=[],w=()=>{I.forEach((D)=>D())};if(I.push(()=>{Q=!0}),Y>0){let D=setTimeout(()=>{w(),H(HJ("wait for transaction timeout","TIMEOUT"))},Y);I.push(()=>{clearTimeout(D)})}let C=async(D)=>{if(await D.confirmations()>=X){w();try{A(U(D))}catch(x){H(x)}}};if(I.push(()=>{this.provider.off(this.hash,C)}),this.provider.on(this.hash,C),Z>=0){let D=async()=>{try{await J()}catch(x){if(DH(x,"TRANSACTION_REPLACED")){w(),H(x);return}}if(!Q)this.provider.once("block",D)};I.push(()=>{this.provider.off("block",D)}),this.provider.once("block",D)}})}isMined(){return this.blockHash!=null}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}removedEvent(){return t0(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),A_(this)}reorderedEvent(W){return t0(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),t0(!W||W.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),H_(this,W)}replaceableTransaction(W){s(Number.isInteger(W)&&W>=0,"invalid startBlock","startBlock",W);let G=new sH(this,this.provider);return G.#W=W,G}}function vs(W){return{orphan:"drop-block",hash:W.hash,number:W.number}}function H_(W,G){return{orphan:"reorder-transaction",tx:W,other:G}}function A_(W){return{orphan:"drop-transaction",tx:W}}function gs(W){return{orphan:"drop-log",log:{transactionHash:W.transactionHash,blockHash:W.blockHash,blockNumber:W.blockNumber,address:W.address,data:W.data,topics:Object.freeze(W.topics.slice()),index:W.index}}}function hG(W,G){if(W.provider)return W.provider;t0(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:G})}async function z_(W,G){let X=TJ(G);if(X.to!=null)X.to=a4(X.to,W);if(X.from!=null){let Y=X.from;X.from=Promise.all([W.getAddress(),a4(Y,W)]).then(([Z,V])=>{return s(Z.toLowerCase()===V.toLowerCase(),"transaction from mismatch","tx.from",V),Z})}else X.from=W.getAddress();return await p7(X)}class PJ{provider;constructor(W){Q8(this,{provider:W||null})}async getNonce(W){return hG(this,"getTransactionCount").getTransactionCount(await this.getAddress(),W)}async populateCall(W){return await z_(this,W)}async populateTransaction(W){let G=hG(this,"populateTransaction"),X=await z_(this,W);if(X.nonce==null)X.nonce=await this.getNonce("pending");if(X.gasLimit==null)X.gasLimit=await this.estimateGas(X);let Y=await this.provider.getNetwork();if(X.chainId!=null){let V=u1(X.chainId);s(V===Y.chainId,"transaction chainId mismatch","tx.chainId",W.chainId)}else X.chainId=Y.chainId;let Z=X.maxFeePerGas!=null||X.maxPriorityFeePerGas!=null;if(X.gasPrice!=null&&(X.type===2||Z))s(!1,"eip-1559 transaction do not support gasPrice","tx",W);else if((X.type===0||X.type===1)&&Z)s(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",W);if((X.type===2||X.type==null)&&(X.maxFeePerGas!=null&&X.maxPriorityFeePerGas!=null))X.type=2;else if(X.type===0||X.type===1){let V=await G.getFeeData();if(t0(V.gasPrice!=null,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),X.gasPrice==null)X.gasPrice=V.gasPrice}else{let V=await G.getFeeData();if(X.type==null)if(V.maxFeePerGas!=null&&V.maxPriorityFeePerGas!=null){if(X.authorizationList&&X.authorizationList.length)X.type=4;else X.type=2;if(X.gasPrice!=null){let Q=X.gasPrice;delete X.gasPrice,X.maxFeePerGas=Q,X.maxPriorityFeePerGas=Q}else{if(X.maxFeePerGas==null)X.maxFeePerGas=V.maxFeePerGas;if(X.maxPriorityFeePerGas==null)X.maxPriorityFeePerGas=V.maxPriorityFeePerGas}}else if(V.gasPrice!=null){if(t0(!Z,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),X.gasPrice==null)X.gasPrice=V.gasPrice;X.type=0}else t0(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else if(X.type===2||X.type===3||X.type===4){if(X.maxFeePerGas==null)X.maxFeePerGas=V.maxFeePerGas;if(X.maxPriorityFeePerGas==null)X.maxPriorityFeePerGas=V.maxPriorityFeePerGas}}return await p7(X)}async populateAuthorization(W){let G=Object.assign({},W);if(G.chainId==null)G.chainId=(await hG(this,"getNetwork").getNetwork()).chainId;if(G.nonce==null)G.nonce=await this.getNonce();return G}async estimateGas(W){return hG(this,"estimateGas").estimateGas(await this.populateCall(W))}async call(W){return hG(this,"call").call(await this.populateCall(W))}async resolveName(W){return await hG(this,"resolveName").resolveName(W)}async sendTransaction(W){let G=hG(this,"sendTransaction"),X=await this.populateTransaction(W);delete X.from;let Y=a9.from(X);return await G.broadcastTransaction(await this.signTransaction(Y))}authorize(W){t0(!1,"authorization not implemented for this signer","UNSUPPORTED_OPERATION",{operation:"authorize"})}}class RJ extends PJ{address;constructor(W,G){super(G);Q8(this,{address:W})}async getAddress(){return this.address}connect(W){return new RJ(this.address,W)}#W(W,G){t0(!1,`VoidSigner cannot sign ${W}`,"UNSUPPORTED_OPERATION",{operation:G})}async signTransaction(W){this.#W("transactions","signTransaction")}async signMessage(W){this.#W("messages","signMessage")}async signTypedData(W,G,X){this.#W("typed-data","signTypedData")}}class bG extends PJ{address;#W;constructor(W,G){super(G);s(W&&typeof W.sign==="function","invalid private key","privateKey","[ REDACTED ]"),this.#W=W;let X=s4(this.signingKey.publicKey);Q8(this,{address:X})}get signingKey(){return this.#W}get privateKey(){return this.signingKey.privateKey}async getAddress(){return this.address}connect(W){return new bG(this.#W,W)}async signTransaction(W){W=TJ(W);let{to:G,from:X}=await p7({to:W.to?a4(W.to,this):void 0,from:W.from?a4(W.from,this):void 0});if(G!=null)W.to=G;if(X!=null)W.from=X;if(W.from!=null)s(f1(W.from)===this.address,"transaction from address mismatch","tx.from",W.from),delete W.from;let Y=a9.from(W);return Y.signature=this.signingKey.sign(Y.unsignedHash),Y.serialized}async signMessage(W){return this.signMessageSync(W)}signMessageSync(W){return this.signingKey.sign(MJ(W)).serialized}authorizeSync(W){s(typeof W.address==="string","invalid address for authorizeSync","auth.address",W);let G=this.signingKey.sign(iH(W));return Object.assign({},{address:f1(W.address),nonce:u1(W.nonce||0),chainId:u1(W.chainId||0)},{signature:G})}async authorize(W){return W=Object.assign({},W,{address:await a4(W.address,this)}),this.authorizeSync(await this.populateAuthorization(W))}async signTypedData(W,G,X){let Y=await E9.resolveNames(W,G,X,async(Z)=>{t0(this.provider!=null,"cannot resolve ENS names without a provider","UNSUPPORTED_OPERATION",{operation:"resolveName",info:{name:Z}});let V=await this.provider.resolveName(Z);return t0(V!=null,"unconfigured ENS name","UNCONFIGURED_NAME",{value:Z}),V});return this.signingKey.sign(E9.hash(Y.domain,G,Y.value)).serialized}}var tH=" !#$%&'()*+,-./<=>?@[]^_`{|}~",us=/^[a-z]*$/i;function I_(W,G){let X=97;return W.reduce((Y,Z)=>{if(Z===G)X++;else if(Z.match(us))Y.push(String.fromCharCode(X)+Z);else X=97,Y.push(Z);return Y},[])}function hs(W,G){for(let Z=tH.length-1;Z>=0;Z--)W=W.split(tH[Z]).join(G.substring(2*Z,2*Z+2));let X=[],Y=W.replace(/(:|([0-9])|([A-Z][a-z]*))/g,(Z,V,Q,J)=>{if(Q)for(let U=parseInt(Q);U>=0;U--)X.push(";");else X.push(V.toLowerCase());return""});if(Y)throw Error(`leftovers: ${JSON.stringify(Y)}`);return I_(I_(X,";"),":")}function w_(W){return s(W[0]==="0","unsupported auwl data","data",W),hs(W.substring(1+2*tH.length),W.substring(1,1+2*tH.length))}class oK{locale;constructor(W){Q8(this,{locale:W})}split(W){return W.toLowerCase().split(/\s+/g)}join(W){return W.join(" ")}}class nK extends oK{#W;#G;constructor(W,G,X){super(W);this.#W=G,this.#G=X,this.#X=null}get _data(){return this.#W}_decodeWords(){return w_(this.#W)}#X;#Y(){if(this.#X==null){let W=this._decodeWords();if(t4(W.join(`
|
|
250
250
|
`)+`
|
|
251
|
-
`)!==this.#G)throw Error(`BIP39 Wordlist for ${this.locale} FAILED`);this.#X=W}return this.#X}getWord(W){let G=this.#Y();return s(W>=0&&W<G.length,`invalid word index: ${W}`,"index",W),G[W]}getWordIndex(W){return this.#Y().indexOf(W)}}var bs="0erleonalorenseinceregesticitStanvetearctssi#ch2Athck&tneLl0And#Il.yLeOutO=S|S%b/ra@SurdU'0Ce[Cid|CountCu'Hie=IdOu,-Qui*Ro[TT]T%T*[Tu$0AptDD-tD*[Ju,M.UltV<)Vi)0Rob-0FairF%dRaid0A(EEntRee0Ead0MRRp%tS!_rmBumCoholErtI&LLeyLowMo,O}PhaReadySoT Ways0A>urAz(gOngOuntU'd0Aly,Ch%Ci|G G!GryIm$K!Noun)Nu$O` Sw T&naTiqueXietyY1ArtOlogyPe?P!Pro=Ril1ChCt-EaEnaGueMMedM%MyOundR<+Re,Ri=RowTTefa@Ti,Tw%k0KPe@SaultSetSi,SumeThma0H!>OmTa{T&dT.udeTra@0Ct]D.Gu,NtTh%ToTumn0Era+OcadoOid0AkeA*AyEsomeFulKw?d0Is:ByChel%C#D+GL<)Lc#y~MbooN<aNn RRelyRga(R*lSeS-SketTt!3A^AnAutyCau'ComeEfF%eG(Ha=H(dLie=LowLtN^Nef./TrayTt Twe&Y#d3Cyc!DKeNdOlogyRdR`Tt _{AdeAmeAnketA,EakE[IndOodO[omOu'UeUrUsh_rdAtDyIlMbNeNusOkO,Rd R(gRrowSsTtomUn)XY_{etA(AndA[A=EadEezeI{Id+IefIghtIngIskOccoliOk&OnzeOomO` OwnUsh2Bb!DdyD+tFf$oIldLbLkL!tNd!Nk Rd&Rg R,SS(e[SyTt Y Zz:Bba+B(B!CtusGeKe~LmM aMpNN$N)lNdyNn#NoeNvasNy#Pab!P.$Pta(RRb#RdRgoRpetRryRtSeShS(o/!Su$TT$ogT^Teg%yTt!UghtU'Ut]Ve3Il(gL yM|NsusNturyRe$Rta(_irAlkAmp]An+AosApt Ar+A'AtEapE{Ee'EfErryE,I{&IefIldIm}yOi)Oo'R#-U{!UnkUrn0G?Nnam#Rc!Tiz&TyVil_imApArifyAwAyE<ErkEv I{I|IffImbIn-IpO{OgO'O`OudOwnUbUmpU, Ut^_^A,C#utDeFfeeIlInL!@L%LumnMb(eMeMf%tM-Mm#Mp<yNc tNdu@NfirmNg*[N}@Nsid NtrolNv()OkOlPp PyR$ReRnR*@/Tt#U^UntryUp!Ur'Us(V Yo>_{Ad!AftAmA}AshAt AwlAzyEamEd.EekEwI{etImeIspIt-OpO[Ou^OwdUci$UelUi'Umb!Un^UshYY,$2BeLtu*PPbo?dRiousRr|Rta(R=Sh]/omTe3C!:DMa+MpN)Ng R(gShUght WnY3AlBa>BrisCadeCemb CideCl(eC%a>C*a'ErF&'F(eFyG*eLayLiv M<dMi'Ni$Nti,NyP?tP&dPos.P`PutyRi=ScribeS tSignSkSpair/royTailTe@VelopVi)Vo>3AgramAlAm#dAryCeE'lEtFf G.$Gn.yLemmaNn NosaurRe@RtSag*eScov Sea'ShSmi[S%d Splay/<)V tVideV%)Zzy5Ct%Cum|G~Lph(Ma(Na>NkeyN%OrSeUb!Ve_ftAg#AmaA,-AwEamE[IftIllInkIpI=OpUmY2CkMbNeR(g/T^Ty1Arf1Nam-:G G!RlyRnR`Sily/Sy1HoOlogyOnomy0GeItUca>1F%t0G1GhtTh 2BowD E@r-Eg<tEm|Eph<tEvat%I>Se0B?kBodyBra)Er+Ot]PloyPow Pty0Ab!A@DD![D%'EmyErgyF%)Ga+G(eH<)JoyLi,OughR-hRollSu*T Ti*TryVelope1Isode0U$Uip0AA'OdeOs]R%Upt0CapeSayS&)Ta>0Ern$H-s1Id&)IlOkeOl=1A@Amp!Ce[Ch<+C.eCludeCu'Ecu>Erci'Hau,Hib.I!I,ItOt-P<dPe@Pi*Pla(Po'P*[T&dTra0EEbrow:Br-CeCultyDeIntI`~L'MeMilyMousNNcyNtasyRmSh]TT$Th TigueUltV%.e3Atu*Bru?yD $EEdElMa!N)/iv$T^V W3B Ct]EldGu*LeLmLt N$NdNeNg NishReRmR,Sc$ShTT}[X_gAmeAshAtAv%EeIghtIpOatO{O%Ow UidUshY_mCusGIlLd~owOdOtR)Re,R+tRkRtu}RumRw?dSsil/ UndX_gi!AmeEqu|EshI&dIn+OgOntO,OwnOz&U.2ElNNnyRna)RyTu*:D+tInLaxy~ yMePRa+Rba+Rd&Rl-Rm|SSpTeTh U+Ze3N $NiusN*Nt!Nu(e/u*2O,0AntFtGg!Ng RaffeRlVe_dAn)A*A[IdeImp'ObeOomOryO=OwUe_tDde[LdOdO'RillaSpelSsipV nWn_bA)A(AntApeA[Av.yEatE&IdIefItOc yOupOwUnt_rdE[IdeIltIt?N3M:B.IrLfMm M, NdPpyRb%RdRshR=,TVeWkZ?d3AdAl`ArtAvyD+hogIght~oLmetLpNRo3Dd&Gh~NtPRe/%y5BbyCkeyLdLeLiday~owMeNeyOdPeRnRr%R'Sp.$/TelUrV 5BGeM<Mb!M%Nd*dNgryNtRd!RryRtSb<d3Brid:1EOn0EaEntifyLe2N%e4LLeg$L}[0A+Ita>M&'Mu}Pa@Po'Pro=Pul'0ChCludeComeC*a'DexD-a>Do%Du,ryF<tFl-tF%mHa!H .Iti$Je@JuryMa>N Noc|PutQuiryS<eSe@SideSpi*/$lTa@T e,ToVe,V.eVol=3On0L<dOla>Sue0Em1Ory:CketGu?RZz3AlousAns~yWel9BInKeUr}yY5D+I)MpNg!Ni%Nk/:Ng?oo3EnEpT^upY3CkDD}yNdNgdomSsTT^&TeTt&Wi4EeIfeO{Ow:BBelB%Dd DyKeMpNgua+PtopR+T T(UghUndryVaWWnWsu.Y Zy3Ad AfArnA=Ctu*FtGG$G&dIsu*M#NdNg`NsOp?dSs#Tt Vel3ArB tyBr?yC&'FeFtGhtKeMbM.NkOnQuid/Tt!VeZ?d5AdAnB, C$CkG-NelyNgOpTt yUdUn+VeY$5CkyGga+Mb N?N^Xury3R-s:Ch(eDG-G}tIdIlInJ%KeMm$NNa+Nda>NgoNs]Nu$P!Rb!R^Rg(R(eRketRria+SkSs/ T^T i$ThTrixTt XimumZe3AdowAnAsu*AtCh<-D$DiaLodyLtMb M%yNt]NuRcyR+R.RryShSsa+T$Thod3Dd!DnightLk~]M-NdNimumN%Nu>Rac!Rr%S ySs/akeXXedXtu*5Bi!DelDifyMM|N.%NkeyN, N`OnR$ReRn(gSqu.oTh T]T%Unta(U'VeVie5ChFf(LeLtiplySc!SeumShroomS-/Tu$3Self/ yTh:I=MePk(Rrow/yT]Tu*3ArCkEdGati=G!@I` PhewR=/TTw%kUtr$V WsXt3CeGht5B!I'M(eeOd!Rm$R`SeTab!TeTh(gTi)VelW5C!?Mb R'T:K0EyJe@Li+Scu*S =Ta(Vious0CurE<Tob 0Or1FF Fi)T&2L1Ay0DI=Ymp-0It0CeEI#L(eLy1EnEraIn]Po'T]1An+B.Ch?dD D(?yG<I|Ig($Ph<0Tr-h0H 0Tdo%T TputTside0AlEnEr0NN 0Yg&0/ 0O}:CtDd!GeIrLa)LmNdaNelN-N` P RadeR|RkRrotRtySsT^ThTi|TrolTt nU'VeYm|3A)AnutArAs<tL-<NN$tyNcilOp!Pp Rfe@Rm.Rs#T2O}OtoRa'Ys-$0AnoCn-Ctu*E)GGe#~LotNkO} Pe/olT^Zza_)A}tA,-A>AyEa'Ed+U{UgUn+2EmEtIntL?LeLi)NdNyOlPul?Rt]S.]Ssib!/TatoTt yV tyWd W _@i)Ai'Ed-tEf Epa*Es|EttyEv|I)IdeIm?yIntI%.yIs#Iva>IzeOb!mO)[Odu)Of.OgramOje@Omo>OofOp tyOsp O>@OudOvide2Bl-Dd(g~LpL'Mpk(N^PilPpyR^a'R.yRpo'R'ShTZz!3Ramid:99Al.yAntumArt E,]I{ItIzO>:Bb.Cco#CeCkD?DioIlInI'~yMpN^NdomN+PidReTeTh V&WZ%3AdyAlAs#BelBuildC$lCei=CipeC%dCyc!Du)F!@F%mFu'G]G*tGul?Je@LaxLea'LiefLyMa(Memb M(dMo=Nd NewNtOp&PairPeatPla)P%tQui*ScueSemb!Si,Sour)Sp#'SultTi*T*atTurnUn]Ve$ViewW?d2Y`m0BBb#CeChDeD+F!GhtGidNgOtPp!SkTu$V$V 5AdA,BotBu,CketM<)OfOkieOmSeTa>UghUndU>Y$5Bb DeGLeNNwayR$:DDd!D}[FeIlLadLm#L#LtLu>MeMp!NdTisfyToshiU)Usa+VeY1A!AnA*Att E}HemeHoolI&)I[%sOrp]OutRapRe&RiptRub1AAr^As#AtC#dC*tCt]Cur.yEdEkGm|Le@~M(?Ni%N'Nt&)RiesRvi)Ss]Tt!TupV&_dowAftAllowA*EdEllEriffIeldIftI}IpIv O{OeOotOpOrtOuld O=RimpRugUff!Y0Bl(gCkDeE+GhtGnL|Lk~yLv Mil?Mp!N)NgR&/ Tua>XZe1A>Et^IIllInIrtUll0AbAmEepEnd I)IdeIghtImOg<OtOwUsh0AllArtI!OkeOo`0A{AkeApIffOw0ApCc Ci$CkDaFtL?Ldi LidLut]L=Me#eNgOnRryRtUlUndUpUr)U`0A)A*Ati$AwnEakEci$EedEllEndH eI)Id IkeInIr.L.OilOns%O#OrtOtRayReadR(gY0Ua*UeezeUir*l_b!AdiumAffA+AirsAmpAndArtA>AyEakEelEmEpE*oI{IllIngO{Oma^O}OolOryO=Ra>gyReetRikeR#gRugg!Ud|UffUmb!Y!0Bje@Bm.BwayC)[ChDd&Ff G?G+,ItMm NNnyN'tP PplyP*meReRfa)R+Rpri'RroundR=ySpe@/a(1AllowAmpApArmE?EetIftImIngIt^Ord1MbolMptomRup/em:B!Ck!GIlL|LkNkPeR+tSk/eTtooXi3A^Am~NN<tNnisNtRm/Xt_nkAtEmeEnE%yE*EyIngIsOughtReeRi=RowUmbUnd 0CketDeG LtMb MeNyPRedSsueT!5A,BaccoDayDdl EGe` I!tK&MatoM%rowNeNgueNightOlO`PP-Pp!R^RnadoRtoi'SsT$Uri,W?dW WnY_{AdeAff-Ag-A(Ansf ApAshA=lAyEatEeEndI$IbeI{Igg ImIpOphyOub!U{UeUlyUmpetU,U`Y2BeIt]Mb!NaN}lRkeyRnRt!1El=EntyI)InI,O1PeP-$:5Ly5B*lla0Ab!Awa*C!Cov D DoFairFoldHappyIf%mIqueItIv 'KnownLo{TilUsu$Veil1Da>GradeHoldOnP Set1B<Ge0A+EEdEfulE![U$0Il.y:C<tCuumGueLidL!yL=NNishP%Rious/Ult3H-!L=tNd%Ntu*NueRbRifyRs]RyS'lT <3Ab!Br<tCiousCt%yDeoEw~a+Nta+Ol(Rtu$RusSaS.Su$T$Vid5C$I)IdLc<oLumeTeYa+:GeG#ItLk~LnutNtRfa*RmRri%ShSp/eT VeY3Al`Ap#ArA'lA` BDd(gEk&dIrdLcome/T_!AtEatEelEnE*IpIsp 0DeD`FeLd~NNdowNeNgNkNn Nt ReSdomSeShT}[5LfM<Nd OdOlRdRkRldRryR`_pE{E,!I,I>Ong::Rd3Ar~ow9UUngU`:3BraRo9NeO",ms="0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60",iK=null;class e4 extends nK{constructor(){super("en",bs,ms)}static wordlist(){if(iK==null)iK=new e4;return iK}}function j_(W){return(1<<W)-1<<8-W&255}function fs(W){return(1<<W)-1&255}function rK(W,G){if(oY("NFKD"),G==null)G=e4.wordlist();let X=G.split(W);s(X.length%3===0&&X.length>=12&&X.length<=24,"invalid mnemonic length","mnemonic","[ REDACTED ]");let Y=new Uint8Array(Math.ceil(11*X.length/8)),Z=0;for(let q=0;q<X.length;q++){let N=G.getWordIndex(X[q].normalize("NFKD"));s(N>=0,`invalid mnemonic word at index ${q}`,"mnemonic","[ REDACTED ]");for(let A=0;A<11;A++){if(N&1<<10-A)Y[Z>>3]|=1<<7-Z%8;Z++}}let V=32*X.length/3,Q=X.length/3,J=j_(Q),U=R0(L9(Y.slice(0,V/8)))[0]&J;return s(U===(Y[Y.length-1]&J),"invalid mnemonic checksum","mnemonic","[ REDACTED ]"),C0(Y.slice(0,V/8))}function aK(W,G){if(s(W.length%4===0&&W.length>=16&&W.length<=32,"invalid entropy size","entropy","[ REDACTED ]"),G==null)G=e4.wordlist();let X=[0],Y=11;for(let Q=0;Q<W.length;Q++)if(Y>8)X[X.length-1]<<=8,X[X.length-1]|=W[Q],Y-=8;else X[X.length-1]<<=Y,X[X.length-1]|=W[Q]>>8-Y,X.push(W[Q]&fs(8-Y)),Y+=3;let Z=W.length/4,V=parseInt(L9(W).substring(2,4),16)&j_(Z);return X[X.length-1]<<=Z,X[X.length-1]|=V>>8-Z,G.join(X.map((Q)=>G.getWord(Q)))}var sK={};class W6{phrase;password;wordlist;entropy;constructor(W,G,X,Y,Z){if(Y==null)Y="";if(Z==null)Z=e4.wordlist();l4(W,sK,"Mnemonic"),Q8(this,{phrase:X,password:Y,wordlist:Z,entropy:G})}computeSeed(){let W=P9("mnemonic"+this.password,"NFKD");return L5(P9(this.phrase,"NFKD"),W,2048,64,"sha512")}static fromPhrase(W,G,X){let Y=rK(W,X);return W=aK(R0(Y),X),new W6(sK,Y,W,G,X)}static fromEntropy(W,G,X){let Y=R0(W,"entropy"),Z=aK(Y,X);return new W6(sK,C0(Y),Z,G,X)}static entropyToPhrase(W,G){let X=R0(W,"entropy");return aK(X,G)}static phraseToEntropy(W,G){return rK(W,G)}static isValidMnemonic(W,G){try{return rK(W,G),!0}catch(X){}return!1}}/*! MIT License. Copyright 2015-2022 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */var V9=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},tK=function(W,G,X,Y,Z){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!Z)throw TypeError("Private accessor was defined without a setter");if(typeof G==="function"?W!==G||!Z:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?Z.call(W,X):Z?Z.value=X:G.set(W,X),X},WA,F5,o7,cs={16:10,24:12,32:14},ps=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],$5=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],eH=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],ls=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],ds=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],os=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],ns=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],is=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],rs=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],as=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239000,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],ss=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998000,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],ts=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],es=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],Wt=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239000,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],Gt=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998000,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function eK(W){let G=[];for(let X=0;X<W.length;X+=4)G.push(W[X]<<24|W[X+1]<<16|W[X+2]<<8|W[X+3]);return G}class GA{get key(){return V9(this,WA,"f").slice()}constructor(W){if(WA.set(this,void 0),F5.set(this,void 0),o7.set(this,void 0),!(this instanceof GA))throw Error("AES must be instanitated with `new`");tK(this,WA,new Uint8Array(W),"f");let G=cs[this.key.length];if(G==null)throw TypeError("invalid key size (must be 16, 24 or 32 bytes)");tK(this,o7,[],"f"),tK(this,F5,[],"f");for(let q=0;q<=G;q++)V9(this,o7,"f").push([0,0,0,0]),V9(this,F5,"f").push([0,0,0,0]);let X=(G+1)*4,Y=this.key.length/4,Z=eK(this.key),V;for(let q=0;q<Y;q++)V=q>>2,V9(this,o7,"f")[V][q%4]=Z[q],V9(this,F5,"f")[G-V][q%4]=Z[q];let Q=0,J=Y,U;while(J<X){if(U=Z[Y-1],Z[0]^=$5[U>>16&255]<<24^$5[U>>8&255]<<16^$5[U&255]<<8^$5[U>>24&255]^ps[Q]<<24,Q+=1,Y!=8)for(let H=1;H<Y;H++)Z[H]^=Z[H-1];else{for(let H=1;H<Y/2;H++)Z[H]^=Z[H-1];U=Z[Y/2-1],Z[Y/2]^=$5[U&255]^$5[U>>8&255]<<8^$5[U>>16&255]<<16^$5[U>>24&255]<<24;for(let H=Y/2+1;H<Y;H++)Z[H]^=Z[H-1]}let q=0,N,A;while(q<Y&&J<X)N=J>>2,A=J%4,V9(this,o7,"f")[N][A]=Z[q],V9(this,F5,"f")[G-N][A]=Z[q++],J++}for(let q=1;q<G;q++)for(let N=0;N<4;N++)U=V9(this,F5,"f")[q][N],V9(this,F5,"f")[q][N]=ts[U>>24&255]^es[U>>16&255]^Wt[U>>8&255]^Gt[U&255]}encrypt(W){if(W.length!=16)throw TypeError("invalid plaintext size (must be 16 bytes)");let G=V9(this,o7,"f").length-1,X=[0,0,0,0],Y=eK(W);for(let Q=0;Q<4;Q++)Y[Q]^=V9(this,o7,"f")[0][Q];for(let Q=1;Q<G;Q++){for(let J=0;J<4;J++)X[J]=ls[Y[J]>>24&255]^ds[Y[(J+1)%4]>>16&255]^os[Y[(J+2)%4]>>8&255]^ns[Y[(J+3)%4]&255]^V9(this,o7,"f")[Q][J];Y=X.slice()}let Z=new Uint8Array(16),V=0;for(let Q=0;Q<4;Q++)V=V9(this,o7,"f")[G][Q],Z[4*Q]=($5[Y[Q]>>24&255]^V>>24)&255,Z[4*Q+1]=($5[Y[(Q+1)%4]>>16&255]^V>>16)&255,Z[4*Q+2]=($5[Y[(Q+2)%4]>>8&255]^V>>8)&255,Z[4*Q+3]=($5[Y[(Q+3)%4]&255]^V)&255;return Z}decrypt(W){if(W.length!=16)throw TypeError("invalid ciphertext size (must be 16 bytes)");let G=V9(this,F5,"f").length-1,X=[0,0,0,0],Y=eK(W);for(let Q=0;Q<4;Q++)Y[Q]^=V9(this,F5,"f")[0][Q];for(let Q=1;Q<G;Q++){for(let J=0;J<4;J++)X[J]=is[Y[J]>>24&255]^rs[Y[(J+3)%4]>>16&255]^as[Y[(J+2)%4]>>8&255]^ss[Y[(J+1)%4]&255]^V9(this,F5,"f")[Q][J];Y=X.slice()}let Z=new Uint8Array(16),V=0;for(let Q=0;Q<4;Q++)V=V9(this,F5,"f")[G][Q],Z[4*Q]=(eH[Y[Q]>>24&255]^V>>24)&255,Z[4*Q+1]=(eH[Y[(Q+3)%4]>>16&255]^V>>16)&255,Z[4*Q+2]=(eH[Y[(Q+2)%4]>>8&255]^V>>8)&255,Z[4*Q+3]=(eH[Y[(Q+1)%4]&255]^V)&255;return Z}}WA=new WeakMap,F5=new WeakMap,o7=new WeakMap;class LJ{constructor(W,G,X){if(X&&!(this instanceof X))throw Error(`${W} must be instantiated with "new"`);Object.defineProperties(this,{aes:{enumerable:!0,value:new GA(G)},name:{enumerable:!0,value:W}})}}var XA=function(W,G,X,Y,Z){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!Z)throw TypeError("Private accessor was defined without a setter");if(typeof G==="function"?W!==G||!Z:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?Z.call(W,X):Z?Z.value=X:G.set(W,X),X},YZ=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},BJ,G6;class EJ extends LJ{constructor(W,G){super("ECC",W,EJ);if(BJ.set(this,void 0),G6.set(this,void 0),G){if(G.length%16)throw TypeError("invalid iv size (must be 16 bytes)");XA(this,BJ,new Uint8Array(G),"f")}else XA(this,BJ,new Uint8Array(16),"f");XA(this,G6,this.iv,"f")}get iv(){return new Uint8Array(YZ(this,BJ,"f"))}encrypt(W){if(W.length%16)throw TypeError("invalid plaintext size (must be multiple of 16 bytes)");let G=new Uint8Array(W.length);for(let X=0;X<W.length;X+=16){for(let Y=0;Y<16;Y++)YZ(this,G6,"f")[Y]^=W[X+Y];XA(this,G6,this.aes.encrypt(YZ(this,G6,"f")),"f"),G.set(YZ(this,G6,"f"),X)}return G}decrypt(W){if(W.length%16)throw TypeError("invalid ciphertext size (must be multiple of 16 bytes)");let G=new Uint8Array(W.length);for(let X=0;X<W.length;X+=16){let Y=this.aes.decrypt(W.subarray(X,X+16));for(let Z=0;Z<16;Z++)G[X+Z]=Y[Z]^YZ(this,G6,"f")[Z],YZ(this,G6,"f")[Z]=W[X+Z]}return G}}BJ=new WeakMap,G6=new WeakMap;var ZZ=function(W,G,X,Y,Z){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!Z)throw TypeError("Private accessor was defined without a setter");if(typeof G==="function"?W!==G||!Z:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?Z.call(W,X):Z?Z.value=X:G.set(W,X),X},S5=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},$J,mG,x5;class qW extends LJ{constructor(W,G){super("CTR",W,qW);if($J.set(this,void 0),mG.set(this,void 0),x5.set(this,void 0),ZZ(this,x5,new Uint8Array(16),"f"),S5(this,x5,"f").fill(0),ZZ(this,$J,S5(this,x5,"f"),"f"),ZZ(this,mG,16,"f"),G==null)G=1;if(typeof G==="number")this.setCounterValue(G);else this.setCounterBytes(G)}get counter(){return new Uint8Array(S5(this,x5,"f"))}setCounterValue(W){if(!Number.isInteger(W)||W<0||W>Number.MAX_SAFE_INTEGER)throw TypeError("invalid counter initial integer value");for(let G=15;G>=0;--G)S5(this,x5,"f")[G]=W%256,W=Math.floor(W/256)}setCounterBytes(W){if(W.length!==16)throw TypeError("invalid counter initial Uint8Array value length");S5(this,x5,"f").set(W)}increment(){for(let W=15;W>=0;W--)if(S5(this,x5,"f")[W]===255)S5(this,x5,"f")[W]=0;else{S5(this,x5,"f")[W]++;break}}encrypt(W){var G,X;let Y=new Uint8Array(W);for(let Z=0;Z<Y.length;Z++){if(S5(this,mG,"f")===16)ZZ(this,$J,this.aes.encrypt(S5(this,x5,"f")),"f"),ZZ(this,mG,0,"f"),this.increment();Y[Z]^=S5(this,$J,"f")[ZZ(this,mG,(X=S5(this,mG,"f"),G=X++,X),"f"),G]}return Y}decrypt(W){return this.encrypt(W)}}$J=new WeakMap,mG=new WeakMap,x5=new WeakMap;function WC(W){if(W.length<16)throw TypeError("PKCS#7 invalid length");let G=W[W.length-1];if(G>16)throw TypeError("PKCS#7 padding byte out of range");let X=W.length-G;for(let Y=0;Y<G;Y++)if(W[X+Y]!==G)throw TypeError("PKCS#7 invalid padding byte");return new Uint8Array(W.subarray(0,X))}function GC(W){if(typeof W==="string"&&!W.startsWith("0x"))W="0x"+W;return Y7(W)}function VZ(W,G){W=String(W);while(W.length<G)W="0"+W;return W}function fG(W){if(typeof W==="string")return P9(W,"NFKC");return Y7(W)}function K8(W,G){let X=G.match(/^([a-z0-9$_.-]*)(:([a-z]+))?(!)?$/i);s(X!=null,"invalid path","path",G);let Y=X[1],Z=X[3],V=X[4]==="!",Q=W;for(let J of Y.toLowerCase().split(".")){if(Array.isArray(Q)){if(!J.match(/^[0-9]+$/))break;Q=Q[parseInt(J)]}else if(typeof Q==="object"){let U=null;for(let q in Q)if(q.toLowerCase()===J){U=Q[q];break}Q=U}else Q=null;if(Q==null)break}if(s(!V||Q!=null,"missing required value","path",Y),Z&&Q!=null){if(Z==="int"){if(typeof Q==="string"&&Q.match(/^-?[0-9]+$/))return parseInt(Q);else if(Number.isSafeInteger(Q))return Q}if(Z==="number"){if(typeof Q==="string"&&Q.match(/^-?[0-9.]*$/))return parseFloat(Q)}if(Z==="data"){if(typeof Q==="string")return GC(Q)}if(Z==="array"&&Array.isArray(Q))return Q;if(Z===typeof Q)return Q;s(!1,`wrong type found for ${Z} `,"path",Y)}return Q}var K_="m/44'/60'/0'/0/0";function ZA(W){try{let G=JSON.parse(W);if((G.version!=null?parseInt(G.version):0)===3)return!0}catch(G){}return!1}function Xt(W,G,X){if(K8(W,"crypto.cipher:string")==="aes-128-ctr"){let Z=K8(W,"crypto.cipherparams.iv:data!"),V=new qW(G,Z);return C0(V.decrypt(X))}t0(!1,"unsupported cipher","UNSUPPORTED_OPERATION",{operation:"decrypt"})}function YA(W,G){let X=R0(G),Y=K8(W,"crypto.ciphertext:data!"),Z=C0(X8(s1([X.slice(16,32),Y]))).substring(2);s(Z===K8(W,"crypto.mac:string!").toLowerCase(),"incorrect password","password","[ REDACTED ]");let V=Xt(W,X.slice(0,16),Y),Q=s4(V);if(W.address){let q=W.address.toLowerCase();if(!q.startsWith("0x"))q="0x"+q;s(f1(q)===Q,"keystore address/privateKey mismatch","address",W.address)}let J={address:Q,privateKey:V};if(K8(W,"x-ethers.version:string")==="0.1"){let q=X.slice(32,64),N=K8(W,"x-ethers.mnemonicCiphertext:data!"),A=K8(W,"x-ethers.mnemonicCounter:data!"),H=new qW(q,A);J.mnemonic={path:K8(W,"x-ethers.path:string")||K_,locale:K8(W,"x-ethers.locale:string")||"en",entropy:C0(R0(H.decrypt(N)))}}return J}function C_(W){let G=K8(W,"crypto.kdf:string");if(G&&typeof G==="string"){if(G.toLowerCase()==="scrypt"){let X=K8(W,"crypto.kdfparams.salt:data!"),Y=K8(W,"crypto.kdfparams.n:int!"),Z=K8(W,"crypto.kdfparams.r:int!"),V=K8(W,"crypto.kdfparams.p:int!");s(Y>0&&(Y&Y-1)===0,"invalid kdf.N","kdf.N",Y),s(Z>0&&V>0,"invalid kdf","kdf",G);let Q=K8(W,"crypto.kdfparams.dklen:int!");return s(Q===32,"invalid kdf.dklen","kdf.dflen",Q),{name:"scrypt",salt:X,N:Y,r:Z,p:V,dkLen:64}}else if(G.toLowerCase()==="pbkdf2"){let X=K8(W,"crypto.kdfparams.salt:data!"),Y=K8(W,"crypto.kdfparams.prf:string!"),Z=Y.split("-").pop();s(Z==="sha256"||Z==="sha512","invalid kdf.pdf","kdf.pdf",Y);let V=K8(W,"crypto.kdfparams.c:int!"),Q=K8(W,"crypto.kdfparams.dklen:int!");return s(Q===32,"invalid kdf.dklen","kdf.dklen",Q),{name:"pbkdf2",salt:X,count:V,dkLen:Q,algorithm:Z}}}s(!1,"unsupported key-derivation function","kdf",G)}function XC(W,G){let X=JSON.parse(W),Y=fG(G),Z=C_(X);if(Z.name==="pbkdf2"){let{salt:A,count:H,dkLen:I,algorithm:w}=Z,C=L5(Y,A,H,I,w);return YA(X,C)}t0(Z.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:Z});let{salt:V,N:Q,r:J,p:U,dkLen:q}=Z,N=QW(Y,V,Q,J,U,q);return YA(X,N)}function O_(W){return new Promise((G)=>{setTimeout(()=>{G()},W)})}async function YC(W,G,X){let Y=JSON.parse(W),Z=fG(G),V=C_(Y);if(V.name==="pbkdf2"){if(X)X(0),await O_(0);let{salt:H,count:I,dkLen:w,algorithm:C}=V,D=L5(Z,H,I,w,C);if(X)X(1),await O_(0);return YA(Y,D)}t0(V.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:V});let{salt:Q,N:J,r:U,p:q,dkLen:N}=V,A=await VW(Z,Q,J,U,q,N,X);return YA(Y,A)}function D_(W){let G=W.salt!=null?R0(W.salt,"options.salt"):B5(32),X=131072,Y=8,Z=1;if(W.scrypt){if(W.scrypt.N)X=W.scrypt.N;if(W.scrypt.r)Y=W.scrypt.r;if(W.scrypt.p)Z=W.scrypt.p}return s(typeof X==="number"&&X>0&&Number.isSafeInteger(X)&&(BigInt(X)&BigInt(X-1))===BigInt(0),"invalid scrypt N parameter","options.N",X),s(typeof Y==="number"&&Y>0&&Number.isSafeInteger(Y),"invalid scrypt r parameter","options.r",Y),s(typeof Z==="number"&&Z>0&&Number.isSafeInteger(Z),"invalid scrypt p parameter","options.p",Z),{name:"scrypt",dkLen:32,salt:G,N:X,r:Y,p:Z}}function M_(W,G,X,Y){let Z=R0(X.privateKey,"privateKey"),V=Y.iv!=null?R0(Y.iv,"options.iv"):B5(16);s(V.length===16,"invalid options.iv length","options.iv",Y.iv);let Q=Y.uuid!=null?R0(Y.uuid,"options.uuid"):B5(16);s(Q.length===16,"invalid options.uuid length","options.uuid",Y.iv);let J=W.slice(0,16),U=W.slice(16,32),q=new qW(J,V),N=R0(q.encrypt(Z)),A=X8(s1([U,N])),H={address:X.address.substring(2).toLowerCase(),id:$H(Q),version:3,Crypto:{cipher:"aes-128-ctr",cipherparams:{iv:C0(V).substring(2)},ciphertext:C0(N).substring(2),kdf:"scrypt",kdfparams:{salt:C0(G.salt).substring(2),n:G.N,dklen:32,p:G.p,r:G.r},mac:A.substring(2)}};if(X.mnemonic){let I=Y.client!=null?Y.client:`ethers/${CH}`,w=X.mnemonic.path||K_,C=X.mnemonic.locale||"en",D=W.slice(32,64),x=R0(X.mnemonic.entropy,"account.mnemonic.entropy"),h=B5(16),l=new qW(D,h),u=R0(l.encrypt(x)),n=new Date,p="UTC--"+(n.getUTCFullYear()+"-"+VZ(n.getUTCMonth()+1,2)+"-"+VZ(n.getUTCDate(),2)+"T"+VZ(n.getUTCHours(),2)+"-"+VZ(n.getUTCMinutes(),2)+"-"+VZ(n.getUTCSeconds(),2)+".0Z")+"--"+H.address;H["x-ethers"]={client:I,gethFilename:p,path:w,locale:C,mnemonicCounter:C0(h).substring(2),mnemonicCiphertext:C0(u).substring(2),version:"0.1"}}return JSON.stringify(H)}function FJ(W,G,X){if(X==null)X={};let Y=fG(G),Z=D_(X),V=QW(Y,Z.salt,Z.N,Z.r,Z.p,64);return M_(R0(V),Z,W,X)}async function SJ(W,G,X){if(X==null)X={};let Y=fG(G),Z=D_(X),V=await VW(Y,Z.salt,Z.N,Z.r,Z.p,64,X.progressCallback);return M_(R0(V),Z,W,X)}var xJ="m/44'/60'/0'/0/0",Yt=new Uint8Array([66,105,116,99,111,105,110,32,115,101,101,100]),NW=2147483648,Zt=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Vt="0123456789abcdef";function VA(W,G){let X="";while(W)X=Vt[W%16]+X,W=Math.trunc(W/16);while(X.length<G*2)X="0"+X;return"0x"+X}function ZC(W){let G=R0(W),X=nY(L9(L9(G)),0,4),Y=s1([G,X]);return BH(Y)}var n7={};function T_(W,G,X,Y){let Z=new Uint8Array(37);if(W&NW)t0(Y!=null,"cannot derive child of neutered node","UNSUPPORTED_OPERATION",{operation:"deriveChild"}),Z.set(R0(Y),1);else Z.set(R0(X));for(let Q=24;Q>=0;Q-=8)Z[33+(Q>>3)]=W>>24-Q&255;let V=R0(GW("sha512",G,Z));return{IL:V.slice(0,32),IR:V.slice(32)}}function P_(W,G){let X=G.split("/");if(s(X.length>0,"invalid path","path",G),X[0]==="m")s(W.depth===0,`cannot derive root path (i.e. path starting with "m/") for a node at non-zero depth ${W.depth}`,"path",G),X.shift();let Y=W;for(let Z=0;Z<X.length;Z++){let V=X[Z];if(V.match(/^[0-9]+'$/)){let Q=parseInt(V.substring(0,V.length-1));s(Q<NW,"invalid path index",`path[${Z}]`,V),Y=Y.deriveChild(NW+Q)}else if(V.match(/^[0-9]+$/)){let Q=parseInt(V);s(Q<NW,"invalid path index",`path[${Z}]`,V),Y=Y.deriveChild(Q)}else s(!1,"invalid path component",`path[${Z}]`,V)}return Y}class Q9 extends bG{publicKey;fingerprint;parentFingerprint;mnemonic;chainCode;path;index;depth;constructor(W,G,X,Y,Z,V,Q,J,U){super(G,U);l4(W,n7,"HDNodeWallet"),Q8(this,{publicKey:G.compressedPublicKey});let q=nY(XW(L9(this.publicKey)),0,4);Q8(this,{parentFingerprint:X,fingerprint:q,chainCode:Y,path:Z,index:V,depth:Q}),Q8(this,{mnemonic:J})}connect(W){return new Q9(n7,this.signingKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.mnemonic,W)}#W(){let W={address:this.address,privateKey:this.privateKey},G=this.mnemonic;if(this.path&&G&&G.wordlist.locale==="en"&&G.password==="")W.mnemonic={path:this.path,locale:"en",entropy:G.entropy};return W}async encrypt(W,G){return await SJ(this.#W(),W,{progressCallback:G})}encryptSync(W){return FJ(this.#W(),W)}get extendedKey(){return t0(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),ZC(s1(["0x0488ADE4",VA(this.depth,1),this.parentFingerprint,VA(this.index,4),this.chainCode,s1(["0x00",this.privateKey])]))}hasPath(){return this.path!=null}neuter(){return new cG(n7,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.provider)}deriveChild(W){let G=i8(W,"index");s(G<=4294967295,"invalid index","index",G);let X=this.path;if(X){if(X+="/"+(G&~NW),G&NW)X+="'"}let{IR:Y,IL:Z}=T_(G,this.chainCode,this.publicKey,this.privateKey),V=new d8(Z7((rY(Z)+BigInt(this.privateKey))%Zt,32));return new Q9(n7,V,this.fingerprint,C0(Y),X,G,this.depth+1,this.mnemonic,this.provider)}derivePath(W){return P_(this,W)}static#G(W,G){s(l7(W),"invalid seed","seed","[REDACTED]");let X=R0(W,"seed");s(X.length>=16&&X.length<=64,"invalid seed","seed","[REDACTED]");let Y=R0(GW("sha512",Yt,X)),Z=new d8(C0(Y.slice(0,32)));return new Q9(n7,Z,"0x00000000",C0(Y.slice(32)),"m",0,0,G,null)}static fromExtendedKey(W){let G=J8(EH(W));s(G.length===82||ZC(G.slice(0,78))===W,"invalid extended key","extendedKey","[ REDACTED ]");let X=G[4],Y=C0(G.slice(5,9)),Z=parseInt(C0(G.slice(9,13)).substring(2),16),V=C0(G.slice(13,45)),Q=G.slice(45,78);switch(C0(G.slice(0,4))){case"0x0488b21e":case"0x043587cf":{let J=C0(Q);return new cG(n7,s4(J),J,Y,V,null,Z,X,null)}case"0x0488ade4":case"0x04358394 ":if(Q[0]!==0)break;return new Q9(n7,new d8(Q.slice(1)),Y,V,null,Z,X,null,null)}s(!1,"invalid extended key prefix","extendedKey","[ REDACTED ]")}static createRandom(W,G,X){if(W==null)W="";if(G==null)G=xJ;if(X==null)X=e4.wordlist();let Y=W6.fromEntropy(B5(16),W,X);return Q9.#G(Y.computeSeed(),Y).derivePath(G)}static fromMnemonic(W,G){if(!G)G=xJ;return Q9.#G(W.computeSeed(),W).derivePath(G)}static fromPhrase(W,G,X,Y){if(G==null)G="";if(X==null)X=xJ;if(Y==null)Y=e4.wordlist();let Z=W6.fromPhrase(W,G,Y);return Q9.#G(Z.computeSeed(),Z).derivePath(X)}static fromSeed(W){return Q9.#G(W,null)}}class cG extends RJ{publicKey;fingerprint;parentFingerprint;chainCode;path;index;depth;constructor(W,G,X,Y,Z,V,Q,J,U){super(G,U);l4(W,n7,"HDNodeVoidWallet"),Q8(this,{publicKey:X});let q=nY(XW(L9(X)),0,4);Q8(this,{publicKey:X,fingerprint:q,parentFingerprint:Y,chainCode:Z,path:V,index:Q,depth:J})}connect(W){return new cG(n7,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,W)}get extendedKey(){return t0(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),ZC(s1(["0x0488B21E",VA(this.depth,1),this.parentFingerprint,VA(this.index,4),this.chainCode,this.publicKey]))}hasPath(){return this.path!=null}deriveChild(W){let G=i8(W,"index");s(G<=4294967295,"invalid index","index",G);let X=this.path;if(X){if(X+="/"+(G&~NW),G&NW)X+="'"}let{IR:Y,IL:Z}=T_(G,this.chainCode,this.publicKey,null),V=d8.addPoints(Z,this.publicKey,!0),Q=s4(V);return new cG(n7,Q,V,this.fingerprint,C0(Y),X,G,this.depth+1,this.provider)}derivePath(W){return P_(this,W)}}function QA(W){try{if(JSON.parse(W).encseed)return!0}catch(G){}return!1}function JA(W,G){let X=JSON.parse(W),Y=fG(G),Z=f1(K8(X,"ethaddr:string!")),V=GC(K8(X,"encseed:string!"));s(V&&V.length%16===0,"invalid encseed","json",W);let Q=R0(L5(Y,Y,2000,32,"sha256")).slice(0,16),J=V.slice(0,16),U=V.slice(16),q=new EJ(Q,J),N=WC(R0(q.decrypt(U))),A="";for(let H=0;H<N.length;H++)A+=String.fromCharCode(N[H]);return{address:Z,privateKey:t4(A)}}function R_(W){return new Promise((G)=>{setTimeout(()=>{G()},W)})}class X6 extends bG{constructor(W,G){if(typeof W==="string"&&!W.startsWith("0x"))W="0x"+W;let X=typeof W==="string"?new d8(W):W;super(X,G)}connect(W){return new X6(this.signingKey,W)}async encrypt(W,G){let X={address:this.address,privateKey:this.privateKey};return await SJ(X,W,{progressCallback:G})}encryptSync(W){let G={address:this.address,privateKey:this.privateKey};return FJ(G,W)}static#W(W){if(s(W,"invalid JSON wallet","json","[ REDACTED ]"),"mnemonic"in W&&W.mnemonic&&W.mnemonic.locale==="en"){let X=W6.fromEntropy(W.mnemonic.entropy),Y=Q9.fromMnemonic(X,W.mnemonic.path);if(Y.address===W.address&&Y.privateKey===W.privateKey)return Y;console.log("WARNING: JSON mismatch address/privateKey != mnemonic; fallback onto private key")}let G=new X6(W.privateKey);return s(G.address===W.address,"address/privateKey mismatch","json","[ REDACTED ]"),G}static async fromEncryptedJson(W,G,X){let Y=null;if(ZA(W))Y=await YC(W,G,X);else if(QA(W)){if(X)X(0),await R_(0);if(Y=JA(W,G),X)X(1),await R_(0)}return X6.#W(Y)}static fromEncryptedJsonSync(W,G){let X=null;if(ZA(W))X=XC(W,G);else if(QA(W))X=JA(W,G);else s(!1,"invalid JSON wallet","json","[ REDACTED ]");return X6.#W(X)}static createRandom(W){let G=Q9.createRandom();if(W)return G.connect(W);return G}static fromPhrase(W,G){let X=Q9.fromPhrase(W);if(G)return X.connect(G);return X}}function L_(W,G=[]){let X=String(W??"").trim();if(!X)throw Error("sm-server: signing key required (GDB_SM_KEY)");let Y=X.includes(" ")?Q9.fromPhrase(X):new X6(X),Z=f1(Y.address),V=new Set([...G,Z].map((N)=>{try{return f1(N)}catch{return null}}).filter(Boolean)),Q=(N)=>{let A=(H)=>H&&typeof H==="object"&&!Array.isArray(H)?Object.keys(H).sort().reduce((I,w)=>(I[w]=A(H[w]),I),{}):Array.isArray(H)?H.map(A):H;return JSON.stringify(A(N))};return{address:Z,superAdmins:V,canonicalize:Q,signOps:async(N)=>{let A=[];for(let H of N){if(H?.signature&&H?.originEthAddress&&H?.originUser){A.push(H);continue}let I={...H,originUser:Z},w=await Y.signMessage(P9(Q(I)));A.push({...H,originUser:Z,originEthAddress:Z,signature:w})}return A},verifyOp:(N)=>{if(!N?.signature||!N?.originEthAddress||!N?.originUser)return{ok:!1,reason:"missing-fields"};let A;try{if(A=f1(N.originEthAddress),f1(N.originUser)!==A)return{ok:!1,reason:"address-mismatch"}}catch{return{ok:!1,reason:"invalid-address"}}let{signature:H,originEthAddress:I,...w}=N;try{let C=rH(P9(Q(w)),H);if(f1(C)!==A)return{ok:!1,reason:"invalid-signature"};let{originUser:D,...x}=w;return{ok:!0,normalizedOriginEthAddress:A,payload:x}}catch(C){return{ok:!1,reason:"verify-error",error:C}}},isSuperAdmin:(N)=>{try{return V.has(f1(N))}catch{return!1}}}}var Ut=["guest","user","manager","admin","superadmin"];function B_(W,G,X,{intervalMs:Y=4000,settleMs:Z=15000,customRoles:V=null}={}){let Q=new Set([...Ut,...Object.keys(V??{})]),J=async(A,H,I=null)=>{let w=f1(A);if(!Q.has(H))throw Error(`Role '${H}' is not a defined role.`);let C=`user:${w}`,D=(await W.get(C)).result?.value||{};await W.put({...D,ethAddress:w,role:H,assignedByEthAddress:G.address,expiresAt:I?new Date(I).toISOString():null,priority:!0},C)},U=async()=>{let A=new Map;for(let H of X){let I=H.then?.assignRole;if(!I)continue;let w=[];try{({results:w=[]}=W.map({query:H.if}))}catch(C){console.error("\u274C GOVERNANCE: rule evaluation failed:",C.message);continue}for(let C of w){if(!C.id.startsWith("user:"))continue;if(G.isSuperAdmin(C.id.slice(5)))continue;if(H.offsetTimestamp&&(C.timestamp?.physical??0)>Date.now()-H.offsetTimestamp)continue;A.set(C.id,{role:I,current:C.value?.role})}}for(let[H,{role:I,current:w}]of A){if(w===I)continue;try{await J(H.slice(5),I),console.info(`\uD83D\uDCDC GOVERNANCE: ${H.slice(5)} '${w}' -> '${I}'`)}catch(C){console.error("\u274C GOVERNANCE: assignRole failed:",C.message)}}},q=null,N=setTimeout(()=>{q=setInterval(U,Y),console.info(`\uD83D\uDCDC GOVERNANCE ENGINE: active \u2014 ${X.length} rule(s), every ${Y} ms.`)},Z);return{assignRole:J,stop:()=>{if(clearTimeout(N),q)clearInterval(q)}}}var QC=(W)=>W&&typeof W==="object"?structuredClone(W):W,VC=(W,G=16)=>{let X=null,Y=null;return(...Z)=>{if(Y??=Promise.withResolvers(),X!==null)clearTimeout(X);return X=setTimeout(async()=>{X=null;try{Y.resolve(await W(...Z))}catch(V){Y.reject(V)}finally{Y=null}},G),Y.promise}},At=(W)=>{let G=!1;return()=>{if(G)return;G=!0,setImmediate(()=>{G=!1,W()})}};function zt(W=1000){let G=[];return{add(X){if(X?.timestamp){if(G.push(X),G.length>W)G.splice(0,G.length-W)}},getOldest:()=>G[0]??null,getDelta:(X,Y)=>X?G.filter((Z)=>Y(Z.timestamp,X)>0):[...G],clear(){G=[]},entries:()=>[...G],setEntries(X=[]){if(G=Array.isArray(X)?[...X]:[],G.length>W)G.splice(0,G.length-W)}}}function It(){let W={nodes:{}};return{get nodes(){return W.nodes},set nodes(G){W.nodes=G??{}},upsert(G,X,Y){let Z=W.nodes[G];W.nodes[G]={id:G,value:QC(X),edges:Z?.edges?[...Z.edges]:[],timestamp:Y}},get:(G)=>W.nodes[G]??null,link(G,X,Y){let Z=W.nodes[G],V=W.nodes[X];if(Z&&V&&!Z.edges.includes(X))W.nodes[G]={...Z,edges:[...Z.edges,X],timestamp:Y}},getAllNodes:()=>Object.values(W.nodes),serialize:()=>q6.deflate(qZ(W.nodes)),deserialize(G){let X=G instanceof Uint8Array?G:new Uint8Array(G);W.nodes=Y6(q6.inflate(X))}}}function wt(W,G){let X=Ht(W);if(X&&X!==".")Nt(X,{recursive:!0});let Y=new qt(W);Y.exec("PRAGMA journal_mode = WAL"),Y.exec("PRAGMA synchronous = NORMAL"),Y.exec(`
|
|
251
|
+
`)!==this.#G)throw Error(`BIP39 Wordlist for ${this.locale} FAILED`);this.#X=W}return this.#X}getWord(W){let G=this.#Y();return s(W>=0&&W<G.length,`invalid word index: ${W}`,"index",W),G[W]}getWordIndex(W){return this.#Y().indexOf(W)}}var bs="0erleonalorenseinceregesticitStanvetearctssi#ch2Athck&tneLl0And#Il.yLeOutO=S|S%b/ra@SurdU'0Ce[Cid|CountCu'Hie=IdOu,-Qui*Ro[TT]T%T*[Tu$0AptDD-tD*[Ju,M.UltV<)Vi)0Rob-0FairF%dRaid0A(EEntRee0Ead0MRRp%tS!_rmBumCoholErtI&LLeyLowMo,O}PhaReadySoT Ways0A>urAz(gOngOuntU'd0Aly,Ch%Ci|G G!GryIm$K!Noun)Nu$O` Sw T&naTiqueXietyY1ArtOlogyPe?P!Pro=Ril1ChCt-EaEnaGueMMedM%MyOundR<+Re,Ri=RowTTefa@Ti,Tw%k0KPe@SaultSetSi,SumeThma0H!>OmTa{T&dT.udeTra@0Ct]D.Gu,NtTh%ToTumn0Era+OcadoOid0AkeA*AyEsomeFulKw?d0Is:ByChel%C#D+GL<)Lc#y~MbooN<aNn RRelyRga(R*lSeS-SketTt!3A^AnAutyCau'ComeEfF%eG(Ha=H(dLie=LowLtN^Nef./TrayTt Twe&Y#d3Cyc!DKeNdOlogyRdR`Tt _{AdeAmeAnketA,EakE[IndOodO[omOu'UeUrUsh_rdAtDyIlMbNeNusOkO,Rd R(gRrowSsTtomUn)XY_{etA(AndA[A=EadEezeI{Id+IefIghtIngIskOccoliOk&OnzeOomO` OwnUsh2Bb!DdyD+tFf$oIldLbLkL!tNd!Nk Rd&Rg R,SS(e[SyTt Y Zz:Bba+B(B!CtusGeKe~LmM aMpNN$N)lNdyNn#NoeNvasNy#Pab!P.$Pta(RRb#RdRgoRpetRryRtSeShS(o/!Su$TT$ogT^Teg%yTt!UghtU'Ut]Ve3Il(gL yM|NsusNturyRe$Rta(_irAlkAmp]An+AosApt Ar+A'AtEapE{Ee'EfErryE,I{&IefIldIm}yOi)Oo'R#-U{!UnkUrn0G?Nnam#Rc!Tiz&TyVil_imApArifyAwAyE<ErkEv I{I|IffImbIn-IpO{OgO'O`OudOwnUbUmpU, Ut^_^A,C#utDeFfeeIlInL!@L%LumnMb(eMeMf%tM-Mm#Mp<yNc tNdu@NfirmNg*[N}@Nsid NtrolNv()OkOlPp PyR$ReRnR*@/Tt#U^UntryUp!Ur'Us(V Yo>_{Ad!AftAmA}AshAt AwlAzyEamEd.EekEwI{etImeIspIt-OpO[Ou^OwdUci$UelUi'Umb!Un^UshYY,$2BeLtu*PPbo?dRiousRr|Rta(R=Sh]/omTe3C!:DMa+MpN)Ng R(gShUght WnY3AlBa>BrisCadeCemb CideCl(eC%a>C*a'ErF&'F(eFyG*eLayLiv M<dMi'Ni$Nti,NyP?tP&dPos.P`PutyRi=ScribeS tSignSkSpair/royTailTe@VelopVi)Vo>3AgramAlAm#dAryCeE'lEtFf G.$Gn.yLemmaNn NosaurRe@RtSag*eScov Sea'ShSmi[S%d Splay/<)V tVideV%)Zzy5Ct%Cum|G~Lph(Ma(Na>NkeyN%OrSeUb!Ve_ftAg#AmaA,-AwEamE[IftIllInkIpI=OpUmY2CkMbNeR(g/T^Ty1Arf1Nam-:G G!RlyRnR`Sily/Sy1HoOlogyOnomy0GeItUca>1F%t0G1GhtTh 2BowD E@r-Eg<tEm|Eph<tEvat%I>Se0B?kBodyBra)Er+Ot]PloyPow Pty0Ab!A@DD![D%'EmyErgyF%)Ga+G(eH<)JoyLi,OughR-hRollSu*T Ti*TryVelope1Isode0U$Uip0AA'OdeOs]R%Upt0CapeSayS&)Ta>0Ern$H-s1Id&)IlOkeOl=1A@Amp!Ce[Ch<+C.eCludeCu'Ecu>Erci'Hau,Hib.I!I,ItOt-P<dPe@Pi*Pla(Po'P*[T&dTra0EEbrow:Br-CeCultyDeIntI`~L'MeMilyMousNNcyNtasyRmSh]TT$Th TigueUltV%.e3Atu*Bru?yD $EEdElMa!N)/iv$T^V W3B Ct]EldGu*LeLmLt N$NdNeNg NishReRmR,Sc$ShTT}[X_gAmeAshAtAv%EeIghtIpOatO{O%Ow UidUshY_mCusGIlLd~owOdOtR)Re,R+tRkRtu}RumRw?dSsil/ UndX_gi!AmeEqu|EshI&dIn+OgOntO,OwnOz&U.2ElNNnyRna)RyTu*:D+tInLaxy~ yMePRa+Rba+Rd&Rl-Rm|SSpTeTh U+Ze3N $NiusN*Nt!Nu(e/u*2O,0AntFtGg!Ng RaffeRlVe_dAn)A*A[IdeImp'ObeOomOryO=OwUe_tDde[LdOdO'RillaSpelSsipV nWn_bA)A(AntApeA[Av.yEatE&IdIefItOc yOupOwUnt_rdE[IdeIltIt?N3M:B.IrLfMm M, NdPpyRb%RdRshR=,TVeWkZ?d3AdAl`ArtAvyD+hogIght~oLmetLpNRo3Dd&Gh~NtPRe/%y5BbyCkeyLdLeLiday~owMeNeyOdPeRnRr%R'Sp.$/TelUrV 5BGeM<Mb!M%Nd*dNgryNtRd!RryRtSb<d3Brid:1EOn0EaEntifyLe2N%e4LLeg$L}[0A+Ita>M&'Mu}Pa@Po'Pro=Pul'0ChCludeComeC*a'DexD-a>Do%Du,ryF<tFl-tF%mHa!H .Iti$Je@JuryMa>N Noc|PutQuiryS<eSe@SideSpi*/$lTa@T e,ToVe,V.eVol=3On0L<dOla>Sue0Em1Ory:CketGu?RZz3AlousAns~yWel9BInKeUr}yY5D+I)MpNg!Ni%Nk/:Ng?oo3EnEpT^upY3CkDD}yNdNgdomSsTT^&TeTt&Wi4EeIfeO{Ow:BBelB%Dd DyKeMpNgua+PtopR+T T(UghUndryVaWWnWsu.Y Zy3Ad AfArnA=Ctu*FtGG$G&dIsu*M#NdNg`NsOp?dSs#Tt Vel3ArB tyBr?yC&'FeFtGhtKeMbM.NkOnQuid/Tt!VeZ?d5AdAnB, C$CkG-NelyNgOpTt yUdUn+VeY$5CkyGga+Mb N?N^Xury3R-s:Ch(eDG-G}tIdIlInJ%KeMm$NNa+Nda>NgoNs]Nu$P!Rb!R^Rg(R(eRketRria+SkSs/ T^T i$ThTrixTt XimumZe3AdowAnAsu*AtCh<-D$DiaLodyLtMb M%yNt]NuRcyR+R.RryShSsa+T$Thod3Dd!DnightLk~]M-NdNimumN%Nu>Rac!Rr%S ySs/akeXXedXtu*5Bi!DelDifyMM|N.%NkeyN, N`OnR$ReRn(gSqu.oTh T]T%Unta(U'VeVie5ChFf(LeLtiplySc!SeumShroomS-/Tu$3Self/ yTh:I=MePk(Rrow/yT]Tu*3ArCkEdGati=G!@I` PhewR=/TTw%kUtr$V WsXt3CeGht5B!I'M(eeOd!Rm$R`SeTab!TeTh(gTi)VelW5C!?Mb R'T:K0EyJe@Li+Scu*S =Ta(Vious0CurE<Tob 0Or1FF Fi)T&2L1Ay0DI=Ymp-0It0CeEI#L(eLy1EnEraIn]Po'T]1An+B.Ch?dD D(?yG<I|Ig($Ph<0Tr-h0H 0Tdo%T TputTside0AlEnEr0NN 0Yg&0/ 0O}:CtDd!GeIrLa)LmNdaNelN-N` P RadeR|RkRrotRtySsT^ThTi|TrolTt nU'VeYm|3A)AnutArAs<tL-<NN$tyNcilOp!Pp Rfe@Rm.Rs#T2O}OtoRa'Ys-$0AnoCn-Ctu*E)GGe#~LotNkO} Pe/olT^Zza_)A}tA,-A>AyEa'Ed+U{UgUn+2EmEtIntL?LeLi)NdNyOlPul?Rt]S.]Ssib!/TatoTt yV tyWd W _@i)Ai'Ed-tEf Epa*Es|EttyEv|I)IdeIm?yIntI%.yIs#Iva>IzeOb!mO)[Odu)Of.OgramOje@Omo>OofOp tyOsp O>@OudOvide2Bl-Dd(g~LpL'Mpk(N^PilPpyR^a'R.yRpo'R'ShTZz!3Ramid:99Al.yAntumArt E,]I{ItIzO>:Bb.Cco#CeCkD?DioIlInI'~yMpN^NdomN+PidReTeTh V&WZ%3AdyAlAs#BelBuildC$lCei=CipeC%dCyc!Du)F!@F%mFu'G]G*tGul?Je@LaxLea'LiefLyMa(Memb M(dMo=Nd NewNtOp&PairPeatPla)P%tQui*ScueSemb!Si,Sour)Sp#'SultTi*T*atTurnUn]Ve$ViewW?d2Y`m0BBb#CeChDeD+F!GhtGidNgOtPp!SkTu$V$V 5AdA,BotBu,CketM<)OfOkieOmSeTa>UghUndU>Y$5Bb DeGLeNNwayR$:DDd!D}[FeIlLadLm#L#LtLu>MeMp!NdTisfyToshiU)Usa+VeY1A!AnA*Att E}HemeHoolI&)I[%sOrp]OutRapRe&RiptRub1AAr^As#AtC#dC*tCt]Cur.yEdEkGm|Le@~M(?Ni%N'Nt&)RiesRvi)Ss]Tt!TupV&_dowAftAllowA*EdEllEriffIeldIftI}IpIv O{OeOotOpOrtOuld O=RimpRugUff!Y0Bl(gCkDeE+GhtGnL|Lk~yLv Mil?Mp!N)NgR&/ Tua>XZe1A>Et^IIllInIrtUll0AbAmEepEnd I)IdeIghtImOg<OtOwUsh0AllArtI!OkeOo`0A{AkeApIffOw0ApCc Ci$CkDaFtL?Ldi LidLut]L=Me#eNgOnRryRtUlUndUpUr)U`0A)A*Ati$AwnEakEci$EedEllEndH eI)Id IkeInIr.L.OilOns%O#OrtOtRayReadR(gY0Ua*UeezeUir*l_b!AdiumAffA+AirsAmpAndArtA>AyEakEelEmEpE*oI{IllIngO{Oma^O}OolOryO=Ra>gyReetRikeR#gRugg!Ud|UffUmb!Y!0Bje@Bm.BwayC)[ChDd&Ff G?G+,ItMm NNnyN'tP PplyP*meReRfa)R+Rpri'RroundR=ySpe@/a(1AllowAmpApArmE?EetIftImIngIt^Ord1MbolMptomRup/em:B!Ck!GIlL|LkNkPeR+tSk/eTtooXi3A^Am~NN<tNnisNtRm/Xt_nkAtEmeEnE%yE*EyIngIsOughtReeRi=RowUmbUnd 0CketDeG LtMb MeNyPRedSsueT!5A,BaccoDayDdl EGe` I!tK&MatoM%rowNeNgueNightOlO`PP-Pp!R^RnadoRtoi'SsT$Uri,W?dW WnY_{AdeAff-Ag-A(Ansf ApAshA=lAyEatEeEndI$IbeI{Igg ImIpOphyOub!U{UeUlyUmpetU,U`Y2BeIt]Mb!NaN}lRkeyRnRt!1El=EntyI)InI,O1PeP-$:5Ly5B*lla0Ab!Awa*C!Cov D DoFairFoldHappyIf%mIqueItIv 'KnownLo{TilUsu$Veil1Da>GradeHoldOnP Set1B<Ge0A+EEdEfulE![U$0Il.y:C<tCuumGueLidL!yL=NNishP%Rious/Ult3H-!L=tNd%Ntu*NueRbRifyRs]RyS'lT <3Ab!Br<tCiousCt%yDeoEw~a+Nta+Ol(Rtu$RusSaS.Su$T$Vid5C$I)IdLc<oLumeTeYa+:GeG#ItLk~LnutNtRfa*RmRri%ShSp/eT VeY3Al`Ap#ArA'lA` BDd(gEk&dIrdLcome/T_!AtEatEelEnE*IpIsp 0DeD`FeLd~NNdowNeNgNkNn Nt ReSdomSeShT}[5LfM<Nd OdOlRdRkRldRryR`_pE{E,!I,I>Ong::Rd3Ar~ow9UUngU`:3BraRo9NeO",ms="0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60",iK=null;class e4 extends nK{constructor(){super("en",bs,ms)}static wordlist(){if(iK==null)iK=new e4;return iK}}function j_(W){return(1<<W)-1<<8-W&255}function fs(W){return(1<<W)-1&255}function rK(W,G){if(oY("NFKD"),G==null)G=e4.wordlist();let X=G.split(W);s(X.length%3===0&&X.length>=12&&X.length<=24,"invalid mnemonic length","mnemonic","[ REDACTED ]");let Y=new Uint8Array(Math.ceil(11*X.length/8)),Z=0;for(let q=0;q<X.length;q++){let N=G.getWordIndex(X[q].normalize("NFKD"));s(N>=0,`invalid mnemonic word at index ${q}`,"mnemonic","[ REDACTED ]");for(let A=0;A<11;A++){if(N&1<<10-A)Y[Z>>3]|=1<<7-Z%8;Z++}}let V=32*X.length/3,Q=X.length/3,J=j_(Q),U=R0(L9(Y.slice(0,V/8)))[0]&J;return s(U===(Y[Y.length-1]&J),"invalid mnemonic checksum","mnemonic","[ REDACTED ]"),C0(Y.slice(0,V/8))}function aK(W,G){if(s(W.length%4===0&&W.length>=16&&W.length<=32,"invalid entropy size","entropy","[ REDACTED ]"),G==null)G=e4.wordlist();let X=[0],Y=11;for(let Q=0;Q<W.length;Q++)if(Y>8)X[X.length-1]<<=8,X[X.length-1]|=W[Q],Y-=8;else X[X.length-1]<<=Y,X[X.length-1]|=W[Q]>>8-Y,X.push(W[Q]&fs(8-Y)),Y+=3;let Z=W.length/4,V=parseInt(L9(W).substring(2,4),16)&j_(Z);return X[X.length-1]<<=Z,X[X.length-1]|=V>>8-Z,G.join(X.map((Q)=>G.getWord(Q)))}var sK={};class W6{phrase;password;wordlist;entropy;constructor(W,G,X,Y,Z){if(Y==null)Y="";if(Z==null)Z=e4.wordlist();l4(W,sK,"Mnemonic"),Q8(this,{phrase:X,password:Y,wordlist:Z,entropy:G})}computeSeed(){let W=P9("mnemonic"+this.password,"NFKD");return L5(P9(this.phrase,"NFKD"),W,2048,64,"sha512")}static fromPhrase(W,G,X){let Y=rK(W,X);return W=aK(R0(Y),X),new W6(sK,Y,W,G,X)}static fromEntropy(W,G,X){let Y=R0(W,"entropy"),Z=aK(Y,X);return new W6(sK,C0(Y),Z,G,X)}static entropyToPhrase(W,G){let X=R0(W,"entropy");return aK(X,G)}static phraseToEntropy(W,G){return rK(W,G)}static isValidMnemonic(W,G){try{return rK(W,G),!0}catch(X){}return!1}}/*! MIT License. Copyright 2015-2022 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */var V9=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},tK=function(W,G,X,Y,Z){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!Z)throw TypeError("Private accessor was defined without a setter");if(typeof G==="function"?W!==G||!Z:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?Z.call(W,X):Z?Z.value=X:G.set(W,X),X},WA,F5,o7,cs={16:10,24:12,32:14},ps=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],$5=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],eH=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],ls=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],ds=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],os=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],ns=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],is=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],rs=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],as=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239000,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],ss=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998000,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],ts=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],es=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],Wt=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239000,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],Gt=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998000,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function eK(W){let G=[];for(let X=0;X<W.length;X+=4)G.push(W[X]<<24|W[X+1]<<16|W[X+2]<<8|W[X+3]);return G}class GA{get key(){return V9(this,WA,"f").slice()}constructor(W){if(WA.set(this,void 0),F5.set(this,void 0),o7.set(this,void 0),!(this instanceof GA))throw Error("AES must be instanitated with `new`");tK(this,WA,new Uint8Array(W),"f");let G=cs[this.key.length];if(G==null)throw TypeError("invalid key size (must be 16, 24 or 32 bytes)");tK(this,o7,[],"f"),tK(this,F5,[],"f");for(let q=0;q<=G;q++)V9(this,o7,"f").push([0,0,0,0]),V9(this,F5,"f").push([0,0,0,0]);let X=(G+1)*4,Y=this.key.length/4,Z=eK(this.key),V;for(let q=0;q<Y;q++)V=q>>2,V9(this,o7,"f")[V][q%4]=Z[q],V9(this,F5,"f")[G-V][q%4]=Z[q];let Q=0,J=Y,U;while(J<X){if(U=Z[Y-1],Z[0]^=$5[U>>16&255]<<24^$5[U>>8&255]<<16^$5[U&255]<<8^$5[U>>24&255]^ps[Q]<<24,Q+=1,Y!=8)for(let H=1;H<Y;H++)Z[H]^=Z[H-1];else{for(let H=1;H<Y/2;H++)Z[H]^=Z[H-1];U=Z[Y/2-1],Z[Y/2]^=$5[U&255]^$5[U>>8&255]<<8^$5[U>>16&255]<<16^$5[U>>24&255]<<24;for(let H=Y/2+1;H<Y;H++)Z[H]^=Z[H-1]}let q=0,N,A;while(q<Y&&J<X)N=J>>2,A=J%4,V9(this,o7,"f")[N][A]=Z[q],V9(this,F5,"f")[G-N][A]=Z[q++],J++}for(let q=1;q<G;q++)for(let N=0;N<4;N++)U=V9(this,F5,"f")[q][N],V9(this,F5,"f")[q][N]=ts[U>>24&255]^es[U>>16&255]^Wt[U>>8&255]^Gt[U&255]}encrypt(W){if(W.length!=16)throw TypeError("invalid plaintext size (must be 16 bytes)");let G=V9(this,o7,"f").length-1,X=[0,0,0,0],Y=eK(W);for(let Q=0;Q<4;Q++)Y[Q]^=V9(this,o7,"f")[0][Q];for(let Q=1;Q<G;Q++){for(let J=0;J<4;J++)X[J]=ls[Y[J]>>24&255]^ds[Y[(J+1)%4]>>16&255]^os[Y[(J+2)%4]>>8&255]^ns[Y[(J+3)%4]&255]^V9(this,o7,"f")[Q][J];Y=X.slice()}let Z=new Uint8Array(16),V=0;for(let Q=0;Q<4;Q++)V=V9(this,o7,"f")[G][Q],Z[4*Q]=($5[Y[Q]>>24&255]^V>>24)&255,Z[4*Q+1]=($5[Y[(Q+1)%4]>>16&255]^V>>16)&255,Z[4*Q+2]=($5[Y[(Q+2)%4]>>8&255]^V>>8)&255,Z[4*Q+3]=($5[Y[(Q+3)%4]&255]^V)&255;return Z}decrypt(W){if(W.length!=16)throw TypeError("invalid ciphertext size (must be 16 bytes)");let G=V9(this,F5,"f").length-1,X=[0,0,0,0],Y=eK(W);for(let Q=0;Q<4;Q++)Y[Q]^=V9(this,F5,"f")[0][Q];for(let Q=1;Q<G;Q++){for(let J=0;J<4;J++)X[J]=is[Y[J]>>24&255]^rs[Y[(J+3)%4]>>16&255]^as[Y[(J+2)%4]>>8&255]^ss[Y[(J+1)%4]&255]^V9(this,F5,"f")[Q][J];Y=X.slice()}let Z=new Uint8Array(16),V=0;for(let Q=0;Q<4;Q++)V=V9(this,F5,"f")[G][Q],Z[4*Q]=(eH[Y[Q]>>24&255]^V>>24)&255,Z[4*Q+1]=(eH[Y[(Q+3)%4]>>16&255]^V>>16)&255,Z[4*Q+2]=(eH[Y[(Q+2)%4]>>8&255]^V>>8)&255,Z[4*Q+3]=(eH[Y[(Q+1)%4]&255]^V)&255;return Z}}WA=new WeakMap,F5=new WeakMap,o7=new WeakMap;class LJ{constructor(W,G,X){if(X&&!(this instanceof X))throw Error(`${W} must be instantiated with "new"`);Object.defineProperties(this,{aes:{enumerable:!0,value:new GA(G)},name:{enumerable:!0,value:W}})}}var XA=function(W,G,X,Y,Z){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!Z)throw TypeError("Private accessor was defined without a setter");if(typeof G==="function"?W!==G||!Z:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?Z.call(W,X):Z?Z.value=X:G.set(W,X),X},YZ=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},BJ,G6;class EJ extends LJ{constructor(W,G){super("ECC",W,EJ);if(BJ.set(this,void 0),G6.set(this,void 0),G){if(G.length%16)throw TypeError("invalid iv size (must be 16 bytes)");XA(this,BJ,new Uint8Array(G),"f")}else XA(this,BJ,new Uint8Array(16),"f");XA(this,G6,this.iv,"f")}get iv(){return new Uint8Array(YZ(this,BJ,"f"))}encrypt(W){if(W.length%16)throw TypeError("invalid plaintext size (must be multiple of 16 bytes)");let G=new Uint8Array(W.length);for(let X=0;X<W.length;X+=16){for(let Y=0;Y<16;Y++)YZ(this,G6,"f")[Y]^=W[X+Y];XA(this,G6,this.aes.encrypt(YZ(this,G6,"f")),"f"),G.set(YZ(this,G6,"f"),X)}return G}decrypt(W){if(W.length%16)throw TypeError("invalid ciphertext size (must be multiple of 16 bytes)");let G=new Uint8Array(W.length);for(let X=0;X<W.length;X+=16){let Y=this.aes.decrypt(W.subarray(X,X+16));for(let Z=0;Z<16;Z++)G[X+Z]=Y[Z]^YZ(this,G6,"f")[Z],YZ(this,G6,"f")[Z]=W[X+Z]}return G}}BJ=new WeakMap,G6=new WeakMap;var ZZ=function(W,G,X,Y,Z){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!Z)throw TypeError("Private accessor was defined without a setter");if(typeof G==="function"?W!==G||!Z:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?Z.call(W,X):Z?Z.value=X:G.set(W,X),X},S5=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},$J,mG,x5;class qW extends LJ{constructor(W,G){super("CTR",W,qW);if($J.set(this,void 0),mG.set(this,void 0),x5.set(this,void 0),ZZ(this,x5,new Uint8Array(16),"f"),S5(this,x5,"f").fill(0),ZZ(this,$J,S5(this,x5,"f"),"f"),ZZ(this,mG,16,"f"),G==null)G=1;if(typeof G==="number")this.setCounterValue(G);else this.setCounterBytes(G)}get counter(){return new Uint8Array(S5(this,x5,"f"))}setCounterValue(W){if(!Number.isInteger(W)||W<0||W>Number.MAX_SAFE_INTEGER)throw TypeError("invalid counter initial integer value");for(let G=15;G>=0;--G)S5(this,x5,"f")[G]=W%256,W=Math.floor(W/256)}setCounterBytes(W){if(W.length!==16)throw TypeError("invalid counter initial Uint8Array value length");S5(this,x5,"f").set(W)}increment(){for(let W=15;W>=0;W--)if(S5(this,x5,"f")[W]===255)S5(this,x5,"f")[W]=0;else{S5(this,x5,"f")[W]++;break}}encrypt(W){var G,X;let Y=new Uint8Array(W);for(let Z=0;Z<Y.length;Z++){if(S5(this,mG,"f")===16)ZZ(this,$J,this.aes.encrypt(S5(this,x5,"f")),"f"),ZZ(this,mG,0,"f"),this.increment();Y[Z]^=S5(this,$J,"f")[ZZ(this,mG,(X=S5(this,mG,"f"),G=X++,X),"f"),G]}return Y}decrypt(W){return this.encrypt(W)}}$J=new WeakMap,mG=new WeakMap,x5=new WeakMap;function WC(W){if(W.length<16)throw TypeError("PKCS#7 invalid length");let G=W[W.length-1];if(G>16)throw TypeError("PKCS#7 padding byte out of range");let X=W.length-G;for(let Y=0;Y<G;Y++)if(W[X+Y]!==G)throw TypeError("PKCS#7 invalid padding byte");return new Uint8Array(W.subarray(0,X))}function GC(W){if(typeof W==="string"&&!W.startsWith("0x"))W="0x"+W;return Y7(W)}function VZ(W,G){W=String(W);while(W.length<G)W="0"+W;return W}function fG(W){if(typeof W==="string")return P9(W,"NFKC");return Y7(W)}function C8(W,G){let X=G.match(/^([a-z0-9$_.-]*)(:([a-z]+))?(!)?$/i);s(X!=null,"invalid path","path",G);let Y=X[1],Z=X[3],V=X[4]==="!",Q=W;for(let J of Y.toLowerCase().split(".")){if(Array.isArray(Q)){if(!J.match(/^[0-9]+$/))break;Q=Q[parseInt(J)]}else if(typeof Q==="object"){let U=null;for(let q in Q)if(q.toLowerCase()===J){U=Q[q];break}Q=U}else Q=null;if(Q==null)break}if(s(!V||Q!=null,"missing required value","path",Y),Z&&Q!=null){if(Z==="int"){if(typeof Q==="string"&&Q.match(/^-?[0-9]+$/))return parseInt(Q);else if(Number.isSafeInteger(Q))return Q}if(Z==="number"){if(typeof Q==="string"&&Q.match(/^-?[0-9.]*$/))return parseFloat(Q)}if(Z==="data"){if(typeof Q==="string")return GC(Q)}if(Z==="array"&&Array.isArray(Q))return Q;if(Z===typeof Q)return Q;s(!1,`wrong type found for ${Z} `,"path",Y)}return Q}var K_="m/44'/60'/0'/0/0";function ZA(W){try{let G=JSON.parse(W);if((G.version!=null?parseInt(G.version):0)===3)return!0}catch(G){}return!1}function Xt(W,G,X){if(C8(W,"crypto.cipher:string")==="aes-128-ctr"){let Z=C8(W,"crypto.cipherparams.iv:data!"),V=new qW(G,Z);return C0(V.decrypt(X))}t0(!1,"unsupported cipher","UNSUPPORTED_OPERATION",{operation:"decrypt"})}function YA(W,G){let X=R0(G),Y=C8(W,"crypto.ciphertext:data!"),Z=C0(X8(s1([X.slice(16,32),Y]))).substring(2);s(Z===C8(W,"crypto.mac:string!").toLowerCase(),"incorrect password","password","[ REDACTED ]");let V=Xt(W,X.slice(0,16),Y),Q=s4(V);if(W.address){let q=W.address.toLowerCase();if(!q.startsWith("0x"))q="0x"+q;s(f1(q)===Q,"keystore address/privateKey mismatch","address",W.address)}let J={address:Q,privateKey:V};if(C8(W,"x-ethers.version:string")==="0.1"){let q=X.slice(32,64),N=C8(W,"x-ethers.mnemonicCiphertext:data!"),A=C8(W,"x-ethers.mnemonicCounter:data!"),H=new qW(q,A);J.mnemonic={path:C8(W,"x-ethers.path:string")||K_,locale:C8(W,"x-ethers.locale:string")||"en",entropy:C0(R0(H.decrypt(N)))}}return J}function C_(W){let G=C8(W,"crypto.kdf:string");if(G&&typeof G==="string"){if(G.toLowerCase()==="scrypt"){let X=C8(W,"crypto.kdfparams.salt:data!"),Y=C8(W,"crypto.kdfparams.n:int!"),Z=C8(W,"crypto.kdfparams.r:int!"),V=C8(W,"crypto.kdfparams.p:int!");s(Y>0&&(Y&Y-1)===0,"invalid kdf.N","kdf.N",Y),s(Z>0&&V>0,"invalid kdf","kdf",G);let Q=C8(W,"crypto.kdfparams.dklen:int!");return s(Q===32,"invalid kdf.dklen","kdf.dflen",Q),{name:"scrypt",salt:X,N:Y,r:Z,p:V,dkLen:64}}else if(G.toLowerCase()==="pbkdf2"){let X=C8(W,"crypto.kdfparams.salt:data!"),Y=C8(W,"crypto.kdfparams.prf:string!"),Z=Y.split("-").pop();s(Z==="sha256"||Z==="sha512","invalid kdf.pdf","kdf.pdf",Y);let V=C8(W,"crypto.kdfparams.c:int!"),Q=C8(W,"crypto.kdfparams.dklen:int!");return s(Q===32,"invalid kdf.dklen","kdf.dklen",Q),{name:"pbkdf2",salt:X,count:V,dkLen:Q,algorithm:Z}}}s(!1,"unsupported key-derivation function","kdf",G)}function XC(W,G){let X=JSON.parse(W),Y=fG(G),Z=C_(X);if(Z.name==="pbkdf2"){let{salt:A,count:H,dkLen:I,algorithm:w}=Z,C=L5(Y,A,H,I,w);return YA(X,C)}t0(Z.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:Z});let{salt:V,N:Q,r:J,p:U,dkLen:q}=Z,N=QW(Y,V,Q,J,U,q);return YA(X,N)}function O_(W){return new Promise((G)=>{setTimeout(()=>{G()},W)})}async function YC(W,G,X){let Y=JSON.parse(W),Z=fG(G),V=C_(Y);if(V.name==="pbkdf2"){if(X)X(0),await O_(0);let{salt:H,count:I,dkLen:w,algorithm:C}=V,D=L5(Z,H,I,w,C);if(X)X(1),await O_(0);return YA(Y,D)}t0(V.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:V});let{salt:Q,N:J,r:U,p:q,dkLen:N}=V,A=await VW(Z,Q,J,U,q,N,X);return YA(Y,A)}function D_(W){let G=W.salt!=null?R0(W.salt,"options.salt"):B5(32),X=131072,Y=8,Z=1;if(W.scrypt){if(W.scrypt.N)X=W.scrypt.N;if(W.scrypt.r)Y=W.scrypt.r;if(W.scrypt.p)Z=W.scrypt.p}return s(typeof X==="number"&&X>0&&Number.isSafeInteger(X)&&(BigInt(X)&BigInt(X-1))===BigInt(0),"invalid scrypt N parameter","options.N",X),s(typeof Y==="number"&&Y>0&&Number.isSafeInteger(Y),"invalid scrypt r parameter","options.r",Y),s(typeof Z==="number"&&Z>0&&Number.isSafeInteger(Z),"invalid scrypt p parameter","options.p",Z),{name:"scrypt",dkLen:32,salt:G,N:X,r:Y,p:Z}}function M_(W,G,X,Y){let Z=R0(X.privateKey,"privateKey"),V=Y.iv!=null?R0(Y.iv,"options.iv"):B5(16);s(V.length===16,"invalid options.iv length","options.iv",Y.iv);let Q=Y.uuid!=null?R0(Y.uuid,"options.uuid"):B5(16);s(Q.length===16,"invalid options.uuid length","options.uuid",Y.iv);let J=W.slice(0,16),U=W.slice(16,32),q=new qW(J,V),N=R0(q.encrypt(Z)),A=X8(s1([U,N])),H={address:X.address.substring(2).toLowerCase(),id:$H(Q),version:3,Crypto:{cipher:"aes-128-ctr",cipherparams:{iv:C0(V).substring(2)},ciphertext:C0(N).substring(2),kdf:"scrypt",kdfparams:{salt:C0(G.salt).substring(2),n:G.N,dklen:32,p:G.p,r:G.r},mac:A.substring(2)}};if(X.mnemonic){let I=Y.client!=null?Y.client:`ethers/${CH}`,w=X.mnemonic.path||K_,C=X.mnemonic.locale||"en",D=W.slice(32,64),x=R0(X.mnemonic.entropy,"account.mnemonic.entropy"),h=B5(16),l=new qW(D,h),u=R0(l.encrypt(x)),n=new Date,p="UTC--"+(n.getUTCFullYear()+"-"+VZ(n.getUTCMonth()+1,2)+"-"+VZ(n.getUTCDate(),2)+"T"+VZ(n.getUTCHours(),2)+"-"+VZ(n.getUTCMinutes(),2)+"-"+VZ(n.getUTCSeconds(),2)+".0Z")+"--"+H.address;H["x-ethers"]={client:I,gethFilename:p,path:w,locale:C,mnemonicCounter:C0(h).substring(2),mnemonicCiphertext:C0(u).substring(2),version:"0.1"}}return JSON.stringify(H)}function FJ(W,G,X){if(X==null)X={};let Y=fG(G),Z=D_(X),V=QW(Y,Z.salt,Z.N,Z.r,Z.p,64);return M_(R0(V),Z,W,X)}async function SJ(W,G,X){if(X==null)X={};let Y=fG(G),Z=D_(X),V=await VW(Y,Z.salt,Z.N,Z.r,Z.p,64,X.progressCallback);return M_(R0(V),Z,W,X)}var xJ="m/44'/60'/0'/0/0",Yt=new Uint8Array([66,105,116,99,111,105,110,32,115,101,101,100]),NW=2147483648,Zt=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Vt="0123456789abcdef";function VA(W,G){let X="";while(W)X=Vt[W%16]+X,W=Math.trunc(W/16);while(X.length<G*2)X="0"+X;return"0x"+X}function ZC(W){let G=R0(W),X=nY(L9(L9(G)),0,4),Y=s1([G,X]);return BH(Y)}var n7={};function T_(W,G,X,Y){let Z=new Uint8Array(37);if(W&NW)t0(Y!=null,"cannot derive child of neutered node","UNSUPPORTED_OPERATION",{operation:"deriveChild"}),Z.set(R0(Y),1);else Z.set(R0(X));for(let Q=24;Q>=0;Q-=8)Z[33+(Q>>3)]=W>>24-Q&255;let V=R0(GW("sha512",G,Z));return{IL:V.slice(0,32),IR:V.slice(32)}}function P_(W,G){let X=G.split("/");if(s(X.length>0,"invalid path","path",G),X[0]==="m")s(W.depth===0,`cannot derive root path (i.e. path starting with "m/") for a node at non-zero depth ${W.depth}`,"path",G),X.shift();let Y=W;for(let Z=0;Z<X.length;Z++){let V=X[Z];if(V.match(/^[0-9]+'$/)){let Q=parseInt(V.substring(0,V.length-1));s(Q<NW,"invalid path index",`path[${Z}]`,V),Y=Y.deriveChild(NW+Q)}else if(V.match(/^[0-9]+$/)){let Q=parseInt(V);s(Q<NW,"invalid path index",`path[${Z}]`,V),Y=Y.deriveChild(Q)}else s(!1,"invalid path component",`path[${Z}]`,V)}return Y}class Q9 extends bG{publicKey;fingerprint;parentFingerprint;mnemonic;chainCode;path;index;depth;constructor(W,G,X,Y,Z,V,Q,J,U){super(G,U);l4(W,n7,"HDNodeWallet"),Q8(this,{publicKey:G.compressedPublicKey});let q=nY(XW(L9(this.publicKey)),0,4);Q8(this,{parentFingerprint:X,fingerprint:q,chainCode:Y,path:Z,index:V,depth:Q}),Q8(this,{mnemonic:J})}connect(W){return new Q9(n7,this.signingKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.mnemonic,W)}#W(){let W={address:this.address,privateKey:this.privateKey},G=this.mnemonic;if(this.path&&G&&G.wordlist.locale==="en"&&G.password==="")W.mnemonic={path:this.path,locale:"en",entropy:G.entropy};return W}async encrypt(W,G){return await SJ(this.#W(),W,{progressCallback:G})}encryptSync(W){return FJ(this.#W(),W)}get extendedKey(){return t0(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),ZC(s1(["0x0488ADE4",VA(this.depth,1),this.parentFingerprint,VA(this.index,4),this.chainCode,s1(["0x00",this.privateKey])]))}hasPath(){return this.path!=null}neuter(){return new cG(n7,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.provider)}deriveChild(W){let G=i8(W,"index");s(G<=4294967295,"invalid index","index",G);let X=this.path;if(X){if(X+="/"+(G&~NW),G&NW)X+="'"}let{IR:Y,IL:Z}=T_(G,this.chainCode,this.publicKey,this.privateKey),V=new d8(Z7((rY(Z)+BigInt(this.privateKey))%Zt,32));return new Q9(n7,V,this.fingerprint,C0(Y),X,G,this.depth+1,this.mnemonic,this.provider)}derivePath(W){return P_(this,W)}static#G(W,G){s(l7(W),"invalid seed","seed","[REDACTED]");let X=R0(W,"seed");s(X.length>=16&&X.length<=64,"invalid seed","seed","[REDACTED]");let Y=R0(GW("sha512",Yt,X)),Z=new d8(C0(Y.slice(0,32)));return new Q9(n7,Z,"0x00000000",C0(Y.slice(32)),"m",0,0,G,null)}static fromExtendedKey(W){let G=J8(EH(W));s(G.length===82||ZC(G.slice(0,78))===W,"invalid extended key","extendedKey","[ REDACTED ]");let X=G[4],Y=C0(G.slice(5,9)),Z=parseInt(C0(G.slice(9,13)).substring(2),16),V=C0(G.slice(13,45)),Q=G.slice(45,78);switch(C0(G.slice(0,4))){case"0x0488b21e":case"0x043587cf":{let J=C0(Q);return new cG(n7,s4(J),J,Y,V,null,Z,X,null)}case"0x0488ade4":case"0x04358394 ":if(Q[0]!==0)break;return new Q9(n7,new d8(Q.slice(1)),Y,V,null,Z,X,null,null)}s(!1,"invalid extended key prefix","extendedKey","[ REDACTED ]")}static createRandom(W,G,X){if(W==null)W="";if(G==null)G=xJ;if(X==null)X=e4.wordlist();let Y=W6.fromEntropy(B5(16),W,X);return Q9.#G(Y.computeSeed(),Y).derivePath(G)}static fromMnemonic(W,G){if(!G)G=xJ;return Q9.#G(W.computeSeed(),W).derivePath(G)}static fromPhrase(W,G,X,Y){if(G==null)G="";if(X==null)X=xJ;if(Y==null)Y=e4.wordlist();let Z=W6.fromPhrase(W,G,Y);return Q9.#G(Z.computeSeed(),Z).derivePath(X)}static fromSeed(W){return Q9.#G(W,null)}}class cG extends RJ{publicKey;fingerprint;parentFingerprint;chainCode;path;index;depth;constructor(W,G,X,Y,Z,V,Q,J,U){super(G,U);l4(W,n7,"HDNodeVoidWallet"),Q8(this,{publicKey:X});let q=nY(XW(L9(X)),0,4);Q8(this,{publicKey:X,fingerprint:q,parentFingerprint:Y,chainCode:Z,path:V,index:Q,depth:J})}connect(W){return new cG(n7,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,W)}get extendedKey(){return t0(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),ZC(s1(["0x0488B21E",VA(this.depth,1),this.parentFingerprint,VA(this.index,4),this.chainCode,this.publicKey]))}hasPath(){return this.path!=null}deriveChild(W){let G=i8(W,"index");s(G<=4294967295,"invalid index","index",G);let X=this.path;if(X){if(X+="/"+(G&~NW),G&NW)X+="'"}let{IR:Y,IL:Z}=T_(G,this.chainCode,this.publicKey,null),V=d8.addPoints(Z,this.publicKey,!0),Q=s4(V);return new cG(n7,Q,V,this.fingerprint,C0(Y),X,G,this.depth+1,this.provider)}derivePath(W){return P_(this,W)}}function QA(W){try{if(JSON.parse(W).encseed)return!0}catch(G){}return!1}function JA(W,G){let X=JSON.parse(W),Y=fG(G),Z=f1(C8(X,"ethaddr:string!")),V=GC(C8(X,"encseed:string!"));s(V&&V.length%16===0,"invalid encseed","json",W);let Q=R0(L5(Y,Y,2000,32,"sha256")).slice(0,16),J=V.slice(0,16),U=V.slice(16),q=new EJ(Q,J),N=WC(R0(q.decrypt(U))),A="";for(let H=0;H<N.length;H++)A+=String.fromCharCode(N[H]);return{address:Z,privateKey:t4(A)}}function R_(W){return new Promise((G)=>{setTimeout(()=>{G()},W)})}class X6 extends bG{constructor(W,G){if(typeof W==="string"&&!W.startsWith("0x"))W="0x"+W;let X=typeof W==="string"?new d8(W):W;super(X,G)}connect(W){return new X6(this.signingKey,W)}async encrypt(W,G){let X={address:this.address,privateKey:this.privateKey};return await SJ(X,W,{progressCallback:G})}encryptSync(W){let G={address:this.address,privateKey:this.privateKey};return FJ(G,W)}static#W(W){if(s(W,"invalid JSON wallet","json","[ REDACTED ]"),"mnemonic"in W&&W.mnemonic&&W.mnemonic.locale==="en"){let X=W6.fromEntropy(W.mnemonic.entropy),Y=Q9.fromMnemonic(X,W.mnemonic.path);if(Y.address===W.address&&Y.privateKey===W.privateKey)return Y;console.log("WARNING: JSON mismatch address/privateKey != mnemonic; fallback onto private key")}let G=new X6(W.privateKey);return s(G.address===W.address,"address/privateKey mismatch","json","[ REDACTED ]"),G}static async fromEncryptedJson(W,G,X){let Y=null;if(ZA(W))Y=await YC(W,G,X);else if(QA(W)){if(X)X(0),await R_(0);if(Y=JA(W,G),X)X(1),await R_(0)}return X6.#W(Y)}static fromEncryptedJsonSync(W,G){let X=null;if(ZA(W))X=XC(W,G);else if(QA(W))X=JA(W,G);else s(!1,"invalid JSON wallet","json","[ REDACTED ]");return X6.#W(X)}static createRandom(W){let G=Q9.createRandom();if(W)return G.connect(W);return G}static fromPhrase(W,G){let X=Q9.fromPhrase(W);if(G)return X.connect(G);return X}}function L_(W,G=[]){let X=String(W??"").trim();if(!X)throw Error("sm-server: signing key required (GDB_SM_KEY)");let Y=X.includes(" ")?Q9.fromPhrase(X):new X6(X),Z=f1(Y.address),V=new Set([...G,Z].map((N)=>{try{return f1(N)}catch{return null}}).filter(Boolean)),Q=(N)=>{let A=(H)=>H&&typeof H==="object"&&!Array.isArray(H)?Object.keys(H).sort().reduce((I,w)=>(I[w]=A(H[w]),I),{}):Array.isArray(H)?H.map(A):H;return JSON.stringify(A(N))};return{address:Z,superAdmins:V,canonicalize:Q,signOps:async(N)=>{let A=[];for(let H of N){if(H?.signature&&H?.originEthAddress&&H?.originUser){A.push(H);continue}let I={...H,originUser:Z},w=await Y.signMessage(P9(Q(I)));A.push({...H,originUser:Z,originEthAddress:Z,signature:w})}return A},verifyOp:(N)=>{if(!N?.signature||!N?.originEthAddress||!N?.originUser)return{ok:!1,reason:"missing-fields"};let A;try{if(A=f1(N.originEthAddress),f1(N.originUser)!==A)return{ok:!1,reason:"address-mismatch"}}catch{return{ok:!1,reason:"invalid-address"}}let{signature:H,originEthAddress:I,...w}=N;try{let C=rH(P9(Q(w)),H);if(f1(C)!==A)return{ok:!1,reason:"invalid-signature"};let{originUser:D,...x}=w;return{ok:!0,normalizedOriginEthAddress:A,payload:x}}catch(C){return{ok:!1,reason:"verify-error",error:C}}},isSuperAdmin:(N)=>{try{return V.has(f1(N))}catch{return!1}}}}var Ut=["guest","user","manager","admin","superadmin"];function B_(W,G,X,{intervalMs:Y=4000,settleMs:Z=15000,customRoles:V=null}={}){let Q=new Set([...Ut,...Object.keys(V??{})]),J=async(A,H,I=null)=>{let w=f1(A);if(!Q.has(H))throw Error(`Role '${H}' is not a defined role.`);let C=`user:${w}`,D=(await W.get(C)).result?.value||{};await W.put({...D,ethAddress:w,role:H,assignedByEthAddress:G.address,expiresAt:I?new Date(I).toISOString():null,priority:!0},C)},U=async()=>{let A=new Map;for(let H of X){let I=H.then?.assignRole;if(!I)continue;let w=[];try{({results:w=[]}=W.map({query:H.if}))}catch(C){console.error("\u274C GOVERNANCE: rule evaluation failed:",C.message);continue}for(let C of w){if(!C.id.startsWith("user:"))continue;if(G.isSuperAdmin(C.id.slice(5)))continue;if(H.offsetTimestamp&&(C.timestamp?.physical??0)>Date.now()-H.offsetTimestamp)continue;A.set(C.id,{role:I,current:C.value?.role})}}for(let[H,{role:I,current:w}]of A){if(w===I)continue;try{await J(H.slice(5),I),console.info(`\uD83D\uDCDC GOVERNANCE: ${H.slice(5)} '${w}' -> '${I}'`)}catch(C){console.error("\u274C GOVERNANCE: assignRole failed:",C.message)}}},q=null,N=setTimeout(()=>{q=setInterval(U,Y),console.info(`\uD83D\uDCDC GOVERNANCE ENGINE: active \u2014 ${X.length} rule(s), every ${Y} ms.`)},Z);return{assignRole:J,stop:()=>{if(clearTimeout(N),q)clearInterval(q)}}}var QC=(W)=>W&&typeof W==="object"?structuredClone(W):W,VC=(W,G=16)=>{let X=null,Y=null;return(...Z)=>{if(Y??=Promise.withResolvers(),X!==null)clearTimeout(X);return X=setTimeout(async()=>{X=null;try{Y.resolve(await W(...Z))}catch(V){Y.reject(V)}finally{Y=null}},G),Y.promise}},At=(W)=>{let G=!1;return()=>{if(G)return;G=!0,setImmediate(()=>{G=!1,W()})}};function zt(W=1000){let G=[];return{add(X){if(X?.timestamp){if(G.push(X),G.length>W)G.splice(0,G.length-W)}},getOldest:()=>G[0]??null,getDelta:(X,Y)=>X?G.filter((Z)=>Y(Z.timestamp,X)>0):[...G],clear(){G=[]},entries:()=>[...G],setEntries(X=[]){if(G=Array.isArray(X)?[...X]:[],G.length>W)G.splice(0,G.length-W)}}}function It(){let W={nodes:{}};return{get nodes(){return W.nodes},set nodes(G){W.nodes=G??{}},upsert(G,X,Y){let Z=W.nodes[G];W.nodes[G]={id:G,value:QC(X),edges:Z?.edges?[...Z.edges]:[],timestamp:Y}},get:(G)=>W.nodes[G]??null,link(G,X,Y){let Z=W.nodes[G],V=W.nodes[X];if(Z&&V&&!Z.edges.includes(X))W.nodes[G]={...Z,edges:[...Z.edges,X],timestamp:Y}},getAllNodes:()=>Object.values(W.nodes),serialize:()=>q6.deflate(qZ(W.nodes)),deserialize(G){let X=G instanceof Uint8Array?G:new Uint8Array(G);W.nodes=Y6(q6.inflate(X))}}}function wt(W,G){let X=Ht(W);if(X&&X!==".")Nt(X,{recursive:!0});let Y=new qt(W);Y.exec("PRAGMA journal_mode = WAL"),Y.exec("PRAGMA synchronous = NORMAL"),Y.exec(`
|
|
252
252
|
CREATE TABLE IF NOT EXISTS kv (
|
|
253
253
|
key TEXT PRIMARY KEY,
|
|
254
254
|
value BLOB NOT NULL
|
|
255
255
|
)
|
|
256
|
-
`);let Z=Y.prepare("SELECT value FROM kv WHERE key = ?"),V=Y.prepare("INSERT OR REPLACE INTO kv (key, value) VALUES (?, ?)"),Q=Y.prepare("DELETE FROM kv WHERE key = ?"),J=G;return{getBlob(U){let q=Z.get(`${J}:${U}`);return q?new Uint8Array(q.value):null},getText(U){let q=Z.get(`${J}:${U}`);return q?Buffer.from(q.value).toString("utf8"):null},putBlob(U,q){V.run(`${J}:${U}`,Buffer.from(q))},putText(U,q){V.run(`${J}:${U}`,Buffer.from(q,"utf8"))},del(U){Q.run(`${J}:${U}`)},close(){Y.close()}}}async function jt(W=process.env.GDB_ROOM||process.argv.slice(2).find((Y)=>!Y.startsWith("--"))||"default",G={},X=process.env.GDB_DB_PATH||"./data.sqlite"){console.info(`\u26A1 GDBServer [${W}] initializing (bun:sqlite)`);let{password:Y,saveDelay:Z=200,oplogSize:V=1000,rtcPolyfill:Q=null,rtc:J=!0,room:U=null,sm:q=null,relay:N=null}=G,A=J?.constructor===Object?J:{},{turnConfig:H=null}=A,I=A.relayUrls??((process.env.GDB_RELAY_URLS??"").split(",").map((J0)=>J0.trim()).filter(Boolean).length?process.env.GDB_RELAY_URLS.split(",").map((J0)=>J0.trim()).filter(Boolean):null),w=N??(process.argv.includes("--relay")||["1","true"].includes(process.env.GDB_RELAY??"")),C=null;if(w)C=Ox(N?.constructor===Object?N:{}),I=[...I??[],`ws://127.0.0.1:${C.port}`];let D=A.cells??(process.argv.includes("--cells")||["1","true"].includes(process.env.GDB_CELLS??"")),x=U??process.argv.includes("--room"),h=q?.constructor===Object?q:null,l=h?.key??process.env.GDB_SM_KEY??null,u=h?.superAdmins??(process.env.GDB_SUPERADMINS??"").split(",").map((J0)=>J0.trim()).filter(Boolean),n=null;if(l)n=L_(l,u),console.info(`\uD83D\uDEE1\uFE0F SM: signing as ${n.address}`);else if(h)console.warn("\u26A0\uFE0F SM: sm configured but no signing key (GDB_SM_KEY) \u2014 running unsigned, memory-only role.");let c=It(),p=vD(),W0=zt(V),m=wt(X,W),Y0=[],U0=[],y=[],o=null,B=null,R=null,_={},S=()=>{let J0=m.getBlob("graph");if(J0?.byteLength)c.deserialize(J0),console.info(`\u2705 Graph loaded: ${c.getAllNodes().length} nodes`)},v=()=>{m.putBlob("graph",c.serialize())},P=()=>{let J0=m.getText("timestamp");if(J0){let B0=JSON.parse(J0);if(B0?.physical&&B0?.logical)o=B0,p.update(o)}},E=()=>{m.putText("timestamp",JSON.stringify(o??null))},b=()=>{let J0=m.getBlob("oplog");if(J0?.byteLength){let B0=Y6(q6.inflate(J0));if(Array.isArray(B0))W0.setEntries(B0),console.info(`\u2705 Oplog loaded: ${B0.length} ops`)}},k=()=>{m.putBlob("oplog",q6.deflate(qZ(W0.entries())))},f=(J0)=>{if(!J0)return;if(!o||p.compare(J0,o)>0)o=J0,E()},e=VC(()=>v(),Z),q0=VC(()=>k(),Z),Q0=()=>{let J0={...c.nodes};Y0.forEach((B0)=>B0(J0))},$0=At(()=>Q0()),D0=async(J0)=>{if(!J0?.length||!B)return!1;try{return await B.send(J0),!0}catch(B0){return console.error("\u274C safeSend failed:",B0?.message),!1}},x0=async(J0)=>{let B0=await D0(J0);return setTimeout(()=>D0(J0),2500),B0},N1=async(J0)=>{let B0=!1,h0=null,Y1=(E0)=>{if(E0&&(!h0||p.compare(E0,h0)>0))h0=E0},w8=(E0)=>{try{if(E0 instanceof Uint8Array||E0 instanceof ArrayBuffer){let n0=Y6(E0);return Array.isArray(n0)?n0:[n0]}if(Array.isArray(E0))return E0;if(E0&&typeof E0==="object")return Y6(q6.inflate(new Uint8Array(Object.values(E0))))}catch(n0){console.error("\u274C decode failed",n0)}return null},x1={upsert(E0){let{resolved:n0,value:O1,timestamp:$1}=gD(c.get(E0.id),E0,p);if(!n0)return;c.upsert(E0.id,O1,$1),p.update($1),W0.add({type:"upsert",id:E0.id,timestamp:$1}),B0=!0,Y1($1)},remove(E0){let n0=c.get(E0.id);if(!n0||p.compare(n0.timestamp,E0.timestamp)>=0)return;delete c.nodes[E0.id],Object.values(c.nodes).forEach((O1)=>{O1.edges=(O1.edges??[]).filter(($1)=>$1!==E0.id)}),p.update(E0.timestamp),W0.add({type:"remove",id:E0.id,timestamp:E0.timestamp}),B0=!0,Y1(E0.timestamp)},link(E0){let n0=c.get(E0.sourceId),O1=c.get(E0.targetId);if(!n0||!O1||p.compare(n0.timestamp,E0.timestamp)>=0)return;c.link(E0.sourceId,E0.targetId,E0.timestamp),p.update(E0.timestamp),W0.add({type:"link",...E0}),B0=!0,Y1(E0.timestamp)},async sync({timestamp:E0}){let n0=W0.getOldest();if(E0==null||n0&&p.compare(E0,n0.timestamp)<0){console.info("\uD83D\uDCA5 Sending FULL state sync:",c.getAllNodes().length,"nodes"),await x0([{type:"fullStateSync",graphData:c.serialize(),removals:W0.getDelta(null).filter((H8)=>H8.type==="remove"),timestamp:o}]);return}let $1=W0.getDelta(E0,p.compare);if(!$1.length)return;let U8=$1.map((H8)=>H8.type==="upsert"?{...H8,value:c.get(H8.id)?.value}:H8);console.info("\uD83D\uDE80 Sending DELTA sync:",U8.length,"ops"),await x0([{type:"deltaSync",operations:q6.deflate(qZ(U8)),timestamp:o}])},deltaSync({operations:E0}){let n0=w8(E0);if(!Array.isArray(n0))return;console.info("\uD83D\uDCE5 deltaSync:",n0.length,"ops");for(let O1 of n0)if(O1&&x1[O1.type])x1[O1.type](O1)},async fullStateSync({graphData:E0,removals:n0,timestamp:O1}){let $1=E0;if(!($1 instanceof Uint8Array))$1=$1&&typeof $1==="object"?new Uint8Array(Object.values($1)):null;if(!$1)return;let U8=Y6(q6.inflate($1)),H8=new Map;for(let B1 of W0.getDelta(null))if(B1.type==="remove")H8.set(B1.id,B1.timestamp);for(let[B1,C8]of Object.entries(U8)){let k5=c.nodes[B1]?.timestamp??H8.get(B1);if(!k5||p.compare(k5,C8.timestamp)<0)c.nodes[B1]=C8}for(let B1 of n0??[]){let C8=c.nodes[B1.id];if(C8&&p.compare(C8.timestamp,B1.timestamp)<0)delete c.nodes[B1.id]}let A8=new Set(Object.keys(U8));if(Object.keys(c.nodes).some((B1)=>!A8.has(B1)))await x0([{type:"fullStateSync",graphData:c.serialize(),removals:W0.getDelta(null).filter((B1)=>B1.type==="remove"),timestamp:o}]);if(B0=!0,console.info("\u2705 fullStateSync merged:",c.getAllNodes().length,"nodes"),O1)Y1(O1),p.update(O1)}};for(let E0 of J0)if(x1[E0.type])await x1[E0.type](E0);if(h0&&(!o||p.compare(h0,o)>0))f(h0);if(B0)await Promise.all([e(),q0()]),$0()},U1=VC(async()=>{let J0=y.splice(0);return J0.length?await D0(J0):!1},16);Object.assign(_,{use(J0){if(typeof J0==="function")U0.push(J0)},async put(J0,B0){let h0=p.now();f(h0),B0??=crypto.randomUUID(),c.upsert(B0,J0,h0),W0.add({type:"upsert",id:B0,timestamp:h0}),e(),q0();try{y.push({type:"upsert",id:B0,value:J0,timestamp:h0}),U1().catch(()=>{})}finally{$0()}return B0},async get(J0){if(typeof J0!=="string")return{result:null};let B0=c.get(J0);if(!B0)return{result:null};return{result:{...B0,value:QC(B0.value)}}},map(...J0){let h0={...{realtime:!1,query:{},field:null,order:"asc",$limit:null,$after:null,$before:null}},Y1=null,w8=!1;J0.forEach((n0)=>typeof n0==="function"?Y1=n0:n0&&typeof n0==="object"&&(w8=w8||("realtime"in n0),Object.assign(h0,n0))),Y1&&!w8&&(h0.realtime=!0);let x1=lA(c.nodes,h0),E0=null;if(Y1){if(x1.forEach((n0)=>Y1({id:n0.id,value:n0.value,edges:n0.edges,timestamp:n0.timestamp,action:"initial"})),h0.realtime){let n0=(O1)=>`${O1.id}:${O1.timestamp?.physical??0}:${O1.timestamp?.logical??0}:${(O1.edges??[]).join(",")}`;E0=(O1)=>{let $1=lA(O1,h0),U8=new Map(x1.map((A8)=>[A8.id,A8])),H8=new Map($1.map((A8)=>[A8.id,A8]));if($1.length!==x1.length||!$1.map(n0).every((A8,B1)=>A8===x1.map(n0)[B1])){for(let[A8,B1]of H8){let C8=U8.get(A8);if(!C8)Y1({id:A8,value:B1.value,edges:B1.edges,timestamp:B1.timestamp,action:"added"});else if(n0(B1)!==n0(C8))Y1({id:A8,value:B1.value,edges:B1.edges,timestamp:B1.timestamp,action:"updated"})}for(let[A8,B1]of U8)if(!H8.has(A8))Y1({id:A8,value:null,edges:B1.edges,timestamp:B1.timestamp,action:"removed"});x1=$1}},Y0.push(E0)}}return{results:x1,...h0.realtime&&Y1&&E0&&{unsubscribe:()=>{let n0=Y0.indexOf(E0);if(n0>=0)Y0.splice(n0,1)}}}},async link(J0,B0){if(!c.nodes[J0]||!c.nodes[B0])return;let h0=p.now();c.link(J0,B0,h0),W0.add({type:"link",sourceId:J0,targetId:B0,timestamp:h0}),e(),q0(),f(h0);try{y.push({type:"link",sourceId:J0,targetId:B0,timestamp:h0}),U1().catch(()=>{})}finally{$0()}},async remove(J0){let B0=c.get(J0);if(!B0)return;let h0=p.now();delete c.nodes[J0],Object.values(c.nodes).forEach((Y1)=>{Y1.edges=(Y1.edges??[]).filter((w8)=>w8!==J0)}),W0.add({type:"remove",id:J0,timestamp:h0}),e(),q0(),f(h0);try{y.push({type:"remove",id:J0,value:B0.value,timestamp:h0}),U1().catch(()=>{})}finally{$0()}},async clear(){c.nodes={},W0.clear(),m.del("graph"),m.del("oplog"),Q0()},on(J0){return Y0.push(J0),()=>{let B0=Y0.indexOf(J0);if(B0>=0)Y0.splice(B0,1)}},close(){m.close()}});try{let J0=`graph-sync-room-${W}`,B0={appId:"1234",type:"superpeer",...Y&&{password:Y},...I&&{relayUrls:I},...H&&{turnConfig:H},...D&&{cells:!0},...D&&D!==!0&&{overlay:D},rtcPolyfill:Q??NK};if(R=Pz(B0,J0),B=R.channel("syncGraph"),console.info(`\u26A1 Transport: ${D?"cellular mesh":"full mesh"}`),n){let h0=B.send;B={...B,send:async(Y1)=>h0(await n.signOps(Y1))},_.sm=n}if(!D){let h0=!1;R.channel("c0").on("message",()=>{if(h0)return;h0=!0,console.warn("\u26A0\uFE0F This room speaks Cellular Mesh \u2014 restart with --cells / GDB_CELLS=1 (CLI) or rtc: { cells: true } (module), or browser writes will never reach this superpeer.")})}if(x)_.room=Pz(B0,`app-sync-${W}`),console.info("\u26A1 db.room joined \u2014 visible to monitors/presence");R.on("peer:join",(h0)=>{console.info("\u26A1 Peer connected:",h0);for(let Y1 of[0,1500,4000,9000])setTimeout(()=>D0([{type:"sync",timestamp:o}]),Y1)}),R.on("peer:leave",(h0)=>console.info("\u26A1 Peer disconnected:",h0)),B.on("message",async(h0)=>{let Y1;try{Y1=h0 instanceof Uint8Array||h0 instanceof ArrayBuffer?(()=>{let x1=Y6(h0);return Array.isArray(x1)?x1:[x1]})():Array.isArray(h0)?h0:[h0]}catch(x1){return console.error("\u274C decode failed:",x1)}let w8=new Map([...new Set(Y1.flatMap((x1)=>["id","sourceId","targetId"].map((E0)=>x1?.[E0]).filter(Boolean)))].map((x1)=>c.get(x1)?[x1,QC(c.get(x1))]:null).filter(Boolean));for(let x1 of U0)try{if(Y1=await x1(Y1,w8),!Y1?.length)return}catch(E0){console.error("\u274C Middleware error:",E0);return}await N1(Y1)}),console.info("\u2705 GenosRTC sync enabled")}catch(J0){console.warn("\u26A0\uFE0F GenosRTC not available:",J0.message)}if(S(),P(),b(),n){let J0=h?.governanceRules??null;if(!J0&&process.env.GDB_SM_RULES){let B0=process.env.GDB_SM_RULES.trim();try{if(B0.startsWith("["))J0=JSON.parse(B0);else if(B0.startsWith("{"))J0=[JSON.parse(B0)];else J0=(await import(new URL(B0,`file://${process.cwd()}/`).href)).default}catch(h0){console.error("\u274C GOVERNANCE: could not load GDB_SM_RULES:",h0.message)}}if(Array.isArray(J0)&&J0.length)_.governance=B_(_,n,J0,{customRoles:h?.customRoles??null})}if(C)_.relay=C;return Object.defineProperties(_,{syncChannel:{get:()=>B},hybridClock:{get:()=>p},graph:{get:()=>({getAllNodes:()=>c.getAllNodes(),get:(J0)=>c.get(J0)})}}),console.info(`\u2705 GDBServer [${W}] ready (bun:sqlite)`),_}if(import.meta.main){let W=new Set(["ECONNREFUSED","ECONNRESET","EHOSTUNREACH","ENETUNREACH","EADDRNOTAVAIL","ETIMEDOUT","EPIPE"]),G=(V)=>W.has(V?.code)||W.has(V?.errno),X=new Map,Y=null,Z=(V="UNKNOWN")=>{let Q=(X.get(V)??0)+1;if(X.set(V,Q),Q===1)console.warn("\u26A0\uFE0F Transient network error (ignored):",V);Y??=setTimeout(()=>{Y=null;let J=[...X].filter(([,U])=>U>1).map(([U,q])=>`${U} \xD7${q}`).join(", ");if(J)console.warn("\u26A0\uFE0F Transient network errors (ignored, last 60s):",J);X.clear()},60000)};process.on("uncaughtException",(V)=>{if(G(V))return Z(V?.code??V?.errno);console.error("\u274C Fatal:",V?.message??V),process.exit(1)}),process.on("unhandledRejection",(V)=>{if(G(V))return Z(V?.code??V?.errno);console.error("\u274C Fatal (rejection):",V?.message??V),process.exit(1)}),jt().catch((V)=>{console.error("\u274C Fatal:",V.message),process.exit(1)})}export{jt as gdbServer};
|
|
256
|
+
`);let Z=Y.prepare("SELECT value FROM kv WHERE key = ?"),V=Y.prepare("INSERT OR REPLACE INTO kv (key, value) VALUES (?, ?)"),Q=Y.prepare("DELETE FROM kv WHERE key = ?"),J=G;return{getBlob(U){let q=Z.get(`${J}:${U}`);return q?new Uint8Array(q.value):null},getText(U){let q=Z.get(`${J}:${U}`);return q?Buffer.from(q.value).toString("utf8"):null},putBlob(U,q){V.run(`${J}:${U}`,Buffer.from(q))},putText(U,q){V.run(`${J}:${U}`,Buffer.from(q,"utf8"))},del(U){Q.run(`${J}:${U}`)},close(){Y.close()}}}async function jt(W=process.env.GDB_ROOM||process.argv.slice(2).find((Y)=>!Y.startsWith("--"))||"default",G={},X=process.env.GDB_DB_PATH||"./data.sqlite"){console.info(`\u26A1 GDBServer [${W}] initializing (bun:sqlite)`);let{password:Y,saveDelay:Z=200,oplogSize:V=1000,rtcPolyfill:Q=null,rtc:J=!0,room:U=null,sm:q=null,relay:N=null}=G,A=J?.constructor===Object?J:{},{turnConfig:H=null}=A,I=A.relayUrls??((process.env.GDB_RELAY_URLS??"").split(",").map((J0)=>J0.trim()).filter(Boolean).length?process.env.GDB_RELAY_URLS.split(",").map((J0)=>J0.trim()).filter(Boolean):null),w=N??(process.argv.includes("--relay")||["1","true"].includes(process.env.GDB_RELAY??"")),C=null;if(w)C=Ox(N?.constructor===Object?N:{}),I=[...I??[],`ws://127.0.0.1:${C.port}`];let D=A.cells??(process.argv.includes("--cells")||["1","true"].includes(process.env.GDB_CELLS??"")),x=U??process.argv.includes("--room"),h=q?.constructor===Object?q:null,l=h?.key??process.env.GDB_SM_KEY??null,u=h?.superAdmins??(process.env.GDB_SUPERADMINS??"").split(",").map((J0)=>J0.trim()).filter(Boolean),n=null;if(l)n=L_(l,u),console.info(`\uD83D\uDEE1\uFE0F SM: signing as ${n.address}`);else if(h)console.warn("\u26A0\uFE0F SM: sm configured but no signing key (GDB_SM_KEY) \u2014 running unsigned, memory-only role.");let c=It(),p=vD(),W0=zt(V),m=wt(X,W),Y0=[],U0=[],y=[],o=null,B=null,R=null,_={},S=()=>{let J0=m.getBlob("graph");if(J0?.byteLength)c.deserialize(J0),console.info(`\u2705 Graph loaded: ${c.getAllNodes().length} nodes`)},v=()=>{m.putBlob("graph",c.serialize())},P=()=>{let J0=m.getText("timestamp");if(J0){let B0=JSON.parse(J0);if(B0?.physical&&B0?.logical)o=B0,p.update(o)}},E=()=>{m.putText("timestamp",JSON.stringify(o??null))},b=()=>{let J0=m.getBlob("oplog");if(J0?.byteLength){let B0=Y6(q6.inflate(J0));if(Array.isArray(B0))W0.setEntries(B0),console.info(`\u2705 Oplog loaded: ${B0.length} ops`)}},k=()=>{m.putBlob("oplog",q6.deflate(qZ(W0.entries())))},f=(J0)=>{if(!J0)return;if(!o||p.compare(J0,o)>0)o=J0,E()},e=VC(()=>v(),Z),q0=VC(()=>k(),Z),Q0=()=>{let J0={...c.nodes};Y0.forEach((B0)=>B0(J0))},$0=At(()=>Q0()),D0=async(J0)=>{if(!J0?.length||!B)return!1;try{return await B.send(J0),!0}catch(B0){return console.error("\u274C safeSend failed:",B0?.message),!1}},x0=async(J0)=>{let B0=await D0(J0);return setTimeout(()=>D0(J0),2500),B0},N1=async(J0)=>{let B0=!1,h0=null,Y1=(E0)=>{if(E0&&(!h0||p.compare(E0,h0)>0))h0=E0},w8=(E0)=>{try{if(E0 instanceof Uint8Array||E0 instanceof ArrayBuffer){let n0=Y6(E0);return Array.isArray(n0)?n0:[n0]}if(Array.isArray(E0))return E0;if(E0&&typeof E0==="object")return Y6(q6.inflate(new Uint8Array(Object.values(E0))))}catch(n0){console.error("\u274C decode failed",n0)}return null},x1={upsert(E0){let{resolved:n0,value:O1,timestamp:$1}=gD(c.get(E0.id),E0,p);if(!n0)return;c.upsert(E0.id,O1,$1),p.update($1),W0.add({type:"upsert",id:E0.id,timestamp:$1}),B0=!0,Y1($1)},remove(E0){let n0=c.get(E0.id);if(!n0||p.compare(n0.timestamp,E0.timestamp)>=0)return;delete c.nodes[E0.id],Object.values(c.nodes).forEach((O1)=>{O1.edges=(O1.edges??[]).filter(($1)=>$1!==E0.id)}),p.update(E0.timestamp),W0.add({type:"remove",id:E0.id,timestamp:E0.timestamp}),B0=!0,Y1(E0.timestamp)},link(E0){let n0=c.get(E0.sourceId),O1=c.get(E0.targetId);if(!n0||!O1||p.compare(n0.timestamp,E0.timestamp)>=0)return;c.link(E0.sourceId,E0.targetId,E0.timestamp),p.update(E0.timestamp),W0.add({type:"link",...E0}),B0=!0,Y1(E0.timestamp)},async sync({timestamp:E0}){let n0=W0.getOldest();if(E0==null||n0&&p.compare(E0,n0.timestamp)<0){console.info("\uD83D\uDCA5 Sending FULL state sync:",c.getAllNodes().length,"nodes"),await x0([{type:"fullStateSync",graphData:c.serialize(),removals:W0.getDelta(null).filter((H8)=>H8.type==="remove"),timestamp:o}]);return}let $1=W0.getDelta(E0,p.compare);if(!$1.length)return;let U8=$1.map((H8)=>H8.type==="upsert"?{...H8,value:c.get(H8.id)?.value}:H8);console.info("\uD83D\uDE80 Sending DELTA sync:",U8.length,"ops"),await x0([{type:"deltaSync",operations:q6.deflate(qZ(U8)),timestamp:o}])},deltaSync({operations:E0}){let n0=w8(E0);if(!Array.isArray(n0))return;console.info("\uD83D\uDCE5 deltaSync:",n0.length,"ops");for(let O1 of n0)if(O1&&x1[O1.type])x1[O1.type](O1)},async fullStateSync({graphData:E0,removals:n0,timestamp:O1}){let $1=E0;if(!($1 instanceof Uint8Array))$1=$1&&typeof $1==="object"?new Uint8Array(Object.values($1)):null;if(!$1)return;let U8=Y6(q6.inflate($1)),H8=new Map;for(let K1 of W0.getDelta(null))if(K1.type==="remove")H8.set(K1.id,K1.timestamp);for(let[K1,j8]of Object.entries(U8)){let k5=c.nodes[K1]?.timestamp??H8.get(K1);if(!k5||p.compare(k5,j8.timestamp)<0)c.nodes[K1]=j8,W0.add({type:"upsert",id:K1,timestamp:j8.timestamp})}for(let K1 of n0??[]){let j8=c.nodes[K1.id];if(j8&&p.compare(j8.timestamp,K1.timestamp)<0)delete c.nodes[K1.id],W0.add({type:"remove",id:K1.id,timestamp:K1.timestamp})}let A8=new Set(Object.keys(U8));if(Object.keys(c.nodes).some((K1)=>!A8.has(K1)))await x0([{type:"fullStateSync",graphData:c.serialize(),removals:W0.getDelta(null).filter((K1)=>K1.type==="remove"),timestamp:o}]);if(B0=!0,console.info("\u2705 fullStateSync merged:",c.getAllNodes().length,"nodes"),O1)Y1(O1),p.update(O1)}};for(let E0 of J0)if(x1[E0.type])await x1[E0.type](E0);if(h0&&(!o||p.compare(h0,o)>0))f(h0);if(B0)await Promise.all([e(),q0()]),$0()},U1=VC(async()=>{let J0=y.splice(0);return J0.length?await D0(J0):!1},16);Object.assign(_,{use(J0){if(typeof J0==="function")U0.push(J0)},async put(J0,B0){let h0=p.now();f(h0),B0??=crypto.randomUUID(),c.upsert(B0,J0,h0),W0.add({type:"upsert",id:B0,timestamp:h0}),e(),q0();try{y.push({type:"upsert",id:B0,value:J0,timestamp:h0}),U1().catch(()=>{})}finally{$0()}return B0},async get(J0){if(typeof J0!=="string")return{result:null};let B0=c.get(J0);if(!B0)return{result:null};return{result:{...B0,value:QC(B0.value)}}},map(...J0){let h0={...{realtime:!1,query:{},field:null,order:"asc",$limit:null,$after:null,$before:null}},Y1=null,w8=!1;J0.forEach((n0)=>typeof n0==="function"?Y1=n0:n0&&typeof n0==="object"&&(w8=w8||("realtime"in n0),Object.assign(h0,n0))),Y1&&!w8&&(h0.realtime=!0);let x1=lA(c.nodes,h0),E0=null;if(Y1){if(x1.forEach((n0)=>Y1({id:n0.id,value:n0.value,edges:n0.edges,timestamp:n0.timestamp,action:"initial"})),h0.realtime){let n0=(O1)=>`${O1.id}:${O1.timestamp?.physical??0}:${O1.timestamp?.logical??0}:${(O1.edges??[]).join(",")}`;E0=(O1)=>{let $1=lA(O1,h0),U8=new Map(x1.map((A8)=>[A8.id,A8])),H8=new Map($1.map((A8)=>[A8.id,A8]));if($1.length!==x1.length||!$1.map(n0).every((A8,K1)=>A8===x1.map(n0)[K1])){for(let[A8,K1]of H8){let j8=U8.get(A8);if(!j8)Y1({id:A8,value:K1.value,edges:K1.edges,timestamp:K1.timestamp,action:"added"});else if(n0(K1)!==n0(j8))Y1({id:A8,value:K1.value,edges:K1.edges,timestamp:K1.timestamp,action:"updated"})}for(let[A8,K1]of U8)if(!H8.has(A8))Y1({id:A8,value:null,edges:K1.edges,timestamp:K1.timestamp,action:"removed"});x1=$1}},Y0.push(E0)}}return{results:x1,...h0.realtime&&Y1&&E0&&{unsubscribe:()=>{let n0=Y0.indexOf(E0);if(n0>=0)Y0.splice(n0,1)}}}},async link(J0,B0){if(!c.nodes[J0]||!c.nodes[B0])return;let h0=p.now();c.link(J0,B0,h0),W0.add({type:"link",sourceId:J0,targetId:B0,timestamp:h0}),e(),q0(),f(h0);try{y.push({type:"link",sourceId:J0,targetId:B0,timestamp:h0}),U1().catch(()=>{})}finally{$0()}},async remove(J0){let B0=c.get(J0);if(!B0)return;let h0=p.now();delete c.nodes[J0],Object.values(c.nodes).forEach((Y1)=>{Y1.edges=(Y1.edges??[]).filter((w8)=>w8!==J0)}),W0.add({type:"remove",id:J0,timestamp:h0}),e(),q0(),f(h0);try{y.push({type:"remove",id:J0,value:B0.value,timestamp:h0}),U1().catch(()=>{})}finally{$0()}},async clear(){c.nodes={},W0.clear(),m.del("graph"),m.del("oplog"),Q0()},on(J0){return Y0.push(J0),()=>{let B0=Y0.indexOf(J0);if(B0>=0)Y0.splice(B0,1)}},close(){m.close()}});try{let J0=`graph-sync-room-${W}`,B0={appId:"1234",type:"superpeer",...Y&&{password:Y},...I&&{relayUrls:I},...H&&{turnConfig:H},...D&&{cells:!0},...D&&D!==!0&&{overlay:D},rtcPolyfill:Q??NK};if(R=Pz(B0,J0),B=R.channel("syncGraph"),console.info(`\u26A1 Transport: ${D?"cellular mesh":"full mesh"}`),n){let h0=B.send;B={...B,send:async(Y1)=>h0(await n.signOps(Y1))},_.sm=n}if(!D){let h0=!1;R.channel("c0").on("message",()=>{if(h0)return;h0=!0,console.warn("\u26A0\uFE0F This room speaks Cellular Mesh \u2014 restart with --cells / GDB_CELLS=1 (CLI) or rtc: { cells: true } (module), or browser writes will never reach this superpeer.")})}if(x)_.room=Pz(B0,`app-sync-${W}`),console.info("\u26A1 db.room joined \u2014 visible to monitors/presence");R.on("peer:join",(h0)=>{console.info("\u26A1 Peer connected:",h0);for(let Y1 of[0,1500,4000,9000])setTimeout(()=>D0([{type:"sync",timestamp:o}]),Y1)}),R.on("peer:leave",(h0)=>console.info("\u26A1 Peer disconnected:",h0)),B.on("message",async(h0)=>{let Y1;try{Y1=h0 instanceof Uint8Array||h0 instanceof ArrayBuffer?(()=>{let x1=Y6(h0);return Array.isArray(x1)?x1:[x1]})():Array.isArray(h0)?h0:[h0]}catch(x1){return console.error("\u274C decode failed:",x1)}let w8=new Map([...new Set(Y1.flatMap((x1)=>["id","sourceId","targetId"].map((E0)=>x1?.[E0]).filter(Boolean)))].map((x1)=>c.get(x1)?[x1,QC(c.get(x1))]:null).filter(Boolean));for(let x1 of U0)try{if(Y1=await x1(Y1,w8),!Y1?.length)return}catch(E0){console.error("\u274C Middleware error:",E0);return}await N1(Y1)}),console.info("\u2705 GenosRTC sync enabled")}catch(J0){console.warn("\u26A0\uFE0F GenosRTC not available:",J0.message)}if(S(),P(),b(),n){let J0=h?.governanceRules??null;if(!J0&&process.env.GDB_SM_RULES){let B0=process.env.GDB_SM_RULES.trim();try{if(B0.startsWith("["))J0=JSON.parse(B0);else if(B0.startsWith("{"))J0=[JSON.parse(B0)];else J0=(await import(new URL(B0,`file://${process.cwd()}/`).href)).default}catch(h0){console.error("\u274C GOVERNANCE: could not load GDB_SM_RULES:",h0.message)}}if(Array.isArray(J0)&&J0.length)_.governance=B_(_,n,J0,{customRoles:h?.customRoles??null})}if(C)_.relay=C;return Object.defineProperties(_,{syncChannel:{get:()=>B},hybridClock:{get:()=>p},graph:{get:()=>({getAllNodes:()=>c.getAllNodes(),get:(J0)=>c.get(J0)})}}),console.info(`\u2705 GDBServer [${W}] ready (bun:sqlite)`),_}if(import.meta.main){let W=new Set(["ECONNREFUSED","ECONNRESET","EHOSTUNREACH","ENETUNREACH","EADDRNOTAVAIL","ETIMEDOUT","EPIPE"]),G=(V)=>W.has(V?.code)||W.has(V?.errno),X=new Map,Y=null,Z=(V="UNKNOWN")=>{let Q=(X.get(V)??0)+1;if(X.set(V,Q),Q===1)console.warn("\u26A0\uFE0F Transient network error (ignored):",V);Y??=setTimeout(()=>{Y=null;let J=[...X].filter(([,U])=>U>1).map(([U,q])=>`${U} \xD7${q}`).join(", ");if(J)console.warn("\u26A0\uFE0F Transient network errors (ignored, last 60s):",J);X.clear()},60000)};process.on("uncaughtException",(V)=>{if(G(V))return Z(V?.code??V?.errno);console.error("\u274C Fatal:",V?.message??V),process.exit(1)}),process.on("unhandledRejection",(V)=>{if(G(V))return Z(V?.code??V?.errno);console.error("\u274C Fatal (rejection):",V?.message??V),process.exit(1)}),jt().catch((V)=>{console.error("\u274C Fatal:",V.message),process.exit(1)})}export{jt as gdbServer};
|