genosdb 0.33.0 → 0.33.1
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 +9 -9
- package/dist/genossrv.min.js.gz +0 -0
- package/dist/index.js +1 -1
- package/dist/index.js.gz +0 -0
- package/dist/sm.min.js +3 -3
- package/dist/sm.min.js.gz +0 -0
- package/package.json +1 -1
package/dist/genossrv.min.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
var log=(()=>{const n=()=>{};return new Proxy(console,{get:(c,m)=>globalThis.__gdbDebug?c[m].bind(c):n})})();
|
|
3
|
-
var u_=Object.create;var{getPrototypeOf:h_,defineProperty:AA,getOwnPropertyNames:b_}=Object;var m_=Object.prototype.hasOwnProperty;function f_(W){return this[W]}var p_,c_,m1=(W,X,G)=>{var Y=W!=null&&typeof W==="object";if(Y){var J=X?p_??=new WeakMap:c_??=new WeakMap,Z=J.get(W);if(Z)return Z}G=W!=null?u_(h_(W)):{};let V=X||!W||!W.__esModule?AA(G,"default",{value:W,enumerable:!0}):G;for(let U of b_(W))if(!m_.call(V,U))AA(V,U,{get:f_.bind(W,U),enumerable:!0});if(Y)J.set(W,V);return V};var V1=(W,X)=>()=>(X||W((X={exports:{}}).exports,X),X.exports);var l_=(W)=>W;function d_(W,X){this[W]=l_.bind(null,X)}var zA=(W,X)=>{for(var G in X)AA(W,G,{get:X[G],enumerable:!0,configurable:!0,set:d_.bind(X,G)})};var _8=import.meta.require;var YM=V1((ne,GM)=>{var AG=1000,zG=AG*60,IG=zG*60,BW=IG*24,ch=BW*7,lh=BW*365.25;GM.exports=function(W,X){X=X||{};var G=typeof W;if(G==="string"&&W.length>0)return dh(W);else if(G==="number"&&isFinite(W))return X.long?nh(W):oh(W);throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(W))};function dh(W){if(W=String(W),W.length>100)return;var X=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(W);if(!X)return;var G=parseFloat(X[1]),Y=(X[2]||"ms").toLowerCase();switch(Y){case"years":case"year":case"yrs":case"yr":case"y":return G*lh;case"weeks":case"week":case"w":return G*ch;case"days":case"day":case"d":return G*BW;case"hours":case"hour":case"hrs":case"hr":case"h":return G*IG;case"minutes":case"minute":case"mins":case"min":case"m":return G*zG;case"seconds":case"second":case"secs":case"sec":case"s":return G*AG;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return G;default:return}}function oh(W){var X=Math.abs(W);if(X>=BW)return Math.round(W/BW)+"d";if(X>=IG)return Math.round(W/IG)+"h";if(X>=zG)return Math.round(W/zG)+"m";if(X>=AG)return Math.round(W/AG)+"s";return W+"ms"}function nh(W){var X=Math.abs(W);if(X>=BW)return EQ(W,X,BW,"day");if(X>=IG)return EQ(W,X,IG,"hour");if(X>=zG)return EQ(W,X,zG,"minute");if(X>=AG)return EQ(W,X,AG,"second");return W+" ms"}function EQ(W,X,G,Y){var J=X>=G*1.5;return Math.round(W/G)+" "+Y+(J?"s":"")}});var Lz=V1((ie,JM)=>{function ih(W){G.debug=G,G.default=G,G.coerce=Q,G.disable=V,G.enable=J,G.enabled=U,G.humanize=YM(),G.destroy=N,Object.keys(W).forEach((q)=>{G[q]=W[q]}),G.names=[],G.skips=[],G.formatters={};function X(q){let A=0;for(let H=0;H<q.length;H++)A=(A<<5)-A+q.charCodeAt(H),A|=0;return G.colors[Math.abs(A)%G.colors.length]}G.selectColor=X;function G(q){let A,H=null,I,w;function O(...T){if(!O.enabled)return;let x=O,
|
|
3
|
+
var u_=Object.create;var{getPrototypeOf:h_,defineProperty:AA,getOwnPropertyNames:b_}=Object;var m_=Object.prototype.hasOwnProperty;function f_(W){return this[W]}var p_,c_,m1=(W,X,G)=>{var Y=W!=null&&typeof W==="object";if(Y){var J=X?p_??=new WeakMap:c_??=new WeakMap,Z=J.get(W);if(Z)return Z}G=W!=null?u_(h_(W)):{};let V=X||!W||!W.__esModule?AA(G,"default",{value:W,enumerable:!0}):G;for(let U of b_(W))if(!m_.call(V,U))AA(V,U,{get:f_.bind(W,U),enumerable:!0});if(Y)J.set(W,V);return V};var V1=(W,X)=>()=>(X||W((X={exports:{}}).exports,X),X.exports);var l_=(W)=>W;function d_(W,X){this[W]=l_.bind(null,X)}var zA=(W,X)=>{for(var G in X)AA(W,G,{get:X[G],enumerable:!0,configurable:!0,set:d_.bind(X,G)})};var _8=import.meta.require;var YM=V1((ne,GM)=>{var AG=1000,zG=AG*60,IG=zG*60,BW=IG*24,ch=BW*7,lh=BW*365.25;GM.exports=function(W,X){X=X||{};var G=typeof W;if(G==="string"&&W.length>0)return dh(W);else if(G==="number"&&isFinite(W))return X.long?nh(W):oh(W);throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(W))};function dh(W){if(W=String(W),W.length>100)return;var X=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(W);if(!X)return;var G=parseFloat(X[1]),Y=(X[2]||"ms").toLowerCase();switch(Y){case"years":case"year":case"yrs":case"yr":case"y":return G*lh;case"weeks":case"week":case"w":return G*ch;case"days":case"day":case"d":return G*BW;case"hours":case"hour":case"hrs":case"hr":case"h":return G*IG;case"minutes":case"minute":case"mins":case"min":case"m":return G*zG;case"seconds":case"second":case"secs":case"sec":case"s":return G*AG;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return G;default:return}}function oh(W){var X=Math.abs(W);if(X>=BW)return Math.round(W/BW)+"d";if(X>=IG)return Math.round(W/IG)+"h";if(X>=zG)return Math.round(W/zG)+"m";if(X>=AG)return Math.round(W/AG)+"s";return W+"ms"}function nh(W){var X=Math.abs(W);if(X>=BW)return EQ(W,X,BW,"day");if(X>=IG)return EQ(W,X,IG,"hour");if(X>=zG)return EQ(W,X,zG,"minute");if(X>=AG)return EQ(W,X,AG,"second");return W+" ms"}function EQ(W,X,G,Y){var J=X>=G*1.5;return Math.round(W/G)+" "+Y+(J?"s":"")}});var Lz=V1((ie,JM)=>{function ih(W){G.debug=G,G.default=G,G.coerce=Q,G.disable=V,G.enable=J,G.enabled=U,G.humanize=YM(),G.destroy=N,Object.keys(W).forEach((q)=>{G[q]=W[q]}),G.names=[],G.skips=[],G.formatters={};function X(q){let A=0;for(let H=0;H<q.length;H++)A=(A<<5)-A+q.charCodeAt(H),A|=0;return G.colors[Math.abs(A)%G.colors.length]}G.selectColor=X;function G(q){let A,H=null,I,w;function O(...T){if(!O.enabled)return;let x=O,u=Number(new Date),$=u-(A||u);if(x.diff=$,x.prev=A,x.curr=u,A=u,T[0]=G.coerce(T[0]),typeof T[0]!=="string")T.unshift("%O");let S=0;T[0]=T[0].replace(/%([a-zA-Z%])/g,(l,p)=>{if(l==="%%")return"%";S++;let t=G.formatters[p];if(typeof t==="function"){let _=T[S];l=t.call(x,_),T.splice(S,1),S--}return l}),G.formatArgs.call(x,T),(x.log||G.log).apply(x,T)}if(O.namespace=q,O.useColors=G.useColors(),O.color=G.selectColor(q),O.extend=Y,O.destroy=G.destroy,Object.defineProperty(O,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(H!==null)return H;if(I!==G.namespaces)I=G.namespaces,w=G.enabled(q);return w},set:(T)=>{H=T}}),typeof G.init==="function")G.init(O);return O}function Y(q,A){let H=G(this.namespace+(typeof A>"u"?":":A)+q);return H.log=this.log,H}function J(q){G.save(q),G.namespaces=q,G.names=[],G.skips=[];let A=(typeof q==="string"?q:"").trim().replace(" ",",").split(",").filter(Boolean);for(let H of A)if(H[0]==="-")G.skips.push(H.slice(1));else G.names.push(H)}function Z(q,A){let H=0,I=0,w=-1,O=0;while(H<q.length)if(I<A.length&&(A[I]===q[H]||A[I]==="*"))if(A[I]==="*")w=I,O=H,I++;else H++,I++;else if(w!==-1)I=w+1,O++,H=O;else return!1;while(I<A.length&&A[I]==="*")I++;return I===A.length}function V(){let q=[...G.names,...G.skips.map((A)=>"-"+A)].join(",");return G.enable(""),q}function U(q){for(let A of G.skips)if(Z(q,A))return!1;for(let A of G.names)if(Z(q,A))return!0;return!1}function Q(q){if(q instanceof Error)return q.stack||q.message;return q}function N(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return G.enable(G.load()),G}JM.exports=ih});var VM=V1((ZM,FQ)=>{ZM.formatArgs=ah;ZM.save=sh;ZM.load=th;ZM.useColors=rh;ZM.storage=eh();ZM.destroy=(()=>{let W=!1;return()=>{if(!W)W=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}})();ZM.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function rh(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let W;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(W=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(W[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function ah(W){if(W[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+W[0]+(this.useColors?"%c ":" ")+"+"+FQ.exports.humanize(this.diff),!this.useColors)return;let X="color: "+this.color;W.splice(1,0,X,"color: inherit");let G=0,Y=0;W[0].replace(/%[a-zA-Z%]/g,(J)=>{if(J==="%%")return;if(G++,J==="%c")Y=G}),W.splice(Y,0,X)}ZM.log=console.debug||console.log||(()=>{});function sh(W){try{if(W)ZM.storage.setItem("debug",W);else ZM.storage.removeItem("debug")}catch(X){}}function th(){let W;try{W=ZM.storage.getItem("debug")}catch(X){}if(!W&&typeof process<"u"&&"env"in process)W=process.env.DEBUG;return W}function eh(){try{return localStorage}catch(W){}}FQ.exports=Lz()(ZM);var{formatters:Wb}=FQ.exports;Wb.j=function(W){try{return JSON.stringify(W)}catch(X){return"[UnexpectedJSONParseError]: "+X.message}}});var qM=V1((QM,xQ)=>{var Qb=_8("tty"),SQ=_8("util");QM.init=wb;QM.log=Ab;QM.formatArgs=qb;QM.save=zb;QM.load=Ib;QM.useColors=Nb;QM.destroy=SQ.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");QM.colors=[6,2,3,4,5,1];try{let W=(()=>{throw new Error("Cannot require module "+"supports-color");})();if(W&&(W.stderr||W).level>=2)QM.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}catch(W){}QM.inspectOpts=Object.keys(process.env).filter((W)=>{return/^debug_/i.test(W)}).reduce((W,X)=>{let G=X.substring(6).toLowerCase().replace(/_([a-z])/g,(J,Z)=>{return Z.toUpperCase()}),Y=process.env[X];if(/^(yes|on|true|enabled)$/i.test(Y))Y=!0;else if(/^(no|off|false|disabled)$/i.test(Y))Y=!1;else if(Y==="null")Y=null;else Y=Number(Y);return W[G]=Y,W},{});function Nb(){return"colors"in QM.inspectOpts?Boolean(QM.inspectOpts.colors):Qb.isatty(process.stderr.fd)}function qb(W){let{namespace:X,useColors:G}=this;if(G){let Y=this.color,J="\x1B[3"+(Y<8?Y:"8;5;"+Y),Z=` ${J};1m${X} \x1B[0m`;W[0]=Z+W[0].split(`
|
|
4
4
|
`).join(`
|
|
5
5
|
`+Z),W.push(J+"m+"+xQ.exports.humanize(this.diff)+"\x1B[0m")}else W[0]=Hb()+X+" "+W[0]}function Hb(){if(QM.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function Ab(...W){return process.stderr.write(SQ.formatWithOptions(QM.inspectOpts,...W)+`
|
|
6
6
|
`)}function zb(W){if(W)process.env.DEBUG=W;else delete process.env.DEBUG}function Ib(){return process.env.DEBUG}function wb(W){W.inspectOpts={};let X=Object.keys(QM.inspectOpts);for(let G=0;G<X.length;G++)W.inspectOpts[X[G]]=QM.inspectOpts[X[G]]}xQ.exports=Lz()(QM);var{formatters:UM}=xQ.exports;UM.o=function(W){return this.inspectOpts.colors=this.useColors,SQ.inspect(W,this.inspectOpts).split(`
|
|
7
|
-
`).map((X)=>X.trim()).join(" ")};UM.O=function(W){return this.inspectOpts.colors=this.useColors,SQ.inspect(W,this.inspectOpts)}});var HM=V1((se,Bz)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)Bz.exports=VM();else Bz.exports=qM()});var kQ=V1((zM)=>{Object.defineProperty(zM,"__esModule",{value:!0});var Pb=_8("net");function Rb(W){switch(Pb.isIP(W)){case 4:return Buffer.from(W.split(".").map((J)=>parseInt(J,10)));case 6:let X=W.split(":"),G=Buffer.alloc(16),Y=0;if(X[X.length-1]==="")X[X.length-1]="0";for(let J=0;J<X.length;J++){if(X[J]===""){if(J+1<X.length&&X[J+1]!=="")Y=16-(X.length-J-1)*2;continue}G.writeUInt16BE(parseInt(X[J],16),Y),Y+=2}return G;default:return null}}zM.bytesFromIP=Rb;function Lb(W){switch(W.length){case 4:return[W[0],W[1],W[2],W[3]].join(".");case 16:let X=[],G=-1,Y=0,J=-1,Z=0;for(let V=0;V<W.length;V+=2){let U=W[V]<<8|W[V+1];if(U===0){if(Y++,G===-1)G=X.length;if(Y>Z)Z=Y,J=G}else G=-1,Y=0;X.push(U.toString(16))}if(Z>0){let V="",U=X.slice(J+Z);if(X.length=J,X.length===0)V+=":";if(U.length===0)V+=":";X.push(V,...U)}return X.join(":");default:return""}}zM.bytesToIP=Lb;var z6=Object.create(null),AM=/^[0-9.]+$/;function Bb(W){if(AM.test(W)&&z6[W]!=="")return W;return z6[W]==null?"":z6[W]}zM.getOID=Bb;function Eb(W){if(!AM.test(W)&&z6[W]!=="")return W;return z6[W]==null?W:z6[W]}zM.getOIDName=Eb;function w0(W,X){z6[W]=X,z6[X]=W}w0("1.2.840.113549.1.1.1","rsaEncryption");w0("1.2.840.113549.1.1.4","md5WithRsaEncryption");w0("1.2.840.113549.1.1.5","sha1WithRsaEncryption");w0("1.2.840.113549.1.1.8","mgf1");w0("1.2.840.113549.1.1.10","RSASSA-PSS");w0("1.2.840.113549.1.1.11","sha256WithRsaEncryption");w0("1.2.840.113549.1.1.12","sha384WithRsaEncryption");w0("1.2.840.113549.1.1.13","sha512WithRsaEncryption");w0("1.2.840.10045.2.1","ecEncryption");w0("1.2.840.10045.4.1","ecdsaWithSha1");w0("1.2.840.10045.4.3.2","ecdsaWithSha256");w0("1.2.840.10045.4.3.3","ecdsaWithSha384");w0("1.2.840.10045.4.3.4","ecdsaWithSha512");w0("1.2.840.10040.4.3","dsaWithSha1");w0("2.16.840.1.101.3.4.3.2","dsaWithSha256");w0("1.3.14.3.2.7","desCBC");w0("1.3.14.3.2.26","sha1");w0("2.16.840.1.101.3.4.2.1","sha256");w0("2.16.840.1.101.3.4.2.2","sha384");w0("2.16.840.1.101.3.4.2.3","sha512");w0("1.2.840.113549.2.5","md5");w0("1.3.101.110","X25519");w0("1.3.101.111","X448");w0("1.3.101.112","Ed25519");w0("1.3.101.113","Ed448");w0("1.2.840.113549.1.7.1","data");w0("1.2.840.113549.1.7.2","signedData");w0("1.2.840.113549.1.7.3","envelopedData");w0("1.2.840.113549.1.7.4","signedAndEnvelopedData");w0("1.2.840.113549.1.7.5","digestedData");w0("1.2.840.113549.1.7.6","encryptedData");w0("1.2.840.113549.1.9.1","emailAddress");w0("1.2.840.113549.1.9.2","unstructuredName");w0("1.2.840.113549.1.9.3","contentType");w0("1.2.840.113549.1.9.4","messageDigest");w0("1.2.840.113549.1.9.5","signingTime");w0("1.2.840.113549.1.9.6","counterSignature");w0("1.2.840.113549.1.9.7","challengePassword");w0("1.2.840.113549.1.9.8","unstructuredAddress");w0("1.2.840.113549.1.9.14","extensionRequest");w0("1.2.840.113549.1.9.20","friendlyName");w0("1.2.840.113549.1.9.21","localKeyId");w0("1.2.840.113549.1.9.22.1","x509Certificate");w0("1.2.840.113549.1.12.10.1.1","keyBag");w0("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");w0("1.2.840.113549.1.12.10.1.3","certBag");w0("1.2.840.113549.1.12.10.1.4","crlBag");w0("1.2.840.113549.1.12.10.1.5","secretBag");w0("1.2.840.113549.1.12.10.1.6","safeContentsBag");w0("1.2.840.113549.1.5.13","pkcs5PBES2");w0("1.2.840.113549.1.5.12","pkcs5PBKDF2");w0("1.2.840.113549.2.7","hmacWithSha1");w0("1.2.840.113549.2.9","hmacWithSha256");w0("1.2.840.113549.2.10","hmacWithSha384");w0("1.2.840.113549.2.11","hmacWithSha512");w0("1.2.840.113549.3.7","3desCBC");w0("2.16.840.1.101.3.4.1.2","aesCBC128");w0("2.16.840.1.101.3.4.1.42","aesCBC256");w0("2.5.4.3","commonName");w0("2.5.4.5","serialName");w0("2.5.4.6","countryName");w0("2.5.4.7","localityName");w0("2.5.4.8","stateOrProvinceName");w0("2.5.4.10","organizationName");w0("2.5.4.11","organizationalUnitName");w0("2.5.4.15","businessCategory");w0("2.16.840.1.113730.1.1","nsCertType");w0("2.5.29.2","keyAttributes");w0("2.5.29.4","keyUsageRestriction");w0("2.5.29.6","subtreesConstraint");w0("2.5.29.9","subjectDirectoryAttributes");w0("2.5.29.14","subjectKeyIdentifier");w0("2.5.29.15","keyUsage");w0("2.5.29.16","privateKeyUsagePeriod");w0("2.5.29.17","subjectAltName");w0("2.5.29.18","issuerAltName");w0("2.5.29.19","basicConstraints");w0("2.5.29.20","cRLNumber");w0("2.5.29.21","cRLReason");w0("2.5.29.22","expirationDate");w0("2.5.29.23","instructionCode");w0("2.5.29.24","invalidityDate");w0("2.5.29.27","deltaCRLIndicator");w0("2.5.29.28","issuingDistributionPoint");w0("2.5.29.29","certificateIssuer");w0("2.5.29.30","nameConstraints");w0("2.5.29.31","cRLDistributionPoints");w0("2.5.29.32","certificatePolicies");w0("2.5.29.33","policyMappings");w0("2.5.29.35","authorityKeyIdentifier");w0("2.5.29.36","policyConstraints");w0("2.5.29.37","extKeyUsage");w0("2.5.29.46","freshestCRL");w0("2.5.29.54","inhibitAnyPolicy");w0("1.3.6.1.4.1.311.60.2.1.2","jurisdictionST");w0("1.3.6.1.4.1.311.60.2.1.3","jurisdictionC");w0("1.3.6.1.4.1.11129.2.4.2","timestampList");w0("1.3.6.1.5.5.7.1.1","authorityInfoAccess");w0("1.3.6.1.5.5.7.3.1","serverAuth");w0("1.3.6.1.5.5.7.3.2","clientAuth");w0("1.3.6.1.5.5.7.3.3","codeSigning");w0("1.3.6.1.5.5.7.3.4","emailProtection");w0("1.3.6.1.5.5.7.3.8","timeStamping");w0("1.3.6.1.5.5.7.48.1","authorityInfoAccessOcsp");w0("1.3.6.1.5.5.7.48.2","authorityInfoAccessIssuers")});var yQ=V1((ee,_Q)=>{(function(W){var X=function(K){var M,C=new Float64Array(16);if(K)for(M=0;M<K.length;M++)C[M]=K[M];return C},G=function(){throw Error("no PRNG")},Y=new Uint8Array(16),J=new Uint8Array(32);J[0]=9;var Z=X(),V=X([1]),U=X([56129,1]),Q=X([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),N=X([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),q=X([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),A=X([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),H=X([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function I(K,M,C,z){K[M]=C>>24&255,K[M+1]=C>>16&255,K[M+2]=C>>8&255,K[M+3]=C&255,K[M+4]=z>>24&255,K[M+5]=z>>16&255,K[M+6]=z>>8&255,K[M+7]=z&255}function w(K,M,C,z,B){var n,s=0;for(n=0;n<B;n++)s|=K[M+n]^C[z+n];return(1&s-1>>>8)-1}function O(K,M,C,z){return w(K,M,C,z,16)}function T(K,M,C,z){return w(K,M,C,z,32)}function x(K,M,C,z){var B=z[0]&255|(z[1]&255)<<8|(z[2]&255)<<16|(z[3]&255)<<24,n=C[0]&255|(C[1]&255)<<8|(C[2]&255)<<16|(C[3]&255)<<24,s=C[4]&255|(C[5]&255)<<8|(C[6]&255)<<16|(C[7]&255)<<24,z0=C[8]&255|(C[9]&255)<<8|(C[10]&255)<<16|(C[11]&255)<<24,M0=C[12]&255|(C[13]&255)<<8|(C[14]&255)<<16|(C[15]&255)<<24,t0=z[4]&255|(z[5]&255)<<8|(z[6]&255)<<16|(z[7]&255)<<24,b0=M[0]&255|(M[1]&255)<<8|(M[2]&255)<<16|(M[3]&255)<<24,n1=M[4]&255|(M[5]&255)<<8|(M[6]&255)<<16|(M[7]&255)<<24,l0=M[8]&255|(M[9]&255)<<8|(M[10]&255)<<16|(M[11]&255)<<24,A1=M[12]&255|(M[13]&255)<<8|(M[14]&255)<<16|(M[15]&255)<<24,I1=z[8]&255|(z[9]&255)<<8|(z[10]&255)<<16|(z[11]&255)<<24,B1=C[16]&255|(C[17]&255)<<8|(C[18]&255)<<16|(C[19]&255)<<24,P1=C[20]&255|(C[21]&255)<<8|(C[22]&255)<<16|(C[23]&255)<<24,w1=C[24]&255|(C[25]&255)<<8|(C[26]&255)<<16|(C[27]&255)<<24,O1=C[28]&255|(C[29]&255)<<8|(C[30]&255)<<16|(C[31]&255)<<24,j1=z[12]&255|(z[13]&255)<<8|(z[14]&255)<<16|(z[15]&255)<<24,n0=B,X1=n,f0=s,r0=z0,s0=M0,v0=t0,Z0=b0,V0=n1,j0=l0,A0=A1,I0=I1,D0=B1,N1=P1,E1=w1,S1=O1,$1=j1,h;for(var y1=0;y1<20;y1+=2)h=n0+N1|0,s0^=h<<7|h>>>25,h=s0+n0|0,j0^=h<<9|h>>>23,h=j0+s0|0,N1^=h<<13|h>>>19,h=N1+j0|0,n0^=h<<18|h>>>14,h=v0+X1|0,A0^=h<<7|h>>>25,h=A0+v0|0,E1^=h<<9|h>>>23,h=E1+A0|0,X1^=h<<13|h>>>19,h=X1+E1|0,v0^=h<<18|h>>>14,h=I0+Z0|0,S1^=h<<7|h>>>25,h=S1+I0|0,f0^=h<<9|h>>>23,h=f0+S1|0,Z0^=h<<13|h>>>19,h=Z0+f0|0,I0^=h<<18|h>>>14,h=$1+D0|0,r0^=h<<7|h>>>25,h=r0+$1|0,V0^=h<<9|h>>>23,h=V0+r0|0,D0^=h<<13|h>>>19,h=D0+V0|0,$1^=h<<18|h>>>14,h=n0+r0|0,X1^=h<<7|h>>>25,h=X1+n0|0,f0^=h<<9|h>>>23,h=f0+X1|0,r0^=h<<13|h>>>19,h=r0+f0|0,n0^=h<<18|h>>>14,h=v0+s0|0,Z0^=h<<7|h>>>25,h=Z0+v0|0,V0^=h<<9|h>>>23,h=V0+Z0|0,s0^=h<<13|h>>>19,h=s0+V0|0,v0^=h<<18|h>>>14,h=I0+A0|0,D0^=h<<7|h>>>25,h=D0+I0|0,j0^=h<<9|h>>>23,h=j0+D0|0,A0^=h<<13|h>>>19,h=A0+j0|0,I0^=h<<18|h>>>14,h=$1+S1|0,N1^=h<<7|h>>>25,h=N1+$1|0,E1^=h<<9|h>>>23,h=E1+N1|0,S1^=h<<13|h>>>19,h=S1+E1|0,$1^=h<<18|h>>>14;n0=n0+B|0,X1=X1+n|0,f0=f0+s|0,r0=r0+z0|0,s0=s0+M0|0,v0=v0+t0|0,Z0=Z0+b0|0,V0=V0+n1|0,j0=j0+l0|0,A0=A0+A1|0,I0=I0+I1|0,D0=D0+B1|0,N1=N1+P1|0,E1=E1+w1|0,S1=S1+O1|0,$1=$1+j1|0,K[0]=n0>>>0&255,K[1]=n0>>>8&255,K[2]=n0>>>16&255,K[3]=n0>>>24&255,K[4]=X1>>>0&255,K[5]=X1>>>8&255,K[6]=X1>>>16&255,K[7]=X1>>>24&255,K[8]=f0>>>0&255,K[9]=f0>>>8&255,K[10]=f0>>>16&255,K[11]=f0>>>24&255,K[12]=r0>>>0&255,K[13]=r0>>>8&255,K[14]=r0>>>16&255,K[15]=r0>>>24&255,K[16]=s0>>>0&255,K[17]=s0>>>8&255,K[18]=s0>>>16&255,K[19]=s0>>>24&255,K[20]=v0>>>0&255,K[21]=v0>>>8&255,K[22]=v0>>>16&255,K[23]=v0>>>24&255,K[24]=Z0>>>0&255,K[25]=Z0>>>8&255,K[26]=Z0>>>16&255,K[27]=Z0>>>24&255,K[28]=V0>>>0&255,K[29]=V0>>>8&255,K[30]=V0>>>16&255,K[31]=V0>>>24&255,K[32]=j0>>>0&255,K[33]=j0>>>8&255,K[34]=j0>>>16&255,K[35]=j0>>>24&255,K[36]=A0>>>0&255,K[37]=A0>>>8&255,K[38]=A0>>>16&255,K[39]=A0>>>24&255,K[40]=I0>>>0&255,K[41]=I0>>>8&255,K[42]=I0>>>16&255,K[43]=I0>>>24&255,K[44]=D0>>>0&255,K[45]=D0>>>8&255,K[46]=D0>>>16&255,K[47]=D0>>>24&255,K[48]=N1>>>0&255,K[49]=N1>>>8&255,K[50]=N1>>>16&255,K[51]=N1>>>24&255,K[52]=E1>>>0&255,K[53]=E1>>>8&255,K[54]=E1>>>16&255,K[55]=E1>>>24&255,K[56]=S1>>>0&255,K[57]=S1>>>8&255,K[58]=S1>>>16&255,K[59]=S1>>>24&255,K[60]=$1>>>0&255,K[61]=$1>>>8&255,K[62]=$1>>>16&255,K[63]=$1>>>24&255}function P(K,M,C,z){var B=z[0]&255|(z[1]&255)<<8|(z[2]&255)<<16|(z[3]&255)<<24,n=C[0]&255|(C[1]&255)<<8|(C[2]&255)<<16|(C[3]&255)<<24,s=C[4]&255|(C[5]&255)<<8|(C[6]&255)<<16|(C[7]&255)<<24,z0=C[8]&255|(C[9]&255)<<8|(C[10]&255)<<16|(C[11]&255)<<24,M0=C[12]&255|(C[13]&255)<<8|(C[14]&255)<<16|(C[15]&255)<<24,t0=z[4]&255|(z[5]&255)<<8|(z[6]&255)<<16|(z[7]&255)<<24,b0=M[0]&255|(M[1]&255)<<8|(M[2]&255)<<16|(M[3]&255)<<24,n1=M[4]&255|(M[5]&255)<<8|(M[6]&255)<<16|(M[7]&255)<<24,l0=M[8]&255|(M[9]&255)<<8|(M[10]&255)<<16|(M[11]&255)<<24,A1=M[12]&255|(M[13]&255)<<8|(M[14]&255)<<16|(M[15]&255)<<24,I1=z[8]&255|(z[9]&255)<<8|(z[10]&255)<<16|(z[11]&255)<<24,B1=C[16]&255|(C[17]&255)<<8|(C[18]&255)<<16|(C[19]&255)<<24,P1=C[20]&255|(C[21]&255)<<8|(C[22]&255)<<16|(C[23]&255)<<24,w1=C[24]&255|(C[25]&255)<<8|(C[26]&255)<<16|(C[27]&255)<<24,O1=C[28]&255|(C[29]&255)<<8|(C[30]&255)<<16|(C[31]&255)<<24,j1=z[12]&255|(z[13]&255)<<8|(z[14]&255)<<16|(z[15]&255)<<24,n0=B,X1=n,f0=s,r0=z0,s0=M0,v0=t0,Z0=b0,V0=n1,j0=l0,A0=A1,I0=I1,D0=B1,N1=P1,E1=w1,S1=O1,$1=j1,h;for(var y1=0;y1<20;y1+=2)h=n0+N1|0,s0^=h<<7|h>>>25,h=s0+n0|0,j0^=h<<9|h>>>23,h=j0+s0|0,N1^=h<<13|h>>>19,h=N1+j0|0,n0^=h<<18|h>>>14,h=v0+X1|0,A0^=h<<7|h>>>25,h=A0+v0|0,E1^=h<<9|h>>>23,h=E1+A0|0,X1^=h<<13|h>>>19,h=X1+E1|0,v0^=h<<18|h>>>14,h=I0+Z0|0,S1^=h<<7|h>>>25,h=S1+I0|0,f0^=h<<9|h>>>23,h=f0+S1|0,Z0^=h<<13|h>>>19,h=Z0+f0|0,I0^=h<<18|h>>>14,h=$1+D0|0,r0^=h<<7|h>>>25,h=r0+$1|0,V0^=h<<9|h>>>23,h=V0+r0|0,D0^=h<<13|h>>>19,h=D0+V0|0,$1^=h<<18|h>>>14,h=n0+r0|0,X1^=h<<7|h>>>25,h=X1+n0|0,f0^=h<<9|h>>>23,h=f0+X1|0,r0^=h<<13|h>>>19,h=r0+f0|0,n0^=h<<18|h>>>14,h=v0+s0|0,Z0^=h<<7|h>>>25,h=Z0+v0|0,V0^=h<<9|h>>>23,h=V0+Z0|0,s0^=h<<13|h>>>19,h=s0+V0|0,v0^=h<<18|h>>>14,h=I0+A0|0,D0^=h<<7|h>>>25,h=D0+I0|0,j0^=h<<9|h>>>23,h=j0+D0|0,A0^=h<<13|h>>>19,h=A0+j0|0,I0^=h<<18|h>>>14,h=$1+S1|0,N1^=h<<7|h>>>25,h=N1+$1|0,E1^=h<<9|h>>>23,h=E1+N1|0,S1^=h<<13|h>>>19,h=S1+E1|0,$1^=h<<18|h>>>14;K[0]=n0>>>0&255,K[1]=n0>>>8&255,K[2]=n0>>>16&255,K[3]=n0>>>24&255,K[4]=v0>>>0&255,K[5]=v0>>>8&255,K[6]=v0>>>16&255,K[7]=v0>>>24&255,K[8]=I0>>>0&255,K[9]=I0>>>8&255,K[10]=I0>>>16&255,K[11]=I0>>>24&255,K[12]=$1>>>0&255,K[13]=$1>>>8&255,K[14]=$1>>>16&255,K[15]=$1>>>24&255,K[16]=Z0>>>0&255,K[17]=Z0>>>8&255,K[18]=Z0>>>16&255,K[19]=Z0>>>24&255,K[20]=V0>>>0&255,K[21]=V0>>>8&255,K[22]=V0>>>16&255,K[23]=V0>>>24&255,K[24]=j0>>>0&255,K[25]=j0>>>8&255,K[26]=j0>>>16&255,K[27]=j0>>>24&255,K[28]=A0>>>0&255,K[29]=A0>>>8&255,K[30]=A0>>>16&255,K[31]=A0>>>24&255}function u(K,M,C,z){x(K,M,C,z)}function F(K,M,C,z){P(K,M,C,z)}var m=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function l(K,M,C,z,B,n,s){var z0=new Uint8Array(16),M0=new Uint8Array(64),t0,b0;for(b0=0;b0<16;b0++)z0[b0]=0;for(b0=0;b0<8;b0++)z0[b0]=n[b0];while(B>=64){u(M0,z0,s,m);for(b0=0;b0<64;b0++)K[M+b0]=C[z+b0]^M0[b0];t0=1;for(b0=8;b0<16;b0++)t0=t0+(z0[b0]&255)|0,z0[b0]=t0&255,t0>>>=8;B-=64,M+=64,z+=64}if(B>0){u(M0,z0,s,m);for(b0=0;b0<B;b0++)K[M+b0]=C[z+b0]^M0[b0]}return 0}function p(K,M,C,z,B){var n=new Uint8Array(16),s=new Uint8Array(64),z0,M0;for(M0=0;M0<16;M0++)n[M0]=0;for(M0=0;M0<8;M0++)n[M0]=z[M0];while(C>=64){u(s,n,B,m);for(M0=0;M0<64;M0++)K[M+M0]=s[M0];z0=1;for(M0=8;M0<16;M0++)z0=z0+(n[M0]&255)|0,n[M0]=z0&255,z0>>>=8;C-=64,M+=64}if(C>0){u(s,n,B,m);for(M0=0;M0<C;M0++)K[M+M0]=s[M0]}return 0}function W0(K,M,C,z,B){var n=new Uint8Array(32);F(n,z,B,m);var s=new Uint8Array(8);for(var z0=0;z0<8;z0++)s[z0]=z[z0+16];return p(K,M,C,s,n)}function y(K,M,C,z,B,n,s){var z0=new Uint8Array(32);F(z0,n,s,m);var M0=new Uint8Array(8);for(var t0=0;t0<8;t0++)M0[t0]=n[t0+16];return l(K,M,C,z,B,M0,z0)}var e=function(K){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 M,C,z,B,n,s,z0,M0;M=K[0]&255|(K[1]&255)<<8,this.r[0]=M&8191,C=K[2]&255|(K[3]&255)<<8,this.r[1]=(M>>>13|C<<3)&8191,z=K[4]&255|(K[5]&255)<<8,this.r[2]=(C>>>10|z<<6)&7939,B=K[6]&255|(K[7]&255)<<8,this.r[3]=(z>>>7|B<<9)&8191,n=K[8]&255|(K[9]&255)<<8,this.r[4]=(B>>>4|n<<12)&255,this.r[5]=n>>>1&8190,s=K[10]&255|(K[11]&255)<<8,this.r[6]=(n>>>14|s<<2)&8191,z0=K[12]&255|(K[13]&255)<<8,this.r[7]=(s>>>11|z0<<5)&8065,M0=K[14]&255|(K[15]&255)<<8,this.r[8]=(z0>>>8|M0<<8)&8191,this.r[9]=M0>>>5&127,this.pad[0]=K[16]&255|(K[17]&255)<<8,this.pad[1]=K[18]&255|(K[19]&255)<<8,this.pad[2]=K[20]&255|(K[21]&255)<<8,this.pad[3]=K[22]&255|(K[23]&255)<<8,this.pad[4]=K[24]&255|(K[25]&255)<<8,this.pad[5]=K[26]&255|(K[27]&255)<<8,this.pad[6]=K[28]&255|(K[29]&255)<<8,this.pad[7]=K[30]&255|(K[31]&255)<<8};e.prototype.blocks=function(K,M,C){var z=this.fin?0:2048,B,n,s,z0,M0,t0,b0,n1,l0,A1,I1,B1,P1,w1,O1,j1,n0,X1,f0,r0=this.h[0],s0=this.h[1],v0=this.h[2],Z0=this.h[3],V0=this.h[4],j0=this.h[5],A0=this.h[6],I0=this.h[7],D0=this.h[8],N1=this.h[9],E1=this.r[0],S1=this.r[1],$1=this.r[2],h=this.r[3],y1=this.r[4],i1=this.r[5],r1=this.r[6],_1=this.r[7],l1=this.r[8],d1=this.r[9];while(C>=16)B=K[M+0]&255|(K[M+1]&255)<<8,r0+=B&8191,n=K[M+2]&255|(K[M+3]&255)<<8,s0+=(B>>>13|n<<3)&8191,s=K[M+4]&255|(K[M+5]&255)<<8,v0+=(n>>>10|s<<6)&8191,z0=K[M+6]&255|(K[M+7]&255)<<8,Z0+=(s>>>7|z0<<9)&8191,M0=K[M+8]&255|(K[M+9]&255)<<8,V0+=(z0>>>4|M0<<12)&8191,j0+=M0>>>1&8191,t0=K[M+10]&255|(K[M+11]&255)<<8,A0+=(M0>>>14|t0<<2)&8191,b0=K[M+12]&255|(K[M+13]&255)<<8,I0+=(t0>>>11|b0<<5)&8191,n1=K[M+14]&255|(K[M+15]&255)<<8,D0+=(b0>>>8|n1<<8)&8191,N1+=n1>>>5|z,l0=0,A1=l0,A1+=r0*E1,A1+=s0*(5*d1),A1+=v0*(5*l1),A1+=Z0*(5*_1),A1+=V0*(5*r1),l0=A1>>>13,A1&=8191,A1+=j0*(5*i1),A1+=A0*(5*y1),A1+=I0*(5*h),A1+=D0*(5*$1),A1+=N1*(5*S1),l0+=A1>>>13,A1&=8191,I1=l0,I1+=r0*S1,I1+=s0*E1,I1+=v0*(5*d1),I1+=Z0*(5*l1),I1+=V0*(5*_1),l0=I1>>>13,I1&=8191,I1+=j0*(5*r1),I1+=A0*(5*i1),I1+=I0*(5*y1),I1+=D0*(5*h),I1+=N1*(5*$1),l0+=I1>>>13,I1&=8191,B1=l0,B1+=r0*$1,B1+=s0*S1,B1+=v0*E1,B1+=Z0*(5*d1),B1+=V0*(5*l1),l0=B1>>>13,B1&=8191,B1+=j0*(5*_1),B1+=A0*(5*r1),B1+=I0*(5*i1),B1+=D0*(5*y1),B1+=N1*(5*h),l0+=B1>>>13,B1&=8191,P1=l0,P1+=r0*h,P1+=s0*$1,P1+=v0*S1,P1+=Z0*E1,P1+=V0*(5*d1),l0=P1>>>13,P1&=8191,P1+=j0*(5*l1),P1+=A0*(5*_1),P1+=I0*(5*r1),P1+=D0*(5*i1),P1+=N1*(5*y1),l0+=P1>>>13,P1&=8191,w1=l0,w1+=r0*y1,w1+=s0*h,w1+=v0*$1,w1+=Z0*S1,w1+=V0*E1,l0=w1>>>13,w1&=8191,w1+=j0*(5*d1),w1+=A0*(5*l1),w1+=I0*(5*_1),w1+=D0*(5*r1),w1+=N1*(5*i1),l0+=w1>>>13,w1&=8191,O1=l0,O1+=r0*i1,O1+=s0*y1,O1+=v0*h,O1+=Z0*$1,O1+=V0*S1,l0=O1>>>13,O1&=8191,O1+=j0*E1,O1+=A0*(5*d1),O1+=I0*(5*l1),O1+=D0*(5*_1),O1+=N1*(5*r1),l0+=O1>>>13,O1&=8191,j1=l0,j1+=r0*r1,j1+=s0*i1,j1+=v0*y1,j1+=Z0*h,j1+=V0*$1,l0=j1>>>13,j1&=8191,j1+=j0*S1,j1+=A0*E1,j1+=I0*(5*d1),j1+=D0*(5*l1),j1+=N1*(5*_1),l0+=j1>>>13,j1&=8191,n0=l0,n0+=r0*_1,n0+=s0*r1,n0+=v0*i1,n0+=Z0*y1,n0+=V0*h,l0=n0>>>13,n0&=8191,n0+=j0*$1,n0+=A0*S1,n0+=I0*E1,n0+=D0*(5*d1),n0+=N1*(5*l1),l0+=n0>>>13,n0&=8191,X1=l0,X1+=r0*l1,X1+=s0*_1,X1+=v0*r1,X1+=Z0*i1,X1+=V0*y1,l0=X1>>>13,X1&=8191,X1+=j0*h,X1+=A0*$1,X1+=I0*S1,X1+=D0*E1,X1+=N1*(5*d1),l0+=X1>>>13,X1&=8191,f0=l0,f0+=r0*d1,f0+=s0*l1,f0+=v0*_1,f0+=Z0*r1,f0+=V0*i1,l0=f0>>>13,f0&=8191,f0+=j0*y1,f0+=A0*h,f0+=I0*$1,f0+=D0*S1,f0+=N1*E1,l0+=f0>>>13,f0&=8191,l0=(l0<<2)+l0|0,l0=l0+A1|0,A1=l0&8191,l0=l0>>>13,I1+=l0,r0=A1,s0=I1,v0=B1,Z0=P1,V0=w1,j0=O1,A0=j1,I0=n0,D0=X1,N1=f0,M+=16,C-=16;this.h[0]=r0,this.h[1]=s0,this.h[2]=v0,this.h[3]=Z0,this.h[4]=V0,this.h[5]=j0,this.h[6]=A0,this.h[7]=I0,this.h[8]=D0,this.h[9]=N1},e.prototype.finish=function(K,M){var C=new Uint16Array(10),z,B,n,s;if(this.leftover){s=this.leftover,this.buffer[s++]=1;for(;s<16;s++)this.buffer[s]=0;this.fin=1,this.blocks(this.buffer,0,16)}z=this.h[1]>>>13,this.h[1]&=8191;for(s=2;s<10;s++)this.h[s]+=z,z=this.h[s]>>>13,this.h[s]&=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,C[0]=this.h[0]+5,z=C[0]>>>13,C[0]&=8191;for(s=1;s<10;s++)C[s]=this.h[s]+z,z=C[s]>>>13,C[s]&=8191;C[9]-=8192,B=(z^1)-1;for(s=0;s<10;s++)C[s]&=B;B=~B;for(s=0;s<10;s++)this.h[s]=this.h[s]&B|C[s];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,n=this.h[0]+this.pad[0],this.h[0]=n&65535;for(s=1;s<8;s++)n=(this.h[s]+this.pad[s]|0)+(n>>>16)|0,this.h[s]=n&65535;K[M+0]=this.h[0]>>>0&255,K[M+1]=this.h[0]>>>8&255,K[M+2]=this.h[1]>>>0&255,K[M+3]=this.h[1]>>>8&255,K[M+4]=this.h[2]>>>0&255,K[M+5]=this.h[2]>>>8&255,K[M+6]=this.h[3]>>>0&255,K[M+7]=this.h[3]>>>8&255,K[M+8]=this.h[4]>>>0&255,K[M+9]=this.h[4]>>>8&255,K[M+10]=this.h[5]>>>0&255,K[M+11]=this.h[5]>>>8&255,K[M+12]=this.h[6]>>>0&255,K[M+13]=this.h[6]>>>8&255,K[M+14]=this.h[7]>>>0&255,K[M+15]=this.h[7]>>>8&255},e.prototype.update=function(K,M,C){var z,B;if(this.leftover){if(B=16-this.leftover,B>C)B=C;for(z=0;z<B;z++)this.buffer[this.leftover+z]=K[M+z];if(C-=B,M+=B,this.leftover+=B,this.leftover<16)return;this.blocks(this.buffer,0,16),this.leftover=0}if(C>=16)B=C-C%16,this.blocks(K,M,B),M+=B,C-=B;if(C){for(z=0;z<C;z++)this.buffer[this.leftover+z]=K[M+z];this.leftover+=C}};function H0(K,M,C,z,B,n){var s=new e(n);return s.update(C,z,B),s.finish(K,M),0}function g(K,M,C,z,B,n){var s=new Uint8Array(16);return H0(s,0,C,z,B,n),O(K,M,s,0)}function d(K,M,C,z,B){var n;if(C<32)return-1;y(K,0,M,0,C,z,B),H0(K,16,K,32,C-32,K);for(n=0;n<16;n++)K[n]=0;return 0}function R(K,M,C,z,B){var n,s=new Uint8Array(32);if(C<32)return-1;if(W0(s,0,32,z,B),g(M,16,M,32,C-32,s)!==0)return-1;y(K,0,M,0,C,z,B);for(n=0;n<32;n++)K[n]=0;return 0}function $(K,M){var C;for(C=0;C<16;C++)K[C]=M[C]|0}function f(K){var M,C,z=1;for(M=0;M<16;M++)C=K[M]+z+65535,z=Math.floor(C/65536),K[M]=C-z*65536;K[0]+=z-1+37*(z-1)}function r(K,M,C){var z,B=~(C-1);for(var n=0;n<16;n++)z=B&(K[n]^M[n]),K[n]^=z,M[n]^=z}function o(K,M){var C,z,B,n=X(),s=X();for(C=0;C<16;C++)s[C]=M[C];f(s),f(s),f(s);for(z=0;z<2;z++){n[0]=s[0]-65517;for(C=1;C<15;C++)n[C]=s[C]-65535-(n[C-1]>>16&1),n[C-1]&=65535;n[15]=s[15]-32767-(n[14]>>16&1),B=n[15]>>16&1,n[14]&=65535,r(s,n,1-B)}for(C=0;C<16;C++)K[2*C]=s[C]&255,K[2*C+1]=s[C]>>8}function E(K,M){var C=new Uint8Array(32),z=new Uint8Array(32);return o(C,K),o(z,M),T(C,0,z,0)}function S(K){var M=new Uint8Array(32);return o(M,K),M[0]&1}function _(K,M){var C;for(C=0;C<16;C++)K[C]=M[2*C]+(M[2*C+1]<<8);K[15]&=32767}function v(K,M,C){for(var z=0;z<16;z++)K[z]=M[z]+C[z]}function L(K,M,C){for(var z=0;z<16;z++)K[z]=M[z]-C[z]}function b(K,M,C){var z,B,n=0,s=0,z0=0,M0=0,t0=0,b0=0,n1=0,l0=0,A1=0,I1=0,B1=0,P1=0,w1=0,O1=0,j1=0,n0=0,X1=0,f0=0,r0=0,s0=0,v0=0,Z0=0,V0=0,j0=0,A0=0,I0=0,D0=0,N1=0,E1=0,S1=0,$1=0,h=C[0],y1=C[1],i1=C[2],r1=C[3],_1=C[4],l1=C[5],d1=C[6],k8=C[7],Y8=C[8],P8=C[9],R8=C[10],L8=C[11],m8=C[12],H9=C[13],A9=C[14],z9=C[15];z=M[0],n+=z*h,s+=z*y1,z0+=z*i1,M0+=z*r1,t0+=z*_1,b0+=z*l1,n1+=z*d1,l0+=z*k8,A1+=z*Y8,I1+=z*P8,B1+=z*R8,P1+=z*L8,w1+=z*m8,O1+=z*H9,j1+=z*A9,n0+=z*z9,z=M[1],s+=z*h,z0+=z*y1,M0+=z*i1,t0+=z*r1,b0+=z*_1,n1+=z*l1,l0+=z*d1,A1+=z*k8,I1+=z*Y8,B1+=z*P8,P1+=z*R8,w1+=z*L8,O1+=z*m8,j1+=z*H9,n0+=z*A9,X1+=z*z9,z=M[2],z0+=z*h,M0+=z*y1,t0+=z*i1,b0+=z*r1,n1+=z*_1,l0+=z*l1,A1+=z*d1,I1+=z*k8,B1+=z*Y8,P1+=z*P8,w1+=z*R8,O1+=z*L8,j1+=z*m8,n0+=z*H9,X1+=z*A9,f0+=z*z9,z=M[3],M0+=z*h,t0+=z*y1,b0+=z*i1,n1+=z*r1,l0+=z*_1,A1+=z*l1,I1+=z*d1,B1+=z*k8,P1+=z*Y8,w1+=z*P8,O1+=z*R8,j1+=z*L8,n0+=z*m8,X1+=z*H9,f0+=z*A9,r0+=z*z9,z=M[4],t0+=z*h,b0+=z*y1,n1+=z*i1,l0+=z*r1,A1+=z*_1,I1+=z*l1,B1+=z*d1,P1+=z*k8,w1+=z*Y8,O1+=z*P8,j1+=z*R8,n0+=z*L8,X1+=z*m8,f0+=z*H9,r0+=z*A9,s0+=z*z9,z=M[5],b0+=z*h,n1+=z*y1,l0+=z*i1,A1+=z*r1,I1+=z*_1,B1+=z*l1,P1+=z*d1,w1+=z*k8,O1+=z*Y8,j1+=z*P8,n0+=z*R8,X1+=z*L8,f0+=z*m8,r0+=z*H9,s0+=z*A9,v0+=z*z9,z=M[6],n1+=z*h,l0+=z*y1,A1+=z*i1,I1+=z*r1,B1+=z*_1,P1+=z*l1,w1+=z*d1,O1+=z*k8,j1+=z*Y8,n0+=z*P8,X1+=z*R8,f0+=z*L8,r0+=z*m8,s0+=z*H9,v0+=z*A9,Z0+=z*z9,z=M[7],l0+=z*h,A1+=z*y1,I1+=z*i1,B1+=z*r1,P1+=z*_1,w1+=z*l1,O1+=z*d1,j1+=z*k8,n0+=z*Y8,X1+=z*P8,f0+=z*R8,r0+=z*L8,s0+=z*m8,v0+=z*H9,Z0+=z*A9,V0+=z*z9,z=M[8],A1+=z*h,I1+=z*y1,B1+=z*i1,P1+=z*r1,w1+=z*_1,O1+=z*l1,j1+=z*d1,n0+=z*k8,X1+=z*Y8,f0+=z*P8,r0+=z*R8,s0+=z*L8,v0+=z*m8,Z0+=z*H9,V0+=z*A9,j0+=z*z9,z=M[9],I1+=z*h,B1+=z*y1,P1+=z*i1,w1+=z*r1,O1+=z*_1,j1+=z*l1,n0+=z*d1,X1+=z*k8,f0+=z*Y8,r0+=z*P8,s0+=z*R8,v0+=z*L8,Z0+=z*m8,V0+=z*H9,j0+=z*A9,A0+=z*z9,z=M[10],B1+=z*h,P1+=z*y1,w1+=z*i1,O1+=z*r1,j1+=z*_1,n0+=z*l1,X1+=z*d1,f0+=z*k8,r0+=z*Y8,s0+=z*P8,v0+=z*R8,Z0+=z*L8,V0+=z*m8,j0+=z*H9,A0+=z*A9,I0+=z*z9,z=M[11],P1+=z*h,w1+=z*y1,O1+=z*i1,j1+=z*r1,n0+=z*_1,X1+=z*l1,f0+=z*d1,r0+=z*k8,s0+=z*Y8,v0+=z*P8,Z0+=z*R8,V0+=z*L8,j0+=z*m8,A0+=z*H9,I0+=z*A9,D0+=z*z9,z=M[12],w1+=z*h,O1+=z*y1,j1+=z*i1,n0+=z*r1,X1+=z*_1,f0+=z*l1,r0+=z*d1,s0+=z*k8,v0+=z*Y8,Z0+=z*P8,V0+=z*R8,j0+=z*L8,A0+=z*m8,I0+=z*H9,D0+=z*A9,N1+=z*z9,z=M[13],O1+=z*h,j1+=z*y1,n0+=z*i1,X1+=z*r1,f0+=z*_1,r0+=z*l1,s0+=z*d1,v0+=z*k8,Z0+=z*Y8,V0+=z*P8,j0+=z*R8,A0+=z*L8,I0+=z*m8,D0+=z*H9,N1+=z*A9,E1+=z*z9,z=M[14],j1+=z*h,n0+=z*y1,X1+=z*i1,f0+=z*r1,r0+=z*_1,s0+=z*l1,v0+=z*d1,Z0+=z*k8,V0+=z*Y8,j0+=z*P8,A0+=z*R8,I0+=z*L8,D0+=z*m8,N1+=z*H9,E1+=z*A9,S1+=z*z9,z=M[15],n0+=z*h,X1+=z*y1,f0+=z*i1,r0+=z*r1,s0+=z*_1,v0+=z*l1,Z0+=z*d1,V0+=z*k8,j0+=z*Y8,A0+=z*P8,I0+=z*R8,D0+=z*L8,N1+=z*m8,E1+=z*H9,S1+=z*A9,$1+=z*z9,n+=38*X1,s+=38*f0,z0+=38*r0,M0+=38*s0,t0+=38*v0,b0+=38*Z0,n1+=38*V0,l0+=38*j0,A1+=38*A0,I1+=38*I0,B1+=38*D0,P1+=38*N1,w1+=38*E1,O1+=38*S1,j1+=38*$1,B=1,z=n+B+65535,B=Math.floor(z/65536),n=z-B*65536,z=s+B+65535,B=Math.floor(z/65536),s=z-B*65536,z=z0+B+65535,B=Math.floor(z/65536),z0=z-B*65536,z=M0+B+65535,B=Math.floor(z/65536),M0=z-B*65536,z=t0+B+65535,B=Math.floor(z/65536),t0=z-B*65536,z=b0+B+65535,B=Math.floor(z/65536),b0=z-B*65536,z=n1+B+65535,B=Math.floor(z/65536),n1=z-B*65536,z=l0+B+65535,B=Math.floor(z/65536),l0=z-B*65536,z=A1+B+65535,B=Math.floor(z/65536),A1=z-B*65536,z=I1+B+65535,B=Math.floor(z/65536),I1=z-B*65536,z=B1+B+65535,B=Math.floor(z/65536),B1=z-B*65536,z=P1+B+65535,B=Math.floor(z/65536),P1=z-B*65536,z=w1+B+65535,B=Math.floor(z/65536),w1=z-B*65536,z=O1+B+65535,B=Math.floor(z/65536),O1=z-B*65536,z=j1+B+65535,B=Math.floor(z/65536),j1=z-B*65536,z=n0+B+65535,B=Math.floor(z/65536),n0=z-B*65536,n+=B-1+37*(B-1),B=1,z=n+B+65535,B=Math.floor(z/65536),n=z-B*65536,z=s+B+65535,B=Math.floor(z/65536),s=z-B*65536,z=z0+B+65535,B=Math.floor(z/65536),z0=z-B*65536,z=M0+B+65535,B=Math.floor(z/65536),M0=z-B*65536,z=t0+B+65535,B=Math.floor(z/65536),t0=z-B*65536,z=b0+B+65535,B=Math.floor(z/65536),b0=z-B*65536,z=n1+B+65535,B=Math.floor(z/65536),n1=z-B*65536,z=l0+B+65535,B=Math.floor(z/65536),l0=z-B*65536,z=A1+B+65535,B=Math.floor(z/65536),A1=z-B*65536,z=I1+B+65535,B=Math.floor(z/65536),I1=z-B*65536,z=B1+B+65535,B=Math.floor(z/65536),B1=z-B*65536,z=P1+B+65535,B=Math.floor(z/65536),P1=z-B*65536,z=w1+B+65535,B=Math.floor(z/65536),w1=z-B*65536,z=O1+B+65535,B=Math.floor(z/65536),O1=z-B*65536,z=j1+B+65535,B=Math.floor(z/65536),j1=z-B*65536,z=n0+B+65535,B=Math.floor(z/65536),n0=z-B*65536,n+=B-1+37*(B-1),K[0]=n,K[1]=s,K[2]=z0,K[3]=M0,K[4]=t0,K[5]=b0,K[6]=n1,K[7]=l0,K[8]=A1,K[9]=I1,K[10]=B1,K[11]=P1,K[12]=w1,K[13]=O1,K[14]=j1,K[15]=n0}function J0(K,M){b(K,M,M)}function U0(K,M){var C=X(),z;for(z=0;z<16;z++)C[z]=M[z];for(z=253;z>=0;z--)if(J0(C,C),z!==2&&z!==4)b(C,C,M);for(z=0;z<16;z++)K[z]=C[z]}function N0(K,M){var C=X(),z;for(z=0;z<16;z++)C[z]=M[z];for(z=250;z>=0;z--)if(J0(C,C),z!==1)b(C,C,M);for(z=0;z<16;z++)K[z]=C[z]}function $0(K,M,C){var z=new Uint8Array(32),B=new Float64Array(80),n,s,z0=X(),M0=X(),t0=X(),b0=X(),n1=X(),l0=X();for(s=0;s<31;s++)z[s]=M[s];z[31]=M[31]&127|64,z[0]&=248,_(B,C);for(s=0;s<16;s++)M0[s]=B[s],b0[s]=z0[s]=t0[s]=0;z0[0]=b0[0]=1;for(s=254;s>=0;--s)n=z[s>>>3]>>>(s&7)&1,r(z0,M0,n),r(t0,b0,n),v(n1,z0,t0),L(z0,z0,t0),v(t0,M0,b0),L(M0,M0,b0),J0(b0,n1),J0(l0,z0),b(z0,t0,z0),b(t0,M0,n1),v(n1,z0,t0),L(z0,z0,t0),J0(M0,z0),L(t0,b0,l0),b(z0,t0,U),v(z0,z0,b0),b(t0,t0,z0),b(z0,b0,l0),b(b0,M0,B),J0(M0,n1),r(z0,M0,n),r(t0,b0,n);for(s=0;s<16;s++)B[s+16]=z0[s],B[s+32]=t0[s],B[s+48]=M0[s],B[s+64]=b0[s];var A1=B.subarray(32),I1=B.subarray(16);return U0(A1,A1),b(I1,I1,A1),o(K,I1),0}function u0(K,M){return $0(K,M,J)}function q1(K,M){return G(M,32),u0(K,M)}function g1(K,M,C){var z=new Uint8Array(32);return $0(z,C,M),F(K,Y,z,m)}var h0=d,x1=R;function k1(K,M,C,z,B,n){var s=new Uint8Array(32);return g1(s,B,n),h0(K,M,C,z,s)}function Q0(K,M,C,z,B,n){var s=new Uint8Array(32);return g1(s,B,n),x1(K,M,C,z,s)}var S0=[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 m0(K,M,C,z){var B=new Int32Array(16),n=new Int32Array(16),s,z0,M0,t0,b0,n1,l0,A1,I1,B1,P1,w1,O1,j1,n0,X1,f0,r0,s0,v0,Z0,V0,j0,A0,I0,D0,N1=K[0],E1=K[1],S1=K[2],$1=K[3],h=K[4],y1=K[5],i1=K[6],r1=K[7],_1=M[0],l1=M[1],d1=M[2],k8=M[3],Y8=M[4],P8=M[5],R8=M[6],L8=M[7],m8=0;while(z>=128){for(s0=0;s0<16;s0++)v0=8*s0+m8,B[s0]=C[v0+0]<<24|C[v0+1]<<16|C[v0+2]<<8|C[v0+3],n[s0]=C[v0+4]<<24|C[v0+5]<<16|C[v0+6]<<8|C[v0+7];for(s0=0;s0<80;s0++)if(s=N1,z0=E1,M0=S1,t0=$1,b0=h,n1=y1,l0=i1,A1=r1,I1=_1,B1=l1,P1=d1,w1=k8,O1=Y8,j1=P8,n0=R8,X1=L8,Z0=r1,V0=L8,j0=V0&65535,A0=V0>>>16,I0=Z0&65535,D0=Z0>>>16,Z0=(h>>>14|Y8<<18)^(h>>>18|Y8<<14)^(Y8>>>9|h<<23),V0=(Y8>>>14|h<<18)^(Y8>>>18|h<<14)^(h>>>9|Y8<<23),j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,Z0=h&y1^~h&i1,V0=Y8&P8^~Y8&R8,j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,Z0=S0[s0*2],V0=S0[s0*2+1],j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,Z0=B[s0%16],V0=n[s0%16],j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,A0+=j0>>>16,I0+=A0>>>16,D0+=I0>>>16,f0=I0&65535|D0<<16,r0=j0&65535|A0<<16,Z0=f0,V0=r0,j0=V0&65535,A0=V0>>>16,I0=Z0&65535,D0=Z0>>>16,Z0=(N1>>>28|_1<<4)^(_1>>>2|N1<<30)^(_1>>>7|N1<<25),V0=(_1>>>28|N1<<4)^(N1>>>2|_1<<30)^(N1>>>7|_1<<25),j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,Z0=N1&E1^N1&S1^E1&S1,V0=_1&l1^_1&d1^l1&d1,j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,A0+=j0>>>16,I0+=A0>>>16,D0+=I0>>>16,A1=I0&65535|D0<<16,X1=j0&65535|A0<<16,Z0=t0,V0=w1,j0=V0&65535,A0=V0>>>16,I0=Z0&65535,D0=Z0>>>16,Z0=f0,V0=r0,j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,A0+=j0>>>16,I0+=A0>>>16,D0+=I0>>>16,t0=I0&65535|D0<<16,w1=j0&65535|A0<<16,E1=s,S1=z0,$1=M0,h=t0,y1=b0,i1=n1,r1=l0,N1=A1,l1=I1,d1=B1,k8=P1,Y8=w1,P8=O1,R8=j1,L8=n0,_1=X1,s0%16===15)for(v0=0;v0<16;v0++)Z0=B[v0],V0=n[v0],j0=V0&65535,A0=V0>>>16,I0=Z0&65535,D0=Z0>>>16,Z0=B[(v0+9)%16],V0=n[(v0+9)%16],j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,f0=B[(v0+1)%16],r0=n[(v0+1)%16],Z0=(f0>>>1|r0<<31)^(f0>>>8|r0<<24)^f0>>>7,V0=(r0>>>1|f0<<31)^(r0>>>8|f0<<24)^(r0>>>7|f0<<25),j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,f0=B[(v0+14)%16],r0=n[(v0+14)%16],Z0=(f0>>>19|r0<<13)^(r0>>>29|f0<<3)^f0>>>6,V0=(r0>>>19|f0<<13)^(f0>>>29|r0<<3)^(r0>>>6|f0<<26),j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,A0+=j0>>>16,I0+=A0>>>16,D0+=I0>>>16,B[v0]=I0&65535|D0<<16,n[v0]=j0&65535|A0<<16;Z0=N1,V0=_1,j0=V0&65535,A0=V0>>>16,I0=Z0&65535,D0=Z0>>>16,Z0=K[0],V0=M[0],j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,A0+=j0>>>16,I0+=A0>>>16,D0+=I0>>>16,K[0]=N1=I0&65535|D0<<16,M[0]=_1=j0&65535|A0<<16,Z0=E1,V0=l1,j0=V0&65535,A0=V0>>>16,I0=Z0&65535,D0=Z0>>>16,Z0=K[1],V0=M[1],j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,A0+=j0>>>16,I0+=A0>>>16,D0+=I0>>>16,K[1]=E1=I0&65535|D0<<16,M[1]=l1=j0&65535|A0<<16,Z0=S1,V0=d1,j0=V0&65535,A0=V0>>>16,I0=Z0&65535,D0=Z0>>>16,Z0=K[2],V0=M[2],j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,A0+=j0>>>16,I0+=A0>>>16,D0+=I0>>>16,K[2]=S1=I0&65535|D0<<16,M[2]=d1=j0&65535|A0<<16,Z0=$1,V0=k8,j0=V0&65535,A0=V0>>>16,I0=Z0&65535,D0=Z0>>>16,Z0=K[3],V0=M[3],j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,A0+=j0>>>16,I0+=A0>>>16,D0+=I0>>>16,K[3]=$1=I0&65535|D0<<16,M[3]=k8=j0&65535|A0<<16,Z0=h,V0=Y8,j0=V0&65535,A0=V0>>>16,I0=Z0&65535,D0=Z0>>>16,Z0=K[4],V0=M[4],j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,A0+=j0>>>16,I0+=A0>>>16,D0+=I0>>>16,K[4]=h=I0&65535|D0<<16,M[4]=Y8=j0&65535|A0<<16,Z0=y1,V0=P8,j0=V0&65535,A0=V0>>>16,I0=Z0&65535,D0=Z0>>>16,Z0=K[5],V0=M[5],j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,A0+=j0>>>16,I0+=A0>>>16,D0+=I0>>>16,K[5]=y1=I0&65535|D0<<16,M[5]=P8=j0&65535|A0<<16,Z0=i1,V0=R8,j0=V0&65535,A0=V0>>>16,I0=Z0&65535,D0=Z0>>>16,Z0=K[6],V0=M[6],j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,A0+=j0>>>16,I0+=A0>>>16,D0+=I0>>>16,K[6]=i1=I0&65535|D0<<16,M[6]=R8=j0&65535|A0<<16,Z0=r1,V0=L8,j0=V0&65535,A0=V0>>>16,I0=Z0&65535,D0=Z0>>>16,Z0=K[7],V0=M[7],j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,A0+=j0>>>16,I0+=A0>>>16,D0+=I0>>>16,K[7]=r1=I0&65535|D0<<16,M[7]=L8=j0&65535|A0<<16,m8+=128,z-=128}return z}function G0(K,M,C){var z=new Int32Array(8),B=new Int32Array(8),n=new Uint8Array(256),s,z0=C;z[0]=1779033703,z[1]=3144134277,z[2]=1013904242,z[3]=2773480762,z[4]=1359893119,z[5]=2600822924,z[6]=528734635,z[7]=1541459225,B[0]=4089235720,B[1]=2227873595,B[2]=4271175723,B[3]=1595750129,B[4]=2917565137,B[5]=725511199,B[6]=4215389547,B[7]=327033209,m0(z,B,M,C),C%=128;for(s=0;s<C;s++)n[s]=M[z0-C+s];n[C]=128,C=256-128*(C<112?1:0),n[C-9]=0,I(n,C-8,z0/536870912|0,z0<<3),m0(z,B,n,C);for(s=0;s<8;s++)I(K,8*s,z[s],B[s]);return 0}function K0(K,M){var C=X(),z=X(),B=X(),n=X(),s=X(),z0=X(),M0=X(),t0=X(),b0=X();L(C,K[1],K[0]),L(b0,M[1],M[0]),b(C,C,b0),v(z,K[0],K[1]),v(b0,M[0],M[1]),b(z,z,b0),b(B,K[3],M[3]),b(B,B,N),b(n,K[2],M[2]),v(n,n,n),L(s,z,C),L(z0,n,B),v(M0,n,B),v(t0,z,C),b(K[0],s,z0),b(K[1],t0,M0),b(K[2],M0,z0),b(K[3],s,t0)}function P0(K,M,C){var z;for(z=0;z<4;z++)r(K[z],M[z],C)}function k0(K,M){var C=X(),z=X(),B=X();U0(B,M[2]),b(C,M[0],B),b(z,M[1],B),o(K,z),K[31]^=S(C)<<7}function C1(K,M,C){var z,B;$(K[0],Z),$(K[1],V),$(K[2],V),$(K[3],Z);for(B=255;B>=0;--B)z=C[B/8|0]>>(B&7)&1,P0(K,M,z),K0(M,K),K0(K,K),P0(K,M,z)}function Q1(K,M){var C=[X(),X(),X(),X()];$(C[0],q),$(C[1],A),$(C[2],V),b(C[3],q,A),C1(K,C,M)}function Y0(K,M,C){var z=new Uint8Array(64),B=[X(),X(),X(),X()],n;if(!C)G(M,32);G0(z,M,32),z[0]&=248,z[31]&=127,z[31]|=64,Q1(B,z),k0(K,B);for(n=0;n<32;n++)M[n+32]=K[n];return 0}var B0=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 F0(K,M){var C,z,B,n;for(z=63;z>=32;--z){C=0;for(B=z-32,n=z-12;B<n;++B)M[B]+=C-16*M[z]*B0[B-(z-32)],C=Math.floor((M[B]+128)/256),M[B]-=C*256;M[B]+=C,M[z]=0}C=0;for(B=0;B<32;B++)M[B]+=C-(M[31]>>4)*B0[B],C=M[B]>>8,M[B]&=255;for(B=0;B<32;B++)M[B]-=C*B0[B];for(z=0;z<32;z++)M[z+1]+=M[z]>>8,K[z]=M[z]&255}function F1(K){var M=new Float64Array(64),C;for(C=0;C<64;C++)M[C]=K[C];for(C=0;C<64;C++)K[C]=0;F0(K,M)}function W8(K,M,C,z){var B=new Uint8Array(64),n=new Uint8Array(64),s=new Uint8Array(64),z0,M0,t0=new Float64Array(64),b0=[X(),X(),X(),X()];G0(B,z,32),B[0]&=248,B[31]&=127,B[31]|=64;var n1=C+64;for(z0=0;z0<C;z0++)K[64+z0]=M[z0];for(z0=0;z0<32;z0++)K[32+z0]=B[32+z0];G0(s,K.subarray(32),C+32),F1(s),Q1(b0,s),k0(K,b0);for(z0=32;z0<64;z0++)K[z0]=z[z0];G0(n,K,C+64),F1(n);for(z0=0;z0<64;z0++)t0[z0]=0;for(z0=0;z0<32;z0++)t0[z0]=s[z0];for(z0=0;z0<32;z0++)for(M0=0;M0<32;M0++)t0[z0+M0]+=n[z0]*B[M0];return F0(K.subarray(32),t0),n1}function T1(K,M){var C=X(),z=X(),B=X(),n=X(),s=X(),z0=X(),M0=X();if($(K[2],V),_(K[1],M),J0(B,K[1]),b(n,B,Q),L(B,B,K[2]),v(n,K[2],n),J0(s,n),J0(z0,s),b(M0,z0,s),b(C,M0,B),b(C,C,n),N0(C,C),b(C,C,B),b(C,C,n),b(C,C,n),b(K[0],C,n),J0(z,K[0]),b(z,z,n),E(z,B))b(K[0],K[0],H);if(J0(z,K[0]),b(z,z,n),E(z,B))return-1;if(S(K[0])===M[31]>>7)L(K[0],Z,K[0]);return b(K[3],K[0],K[1]),0}function H1(K,M,C,z){var B,n=new Uint8Array(32),s=new Uint8Array(64),z0=[X(),X(),X(),X()],M0=[X(),X(),X(),X()];if(C<64)return-1;if(T1(M0,z))return-1;for(B=0;B<C;B++)K[B]=M[B];for(B=0;B<32;B++)K[B+32]=z[B];if(G0(s,K,C),F1(s),C1(z0,M0,s),Q1(M0,M.subarray(32)),K0(z0,M0),k0(n,z0),C-=64,T(M,0,n,0)){for(B=0;B<C;B++)K[B]=0;return-1}for(B=0;B<C;B++)K[B]=M[B+64];return C}var c=32,t=24,q0=32,T0=16,e0=32,q8=32,I8=32,M1=32,_0=32,p0=t,o0=q0,a0=T0,z1=64,o1=32,Z8=64,S9=32,pX=64;W.lowlevel={crypto_core_hsalsa20:F,crypto_stream_xor:y,crypto_stream:W0,crypto_stream_salsa20_xor:l,crypto_stream_salsa20:p,crypto_onetimeauth:H0,crypto_onetimeauth_verify:g,crypto_verify_16:O,crypto_verify_32:T,crypto_secretbox:d,crypto_secretbox_open:R,crypto_scalarmult:$0,crypto_scalarmult_base:u0,crypto_box_beforenm:g1,crypto_box_afternm:h0,crypto_box:k1,crypto_box_open:Q0,crypto_box_keypair:q1,crypto_hash:G0,crypto_sign:W8,crypto_sign_keypair:Y0,crypto_sign_open:H1,crypto_secretbox_KEYBYTES:c,crypto_secretbox_NONCEBYTES:t,crypto_secretbox_ZEROBYTES:q0,crypto_secretbox_BOXZEROBYTES:T0,crypto_scalarmult_BYTES:e0,crypto_scalarmult_SCALARBYTES:q8,crypto_box_PUBLICKEYBYTES:I8,crypto_box_SECRETKEYBYTES:M1,crypto_box_BEFORENMBYTES:_0,crypto_box_NONCEBYTES:p0,crypto_box_ZEROBYTES:o0,crypto_box_BOXZEROBYTES:a0,crypto_sign_BYTES:z1,crypto_sign_PUBLICKEYBYTES:o1,crypto_sign_SECRETKEYBYTES:Z8,crypto_sign_SEEDBYTES:S9,crypto_hash_BYTES:pX,gf:X,D:Q,L:B0,pack25519:o,unpack25519:_,M:b,A:v,S:J0,Z:L,pow2523:N0,add:K0,set25519:$,modL:F0,scalarmult:C1,scalarbase:Q1};function yU(K,M){if(K.length!==c)throw Error("bad key size");if(M.length!==t)throw Error("bad nonce size")}function HA(K,M){if(K.length!==I8)throw Error("bad public key size");if(M.length!==M1)throw Error("bad secret key size")}function W5(){for(var K=0;K<arguments.length;K++)if(!(arguments[K]instanceof Uint8Array))throw TypeError("unexpected type, use Uint8Array")}function AD(K){for(var M=0;M<K.length;M++)K[M]=0}W.randomBytes=function(K){var M=new Uint8Array(K);return G(M,K),M},W.secretbox=function(K,M,C){W5(K,M,C),yU(C,M);var z=new Uint8Array(q0+K.length),B=new Uint8Array(z.length);for(var n=0;n<K.length;n++)z[n+q0]=K[n];return d(B,z,z.length,M,C),B.subarray(T0)},W.secretbox.open=function(K,M,C){W5(K,M,C),yU(C,M);var z=new Uint8Array(T0+K.length),B=new Uint8Array(z.length);for(var n=0;n<K.length;n++)z[n+T0]=K[n];if(z.length<32)return null;if(R(B,z,z.length,M,C)!==0)return null;return B.subarray(q0)},W.secretbox.keyLength=c,W.secretbox.nonceLength=t,W.secretbox.overheadLength=T0,W.scalarMult=function(K,M){if(W5(K,M),K.length!==q8)throw Error("bad n size");if(M.length!==e0)throw Error("bad p size");var C=new Uint8Array(e0);return $0(C,K,M),C},W.scalarMult.base=function(K){if(W5(K),K.length!==q8)throw Error("bad n size");var M=new Uint8Array(e0);return u0(M,K),M},W.scalarMult.scalarLength=q8,W.scalarMult.groupElementLength=e0,W.box=function(K,M,C,z){var B=W.box.before(C,z);return W.secretbox(K,M,B)},W.box.before=function(K,M){W5(K,M),HA(K,M);var C=new Uint8Array(_0);return g1(C,K,M),C},W.box.after=W.secretbox,W.box.open=function(K,M,C,z){var B=W.box.before(C,z);return W.secretbox.open(K,M,B)},W.box.open.after=W.secretbox.open,W.box.keyPair=function(){var K=new Uint8Array(I8),M=new Uint8Array(M1);return q1(K,M),{publicKey:K,secretKey:M}},W.box.keyPair.fromSecretKey=function(K){if(W5(K),K.length!==M1)throw Error("bad secret key size");var M=new Uint8Array(I8);return u0(M,K),{publicKey:M,secretKey:new Uint8Array(K)}},W.box.publicKeyLength=I8,W.box.secretKeyLength=M1,W.box.sharedKeyLength=_0,W.box.nonceLength=p0,W.box.overheadLength=W.secretbox.overheadLength,W.sign=function(K,M){if(W5(K,M),M.length!==Z8)throw Error("bad secret key size");var C=new Uint8Array(z1+K.length);return W8(C,K,K.length,M),C},W.sign.open=function(K,M){if(W5(K,M),M.length!==o1)throw Error("bad public key size");var C=new Uint8Array(K.length),z=H1(C,K,K.length,M);if(z<0)return null;var B=new Uint8Array(z);for(var n=0;n<B.length;n++)B[n]=C[n];return B},W.sign.detached=function(K,M){var C=W.sign(K,M),z=new Uint8Array(z1);for(var B=0;B<z.length;B++)z[B]=C[B];return z},W.sign.detached.verify=function(K,M,C){if(W5(K,M,C),M.length!==z1)throw Error("bad signature size");if(C.length!==o1)throw Error("bad public key size");var z=new Uint8Array(z1+K.length),B=new Uint8Array(z1+K.length),n;for(n=0;n<z1;n++)z[n]=M[n];for(n=0;n<K.length;n++)z[n+z1]=K[n];return H1(B,z,z.length,C)>=0},W.sign.keyPair=function(){var K=new Uint8Array(o1),M=new Uint8Array(Z8);return Y0(K,M),{publicKey:K,secretKey:M}},W.sign.keyPair.fromSecretKey=function(K){if(W5(K),K.length!==Z8)throw Error("bad secret key size");var M=new Uint8Array(o1);for(var C=0;C<M.length;C++)M[C]=K[32+C];return{publicKey:M,secretKey:new Uint8Array(K)}},W.sign.keyPair.fromSeed=function(K){if(W5(K),K.length!==S9)throw Error("bad seed size");var M=new Uint8Array(o1),C=new Uint8Array(Z8);for(var z=0;z<32;z++)C[z]=K[z];return Y0(M,C,!0),{publicKey:M,secretKey:C}},W.sign.publicKeyLength=o1,W.sign.secretKeyLength=Z8,W.sign.seedLength=S9,W.sign.signatureLength=z1,W.hash=function(K){W5(K);var M=new Uint8Array(pX);return G0(M,K,K.length),M},W.hash.hashLength=pX,W.verify=function(K,M){if(W5(K,M),K.length===0||M.length===0)return!1;if(K.length!==M.length)return!1;return w(K,0,M,0,K.length)===0?!0:!1},W.setPRNG=function(K){G=K},function(){var K=typeof self<"u"?self.crypto||self.msCrypto:null;if(K&&K.getRandomValues){var M=65536;W.setPRNG(function(C,z){var B,n=new Uint8Array(z);for(B=0;B<z;B+=M)K.getRandomValues(n.subarray(B,B+Math.min(z-B,M)));for(B=0;B<z;B++)C[B]=n[B];AD(n)})}else if(K=_8("crypto"),K&&K.randomBytes)W.setPRNG(function(C,z){var B,n=K.randomBytes(z);for(B=0;B<z;B++)C[B]=n[B];AD(n)})}()})(typeof _Q<"u"&&ee?ee:self.nacl=self.nacl||{})});var Ez=V1((wM)=>{Object.defineProperty(wM,"__esModule",{value:!0});class IM{constructor(W,X=0,G=0){this.start=X,this.end=G>X?G:X,this.buf=W}get length(){return this.buf.length}reset(W=0,X=0){if(this.start=W,X>=this.start)this.end=X;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,X="Too few bytes to parse."){let G=this.end+W;if(G>this.buf.length){let Y=Error(X);throw Y.available=this.buf.length,Y.requested=G,Y}return this.walk(0),this}mustWalk(W,X){return this.mustHas(W,X),this.walk(W),this}}wM.BufferVisitor=IM});var DM=V1((OM)=>{Object.defineProperty(OM,"__esModule",{value:!0});var jM=_8("util"),KM=64,Fz="-----BEGIN ",Sz="-----END ",mJ="-----",$z="Proc-Type";class xz{static parse(W){let X=[],G=W.toString("utf8").split(`
|
|
7
|
+
`).map((X)=>X.trim()).join(" ")};UM.O=function(W){return this.inspectOpts.colors=this.useColors,SQ.inspect(W,this.inspectOpts)}});var HM=V1((se,Bz)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)Bz.exports=VM();else Bz.exports=qM()});var kQ=V1((zM)=>{Object.defineProperty(zM,"__esModule",{value:!0});var Pb=_8("net");function Rb(W){switch(Pb.isIP(W)){case 4:return Buffer.from(W.split(".").map((J)=>parseInt(J,10)));case 6:let X=W.split(":"),G=Buffer.alloc(16),Y=0;if(X[X.length-1]==="")X[X.length-1]="0";for(let J=0;J<X.length;J++){if(X[J]===""){if(J+1<X.length&&X[J+1]!=="")Y=16-(X.length-J-1)*2;continue}G.writeUInt16BE(parseInt(X[J],16),Y),Y+=2}return G;default:return null}}zM.bytesFromIP=Rb;function Lb(W){switch(W.length){case 4:return[W[0],W[1],W[2],W[3]].join(".");case 16:let X=[],G=-1,Y=0,J=-1,Z=0;for(let V=0;V<W.length;V+=2){let U=W[V]<<8|W[V+1];if(U===0){if(Y++,G===-1)G=X.length;if(Y>Z)Z=Y,J=G}else G=-1,Y=0;X.push(U.toString(16))}if(Z>0){let V="",U=X.slice(J+Z);if(X.length=J,X.length===0)V+=":";if(U.length===0)V+=":";X.push(V,...U)}return X.join(":");default:return""}}zM.bytesToIP=Lb;var z6=Object.create(null),AM=/^[0-9.]+$/;function Bb(W){if(AM.test(W)&&z6[W]!=="")return W;return z6[W]==null?"":z6[W]}zM.getOID=Bb;function Eb(W){if(!AM.test(W)&&z6[W]!=="")return W;return z6[W]==null?W:z6[W]}zM.getOIDName=Eb;function w0(W,X){z6[W]=X,z6[X]=W}w0("1.2.840.113549.1.1.1","rsaEncryption");w0("1.2.840.113549.1.1.4","md5WithRsaEncryption");w0("1.2.840.113549.1.1.5","sha1WithRsaEncryption");w0("1.2.840.113549.1.1.8","mgf1");w0("1.2.840.113549.1.1.10","RSASSA-PSS");w0("1.2.840.113549.1.1.11","sha256WithRsaEncryption");w0("1.2.840.113549.1.1.12","sha384WithRsaEncryption");w0("1.2.840.113549.1.1.13","sha512WithRsaEncryption");w0("1.2.840.10045.2.1","ecEncryption");w0("1.2.840.10045.4.1","ecdsaWithSha1");w0("1.2.840.10045.4.3.2","ecdsaWithSha256");w0("1.2.840.10045.4.3.3","ecdsaWithSha384");w0("1.2.840.10045.4.3.4","ecdsaWithSha512");w0("1.2.840.10040.4.3","dsaWithSha1");w0("2.16.840.1.101.3.4.3.2","dsaWithSha256");w0("1.3.14.3.2.7","desCBC");w0("1.3.14.3.2.26","sha1");w0("2.16.840.1.101.3.4.2.1","sha256");w0("2.16.840.1.101.3.4.2.2","sha384");w0("2.16.840.1.101.3.4.2.3","sha512");w0("1.2.840.113549.2.5","md5");w0("1.3.101.110","X25519");w0("1.3.101.111","X448");w0("1.3.101.112","Ed25519");w0("1.3.101.113","Ed448");w0("1.2.840.113549.1.7.1","data");w0("1.2.840.113549.1.7.2","signedData");w0("1.2.840.113549.1.7.3","envelopedData");w0("1.2.840.113549.1.7.4","signedAndEnvelopedData");w0("1.2.840.113549.1.7.5","digestedData");w0("1.2.840.113549.1.7.6","encryptedData");w0("1.2.840.113549.1.9.1","emailAddress");w0("1.2.840.113549.1.9.2","unstructuredName");w0("1.2.840.113549.1.9.3","contentType");w0("1.2.840.113549.1.9.4","messageDigest");w0("1.2.840.113549.1.9.5","signingTime");w0("1.2.840.113549.1.9.6","counterSignature");w0("1.2.840.113549.1.9.7","challengePassword");w0("1.2.840.113549.1.9.8","unstructuredAddress");w0("1.2.840.113549.1.9.14","extensionRequest");w0("1.2.840.113549.1.9.20","friendlyName");w0("1.2.840.113549.1.9.21","localKeyId");w0("1.2.840.113549.1.9.22.1","x509Certificate");w0("1.2.840.113549.1.12.10.1.1","keyBag");w0("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");w0("1.2.840.113549.1.12.10.1.3","certBag");w0("1.2.840.113549.1.12.10.1.4","crlBag");w0("1.2.840.113549.1.12.10.1.5","secretBag");w0("1.2.840.113549.1.12.10.1.6","safeContentsBag");w0("1.2.840.113549.1.5.13","pkcs5PBES2");w0("1.2.840.113549.1.5.12","pkcs5PBKDF2");w0("1.2.840.113549.2.7","hmacWithSha1");w0("1.2.840.113549.2.9","hmacWithSha256");w0("1.2.840.113549.2.10","hmacWithSha384");w0("1.2.840.113549.2.11","hmacWithSha512");w0("1.2.840.113549.3.7","3desCBC");w0("2.16.840.1.101.3.4.1.2","aesCBC128");w0("2.16.840.1.101.3.4.1.42","aesCBC256");w0("2.5.4.3","commonName");w0("2.5.4.5","serialName");w0("2.5.4.6","countryName");w0("2.5.4.7","localityName");w0("2.5.4.8","stateOrProvinceName");w0("2.5.4.10","organizationName");w0("2.5.4.11","organizationalUnitName");w0("2.5.4.15","businessCategory");w0("2.16.840.1.113730.1.1","nsCertType");w0("2.5.29.2","keyAttributes");w0("2.5.29.4","keyUsageRestriction");w0("2.5.29.6","subtreesConstraint");w0("2.5.29.9","subjectDirectoryAttributes");w0("2.5.29.14","subjectKeyIdentifier");w0("2.5.29.15","keyUsage");w0("2.5.29.16","privateKeyUsagePeriod");w0("2.5.29.17","subjectAltName");w0("2.5.29.18","issuerAltName");w0("2.5.29.19","basicConstraints");w0("2.5.29.20","cRLNumber");w0("2.5.29.21","cRLReason");w0("2.5.29.22","expirationDate");w0("2.5.29.23","instructionCode");w0("2.5.29.24","invalidityDate");w0("2.5.29.27","deltaCRLIndicator");w0("2.5.29.28","issuingDistributionPoint");w0("2.5.29.29","certificateIssuer");w0("2.5.29.30","nameConstraints");w0("2.5.29.31","cRLDistributionPoints");w0("2.5.29.32","certificatePolicies");w0("2.5.29.33","policyMappings");w0("2.5.29.35","authorityKeyIdentifier");w0("2.5.29.36","policyConstraints");w0("2.5.29.37","extKeyUsage");w0("2.5.29.46","freshestCRL");w0("2.5.29.54","inhibitAnyPolicy");w0("1.3.6.1.4.1.311.60.2.1.2","jurisdictionST");w0("1.3.6.1.4.1.311.60.2.1.3","jurisdictionC");w0("1.3.6.1.4.1.11129.2.4.2","timestampList");w0("1.3.6.1.5.5.7.1.1","authorityInfoAccess");w0("1.3.6.1.5.5.7.3.1","serverAuth");w0("1.3.6.1.5.5.7.3.2","clientAuth");w0("1.3.6.1.5.5.7.3.3","codeSigning");w0("1.3.6.1.5.5.7.3.4","emailProtection");w0("1.3.6.1.5.5.7.3.8","timeStamping");w0("1.3.6.1.5.5.7.48.1","authorityInfoAccessOcsp");w0("1.3.6.1.5.5.7.48.2","authorityInfoAccessIssuers")});var yQ=V1((ee,_Q)=>{(function(W){var X=function(K){var M,C=new Float64Array(16);if(K)for(M=0;M<K.length;M++)C[M]=K[M];return C},G=function(){throw Error("no PRNG")},Y=new Uint8Array(16),J=new Uint8Array(32);J[0]=9;var Z=X(),V=X([1]),U=X([56129,1]),Q=X([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),N=X([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),q=X([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),A=X([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),H=X([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function I(K,M,C,z){K[M]=C>>24&255,K[M+1]=C>>16&255,K[M+2]=C>>8&255,K[M+3]=C&255,K[M+4]=z>>24&255,K[M+5]=z>>16&255,K[M+6]=z>>8&255,K[M+7]=z&255}function w(K,M,C,z,L){var n,s=0;for(n=0;n<L;n++)s|=K[M+n]^C[z+n];return(1&s-1>>>8)-1}function O(K,M,C,z){return w(K,M,C,z,16)}function T(K,M,C,z){return w(K,M,C,z,32)}function x(K,M,C,z){var L=z[0]&255|(z[1]&255)<<8|(z[2]&255)<<16|(z[3]&255)<<24,n=C[0]&255|(C[1]&255)<<8|(C[2]&255)<<16|(C[3]&255)<<24,s=C[4]&255|(C[5]&255)<<8|(C[6]&255)<<16|(C[7]&255)<<24,z0=C[8]&255|(C[9]&255)<<8|(C[10]&255)<<16|(C[11]&255)<<24,M0=C[12]&255|(C[13]&255)<<8|(C[14]&255)<<16|(C[15]&255)<<24,t0=z[4]&255|(z[5]&255)<<8|(z[6]&255)<<16|(z[7]&255)<<24,b0=M[0]&255|(M[1]&255)<<8|(M[2]&255)<<16|(M[3]&255)<<24,n1=M[4]&255|(M[5]&255)<<8|(M[6]&255)<<16|(M[7]&255)<<24,l0=M[8]&255|(M[9]&255)<<8|(M[10]&255)<<16|(M[11]&255)<<24,A1=M[12]&255|(M[13]&255)<<8|(M[14]&255)<<16|(M[15]&255)<<24,I1=z[8]&255|(z[9]&255)<<8|(z[10]&255)<<16|(z[11]&255)<<24,B1=C[16]&255|(C[17]&255)<<8|(C[18]&255)<<16|(C[19]&255)<<24,P1=C[20]&255|(C[21]&255)<<8|(C[22]&255)<<16|(C[23]&255)<<24,w1=C[24]&255|(C[25]&255)<<8|(C[26]&255)<<16|(C[27]&255)<<24,O1=C[28]&255|(C[29]&255)<<8|(C[30]&255)<<16|(C[31]&255)<<24,j1=z[12]&255|(z[13]&255)<<8|(z[14]&255)<<16|(z[15]&255)<<24,n0=L,X1=n,f0=s,r0=z0,s0=M0,v0=t0,Z0=b0,V0=n1,j0=l0,A0=A1,I0=I1,D0=B1,N1=P1,E1=w1,S1=O1,$1=j1,b;for(var y1=0;y1<20;y1+=2)b=n0+N1|0,s0^=b<<7|b>>>25,b=s0+n0|0,j0^=b<<9|b>>>23,b=j0+s0|0,N1^=b<<13|b>>>19,b=N1+j0|0,n0^=b<<18|b>>>14,b=v0+X1|0,A0^=b<<7|b>>>25,b=A0+v0|0,E1^=b<<9|b>>>23,b=E1+A0|0,X1^=b<<13|b>>>19,b=X1+E1|0,v0^=b<<18|b>>>14,b=I0+Z0|0,S1^=b<<7|b>>>25,b=S1+I0|0,f0^=b<<9|b>>>23,b=f0+S1|0,Z0^=b<<13|b>>>19,b=Z0+f0|0,I0^=b<<18|b>>>14,b=$1+D0|0,r0^=b<<7|b>>>25,b=r0+$1|0,V0^=b<<9|b>>>23,b=V0+r0|0,D0^=b<<13|b>>>19,b=D0+V0|0,$1^=b<<18|b>>>14,b=n0+r0|0,X1^=b<<7|b>>>25,b=X1+n0|0,f0^=b<<9|b>>>23,b=f0+X1|0,r0^=b<<13|b>>>19,b=r0+f0|0,n0^=b<<18|b>>>14,b=v0+s0|0,Z0^=b<<7|b>>>25,b=Z0+v0|0,V0^=b<<9|b>>>23,b=V0+Z0|0,s0^=b<<13|b>>>19,b=s0+V0|0,v0^=b<<18|b>>>14,b=I0+A0|0,D0^=b<<7|b>>>25,b=D0+I0|0,j0^=b<<9|b>>>23,b=j0+D0|0,A0^=b<<13|b>>>19,b=A0+j0|0,I0^=b<<18|b>>>14,b=$1+S1|0,N1^=b<<7|b>>>25,b=N1+$1|0,E1^=b<<9|b>>>23,b=E1+N1|0,S1^=b<<13|b>>>19,b=S1+E1|0,$1^=b<<18|b>>>14;n0=n0+L|0,X1=X1+n|0,f0=f0+s|0,r0=r0+z0|0,s0=s0+M0|0,v0=v0+t0|0,Z0=Z0+b0|0,V0=V0+n1|0,j0=j0+l0|0,A0=A0+A1|0,I0=I0+I1|0,D0=D0+B1|0,N1=N1+P1|0,E1=E1+w1|0,S1=S1+O1|0,$1=$1+j1|0,K[0]=n0>>>0&255,K[1]=n0>>>8&255,K[2]=n0>>>16&255,K[3]=n0>>>24&255,K[4]=X1>>>0&255,K[5]=X1>>>8&255,K[6]=X1>>>16&255,K[7]=X1>>>24&255,K[8]=f0>>>0&255,K[9]=f0>>>8&255,K[10]=f0>>>16&255,K[11]=f0>>>24&255,K[12]=r0>>>0&255,K[13]=r0>>>8&255,K[14]=r0>>>16&255,K[15]=r0>>>24&255,K[16]=s0>>>0&255,K[17]=s0>>>8&255,K[18]=s0>>>16&255,K[19]=s0>>>24&255,K[20]=v0>>>0&255,K[21]=v0>>>8&255,K[22]=v0>>>16&255,K[23]=v0>>>24&255,K[24]=Z0>>>0&255,K[25]=Z0>>>8&255,K[26]=Z0>>>16&255,K[27]=Z0>>>24&255,K[28]=V0>>>0&255,K[29]=V0>>>8&255,K[30]=V0>>>16&255,K[31]=V0>>>24&255,K[32]=j0>>>0&255,K[33]=j0>>>8&255,K[34]=j0>>>16&255,K[35]=j0>>>24&255,K[36]=A0>>>0&255,K[37]=A0>>>8&255,K[38]=A0>>>16&255,K[39]=A0>>>24&255,K[40]=I0>>>0&255,K[41]=I0>>>8&255,K[42]=I0>>>16&255,K[43]=I0>>>24&255,K[44]=D0>>>0&255,K[45]=D0>>>8&255,K[46]=D0>>>16&255,K[47]=D0>>>24&255,K[48]=N1>>>0&255,K[49]=N1>>>8&255,K[50]=N1>>>16&255,K[51]=N1>>>24&255,K[52]=E1>>>0&255,K[53]=E1>>>8&255,K[54]=E1>>>16&255,K[55]=E1>>>24&255,K[56]=S1>>>0&255,K[57]=S1>>>8&255,K[58]=S1>>>16&255,K[59]=S1>>>24&255,K[60]=$1>>>0&255,K[61]=$1>>>8&255,K[62]=$1>>>16&255,K[63]=$1>>>24&255}function u(K,M,C,z){var L=z[0]&255|(z[1]&255)<<8|(z[2]&255)<<16|(z[3]&255)<<24,n=C[0]&255|(C[1]&255)<<8|(C[2]&255)<<16|(C[3]&255)<<24,s=C[4]&255|(C[5]&255)<<8|(C[6]&255)<<16|(C[7]&255)<<24,z0=C[8]&255|(C[9]&255)<<8|(C[10]&255)<<16|(C[11]&255)<<24,M0=C[12]&255|(C[13]&255)<<8|(C[14]&255)<<16|(C[15]&255)<<24,t0=z[4]&255|(z[5]&255)<<8|(z[6]&255)<<16|(z[7]&255)<<24,b0=M[0]&255|(M[1]&255)<<8|(M[2]&255)<<16|(M[3]&255)<<24,n1=M[4]&255|(M[5]&255)<<8|(M[6]&255)<<16|(M[7]&255)<<24,l0=M[8]&255|(M[9]&255)<<8|(M[10]&255)<<16|(M[11]&255)<<24,A1=M[12]&255|(M[13]&255)<<8|(M[14]&255)<<16|(M[15]&255)<<24,I1=z[8]&255|(z[9]&255)<<8|(z[10]&255)<<16|(z[11]&255)<<24,B1=C[16]&255|(C[17]&255)<<8|(C[18]&255)<<16|(C[19]&255)<<24,P1=C[20]&255|(C[21]&255)<<8|(C[22]&255)<<16|(C[23]&255)<<24,w1=C[24]&255|(C[25]&255)<<8|(C[26]&255)<<16|(C[27]&255)<<24,O1=C[28]&255|(C[29]&255)<<8|(C[30]&255)<<16|(C[31]&255)<<24,j1=z[12]&255|(z[13]&255)<<8|(z[14]&255)<<16|(z[15]&255)<<24,n0=L,X1=n,f0=s,r0=z0,s0=M0,v0=t0,Z0=b0,V0=n1,j0=l0,A0=A1,I0=I1,D0=B1,N1=P1,E1=w1,S1=O1,$1=j1,b;for(var y1=0;y1<20;y1+=2)b=n0+N1|0,s0^=b<<7|b>>>25,b=s0+n0|0,j0^=b<<9|b>>>23,b=j0+s0|0,N1^=b<<13|b>>>19,b=N1+j0|0,n0^=b<<18|b>>>14,b=v0+X1|0,A0^=b<<7|b>>>25,b=A0+v0|0,E1^=b<<9|b>>>23,b=E1+A0|0,X1^=b<<13|b>>>19,b=X1+E1|0,v0^=b<<18|b>>>14,b=I0+Z0|0,S1^=b<<7|b>>>25,b=S1+I0|0,f0^=b<<9|b>>>23,b=f0+S1|0,Z0^=b<<13|b>>>19,b=Z0+f0|0,I0^=b<<18|b>>>14,b=$1+D0|0,r0^=b<<7|b>>>25,b=r0+$1|0,V0^=b<<9|b>>>23,b=V0+r0|0,D0^=b<<13|b>>>19,b=D0+V0|0,$1^=b<<18|b>>>14,b=n0+r0|0,X1^=b<<7|b>>>25,b=X1+n0|0,f0^=b<<9|b>>>23,b=f0+X1|0,r0^=b<<13|b>>>19,b=r0+f0|0,n0^=b<<18|b>>>14,b=v0+s0|0,Z0^=b<<7|b>>>25,b=Z0+v0|0,V0^=b<<9|b>>>23,b=V0+Z0|0,s0^=b<<13|b>>>19,b=s0+V0|0,v0^=b<<18|b>>>14,b=I0+A0|0,D0^=b<<7|b>>>25,b=D0+I0|0,j0^=b<<9|b>>>23,b=j0+D0|0,A0^=b<<13|b>>>19,b=A0+j0|0,I0^=b<<18|b>>>14,b=$1+S1|0,N1^=b<<7|b>>>25,b=N1+$1|0,E1^=b<<9|b>>>23,b=E1+N1|0,S1^=b<<13|b>>>19,b=S1+E1|0,$1^=b<<18|b>>>14;K[0]=n0>>>0&255,K[1]=n0>>>8&255,K[2]=n0>>>16&255,K[3]=n0>>>24&255,K[4]=v0>>>0&255,K[5]=v0>>>8&255,K[6]=v0>>>16&255,K[7]=v0>>>24&255,K[8]=I0>>>0&255,K[9]=I0>>>8&255,K[10]=I0>>>16&255,K[11]=I0>>>24&255,K[12]=$1>>>0&255,K[13]=$1>>>8&255,K[14]=$1>>>16&255,K[15]=$1>>>24&255,K[16]=Z0>>>0&255,K[17]=Z0>>>8&255,K[18]=Z0>>>16&255,K[19]=Z0>>>24&255,K[20]=V0>>>0&255,K[21]=V0>>>8&255,K[22]=V0>>>16&255,K[23]=V0>>>24&255,K[24]=j0>>>0&255,K[25]=j0>>>8&255,K[26]=j0>>>16&255,K[27]=j0>>>24&255,K[28]=A0>>>0&255,K[29]=A0>>>8&255,K[30]=A0>>>16&255,K[31]=A0>>>24&255}function $(K,M,C,z){x(K,M,C,z)}function S(K,M,C,z){u(K,M,C,z)}var h=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function l(K,M,C,z,L,n,s){var z0=new Uint8Array(16),M0=new Uint8Array(64),t0,b0;for(b0=0;b0<16;b0++)z0[b0]=0;for(b0=0;b0<8;b0++)z0[b0]=n[b0];while(L>=64){$(M0,z0,s,h);for(b0=0;b0<64;b0++)K[M+b0]=C[z+b0]^M0[b0];t0=1;for(b0=8;b0<16;b0++)t0=t0+(z0[b0]&255)|0,z0[b0]=t0&255,t0>>>=8;L-=64,M+=64,z+=64}if(L>0){$(M0,z0,s,h);for(b0=0;b0<L;b0++)K[M+b0]=C[z+b0]^M0[b0]}return 0}function p(K,M,C,z,L){var n=new Uint8Array(16),s=new Uint8Array(64),z0,M0;for(M0=0;M0<16;M0++)n[M0]=0;for(M0=0;M0<8;M0++)n[M0]=z[M0];while(C>=64){$(s,n,L,h);for(M0=0;M0<64;M0++)K[M+M0]=s[M0];z0=1;for(M0=8;M0<16;M0++)z0=z0+(n[M0]&255)|0,n[M0]=z0&255,z0>>>=8;C-=64,M+=64}if(C>0){$(s,n,L,h);for(M0=0;M0<C;M0++)K[M+M0]=s[M0]}return 0}function t(K,M,C,z,L){var n=new Uint8Array(32);S(n,z,L,h);var s=new Uint8Array(8);for(var z0=0;z0<8;z0++)s[z0]=z[z0+16];return p(K,M,C,s,n)}function _(K,M,C,z,L,n,s){var z0=new Uint8Array(32);S(z0,n,s,h);var M0=new Uint8Array(8);for(var t0=0;t0<8;t0++)M0[t0]=n[t0+16];return l(K,M,C,z,L,M0,z0)}var e=function(K){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 M,C,z,L,n,s,z0,M0;M=K[0]&255|(K[1]&255)<<8,this.r[0]=M&8191,C=K[2]&255|(K[3]&255)<<8,this.r[1]=(M>>>13|C<<3)&8191,z=K[4]&255|(K[5]&255)<<8,this.r[2]=(C>>>10|z<<6)&7939,L=K[6]&255|(K[7]&255)<<8,this.r[3]=(z>>>7|L<<9)&8191,n=K[8]&255|(K[9]&255)<<8,this.r[4]=(L>>>4|n<<12)&255,this.r[5]=n>>>1&8190,s=K[10]&255|(K[11]&255)<<8,this.r[6]=(n>>>14|s<<2)&8191,z0=K[12]&255|(K[13]&255)<<8,this.r[7]=(s>>>11|z0<<5)&8065,M0=K[14]&255|(K[15]&255)<<8,this.r[8]=(z0>>>8|M0<<8)&8191,this.r[9]=M0>>>5&127,this.pad[0]=K[16]&255|(K[17]&255)<<8,this.pad[1]=K[18]&255|(K[19]&255)<<8,this.pad[2]=K[20]&255|(K[21]&255)<<8,this.pad[3]=K[22]&255|(K[23]&255)<<8,this.pad[4]=K[24]&255|(K[25]&255)<<8,this.pad[5]=K[26]&255|(K[27]&255)<<8,this.pad[6]=K[28]&255|(K[29]&255)<<8,this.pad[7]=K[30]&255|(K[31]&255)<<8};e.prototype.blocks=function(K,M,C){var z=this.fin?0:2048,L,n,s,z0,M0,t0,b0,n1,l0,A1,I1,B1,P1,w1,O1,j1,n0,X1,f0,r0=this.h[0],s0=this.h[1],v0=this.h[2],Z0=this.h[3],V0=this.h[4],j0=this.h[5],A0=this.h[6],I0=this.h[7],D0=this.h[8],N1=this.h[9],E1=this.r[0],S1=this.r[1],$1=this.r[2],b=this.r[3],y1=this.r[4],i1=this.r[5],r1=this.r[6],_1=this.r[7],l1=this.r[8],d1=this.r[9];while(C>=16)L=K[M+0]&255|(K[M+1]&255)<<8,r0+=L&8191,n=K[M+2]&255|(K[M+3]&255)<<8,s0+=(L>>>13|n<<3)&8191,s=K[M+4]&255|(K[M+5]&255)<<8,v0+=(n>>>10|s<<6)&8191,z0=K[M+6]&255|(K[M+7]&255)<<8,Z0+=(s>>>7|z0<<9)&8191,M0=K[M+8]&255|(K[M+9]&255)<<8,V0+=(z0>>>4|M0<<12)&8191,j0+=M0>>>1&8191,t0=K[M+10]&255|(K[M+11]&255)<<8,A0+=(M0>>>14|t0<<2)&8191,b0=K[M+12]&255|(K[M+13]&255)<<8,I0+=(t0>>>11|b0<<5)&8191,n1=K[M+14]&255|(K[M+15]&255)<<8,D0+=(b0>>>8|n1<<8)&8191,N1+=n1>>>5|z,l0=0,A1=l0,A1+=r0*E1,A1+=s0*(5*d1),A1+=v0*(5*l1),A1+=Z0*(5*_1),A1+=V0*(5*r1),l0=A1>>>13,A1&=8191,A1+=j0*(5*i1),A1+=A0*(5*y1),A1+=I0*(5*b),A1+=D0*(5*$1),A1+=N1*(5*S1),l0+=A1>>>13,A1&=8191,I1=l0,I1+=r0*S1,I1+=s0*E1,I1+=v0*(5*d1),I1+=Z0*(5*l1),I1+=V0*(5*_1),l0=I1>>>13,I1&=8191,I1+=j0*(5*r1),I1+=A0*(5*i1),I1+=I0*(5*y1),I1+=D0*(5*b),I1+=N1*(5*$1),l0+=I1>>>13,I1&=8191,B1=l0,B1+=r0*$1,B1+=s0*S1,B1+=v0*E1,B1+=Z0*(5*d1),B1+=V0*(5*l1),l0=B1>>>13,B1&=8191,B1+=j0*(5*_1),B1+=A0*(5*r1),B1+=I0*(5*i1),B1+=D0*(5*y1),B1+=N1*(5*b),l0+=B1>>>13,B1&=8191,P1=l0,P1+=r0*b,P1+=s0*$1,P1+=v0*S1,P1+=Z0*E1,P1+=V0*(5*d1),l0=P1>>>13,P1&=8191,P1+=j0*(5*l1),P1+=A0*(5*_1),P1+=I0*(5*r1),P1+=D0*(5*i1),P1+=N1*(5*y1),l0+=P1>>>13,P1&=8191,w1=l0,w1+=r0*y1,w1+=s0*b,w1+=v0*$1,w1+=Z0*S1,w1+=V0*E1,l0=w1>>>13,w1&=8191,w1+=j0*(5*d1),w1+=A0*(5*l1),w1+=I0*(5*_1),w1+=D0*(5*r1),w1+=N1*(5*i1),l0+=w1>>>13,w1&=8191,O1=l0,O1+=r0*i1,O1+=s0*y1,O1+=v0*b,O1+=Z0*$1,O1+=V0*S1,l0=O1>>>13,O1&=8191,O1+=j0*E1,O1+=A0*(5*d1),O1+=I0*(5*l1),O1+=D0*(5*_1),O1+=N1*(5*r1),l0+=O1>>>13,O1&=8191,j1=l0,j1+=r0*r1,j1+=s0*i1,j1+=v0*y1,j1+=Z0*b,j1+=V0*$1,l0=j1>>>13,j1&=8191,j1+=j0*S1,j1+=A0*E1,j1+=I0*(5*d1),j1+=D0*(5*l1),j1+=N1*(5*_1),l0+=j1>>>13,j1&=8191,n0=l0,n0+=r0*_1,n0+=s0*r1,n0+=v0*i1,n0+=Z0*y1,n0+=V0*b,l0=n0>>>13,n0&=8191,n0+=j0*$1,n0+=A0*S1,n0+=I0*E1,n0+=D0*(5*d1),n0+=N1*(5*l1),l0+=n0>>>13,n0&=8191,X1=l0,X1+=r0*l1,X1+=s0*_1,X1+=v0*r1,X1+=Z0*i1,X1+=V0*y1,l0=X1>>>13,X1&=8191,X1+=j0*b,X1+=A0*$1,X1+=I0*S1,X1+=D0*E1,X1+=N1*(5*d1),l0+=X1>>>13,X1&=8191,f0=l0,f0+=r0*d1,f0+=s0*l1,f0+=v0*_1,f0+=Z0*r1,f0+=V0*i1,l0=f0>>>13,f0&=8191,f0+=j0*y1,f0+=A0*b,f0+=I0*$1,f0+=D0*S1,f0+=N1*E1,l0+=f0>>>13,f0&=8191,l0=(l0<<2)+l0|0,l0=l0+A1|0,A1=l0&8191,l0=l0>>>13,I1+=l0,r0=A1,s0=I1,v0=B1,Z0=P1,V0=w1,j0=O1,A0=j1,I0=n0,D0=X1,N1=f0,M+=16,C-=16;this.h[0]=r0,this.h[1]=s0,this.h[2]=v0,this.h[3]=Z0,this.h[4]=V0,this.h[5]=j0,this.h[6]=A0,this.h[7]=I0,this.h[8]=D0,this.h[9]=N1},e.prototype.finish=function(K,M){var C=new Uint16Array(10),z,L,n,s;if(this.leftover){s=this.leftover,this.buffer[s++]=1;for(;s<16;s++)this.buffer[s]=0;this.fin=1,this.blocks(this.buffer,0,16)}z=this.h[1]>>>13,this.h[1]&=8191;for(s=2;s<10;s++)this.h[s]+=z,z=this.h[s]>>>13,this.h[s]&=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,C[0]=this.h[0]+5,z=C[0]>>>13,C[0]&=8191;for(s=1;s<10;s++)C[s]=this.h[s]+z,z=C[s]>>>13,C[s]&=8191;C[9]-=8192,L=(z^1)-1;for(s=0;s<10;s++)C[s]&=L;L=~L;for(s=0;s<10;s++)this.h[s]=this.h[s]&L|C[s];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,n=this.h[0]+this.pad[0],this.h[0]=n&65535;for(s=1;s<8;s++)n=(this.h[s]+this.pad[s]|0)+(n>>>16)|0,this.h[s]=n&65535;K[M+0]=this.h[0]>>>0&255,K[M+1]=this.h[0]>>>8&255,K[M+2]=this.h[1]>>>0&255,K[M+3]=this.h[1]>>>8&255,K[M+4]=this.h[2]>>>0&255,K[M+5]=this.h[2]>>>8&255,K[M+6]=this.h[3]>>>0&255,K[M+7]=this.h[3]>>>8&255,K[M+8]=this.h[4]>>>0&255,K[M+9]=this.h[4]>>>8&255,K[M+10]=this.h[5]>>>0&255,K[M+11]=this.h[5]>>>8&255,K[M+12]=this.h[6]>>>0&255,K[M+13]=this.h[6]>>>8&255,K[M+14]=this.h[7]>>>0&255,K[M+15]=this.h[7]>>>8&255},e.prototype.update=function(K,M,C){var z,L;if(this.leftover){if(L=16-this.leftover,L>C)L=C;for(z=0;z<L;z++)this.buffer[this.leftover+z]=K[M+z];if(C-=L,M+=L,this.leftover+=L,this.leftover<16)return;this.blocks(this.buffer,0,16),this.leftover=0}if(C>=16)L=C-C%16,this.blocks(K,M,L),M+=L,C-=L;if(C){for(z=0;z<C;z++)this.buffer[this.leftover+z]=K[M+z];this.leftover+=C}};function H0(K,M,C,z,L,n){var s=new e(n);return s.update(C,z,L),s.finish(K,M),0}function g(K,M,C,z,L,n){var s=new Uint8Array(16);return H0(s,0,C,z,L,n),O(K,M,s,0)}function d(K,M,C,z,L){var n;if(C<32)return-1;_(K,0,M,0,C,z,L),H0(K,16,K,32,C-32,K);for(n=0;n<16;n++)K[n]=0;return 0}function P(K,M,C,z,L){var n,s=new Uint8Array(32);if(C<32)return-1;if(t(s,0,32,z,L),g(M,16,M,32,C-32,s)!==0)return-1;_(K,0,M,0,C,z,L);for(n=0;n<32;n++)K[n]=0;return 0}function E(K,M){var C;for(C=0;C<16;C++)K[C]=M[C]|0}function f(K){var M,C,z=1;for(M=0;M<16;M++)C=K[M]+z+65535,z=Math.floor(C/65536),K[M]=C-z*65536;K[0]+=z-1+37*(z-1)}function r(K,M,C){var z,L=~(C-1);for(var n=0;n<16;n++)z=L&(K[n]^M[n]),K[n]^=z,M[n]^=z}function o(K,M){var C,z,L,n=X(),s=X();for(C=0;C<16;C++)s[C]=M[C];f(s),f(s),f(s);for(z=0;z<2;z++){n[0]=s[0]-65517;for(C=1;C<15;C++)n[C]=s[C]-65535-(n[C-1]>>16&1),n[C-1]&=65535;n[15]=s[15]-32767-(n[14]>>16&1),L=n[15]>>16&1,n[14]&=65535,r(s,n,1-L)}for(C=0;C<16;C++)K[2*C]=s[C]&255,K[2*C+1]=s[C]>>8}function B(K,M){var C=new Uint8Array(32),z=new Uint8Array(32);return o(C,K),o(z,M),T(C,0,z,0)}function F(K){var M=new Uint8Array(32);return o(M,K),M[0]&1}function y(K,M){var C;for(C=0;C<16;C++)K[C]=M[2*C]+(M[2*C+1]<<8);K[15]&=32767}function v(K,M,C){for(var z=0;z<16;z++)K[z]=M[z]+C[z]}function R(K,M,C){for(var z=0;z<16;z++)K[z]=M[z]-C[z]}function m(K,M,C){var z,L,n=0,s=0,z0=0,M0=0,t0=0,b0=0,n1=0,l0=0,A1=0,I1=0,B1=0,P1=0,w1=0,O1=0,j1=0,n0=0,X1=0,f0=0,r0=0,s0=0,v0=0,Z0=0,V0=0,j0=0,A0=0,I0=0,D0=0,N1=0,E1=0,S1=0,$1=0,b=C[0],y1=C[1],i1=C[2],r1=C[3],_1=C[4],l1=C[5],d1=C[6],k8=C[7],Y8=C[8],P8=C[9],R8=C[10],L8=C[11],m8=C[12],H9=C[13],A9=C[14],z9=C[15];z=M[0],n+=z*b,s+=z*y1,z0+=z*i1,M0+=z*r1,t0+=z*_1,b0+=z*l1,n1+=z*d1,l0+=z*k8,A1+=z*Y8,I1+=z*P8,B1+=z*R8,P1+=z*L8,w1+=z*m8,O1+=z*H9,j1+=z*A9,n0+=z*z9,z=M[1],s+=z*b,z0+=z*y1,M0+=z*i1,t0+=z*r1,b0+=z*_1,n1+=z*l1,l0+=z*d1,A1+=z*k8,I1+=z*Y8,B1+=z*P8,P1+=z*R8,w1+=z*L8,O1+=z*m8,j1+=z*H9,n0+=z*A9,X1+=z*z9,z=M[2],z0+=z*b,M0+=z*y1,t0+=z*i1,b0+=z*r1,n1+=z*_1,l0+=z*l1,A1+=z*d1,I1+=z*k8,B1+=z*Y8,P1+=z*P8,w1+=z*R8,O1+=z*L8,j1+=z*m8,n0+=z*H9,X1+=z*A9,f0+=z*z9,z=M[3],M0+=z*b,t0+=z*y1,b0+=z*i1,n1+=z*r1,l0+=z*_1,A1+=z*l1,I1+=z*d1,B1+=z*k8,P1+=z*Y8,w1+=z*P8,O1+=z*R8,j1+=z*L8,n0+=z*m8,X1+=z*H9,f0+=z*A9,r0+=z*z9,z=M[4],t0+=z*b,b0+=z*y1,n1+=z*i1,l0+=z*r1,A1+=z*_1,I1+=z*l1,B1+=z*d1,P1+=z*k8,w1+=z*Y8,O1+=z*P8,j1+=z*R8,n0+=z*L8,X1+=z*m8,f0+=z*H9,r0+=z*A9,s0+=z*z9,z=M[5],b0+=z*b,n1+=z*y1,l0+=z*i1,A1+=z*r1,I1+=z*_1,B1+=z*l1,P1+=z*d1,w1+=z*k8,O1+=z*Y8,j1+=z*P8,n0+=z*R8,X1+=z*L8,f0+=z*m8,r0+=z*H9,s0+=z*A9,v0+=z*z9,z=M[6],n1+=z*b,l0+=z*y1,A1+=z*i1,I1+=z*r1,B1+=z*_1,P1+=z*l1,w1+=z*d1,O1+=z*k8,j1+=z*Y8,n0+=z*P8,X1+=z*R8,f0+=z*L8,r0+=z*m8,s0+=z*H9,v0+=z*A9,Z0+=z*z9,z=M[7],l0+=z*b,A1+=z*y1,I1+=z*i1,B1+=z*r1,P1+=z*_1,w1+=z*l1,O1+=z*d1,j1+=z*k8,n0+=z*Y8,X1+=z*P8,f0+=z*R8,r0+=z*L8,s0+=z*m8,v0+=z*H9,Z0+=z*A9,V0+=z*z9,z=M[8],A1+=z*b,I1+=z*y1,B1+=z*i1,P1+=z*r1,w1+=z*_1,O1+=z*l1,j1+=z*d1,n0+=z*k8,X1+=z*Y8,f0+=z*P8,r0+=z*R8,s0+=z*L8,v0+=z*m8,Z0+=z*H9,V0+=z*A9,j0+=z*z9,z=M[9],I1+=z*b,B1+=z*y1,P1+=z*i1,w1+=z*r1,O1+=z*_1,j1+=z*l1,n0+=z*d1,X1+=z*k8,f0+=z*Y8,r0+=z*P8,s0+=z*R8,v0+=z*L8,Z0+=z*m8,V0+=z*H9,j0+=z*A9,A0+=z*z9,z=M[10],B1+=z*b,P1+=z*y1,w1+=z*i1,O1+=z*r1,j1+=z*_1,n0+=z*l1,X1+=z*d1,f0+=z*k8,r0+=z*Y8,s0+=z*P8,v0+=z*R8,Z0+=z*L8,V0+=z*m8,j0+=z*H9,A0+=z*A9,I0+=z*z9,z=M[11],P1+=z*b,w1+=z*y1,O1+=z*i1,j1+=z*r1,n0+=z*_1,X1+=z*l1,f0+=z*d1,r0+=z*k8,s0+=z*Y8,v0+=z*P8,Z0+=z*R8,V0+=z*L8,j0+=z*m8,A0+=z*H9,I0+=z*A9,D0+=z*z9,z=M[12],w1+=z*b,O1+=z*y1,j1+=z*i1,n0+=z*r1,X1+=z*_1,f0+=z*l1,r0+=z*d1,s0+=z*k8,v0+=z*Y8,Z0+=z*P8,V0+=z*R8,j0+=z*L8,A0+=z*m8,I0+=z*H9,D0+=z*A9,N1+=z*z9,z=M[13],O1+=z*b,j1+=z*y1,n0+=z*i1,X1+=z*r1,f0+=z*_1,r0+=z*l1,s0+=z*d1,v0+=z*k8,Z0+=z*Y8,V0+=z*P8,j0+=z*R8,A0+=z*L8,I0+=z*m8,D0+=z*H9,N1+=z*A9,E1+=z*z9,z=M[14],j1+=z*b,n0+=z*y1,X1+=z*i1,f0+=z*r1,r0+=z*_1,s0+=z*l1,v0+=z*d1,Z0+=z*k8,V0+=z*Y8,j0+=z*P8,A0+=z*R8,I0+=z*L8,D0+=z*m8,N1+=z*H9,E1+=z*A9,S1+=z*z9,z=M[15],n0+=z*b,X1+=z*y1,f0+=z*i1,r0+=z*r1,s0+=z*_1,v0+=z*l1,Z0+=z*d1,V0+=z*k8,j0+=z*Y8,A0+=z*P8,I0+=z*R8,D0+=z*L8,N1+=z*m8,E1+=z*H9,S1+=z*A9,$1+=z*z9,n+=38*X1,s+=38*f0,z0+=38*r0,M0+=38*s0,t0+=38*v0,b0+=38*Z0,n1+=38*V0,l0+=38*j0,A1+=38*A0,I1+=38*I0,B1+=38*D0,P1+=38*N1,w1+=38*E1,O1+=38*S1,j1+=38*$1,L=1,z=n+L+65535,L=Math.floor(z/65536),n=z-L*65536,z=s+L+65535,L=Math.floor(z/65536),s=z-L*65536,z=z0+L+65535,L=Math.floor(z/65536),z0=z-L*65536,z=M0+L+65535,L=Math.floor(z/65536),M0=z-L*65536,z=t0+L+65535,L=Math.floor(z/65536),t0=z-L*65536,z=b0+L+65535,L=Math.floor(z/65536),b0=z-L*65536,z=n1+L+65535,L=Math.floor(z/65536),n1=z-L*65536,z=l0+L+65535,L=Math.floor(z/65536),l0=z-L*65536,z=A1+L+65535,L=Math.floor(z/65536),A1=z-L*65536,z=I1+L+65535,L=Math.floor(z/65536),I1=z-L*65536,z=B1+L+65535,L=Math.floor(z/65536),B1=z-L*65536,z=P1+L+65535,L=Math.floor(z/65536),P1=z-L*65536,z=w1+L+65535,L=Math.floor(z/65536),w1=z-L*65536,z=O1+L+65535,L=Math.floor(z/65536),O1=z-L*65536,z=j1+L+65535,L=Math.floor(z/65536),j1=z-L*65536,z=n0+L+65535,L=Math.floor(z/65536),n0=z-L*65536,n+=L-1+37*(L-1),L=1,z=n+L+65535,L=Math.floor(z/65536),n=z-L*65536,z=s+L+65535,L=Math.floor(z/65536),s=z-L*65536,z=z0+L+65535,L=Math.floor(z/65536),z0=z-L*65536,z=M0+L+65535,L=Math.floor(z/65536),M0=z-L*65536,z=t0+L+65535,L=Math.floor(z/65536),t0=z-L*65536,z=b0+L+65535,L=Math.floor(z/65536),b0=z-L*65536,z=n1+L+65535,L=Math.floor(z/65536),n1=z-L*65536,z=l0+L+65535,L=Math.floor(z/65536),l0=z-L*65536,z=A1+L+65535,L=Math.floor(z/65536),A1=z-L*65536,z=I1+L+65535,L=Math.floor(z/65536),I1=z-L*65536,z=B1+L+65535,L=Math.floor(z/65536),B1=z-L*65536,z=P1+L+65535,L=Math.floor(z/65536),P1=z-L*65536,z=w1+L+65535,L=Math.floor(z/65536),w1=z-L*65536,z=O1+L+65535,L=Math.floor(z/65536),O1=z-L*65536,z=j1+L+65535,L=Math.floor(z/65536),j1=z-L*65536,z=n0+L+65535,L=Math.floor(z/65536),n0=z-L*65536,n+=L-1+37*(L-1),K[0]=n,K[1]=s,K[2]=z0,K[3]=M0,K[4]=t0,K[5]=b0,K[6]=n1,K[7]=l0,K[8]=A1,K[9]=I1,K[10]=B1,K[11]=P1,K[12]=w1,K[13]=O1,K[14]=j1,K[15]=n0}function J0(K,M){m(K,M,M)}function U0(K,M){var C=X(),z;for(z=0;z<16;z++)C[z]=M[z];for(z=253;z>=0;z--)if(J0(C,C),z!==2&&z!==4)m(C,C,M);for(z=0;z<16;z++)K[z]=C[z]}function N0(K,M){var C=X(),z;for(z=0;z<16;z++)C[z]=M[z];for(z=250;z>=0;z--)if(J0(C,C),z!==1)m(C,C,M);for(z=0;z<16;z++)K[z]=C[z]}function $0(K,M,C){var z=new Uint8Array(32),L=new Float64Array(80),n,s,z0=X(),M0=X(),t0=X(),b0=X(),n1=X(),l0=X();for(s=0;s<31;s++)z[s]=M[s];z[31]=M[31]&127|64,z[0]&=248,y(L,C);for(s=0;s<16;s++)M0[s]=L[s],b0[s]=z0[s]=t0[s]=0;z0[0]=b0[0]=1;for(s=254;s>=0;--s)n=z[s>>>3]>>>(s&7)&1,r(z0,M0,n),r(t0,b0,n),v(n1,z0,t0),R(z0,z0,t0),v(t0,M0,b0),R(M0,M0,b0),J0(b0,n1),J0(l0,z0),m(z0,t0,z0),m(t0,M0,n1),v(n1,z0,t0),R(z0,z0,t0),J0(M0,z0),R(t0,b0,l0),m(z0,t0,U),v(z0,z0,b0),m(t0,t0,z0),m(z0,b0,l0),m(b0,M0,L),J0(M0,n1),r(z0,M0,n),r(t0,b0,n);for(s=0;s<16;s++)L[s+16]=z0[s],L[s+32]=t0[s],L[s+48]=M0[s],L[s+64]=b0[s];var A1=L.subarray(32),I1=L.subarray(16);return U0(A1,A1),m(I1,I1,A1),o(K,I1),0}function u0(K,M){return $0(K,M,J)}function q1(K,M){return G(M,32),u0(K,M)}function g1(K,M,C){var z=new Uint8Array(32);return $0(z,C,M),S(K,Y,z,h)}var h0=d,x1=P;function k1(K,M,C,z,L,n){var s=new Uint8Array(32);return g1(s,L,n),h0(K,M,C,z,s)}function Q0(K,M,C,z,L,n){var s=new Uint8Array(32);return g1(s,L,n),x1(K,M,C,z,s)}var S0=[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 m0(K,M,C,z){var L=new Int32Array(16),n=new Int32Array(16),s,z0,M0,t0,b0,n1,l0,A1,I1,B1,P1,w1,O1,j1,n0,X1,f0,r0,s0,v0,Z0,V0,j0,A0,I0,D0,N1=K[0],E1=K[1],S1=K[2],$1=K[3],b=K[4],y1=K[5],i1=K[6],r1=K[7],_1=M[0],l1=M[1],d1=M[2],k8=M[3],Y8=M[4],P8=M[5],R8=M[6],L8=M[7],m8=0;while(z>=128){for(s0=0;s0<16;s0++)v0=8*s0+m8,L[s0]=C[v0+0]<<24|C[v0+1]<<16|C[v0+2]<<8|C[v0+3],n[s0]=C[v0+4]<<24|C[v0+5]<<16|C[v0+6]<<8|C[v0+7];for(s0=0;s0<80;s0++)if(s=N1,z0=E1,M0=S1,t0=$1,b0=b,n1=y1,l0=i1,A1=r1,I1=_1,B1=l1,P1=d1,w1=k8,O1=Y8,j1=P8,n0=R8,X1=L8,Z0=r1,V0=L8,j0=V0&65535,A0=V0>>>16,I0=Z0&65535,D0=Z0>>>16,Z0=(b>>>14|Y8<<18)^(b>>>18|Y8<<14)^(Y8>>>9|b<<23),V0=(Y8>>>14|b<<18)^(Y8>>>18|b<<14)^(b>>>9|Y8<<23),j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,Z0=b&y1^~b&i1,V0=Y8&P8^~Y8&R8,j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,Z0=S0[s0*2],V0=S0[s0*2+1],j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,Z0=L[s0%16],V0=n[s0%16],j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,A0+=j0>>>16,I0+=A0>>>16,D0+=I0>>>16,f0=I0&65535|D0<<16,r0=j0&65535|A0<<16,Z0=f0,V0=r0,j0=V0&65535,A0=V0>>>16,I0=Z0&65535,D0=Z0>>>16,Z0=(N1>>>28|_1<<4)^(_1>>>2|N1<<30)^(_1>>>7|N1<<25),V0=(_1>>>28|N1<<4)^(N1>>>2|_1<<30)^(N1>>>7|_1<<25),j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,Z0=N1&E1^N1&S1^E1&S1,V0=_1&l1^_1&d1^l1&d1,j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,A0+=j0>>>16,I0+=A0>>>16,D0+=I0>>>16,A1=I0&65535|D0<<16,X1=j0&65535|A0<<16,Z0=t0,V0=w1,j0=V0&65535,A0=V0>>>16,I0=Z0&65535,D0=Z0>>>16,Z0=f0,V0=r0,j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,A0+=j0>>>16,I0+=A0>>>16,D0+=I0>>>16,t0=I0&65535|D0<<16,w1=j0&65535|A0<<16,E1=s,S1=z0,$1=M0,b=t0,y1=b0,i1=n1,r1=l0,N1=A1,l1=I1,d1=B1,k8=P1,Y8=w1,P8=O1,R8=j1,L8=n0,_1=X1,s0%16===15)for(v0=0;v0<16;v0++)Z0=L[v0],V0=n[v0],j0=V0&65535,A0=V0>>>16,I0=Z0&65535,D0=Z0>>>16,Z0=L[(v0+9)%16],V0=n[(v0+9)%16],j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,f0=L[(v0+1)%16],r0=n[(v0+1)%16],Z0=(f0>>>1|r0<<31)^(f0>>>8|r0<<24)^f0>>>7,V0=(r0>>>1|f0<<31)^(r0>>>8|f0<<24)^(r0>>>7|f0<<25),j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,f0=L[(v0+14)%16],r0=n[(v0+14)%16],Z0=(f0>>>19|r0<<13)^(r0>>>29|f0<<3)^f0>>>6,V0=(r0>>>19|f0<<13)^(f0>>>29|r0<<3)^(r0>>>6|f0<<26),j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,A0+=j0>>>16,I0+=A0>>>16,D0+=I0>>>16,L[v0]=I0&65535|D0<<16,n[v0]=j0&65535|A0<<16;Z0=N1,V0=_1,j0=V0&65535,A0=V0>>>16,I0=Z0&65535,D0=Z0>>>16,Z0=K[0],V0=M[0],j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,A0+=j0>>>16,I0+=A0>>>16,D0+=I0>>>16,K[0]=N1=I0&65535|D0<<16,M[0]=_1=j0&65535|A0<<16,Z0=E1,V0=l1,j0=V0&65535,A0=V0>>>16,I0=Z0&65535,D0=Z0>>>16,Z0=K[1],V0=M[1],j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,A0+=j0>>>16,I0+=A0>>>16,D0+=I0>>>16,K[1]=E1=I0&65535|D0<<16,M[1]=l1=j0&65535|A0<<16,Z0=S1,V0=d1,j0=V0&65535,A0=V0>>>16,I0=Z0&65535,D0=Z0>>>16,Z0=K[2],V0=M[2],j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,A0+=j0>>>16,I0+=A0>>>16,D0+=I0>>>16,K[2]=S1=I0&65535|D0<<16,M[2]=d1=j0&65535|A0<<16,Z0=$1,V0=k8,j0=V0&65535,A0=V0>>>16,I0=Z0&65535,D0=Z0>>>16,Z0=K[3],V0=M[3],j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,A0+=j0>>>16,I0+=A0>>>16,D0+=I0>>>16,K[3]=$1=I0&65535|D0<<16,M[3]=k8=j0&65535|A0<<16,Z0=b,V0=Y8,j0=V0&65535,A0=V0>>>16,I0=Z0&65535,D0=Z0>>>16,Z0=K[4],V0=M[4],j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,A0+=j0>>>16,I0+=A0>>>16,D0+=I0>>>16,K[4]=b=I0&65535|D0<<16,M[4]=Y8=j0&65535|A0<<16,Z0=y1,V0=P8,j0=V0&65535,A0=V0>>>16,I0=Z0&65535,D0=Z0>>>16,Z0=K[5],V0=M[5],j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,A0+=j0>>>16,I0+=A0>>>16,D0+=I0>>>16,K[5]=y1=I0&65535|D0<<16,M[5]=P8=j0&65535|A0<<16,Z0=i1,V0=R8,j0=V0&65535,A0=V0>>>16,I0=Z0&65535,D0=Z0>>>16,Z0=K[6],V0=M[6],j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,A0+=j0>>>16,I0+=A0>>>16,D0+=I0>>>16,K[6]=i1=I0&65535|D0<<16,M[6]=R8=j0&65535|A0<<16,Z0=r1,V0=L8,j0=V0&65535,A0=V0>>>16,I0=Z0&65535,D0=Z0>>>16,Z0=K[7],V0=M[7],j0+=V0&65535,A0+=V0>>>16,I0+=Z0&65535,D0+=Z0>>>16,A0+=j0>>>16,I0+=A0>>>16,D0+=I0>>>16,K[7]=r1=I0&65535|D0<<16,M[7]=L8=j0&65535|A0<<16,m8+=128,z-=128}return z}function G0(K,M,C){var z=new Int32Array(8),L=new Int32Array(8),n=new Uint8Array(256),s,z0=C;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,m0(z,L,M,C),C%=128;for(s=0;s<C;s++)n[s]=M[z0-C+s];n[C]=128,C=256-128*(C<112?1:0),n[C-9]=0,I(n,C-8,z0/536870912|0,z0<<3),m0(z,L,n,C);for(s=0;s<8;s++)I(K,8*s,z[s],L[s]);return 0}function K0(K,M){var C=X(),z=X(),L=X(),n=X(),s=X(),z0=X(),M0=X(),t0=X(),b0=X();R(C,K[1],K[0]),R(b0,M[1],M[0]),m(C,C,b0),v(z,K[0],K[1]),v(b0,M[0],M[1]),m(z,z,b0),m(L,K[3],M[3]),m(L,L,N),m(n,K[2],M[2]),v(n,n,n),R(s,z,C),R(z0,n,L),v(M0,n,L),v(t0,z,C),m(K[0],s,z0),m(K[1],t0,M0),m(K[2],M0,z0),m(K[3],s,t0)}function P0(K,M,C){var z;for(z=0;z<4;z++)r(K[z],M[z],C)}function k0(K,M){var C=X(),z=X(),L=X();U0(L,M[2]),m(C,M[0],L),m(z,M[1],L),o(K,z),K[31]^=F(C)<<7}function C1(K,M,C){var z,L;E(K[0],Z),E(K[1],V),E(K[2],V),E(K[3],Z);for(L=255;L>=0;--L)z=C[L/8|0]>>(L&7)&1,P0(K,M,z),K0(M,K),K0(K,K),P0(K,M,z)}function Q1(K,M){var C=[X(),X(),X(),X()];E(C[0],q),E(C[1],A),E(C[2],V),m(C[3],q,A),C1(K,C,M)}function Y0(K,M,C){var z=new Uint8Array(64),L=[X(),X(),X(),X()],n;if(!C)G(M,32);G0(z,M,32),z[0]&=248,z[31]&=127,z[31]|=64,Q1(L,z),k0(K,L);for(n=0;n<32;n++)M[n+32]=K[n];return 0}var B0=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 F0(K,M){var C,z,L,n;for(z=63;z>=32;--z){C=0;for(L=z-32,n=z-12;L<n;++L)M[L]+=C-16*M[z]*B0[L-(z-32)],C=Math.floor((M[L]+128)/256),M[L]-=C*256;M[L]+=C,M[z]=0}C=0;for(L=0;L<32;L++)M[L]+=C-(M[31]>>4)*B0[L],C=M[L]>>8,M[L]&=255;for(L=0;L<32;L++)M[L]-=C*B0[L];for(z=0;z<32;z++)M[z+1]+=M[z]>>8,K[z]=M[z]&255}function F1(K){var M=new Float64Array(64),C;for(C=0;C<64;C++)M[C]=K[C];for(C=0;C<64;C++)K[C]=0;F0(K,M)}function W8(K,M,C,z){var L=new Uint8Array(64),n=new Uint8Array(64),s=new Uint8Array(64),z0,M0,t0=new Float64Array(64),b0=[X(),X(),X(),X()];G0(L,z,32),L[0]&=248,L[31]&=127,L[31]|=64;var n1=C+64;for(z0=0;z0<C;z0++)K[64+z0]=M[z0];for(z0=0;z0<32;z0++)K[32+z0]=L[32+z0];G0(s,K.subarray(32),C+32),F1(s),Q1(b0,s),k0(K,b0);for(z0=32;z0<64;z0++)K[z0]=z[z0];G0(n,K,C+64),F1(n);for(z0=0;z0<64;z0++)t0[z0]=0;for(z0=0;z0<32;z0++)t0[z0]=s[z0];for(z0=0;z0<32;z0++)for(M0=0;M0<32;M0++)t0[z0+M0]+=n[z0]*L[M0];return F0(K.subarray(32),t0),n1}function T1(K,M){var C=X(),z=X(),L=X(),n=X(),s=X(),z0=X(),M0=X();if(E(K[2],V),y(K[1],M),J0(L,K[1]),m(n,L,Q),R(L,L,K[2]),v(n,K[2],n),J0(s,n),J0(z0,s),m(M0,z0,s),m(C,M0,L),m(C,C,n),N0(C,C),m(C,C,L),m(C,C,n),m(C,C,n),m(K[0],C,n),J0(z,K[0]),m(z,z,n),B(z,L))m(K[0],K[0],H);if(J0(z,K[0]),m(z,z,n),B(z,L))return-1;if(F(K[0])===M[31]>>7)R(K[0],Z,K[0]);return m(K[3],K[0],K[1]),0}function H1(K,M,C,z){var L,n=new Uint8Array(32),s=new Uint8Array(64),z0=[X(),X(),X(),X()],M0=[X(),X(),X(),X()];if(C<64)return-1;if(T1(M0,z))return-1;for(L=0;L<C;L++)K[L]=M[L];for(L=0;L<32;L++)K[L+32]=z[L];if(G0(s,K,C),F1(s),C1(z0,M0,s),Q1(M0,M.subarray(32)),K0(z0,M0),k0(n,z0),C-=64,T(M,0,n,0)){for(L=0;L<C;L++)K[L]=0;return-1}for(L=0;L<C;L++)K[L]=M[L+64];return C}var c=32,W0=24,q0=32,T0=16,e0=32,q8=32,I8=32,M1=32,_0=32,p0=W0,o0=q0,a0=T0,z1=64,o1=32,Z8=64,S9=32,pX=64;W.lowlevel={crypto_core_hsalsa20:S,crypto_stream_xor:_,crypto_stream:t,crypto_stream_salsa20_xor:l,crypto_stream_salsa20:p,crypto_onetimeauth:H0,crypto_onetimeauth_verify:g,crypto_verify_16:O,crypto_verify_32:T,crypto_secretbox:d,crypto_secretbox_open:P,crypto_scalarmult:$0,crypto_scalarmult_base:u0,crypto_box_beforenm:g1,crypto_box_afternm:h0,crypto_box:k1,crypto_box_open:Q0,crypto_box_keypair:q1,crypto_hash:G0,crypto_sign:W8,crypto_sign_keypair:Y0,crypto_sign_open:H1,crypto_secretbox_KEYBYTES:c,crypto_secretbox_NONCEBYTES:W0,crypto_secretbox_ZEROBYTES:q0,crypto_secretbox_BOXZEROBYTES:T0,crypto_scalarmult_BYTES:e0,crypto_scalarmult_SCALARBYTES:q8,crypto_box_PUBLICKEYBYTES:I8,crypto_box_SECRETKEYBYTES:M1,crypto_box_BEFORENMBYTES:_0,crypto_box_NONCEBYTES:p0,crypto_box_ZEROBYTES:o0,crypto_box_BOXZEROBYTES:a0,crypto_sign_BYTES:z1,crypto_sign_PUBLICKEYBYTES:o1,crypto_sign_SECRETKEYBYTES:Z8,crypto_sign_SEEDBYTES:S9,crypto_hash_BYTES:pX,gf:X,D:Q,L:B0,pack25519:o,unpack25519:y,M:m,A:v,S:J0,Z:R,pow2523:N0,add:K0,set25519:E,modL:F0,scalarmult:C1,scalarbase:Q1};function yU(K,M){if(K.length!==c)throw Error("bad key size");if(M.length!==W0)throw Error("bad nonce size")}function HA(K,M){if(K.length!==I8)throw Error("bad public key size");if(M.length!==M1)throw Error("bad secret key size")}function W5(){for(var K=0;K<arguments.length;K++)if(!(arguments[K]instanceof Uint8Array))throw TypeError("unexpected type, use Uint8Array")}function AD(K){for(var M=0;M<K.length;M++)K[M]=0}W.randomBytes=function(K){var M=new Uint8Array(K);return G(M,K),M},W.secretbox=function(K,M,C){W5(K,M,C),yU(C,M);var z=new Uint8Array(q0+K.length),L=new Uint8Array(z.length);for(var n=0;n<K.length;n++)z[n+q0]=K[n];return d(L,z,z.length,M,C),L.subarray(T0)},W.secretbox.open=function(K,M,C){W5(K,M,C),yU(C,M);var z=new Uint8Array(T0+K.length),L=new Uint8Array(z.length);for(var n=0;n<K.length;n++)z[n+T0]=K[n];if(z.length<32)return null;if(P(L,z,z.length,M,C)!==0)return null;return L.subarray(q0)},W.secretbox.keyLength=c,W.secretbox.nonceLength=W0,W.secretbox.overheadLength=T0,W.scalarMult=function(K,M){if(W5(K,M),K.length!==q8)throw Error("bad n size");if(M.length!==e0)throw Error("bad p size");var C=new Uint8Array(e0);return $0(C,K,M),C},W.scalarMult.base=function(K){if(W5(K),K.length!==q8)throw Error("bad n size");var M=new Uint8Array(e0);return u0(M,K),M},W.scalarMult.scalarLength=q8,W.scalarMult.groupElementLength=e0,W.box=function(K,M,C,z){var L=W.box.before(C,z);return W.secretbox(K,M,L)},W.box.before=function(K,M){W5(K,M),HA(K,M);var C=new Uint8Array(_0);return g1(C,K,M),C},W.box.after=W.secretbox,W.box.open=function(K,M,C,z){var L=W.box.before(C,z);return W.secretbox.open(K,M,L)},W.box.open.after=W.secretbox.open,W.box.keyPair=function(){var K=new Uint8Array(I8),M=new Uint8Array(M1);return q1(K,M),{publicKey:K,secretKey:M}},W.box.keyPair.fromSecretKey=function(K){if(W5(K),K.length!==M1)throw Error("bad secret key size");var M=new Uint8Array(I8);return u0(M,K),{publicKey:M,secretKey:new Uint8Array(K)}},W.box.publicKeyLength=I8,W.box.secretKeyLength=M1,W.box.sharedKeyLength=_0,W.box.nonceLength=p0,W.box.overheadLength=W.secretbox.overheadLength,W.sign=function(K,M){if(W5(K,M),M.length!==Z8)throw Error("bad secret key size");var C=new Uint8Array(z1+K.length);return W8(C,K,K.length,M),C},W.sign.open=function(K,M){if(W5(K,M),M.length!==o1)throw Error("bad public key size");var C=new Uint8Array(K.length),z=H1(C,K,K.length,M);if(z<0)return null;var L=new Uint8Array(z);for(var n=0;n<L.length;n++)L[n]=C[n];return L},W.sign.detached=function(K,M){var C=W.sign(K,M),z=new Uint8Array(z1);for(var L=0;L<z.length;L++)z[L]=C[L];return z},W.sign.detached.verify=function(K,M,C){if(W5(K,M,C),M.length!==z1)throw Error("bad signature size");if(C.length!==o1)throw Error("bad public key size");var z=new Uint8Array(z1+K.length),L=new Uint8Array(z1+K.length),n;for(n=0;n<z1;n++)z[n]=M[n];for(n=0;n<K.length;n++)z[n+z1]=K[n];return H1(L,z,z.length,C)>=0},W.sign.keyPair=function(){var K=new Uint8Array(o1),M=new Uint8Array(Z8);return Y0(K,M),{publicKey:K,secretKey:M}},W.sign.keyPair.fromSecretKey=function(K){if(W5(K),K.length!==Z8)throw Error("bad secret key size");var M=new Uint8Array(o1);for(var C=0;C<M.length;C++)M[C]=K[32+C];return{publicKey:M,secretKey:new Uint8Array(K)}},W.sign.keyPair.fromSeed=function(K){if(W5(K),K.length!==S9)throw Error("bad seed size");var M=new Uint8Array(o1),C=new Uint8Array(Z8);for(var z=0;z<32;z++)C[z]=K[z];return Y0(M,C,!0),{publicKey:M,secretKey:C}},W.sign.publicKeyLength=o1,W.sign.secretKeyLength=Z8,W.sign.seedLength=S9,W.sign.signatureLength=z1,W.hash=function(K){W5(K);var M=new Uint8Array(pX);return G0(M,K,K.length),M},W.hash.hashLength=pX,W.verify=function(K,M){if(W5(K,M),K.length===0||M.length===0)return!1;if(K.length!==M.length)return!1;return w(K,0,M,0,K.length)===0?!0:!1},W.setPRNG=function(K){G=K},function(){var K=typeof self<"u"?self.crypto||self.msCrypto:null;if(K&&K.getRandomValues){var M=65536;W.setPRNG(function(C,z){var L,n=new Uint8Array(z);for(L=0;L<z;L+=M)K.getRandomValues(n.subarray(L,L+Math.min(z-L,M)));for(L=0;L<z;L++)C[L]=n[L];AD(n)})}else if(K=_8("crypto"),K&&K.randomBytes)W.setPRNG(function(C,z){var L,n=K.randomBytes(z);for(L=0;L<z;L++)C[L]=n[L];AD(n)})}()})(typeof _Q<"u"&&ee?ee:self.nacl=self.nacl||{})});var Ez=V1((wM)=>{Object.defineProperty(wM,"__esModule",{value:!0});class IM{constructor(W,X=0,G=0){this.start=X,this.end=G>X?G:X,this.buf=W}get length(){return this.buf.length}reset(W=0,X=0){if(this.start=W,X>=this.start)this.end=X;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,X="Too few bytes to parse."){let G=this.end+W;if(G>this.buf.length){let Y=Error(X);throw Y.available=this.buf.length,Y.requested=G,Y}return this.walk(0),this}mustWalk(W,X){return this.mustHas(W,X),this.walk(W),this}}wM.BufferVisitor=IM});var DM=V1((OM)=>{Object.defineProperty(OM,"__esModule",{value:!0});var jM=_8("util"),KM=64,Fz="-----BEGIN ",Sz="-----END ",mJ="-----",$z="Proc-Type";class xz{static parse(W){let X=[],G=W.toString("utf8").split(`
|
|
8
8
|
`).map((Y)=>Y.trim()).filter((Y)=>Y!==""&&!Y.startsWith("#"));while(G.length>0)X.push(_b(G));if(X.length===0)throw Error("PEM: no block");return X}constructor(W,X){this.type=W,this.body=X,this.headers=Object.create(null)}get procType(){return this.getHeader($z)}getHeader(W){let X=this.headers[W];return X==null?"":X}setHeader(W,X){if(W.includes(":"))throw Error("pem: cannot encode a header key that contains a colon");if(W===""||X==="")throw Error("pem: invalid header key or value");this.headers[W]=X}toString(){let W=Fz+this.type+mJ+`
|
|
9
9
|
`,X=Object.keys(this.headers);if(X.length>0){let J=this.procType;if(J!=="")W+=`${$z}: ${J}
|
|
10
10
|
`;X.sort();for(let Z of X)if(Z!==$z)W+=`${Z}: ${this.headers[Z]}
|
|
@@ -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 hM;(function(W){(function(X){var G=typeof globalThis==="object"?globalThis:typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:U(),Y=J(W);if(typeof G.Reflect<"u")Y=J(G.Reflect,Y);if(X(Y,G),typeof G.Reflect>"u")G.Reflect=W;function J(Q,N){return function(q,A){if(Object.defineProperty(Q,q,{configurable:!0,writable:!0,value:A}),N)N(q,A)}}function Z(){try{return Function("return this;")()}catch(Q){}}function V(){try{return(0,eval)("(function() { return this; })()")}catch(Q){}}function U(){return Z()||V()}})(function(X,G){var Y=Object.prototype.hasOwnProperty,J=typeof Symbol==="function",Z=J&&typeof Symbol.toPrimitive<"u"?Symbol.toPrimitive:"@@toPrimitive",V=J&&typeof Symbol.iterator<"u"?Symbol.iterator:"@@iterator",U=typeof Object.create==="function",Q={__proto__:[]}instanceof Array,N=!U&&!Q,q={create:U?function(){return H1(Object.create(null))}:Q?function(){return H1({__proto__:null})}:function(){return H1({})},has:N?function(c,t){return Y.call(c,t)}:function(c,t){return t in c},get:N?function(c,t){return Y.call(c,t)?c[t]:void 0}:function(c,t){return c[t]}},A=Object.getPrototypeOf(Function),H=typeof Map==="function"&&typeof Map.prototype.entries==="function"?Map:F1(),I=typeof Set==="function"&&typeof Set.prototype.entries==="function"?Set:W8(),w=typeof WeakMap==="function"?WeakMap:T1(),O=J?Symbol.for("@reflect-metadata:registry"):void 0,T=Q1(),x=Y0(T);function P(c,t,q0,T0){if(!v(q0)){if(!g1(c))throw TypeError();if(!J0(t))throw TypeError();if(!J0(T0)&&!v(T0)&&!L(T0))throw TypeError();if(L(T0))T0=void 0;return q0=q1(q0),d(c,t,q0,T0)}else{if(!g1(c))throw TypeError();if(!x1(t))throw TypeError();return g(c,t)}}X("decorate",P);function u(c,t){function q0(T0,e0){if(!J0(T0))throw TypeError();if(!v(e0)&&!k1(e0))throw TypeError();o(c,t,T0,e0)}return q0}X("metadata",u);function F(c,t,q0,T0){if(!J0(q0))throw TypeError();if(!v(T0))T0=q1(T0);return o(c,t,q0,T0)}X("defineMetadata",F);function m(c,t,q0){if(!J0(t))throw TypeError();if(!v(q0))q0=q1(q0);return R(c,t,q0)}X("hasMetadata",m);function l(c,t,q0){if(!J0(t))throw TypeError();if(!v(q0))q0=q1(q0);return $(c,t,q0)}X("hasOwnMetadata",l);function p(c,t,q0){if(!J0(t))throw TypeError();if(!v(q0))q0=q1(q0);return f(c,t,q0)}X("getMetadata",p);function W0(c,t,q0){if(!J0(t))throw TypeError();if(!v(q0))q0=q1(q0);return r(c,t,q0)}X("getOwnMetadata",W0);function y(c,t){if(!J0(c))throw TypeError();if(!v(t))t=q1(t);return E(c,t)}X("getMetadataKeys",y);function e(c,t){if(!J0(c))throw TypeError();if(!v(t))t=q1(t);return S(c,t)}X("getOwnMetadataKeys",e);function H0(c,t,q0){if(!J0(t))throw TypeError();if(!v(q0))q0=q1(q0);if(!J0(t))throw TypeError();if(!v(q0))q0=q1(q0);var T0=F0(t,q0,!1);if(v(T0))return!1;return T0.OrdinaryDeleteMetadata(c,t,q0)}X("deleteMetadata",H0);function g(c,t){for(var q0=c.length-1;q0>=0;--q0){var T0=c[q0],e0=T0(t);if(!v(e0)&&!L(e0)){if(!x1(e0))throw TypeError();t=e0}}return t}function d(c,t,q0,T0){for(var e0=c.length-1;e0>=0;--e0){var q8=c[e0],I8=q8(t,q0,T0);if(!v(I8)&&!L(I8)){if(!J0(I8))throw TypeError();T0=I8}}return T0}function R(c,t,q0){var T0=$(c,t,q0);if(T0)return!0;var e0=k0(t);if(!L(e0))return R(c,e0,q0);return!1}function $(c,t,q0){var T0=F0(t,q0,!1);if(v(T0))return!1;return $0(T0.OrdinaryHasOwnMetadata(c,t,q0))}function f(c,t,q0){var T0=$(c,t,q0);if(T0)return r(c,t,q0);var e0=k0(t);if(!L(e0))return f(c,e0,q0);return}function r(c,t,q0){var T0=F0(t,q0,!1);if(v(T0))return;return T0.OrdinaryGetOwnMetadata(c,t,q0)}function o(c,t,q0,T0){var e0=F0(q0,T0,!0);e0.OrdinaryDefineOwnMetadata(c,t,q0,T0)}function E(c,t){var q0=S(c,t),T0=k0(c);if(T0===null)return q0;var e0=E(T0,t);if(e0.length<=0)return q0;if(q0.length<=0)return e0;var q8=new I,I8=[];for(var M1=0,_0=q0;M1<_0.length;M1++){var p0=_0[M1],o0=q8.has(p0);if(!o0)q8.add(p0),I8.push(p0)}for(var a0=0,z1=e0;a0<z1.length;a0++){var p0=z1[a0],o0=q8.has(p0);if(!o0)q8.add(p0),I8.push(p0)}return I8}function S(c,t){var q0=F0(c,t,!1);if(!q0)return[];return q0.OrdinaryOwnMetadataKeys(c,t)}function _(c){if(c===null)return 1;switch(typeof c){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return c===null?1:6;default:return 6}}function v(c){return c===void 0}function L(c){return c===null}function b(c){return typeof c==="symbol"}function J0(c){return typeof c==="object"?c!==null:typeof c==="function"}function U0(c,t){switch(_(c)){case 0:return c;case 1:return c;case 2:return c;case 3:return c;case 4:return c;case 5:return c}var q0=t===3?"string":t===5?"number":"default",T0=S0(c,Z);if(T0!==void 0){var e0=T0.call(c,q0);if(J0(e0))throw TypeError();return e0}return N0(c,q0==="default"?"number":q0)}function N0(c,t){if(t==="string"){var q0=c.toString;if(h0(q0)){var T0=q0.call(c);if(!J0(T0))return T0}var e0=c.valueOf;if(h0(e0)){var T0=e0.call(c);if(!J0(T0))return T0}}else{var e0=c.valueOf;if(h0(e0)){var T0=e0.call(c);if(!J0(T0))return T0}var q8=c.toString;if(h0(q8)){var T0=q8.call(c);if(!J0(T0))return T0}}throw TypeError()}function $0(c){return!!c}function u0(c){return""+c}function q1(c){var t=U0(c,3);if(b(t))return t;return u0(t)}function g1(c){return Array.isArray?Array.isArray(c):c instanceof Object?c instanceof Array:Object.prototype.toString.call(c)==="[object Array]"}function h0(c){return typeof c==="function"}function x1(c){return typeof c==="function"}function k1(c){switch(_(c)){case 3:return!0;case 4:return!0;default:return!1}}function Q0(c,t){return c===t||c!==c&&t!==t}function S0(c,t){var q0=c[t];if(q0===void 0||q0===null)return;if(!h0(q0))throw TypeError();return q0}function m0(c){var t=S0(c,V);if(!h0(t))throw TypeError();var q0=t.call(c);if(!J0(q0))throw TypeError();return q0}function G0(c){return c.value}function K0(c){var t=c.next();return t.done?!1:t}function P0(c){var t=c.return;if(t)t.call(c)}function k0(c){var t=Object.getPrototypeOf(c);if(typeof c!=="function"||c===A)return t;if(t!==A)return t;var q0=c.prototype,T0=q0&&Object.getPrototypeOf(q0);if(T0==null||T0===Object.prototype)return t;var e0=T0.constructor;if(typeof e0!=="function")return t;if(e0===c)return t;return e0}function C1(){var c;if(!v(O)&&typeof G.Reflect<"u"&&!(O in G.Reflect)&&typeof G.Reflect.defineMetadata==="function")c=B0(G.Reflect);var t,q0,T0,e0=new w,q8={registerProvider:I8,getProvider:_0,setProvider:o0};return q8;function I8(a0){if(!Object.isExtensible(q8))throw Error("Cannot add provider to a frozen registry.");switch(!0){case c===a0:break;case v(t):t=a0;break;case t===a0:break;case v(q0):q0=a0;break;case q0===a0:break;default:if(T0===void 0)T0=new I;T0.add(a0);break}}function M1(a0,z1){if(!v(t)){if(t.isProviderFor(a0,z1))return t;if(!v(q0)){if(q0.isProviderFor(a0,z1))return t;if(!v(T0)){var o1=m0(T0);while(!0){var Z8=K0(o1);if(!Z8)return;var S9=G0(Z8);if(S9.isProviderFor(a0,z1))return P0(o1),S9}}}}if(!v(c)&&c.isProviderFor(a0,z1))return c;return}function _0(a0,z1){var o1=e0.get(a0),Z8;if(!v(o1))Z8=o1.get(z1);if(!v(Z8))return Z8;if(Z8=M1(a0,z1),!v(Z8)){if(v(o1))o1=new H,e0.set(a0,o1);o1.set(z1,Z8)}return Z8}function p0(a0){if(v(a0))throw TypeError();return t===a0||q0===a0||!v(T0)&&T0.has(a0)}function o0(a0,z1,o1){if(!p0(o1))throw Error("Metadata provider not registered.");var Z8=_0(a0,z1);if(Z8!==o1){if(!v(Z8))return!1;var S9=e0.get(a0);if(v(S9))S9=new H,e0.set(a0,S9);S9.set(z1,o1)}return!0}}function Q1(){var c;if(!v(O)&&J0(G.Reflect)&&Object.isExtensible(G.Reflect))c=G.Reflect[O];if(v(c))c=C1();if(!v(O)&&J0(G.Reflect)&&Object.isExtensible(G.Reflect))Object.defineProperty(G.Reflect,O,{enumerable:!1,configurable:!1,writable:!1,value:c});return c}function Y0(c){var t=new w,q0={isProviderFor:function(p0,o0){var a0=t.get(p0);if(v(a0))return!1;return a0.has(o0)},OrdinaryDefineOwnMetadata:I8,OrdinaryHasOwnMetadata:e0,OrdinaryGetOwnMetadata:q8,OrdinaryOwnMetadataKeys:M1,OrdinaryDeleteMetadata:_0};return T.registerProvider(q0),q0;function T0(p0,o0,a0){var z1=t.get(p0),o1=!1;if(v(z1)){if(!a0)return;z1=new H,t.set(p0,z1),o1=!0}var Z8=z1.get(o0);if(v(Z8)){if(!a0)return;if(Z8=new H,z1.set(o0,Z8),!c.setProvider(p0,o0,q0)){if(z1.delete(o0),o1)t.delete(p0);throw Error("Wrong provider for target.")}}return Z8}function e0(p0,o0,a0){var z1=T0(o0,a0,!1);if(v(z1))return!1;return $0(z1.has(p0))}function q8(p0,o0,a0){var z1=T0(o0,a0,!1);if(v(z1))return;return z1.get(p0)}function I8(p0,o0,a0,z1){var o1=T0(a0,z1,!0);o1.set(p0,o0)}function M1(p0,o0){var a0=[],z1=T0(p0,o0,!1);if(v(z1))return a0;var o1=z1.keys(),Z8=m0(o1),S9=0;while(!0){var pX=K0(Z8);if(!pX)return a0.length=S9,a0;var yU=G0(pX);try{a0[S9]=yU}catch(HA){try{P0(Z8)}finally{throw HA}}S9++}}function _0(p0,o0,a0){var z1=T0(o0,a0,!1);if(v(z1))return!1;if(!z1.delete(p0))return!1;if(z1.size===0){var o1=t.get(o0);if(!v(o1)){if(o1.delete(a0),o1.size===0)t.delete(o1)}}return!0}}function B0(c){var{defineMetadata:t,hasOwnMetadata:q0,getOwnMetadata:T0,getOwnMetadataKeys:e0,deleteMetadata:q8}=c,I8=new w,M1={isProviderFor:function(_0,p0){var o0=I8.get(_0);if(!v(o0)&&o0.has(p0))return!0;if(e0(_0,p0).length){if(v(o0))o0=new I,I8.set(_0,o0);return o0.add(p0),!0}return!1},OrdinaryDefineOwnMetadata:t,OrdinaryHasOwnMetadata:q0,OrdinaryGetOwnMetadata:T0,OrdinaryOwnMetadataKeys:e0,OrdinaryDeleteMetadata:q8};return M1}function F0(c,t,q0){var T0=T.getProvider(c,t);if(!v(T0))return T0;if(q0){if(T.setProvider(c,t,x))return x;throw Error("Illegal state.")}return}function F1(){var c={},t=[],q0=function(){function M1(_0,p0,o0){this._index=0,this._keys=_0,this._values=p0,this._selector=o0}return M1.prototype["@@iterator"]=function(){return this},M1.prototype[V]=function(){return this},M1.prototype.next=function(){var _0=this._index;if(_0>=0&&_0<this._keys.length){var p0=this._selector(this._keys[_0],this._values[_0]);if(_0+1>=this._keys.length)this._index=-1,this._keys=t,this._values=t;else this._index++;return{value:p0,done:!1}}return{value:void 0,done:!0}},M1.prototype.throw=function(_0){if(this._index>=0)this._index=-1,this._keys=t,this._values=t;throw _0},M1.prototype.return=function(_0){if(this._index>=0)this._index=-1,this._keys=t,this._values=t;return{value:_0,done:!0}},M1}(),T0=function(){function M1(){this._keys=[],this._values=[],this._cacheKey=c,this._cacheIndex=-2}return Object.defineProperty(M1.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),M1.prototype.has=function(_0){return this._find(_0,!1)>=0},M1.prototype.get=function(_0){var p0=this._find(_0,!1);return p0>=0?this._values[p0]:void 0},M1.prototype.set=function(_0,p0){var o0=this._find(_0,!0);return this._values[o0]=p0,this},M1.prototype.delete=function(_0){var p0=this._find(_0,!1);if(p0>=0){var o0=this._keys.length;for(var a0=p0+1;a0<o0;a0++)this._keys[a0-1]=this._keys[a0],this._values[a0-1]=this._values[a0];if(this._keys.length--,this._values.length--,Q0(_0,this._cacheKey))this._cacheKey=c,this._cacheIndex=-2;return!0}return!1},M1.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=c,this._cacheIndex=-2},M1.prototype.keys=function(){return new q0(this._keys,this._values,e0)},M1.prototype.values=function(){return new q0(this._keys,this._values,q8)},M1.prototype.entries=function(){return new q0(this._keys,this._values,I8)},M1.prototype["@@iterator"]=function(){return this.entries()},M1.prototype[V]=function(){return this.entries()},M1.prototype._find=function(_0,p0){if(!Q0(this._cacheKey,_0)){this._cacheIndex=-1;for(var o0=0;o0<this._keys.length;o0++)if(Q0(this._keys[o0],_0)){this._cacheIndex=o0;break}}if(this._cacheIndex<0&&p0)this._cacheIndex=this._keys.length,this._keys.push(_0),this._values.push(void 0);return this._cacheIndex},M1}();return T0;function e0(M1,_0){return M1}function q8(M1,_0){return _0}function I8(M1,_0){return[M1,_0]}}function W8(){var c=function(){function t(){this._map=new H}return Object.defineProperty(t.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),t.prototype.has=function(q0){return this._map.has(q0)},t.prototype.add=function(q0){return this._map.set(q0,q0),this},t.prototype.delete=function(q0){return this._map.delete(q0)},t.prototype.clear=function(){this._map.clear()},t.prototype.keys=function(){return this._map.keys()},t.prototype.values=function(){return this._map.keys()},t.prototype.entries=function(){return this._map.entries()},t.prototype["@@iterator"]=function(){return this.keys()},t.prototype[V]=function(){return this.keys()},t}();return c}function T1(){var c=16,t=q.create(),q0=T0();return function(){function _0(){this._key=T0()}return _0.prototype.has=function(p0){var o0=e0(p0,!1);return o0!==void 0?q.has(o0,this._key):!1},_0.prototype.get=function(p0){var o0=e0(p0,!1);return o0!==void 0?q.get(o0,this._key):void 0},_0.prototype.set=function(p0,o0){var a0=e0(p0,!0);return a0[this._key]=o0,this},_0.prototype.delete=function(p0){var o0=e0(p0,!1);return o0!==void 0?delete o0[this._key]:!1},_0.prototype.clear=function(){this._key=T0()},_0}();function T0(){var _0;do _0="@@WeakMap@@"+M1();while(q.has(t,_0));return t[_0]=!0,_0}function e0(_0,p0){if(!Y.call(_0,q0)){if(!p0)return;Object.defineProperty(_0,q0,{value:q.create()})}return _0[q0]}function q8(_0,p0){for(var o0=0;o0<p0;++o0)_0[o0]=Math.random()*255|0;return _0}function I8(_0){if(typeof Uint8Array==="function"){var p0=new Uint8Array(_0);if(typeof crypto<"u")crypto.getRandomValues(p0);else if(typeof msCrypto<"u")msCrypto.getRandomValues(p0);else q8(p0,_0);return p0}return q8(Array(_0),_0)}function M1(){var _0=I8(c);_0[6]=_0[6]&79|64,_0[8]=_0[8]&191|128;var p0="";for(var o0=0;o0<c;++o0){var a0=_0[o0];if(o0===4||o0===6||o0===8)p0+="-";if(a0<16)p0+="0";p0+=a0.toString(16).toLowerCase()}return p0}}function H1(c){return c.__=void 0,delete c.__,c}})})(hM||(hM={}))});var qR=V1((y10,UN)=>{var gP,uP,hP,bP,mP,fP,pP,cP,lP,dP,oP,nP,iP,ZN,AI,rP,aP,sP,xG,tP,eP,WR,XR,GR,YR,JR,ZR,VR,VN,UR,QR,NR;(function(W){var X=typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:{};if(typeof define==="function"&&define.amd)define("tslib",["exports"],function(Y){W(G(X,G(Y)))});else if(typeof UN==="object"&&typeof y10==="object")W(G(X,G(y10)));else W(G(X));function G(Y,J){if(Y!==X)if(typeof Object.create==="function")Object.defineProperty(Y,"__esModule",{value:!0});else Y.__esModule=!0;return function(Z,V){return Y[Z]=J?J(Z,V):V}}})(function(W){var X=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(Z,V){Z.__proto__=V}||function(Z,V){for(var U in V)if(Object.prototype.hasOwnProperty.call(V,U))Z[U]=V[U]};gP=function(Z,V){if(typeof V!=="function"&&V!==null)throw TypeError("Class extends value "+String(V)+" is not a constructor or null");X(Z,V);function U(){this.constructor=Z}Z.prototype=V===null?Object.create(V):(U.prototype=V.prototype,new U)},uP=Object.assign||function(Z){for(var V,U=1,Q=arguments.length;U<Q;U++){V=arguments[U];for(var N in V)if(Object.prototype.hasOwnProperty.call(V,N))Z[N]=V[N]}return Z},hP=function(Z,V){var U={};for(var Q in Z)if(Object.prototype.hasOwnProperty.call(Z,Q)&&V.indexOf(Q)<0)U[Q]=Z[Q];if(Z!=null&&typeof Object.getOwnPropertySymbols==="function"){for(var N=0,Q=Object.getOwnPropertySymbols(Z);N<Q.length;N++)if(V.indexOf(Q[N])<0&&Object.prototype.propertyIsEnumerable.call(Z,Q[N]))U[Q[N]]=Z[Q[N]]}return U},bP=function(Z,V,U,Q){var N=arguments.length,q=N<3?V:Q===null?Q=Object.getOwnPropertyDescriptor(V,U):Q,A;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")q=Reflect.decorate(Z,V,U,Q);else for(var H=Z.length-1;H>=0;H--)if(A=Z[H])q=(N<3?A(q):N>3?A(V,U,q):A(V,U))||q;return N>3&&q&&Object.defineProperty(V,U,q),q},mP=function(Z,V){return function(U,Q){V(U,Q,Z)}},fP=function(Z,V,U,Q,N,q){function A(l){if(l!==void 0&&typeof l!=="function")throw TypeError("Function expected");return l}var H=Q.kind,I=H==="getter"?"get":H==="setter"?"set":"value",w=!V&&Z?Q.static?Z:Z.prototype:null,O=V||(w?Object.getOwnPropertyDescriptor(w,Q.name):{}),T,x=!1;for(var P=U.length-1;P>=0;P--){var u={};for(var F in Q)u[F]=F==="access"?{}:Q[F];for(var F in Q.access)u.access[F]=Q.access[F];u.addInitializer=function(l){if(x)throw TypeError("Cannot add initializers after decoration has completed");q.push(A(l||null))};var m=(0,U[P])(H==="accessor"?{get:O.get,set:O.set}:O[I],u);if(H==="accessor"){if(m===void 0)continue;if(m===null||typeof m!=="object")throw TypeError("Object expected");if(T=A(m.get))O.get=T;if(T=A(m.set))O.set=T;if(T=A(m.init))N.unshift(T)}else if(T=A(m))if(H==="field")N.unshift(T);else O[I]=T}if(w)Object.defineProperty(w,Q.name,O);x=!0},pP=function(Z,V,U){var Q=arguments.length>2;for(var N=0;N<V.length;N++)U=Q?V[N].call(Z,U):V[N].call(Z);return Q?U:void 0},cP=function(Z){return typeof Z==="symbol"?Z:"".concat(Z)},lP=function(Z,V,U){if(typeof V==="symbol")V=V.description?"[".concat(V.description,"]"):"";return Object.defineProperty(Z,"name",{configurable:!0,value:U?"".concat(U," ",V):V})},dP=function(Z,V){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(Z,V)},oP=function(Z,V,U,Q){function N(q){return q instanceof U?q:new U(function(A){A(q)})}return new(U||(U=Promise))(function(q,A){function H(O){try{w(Q.next(O))}catch(T){A(T)}}function I(O){try{w(Q.throw(O))}catch(T){A(T)}}function w(O){O.done?q(O.value):N(O.value).then(H,I)}w((Q=Q.apply(Z,V||[])).next())})},nP=function(Z,V){var U={label:0,sent:function(){if(q[0]&1)throw q[1];return q[1]},trys:[],ops:[]},Q,N,q,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(O){return I([w,O])}}function I(w){if(Q)throw TypeError("Generator is already executing.");while(A&&(A=0,w[0]&&(U=0)),U)try{if(Q=1,N&&(q=w[0]&2?N.return:w[0]?N.throw||((q=N.return)&&q.call(N),0):N.next)&&!(q=q.call(N,w[1])).done)return q;if(N=0,q)w=[w[0]&2,q.value];switch(w[0]){case 0:case 1:q=w;break;case 4:return U.label++,{value:w[1],done:!1};case 5:U.label++,N=w[1],w=[0];continue;case 7:w=U.ops.pop(),U.trys.pop();continue;default:if((q=U.trys,!(q=q.length>0&&q[q.length-1]))&&(w[0]===6||w[0]===2)){U=0;continue}if(w[0]===3&&(!q||w[1]>q[0]&&w[1]<q[3])){U.label=w[1];break}if(w[0]===6&&U.label<q[1]){U.label=q[1],q=w;break}if(q&&U.label<q[2]){U.label=q[2],U.ops.push(w);break}if(q[2])U.ops.pop();U.trys.pop();continue}w=V.call(Z,U)}catch(O){w=[6,O],N=0}finally{Q=q=0}if(w[0]&5)throw w[1];return{value:w[0]?w[1]:void 0,done:!0}}},iP=function(Z,V){for(var U in Z)if(U!=="default"&&!Object.prototype.hasOwnProperty.call(V,U))VN(V,Z,U)},VN=Object.create?function(Z,V,U,Q){if(Q===void 0)Q=U;var N=Object.getOwnPropertyDescriptor(V,U);if(!N||("get"in N?!V.__esModule:N.writable||N.configurable))N={enumerable:!0,get:function(){return V[U]}};Object.defineProperty(Z,Q,N)}:function(Z,V,U,Q){if(Q===void 0)Q=U;Z[Q]=V[U]},ZN=function(Z){var V=typeof Symbol==="function"&&Symbol.iterator,U=V&&Z[V],Q=0;if(U)return U.call(Z);if(Z&&typeof Z.length==="number")return{next:function(){if(Z&&Q>=Z.length)Z=void 0;return{value:Z&&Z[Q++],done:!Z}}};throw TypeError(V?"Object is not iterable.":"Symbol.iterator is not defined.")},AI=function(Z,V){var U=typeof Symbol==="function"&&Z[Symbol.iterator];if(!U)return Z;var Q=U.call(Z),N,q=[],A;try{while((V===void 0||V-- >0)&&!(N=Q.next()).done)q.push(N.value)}catch(H){A={error:H}}finally{try{if(N&&!N.done&&(U=Q.return))U.call(Q)}finally{if(A)throw A.error}}return q},rP=function(){for(var Z=[],V=0;V<arguments.length;V++)Z=Z.concat(AI(arguments[V]));return Z},aP=function(){for(var Z=0,V=0,U=arguments.length;V<U;V++)Z+=arguments[V].length;for(var Q=Array(Z),N=0,V=0;V<U;V++)for(var q=arguments[V],A=0,H=q.length;A<H;A++,N++)Q[N]=q[A];return Q},sP=function(Z,V,U){if(U||arguments.length===2){for(var Q=0,N=V.length,q;Q<N;Q++)if(q||!(Q in V)){if(!q)q=Array.prototype.slice.call(V,0,Q);q[Q]=V[Q]}}return Z.concat(q||Array.prototype.slice.call(V))},xG=function(Z){return this instanceof xG?(this.v=Z,this):new xG(Z)},tP=function(Z,V,U){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var Q=U.apply(Z,V||[]),N,q=[];return N=Object.create((typeof AsyncIterator==="function"?AsyncIterator:Object).prototype),H("next"),H("throw"),H("return",A),N[Symbol.asyncIterator]=function(){return this},N;function A(P){return function(u){return Promise.resolve(u).then(P,T)}}function H(P,u){if(Q[P]){if(N[P]=function(F){return new Promise(function(m,l){q.push([P,F,m,l])>1||I(P,F)})},u)N[P]=u(N[P])}}function I(P,u){try{w(Q[P](u))}catch(F){x(q[0][3],F)}}function w(P){P.value instanceof xG?Promise.resolve(P.value.v).then(O,T):x(q[0][2],P)}function O(P){I("next",P)}function T(P){I("throw",P)}function x(P,u){if(P(u),q.shift(),q.length)I(q[0][0],q[0][1])}},eP=function(Z){var V,U;return V={},Q("next"),Q("throw",function(N){throw N}),Q("return"),V[Symbol.iterator]=function(){return this},V;function Q(N,q){V[N]=Z[N]?function(A){return(U=!U)?{value:xG(Z[N](A)),done:!1}:q?q(A):A}:q}},WR=function(Z){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var V=Z[Symbol.asyncIterator],U;return V?V.call(Z):(Z=typeof ZN==="function"?ZN(Z):Z[Symbol.iterator](),U={},Q("next"),Q("throw"),Q("return"),U[Symbol.asyncIterator]=function(){return this},U);function Q(q){U[q]=Z[q]&&function(A){return new Promise(function(H,I){A=Z[q](A),N(H,I,A.done,A.value)})}}function N(q,A,H,I){Promise.resolve(I).then(function(w){q({value:w,done:H})},A)}},XR=function(Z,V){if(Object.defineProperty)Object.defineProperty(Z,"raw",{value:V});else Z.raw=V;return Z};var G=Object.create?function(Z,V){Object.defineProperty(Z,"default",{enumerable:!0,value:V})}:function(Z,V){Z.default=V},Y=function(Z){return Y=Object.getOwnPropertyNames||function(V){var U=[];for(var Q in V)if(Object.prototype.hasOwnProperty.call(V,Q))U[U.length]=Q;return U},Y(Z)};GR=function(Z){if(Z&&Z.__esModule)return Z;var V={};if(Z!=null){for(var U=Y(Z),Q=0;Q<U.length;Q++)if(U[Q]!=="default")VN(V,Z,U[Q])}return G(V,Z),V},YR=function(Z){return Z&&Z.__esModule?Z:{default:Z}},JR=function(Z,V,U,Q){if(U==="a"&&!Q)throw TypeError("Private accessor was defined without a getter");if(typeof V==="function"?Z!==V||!Q:!V.has(Z))throw TypeError("Cannot read private member from an object whose class did not declare it");return U==="m"?Q:U==="a"?Q.call(Z):Q?Q.value:V.get(Z)},ZR=function(Z,V,U,Q,N){if(Q==="m")throw TypeError("Private method is not writable");if(Q==="a"&&!N)throw TypeError("Private accessor was defined without a setter");if(typeof V==="function"?Z!==V||!N:!V.has(Z))throw TypeError("Cannot write private member to an object whose class did not declare it");return Q==="a"?N.call(Z,U):N?N.value=U:V.set(Z,U),U},VR=function(Z,V){if(V===null||typeof V!=="object"&&typeof V!=="function")throw TypeError("Cannot use 'in' operator on non-object");return typeof Z==="function"?V===Z:Z.has(V)},UR=function(Z,V,U){if(V!==null&&V!==void 0){if(typeof V!=="object"&&typeof V!=="function")throw TypeError("Object expected.");var Q,N;if(U){if(!Symbol.asyncDispose)throw TypeError("Symbol.asyncDispose is not defined.");Q=V[Symbol.asyncDispose]}if(Q===void 0){if(!Symbol.dispose)throw TypeError("Symbol.dispose is not defined.");if(Q=V[Symbol.dispose],U)N=Q}if(typeof Q!=="function")throw TypeError("Object not disposable.");if(N)Q=function(){try{N.call(this)}catch(q){return Promise.reject(q)}};Z.stack.push({value:V,dispose:Q,async:U})}else if(U)Z.stack.push({async:!0});return V};var J=typeof SuppressedError==="function"?SuppressedError:function(Z,V,U){var Q=Error(U);return Q.name="SuppressedError",Q.error=Z,Q.suppressed=V,Q};QR=function(Z){function V(q){Z.error=Z.hasError?new J(q,Z.error,"An error was suppressed during disposal."):q,Z.hasError=!0}var U,Q=0;function N(){while(U=Z.stack.pop())try{if(!U.async&&Q===1)return Q=0,Z.stack.push(U),Promise.resolve().then(N);if(U.dispose){var q=U.dispose.call(U.value);if(U.async)return Q|=2,Promise.resolve(q).then(N,function(A){return V(A),N()})}else Q|=1}catch(A){V(A)}if(Q===1)return Z.hasError?Promise.reject(Z.error):Promise.resolve();if(Z.hasError)throw Z.error}return N()},NR=function(Z,V){if(typeof Z==="string"&&/^\.\.?\//.test(Z))return Z.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(U,Q,N,q,A){return Q?V?".jsx":".js":N&&(!q||!A)?U:N+q+"."+A.toLowerCase()+"js"});return Z},W("__extends",gP),W("__assign",uP),W("__rest",hP),W("__decorate",bP),W("__param",mP),W("__esDecorate",fP),W("__runInitializers",pP),W("__propKey",cP),W("__setFunctionName",lP),W("__metadata",dP),W("__awaiter",oP),W("__generator",nP),W("__exportStar",iP),W("__createBinding",VN),W("__values",ZN),W("__read",AI),W("__spread",rP),W("__spreadArrays",aP),W("__spreadArray",sP),W("__await",xG),W("__asyncGenerator",tP),W("__asyncDelegator",eP),W("__asyncValues",WR),W("__makeTemplateObject",XR),W("__importStar",GR),W("__importDefault",YR),W("__classPrivateFieldGet",JR),W("__classPrivateFieldSet",ZR),W("__classPrivateFieldIn",VR),W("__addDisposableResource",UR),W("__disposeResources",QR),W("__rewriteRelativeImportExtension",NR)})});var TL=V1((nJ0,lN)=>{/*! *****************************************************************************
|
|
27
|
+
***************************************************************************** */var hM;(function(W){(function(X){var G=typeof globalThis==="object"?globalThis:typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:U(),Y=J(W);if(typeof G.Reflect<"u")Y=J(G.Reflect,Y);if(X(Y,G),typeof G.Reflect>"u")G.Reflect=W;function J(Q,N){return function(q,A){if(Object.defineProperty(Q,q,{configurable:!0,writable:!0,value:A}),N)N(q,A)}}function Z(){try{return Function("return this;")()}catch(Q){}}function V(){try{return(0,eval)("(function() { return this; })()")}catch(Q){}}function U(){return Z()||V()}})(function(X,G){var Y=Object.prototype.hasOwnProperty,J=typeof Symbol==="function",Z=J&&typeof Symbol.toPrimitive<"u"?Symbol.toPrimitive:"@@toPrimitive",V=J&&typeof Symbol.iterator<"u"?Symbol.iterator:"@@iterator",U=typeof Object.create==="function",Q={__proto__:[]}instanceof Array,N=!U&&!Q,q={create:U?function(){return H1(Object.create(null))}:Q?function(){return H1({__proto__:null})}:function(){return H1({})},has:N?function(c,W0){return Y.call(c,W0)}:function(c,W0){return W0 in c},get:N?function(c,W0){return Y.call(c,W0)?c[W0]:void 0}:function(c,W0){return c[W0]}},A=Object.getPrototypeOf(Function),H=typeof Map==="function"&&typeof Map.prototype.entries==="function"?Map:F1(),I=typeof Set==="function"&&typeof Set.prototype.entries==="function"?Set:W8(),w=typeof WeakMap==="function"?WeakMap:T1(),O=J?Symbol.for("@reflect-metadata:registry"):void 0,T=Q1(),x=Y0(T);function u(c,W0,q0,T0){if(!v(q0)){if(!g1(c))throw TypeError();if(!J0(W0))throw TypeError();if(!J0(T0)&&!v(T0)&&!R(T0))throw TypeError();if(R(T0))T0=void 0;return q0=q1(q0),d(c,W0,q0,T0)}else{if(!g1(c))throw TypeError();if(!x1(W0))throw TypeError();return g(c,W0)}}X("decorate",u);function $(c,W0){function q0(T0,e0){if(!J0(T0))throw TypeError();if(!v(e0)&&!k1(e0))throw TypeError();o(c,W0,T0,e0)}return q0}X("metadata",$);function S(c,W0,q0,T0){if(!J0(q0))throw TypeError();if(!v(T0))T0=q1(T0);return o(c,W0,q0,T0)}X("defineMetadata",S);function h(c,W0,q0){if(!J0(W0))throw TypeError();if(!v(q0))q0=q1(q0);return P(c,W0,q0)}X("hasMetadata",h);function l(c,W0,q0){if(!J0(W0))throw TypeError();if(!v(q0))q0=q1(q0);return E(c,W0,q0)}X("hasOwnMetadata",l);function p(c,W0,q0){if(!J0(W0))throw TypeError();if(!v(q0))q0=q1(q0);return f(c,W0,q0)}X("getMetadata",p);function t(c,W0,q0){if(!J0(W0))throw TypeError();if(!v(q0))q0=q1(q0);return r(c,W0,q0)}X("getOwnMetadata",t);function _(c,W0){if(!J0(c))throw TypeError();if(!v(W0))W0=q1(W0);return B(c,W0)}X("getMetadataKeys",_);function e(c,W0){if(!J0(c))throw TypeError();if(!v(W0))W0=q1(W0);return F(c,W0)}X("getOwnMetadataKeys",e);function H0(c,W0,q0){if(!J0(W0))throw TypeError();if(!v(q0))q0=q1(q0);if(!J0(W0))throw TypeError();if(!v(q0))q0=q1(q0);var T0=F0(W0,q0,!1);if(v(T0))return!1;return T0.OrdinaryDeleteMetadata(c,W0,q0)}X("deleteMetadata",H0);function g(c,W0){for(var q0=c.length-1;q0>=0;--q0){var T0=c[q0],e0=T0(W0);if(!v(e0)&&!R(e0)){if(!x1(e0))throw TypeError();W0=e0}}return W0}function d(c,W0,q0,T0){for(var e0=c.length-1;e0>=0;--e0){var q8=c[e0],I8=q8(W0,q0,T0);if(!v(I8)&&!R(I8)){if(!J0(I8))throw TypeError();T0=I8}}return T0}function P(c,W0,q0){var T0=E(c,W0,q0);if(T0)return!0;var e0=k0(W0);if(!R(e0))return P(c,e0,q0);return!1}function E(c,W0,q0){var T0=F0(W0,q0,!1);if(v(T0))return!1;return $0(T0.OrdinaryHasOwnMetadata(c,W0,q0))}function f(c,W0,q0){var T0=E(c,W0,q0);if(T0)return r(c,W0,q0);var e0=k0(W0);if(!R(e0))return f(c,e0,q0);return}function r(c,W0,q0){var T0=F0(W0,q0,!1);if(v(T0))return;return T0.OrdinaryGetOwnMetadata(c,W0,q0)}function o(c,W0,q0,T0){var e0=F0(q0,T0,!0);e0.OrdinaryDefineOwnMetadata(c,W0,q0,T0)}function B(c,W0){var q0=F(c,W0),T0=k0(c);if(T0===null)return q0;var e0=B(T0,W0);if(e0.length<=0)return q0;if(q0.length<=0)return e0;var q8=new I,I8=[];for(var M1=0,_0=q0;M1<_0.length;M1++){var p0=_0[M1],o0=q8.has(p0);if(!o0)q8.add(p0),I8.push(p0)}for(var a0=0,z1=e0;a0<z1.length;a0++){var p0=z1[a0],o0=q8.has(p0);if(!o0)q8.add(p0),I8.push(p0)}return I8}function F(c,W0){var q0=F0(c,W0,!1);if(!q0)return[];return q0.OrdinaryOwnMetadataKeys(c,W0)}function y(c){if(c===null)return 1;switch(typeof c){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return c===null?1:6;default:return 6}}function v(c){return c===void 0}function R(c){return c===null}function m(c){return typeof c==="symbol"}function J0(c){return typeof c==="object"?c!==null:typeof c==="function"}function U0(c,W0){switch(y(c)){case 0:return c;case 1:return c;case 2:return c;case 3:return c;case 4:return c;case 5:return c}var q0=W0===3?"string":W0===5?"number":"default",T0=S0(c,Z);if(T0!==void 0){var e0=T0.call(c,q0);if(J0(e0))throw TypeError();return e0}return N0(c,q0==="default"?"number":q0)}function N0(c,W0){if(W0==="string"){var q0=c.toString;if(h0(q0)){var T0=q0.call(c);if(!J0(T0))return T0}var e0=c.valueOf;if(h0(e0)){var T0=e0.call(c);if(!J0(T0))return T0}}else{var e0=c.valueOf;if(h0(e0)){var T0=e0.call(c);if(!J0(T0))return T0}var q8=c.toString;if(h0(q8)){var T0=q8.call(c);if(!J0(T0))return T0}}throw TypeError()}function $0(c){return!!c}function u0(c){return""+c}function q1(c){var W0=U0(c,3);if(m(W0))return W0;return u0(W0)}function g1(c){return Array.isArray?Array.isArray(c):c instanceof Object?c instanceof Array:Object.prototype.toString.call(c)==="[object Array]"}function h0(c){return typeof c==="function"}function x1(c){return typeof c==="function"}function k1(c){switch(y(c)){case 3:return!0;case 4:return!0;default:return!1}}function Q0(c,W0){return c===W0||c!==c&&W0!==W0}function S0(c,W0){var q0=c[W0];if(q0===void 0||q0===null)return;if(!h0(q0))throw TypeError();return q0}function m0(c){var W0=S0(c,V);if(!h0(W0))throw TypeError();var q0=W0.call(c);if(!J0(q0))throw TypeError();return q0}function G0(c){return c.value}function K0(c){var W0=c.next();return W0.done?!1:W0}function P0(c){var W0=c.return;if(W0)W0.call(c)}function k0(c){var W0=Object.getPrototypeOf(c);if(typeof c!=="function"||c===A)return W0;if(W0!==A)return W0;var q0=c.prototype,T0=q0&&Object.getPrototypeOf(q0);if(T0==null||T0===Object.prototype)return W0;var e0=T0.constructor;if(typeof e0!=="function")return W0;if(e0===c)return W0;return e0}function C1(){var c;if(!v(O)&&typeof G.Reflect<"u"&&!(O in G.Reflect)&&typeof G.Reflect.defineMetadata==="function")c=B0(G.Reflect);var W0,q0,T0,e0=new w,q8={registerProvider:I8,getProvider:_0,setProvider:o0};return q8;function I8(a0){if(!Object.isExtensible(q8))throw Error("Cannot add provider to a frozen registry.");switch(!0){case c===a0:break;case v(W0):W0=a0;break;case W0===a0:break;case v(q0):q0=a0;break;case q0===a0:break;default:if(T0===void 0)T0=new I;T0.add(a0);break}}function M1(a0,z1){if(!v(W0)){if(W0.isProviderFor(a0,z1))return W0;if(!v(q0)){if(q0.isProviderFor(a0,z1))return W0;if(!v(T0)){var o1=m0(T0);while(!0){var Z8=K0(o1);if(!Z8)return;var S9=G0(Z8);if(S9.isProviderFor(a0,z1))return P0(o1),S9}}}}if(!v(c)&&c.isProviderFor(a0,z1))return c;return}function _0(a0,z1){var o1=e0.get(a0),Z8;if(!v(o1))Z8=o1.get(z1);if(!v(Z8))return Z8;if(Z8=M1(a0,z1),!v(Z8)){if(v(o1))o1=new H,e0.set(a0,o1);o1.set(z1,Z8)}return Z8}function p0(a0){if(v(a0))throw TypeError();return W0===a0||q0===a0||!v(T0)&&T0.has(a0)}function o0(a0,z1,o1){if(!p0(o1))throw Error("Metadata provider not registered.");var Z8=_0(a0,z1);if(Z8!==o1){if(!v(Z8))return!1;var S9=e0.get(a0);if(v(S9))S9=new H,e0.set(a0,S9);S9.set(z1,o1)}return!0}}function Q1(){var c;if(!v(O)&&J0(G.Reflect)&&Object.isExtensible(G.Reflect))c=G.Reflect[O];if(v(c))c=C1();if(!v(O)&&J0(G.Reflect)&&Object.isExtensible(G.Reflect))Object.defineProperty(G.Reflect,O,{enumerable:!1,configurable:!1,writable:!1,value:c});return c}function Y0(c){var W0=new w,q0={isProviderFor:function(p0,o0){var a0=W0.get(p0);if(v(a0))return!1;return a0.has(o0)},OrdinaryDefineOwnMetadata:I8,OrdinaryHasOwnMetadata:e0,OrdinaryGetOwnMetadata:q8,OrdinaryOwnMetadataKeys:M1,OrdinaryDeleteMetadata:_0};return T.registerProvider(q0),q0;function T0(p0,o0,a0){var z1=W0.get(p0),o1=!1;if(v(z1)){if(!a0)return;z1=new H,W0.set(p0,z1),o1=!0}var Z8=z1.get(o0);if(v(Z8)){if(!a0)return;if(Z8=new H,z1.set(o0,Z8),!c.setProvider(p0,o0,q0)){if(z1.delete(o0),o1)W0.delete(p0);throw Error("Wrong provider for target.")}}return Z8}function e0(p0,o0,a0){var z1=T0(o0,a0,!1);if(v(z1))return!1;return $0(z1.has(p0))}function q8(p0,o0,a0){var z1=T0(o0,a0,!1);if(v(z1))return;return z1.get(p0)}function I8(p0,o0,a0,z1){var o1=T0(a0,z1,!0);o1.set(p0,o0)}function M1(p0,o0){var a0=[],z1=T0(p0,o0,!1);if(v(z1))return a0;var o1=z1.keys(),Z8=m0(o1),S9=0;while(!0){var pX=K0(Z8);if(!pX)return a0.length=S9,a0;var yU=G0(pX);try{a0[S9]=yU}catch(HA){try{P0(Z8)}finally{throw HA}}S9++}}function _0(p0,o0,a0){var z1=T0(o0,a0,!1);if(v(z1))return!1;if(!z1.delete(p0))return!1;if(z1.size===0){var o1=W0.get(o0);if(!v(o1)){if(o1.delete(a0),o1.size===0)W0.delete(o1)}}return!0}}function B0(c){var{defineMetadata:W0,hasOwnMetadata:q0,getOwnMetadata:T0,getOwnMetadataKeys:e0,deleteMetadata:q8}=c,I8=new w,M1={isProviderFor:function(_0,p0){var o0=I8.get(_0);if(!v(o0)&&o0.has(p0))return!0;if(e0(_0,p0).length){if(v(o0))o0=new I,I8.set(_0,o0);return o0.add(p0),!0}return!1},OrdinaryDefineOwnMetadata:W0,OrdinaryHasOwnMetadata:q0,OrdinaryGetOwnMetadata:T0,OrdinaryOwnMetadataKeys:e0,OrdinaryDeleteMetadata:q8};return M1}function F0(c,W0,q0){var T0=T.getProvider(c,W0);if(!v(T0))return T0;if(q0){if(T.setProvider(c,W0,x))return x;throw Error("Illegal state.")}return}function F1(){var c={},W0=[],q0=function(){function M1(_0,p0,o0){this._index=0,this._keys=_0,this._values=p0,this._selector=o0}return M1.prototype["@@iterator"]=function(){return this},M1.prototype[V]=function(){return this},M1.prototype.next=function(){var _0=this._index;if(_0>=0&&_0<this._keys.length){var p0=this._selector(this._keys[_0],this._values[_0]);if(_0+1>=this._keys.length)this._index=-1,this._keys=W0,this._values=W0;else this._index++;return{value:p0,done:!1}}return{value:void 0,done:!0}},M1.prototype.throw=function(_0){if(this._index>=0)this._index=-1,this._keys=W0,this._values=W0;throw _0},M1.prototype.return=function(_0){if(this._index>=0)this._index=-1,this._keys=W0,this._values=W0;return{value:_0,done:!0}},M1}(),T0=function(){function M1(){this._keys=[],this._values=[],this._cacheKey=c,this._cacheIndex=-2}return Object.defineProperty(M1.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),M1.prototype.has=function(_0){return this._find(_0,!1)>=0},M1.prototype.get=function(_0){var p0=this._find(_0,!1);return p0>=0?this._values[p0]:void 0},M1.prototype.set=function(_0,p0){var o0=this._find(_0,!0);return this._values[o0]=p0,this},M1.prototype.delete=function(_0){var p0=this._find(_0,!1);if(p0>=0){var o0=this._keys.length;for(var a0=p0+1;a0<o0;a0++)this._keys[a0-1]=this._keys[a0],this._values[a0-1]=this._values[a0];if(this._keys.length--,this._values.length--,Q0(_0,this._cacheKey))this._cacheKey=c,this._cacheIndex=-2;return!0}return!1},M1.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=c,this._cacheIndex=-2},M1.prototype.keys=function(){return new q0(this._keys,this._values,e0)},M1.prototype.values=function(){return new q0(this._keys,this._values,q8)},M1.prototype.entries=function(){return new q0(this._keys,this._values,I8)},M1.prototype["@@iterator"]=function(){return this.entries()},M1.prototype[V]=function(){return this.entries()},M1.prototype._find=function(_0,p0){if(!Q0(this._cacheKey,_0)){this._cacheIndex=-1;for(var o0=0;o0<this._keys.length;o0++)if(Q0(this._keys[o0],_0)){this._cacheIndex=o0;break}}if(this._cacheIndex<0&&p0)this._cacheIndex=this._keys.length,this._keys.push(_0),this._values.push(void 0);return this._cacheIndex},M1}();return T0;function e0(M1,_0){return M1}function q8(M1,_0){return _0}function I8(M1,_0){return[M1,_0]}}function W8(){var c=function(){function W0(){this._map=new H}return Object.defineProperty(W0.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),W0.prototype.has=function(q0){return this._map.has(q0)},W0.prototype.add=function(q0){return this._map.set(q0,q0),this},W0.prototype.delete=function(q0){return this._map.delete(q0)},W0.prototype.clear=function(){this._map.clear()},W0.prototype.keys=function(){return this._map.keys()},W0.prototype.values=function(){return this._map.keys()},W0.prototype.entries=function(){return this._map.entries()},W0.prototype["@@iterator"]=function(){return this.keys()},W0.prototype[V]=function(){return this.keys()},W0}();return c}function T1(){var c=16,W0=q.create(),q0=T0();return function(){function _0(){this._key=T0()}return _0.prototype.has=function(p0){var o0=e0(p0,!1);return o0!==void 0?q.has(o0,this._key):!1},_0.prototype.get=function(p0){var o0=e0(p0,!1);return o0!==void 0?q.get(o0,this._key):void 0},_0.prototype.set=function(p0,o0){var a0=e0(p0,!0);return a0[this._key]=o0,this},_0.prototype.delete=function(p0){var o0=e0(p0,!1);return o0!==void 0?delete o0[this._key]:!1},_0.prototype.clear=function(){this._key=T0()},_0}();function T0(){var _0;do _0="@@WeakMap@@"+M1();while(q.has(W0,_0));return W0[_0]=!0,_0}function e0(_0,p0){if(!Y.call(_0,q0)){if(!p0)return;Object.defineProperty(_0,q0,{value:q.create()})}return _0[q0]}function q8(_0,p0){for(var o0=0;o0<p0;++o0)_0[o0]=Math.random()*255|0;return _0}function I8(_0){if(typeof Uint8Array==="function"){var p0=new Uint8Array(_0);if(typeof crypto<"u")crypto.getRandomValues(p0);else if(typeof msCrypto<"u")msCrypto.getRandomValues(p0);else q8(p0,_0);return p0}return q8(Array(_0),_0)}function M1(){var _0=I8(c);_0[6]=_0[6]&79|64,_0[8]=_0[8]&191|128;var p0="";for(var o0=0;o0<c;++o0){var a0=_0[o0];if(o0===4||o0===6||o0===8)p0+="-";if(a0<16)p0+="0";p0+=a0.toString(16).toLowerCase()}return p0}}function H1(c){return c.__=void 0,delete c.__,c}})})(hM||(hM={}))});var qR=V1((y10,UN)=>{var gP,uP,hP,bP,mP,fP,pP,cP,lP,dP,oP,nP,iP,ZN,AI,rP,aP,sP,xG,tP,eP,WR,XR,GR,YR,JR,ZR,VR,VN,UR,QR,NR;(function(W){var X=typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:{};if(typeof define==="function"&&define.amd)define("tslib",["exports"],function(Y){W(G(X,G(Y)))});else if(typeof UN==="object"&&typeof y10==="object")W(G(X,G(y10)));else W(G(X));function G(Y,J){if(Y!==X)if(typeof Object.create==="function")Object.defineProperty(Y,"__esModule",{value:!0});else Y.__esModule=!0;return function(Z,V){return Y[Z]=J?J(Z,V):V}}})(function(W){var X=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(Z,V){Z.__proto__=V}||function(Z,V){for(var U in V)if(Object.prototype.hasOwnProperty.call(V,U))Z[U]=V[U]};gP=function(Z,V){if(typeof V!=="function"&&V!==null)throw TypeError("Class extends value "+String(V)+" is not a constructor or null");X(Z,V);function U(){this.constructor=Z}Z.prototype=V===null?Object.create(V):(U.prototype=V.prototype,new U)},uP=Object.assign||function(Z){for(var V,U=1,Q=arguments.length;U<Q;U++){V=arguments[U];for(var N in V)if(Object.prototype.hasOwnProperty.call(V,N))Z[N]=V[N]}return Z},hP=function(Z,V){var U={};for(var Q in Z)if(Object.prototype.hasOwnProperty.call(Z,Q)&&V.indexOf(Q)<0)U[Q]=Z[Q];if(Z!=null&&typeof Object.getOwnPropertySymbols==="function"){for(var N=0,Q=Object.getOwnPropertySymbols(Z);N<Q.length;N++)if(V.indexOf(Q[N])<0&&Object.prototype.propertyIsEnumerable.call(Z,Q[N]))U[Q[N]]=Z[Q[N]]}return U},bP=function(Z,V,U,Q){var N=arguments.length,q=N<3?V:Q===null?Q=Object.getOwnPropertyDescriptor(V,U):Q,A;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")q=Reflect.decorate(Z,V,U,Q);else for(var H=Z.length-1;H>=0;H--)if(A=Z[H])q=(N<3?A(q):N>3?A(V,U,q):A(V,U))||q;return N>3&&q&&Object.defineProperty(V,U,q),q},mP=function(Z,V){return function(U,Q){V(U,Q,Z)}},fP=function(Z,V,U,Q,N,q){function A(l){if(l!==void 0&&typeof l!=="function")throw TypeError("Function expected");return l}var H=Q.kind,I=H==="getter"?"get":H==="setter"?"set":"value",w=!V&&Z?Q.static?Z:Z.prototype:null,O=V||(w?Object.getOwnPropertyDescriptor(w,Q.name):{}),T,x=!1;for(var u=U.length-1;u>=0;u--){var $={};for(var S in Q)$[S]=S==="access"?{}:Q[S];for(var S in Q.access)$.access[S]=Q.access[S];$.addInitializer=function(l){if(x)throw TypeError("Cannot add initializers after decoration has completed");q.push(A(l||null))};var h=(0,U[u])(H==="accessor"?{get:O.get,set:O.set}:O[I],$);if(H==="accessor"){if(h===void 0)continue;if(h===null||typeof h!=="object")throw TypeError("Object expected");if(T=A(h.get))O.get=T;if(T=A(h.set))O.set=T;if(T=A(h.init))N.unshift(T)}else if(T=A(h))if(H==="field")N.unshift(T);else O[I]=T}if(w)Object.defineProperty(w,Q.name,O);x=!0},pP=function(Z,V,U){var Q=arguments.length>2;for(var N=0;N<V.length;N++)U=Q?V[N].call(Z,U):V[N].call(Z);return Q?U:void 0},cP=function(Z){return typeof Z==="symbol"?Z:"".concat(Z)},lP=function(Z,V,U){if(typeof V==="symbol")V=V.description?"[".concat(V.description,"]"):"";return Object.defineProperty(Z,"name",{configurable:!0,value:U?"".concat(U," ",V):V})},dP=function(Z,V){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(Z,V)},oP=function(Z,V,U,Q){function N(q){return q instanceof U?q:new U(function(A){A(q)})}return new(U||(U=Promise))(function(q,A){function H(O){try{w(Q.next(O))}catch(T){A(T)}}function I(O){try{w(Q.throw(O))}catch(T){A(T)}}function w(O){O.done?q(O.value):N(O.value).then(H,I)}w((Q=Q.apply(Z,V||[])).next())})},nP=function(Z,V){var U={label:0,sent:function(){if(q[0]&1)throw q[1];return q[1]},trys:[],ops:[]},Q,N,q,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(O){return I([w,O])}}function I(w){if(Q)throw TypeError("Generator is already executing.");while(A&&(A=0,w[0]&&(U=0)),U)try{if(Q=1,N&&(q=w[0]&2?N.return:w[0]?N.throw||((q=N.return)&&q.call(N),0):N.next)&&!(q=q.call(N,w[1])).done)return q;if(N=0,q)w=[w[0]&2,q.value];switch(w[0]){case 0:case 1:q=w;break;case 4:return U.label++,{value:w[1],done:!1};case 5:U.label++,N=w[1],w=[0];continue;case 7:w=U.ops.pop(),U.trys.pop();continue;default:if((q=U.trys,!(q=q.length>0&&q[q.length-1]))&&(w[0]===6||w[0]===2)){U=0;continue}if(w[0]===3&&(!q||w[1]>q[0]&&w[1]<q[3])){U.label=w[1];break}if(w[0]===6&&U.label<q[1]){U.label=q[1],q=w;break}if(q&&U.label<q[2]){U.label=q[2],U.ops.push(w);break}if(q[2])U.ops.pop();U.trys.pop();continue}w=V.call(Z,U)}catch(O){w=[6,O],N=0}finally{Q=q=0}if(w[0]&5)throw w[1];return{value:w[0]?w[1]:void 0,done:!0}}},iP=function(Z,V){for(var U in Z)if(U!=="default"&&!Object.prototype.hasOwnProperty.call(V,U))VN(V,Z,U)},VN=Object.create?function(Z,V,U,Q){if(Q===void 0)Q=U;var N=Object.getOwnPropertyDescriptor(V,U);if(!N||("get"in N?!V.__esModule:N.writable||N.configurable))N={enumerable:!0,get:function(){return V[U]}};Object.defineProperty(Z,Q,N)}:function(Z,V,U,Q){if(Q===void 0)Q=U;Z[Q]=V[U]},ZN=function(Z){var V=typeof Symbol==="function"&&Symbol.iterator,U=V&&Z[V],Q=0;if(U)return U.call(Z);if(Z&&typeof Z.length==="number")return{next:function(){if(Z&&Q>=Z.length)Z=void 0;return{value:Z&&Z[Q++],done:!Z}}};throw TypeError(V?"Object is not iterable.":"Symbol.iterator is not defined.")},AI=function(Z,V){var U=typeof Symbol==="function"&&Z[Symbol.iterator];if(!U)return Z;var Q=U.call(Z),N,q=[],A;try{while((V===void 0||V-- >0)&&!(N=Q.next()).done)q.push(N.value)}catch(H){A={error:H}}finally{try{if(N&&!N.done&&(U=Q.return))U.call(Q)}finally{if(A)throw A.error}}return q},rP=function(){for(var Z=[],V=0;V<arguments.length;V++)Z=Z.concat(AI(arguments[V]));return Z},aP=function(){for(var Z=0,V=0,U=arguments.length;V<U;V++)Z+=arguments[V].length;for(var Q=Array(Z),N=0,V=0;V<U;V++)for(var q=arguments[V],A=0,H=q.length;A<H;A++,N++)Q[N]=q[A];return Q},sP=function(Z,V,U){if(U||arguments.length===2){for(var Q=0,N=V.length,q;Q<N;Q++)if(q||!(Q in V)){if(!q)q=Array.prototype.slice.call(V,0,Q);q[Q]=V[Q]}}return Z.concat(q||Array.prototype.slice.call(V))},xG=function(Z){return this instanceof xG?(this.v=Z,this):new xG(Z)},tP=function(Z,V,U){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var Q=U.apply(Z,V||[]),N,q=[];return N=Object.create((typeof AsyncIterator==="function"?AsyncIterator:Object).prototype),H("next"),H("throw"),H("return",A),N[Symbol.asyncIterator]=function(){return this},N;function A(u){return function($){return Promise.resolve($).then(u,T)}}function H(u,$){if(Q[u]){if(N[u]=function(S){return new Promise(function(h,l){q.push([u,S,h,l])>1||I(u,S)})},$)N[u]=$(N[u])}}function I(u,$){try{w(Q[u]($))}catch(S){x(q[0][3],S)}}function w(u){u.value instanceof xG?Promise.resolve(u.value.v).then(O,T):x(q[0][2],u)}function O(u){I("next",u)}function T(u){I("throw",u)}function x(u,$){if(u($),q.shift(),q.length)I(q[0][0],q[0][1])}},eP=function(Z){var V,U;return V={},Q("next"),Q("throw",function(N){throw N}),Q("return"),V[Symbol.iterator]=function(){return this},V;function Q(N,q){V[N]=Z[N]?function(A){return(U=!U)?{value:xG(Z[N](A)),done:!1}:q?q(A):A}:q}},WR=function(Z){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var V=Z[Symbol.asyncIterator],U;return V?V.call(Z):(Z=typeof ZN==="function"?ZN(Z):Z[Symbol.iterator](),U={},Q("next"),Q("throw"),Q("return"),U[Symbol.asyncIterator]=function(){return this},U);function Q(q){U[q]=Z[q]&&function(A){return new Promise(function(H,I){A=Z[q](A),N(H,I,A.done,A.value)})}}function N(q,A,H,I){Promise.resolve(I).then(function(w){q({value:w,done:H})},A)}},XR=function(Z,V){if(Object.defineProperty)Object.defineProperty(Z,"raw",{value:V});else Z.raw=V;return Z};var G=Object.create?function(Z,V){Object.defineProperty(Z,"default",{enumerable:!0,value:V})}:function(Z,V){Z.default=V},Y=function(Z){return Y=Object.getOwnPropertyNames||function(V){var U=[];for(var Q in V)if(Object.prototype.hasOwnProperty.call(V,Q))U[U.length]=Q;return U},Y(Z)};GR=function(Z){if(Z&&Z.__esModule)return Z;var V={};if(Z!=null){for(var U=Y(Z),Q=0;Q<U.length;Q++)if(U[Q]!=="default")VN(V,Z,U[Q])}return G(V,Z),V},YR=function(Z){return Z&&Z.__esModule?Z:{default:Z}},JR=function(Z,V,U,Q){if(U==="a"&&!Q)throw TypeError("Private accessor was defined without a getter");if(typeof V==="function"?Z!==V||!Q:!V.has(Z))throw TypeError("Cannot read private member from an object whose class did not declare it");return U==="m"?Q:U==="a"?Q.call(Z):Q?Q.value:V.get(Z)},ZR=function(Z,V,U,Q,N){if(Q==="m")throw TypeError("Private method is not writable");if(Q==="a"&&!N)throw TypeError("Private accessor was defined without a setter");if(typeof V==="function"?Z!==V||!N:!V.has(Z))throw TypeError("Cannot write private member to an object whose class did not declare it");return Q==="a"?N.call(Z,U):N?N.value=U:V.set(Z,U),U},VR=function(Z,V){if(V===null||typeof V!=="object"&&typeof V!=="function")throw TypeError("Cannot use 'in' operator on non-object");return typeof Z==="function"?V===Z:Z.has(V)},UR=function(Z,V,U){if(V!==null&&V!==void 0){if(typeof V!=="object"&&typeof V!=="function")throw TypeError("Object expected.");var Q,N;if(U){if(!Symbol.asyncDispose)throw TypeError("Symbol.asyncDispose is not defined.");Q=V[Symbol.asyncDispose]}if(Q===void 0){if(!Symbol.dispose)throw TypeError("Symbol.dispose is not defined.");if(Q=V[Symbol.dispose],U)N=Q}if(typeof Q!=="function")throw TypeError("Object not disposable.");if(N)Q=function(){try{N.call(this)}catch(q){return Promise.reject(q)}};Z.stack.push({value:V,dispose:Q,async:U})}else if(U)Z.stack.push({async:!0});return V};var J=typeof SuppressedError==="function"?SuppressedError:function(Z,V,U){var Q=Error(U);return Q.name="SuppressedError",Q.error=Z,Q.suppressed=V,Q};QR=function(Z){function V(q){Z.error=Z.hasError?new J(q,Z.error,"An error was suppressed during disposal."):q,Z.hasError=!0}var U,Q=0;function N(){while(U=Z.stack.pop())try{if(!U.async&&Q===1)return Q=0,Z.stack.push(U),Promise.resolve().then(N);if(U.dispose){var q=U.dispose.call(U.value);if(U.async)return Q|=2,Promise.resolve(q).then(N,function(A){return V(A),N()})}else Q|=1}catch(A){V(A)}if(Q===1)return Z.hasError?Promise.reject(Z.error):Promise.resolve();if(Z.hasError)throw Z.error}return N()},NR=function(Z,V){if(typeof Z==="string"&&/^\.\.?\//.test(Z))return Z.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(U,Q,N,q,A){return Q?V?".jsx":".js":N&&(!q||!A)?U:N+q+"."+A.toLowerCase()+"js"});return Z},W("__extends",gP),W("__assign",uP),W("__rest",hP),W("__decorate",bP),W("__param",mP),W("__esDecorate",fP),W("__runInitializers",pP),W("__propKey",cP),W("__setFunctionName",lP),W("__metadata",dP),W("__awaiter",oP),W("__generator",nP),W("__exportStar",iP),W("__createBinding",VN),W("__values",ZN),W("__read",AI),W("__spread",rP),W("__spreadArrays",aP),W("__spreadArray",sP),W("__await",xG),W("__asyncGenerator",tP),W("__asyncDelegator",eP),W("__asyncValues",WR),W("__makeTemplateObject",XR),W("__importStar",GR),W("__importDefault",YR),W("__classPrivateFieldGet",JR),W("__classPrivateFieldSet",ZR),W("__classPrivateFieldIn",VR),W("__addDisposableResource",UR),W("__disposeResources",QR),W("__rewriteRelativeImportExtension",NR)})});var TL=V1((nJ0,lN)=>{/*! *****************************************************************************
|
|
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
|
-
`),Qq.prototype[W]=X.toFunction({assertSize:Rj})});HE.exports=Qq;function Rj(W,X){if(W>X)throw new sc(W,X)}});var D8=V1((Qq0,CE)=>{var Lj=wV(),tc=lB(),ec=iB(),Wl=aB(),Xl=tB(),Gl=XE(),zE=YE(),Yl=ZE(),Jl=QE(),{encode:jE}=KV(),{decode:KE}=wY(),{encodingLength:Zl}=OV(),Vl=AE(),OE=zY(),DE={array:tc,bool:Wl,buffer:ec,reserved:Xl,string:Gl,when:Yl,select:Jl};for(let W of Object.keys(zE))DE[W]=zE[W];var Nq=Symbol("schema");function IE(W){let X=new Lj({readableObjectMode:!1,writableObjectMode:!0,transform:Ul});return X[Nq]=W,X}function wE(W){let X=null,G=Buffer.isBuffer(W);if(!G)X=W;let Y=new Lj({transform:Ql,readableObjectMode:!0,writableObjectMode:!1});if(Y[Nq]=X,G)Y.append(W);return Y}function Ul(W,X,G){try{jE(W,this[Nq],this);let Y=this.slice();this.consume(Y.length),G(null,Y)}catch(Y){G(Y)}}function Ql(W,X,G){this.append(W);try{while(this.length>0){let Y=new Vl(this),J=KE(Y,this[Nq]);Y.commit(),this.push(J)}G()}catch(Y){if(Y instanceof OE)G();else G(Y)}}CE.exports={createEncodeStream:IE,createDecodeStream:wE,encode:jE,decode:KE,encodingLength:Zl,createEncode:IE,createDecode:wE,types:DE,BinaryStream:Lj,NotEnoughDataError:OE}});var D$=V1((K$)=>{Object.defineProperty(K$,"__esModule",{value:!0});K$.LEB128=K$.SignedLEB128=K$.UnsignedLEB128=void 0;var MY;(function(W){W[W.LOWER_7=127]="LOWER_7",W[W.UPPER_1=128]="UPPER_1"})(MY||(MY={}));var j$=(W)=>Number.isSafeInteger(W);class PY{static decode(W,X=0){let G=this.$scanForNullBytes(W,X),Y=0,J=0;for(let Z=0;Z<=G-X;Z++){let V=W[X+Z]&MY.LOWER_7;Y|=V<<J,J+=7}return Y}static encode(W){if(this.check(W),W<0)throw Error(`An unsigned number must NOT be negative, ${W} is!`);let X=[],G=W;do{let Y=G&MY.LOWER_7;if(G>>=7,G)Y=Y|MY.UPPER_1;X.push(Y)}while(G);return Uint8Array.from(X)}static check(W){if(!j$(W))throw Error(`${W} is not a safe integer!`)}static $scanForNullBytes(W,X=0){let G=X,Y=0;do{if(G>=W.byteLength)throw Error("This is not a LEB128-encoded Uint8Array, no ending found!");Y=W.slice(G,G+1)[0],G++}while(Y&MY.UPPER_1);return G-1}static getLength(W,X=0){return this.$scanForNullBytes(W,X)-X}}K$.UnsignedLEB128=PY;class Pq{static $ceil7mul(W){let X=W;while(X%7)X++;return X}static check(W){if(!j$(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 X=Math.ceil(Math.log2(-W));return PY.encode((1<<this.$ceil7mul(X))+W)}static decode(W,X=0){let G=PY.decode(W,X);return-((1<<Math.ceil(Math.log2(G)))-G)}}K$.SignedLEB128=Pq;class Rq{}K$.LEB128=Rq;Rq.encode=(W)=>(W>=0?PY:Pq).encode(W);Rq.decode=(W,X=0,G=!1)=>(G?Pq:PY).decode(W,X)});var T$=V1((oj,C$)=>{/*! MIT License. Copyright 2015-2018 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */(function(W){function X(E){return parseInt(E)===E}function G(E){if(!X(E.length))return!1;for(var S=0;S<E.length;S++)if(!X(E[S])||E[S]<0||E[S]>255)return!1;return!0}function Y(E,S){if(E.buffer&&E.name==="Uint8Array"){if(S)if(E.slice)E=E.slice();else E=Array.prototype.slice.call(E);return E}if(Array.isArray(E)){if(!G(E))throw Error("Array contains invalid value: "+E);return new Uint8Array(E)}if(X(E.length)&&G(E))return new Uint8Array(E);throw Error("unsupported array-like object")}function J(E){return new Uint8Array(E)}function Z(E,S,_,v,L){if(v!=null||L!=null)if(E.slice)E=E.slice(v,L);else E=Array.prototype.slice.call(E,v,L);S.set(E,_)}var V=function(){function E(_){var v=[],L=0;_=encodeURI(_);while(L<_.length){var b=_.charCodeAt(L++);if(b===37)v.push(parseInt(_.substr(L,2),16)),L+=2;else v.push(b)}return Y(v)}function S(_){var v=[],L=0;while(L<_.length){var b=_[L];if(b<128)v.push(String.fromCharCode(b)),L++;else if(b>191&&b<224)v.push(String.fromCharCode((b&31)<<6|_[L+1]&63)),L+=2;else v.push(String.fromCharCode((b&15)<<12|(_[L+1]&63)<<6|_[L+2]&63)),L+=3}return v.join("")}return{toBytes:E,fromBytes:S}}(),U=function(){function E(v){var L=[];for(var b=0;b<v.length;b+=2)L.push(parseInt(v.substr(b,2),16));return L}var S="0123456789abcdef";function _(v){var L=[];for(var b=0;b<v.length;b++){var J0=v[b];L.push(S[(J0&240)>>4]+S[J0&15])}return L.join("")}return{toBytes:E,fromBytes:_}}(),Q={16:10,24:12,32:14},N=[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],q=[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],O=[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],T=[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],P=[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],u=[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],F=[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],m=[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],l=[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(E){var S=[];for(var _=0;_<E.length;_+=4)S.push(E[_]<<24|E[_+1]<<16|E[_+2]<<8|E[_+3]);return S}var y=function(E){if(!(this instanceof y))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:Y(E,!0)}),this._prepare()};y.prototype._prepare=function(){var E=Q[this.key.length];if(E==null)throw Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var S=0;S<=E;S++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var _=(E+1)*4,v=this.key.length/4,L=W0(this.key),b;for(var S=0;S<v;S++)b=S>>2,this._Ke[b][S%4]=L[S],this._Kd[E-b][S%4]=L[S];var J0=0,U0=v,N0;while(U0<_){if(N0=L[v-1],L[0]^=q[N0>>16&255]<<24^q[N0>>8&255]<<16^q[N0&255]<<8^q[N0>>24&255]^N[J0]<<24,J0+=1,v!=8)for(var S=1;S<v;S++)L[S]^=L[S-1];else{for(var S=1;S<v/2;S++)L[S]^=L[S-1];N0=L[v/2-1],L[v/2]^=q[N0&255]^q[N0>>8&255]<<8^q[N0>>16&255]<<16^q[N0>>24&255]<<24;for(var S=v/2+1;S<v;S++)L[S]^=L[S-1]}var S=0,$0,u0;while(S<v&&U0<_)$0=U0>>2,u0=U0%4,this._Ke[$0][u0]=L[S],this._Kd[E-$0][u0]=L[S++],U0++}for(var $0=1;$0<E;$0++)for(var u0=0;u0<4;u0++)N0=this._Kd[$0][u0],this._Kd[$0][u0]=F[N0>>24&255]^m[N0>>16&255]^l[N0>>8&255]^p[N0&255]},y.prototype.encrypt=function(E){if(E.length!=16)throw Error("invalid plaintext size (must be 16 bytes)");var S=this._Ke.length-1,_=[0,0,0,0],v=W0(E);for(var L=0;L<4;L++)v[L]^=this._Ke[0][L];for(var b=1;b<S;b++){for(var L=0;L<4;L++)_[L]=H[v[L]>>24&255]^I[v[(L+1)%4]>>16&255]^w[v[(L+2)%4]>>8&255]^O[v[(L+3)%4]&255]^this._Ke[b][L];v=_.slice()}var J0=J(16),U0;for(var L=0;L<4;L++)U0=this._Ke[S][L],J0[4*L]=(q[v[L]>>24&255]^U0>>24)&255,J0[4*L+1]=(q[v[(L+1)%4]>>16&255]^U0>>16)&255,J0[4*L+2]=(q[v[(L+2)%4]>>8&255]^U0>>8)&255,J0[4*L+3]=(q[v[(L+3)%4]&255]^U0)&255;return J0},y.prototype.decrypt=function(E){if(E.length!=16)throw Error("invalid ciphertext size (must be 16 bytes)");var S=this._Kd.length-1,_=[0,0,0,0],v=W0(E);for(var L=0;L<4;L++)v[L]^=this._Kd[0][L];for(var b=1;b<S;b++){for(var L=0;L<4;L++)_[L]=T[v[L]>>24&255]^x[v[(L+3)%4]>>16&255]^P[v[(L+2)%4]>>8&255]^u[v[(L+1)%4]&255]^this._Kd[b][L];v=_.slice()}var J0=J(16),U0;for(var L=0;L<4;L++)U0=this._Kd[S][L],J0[4*L]=(A[v[L]>>24&255]^U0>>24)&255,J0[4*L+1]=(A[v[(L+3)%4]>>16&255]^U0>>16)&255,J0[4*L+2]=(A[v[(L+2)%4]>>8&255]^U0>>8)&255,J0[4*L+3]=(A[v[(L+1)%4]&255]^U0)&255;return J0};var e=function(E){if(!(this instanceof e))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new y(E)};e.prototype.encrypt=function(E){if(E=Y(E),E.length%16!==0)throw Error("invalid plaintext size (must be multiple of 16 bytes)");var S=J(E.length),_=J(16);for(var v=0;v<E.length;v+=16)Z(E,_,0,v,v+16),_=this._aes.encrypt(_),Z(_,S,v);return S},e.prototype.decrypt=function(E){if(E=Y(E),E.length%16!==0)throw Error("invalid ciphertext size (must be multiple of 16 bytes)");var S=J(E.length),_=J(16);for(var v=0;v<E.length;v+=16)Z(E,_,0,v,v+16),_=this._aes.decrypt(_),Z(_,S,v);return S};var H0=function(E,S){if(!(this instanceof H0))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",!S)S=J(16);else if(S.length!=16)throw Error("invalid initialation vector size (must be 16 bytes)");this._lastCipherblock=Y(S,!0),this._aes=new y(E)};H0.prototype.encrypt=function(E){if(E=Y(E),E.length%16!==0)throw Error("invalid plaintext size (must be multiple of 16 bytes)");var S=J(E.length),_=J(16);for(var v=0;v<E.length;v+=16){Z(E,_,0,v,v+16);for(var L=0;L<16;L++)_[L]^=this._lastCipherblock[L];this._lastCipherblock=this._aes.encrypt(_),Z(this._lastCipherblock,S,v)}return S},H0.prototype.decrypt=function(E){if(E=Y(E),E.length%16!==0)throw Error("invalid ciphertext size (must be multiple of 16 bytes)");var S=J(E.length),_=J(16);for(var v=0;v<E.length;v+=16){Z(E,_,0,v,v+16),_=this._aes.decrypt(_);for(var L=0;L<16;L++)S[v+L]=_[L]^this._lastCipherblock[L];Z(E,this._lastCipherblock,0,v,v+16)}return S};var g=function(E,S,_){if(!(this instanceof g))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",!S)S=J(16);else if(S.length!=16)throw Error("invalid initialation vector size (must be 16 size)");if(!_)_=1;this.segmentSize=_,this._shiftRegister=Y(S,!0),this._aes=new y(E)};g.prototype.encrypt=function(E){if(E.length%this.segmentSize!=0)throw Error("invalid plaintext size (must be segmentSize bytes)");var S=Y(E,!0),_;for(var v=0;v<S.length;v+=this.segmentSize){_=this._aes.encrypt(this._shiftRegister);for(var L=0;L<this.segmentSize;L++)S[v+L]^=_[L];Z(this._shiftRegister,this._shiftRegister,0,this.segmentSize),Z(S,this._shiftRegister,16-this.segmentSize,v,v+this.segmentSize)}return S},g.prototype.decrypt=function(E){if(E.length%this.segmentSize!=0)throw Error("invalid ciphertext size (must be segmentSize bytes)");var S=Y(E,!0),_;for(var v=0;v<S.length;v+=this.segmentSize){_=this._aes.encrypt(this._shiftRegister);for(var L=0;L<this.segmentSize;L++)S[v+L]^=_[L];Z(this._shiftRegister,this._shiftRegister,0,this.segmentSize),Z(E,this._shiftRegister,16-this.segmentSize,v,v+this.segmentSize)}return S};var d=function(E,S){if(!(this instanceof d))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",!S)S=J(16);else if(S.length!=16)throw Error("invalid initialation vector size (must be 16 bytes)");this._lastPrecipher=Y(S,!0),this._lastPrecipherIndex=16,this._aes=new y(E)};d.prototype.encrypt=function(E){var S=Y(E,!0);for(var _=0;_<S.length;_++){if(this._lastPrecipherIndex===16)this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0;S[_]^=this._lastPrecipher[this._lastPrecipherIndex++]}return S},d.prototype.decrypt=d.prototype.encrypt;var R=function(E){if(!(this instanceof R))throw Error("Counter must be instanitated with `new`");if(E!==0&&!E)E=1;if(typeof E==="number")this._counter=J(16),this.setValue(E);else this.setBytes(E)};R.prototype.setValue=function(E){if(typeof E!=="number"||parseInt(E)!=E)throw Error("invalid counter value (must be an integer)");if(E>Number.MAX_SAFE_INTEGER)throw Error("integer value out of safe range");for(var S=15;S>=0;--S)this._counter[S]=E%256,E=parseInt(E/256)},R.prototype.setBytes=function(E){if(E=Y(E,!0),E.length!=16)throw Error("invalid counter bytes size (must be 16 bytes)");this._counter=E},R.prototype.increment=function(){for(var E=15;E>=0;E--)if(this._counter[E]===255)this._counter[E]=0;else{this._counter[E]++;break}};var $=function(E,S){if(!(this instanceof $))throw Error("AES must be instanitated with `new`");if(this.description="Counter",this.name="ctr",!(S instanceof R))S=new R(S);this._counter=S,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new y(E)};$.prototype.encrypt=function(E){var S=Y(E,!0);for(var _=0;_<S.length;_++){if(this._remainingCounterIndex===16)this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment();S[_]^=this._remainingCounter[this._remainingCounterIndex++]}return S},$.prototype.decrypt=$.prototype.encrypt;function f(E){E=Y(E,!0);var S=16-E.length%16,_=J(E.length+S);Z(E,_);for(var v=E.length;v<_.length;v++)_[v]=S;return _}function r(E){if(E=Y(E,!0),E.length<16)throw Error("PKCS#7 invalid length");var S=E[E.length-1];if(S>16)throw Error("PKCS#7 padding byte out of range");var _=E.length-S;for(var v=0;v<S;v++)if(E[_+v]!==S)throw Error("PKCS#7 invalid padding byte");var L=J(_);return Z(E,L,0,0,_),L}var o={AES:y,Counter:R,ModeOfOperation:{ecb:e,cbc:H0,cfb:g,ofb:d,ctr:$},utils:{hex:U,utf8:V},padding:{pkcs7:{pad:f,strip:r}},_arrayTest:{coerceArray:Y,createArray:J,copyArray:Z}};if(typeof oj<"u")C$.exports=o;else if(typeof define==="function"&&define.amd)define([],function(){return o});else{if(W.aesjs)o._aesjs=W.aesjs;W.aesjs=o}})(oj)});var aj=V1((E$)=>{var G1=E$,{Buffer:$q}=_8("buffer"),nl=_8("os");G1.toBuffer=function(W,X,G){G=~~G;let Y;if(this.isV4Format(W))Y=X||$q.alloc(G+4),W.split(/\./g).map((J)=>{Y[G++]=parseInt(J,10)&255});else if(this.isV6Format(W)){let J=W.split(":",8),Z;for(Z=0;Z<J.length;Z++){let V=this.isV4Format(J[Z]),U;if(V)U=this.toBuffer(J[Z]),J[Z]=U.slice(0,2).toString("hex");if(U&&++Z<8)J.splice(Z,0,U.slice(2,4).toString("hex"))}if(J[0]==="")while(J.length<8)J.unshift("0");else if(J[J.length-1]==="")while(J.length<8)J.push("0");else if(J.length<8){for(Z=0;Z<J.length&&J[Z]!=="";Z++);let V=[Z,1];for(Z=9-J.length;Z>0;Z--)V.push("0");J.splice(...V)}Y=X||$q.alloc(G+16);for(Z=0;Z<J.length;Z++){let V=parseInt(J[Z],16);Y[G++]=V>>8&255,Y[G++]=V&255}}if(!Y)throw Error(`Invalid ip address: ${W}`);return Y};G1.toString=function(W,X,G){X=~~X,G=G||W.length-X;let Y=[];if(G===4){for(let J=0;J<G;J++)Y.push(W[X+J]);Y=Y.join(".")}else if(G===16){for(let J=0;J<G;J+=2)Y.push(W.readUInt16BE(X+J).toString(16));Y=Y.join(":"),Y=Y.replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3"),Y=Y.replace(/:{3,4}/,"::")}return Y};var il=/^(\d{1,3}\.){3,3}\d{1,3}$/,rl=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i;G1.isV4Format=function(W){return il.test(W)};G1.isV6Format=function(W){return rl.test(W)};function FV(W){if(W===4)return"ipv4";if(W===6)return"ipv6";return W?W.toLowerCase():"ipv4"}G1.fromPrefixLen=function(W,X){if(W>32)X="ipv6";else X=FV(X);let G=4;if(X==="ipv6")G=16;let Y=$q.alloc(G);for(let J=0,Z=Y.length;J<Z;++J){let V=8;if(W<8)V=W;W-=V,Y[J]=~(255>>V)&255}return G1.toString(Y)};G1.mask=function(W,X){W=G1.toBuffer(W),X=G1.toBuffer(X);let G=$q.alloc(Math.max(W.length,X.length)),Y;if(W.length===X.length)for(Y=0;Y<W.length;Y++)G[Y]=W[Y]&X[Y];else if(X.length===4)for(Y=0;Y<X.length;Y++)G[Y]=W[W.length-4+Y]&X[Y];else{for(Y=0;Y<G.length-6;Y++)G[Y]=0;G[10]=255,G[11]=255;for(Y=0;Y<W.length;Y++)G[Y+12]=W[Y]&X[Y+12];Y+=12}for(;Y<G.length;Y++)G[Y]=0;return G1.toString(G)};G1.cidr=function(W){let X=W.split("/"),G=X[0];if(X.length!==2)throw Error(`invalid CIDR subnet: ${G}`);let Y=G1.fromPrefixLen(parseInt(X[1],10));return G1.mask(G,Y)};G1.subnet=function(W,X){let G=G1.toLong(G1.mask(W,X)),Y=G1.toBuffer(X),J=0;for(let V=0;V<Y.length;V++)if(Y[V]===255)J+=8;else{let U=Y[V]&255;while(U)U=U<<1&255,J++}let Z=2**(32-J);return{networkAddress:G1.fromLong(G),firstAddress:Z<=2?G1.fromLong(G):G1.fromLong(G+1),lastAddress:Z<=2?G1.fromLong(G+Z-1):G1.fromLong(G+Z-2),broadcastAddress:G1.fromLong(G+Z-1),subnetMask:X,subnetMaskLength:J,numHosts:Z<=2?Z:Z-2,length:Z,contains(V){return G===G1.toLong(G1.mask(V,X))}}};G1.cidrSubnet=function(W){let X=W.split("/"),G=X[0];if(X.length!==2)throw Error(`invalid CIDR subnet: ${G}`);let Y=G1.fromPrefixLen(parseInt(X[1],10));return G1.subnet(G,Y)};G1.not=function(W){let X=G1.toBuffer(W);for(let G=0;G<X.length;G++)X[G]=255^X[G];return G1.toString(X)};G1.or=function(W,X){if(W=G1.toBuffer(W),X=G1.toBuffer(X),W.length===X.length){for(let Z=0;Z<W.length;++Z)W[Z]|=X[Z];return G1.toString(W)}let G=W,Y=X;if(X.length>W.length)G=X,Y=W;let J=G.length-Y.length;for(let Z=J;Z<G.length;++Z)G[Z]|=Y[Z-J];return G1.toString(G)};G1.isEqual=function(W,X){if(W=G1.toBuffer(W),X=G1.toBuffer(X),W.length===X.length){for(let Y=0;Y<W.length;Y++)if(W[Y]!==X[Y])return!1;return!0}if(X.length===4){let Y=X;X=W,W=Y}for(let Y=0;Y<10;Y++)if(X[Y]!==0)return!1;let G=X.readUInt16BE(10);if(G!==0&&G!==65535)return!1;for(let Y=0;Y<4;Y++)if(W[Y]!==X[Y+12])return!1;return!0};G1.isPrivate=function(W){if(G1.isLoopback(W))return!0;if(!G1.isV6Format(W)){let X=G1.normalizeToLong(W);if(X<0)throw Error("invalid ipv4 address");W=G1.fromLong(X)}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)};G1.isPublic=function(W){return!G1.isPrivate(W)};G1.isLoopback=function(W){if(!/\./.test(W)&&!/:/.test(W))W=G1.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)};G1.loopback=function(W){if(W=FV(W),W!=="ipv4"&&W!=="ipv6")throw Error("family must be ipv4 or ipv6");return W==="ipv4"?"127.0.0.1":"fe80::1"};G1.address=function(W,X){let G=nl.networkInterfaces();if(X=FV(X),W&&W!=="private"&&W!=="public"){let J=G[W].filter((Z)=>{return FV(Z.family)===X});if(J.length===0)return;return J[0].address}let Y=Object.keys(G).map((J)=>{let Z=G[J].filter((V)=>{if(V.family=FV(V.family),V.family!==X||G1.isLoopback(V.address))return!1;if(!W)return!0;return W==="public"?G1.isPrivate(V.address):G1.isPublic(V.address)});return Z.length?Z[0].address:void 0}).filter(Boolean);return!Y.length?G1.loopback(X):Y[0]};G1.toLong=function(W){let X=0;return W.split(".").forEach((G)=>{X<<=8,X+=parseInt(G)}),X>>>0};G1.fromLong=function(W){return`${W>>>24}.${W>>16&255}.${W>>8&255}.${W&255}`};G1.normalizeToLong=function(W){let X=W.split(".").map((J)=>{if(J.startsWith("0x")||J.startsWith("0X"))return parseInt(J,16);else if(J.startsWith("0")&&J!=="0"&&/^[0-7]+$/.test(J))return parseInt(J,8);else if(/^[1-9]\d*$/.test(J)||J==="0")return parseInt(J,10);else return NaN});if(X.some(isNaN))return-1;let G=0;switch(X.length){case 1:G=X[0];break;case 2:if(X[0]>255||X[1]>16777215)return-1;G=X[0]<<24|X[1]&16777215;break;case 3:if(X[0]>255||X[1]>255||X[2]>65535)return-1;G=X[0]<<24|X[1]<<16|X[2]&65535;break;case 4:if(X.some((J)=>J>255))return-1;G=X[0]<<24|X[1]<<16|X[2]<<8|X[3];break;default:return-1}return G>>>0}});var F$=V1((rq0,$$)=>{$$.exports=function W(X,G){if(X===G)return!0;if(X&&G&&typeof X=="object"&&typeof G=="object"){if(X.constructor!==G.constructor)return!1;var Y,J,Z;if(Array.isArray(X)){if(Y=X.length,Y!=G.length)return!1;for(J=Y;J--!==0;)if(!W(X[J],G[J]))return!1;return!0}if(X.constructor===RegExp)return X.source===G.source&&X.flags===G.flags;if(X.valueOf!==Object.prototype.valueOf)return X.valueOf()===G.valueOf();if(X.toString!==Object.prototype.toString)return X.toString()===G.toString();if(Z=Object.keys(X),Y=Z.length,Y!==Object.keys(G).length)return!1;for(J=Y;J--!==0;)if(!Object.prototype.hasOwnProperty.call(G,Z[J]))return!1;for(J=Y;J--!==0;){var V=Z[J];if(!W(X[V],G[V]))return!1}return!0}return X!==X&&G!==G}});var S$=V1((al)=>{al.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};al.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 x$=V1((el)=>{el.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};el.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 k$=V1((Gd)=>{Gd.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};Gd.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 _$=V1((Zd)=>{Zd.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};Zd.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 y$=V1((Qd)=>{Qd.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}`};Qd.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 X=W.match(/_(\d+)$/);if(X)return parseInt(X[1],10);return-1}});var u$=V1((g$,sj)=>{var v$=function(W){Object.defineProperty(W,"__esModule",{value:!0}),W.decode=A,W.encode=q,W.familyOf=N,W.name=void 0,W.sizeOf=Q,W.v6=W.v4=void 0;let X=/^(\d{1,3}\.){3,3}\d{1,3}$/,G=4,Y=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i,J=16,Z={name:"v4",size:G,isFormat:(H)=>X.test(H),encode(H,I,w){w=~~w,I=I||new Uint8Array(w+G);let O=H.length,T=0;for(let x=0;x<O;){let P=H.charCodeAt(x++);if(P===46)I[w++]=T,T=0;else T=T*10+(P-48)}return I[w]=T,I},decode(H,I){return I=~~I,`${H[I++]}.${H[I++]}.${H[I++]}.${H[I]}`}};W.v4=Z;let V={name:"v6",size:J,isFormat:(H)=>H.length>0&&Y.test(H),encode(H,I,w){w=~~w;let O=w+J,T=-1,x=0,P=0,u=!0,F=!1;I=I||new Uint8Array(w+J);for(let m=0;m<H.length;m++){let l=H.charCodeAt(m);if(l===58){if(u){if(T!==-1){if(w<O)I[w]=0;if(w<O-1)I[w+1]=0;w+=2}else if(w<O)T=w}else{if(F===!0){if(w<O)I[w]=P;w++}else{if(w<O)I[w]=x>>8;if(w<O-1)I[w+1]=x&255;w+=2}x=0,P=0}u=!0,F=!1}else if(l===46){if(w<O)I[w]=P;w++,P=0,x=0,u=!1,F=!0}else{if(u=!1,l>=97)l-=87;else if(l>=65)l-=55;else l-=48,P=P*10+l;x=(x<<4)+l}}if(u===!1)if(F===!0){if(w<O)I[w]=P;w++}else{if(w<O)I[w]=x>>8;if(w<O-1)I[w+1]=x&255;w+=2}else if(T===0){if(w<O)I[w]=0;if(w<O-1)I[w+1]=0;w+=2}else if(T!==-1){w+=2;for(let m=Math.min(w-1,O-1);m>=T+2;m--)I[m]=I[m-2];I[T]=0,I[T+1]=0,T=w}if(T!==w&&T!==-1){if(w>O-2)w=O-2;while(O>T)I[--O]=w<O&&w>T?I[--w]:0}else while(w<O)I[w++]=0;return I},decode(H,I){I=~~I;let w="";for(let O=0;O<J;O+=2){if(O!==0)w+=":";w+=(H[I+O]<<8|H[I+O+1]).toString(16)}return w.replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}};W.v6=V;let U="ip";W.name=U;function Q(H){if(Z.isFormat(H))return Z.size;if(V.isFormat(H))return V.size;throw Error(`Invalid ip address: ${H}`)}function N(H){return Q(H)===Z.size?1:2}function q(H,I,w){w=~~w;let O=Q(H);if(typeof I==="function")I=I(w+O);if(O===Z.size)return Z.encode(H,I,w);return V.encode(H,I,w)}function A(H,I,w){if(I=~~I,w=w||H.length-I,w===Z.size)return Z.decode(H,I,w);if(w===V.size)return V.decode(H,I,w);throw Error(`Invalid buffer size needs to be ${Z.size} for v4 or ${V.size} for v6.`)}return"default"in W?W.default:W}({});if(typeof define==="function"&&define.amd)define([],function(){return v$});else if(typeof sj==="object"&&typeof g$==="object")sj.exports=v$});var h$=V1((wd)=>{var Z1=_8("buffer").Buffer,m4=S$(),Hd=x$(),Ad=k$(),Sq=_$(),WK=y$(),wX=u$(),g0=wd.name={};g0.encode=function(W,X,G,{mail:Y=!1}={}){if(!X)X=Z1.alloc(g0.encodingLength(W));if(!G)G=0;let J=G,Z=W.replace(/^\.|\.$/gm,"");if(Z.length){let V=[];if(Y){let U="";Z.split(".").forEach((Q)=>{if(Q.endsWith("\\"))U+=(U.length?".":"")+Q.slice(0,-1);else if(V.length===0&&U.length)V.push(U+"."+Q);else V.push(Q)})}else V=Z.split(".");for(let U=0;U<V.length;U++){let Q=X.write(V[U],G+1);X[G]=Q,G+=Q+1}}return X[G++]=0,g0.encode.bytes=G-J,X};g0.encode.bytes=0;g0.decode=function(W,X,{mail:G=!1}={}){if(!X)X=0;let Y=[],J=X,Z=0,V=0,U=!1;while(!0){if(X>=W.length)throw Error("Cannot decode name (buffer overflow)");let Q=W[X++];if(V+=U?0:1,Q===0)break;else if((Q&192)===0){if(X+Q>W.length)throw Error("Cannot decode name (buffer overflow)");if(Z+=Q+1,Z>254)throw Error("Cannot decode name (name too long)");let N=W.toString("utf-8",X,X+Q);if(G)N=N.replace(/\./g,"\\.");Y.push(N),X+=Q,V+=U?0:Q}else if((Q&192)===192){if(X+1>W.length)throw Error("Cannot decode name (buffer overflow)");let N=W.readUInt16BE(X-1)-49152;if(N>=J)throw Error("Cannot decode name (bad pointer)");X=N,J=N,V+=U?0:1,U=!0}else throw Error("Cannot decode name (bad label)")}return g0.decode.bytes=V,Y.length===0?".":Y.join(".")};g0.decode.bytes=0;g0.encodingLength=function(W){if(W==="."||W==="..")return 1;return Z1.byteLength(W.replace(/^\.|\.$/gm,""))+2};var v1={};v1.encode=function(W,X,G){if(!X)X=Z1.alloc(v1.encodingLength(W));if(!G)G=0;let Y=X.write(W,G+1);return X[G]=Y,v1.encode.bytes=Y+1,X};v1.encode.bytes=0;v1.decode=function(W,X){if(!X)X=0;let G=W[X],Y=W.toString("utf-8",X+1,X+1+G);return v1.decode.bytes=G+1,Y};v1.decode.bytes=0;v1.encodingLength=function(W){return Z1.byteLength(W)+1};var e5={};e5.encode=function(W,X,G){if(!X)X=e5.encodingLength(W);if(!G)G=0;let Y=(W.flags||0)&32767,J=W.type==="response"?32768:0;return X.writeUInt16BE(W.id||0,G),X.writeUInt16BE(Y|J,G+2),X.writeUInt16BE(W.questions.length,G+4),X.writeUInt16BE(W.answers.length,G+6),X.writeUInt16BE(W.authorities.length,G+8),X.writeUInt16BE(W.additionals.length,G+10),X};e5.encode.bytes=12;e5.decode=function(W,X){if(!X)X=0;if(W.length<12)throw Error("Header must be 12 bytes");let G=W.readUInt16BE(X+2);return{id:W.readUInt16BE(X),type:G&32768?"response":"query",flags:G&32767,flag_qr:(G>>15&1)===1,opcode:Ad.toString(G>>11&15),flag_aa:(G>>10&1)===1,flag_tc:(G>>9&1)===1,flag_rd:(G>>8&1)===1,flag_ra:(G>>7&1)===1,flag_z:(G>>6&1)===1,flag_ad:(G>>5&1)===1,flag_cd:(G>>4&1)===1,rcode:Hd.toString(G&15),questions:Array(W.readUInt16BE(X+4)),answers:Array(W.readUInt16BE(X+6)),authorities:Array(W.readUInt16BE(X+8)),additionals:Array(W.readUInt16BE(X+10))}};e5.decode.bytes=12;e5.encodingLength=function(){return 12};var x4=wd.unknown={};x4.encode=function(W,X,G){if(!X)X=Z1.alloc(x4.encodingLength(W));if(!G)G=0;return X.writeUInt16BE(W.length,G),W.copy(X,G+2),x4.encode.bytes=W.length+2,X};x4.encode.bytes=0;x4.decode=function(W,X){if(!X)X=0;let G=W.readUInt16BE(X),Y=W.slice(X+2,X+2+G);return x4.decode.bytes=G+2,Y};x4.decode.bytes=0;x4.encodingLength=function(W){return W.length+2};var k4=wd.ns={};k4.encode=function(W,X,G){if(!X)X=Z1.alloc(k4.encodingLength(W));if(!G)G=0;return g0.encode(W,X,G+2),X.writeUInt16BE(g0.encode.bytes,G),k4.encode.bytes=g0.encode.bytes+2,X};k4.encode.bytes=0;k4.decode=function(W,X){if(!X)X=0;let G=W.readUInt16BE(X),Y=g0.decode(W,X+2);return k4.decode.bytes=G+2,Y};k4.decode.bytes=0;k4.encodingLength=function(W){return g0.encodingLength(W)+2};var _4=wd.soa={};_4.encode=function(W,X,G){if(!X)X=Z1.alloc(_4.encodingLength(W));if(!G)G=0;let Y=G;return G+=2,g0.encode(W.mname,X,G),G+=g0.encode.bytes,g0.encode(W.rname,X,G,{mail:!0}),G+=g0.encode.bytes,X.writeUInt32BE(W.serial||0,G),G+=4,X.writeUInt32BE(W.refresh||0,G),G+=4,X.writeUInt32BE(W.retry||0,G),G+=4,X.writeUInt32BE(W.expire||0,G),G+=4,X.writeUInt32BE(W.minimum||0,G),G+=4,X.writeUInt16BE(G-Y-2,Y),_4.encode.bytes=G-Y,X};_4.encode.bytes=0;_4.decode=function(W,X){if(!X)X=0;let G=X,Y={};return X+=2,Y.mname=g0.decode(W,X),X+=g0.decode.bytes,Y.rname=g0.decode(W,X,{mail:!0}),X+=g0.decode.bytes,Y.serial=W.readUInt32BE(X),X+=4,Y.refresh=W.readUInt32BE(X),X+=4,Y.retry=W.readUInt32BE(X),X+=4,Y.expire=W.readUInt32BE(X),X+=4,Y.minimum=W.readUInt32BE(X),X+=4,_4.decode.bytes=X-G,Y};_4.decode.bytes=0;_4.encodingLength=function(W){return 22+g0.encodingLength(W.mname)+g0.encodingLength(W.rname)};var y4=wd.txt={};y4.encode=function(W,X,G){if(!Array.isArray(W))W=[W];for(let J=0;J<W.length;J++){if(typeof W[J]==="string")W[J]=Z1.from(W[J]);if(!Z1.isBuffer(W[J]))throw Error("Must be a Buffer")}if(!X)X=Z1.alloc(y4.encodingLength(W));if(!G)G=0;let Y=G;return G+=2,W.forEach(function(J){X[G++]=J.length,J.copy(X,G,0,J.length),G+=J.length}),X.writeUInt16BE(G-Y-2,Y),y4.encode.bytes=G-Y,X};y4.encode.bytes=0;y4.decode=function(W,X){if(!X)X=0;let G=X,Y=W.readUInt16BE(X);X+=2;let J=[];while(Y>0){let Z=W[X++];if(--Y,Y<Z)throw Error("Buffer overflow");J.push(W.slice(X,X+Z)),X+=Z,Y-=Z}return y4.decode.bytes=X-G,J};y4.decode.bytes=0;y4.encodingLength=function(W){if(!Array.isArray(W))W=[W];let X=2;return W.forEach(function(G){if(typeof G==="string")X+=Z1.byteLength(G)+1;else X+=G.length+1}),X};var v4=wd.null={};v4.encode=function(W,X,G){if(!X)X=Z1.alloc(v4.encodingLength(W));if(!G)G=0;if(typeof W==="string")W=Z1.from(W);if(!W)W=Z1.alloc(0);let Y=G;G+=2;let J=W.length;return W.copy(X,G,0,J),G+=J,X.writeUInt16BE(G-Y-2,Y),v4.encode.bytes=G-Y,X};v4.encode.bytes=0;v4.decode=function(W,X){if(!X)X=0;let G=X,Y=W.readUInt16BE(X);X+=2;let J=W.slice(X,X+Y);return X+=Y,v4.decode.bytes=X-G,J};v4.decode.bytes=0;v4.encodingLength=function(W){if(!W)return 2;return(Z1.isBuffer(W)?W.length:Z1.byteLength(W))+2};var g4=wd.hinfo={};g4.encode=function(W,X,G){if(!X)X=Z1.alloc(g4.encodingLength(W));if(!G)G=0;let Y=G;return G+=2,v1.encode(W.cpu,X,G),G+=v1.encode.bytes,v1.encode(W.os,X,G),G+=v1.encode.bytes,X.writeUInt16BE(G-Y-2,Y),g4.encode.bytes=G-Y,X};g4.encode.bytes=0;g4.decode=function(W,X){if(!X)X=0;let G=X,Y={};return X+=2,Y.cpu=v1.decode(W,X),X+=v1.decode.bytes,Y.os=v1.decode(W,X),X+=v1.decode.bytes,g4.decode.bytes=X-G,Y};g4.decode.bytes=0;g4.encodingLength=function(W){return v1.encodingLength(W.cpu)+v1.encodingLength(W.os)+2};var s5=wd.ptr={},zd=wd.cname=s5,Id=wd.dname=s5;s5.encode=function(W,X,G){if(!X)X=Z1.alloc(s5.encodingLength(W));if(!G)G=0;return g0.encode(W,X,G+2),X.writeUInt16BE(g0.encode.bytes,G),s5.encode.bytes=g0.encode.bytes+2,X};s5.encode.bytes=0;s5.decode=function(W,X){if(!X)X=0;let G=g0.decode(W,X+2);return s5.decode.bytes=g0.decode.bytes+2,G};s5.decode.bytes=0;s5.encodingLength=function(W){return g0.encodingLength(W)+2};var u4=wd.srv={};u4.encode=function(W,X,G){if(!X)X=Z1.alloc(u4.encodingLength(W));if(!G)G=0;X.writeUInt16BE(W.priority||0,G+2),X.writeUInt16BE(W.weight||0,G+4),X.writeUInt16BE(W.port||0,G+6),g0.encode(W.target,X,G+8);let Y=g0.encode.bytes+6;return X.writeUInt16BE(Y,G),u4.encode.bytes=Y+2,X};u4.encode.bytes=0;u4.decode=function(W,X){if(!X)X=0;let G=W.readUInt16BE(X),Y={};return Y.priority=W.readUInt16BE(X+2),Y.weight=W.readUInt16BE(X+4),Y.port=W.readUInt16BE(X+6),Y.target=g0.decode(W,X+8),u4.decode.bytes=G+2,Y};u4.decode.bytes=0;u4.encodingLength=function(W){return 8+g0.encodingLength(W.target)};var q5=wd.caa={};q5.ISSUER_CRITICAL=128;q5.encode=function(W,X,G){let Y=q5.encodingLength(W);if(!X)X=Z1.alloc(q5.encodingLength(W));if(!G)G=0;if(W.issuerCritical)W.flags=q5.ISSUER_CRITICAL;return X.writeUInt16BE(Y-2,G),G+=2,X.writeUInt8(W.flags||0,G),G+=1,v1.encode(W.tag,X,G),G+=v1.encode.bytes,X.write(W.value,G),G+=Z1.byteLength(W.value),q5.encode.bytes=Y,X};q5.encode.bytes=0;q5.decode=function(W,X){if(!X)X=0;let G=W.readUInt16BE(X);X+=2;let Y=X,J={};return J.flags=W.readUInt8(X),X+=1,J.tag=v1.decode(W,X),X+=v1.decode.bytes,J.value=W.toString("utf-8",X,Y+G),J.issuerCritical=!!(J.flags&q5.ISSUER_CRITICAL),q5.decode.bytes=G+2,J};q5.decode.bytes=0;q5.encodingLength=function(W){return v1.encodingLength(W.tag)+v1.encodingLength(W.value)+2};var n6=wd.mx={};n6.encode=function(W,X,G){if(!X)X=Z1.alloc(n6.encodingLength(W));if(!G)G=0;let Y=G;return G+=2,X.writeUInt16BE(W.preference||0,G),G+=2,g0.encode(W.exchange,X,G),G+=g0.encode.bytes,X.writeUInt16BE(G-Y-2,Y),n6.encode.bytes=G-Y,X};n6.encode.bytes=0;n6.decode=function(W,X){if(!X)X=0;let G=X,Y={};return X+=2,Y.preference=W.readUInt16BE(X),X+=2,Y.exchange=g0.decode(W,X),X+=g0.decode.bytes,n6.decode.bytes=X-G,Y};n6.encodingLength=function(W){return 4+g0.encodingLength(W.exchange)};var h4=wd.a={};h4.encode=function(W,X,G){if(!X)X=Z1.alloc(h4.encodingLength(W));if(!G)G=0;return X.writeUInt16BE(4,G),G+=2,wX.v4.encode(W,X,G),h4.encode.bytes=6,X};h4.encode.bytes=0;h4.decode=function(W,X){if(!X)X=0;X+=2;let G=wX.v4.decode(W,X);return h4.decode.bytes=6,G};h4.decode.bytes=0;h4.encodingLength=function(){return 6};var b4=wd.aaaa={};b4.encode=function(W,X,G){if(!X)X=Z1.alloc(b4.encodingLength(W));if(!G)G=0;return X.writeUInt16BE(16,G),G+=2,wX.v6.encode(W,X,G),b4.encode.bytes=18,X};b4.encode.bytes=0;b4.decode=function(W,X){if(!X)X=0;X+=2;let G=wX.v6.decode(W,X);return b4.decode.bytes=18,G};b4.decode.bytes=0;b4.encodingLength=function(){return 18};var a9=wd.option={};a9.encode=function(W,X,G){if(!X)X=Z1.alloc(a9.encodingLength(W));if(!G)G=0;let Y=G,J=WK.toCode(W.code);if(X.writeUInt16BE(J,G),G+=2,W.data)X.writeUInt16BE(W.data.length,G),G+=2,W.data.copy(X,G),G+=W.data.length;else switch(J){case 8:let Z=W.sourcePrefixLength||0,V=W.family||wX.familyOf(W.ip),U=wX.encode(W.ip,Z1.alloc),Q=Math.ceil(Z/8);X.writeUInt16BE(Q+4,G),G+=2,X.writeUInt16BE(V,G),G+=2,X.writeUInt8(Z,G++),X.writeUInt8(W.scopePrefixLength||0,G++),U.copy(X,G,0,Q),G+=Q;break;case 11:if(W.timeout)X.writeUInt16BE(2,G),G+=2,X.writeUInt16BE(W.timeout,G),G+=2;else X.writeUInt16BE(0,G),G+=2;break;case 12:let N=W.length||0;X.writeUInt16BE(N,G),G+=2,X.fill(0,G,G+N),G+=N;break;case 14:let q=W.tags.length*2;X.writeUInt16BE(q,G),G+=2;for(let A of W.tags)X.writeUInt16BE(A,G),G+=2;break;default:throw Error(`Unknown roption code: ${W.code}`)}return a9.encode.bytes=G-Y,X};a9.encode.bytes=0;a9.decode=function(W,X){if(!X)X=0;let G={};G.code=W.readUInt16BE(X),G.type=WK.toString(G.code),X+=2;let Y=W.readUInt16BE(X);switch(X+=2,G.data=W.slice(X,X+Y),G.code){case 8:G.family=W.readUInt16BE(X),X+=2,G.sourcePrefixLength=W.readUInt8(X++),G.scopePrefixLength=W.readUInt8(X++);let J=Z1.alloc(G.family===1?4:16);W.copy(J,0,X,X+Y-4),G.ip=wX.decode(J);break;case 11:if(Y>0)G.timeout=W.readUInt16BE(X),X+=2;break;case 14:G.tags=[];for(let Z=0;Z<Y;Z+=2)G.tags.push(W.readUInt16BE(X)),X+=2}return a9.decode.bytes=Y+4,G};a9.decode.bytes=0;a9.encodingLength=function(W){if(W.data)return W.data.length+4;switch(WK.toCode(W.code)){case 8:let G=W.sourcePrefixLength||0;return Math.ceil(G/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 A5=wd.opt={};A5.encode=function(W,X,G){if(!X)X=Z1.alloc(A5.encodingLength(W));if(!G)G=0;let Y=G,J=$Y(W,a9);return X.writeUInt16BE(J,G),G=SV(W,a9,X,G+2),A5.encode.bytes=G-Y,X};A5.encode.bytes=0;A5.decode=function(W,X){if(!X)X=0;let G=X,Y=[],J=W.readUInt16BE(X);X+=2;let Z=0;while(J>0)Y[Z++]=a9.decode(W,X),X+=a9.decode.bytes,J-=a9.decode.bytes;return A5.decode.bytes=X-G,Y};A5.decode.bytes=0;A5.encodingLength=function(W){return 2+$Y(W||[],a9)};var u9=wd.dnskey={};u9.PROTOCOL_DNSSEC=3;u9.ZONE_KEY=128;u9.SECURE_ENTRYPOINT=32768;u9.encode=function(W,X,G){if(!X)X=Z1.alloc(u9.encodingLength(W));if(!G)G=0;let Y=G,J=W.key;if(!Z1.isBuffer(J))throw Error("Key must be a Buffer");return G+=2,X.writeUInt16BE(W.flags,G),G+=2,X.writeUInt8(u9.PROTOCOL_DNSSEC,G),G+=1,X.writeUInt8(W.algorithm,G),G+=1,J.copy(X,G,0,J.length),G+=J.length,u9.encode.bytes=G-Y,X.writeUInt16BE(u9.encode.bytes-2,Y),X};u9.encode.bytes=0;u9.decode=function(W,X){if(!X)X=0;let G=X;var Y={},J=W.readUInt16BE(X);if(X+=2,Y.flags=W.readUInt16BE(X),X+=2,W.readUInt8(X)!==u9.PROTOCOL_DNSSEC)throw Error("Protocol must be 3");return X+=1,Y.algorithm=W.readUInt8(X),X+=1,Y.key=W.slice(X,G+J+2),X+=Y.key.length,u9.decode.bytes=X-G,Y};u9.decode.bytes=0;u9.encodingLength=function(W){return 6+Z1.byteLength(W.key)};var y7=wd.rrsig={};y7.encode=function(W,X,G){if(!X)X=Z1.alloc(y7.encodingLength(W));if(!G)G=0;let Y=G,J=W.signature;if(!Z1.isBuffer(J))throw Error("Signature must be a Buffer");return G+=2,X.writeUInt16BE(m4.toType(W.typeCovered),G),G+=2,X.writeUInt8(W.algorithm,G),G+=1,X.writeUInt8(W.labels,G),G+=1,X.writeUInt32BE(W.originalTTL,G),G+=4,X.writeUInt32BE(W.expiration,G),G+=4,X.writeUInt32BE(W.inception,G),G+=4,X.writeUInt16BE(W.keyTag,G),G+=2,g0.encode(W.signersName,X,G),G+=g0.encode.bytes,J.copy(X,G,0,J.length),G+=J.length,y7.encode.bytes=G-Y,X.writeUInt16BE(y7.encode.bytes-2,Y),X};y7.encode.bytes=0;y7.decode=function(W,X){if(!X)X=0;let G=X;var Y={},J=W.readUInt16BE(X);return X+=2,Y.typeCovered=m4.toString(W.readUInt16BE(X)),X+=2,Y.algorithm=W.readUInt8(X),X+=1,Y.labels=W.readUInt8(X),X+=1,Y.originalTTL=W.readUInt32BE(X),X+=4,Y.expiration=W.readUInt32BE(X),X+=4,Y.inception=W.readUInt32BE(X),X+=4,Y.keyTag=W.readUInt16BE(X),X+=2,Y.signersName=g0.decode(W,X),X+=g0.decode.bytes,Y.signature=W.slice(X,G+J+2),X+=Y.signature.length,y7.decode.bytes=X-G,Y};y7.decode.bytes=0;y7.encodingLength=function(W){return 20+g0.encodingLength(W.signersName)+Z1.byteLength(W.signature)};var v7=wd.rp={};v7.encode=function(W,X,G){if(!X)X=Z1.alloc(v7.encodingLength(W));if(!G)G=0;let Y=G;return G+=2,g0.encode(W.mbox||".",X,G,{mail:!0}),G+=g0.encode.bytes,g0.encode(W.txt||".",X,G),G+=g0.encode.bytes,v7.encode.bytes=G-Y,X.writeUInt16BE(v7.encode.bytes-2,Y),X};v7.encode.bytes=0;v7.decode=function(W,X){if(!X)X=0;let G=X,Y={};return X+=2,Y.mbox=g0.decode(W,X,{mail:!0})||".",X+=g0.decode.bytes,Y.txt=g0.decode(W,X)||".",X+=g0.decode.bytes,v7.decode.bytes=X-G,Y};v7.decode.bytes=0;v7.encodingLength=function(W){return 2+g0.encodingLength(W.mbox||".")+g0.encodingLength(W.txt||".")};var a8={};a8.encode=function(W,X,G){if(!X)X=Z1.alloc(a8.encodingLength(W));if(!G)G=0;let Y=G;var J=[];for(var Z=0;Z<W.length;Z++){var V=m4.toType(W[Z]);if(J[V>>8]===void 0)J[V>>8]=[];J[V>>8][V>>3&31]|=1<<7-(V&7)}for(Z=0;Z<J.length;Z++)if(J[Z]!==void 0){var U=Z1.from(J[Z]);X.writeUInt8(Z,G),G+=1,X.writeUInt8(U.length,G),G+=1,U.copy(X,G),G+=U.length}return a8.encode.bytes=G-Y,X};a8.encode.bytes=0;a8.decode=function(W,X,G){if(!X)X=0;let Y=X;var J=[];while(X-Y<G){var Z=W.readUInt8(X);X+=1;var V=W.readUInt8(X);X+=1;for(var U=0;U<V;U++){var Q=W.readUInt8(X+U);for(var N=0;N<8;N++)if(Q&1<<7-N){var q=m4.toString(Z<<8|U<<3|N);J.push(q)}}X+=V}return a8.decode.bytes=X-Y,J};a8.decode.bytes=0;a8.encodingLength=function(W){var X=[];for(var G=0;G<W.length;G++){var Y=m4.toType(W[G]);X[Y>>8]=Math.max(X[Y>>8]||0,Y&255)}var J=0;for(G=0;G<X.length;G++)if(X[G]!==void 0)J+=2+Math.ceil((X[G]+1)/8);return J};var g7=wd.nsec={};g7.encode=function(W,X,G){if(!X)X=Z1.alloc(g7.encodingLength(W));if(!G)G=0;let Y=G;return G+=2,g0.encode(W.nextDomain,X,G),G+=g0.encode.bytes,a8.encode(W.rrtypes,X,G),G+=a8.encode.bytes,g7.encode.bytes=G-Y,X.writeUInt16BE(g7.encode.bytes-2,Y),X};g7.encode.bytes=0;g7.decode=function(W,X){if(!X)X=0;let G=X;var Y={},J=W.readUInt16BE(X);return X+=2,Y.nextDomain=g0.decode(W,X),X+=g0.decode.bytes,Y.rrtypes=a8.decode(W,X,J-(X-G)),X+=a8.decode.bytes,g7.decode.bytes=X-G,Y};g7.decode.bytes=0;g7.encodingLength=function(W){return 2+g0.encodingLength(W.nextDomain)+a8.encodingLength(W.rrtypes)};var u7=wd.nsec3={};u7.encode=function(W,X,G){if(!X)X=Z1.alloc(u7.encodingLength(W));if(!G)G=0;let Y=G,J=W.salt;if(!Z1.isBuffer(J))throw Error("salt must be a Buffer");let Z=W.nextDomain;if(!Z1.isBuffer(Z))throw Error("nextDomain must be a Buffer");return G+=2,X.writeUInt8(W.algorithm,G),G+=1,X.writeUInt8(W.flags,G),G+=1,X.writeUInt16BE(W.iterations,G),G+=2,X.writeUInt8(J.length,G),G+=1,J.copy(X,G,0,J.length),G+=J.length,X.writeUInt8(Z.length,G),G+=1,Z.copy(X,G,0,Z.length),G+=Z.length,a8.encode(W.rrtypes,X,G),G+=a8.encode.bytes,u7.encode.bytes=G-Y,X.writeUInt16BE(u7.encode.bytes-2,Y),X};u7.encode.bytes=0;u7.decode=function(W,X){if(!X)X=0;let G=X;var Y={},J=W.readUInt16BE(X);X+=2,Y.algorithm=W.readUInt8(X),X+=1,Y.flags=W.readUInt8(X),X+=1,Y.iterations=W.readUInt16BE(X),X+=2;let Z=W.readUInt8(X);X+=1,Y.salt=W.slice(X,X+Z),X+=Z;let V=W.readUInt8(X);return X+=1,Y.nextDomain=W.slice(X,X+V),X+=V,Y.rrtypes=a8.decode(W,X,J-(X-G)),X+=a8.decode.bytes,u7.decode.bytes=X-G,Y};u7.decode.bytes=0;u7.encodingLength=function(W){return 8+W.salt.length+W.nextDomain.length+a8.encodingLength(W.rrtypes)};var h7=wd.ds={};h7.encode=function(W,X,G){if(!X)X=Z1.alloc(h7.encodingLength(W));if(!G)G=0;let Y=G,J=W.digest;if(!Z1.isBuffer(J))throw Error("Digest must be a Buffer");return G+=2,X.writeUInt16BE(W.keyTag,G),G+=2,X.writeUInt8(W.algorithm,G),G+=1,X.writeUInt8(W.digestType,G),G+=1,J.copy(X,G,0,J.length),G+=J.length,h7.encode.bytes=G-Y,X.writeUInt16BE(h7.encode.bytes-2,Y),X};h7.encode.bytes=0;h7.decode=function(W,X){if(!X)X=0;let G=X;var Y={},J=W.readUInt16BE(X);return X+=2,Y.keyTag=W.readUInt16BE(X),X+=2,Y.algorithm=W.readUInt8(X),X+=1,Y.digestType=W.readUInt8(X),X+=1,Y.digest=W.slice(X,G+J+2),X+=Y.digest.length,h7.decode.bytes=X-G,Y};h7.decode.bytes=0;h7.encodingLength=function(W){return 6+Z1.byteLength(W.digest)};var H5=wd.sshfp={};H5.getFingerprintLengthForHashType=function(X){switch(X){case 1:return 20;case 2:return 32}};H5.encode=function(X,G,Y){if(!G)G=Z1.alloc(H5.encodingLength(X));if(!Y)Y=0;let J=Y;Y+=2,G[Y]=X.algorithm,Y+=1,G[Y]=X.hash,Y+=1;let Z=Z1.from(X.fingerprint.toUpperCase(),"hex");if(Z.length!==H5.getFingerprintLengthForHashType(X.hash))throw Error("Invalid fingerprint length");return Z.copy(G,Y),Y+=Z.byteLength,H5.encode.bytes=Y-J,G.writeUInt16BE(H5.encode.bytes-2,J),G};H5.encode.bytes=0;H5.decode=function(X,G){if(!G)G=0;let Y=G,J={};G+=2,J.algorithm=X[G],G+=1,J.hash=X[G],G+=1;let Z=H5.getFingerprintLengthForHashType(J.hash);return J.fingerprint=X.slice(G,G+Z).toString("hex").toUpperCase(),G+=Z,H5.decode.bytes=G-Y,J};H5.decode.bytes=0;H5.encodingLength=function(W){return 4+Z1.from(W.fingerprint,"hex").byteLength};var b7=wd.naptr={};b7.encode=function(W,X,G){if(!X)X=Z1.alloc(b7.encodingLength(W));if(!G)G=0;let Y=G;return G+=2,X.writeUInt16BE(W.order||0,G),G+=2,X.writeUInt16BE(W.preference||0,G),G+=2,v1.encode(W.flags,X,G),G+=v1.encode.bytes,v1.encode(W.services,X,G),G+=v1.encode.bytes,v1.encode(W.regexp,X,G),G+=v1.encode.bytes,g0.encode(W.replacement,X,G),G+=g0.encode.bytes,b7.encode.bytes=G-Y,X.writeUInt16BE(b7.encode.bytes-2,Y),X};b7.encode.bytes=0;b7.decode=function(W,X){if(!X)X=0;let G=X,Y={};return X+=2,Y.order=W.readUInt16BE(X),X+=2,Y.preference=W.readUInt16BE(X),X+=2,Y.flags=v1.decode(W,X),X+=v1.decode.bytes,Y.services=v1.decode(W,X),X+=v1.decode.bytes,Y.regexp=v1.decode(W,X),X+=v1.decode.bytes,Y.replacement=g0.decode(W,X),X+=g0.decode.bytes,b7.decode.bytes=X-G,Y};b7.decode.bytes=0;b7.encodingLength=function(W){return v1.encodingLength(W.flags)+v1.encodingLength(W.services)+v1.encodingLength(W.regexp)+g0.encodingLength(W.replacement)+6};var m7=wd.tlsa={};m7.encode=function(W,X,G){if(!X)X=Z1.alloc(m7.encodingLength(W));if(!G)G=0;let Y=G,J=W.certificate;if(!Z1.isBuffer(J))throw Error("Certificate must be a Buffer");return G+=2,X.writeUInt8(W.usage,G),G+=1,X.writeUInt8(W.selector,G),G+=1,X.writeUInt8(W.matchingType,G),G+=1,J.copy(X,G,0,J.length),G+=J.length,m7.encode.bytes=G-Y,X.writeUInt16BE(m7.encode.bytes-2,Y),X};m7.encode.bytes=0;m7.decode=function(W,X){if(!X)X=0;let G=X,Y={},J=W.readUInt16BE(X);return X+=2,Y.usage=W.readUInt8(X),X+=1,Y.selector=W.readUInt8(X),X+=1,Y.matchingType=W.readUInt8(X),X+=1,Y.certificate=W.slice(X,G+J+2),X+=Y.certificate.length,m7.decode.bytes=X-G,Y};m7.decode.bytes=0;m7.encodingLength=function(W){return 5+Z1.byteLength(W.certificate)};var XK=wd.record=function(W){switch(W.toUpperCase()){case"A":return h4;case"PTR":return s5;case"CNAME":return zd;case"DNAME":return Id;case"TXT":return y4;case"NULL":return v4;case"AAAA":return b4;case"SRV":return u4;case"HINFO":return g4;case"CAA":return q5;case"NS":return k4;case"SOA":return _4;case"MX":return n6;case"OPT":return A5;case"DNSKEY":return u9;case"RRSIG":return y7;case"RP":return v7;case"NSEC":return g7;case"NSEC3":return u7;case"SSHFP":return H5;case"DS":return h7;case"NAPTR":return b7;case"TLSA":return m7}return x4},V9=wd.answer={};V9.encode=function(W,X,G){if(!X)X=Z1.alloc(V9.encodingLength(W));if(!G)G=0;let Y=G;if(g0.encode(W.name,X,G),G+=g0.encode.bytes,X.writeUInt16BE(m4.toType(W.type),G),W.type.toUpperCase()==="OPT"){if(W.name!==".")throw Error("OPT name must be root.");X.writeUInt16BE(W.udpPayloadSize||4096,G+2),X.writeUInt8(W.extendedRcode||0,G+4),X.writeUInt8(W.ednsVersion||0,G+5),X.writeUInt16BE(W.flags||0,G+6),G+=8,A5.encode(W.options||[],X,G),G+=A5.encode.bytes}else{let J=Sq.toClass(W.class===void 0?"IN":W.class);if(W.flush)J|=32768;X.writeUInt16BE(J,G+2),X.writeUInt32BE(W.ttl||0,G+4),G+=8;let Z=XK(W.type);Z.encode(W.data,X,G),G+=Z.encode.bytes}return V9.encode.bytes=G-Y,X};V9.encode.bytes=0;V9.decode=function(W,X){if(!X)X=0;let G={},Y=X;if(G.name=g0.decode(W,X),X+=g0.decode.bytes,G.type=m4.toString(W.readUInt16BE(X)),G.type==="OPT")G.udpPayloadSize=W.readUInt16BE(X+2),G.extendedRcode=W.readUInt8(X+4),G.ednsVersion=W.readUInt8(X+5),G.flags=W.readUInt16BE(X+6),G.flag_do=(G.flags>>15&1)===1,G.options=A5.decode(W,X+8),X+=8+A5.decode.bytes;else{let J=W.readUInt16BE(X+2);G.ttl=W.readUInt32BE(X+4),G.class=Sq.toString(J&-32769),G.flush=!!(J&32768);let Z=XK(G.type);G.data=Z.decode(W,X+8),X+=8+Z.decode.bytes}return V9.decode.bytes=X-Y,G};V9.decode.bytes=0;V9.encodingLength=function(W){let X=W.data!==null&&W.data!==void 0?W.data:W.options;return g0.encodingLength(W.name)+8+XK(W.type).encodingLength(X)};var t5=wd.question={};t5.encode=function(W,X,G){if(!X)X=Z1.alloc(t5.encodingLength(W));if(!G)G=0;let Y=G;return g0.encode(W.name,X,G),G+=g0.encode.bytes,X.writeUInt16BE(m4.toType(W.type),G),G+=2,X.writeUInt16BE(Sq.toClass(W.class===void 0?"IN":W.class),G),G+=2,t5.encode.bytes=G-Y,W};t5.encode.bytes=0;t5.decode=function(W,X){if(!X)X=0;let G=X,Y={};if(Y.name=g0.decode(W,X),X+=g0.decode.bytes,Y.type=m4.toString(W.readUInt16BE(X)),X+=2,Y.class=Sq.toString(W.readUInt16BE(X)),X+=2,!!(Y.class&32768))Y.class&=-32769;return t5.decode.bytes=X-G,Y};t5.decode.bytes=0;t5.encodingLength=function(W){return g0.encodingLength(W.name)+4};wd.AUTHORITATIVE_ANSWER=1024;wd.TRUNCATED_RESPONSE=512;wd.RECURSION_DESIRED=256;wd.RECURSION_AVAILABLE=128;wd.AUTHENTIC_DATA=32;wd.CHECKING_DISABLED=16;wd.DNSSEC_OK=32768;wd.encode=function(W,X,G){let Y=!X;if(Y)X=Z1.alloc(wd.encodingLength(W));if(!G)G=0;let J=G;if(!W.questions)W.questions=[];if(!W.answers)W.answers=[];if(!W.authorities)W.authorities=[];if(!W.additionals)W.additionals=[];if(e5.encode(W,X,G),G+=e5.encode.bytes,G=SV(W.questions,t5,X,G),G=SV(W.answers,V9,X,G),G=SV(W.authorities,V9,X,G),G=SV(W.additionals,V9,X,G),wd.encode.bytes=G-J,Y&&wd.encode.bytes!==X.length)return X.slice(0,wd.encode.bytes);return X};wd.encode.bytes=0;wd.decode=function(W,X){if(!X)X=0;let G=X,Y=e5.decode(W,X);return X+=e5.decode.bytes,X=Fq(Y.questions,t5,W,X),X=Fq(Y.answers,V9,W,X),X=Fq(Y.authorities,V9,W,X),X=Fq(Y.additionals,V9,W,X),wd.decode.bytes=X-G,Y};wd.decode.bytes=0;wd.encodingLength=function(W){return e5.encodingLength(W)+$Y(W.questions||[],t5)+$Y(W.answers||[],V9)+$Y(W.authorities||[],V9)+$Y(W.additionals||[],V9)};wd.streamEncode=function(W){let X=wd.encode(W),G=Z1.alloc(2);G.writeUInt16BE(X.byteLength);let Y=Z1.concat([G,X]);return wd.streamEncode.bytes=Y.byteLength,Y};wd.streamEncode.bytes=0;wd.streamDecode=function(W){let X=W.readUInt16BE(0);if(W.byteLength<X+2)return null;let G=wd.decode(W.slice(2));return wd.streamDecode.bytes=wd.decode.bytes,G};wd.streamDecode.bytes=0;function $Y(W,X){let G=0;for(let Y=0;Y<W.length;Y++)G+=X.encodingLength(W[Y]);return G}function SV(W,X,G,Y){for(let J=0;J<W.length;J++)X.encode(W[J],G,Y),Y+=X.encode.bytes;return Y}function Fq(W,X,G,Y){for(let J=0;J<W.length;J++)W[J]=X.decode(G,Y),Y+=X.decode.bytes;return Y}});var f$=V1((xH0,m$)=>{var b$=Fd;process.nextTick($d,42);m$.exports=Rd;function Rd(W){var X=Y;return G;function G(J){X(J||Bd)}function Y(J){var Z=[J];X=V,W(U);function V(Q){Z.push(Q)}function U(Q){var N=arguments;X=Ld(Q)?Y:q;while(Z.length)q(Z.shift());function q(A){b$(Ed,A,N)}}}}function Ld(W){return Object.prototype.toString.call(W)==="[object Error]"}function Bd(){}function Ed(W,X){W.apply(null,X)}function $d(W){if(W===42)b$=process.nextTick}function Fd(W,X,G){process.nextTick(function(){W(X,G)})}});var l$=V1((kH0,c$)=>{var GK=h$(),Sd=_8("dgram"),xd=f$(),kd=_8("events"),JK=_8("os"),YK=function(){};c$.exports=function(W){if(!W)W={};var X=new kd.EventEmitter,G=typeof W.port==="number"?W.port:5353,Y=W.type||"udp4",J=W.ip||W.host||(Y==="udp4"?"224.0.0.251":null),Z={address:J,port:G},V={},U=!1,Q=null;if(Y==="udp6"&&(!J||!W.interface))throw Error("For IPv6 multicast you must specify `ip` and `interface`");var N=W.socket||Sd.createSocket({type:Y,reuseAddr:W.reuseAddr!==!1,toString:function(){return Y}});N.on("error",function(A){if(A.code==="EACCES"||A.code==="EADDRINUSE")X.emit("error",A);else X.emit("warning",A)}),N.on("message",function(A,H){try{A=GK.decode(A)}catch(I){X.emit("warning",I);return}if(X.emit("packet",A,H),A.type==="query")X.emit("query",A,H);if(A.type==="response")X.emit("response",A,H)}),N.on("listening",function(){if(!G)G=Z.port=N.address().port;if(W.multicast!==!1)X.update(),Q=setInterval(X.update,5000),N.setMulticastTTL(W.ttl||255),N.setMulticastLoopback(W.loopback!==!1)});var q=xd(function(A){if(!G||W.bind===!1)return A(null);N.once("error",A),N.bind(G,W.bind||W.interface,function(){N.removeListener("error",A),A(null)})});return q(function(A){if(A)return X.emit("error",A);X.emit("ready")}),X.send=function(A,H,I){if(typeof H==="function")return X.send(A,null,H);if(!I)I=YK;if(!H)H=Z;else if(!H.host&&!H.address)H.address=Z.address;q(w);function w(O){if(U)return I();if(O)return I(O);var T=GK.encode(A);N.send(T,0,T.length,H.port,H.address||H.host,I)}},X.response=X.respond=function(A,H,I){if(Array.isArray(A))A={answers:A};A.type="response",A.flags=(A.flags||0)|GK.AUTHORITATIVE_ANSWER,X.send(A,H,I)},X.query=function(A,H,I,w){if(typeof H==="function")return X.query(A,null,null,H);if(typeof H==="object"&&H&&H.port)return X.query(A,null,H,I);if(typeof I==="function")return X.query(A,H,null,I);if(!w)w=YK;if(typeof A==="string")A=[{name:A,type:H||"ANY"}];if(Array.isArray(A))A={type:"query",questions:A};A.type="query",X.send(A,I,w)},X.destroy=function(A){if(!A)A=YK;if(U)return process.nextTick(A);U=!0,clearInterval(Q);for(var H in V)try{N.dropMembership(J,H)}catch(I){}V={},N.close(A)},X.update=function(){var A=W.interface?[].concat(W.interface):yd(),H=!1;for(var I=0;I<A.length;I++){var w=A[I];if(V[w])continue;try{N.addMembership(J,w),V[w]=!0,H=!0}catch(O){X.emit("warning",O)}}if(H){if(N.setMulticastInterface)try{N.setMulticastInterface(W.interface||_d())}catch(O){X.emit("warning",O)}X.emit("networkInterface")}},X};function _d(){var W=JK.networkInterfaces(),X=Object.keys(W);for(var G=0;G<X.length;G++){var Y=W[X[G]];for(var J=0;J<Y.length;J++){var Z=Y[J];if(p$(Z.family)&&!Z.internal){if(JK.platform()==="darwin"&&X[G]==="en0")return Z.address;return"0.0.0.0"}}}return"127.0.0.1"}function yd(){var W=JK.networkInterfaces(),X=Object.keys(W),G=[];for(var Y=0;Y<X.length;Y++){var J=W[X[Y]];for(var Z=0;Z<J.length;Z++){var V=J[Z];if(p$(V.family)){G.push(V.address);break}}}return G}function p$(W){return W===4||W==="IPv4"}});import{Database as $t}from"bun:sqlite";import{mkdirSync as Ft}from"fs";import{dirname as St}from"path";function zD(W){let X=W.length,G=0,Y=0;while(Y<X){let J=W.charCodeAt(Y++);if((J&4294967168)===0){G++;continue}else if((J&4294965248)===0)G+=2;else{if(J>=55296&&J<=56319){if(Y<X){let Z=W.charCodeAt(Y);if((Z&64512)===56320)++Y,J=((J&1023)<<10)+(Z&1023)+65536}}if((J&4294901760)===0)G+=3;else G+=4}}return G}function o_(W,X,G){let Y=W.length,J=G,Z=0;while(Z<Y){let V=W.charCodeAt(Z++);if((V&4294967168)===0){X[J++]=V;continue}else if((V&4294965248)===0)X[J++]=V>>6&31|192;else{if(V>=55296&&V<=56319){if(Z<Y){let U=W.charCodeAt(Z);if((U&64512)===56320)++Z,V=((V&1023)<<10)+(U&1023)+65536}}if((V&4294901760)===0)X[J++]=V>>12&15|224,X[J++]=V>>6&63|128;else X[J++]=V>>18&7|240,X[J++]=V>>12&63|128,X[J++]=V>>6&63|128}X[J++]=V&63|128}}var n_=new TextEncoder,i_=50;function r_(W,X,G){n_.encodeInto(W,X.subarray(G))}function ID(W,X,G){if(W.length>i_)r_(W,X,G);else o_(W,X,G)}var a_=4096;function IA(W,X,G){let Y=X,J=Y+G,Z=[],V="";while(Y<J){let U=W[Y++];if((U&128)===0)Z.push(U);else if((U&224)===192){let Q=W[Y++]&63;Z.push((U&31)<<6|Q)}else if((U&240)===224){let Q=W[Y++]&63,N=W[Y++]&63;Z.push((U&31)<<12|Q<<6|N)}else if((U&248)===240){let Q=W[Y++]&63,N=W[Y++]&63,q=W[Y++]&63,A=(U&7)<<18|Q<<12|N<<6|q;if(A>65535)A-=65536,Z.push(A>>>10&1023|55296),A=56320|A&1023;Z.push(A)}else Z.push(U);if(Z.length>=a_)V+=String.fromCharCode(...Z),Z.length=0}if(Z.length>0)V+=String.fromCharCode(...Z);return V}var s_=new TextDecoder,t_=200;function e_(W,X,G){let Y=W.subarray(X,X+G);return s_.decode(Y)}function wD(W,X,G){if(G>t_)return e_(W,X,G);else return IA(W,X,G)}class cX{type;data;constructor(W,X){this.type=W,this.data=X}}class x9 extends Error{constructor(W){super(W);let X=Object.create(x9.prototype);Object.setPrototypeOf(this,X),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:x9.name})}}var lX=4294967295;function jD(W,X,G){let Y=G/4294967296,J=G;W.setUint32(X,Y),W.setUint32(X+4,J)}function vU(W,X,G){let Y=Math.floor(G/4294967296),J=G;W.setUint32(X,Y),W.setUint32(X+4,J)}function gU(W,X){let G=W.getInt32(X),Y=W.getUint32(X+4);return G*4294967296+Y}function KD(W,X){let G=W.getUint32(X),Y=W.getUint32(X+4);return G*4294967296+Y}var Wy=-1,Xy=4294967295,Gy=17179869183;function Yy({sec:W,nsec:X}){if(W>=0&&X>=0&&W<=Gy)if(X===0&&W<=Xy){let G=new Uint8Array(4);return new DataView(G.buffer).setUint32(0,W),G}else{let G=W/4294967296,Y=W&4294967295,J=new Uint8Array(8),Z=new DataView(J.buffer);return Z.setUint32(0,X<<2|G&3),Z.setUint32(4,Y),J}else{let G=new Uint8Array(12),Y=new DataView(G.buffer);return Y.setUint32(0,X),vU(Y,4,W),G}}function Jy(W){let X=W.getTime(),G=Math.floor(X/1000),Y=(X-G*1000)*1e6,J=Math.floor(Y/1e9);return{sec:G+J,nsec:Y-J*1e9}}function Zy(W){if(W instanceof Date){let X=Jy(W);return Yy(X)}else return null}function Vy(W){let X=new DataView(W.buffer,W.byteOffset,W.byteLength);switch(W.byteLength){case 4:{let G=X.getUint32(0),Y=0;return{sec:G,nsec:0}}case 8:{let G=X.getUint32(0),Y=X.getUint32(4),J=(G&3)*4294967296+Y,Z=G>>>2;return{sec:J,nsec:Z}}case 12:{let G=gU(X,4),Y=X.getUint32(0);return{sec:G,nsec:Y}}default:throw new x9(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${W.length}`)}}function Uy(W){let X=Vy(W);return new Date(X.sec*1000+X.nsec/1e6)}var OD={type:Wy,encode:Zy,decode:Uy};class dX{static defaultCodec=new dX;__brand;builtInEncoders=[];builtInDecoders=[];encoders=[];decoders=[];constructor(){this.register(OD)}register({type:W,encode:X,decode:G}){if(W>=0)this.encoders[W]=X,this.decoders[W]=G;else{let Y=-1-W;this.builtInEncoders[Y]=X,this.builtInDecoders[Y]=G}}tryToEncode(W,X){for(let G=0;G<this.builtInEncoders.length;G++){let Y=this.builtInEncoders[G];if(Y!=null){let J=Y(W,X);if(J!=null){let Z=-1-G;return new cX(Z,J)}}}for(let G=0;G<this.encoders.length;G++){let Y=this.encoders[G];if(Y!=null){let J=Y(W,X);if(J!=null)return new cX(G,J)}}if(W instanceof cX)return W;return null}decode(W,X,G){let Y=X<0?this.builtInDecoders[-1-X]:this.decoders[X];if(Y)return Y(W,X,G);else return new cX(X,W)}}function Qy(W){return W instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&W instanceof SharedArrayBuffer}function QJ(W){if(W instanceof Uint8Array)return W;else if(ArrayBuffer.isView(W))return new Uint8Array(W.buffer,W.byteOffset,W.byteLength);else if(Qy(W))return new Uint8Array(W);else return Uint8Array.from(W)}var Ny=100,qy=2048;class uU{extensionCodec;context;useBigInt64;maxDepth;initialBufferSize;sortKeys;forceFloat32;ignoreUndefined;forceIntegerToFloat;pos;view;bytes;entered=!1;constructor(W){this.extensionCodec=W?.extensionCodec??dX.defaultCodec,this.context=W?.context,this.useBigInt64=W?.useBigInt64??!1,this.maxDepth=W?.maxDepth??Ny,this.initialBufferSize=W?.initialBufferSize??qy,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 uU({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,X){if(X>this.maxDepth)throw Error(`Too deep objects in depth ${X}`);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,X)}ensureBufferSizeToWrite(W){let X=this.pos+W;if(this.view.byteLength<X)this.resizeBuffer(X*2)}resizeBuffer(W){let X=new ArrayBuffer(W),G=new Uint8Array(X),Y=new DataView(X);G.set(this.bytes),this.view=Y,this.bytes=G}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 G=zD(W);this.ensureBufferSizeToWrite(5+G),this.writeStringHeader(G),ID(W,this.bytes,this.pos),this.pos+=G}encodeObject(W,X){let G=this.extensionCodec.tryToEncode(W,this.context);if(G!=null)this.encodeExtension(G);else if(Array.isArray(W))this.encodeArray(W,X);else if(ArrayBuffer.isView(W))this.encodeBinary(W);else if(typeof W==="object")this.encodeMap(W,X);else throw Error(`Unrecognized object: ${Object.prototype.toString.apply(W)}`)}encodeBinary(W){let X=W.byteLength;if(X<256)this.writeU8(196),this.writeU8(X);else if(X<65536)this.writeU8(197),this.writeU16(X);else if(X<4294967296)this.writeU8(198),this.writeU32(X);else throw Error(`Too large binary: ${X}`);let G=QJ(W);this.writeU8a(G)}encodeArray(W,X){let G=W.length;if(G<16)this.writeU8(144+G);else if(G<65536)this.writeU8(220),this.writeU16(G);else if(G<4294967296)this.writeU8(221),this.writeU32(G);else throw Error(`Too large array: ${G}`);for(let Y of W)this.doEncode(Y,X+1)}countWithoutUndefined(W,X){let G=0;for(let Y of X)if(W[Y]!==void 0)G++;return G}encodeMap(W,X){let G=Object.keys(W);if(this.sortKeys)G.sort();let Y=this.ignoreUndefined?this.countWithoutUndefined(W,G):G.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 J of G){let Z=W[J];if(!(this.ignoreUndefined&&Z===void 0))this.encodeString(J),this.doEncode(Z,X+1)}}encodeExtension(W){if(typeof W.data==="function"){let G=W.data(this.pos+6),Y=G.length;if(Y>=4294967296)throw Error(`Too large extension object: ${Y}`);this.writeU8(201),this.writeU32(Y),this.writeI8(W.type),this.writeU8a(G);return}let X=W.data.length;if(X===1)this.writeU8(212);else if(X===2)this.writeU8(213);else if(X===4)this.writeU8(214);else if(X===8)this.writeU8(215);else if(X===16)this.writeU8(216);else if(X<256)this.writeU8(199),this.writeU8(X);else if(X<65536)this.writeU8(200),this.writeU16(X);else if(X<4294967296)this.writeU8(201),this.writeU32(X);else throw Error(`Too large extension object: ${X}`);this.writeI8(W.type),this.writeU8a(W.data)}writeU8(W){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,W),this.pos++}writeU8a(W){let X=W.length;this.ensureBufferSizeToWrite(X),this.bytes.set(W,this.pos),this.pos+=X}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),jD(this.view,this.pos,W),this.pos+=8}writeI64(W){this.ensureBufferSizeToWrite(8),vU(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 hU(W,X){return new uU(X).encodeSharedRef(W)}function bU(W){return`${W<0?"-":""}0x${Math.abs(W).toString(16).padStart(2,"0")}`}var Hy=16,Ay=16;class wA{hit=0;miss=0;caches;maxKeyLength;maxLengthPerKey;constructor(W=Hy,X=Ay){this.maxKeyLength=W,this.maxLengthPerKey=X,this.caches=[];for(let G=0;G<this.maxKeyLength;G++)this.caches.push([])}canBeCached(W){return W>0&&W<=this.maxKeyLength}find(W,X,G){let Y=this.caches[G-1];W:for(let J of Y){let Z=J.bytes;for(let V=0;V<G;V++)if(Z[V]!==W[X+V])continue W;return J.str}return null}store(W,X){let G=this.caches[W.length-1],Y={bytes:W,str:X};if(G.length>=this.maxLengthPerKey)G[Math.random()*G.length|0]=Y;else G.push(Y)}decode(W,X,G){let Y=this.find(W,X,G);if(Y!=null)return this.hit++,Y;this.miss++;let J=IA(W,X,G),Z=Uint8Array.prototype.slice.call(W,X,X+G);return this.store(Z,J),J}}var jA="array",qJ="map_key",CD="map_value",zy=(W)=>{if(typeof W==="string"||typeof W==="number")return W;throw new x9("The type of key must be string or number but "+typeof W)};class TD{stack=[];stackHeadPosition=-1;get length(){return this.stackHeadPosition+1}top(){return this.stack[this.stackHeadPosition]}pushArrayState(W){let X=this.getUninitializedStateFromPool();X.type=jA,X.position=0,X.size=W,X.array=Array(W)}pushMapState(W){let X=this.getUninitializedStateFromPool();X.type=qJ,X.readCount=0,X.size=W,X.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===jA){let G=W;G.size=0,G.array=void 0,G.position=0,G.type=void 0}if(W.type===qJ||W.type===CD){let G=W;G.size=0,G.map=void 0,G.readCount=0,G.type=void 0}this.stackHeadPosition--}reset(){this.stack.length=0,this.stackHeadPosition=-1}}var NJ=-1,KA=new DataView(new ArrayBuffer(0)),Iy=new Uint8Array(KA.buffer);try{KA.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 DD=RangeError("Insufficient data"),wy=new wA;class mU{extensionCodec;context;useBigInt64;rawStrings;maxStrLength;maxBinLength;maxArrayLength;maxMapLength;maxExtLength;keyDecoder;mapKeyConverter;totalPos=0;pos=0;view=KA;bytes=Iy;headByte=NJ;stack=new TD;entered=!1;constructor(W){this.extensionCodec=W?.extensionCodec??dX.defaultCodec,this.context=W?.context,this.useBigInt64=W?.useBigInt64??!1,this.rawStrings=W?.rawStrings??!1,this.maxStrLength=W?.maxStrLength??lX,this.maxBinLength=W?.maxBinLength??lX,this.maxArrayLength=W?.maxArrayLength??lX,this.maxMapLength=W?.maxMapLength??lX,this.maxExtLength=W?.maxExtLength??lX,this.keyDecoder=W?.keyDecoder!==void 0?W.keyDecoder:wy,this.mapKeyConverter=W?.mapKeyConverter??zy}clone(){return new mU({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=NJ,this.stack.reset()}setBuffer(W){let X=QJ(W);this.bytes=X,this.view=new DataView(X.buffer,X.byteOffset,X.byteLength),this.pos=0}appendBuffer(W){if(this.headByte===NJ&&!this.hasRemaining(1))this.setBuffer(W);else{let X=this.bytes.subarray(this.pos),G=QJ(W),Y=new Uint8Array(X.length+G.length);Y.set(X),Y.set(G,X.length),this.setBuffer(Y)}}hasRemaining(W){return this.view.byteLength-this.pos>=W}createExtraByteError(W){let{view:X,pos:G}=this;return RangeError(`Extra ${X.byteLength-G} of ${X.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 X=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return X}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 X=!1,G;for await(let V of W){if(X)throw this.entered=!1,this.createExtraByteError(this.totalPos);this.appendBuffer(V);try{G=this.doDecodeSync(),X=!0}catch(U){if(!(U instanceof RangeError))throw U}this.totalPos+=this.pos}if(X){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return G}let{headByte:Y,pos:J,totalPos:Z}=this;throw RangeError(`Insufficient data in parsing ${bU(Y)} at ${Z} (${J} 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,X){if(this.entered){yield*this.clone().decodeMultiAsync(W,X);return}try{this.entered=!0;let G=X,Y=-1;for await(let J of W){if(X&&Y===0)throw this.createExtraByteError(this.totalPos);if(this.appendBuffer(J),G)Y=this.readArraySize(),G=!1,this.complete();try{while(!0)if(yield this.doDecodeSync(),--Y===0)break}catch(Z){if(!(Z instanceof RangeError))throw Z}this.totalPos+=this.pos}}finally{this.entered=!1}}doDecodeSync(){W:while(!0){let W=this.readHeadByte(),X;if(W>=224)X=W-256;else if(W<192)if(W<128)X=W;else if(W<144){let Y=W-128;if(Y!==0){this.pushMapState(Y),this.complete();continue W}else X={}}else if(W<160){let Y=W-144;if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else X=[]}else{let Y=W-160;X=this.decodeString(Y,0)}else if(W===192)X=null;else if(W===194)X=!1;else if(W===195)X=!0;else if(W===202)X=this.readF32();else if(W===203)X=this.readF64();else if(W===204)X=this.readU8();else if(W===205)X=this.readU16();else if(W===206)X=this.readU32();else if(W===207)if(this.useBigInt64)X=this.readU64AsBigInt();else X=this.readU64();else if(W===208)X=this.readI8();else if(W===209)X=this.readI16();else if(W===210)X=this.readI32();else if(W===211)if(this.useBigInt64)X=this.readI64AsBigInt();else X=this.readI64();else if(W===217){let Y=this.lookU8();X=this.decodeString(Y,1)}else if(W===218){let Y=this.lookU16();X=this.decodeString(Y,2)}else if(W===219){let Y=this.lookU32();X=this.decodeString(Y,4)}else if(W===220){let Y=this.readU16();if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else X=[]}else if(W===221){let Y=this.readU32();if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else X=[]}else if(W===222){let Y=this.readU16();if(Y!==0){this.pushMapState(Y),this.complete();continue W}else X={}}else if(W===223){let Y=this.readU32();if(Y!==0){this.pushMapState(Y),this.complete();continue W}else X={}}else if(W===196){let Y=this.lookU8();X=this.decodeBinary(Y,1)}else if(W===197){let Y=this.lookU16();X=this.decodeBinary(Y,2)}else if(W===198){let Y=this.lookU32();X=this.decodeBinary(Y,4)}else if(W===212)X=this.decodeExtension(1,0);else if(W===213)X=this.decodeExtension(2,0);else if(W===214)X=this.decodeExtension(4,0);else if(W===215)X=this.decodeExtension(8,0);else if(W===216)X=this.decodeExtension(16,0);else if(W===199){let Y=this.lookU8();X=this.decodeExtension(Y,1)}else if(W===200){let Y=this.lookU16();X=this.decodeExtension(Y,2)}else if(W===201){let Y=this.lookU32();X=this.decodeExtension(Y,4)}else throw new x9(`Unrecognized type byte: ${bU(W)}`);this.complete();let G=this.stack;while(G.length>0){let Y=G.top();if(Y.type===jA)if(Y.array[Y.position]=X,Y.position++,Y.position===Y.size)X=Y.array,G.release(Y);else continue W;else if(Y.type===qJ){if(X==="__proto__")throw new x9("The key __proto__ is not allowed");Y.key=this.mapKeyConverter(X),Y.type=CD;continue W}else if(Y.map[Y.key]=X,Y.readCount++,Y.readCount===Y.size)X=Y.map,G.release(Y);else{Y.key=null,Y.type=qJ;continue W}}return X}}readHeadByte(){if(this.headByte===NJ)this.headByte=this.readU8();return this.headByte}complete(){this.headByte=NJ}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 x9(`Unrecognized array type byte: ${bU(W)}`)}}pushMapState(W){if(W>this.maxMapLength)throw new x9(`Max length exceeded: map length (${W}) > maxMapLengthLength (${this.maxMapLength})`);this.stack.pushMapState(W)}pushArrayState(W){if(W>this.maxArrayLength)throw new x9(`Max length exceeded: array length (${W}) > maxArrayLength (${this.maxArrayLength})`);this.stack.pushArrayState(W)}decodeString(W,X){if(!this.rawStrings||this.stateIsMapKey())return this.decodeUtf8String(W,X);return this.decodeBinary(W,X)}decodeUtf8String(W,X){if(W>this.maxStrLength)throw new x9(`Max length exceeded: UTF-8 byte length (${W}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+X+W)throw DD;let G=this.pos+X,Y;if(this.stateIsMapKey()&&this.keyDecoder?.canBeCached(W))Y=this.keyDecoder.decode(this.bytes,G,W);else Y=wD(this.bytes,G,W);return this.pos+=X+W,Y}stateIsMapKey(){if(this.stack.length>0)return this.stack.top().type===qJ;return!1}decodeBinary(W,X){if(W>this.maxBinLength)throw new x9(`Max length exceeded: bin length (${W}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(W+X))throw DD;let G=this.pos+X,Y=this.bytes.subarray(G,G+W);return this.pos+=X+W,Y}decodeExtension(W,X){if(W>this.maxExtLength)throw new x9(`Max length exceeded: ext length (${W}) > maxExtLength (${this.maxExtLength})`);let G=this.view.getInt8(this.pos+X),Y=this.decodeBinary(W,X+1);return this.extensionCodec.decode(Y,G,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=KD(this.view,this.pos);return this.pos+=8,W}readI64(){let W=gU(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 AW(W,X){return new mU(X).decode(W)}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */function sX(W){let X=W.length;while(--X>=0)W[X]=0}var jy=0,VC=1,Ky=2,Oy=3,Dy=258,fA=29,LJ=256,KJ=LJ+1+fA,iX=30,pA=19,UC=2*KJ+1,zW=15,OA=16,Cy=7,cA=256,QC=16,NC=17,qC=18,kA=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]),oU=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]),Ty=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),HC=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),My=512,e7=Array((KJ+2)*2);sX(e7);var IJ=Array(iX*2);sX(IJ);var OJ=Array(My);sX(OJ);var DJ=Array(Dy-Oy+1);sX(DJ);var lA=Array(fA);sX(lA);var nU=Array(iX);sX(nU);function DA(W,X,G,Y,J){this.static_tree=W,this.extra_bits=X,this.extra_base=G,this.elems=Y,this.max_length=J,this.has_stree=W&&W.length}var AC,zC,IC;function CA(W,X){this.dyn_tree=W,this.max_code=0,this.stat_desc=X}var wC=(W)=>{return W<256?OJ[W]:OJ[256+(W>>>7)]},CJ=(W,X)=>{W.pending_buf[W.pending++]=X&255,W.pending_buf[W.pending++]=X>>>8&255},b9=(W,X,G)=>{if(W.bi_valid>OA-G)W.bi_buf|=X<<W.bi_valid&65535,CJ(W,W.bi_buf),W.bi_buf=X>>OA-W.bi_valid,W.bi_valid+=G-OA;else W.bi_buf|=X<<W.bi_valid&65535,W.bi_valid+=G},H7=(W,X,G)=>{b9(W,G[X*2],G[X*2+1])},jC=(W,X)=>{let G=0;do G|=W&1,W>>>=1,G<<=1;while(--X>0);return G>>>1},Py=(W)=>{if(W.bi_valid===16)CJ(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},Ry=(W,X)=>{let{dyn_tree:G,max_code:Y}=X,J=X.stat_desc.static_tree,Z=X.stat_desc.has_stree,V=X.stat_desc.extra_bits,U=X.stat_desc.extra_base,Q=X.stat_desc.max_length,N,q,A,H,I,w,O=0;for(H=0;H<=zW;H++)W.bl_count[H]=0;G[W.heap[W.heap_max]*2+1]=0;for(N=W.heap_max+1;N<UC;N++){if(q=W.heap[N],H=G[G[q*2+1]*2+1]+1,H>Q)H=Q,O++;if(G[q*2+1]=H,q>Y)continue;if(W.bl_count[H]++,I=0,q>=U)I=V[q-U];if(w=G[q*2],W.opt_len+=w*(H+I),Z)W.static_len+=w*(J[q*2+1]+I)}if(O===0)return;do{H=Q-1;while(W.bl_count[H]===0)H--;W.bl_count[H]--,W.bl_count[H+1]+=2,W.bl_count[Q]--,O-=2}while(O>0);for(H=Q;H!==0;H--){q=W.bl_count[H];while(q!==0){if(A=W.heap[--N],A>Y)continue;if(G[A*2+1]!==H)W.opt_len+=(H-G[A*2+1])*G[A*2],G[A*2+1]=H;q--}}},KC=(W,X,G)=>{let Y=Array(zW+1),J=0,Z,V;for(Z=1;Z<=zW;Z++)J=J+G[Z-1]<<1,Y[Z]=J;for(V=0;V<=X;V++){let U=W[V*2+1];if(U===0)continue;W[V*2]=jC(Y[U]++,U)}},Ly=()=>{let W,X,G,Y,J,Z=Array(zW+1);G=0;for(Y=0;Y<fA-1;Y++){lA[Y]=G;for(W=0;W<1<<kA[Y];W++)DJ[G++]=Y}DJ[G-1]=Y,J=0;for(Y=0;Y<16;Y++){nU[Y]=J;for(W=0;W<1<<oU[Y];W++)OJ[J++]=Y}J>>=7;for(;Y<iX;Y++){nU[Y]=J<<7;for(W=0;W<1<<oU[Y]-7;W++)OJ[256+J++]=Y}for(X=0;X<=zW;X++)Z[X]=0;W=0;while(W<=143)e7[W*2+1]=8,W++,Z[8]++;while(W<=255)e7[W*2+1]=9,W++,Z[9]++;while(W<=279)e7[W*2+1]=7,W++,Z[7]++;while(W<=287)e7[W*2+1]=8,W++,Z[8]++;KC(e7,KJ+1,Z);for(W=0;W<iX;W++)IJ[W*2+1]=5,IJ[W*2]=jC(W,5);AC=new DA(e7,kA,LJ+1,KJ,zW),zC=new DA(IJ,oU,0,iX,zW),IC=new DA([],Ty,0,pA,Cy)},OC=(W)=>{let X;for(X=0;X<KJ;X++)W.dyn_ltree[X*2]=0;for(X=0;X<iX;X++)W.dyn_dtree[X*2]=0;for(X=0;X<pA;X++)W.bl_tree[X*2]=0;W.dyn_ltree[cA*2]=1,W.opt_len=W.static_len=0,W.sym_next=W.matches=0},DC=(W)=>{if(W.bi_valid>8)CJ(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},MD=(W,X,G,Y)=>{let J=X*2,Z=G*2;return W[J]<W[Z]||W[J]===W[Z]&&Y[X]<=Y[G]},TA=(W,X,G)=>{let Y=W.heap[G],J=G<<1;while(J<=W.heap_len){if(J<W.heap_len&&MD(X,W.heap[J+1],W.heap[J],W.depth))J++;if(MD(X,Y,W.heap[J],W.depth))break;W.heap[G]=W.heap[J],G=J,J<<=1}W.heap[G]=Y},PD=(W,X,G)=>{let Y,J,Z=0,V,U;if(W.sym_next!==0)do if(Y=W.pending_buf[W.sym_buf+Z++]&255,Y+=(W.pending_buf[W.sym_buf+Z++]&255)<<8,J=W.pending_buf[W.sym_buf+Z++],Y===0)H7(W,J,X);else{if(V=DJ[J],H7(W,V+LJ+1,X),U=kA[V],U!==0)J-=lA[V],b9(W,J,U);if(Y--,V=wC(Y),H7(W,V,G),U=oU[V],U!==0)Y-=nU[V],b9(W,Y,U)}while(Z<W.sym_next);H7(W,cA,X)},_A=(W,X)=>{let G=X.dyn_tree,Y=X.stat_desc.static_tree,J=X.stat_desc.has_stree,Z=X.stat_desc.elems,V,U,Q=-1,N;W.heap_len=0,W.heap_max=UC;for(V=0;V<Z;V++)if(G[V*2]!==0)W.heap[++W.heap_len]=Q=V,W.depth[V]=0;else G[V*2+1]=0;while(W.heap_len<2)if(N=W.heap[++W.heap_len]=Q<2?++Q:0,G[N*2]=1,W.depth[N]=0,W.opt_len--,J)W.static_len-=Y[N*2+1];X.max_code=Q;for(V=W.heap_len>>1;V>=1;V--)TA(W,G,V);N=Z;do V=W.heap[1],W.heap[1]=W.heap[W.heap_len--],TA(W,G,1),U=W.heap[1],W.heap[--W.heap_max]=V,W.heap[--W.heap_max]=U,G[N*2]=G[V*2]+G[U*2],W.depth[N]=(W.depth[V]>=W.depth[U]?W.depth[V]:W.depth[U])+1,G[V*2+1]=G[U*2+1]=N,W.heap[1]=N++,TA(W,G,1);while(W.heap_len>=2);W.heap[--W.heap_max]=W.heap[1],Ry(W,X),KC(G,Q,W.bl_count)},RD=(W,X,G)=>{let Y,J=-1,Z,V=X[1],U=0,Q=7,N=4;if(V===0)Q=138,N=3;X[(G+1)*2+1]=65535;for(Y=0;Y<=G;Y++){if(Z=V,V=X[(Y+1)*2+1],++U<Q&&Z===V)continue;else if(U<N)W.bl_tree[Z*2]+=U;else if(Z!==0){if(Z!==J)W.bl_tree[Z*2]++;W.bl_tree[QC*2]++}else if(U<=10)W.bl_tree[NC*2]++;else W.bl_tree[qC*2]++;if(U=0,J=Z,V===0)Q=138,N=3;else if(Z===V)Q=6,N=3;else Q=7,N=4}},LD=(W,X,G)=>{let Y,J=-1,Z,V=X[1],U=0,Q=7,N=4;if(V===0)Q=138,N=3;for(Y=0;Y<=G;Y++){if(Z=V,V=X[(Y+1)*2+1],++U<Q&&Z===V)continue;else if(U<N)do H7(W,Z,W.bl_tree);while(--U!==0);else if(Z!==0){if(Z!==J)H7(W,Z,W.bl_tree),U--;H7(W,QC,W.bl_tree),b9(W,U-3,2)}else if(U<=10)H7(W,NC,W.bl_tree),b9(W,U-3,3);else H7(W,qC,W.bl_tree),b9(W,U-11,7);if(U=0,J=Z,V===0)Q=138,N=3;else if(Z===V)Q=6,N=3;else Q=7,N=4}},By=(W)=>{let X;RD(W,W.dyn_ltree,W.l_desc.max_code),RD(W,W.dyn_dtree,W.d_desc.max_code),_A(W,W.bl_desc);for(X=pA-1;X>=3;X--)if(W.bl_tree[HC[X]*2+1]!==0)break;return W.opt_len+=3*(X+1)+5+5+4,X},Ey=(W,X,G,Y)=>{let J;b9(W,X-257,5),b9(W,G-1,5),b9(W,Y-4,4);for(J=0;J<Y;J++)b9(W,W.bl_tree[HC[J]*2+1],3);LD(W,W.dyn_ltree,X-1),LD(W,W.dyn_dtree,G-1)},$y=(W)=>{let X=4093624447,G;for(G=0;G<=31;G++,X>>>=1)if(X&1&&W.dyn_ltree[G*2]!==0)return 0;if(W.dyn_ltree[18]!==0||W.dyn_ltree[20]!==0||W.dyn_ltree[26]!==0)return 1;for(G=32;G<LJ;G++)if(W.dyn_ltree[G*2]!==0)return 1;return 0},BD=!1,Fy=(W)=>{if(!BD)Ly(),BD=!0;W.l_desc=new CA(W.dyn_ltree,AC),W.d_desc=new CA(W.dyn_dtree,zC),W.bl_desc=new CA(W.bl_tree,IC),W.bi_buf=0,W.bi_valid=0,OC(W)},CC=(W,X,G,Y)=>{if(b9(W,(jy<<1)+(Y?1:0),3),DC(W),CJ(W,G),CJ(W,~G),G)W.pending_buf.set(W.window.subarray(X,X+G),W.pending);W.pending+=G},Sy=(W)=>{b9(W,VC<<1,3),H7(W,cA,e7),Py(W)},xy=(W,X,G,Y)=>{let J,Z,V=0;if(W.level>0){if(W.strm.data_type===2)W.strm.data_type=$y(W);if(_A(W,W.l_desc),_A(W,W.d_desc),V=By(W),J=W.opt_len+3+7>>>3,Z=W.static_len+3+7>>>3,Z<=J)J=Z}else J=Z=G+5;if(G+4<=J&&X!==-1)CC(W,X,G,Y);else if(W.strategy===4||Z===J)b9(W,(VC<<1)+(Y?1:0),3),PD(W,e7,IJ);else b9(W,(Ky<<1)+(Y?1:0),3),Ey(W,W.l_desc.max_code+1,W.d_desc.max_code+1,V+1),PD(W,W.dyn_ltree,W.dyn_dtree);if(OC(W),Y)DC(W)},ky=(W,X,G)=>{if(W.pending_buf[W.sym_buf+W.sym_next++]=X,W.pending_buf[W.sym_buf+W.sym_next++]=X>>8,W.pending_buf[W.sym_buf+W.sym_next++]=G,X===0)W.dyn_ltree[G*2]++;else W.matches++,X--,W.dyn_ltree[(DJ[G]+LJ+1)*2]++,W.dyn_dtree[wC(X)*2]++;return W.sym_next===W.sym_end},_y=Fy,yy=CC,vy=xy,gy=ky,uy=Sy,hy={_tr_init:_y,_tr_stored_block:yy,_tr_flush_block:vy,_tr_tally:gy,_tr_align:uy},by=(W,X,G,Y)=>{let J=W&65535|0,Z=W>>>16&65535|0,V=0;while(G!==0){V=G>2000?2000:G,G-=V;do J=J+X[Y++]|0,Z=Z+J|0;while(--V);J%=65521,Z%=65521}return J|Z<<16|0},TJ=by,my=()=>{let W,X=[];for(var G=0;G<256;G++){W=G;for(var Y=0;Y<8;Y++)W=W&1?3988292384^W>>>1:W>>>1;X[G]=W}return X},fy=new Uint32Array(my()),py=(W,X,G,Y)=>{let J=fy,Z=Y+G;W^=-1;for(let V=Y;V<Z;V++)W=W>>>8^J[(W^X[V])&255];return W^-1},r8=py,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"},DW={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:cy,_tr_stored_block:yA,_tr_flush_block:ly,_tr_tally:U6,_tr_align:dy}=hy,{Z_NO_FLUSH:Q6,Z_PARTIAL_FLUSH:oy,Z_FULL_FLUSH:ny,Z_FINISH:j5,Z_BLOCK:ED,Z_OK:W9,Z_STREAM_END:$D,Z_STREAM_ERROR:A7,Z_DATA_ERROR:iy,Z_BUF_ERROR:MA,Z_DEFAULT_COMPRESSION:ry,Z_FILTERED:ay,Z_HUFFMAN_ONLY:fU,Z_RLE:sy,Z_FIXED:ty,Z_DEFAULT_STRATEGY:ey,Z_UNKNOWN:Wv,Z_DEFLATED:aU}=DW,Xv=9,Gv=15,Yv=8,Jv=29,Zv=256,vA=Zv+1+Jv,Vv=30,Uv=19,Qv=2*vA+1,Nv=15,f1=3,V6=258,z7=V6+f1+1,qv=32,rX=42,dA=57,gA=69,uA=73,hA=91,bA=103,IW=113,AJ=666,k9=1,tX=2,KW=3,eX=4,Hv=3,wW=(W,X)=>{return W.msg=jW[X],X},FD=(W)=>{return W*2-(W>4?9:0)},Z6=(W)=>{let X=W.length;while(--X>=0)W[X]=0},Av=(W)=>{let X,G,Y,J=W.w_size;X=W.hash_size,Y=X;do G=W.head[--Y],W.head[Y]=G>=J?G-J:0;while(--X);X=J,Y=X;do G=W.prev[--Y],W.prev[Y]=G>=J?G-J:0;while(--X)},zv=(W,X,G)=>(X<<W.hash_shift^G)&W.hash_mask,N6=zv,X5=(W)=>{let X=W.state,G=X.pending;if(G>W.avail_out)G=W.avail_out;if(G===0)return;if(W.output.set(X.pending_buf.subarray(X.pending_out,X.pending_out+G),W.next_out),W.next_out+=G,X.pending_out+=G,W.total_out+=G,W.avail_out-=G,X.pending-=G,X.pending===0)X.pending_out=0},G5=(W,X)=>{ly(W,W.block_start>=0?W.block_start:-1,W.strstart-W.block_start,X),W.block_start=W.strstart,X5(W.strm)},t1=(W,X)=>{W.pending_buf[W.pending++]=X},HJ=(W,X)=>{W.pending_buf[W.pending++]=X>>>8&255,W.pending_buf[W.pending++]=X&255},mA=(W,X,G,Y)=>{let J=W.avail_in;if(J>Y)J=Y;if(J===0)return 0;if(W.avail_in-=J,X.set(W.input.subarray(W.next_in,W.next_in+J),G),W.state.wrap===1)W.adler=TJ(W.adler,X,J,G);else if(W.state.wrap===2)W.adler=r8(W.adler,X,J,G);return W.next_in+=J,W.total_in+=J,J},TC=(W,X)=>{let{max_chain_length:G,strstart:Y}=W,J,Z,V=W.prev_length,U=W.nice_match,Q=W.strstart>W.w_size-z7?W.strstart-(W.w_size-z7):0,N=W.window,q=W.w_mask,A=W.prev,H=W.strstart+V6,I=N[Y+V-1],w=N[Y+V];if(W.prev_length>=W.good_match)G>>=2;if(U>W.lookahead)U=W.lookahead;do{if(J=X,N[J+V]!==w||N[J+V-1]!==I||N[J]!==N[Y]||N[++J]!==N[Y+1])continue;Y+=2,J++;do;while(N[++Y]===N[++J]&&N[++Y]===N[++J]&&N[++Y]===N[++J]&&N[++Y]===N[++J]&&N[++Y]===N[++J]&&N[++Y]===N[++J]&&N[++Y]===N[++J]&&N[++Y]===N[++J]&&Y<H);if(Z=V6-(H-Y),Y=H-V6,Z>V){if(W.match_start=X,V=Z,Z>=U)break;I=N[Y+V-1],w=N[Y+V]}}while((X=A[X&q])>Q&&--G!==0);if(V<=W.lookahead)return V;return W.lookahead},aX=(W)=>{let X=W.w_size,G,Y,J;do{if(Y=W.window_size-W.lookahead-W.strstart,W.strstart>=X+(X-z7)){if(W.window.set(W.window.subarray(X,X+X-Y),0),W.match_start-=X,W.strstart-=X,W.block_start-=X,W.insert>W.strstart)W.insert=W.strstart;Av(W),Y+=X}if(W.strm.avail_in===0)break;if(G=mA(W.strm,W.window,W.strstart+W.lookahead,Y),W.lookahead+=G,W.lookahead+W.insert>=f1){J=W.strstart-W.insert,W.ins_h=W.window[J],W.ins_h=N6(W,W.ins_h,W.window[J+1]);while(W.insert)if(W.ins_h=N6(W,W.ins_h,W.window[J+f1-1]),W.prev[J&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=J,J++,W.insert--,W.lookahead+W.insert<f1)break}}while(W.lookahead<z7&&W.strm.avail_in!==0)},MC=(W,X)=>{let G=W.pending_buf_size-5>W.w_size?W.w_size:W.pending_buf_size-5,Y,J,Z,V=0,U=W.strm.avail_in;do{if(Y=65535,Z=W.bi_valid+42>>3,W.strm.avail_out<Z)break;if(Z=W.strm.avail_out-Z,J=W.strstart-W.block_start,Y>J+W.strm.avail_in)Y=J+W.strm.avail_in;if(Y>Z)Y=Z;if(Y<G&&(Y===0&&X!==j5||X===Q6||Y!==J+W.strm.avail_in))break;if(V=X===j5&&Y===J+W.strm.avail_in?1:0,yA(W,0,0,V),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,X5(W.strm),J){if(J>Y)J=Y;W.strm.output.set(W.window.subarray(W.block_start,W.block_start+J),W.strm.next_out),W.strm.next_out+=J,W.strm.avail_out-=J,W.strm.total_out+=J,W.block_start+=J,Y-=J}if(Y)mA(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(V===0);if(U-=W.strm.avail_in,U){if(U>=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<=U){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-U,W.strm.next_in),W.strstart),W.strstart+=U,W.insert+=U>W.w_size-W.insert?W.w_size-W.insert:U}W.block_start=W.strstart}if(W.high_water<W.strstart)W.high_water=W.strstart;if(V)return eX;if(X!==Q6&&X!==j5&&W.strm.avail_in===0&&W.strstart===W.block_start)return tX;if(Z=W.window_size-W.strstart,W.strm.avail_in>Z&&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(Z+=W.w_size,W.insert>W.strstart)W.insert=W.strstart}if(Z>W.strm.avail_in)Z=W.strm.avail_in;if(Z)mA(W.strm,W.window,W.strstart,Z),W.strstart+=Z,W.insert+=Z>W.w_size-W.insert?W.w_size-W.insert:Z;if(W.high_water<W.strstart)W.high_water=W.strstart;if(Z=W.bi_valid+42>>3,Z=W.pending_buf_size-Z>65535?65535:W.pending_buf_size-Z,G=Z>W.w_size?W.w_size:Z,J=W.strstart-W.block_start,J>=G||(J||X===j5)&&X!==Q6&&W.strm.avail_in===0&&J<=Z)Y=J>Z?Z:J,V=X===j5&&W.strm.avail_in===0&&Y===J?1:0,yA(W,W.block_start,Y,V),W.block_start+=Y,X5(W.strm);return V?KW:k9},PA=(W,X)=>{let G,Y;for(;;){if(W.lookahead<z7){if(aX(W),W.lookahead<z7&&X===Q6)return k9;if(W.lookahead===0)break}if(G=0,W.lookahead>=f1)W.ins_h=N6(W,W.ins_h,W.window[W.strstart+f1-1]),G=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;if(G!==0&&W.strstart-G<=W.w_size-z7)W.match_length=TC(W,G);if(W.match_length>=f1)if(Y=U6(W,W.strstart-W.match_start,W.match_length-f1),W.lookahead-=W.match_length,W.match_length<=W.max_lazy_match&&W.lookahead>=f1){W.match_length--;do W.strstart++,W.ins_h=N6(W,W.ins_h,W.window[W.strstart+f1-1]),G=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=N6(W,W.ins_h,W.window[W.strstart+1]);else Y=U6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++;if(Y){if(G5(W,!1),W.strm.avail_out===0)return k9}}if(W.insert=W.strstart<f1-1?W.strstart:f1-1,X===j5){if(G5(W,!0),W.strm.avail_out===0)return KW;return eX}if(W.sym_next){if(G5(W,!1),W.strm.avail_out===0)return k9}return tX},oX=(W,X)=>{let G,Y,J;for(;;){if(W.lookahead<z7){if(aX(W),W.lookahead<z7&&X===Q6)return k9;if(W.lookahead===0)break}if(G=0,W.lookahead>=f1)W.ins_h=N6(W,W.ins_h,W.window[W.strstart+f1-1]),G=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=f1-1,G!==0&&W.prev_length<W.max_lazy_match&&W.strstart-G<=W.w_size-z7){if(W.match_length=TC(W,G),W.match_length<=5&&(W.strategy===ay||W.match_length===f1&&W.strstart-W.match_start>4096))W.match_length=f1-1}if(W.prev_length>=f1&&W.match_length<=W.prev_length){J=W.strstart+W.lookahead-f1,Y=U6(W,W.strstart-1-W.prev_match,W.prev_length-f1),W.lookahead-=W.prev_length-1,W.prev_length-=2;do if(++W.strstart<=J)W.ins_h=N6(W,W.ins_h,W.window[W.strstart+f1-1]),G=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=f1-1,W.strstart++,Y){if(G5(W,!1),W.strm.avail_out===0)return k9}}else if(W.match_available){if(Y=U6(W,0,W.window[W.strstart-1]),Y)G5(W,!1);if(W.strstart++,W.lookahead--,W.strm.avail_out===0)return k9}else W.match_available=1,W.strstart++,W.lookahead--}if(W.match_available)Y=U6(W,0,W.window[W.strstart-1]),W.match_available=0;if(W.insert=W.strstart<f1-1?W.strstart:f1-1,X===j5){if(G5(W,!0),W.strm.avail_out===0)return KW;return eX}if(W.sym_next){if(G5(W,!1),W.strm.avail_out===0)return k9}return tX},Iv=(W,X)=>{let G,Y,J,Z,V=W.window;for(;;){if(W.lookahead<=V6){if(aX(W),W.lookahead<=V6&&X===Q6)return k9;if(W.lookahead===0)break}if(W.match_length=0,W.lookahead>=f1&&W.strstart>0){if(J=W.strstart-1,Y=V[J],Y===V[++J]&&Y===V[++J]&&Y===V[++J]){Z=W.strstart+V6;do;while(Y===V[++J]&&Y===V[++J]&&Y===V[++J]&&Y===V[++J]&&Y===V[++J]&&Y===V[++J]&&Y===V[++J]&&Y===V[++J]&&J<Z);if(W.match_length=V6-(Z-J),W.match_length>W.lookahead)W.match_length=W.lookahead}}if(W.match_length>=f1)G=U6(W,1,W.match_length-f1),W.lookahead-=W.match_length,W.strstart+=W.match_length,W.match_length=0;else G=U6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++;if(G){if(G5(W,!1),W.strm.avail_out===0)return k9}}if(W.insert=0,X===j5){if(G5(W,!0),W.strm.avail_out===0)return KW;return eX}if(W.sym_next){if(G5(W,!1),W.strm.avail_out===0)return k9}return tX},wv=(W,X)=>{let G;for(;;){if(W.lookahead===0){if(aX(W),W.lookahead===0){if(X===Q6)return k9;break}}if(W.match_length=0,G=U6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++,G){if(G5(W,!1),W.strm.avail_out===0)return k9}}if(W.insert=0,X===j5){if(G5(W,!0),W.strm.avail_out===0)return KW;return eX}if(W.sym_next){if(G5(W,!1),W.strm.avail_out===0)return k9}return tX};function q7(W,X,G,Y,J){this.good_length=W,this.max_lazy=X,this.nice_length=G,this.max_chain=Y,this.func=J}var zJ=[new q7(0,0,0,0,MC),new q7(4,4,8,4,PA),new q7(4,5,16,8,PA),new q7(4,6,32,32,PA),new q7(4,4,16,16,oX),new q7(8,16,32,32,oX),new q7(8,16,128,128,oX),new q7(8,32,128,256,oX),new q7(32,128,258,1024,oX),new q7(32,258,258,4096,oX)],jv=(W)=>{W.window_size=2*W.w_size,Z6(W.head),W.max_lazy_match=zJ[W.level].max_lazy,W.good_match=zJ[W.level].good_length,W.nice_match=zJ[W.level].nice_length,W.max_chain_length=zJ[W.level].max_chain,W.strstart=0,W.block_start=0,W.lookahead=0,W.insert=0,W.match_length=W.prev_length=f1-1,W.match_available=0,W.ins_h=0};function Kv(){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=aU,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(Qv*2),this.dyn_dtree=new Uint16Array((2*Vv+1)*2),this.bl_tree=new Uint16Array((2*Uv+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(Nv+1),this.heap=new Uint16Array(2*vA+1),Z6(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*vA+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 BJ=(W)=>{if(!W)return 1;let X=W.state;if(!X||X.strm!==W||X.status!==rX&&X.status!==dA&&X.status!==gA&&X.status!==uA&&X.status!==hA&&X.status!==bA&&X.status!==IW&&X.status!==AJ)return 1;return 0},PC=(W)=>{if(BJ(W))return wW(W,A7);W.total_in=W.total_out=0,W.data_type=Wv;let X=W.state;if(X.pending=0,X.pending_out=0,X.wrap<0)X.wrap=-X.wrap;return X.status=X.wrap===2?dA:X.wrap?rX:IW,W.adler=X.wrap===2?0:1,X.last_flush=-2,cy(X),W9},RC=(W)=>{let X=PC(W);if(X===W9)jv(W.state);return X},Ov=(W,X)=>{if(BJ(W)||W.state.wrap!==2)return A7;return W.state.gzhead=X,W9},LC=(W,X,G,Y,J,Z)=>{if(!W)return A7;let V=1;if(X===ry)X=6;if(Y<0)V=0,Y=-Y;else if(Y>15)V=2,Y-=16;if(J<1||J>Xv||G!==aU||Y<8||Y>15||X<0||X>9||Z<0||Z>ty||Y===8&&V!==1)return wW(W,A7);if(Y===8)Y=9;let U=new Kv;return W.state=U,U.strm=W,U.status=rX,U.wrap=V,U.gzhead=null,U.w_bits=Y,U.w_size=1<<U.w_bits,U.w_mask=U.w_size-1,U.hash_bits=J+7,U.hash_size=1<<U.hash_bits,U.hash_mask=U.hash_size-1,U.hash_shift=~~((U.hash_bits+f1-1)/f1),U.window=new Uint8Array(U.w_size*2),U.head=new Uint16Array(U.hash_size),U.prev=new Uint16Array(U.w_size),U.lit_bufsize=1<<J+6,U.pending_buf_size=U.lit_bufsize*4,U.pending_buf=new Uint8Array(U.pending_buf_size),U.sym_buf=U.lit_bufsize,U.sym_end=(U.lit_bufsize-1)*3,U.level=X,U.strategy=Z,U.method=G,RC(W)},Dv=(W,X)=>{return LC(W,X,aU,Gv,Yv,ey)},Cv=(W,X)=>{if(BJ(W)||X>ED||X<0)return W?wW(W,A7):A7;let G=W.state;if(!W.output||W.avail_in!==0&&!W.input||G.status===AJ&&X!==j5)return wW(W,W.avail_out===0?MA:A7);let Y=G.last_flush;if(G.last_flush=X,G.pending!==0){if(X5(W),W.avail_out===0)return G.last_flush=-1,W9}else if(W.avail_in===0&&FD(X)<=FD(Y)&&X!==j5)return wW(W,MA);if(G.status===AJ&&W.avail_in!==0)return wW(W,MA);if(G.status===rX&&G.wrap===0)G.status=IW;if(G.status===rX){let J=aU+(G.w_bits-8<<4)<<8,Z=-1;if(G.strategy>=fU||G.level<2)Z=0;else if(G.level<6)Z=1;else if(G.level===6)Z=2;else Z=3;if(J|=Z<<6,G.strstart!==0)J|=qv;if(J+=31-J%31,HJ(G,J),G.strstart!==0)HJ(G,W.adler>>>16),HJ(G,W.adler&65535);if(W.adler=1,G.status=IW,X5(W),G.pending!==0)return G.last_flush=-1,W9}if(G.status===dA)if(W.adler=0,t1(G,31),t1(G,139),t1(G,8),!G.gzhead){if(t1(G,0),t1(G,0),t1(G,0),t1(G,0),t1(G,0),t1(G,G.level===9?2:G.strategy>=fU||G.level<2?4:0),t1(G,Hv),G.status=IW,X5(W),G.pending!==0)return G.last_flush=-1,W9}else{if(t1(G,(G.gzhead.text?1:0)+(G.gzhead.hcrc?2:0)+(!G.gzhead.extra?0:4)+(!G.gzhead.name?0:8)+(!G.gzhead.comment?0:16)),t1(G,G.gzhead.time&255),t1(G,G.gzhead.time>>8&255),t1(G,G.gzhead.time>>16&255),t1(G,G.gzhead.time>>24&255),t1(G,G.level===9?2:G.strategy>=fU||G.level<2?4:0),t1(G,G.gzhead.os&255),G.gzhead.extra&&G.gzhead.extra.length)t1(G,G.gzhead.extra.length&255),t1(G,G.gzhead.extra.length>>8&255);if(G.gzhead.hcrc)W.adler=r8(W.adler,G.pending_buf,G.pending,0);G.gzindex=0,G.status=gA}if(G.status===gA){if(G.gzhead.extra){let J=G.pending,Z=(G.gzhead.extra.length&65535)-G.gzindex;while(G.pending+Z>G.pending_buf_size){let U=G.pending_buf_size-G.pending;if(G.pending_buf.set(G.gzhead.extra.subarray(G.gzindex,G.gzindex+U),G.pending),G.pending=G.pending_buf_size,G.gzhead.hcrc&&G.pending>J)W.adler=r8(W.adler,G.pending_buf,G.pending-J,J);if(G.gzindex+=U,X5(W),G.pending!==0)return G.last_flush=-1,W9;J=0,Z-=U}let V=new Uint8Array(G.gzhead.extra);if(G.pending_buf.set(V.subarray(G.gzindex,G.gzindex+Z),G.pending),G.pending+=Z,G.gzhead.hcrc&&G.pending>J)W.adler=r8(W.adler,G.pending_buf,G.pending-J,J);G.gzindex=0}G.status=uA}if(G.status===uA){if(G.gzhead.name){let J=G.pending,Z;do{if(G.pending===G.pending_buf_size){if(G.gzhead.hcrc&&G.pending>J)W.adler=r8(W.adler,G.pending_buf,G.pending-J,J);if(X5(W),G.pending!==0)return G.last_flush=-1,W9;J=0}if(G.gzindex<G.gzhead.name.length)Z=G.gzhead.name.charCodeAt(G.gzindex++)&255;else Z=0;t1(G,Z)}while(Z!==0);if(G.gzhead.hcrc&&G.pending>J)W.adler=r8(W.adler,G.pending_buf,G.pending-J,J);G.gzindex=0}G.status=hA}if(G.status===hA){if(G.gzhead.comment){let J=G.pending,Z;do{if(G.pending===G.pending_buf_size){if(G.gzhead.hcrc&&G.pending>J)W.adler=r8(W.adler,G.pending_buf,G.pending-J,J);if(X5(W),G.pending!==0)return G.last_flush=-1,W9;J=0}if(G.gzindex<G.gzhead.comment.length)Z=G.gzhead.comment.charCodeAt(G.gzindex++)&255;else Z=0;t1(G,Z)}while(Z!==0);if(G.gzhead.hcrc&&G.pending>J)W.adler=r8(W.adler,G.pending_buf,G.pending-J,J)}G.status=bA}if(G.status===bA){if(G.gzhead.hcrc){if(G.pending+2>G.pending_buf_size){if(X5(W),G.pending!==0)return G.last_flush=-1,W9}t1(G,W.adler&255),t1(G,W.adler>>8&255),W.adler=0}if(G.status=IW,X5(W),G.pending!==0)return G.last_flush=-1,W9}if(W.avail_in!==0||G.lookahead!==0||X!==Q6&&G.status!==AJ){let J=G.level===0?MC(G,X):G.strategy===fU?wv(G,X):G.strategy===sy?Iv(G,X):zJ[G.level].func(G,X);if(J===KW||J===eX)G.status=AJ;if(J===k9||J===KW){if(W.avail_out===0)G.last_flush=-1;return W9}if(J===tX){if(X===oy)dy(G);else if(X!==ED){if(yA(G,0,0,!1),X===ny){if(Z6(G.head),G.lookahead===0)G.strstart=0,G.block_start=0,G.insert=0}}if(X5(W),W.avail_out===0)return G.last_flush=-1,W9}}if(X!==j5)return W9;if(G.wrap<=0)return $D;if(G.wrap===2)t1(G,W.adler&255),t1(G,W.adler>>8&255),t1(G,W.adler>>16&255),t1(G,W.adler>>24&255),t1(G,W.total_in&255),t1(G,W.total_in>>8&255),t1(G,W.total_in>>16&255),t1(G,W.total_in>>24&255);else HJ(G,W.adler>>>16),HJ(G,W.adler&65535);if(X5(W),G.wrap>0)G.wrap=-G.wrap;return G.pending!==0?W9:$D},Tv=(W)=>{if(BJ(W))return A7;let X=W.state.status;return W.state=null,X===IW?wW(W,iy):W9},Mv=(W,X)=>{let G=X.length;if(BJ(W))return A7;let Y=W.state,J=Y.wrap;if(J===2||J===1&&Y.status!==rX||Y.lookahead)return A7;if(J===1)W.adler=TJ(W.adler,X,G,0);if(Y.wrap=0,G>=Y.w_size){if(J===0)Z6(Y.head),Y.strstart=0,Y.block_start=0,Y.insert=0;let Q=new Uint8Array(Y.w_size);Q.set(X.subarray(G-Y.w_size,G),0),X=Q,G=Y.w_size}let{avail_in:Z,next_in:V,input:U}=W;W.avail_in=G,W.next_in=0,W.input=X,aX(Y);while(Y.lookahead>=f1){let Q=Y.strstart,N=Y.lookahead-(f1-1);do Y.ins_h=N6(Y,Y.ins_h,Y.window[Q+f1-1]),Y.prev[Q&Y.w_mask]=Y.head[Y.ins_h],Y.head[Y.ins_h]=Q,Q++;while(--N);Y.strstart=Q,Y.lookahead=f1-1,aX(Y)}return Y.strstart+=Y.lookahead,Y.block_start=Y.strstart,Y.insert=Y.lookahead,Y.lookahead=0,Y.match_length=Y.prev_length=f1-1,Y.match_available=0,W.next_in=V,W.input=U,W.avail_in=Z,Y.wrap=J,W9},Pv=Dv,Rv=LC,Lv=RC,Bv=PC,Ev=Ov,$v=Cv,Fv=Tv,Sv=Mv,xv="pako deflate (from Nodeca project)",wJ={deflateInit:Pv,deflateInit2:Rv,deflateReset:Lv,deflateResetKeep:Bv,deflateSetHeader:Ev,deflate:$v,deflateEnd:Fv,deflateSetDictionary:Sv,deflateInfo:xv},kv=(W,X)=>{return Object.prototype.hasOwnProperty.call(W,X)},_v=function(W){let X=Array.prototype.slice.call(arguments,1);while(X.length){let G=X.shift();if(!G)continue;if(typeof G!=="object")throw TypeError(G+"must be non-object");for(let Y in G)if(kv(G,Y))W[Y]=G[Y]}return W},yv=(W)=>{let X=0;for(let Y=0,J=W.length;Y<J;Y++)X+=W[Y].length;let G=new Uint8Array(X);for(let Y=0,J=0,Z=W.length;Y<Z;Y++){let V=W[Y];G.set(V,J),J+=V.length}return G},sU={assign:_v,flattenChunks:yv},BC=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(W){BC=!1}var MJ=new Uint8Array(256);for(let W=0;W<256;W++)MJ[W]=W>=252?6:W>=248?5:W>=240?4:W>=224?3:W>=192?2:1;MJ[254]=MJ[254]=1;var vv=(W)=>{if(typeof TextEncoder==="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(W);let X,G,Y,J,Z,V=W.length,U=0;for(J=0;J<V;J++){if(G=W.charCodeAt(J),(G&64512)===55296&&J+1<V){if(Y=W.charCodeAt(J+1),(Y&64512)===56320)G=65536+(G-55296<<10)+(Y-56320),J++}U+=G<128?1:G<2048?2:G<65536?3:4}X=new Uint8Array(U);for(Z=0,J=0;Z<U;J++){if(G=W.charCodeAt(J),(G&64512)===55296&&J+1<V){if(Y=W.charCodeAt(J+1),(Y&64512)===56320)G=65536+(G-55296<<10)+(Y-56320),J++}if(G<128)X[Z++]=G;else if(G<2048)X[Z++]=192|G>>>6,X[Z++]=128|G&63;else if(G<65536)X[Z++]=224|G>>>12,X[Z++]=128|G>>>6&63,X[Z++]=128|G&63;else X[Z++]=240|G>>>18,X[Z++]=128|G>>>12&63,X[Z++]=128|G>>>6&63,X[Z++]=128|G&63}return X},gv=(W,X)=>{if(X<65534){if(W.subarray&&BC)return String.fromCharCode.apply(null,W.length===X?W:W.subarray(0,X))}let G="";for(let Y=0;Y<X;Y++)G+=String.fromCharCode(W[Y]);return G},uv=(W,X)=>{let G=X||W.length;if(typeof TextDecoder==="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(W.subarray(0,X));let Y,J,Z=Array(G*2);for(J=0,Y=0;Y<G;){let V=W[Y++];if(V<128){Z[J++]=V;continue}let U=MJ[V];if(U>4){Z[J++]=65533,Y+=U-1;continue}V&=U===2?31:U===3?15:7;while(U>1&&Y<G)V=V<<6|W[Y++]&63,U--;if(U>1){Z[J++]=65533;continue}if(V<65536)Z[J++]=V;else V-=65536,Z[J++]=55296|V>>10&1023,Z[J++]=56320|V&1023}return gv(Z,J)},hv=(W,X)=>{if(X=X||W.length,X>W.length)X=W.length;let G=X-1;while(G>=0&&(W[G]&192)===128)G--;if(G<0)return X;if(G===0)return X;return G+MJ[W[G]]>X?G:X},PJ={string2buf:vv,buf2string:uv,utf8border:hv};function bv(){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 EC=bv,$C=Object.prototype.toString,{Z_NO_FLUSH:mv,Z_SYNC_FLUSH:fv,Z_FULL_FLUSH:pv,Z_FINISH:cv,Z_OK:iU,Z_STREAM_END:lv,Z_DEFAULT_COMPRESSION:dv,Z_DEFAULT_STRATEGY:ov,Z_DEFLATED:nv}=DW;function EJ(W){this.options=sU.assign({level:dv,method:nv,chunkSize:16384,windowBits:15,memLevel:8,strategy:ov},W||{});let X=this.options;if(X.raw&&X.windowBits>0)X.windowBits=-X.windowBits;else if(X.gzip&&X.windowBits>0&&X.windowBits<16)X.windowBits+=16;this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new EC,this.strm.avail_out=0;let G=wJ.deflateInit2(this.strm,X.level,X.method,X.windowBits,X.memLevel,X.strategy);if(G!==iU)throw Error(jW[G]);if(X.header)wJ.deflateSetHeader(this.strm,X.header);if(X.dictionary){let Y;if(typeof X.dictionary==="string")Y=PJ.string2buf(X.dictionary);else if($C.call(X.dictionary)==="[object ArrayBuffer]")Y=new Uint8Array(X.dictionary);else Y=X.dictionary;if(G=wJ.deflateSetDictionary(this.strm,Y),G!==iU)throw Error(jW[G]);this._dict_set=!0}}EJ.prototype.push=function(W,X){let G=this.strm,Y=this.options.chunkSize,J,Z;if(this.ended)return!1;if(X===~~X)Z=X;else Z=X===!0?cv:mv;if(typeof W==="string")G.input=PJ.string2buf(W);else if($C.call(W)==="[object ArrayBuffer]")G.input=new Uint8Array(W);else G.input=W;G.next_in=0,G.avail_in=G.input.length;for(;;){if(G.avail_out===0)G.output=new Uint8Array(Y),G.next_out=0,G.avail_out=Y;if((Z===fv||Z===pv)&&G.avail_out<=6){this.onData(G.output.subarray(0,G.next_out)),G.avail_out=0;continue}if(J=wJ.deflate(G,Z),J===lv){if(G.next_out>0)this.onData(G.output.subarray(0,G.next_out));return J=wJ.deflateEnd(this.strm),this.onEnd(J),this.ended=!0,J===iU}if(G.avail_out===0){this.onData(G.output);continue}if(Z>0&&G.next_out>0){this.onData(G.output.subarray(0,G.next_out)),G.avail_out=0;continue}if(G.avail_in===0)break}return!0};EJ.prototype.onData=function(W){this.chunks.push(W)};EJ.prototype.onEnd=function(W){if(W===iU)this.result=sU.flattenChunks(this.chunks);this.chunks=[],this.err=W,this.msg=this.strm.msg};function oA(W,X){let G=new EJ(X);if(G.push(W,!0),G.err)throw G.msg||jW[G.err];return G.result}function iv(W,X){return X=X||{},X.raw=!0,oA(W,X)}function rv(W,X){return X=X||{},X.gzip=!0,oA(W,X)}var av=EJ,sv=oA,tv=iv,ev=rv,Wg=DW,Xg={Deflate:av,deflate:sv,deflateRaw:tv,gzip:ev,constants:Wg},pU=16209,Gg=16191,Yg=function(X,G){let Y,J,Z,V,U,Q,N,q,A,H,I,w,O,T,x,P,u,F,m,l,p,W0,y,e,H0=X.state;Y=X.next_in,y=X.input,J=Y+(X.avail_in-5),Z=X.next_out,e=X.output,V=Z-(G-X.avail_out),U=Z+(X.avail_out-257),Q=H0.dmax,N=H0.wsize,q=H0.whave,A=H0.wnext,H=H0.window,I=H0.hold,w=H0.bits,O=H0.lencode,T=H0.distcode,x=(1<<H0.lenbits)-1,P=(1<<H0.distbits)-1;W:do{if(w<15)I+=y[Y++]<<w,w+=8,I+=y[Y++]<<w,w+=8;u=O[I&x];X:for(;;){if(F=u>>>24,I>>>=F,w-=F,F=u>>>16&255,F===0)e[Z++]=u&65535;else if(F&16){if(m=u&65535,F&=15,F){if(w<F)I+=y[Y++]<<w,w+=8;m+=I&(1<<F)-1,I>>>=F,w-=F}if(w<15)I+=y[Y++]<<w,w+=8,I+=y[Y++]<<w,w+=8;u=T[I&P];G:for(;;){if(F=u>>>24,I>>>=F,w-=F,F=u>>>16&255,F&16){if(l=u&65535,F&=15,w<F){if(I+=y[Y++]<<w,w+=8,w<F)I+=y[Y++]<<w,w+=8}if(l+=I&(1<<F)-1,l>Q){X.msg="invalid distance too far back",H0.mode=pU;break W}if(I>>>=F,w-=F,F=Z-V,l>F){if(F=l-F,F>q){if(H0.sane){X.msg="invalid distance too far back",H0.mode=pU;break W}}if(p=0,W0=H,A===0){if(p+=N-F,F<m){m-=F;do e[Z++]=H[p++];while(--F);p=Z-l,W0=e}}else if(A<F){if(p+=N+A-F,F-=A,F<m){m-=F;do e[Z++]=H[p++];while(--F);if(p=0,A<m){F=A,m-=F;do e[Z++]=H[p++];while(--F);p=Z-l,W0=e}}}else if(p+=A-F,F<m){m-=F;do e[Z++]=H[p++];while(--F);p=Z-l,W0=e}while(m>2)e[Z++]=W0[p++],e[Z++]=W0[p++],e[Z++]=W0[p++],m-=3;if(m){if(e[Z++]=W0[p++],m>1)e[Z++]=W0[p++]}}else{p=Z-l;do e[Z++]=e[p++],e[Z++]=e[p++],e[Z++]=e[p++],m-=3;while(m>2);if(m){if(e[Z++]=e[p++],m>1)e[Z++]=e[p++]}}}else if((F&64)===0){u=T[(u&65535)+(I&(1<<F)-1)];continue G}else{X.msg="invalid distance code",H0.mode=pU;break W}break}}else if((F&64)===0){u=O[(u&65535)+(I&(1<<F)-1)];continue X}else if(F&32){H0.mode=Gg;break W}else{X.msg="invalid literal/length code",H0.mode=pU;break W}break}}while(Y<J&&Z<U);m=w>>3,Y-=m,w-=m<<3,I&=(1<<w)-1,X.next_in=Y,X.next_out=Z,X.avail_in=Y<J?5+(J-Y):5-(Y-J),X.avail_out=Z<U?257+(U-Z):257-(Z-U),H0.hold=I,H0.bits=w;return},nX=15,SD=852,xD=592,kD=0,RA=1,_D=2,Jg=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]),Zg=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]),Vg=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]),Ug=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]),Qg=(W,X,G,Y,J,Z,V,U)=>{let Q=U.bits,N=0,q=0,A=0,H=0,I=0,w=0,O=0,T=0,x=0,P=0,u,F,m,l,p,W0=null,y,e=new Uint16Array(nX+1),H0=new Uint16Array(nX+1),g=null,d,R,$;for(N=0;N<=nX;N++)e[N]=0;for(q=0;q<Y;q++)e[X[G+q]]++;I=Q;for(H=nX;H>=1;H--)if(e[H]!==0)break;if(I>H)I=H;if(H===0)return J[Z++]=20971520,J[Z++]=20971520,U.bits=1,0;for(A=1;A<H;A++)if(e[A]!==0)break;if(I<A)I=A;T=1;for(N=1;N<=nX;N++)if(T<<=1,T-=e[N],T<0)return-1;if(T>0&&(W===kD||H!==1))return-1;H0[1]=0;for(N=1;N<nX;N++)H0[N+1]=H0[N]+e[N];for(q=0;q<Y;q++)if(X[G+q]!==0)V[H0[X[G+q]]++]=q;if(W===kD)W0=g=V,y=20;else if(W===RA)W0=Jg,g=Zg,y=257;else W0=Vg,g=Ug,y=0;if(P=0,q=0,N=A,p=Z,w=I,O=0,m=-1,x=1<<I,l=x-1,W===RA&&x>SD||W===_D&&x>xD)return 1;for(;;){if(d=N-O,V[q]+1<y)R=0,$=V[q];else if(V[q]>=y)R=g[V[q]-y],$=W0[V[q]-y];else R=96,$=0;u=1<<N-O,F=1<<w,A=F;do F-=u,J[p+(P>>O)+F]=d<<24|R<<16|$|0;while(F!==0);u=1<<N-1;while(P&u)u>>=1;if(u!==0)P&=u-1,P+=u;else P=0;if(q++,--e[N]===0){if(N===H)break;N=X[G+V[q]]}if(N>I&&(P&l)!==m){if(O===0)O=I;p+=A,w=N-O,T=1<<w;while(w+O<H){if(T-=e[w+O],T<=0)break;w++,T<<=1}if(x+=1<<w,W===RA&&x>SD||W===_D&&x>xD)return 1;m=P&l,J[m]=I<<24|w<<16|p-Z|0}}if(P!==0)J[p+P]=N-O<<24|4194304|0;return U.bits=I,0},jJ=Qg,Ng=0,FC=1,SC=2,{Z_FINISH:yD,Z_BLOCK:qg,Z_TREES:cU,Z_OK:OW,Z_STREAM_END:Hg,Z_NEED_DICT:Ag,Z_STREAM_ERROR:K5,Z_DATA_ERROR:xC,Z_MEM_ERROR:kC,Z_BUF_ERROR:zg,Z_DEFLATED:vD}=DW,tU=16180,gD=16181,uD=16182,hD=16183,bD=16184,mD=16185,fD=16186,pD=16187,cD=16188,lD=16189,rU=16190,t7=16191,LA=16192,dD=16193,BA=16194,oD=16195,nD=16196,iD=16197,rD=16198,lU=16199,dU=16200,aD=16201,sD=16202,tD=16203,eD=16204,WC=16205,EA=16206,XC=16207,GC=16208,O8=16209,_C=16210,yC=16211,Ig=852,wg=592,jg=15,Kg=jg,YC=(W)=>{return(W>>>24&255)+(W>>>8&65280)+((W&65280)<<8)+((W&255)<<24)};function Og(){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 CW=(W)=>{if(!W)return 1;let X=W.state;if(!X||X.strm!==W||X.mode<tU||X.mode>yC)return 1;return 0},vC=(W)=>{if(CW(W))return K5;let X=W.state;if(W.total_in=W.total_out=X.total=0,W.msg="",X.wrap)W.adler=X.wrap&1;return X.mode=tU,X.last=0,X.havedict=0,X.flags=-1,X.dmax=32768,X.head=null,X.hold=0,X.bits=0,X.lencode=X.lendyn=new Int32Array(Ig),X.distcode=X.distdyn=new Int32Array(wg),X.sane=1,X.back=-1,OW},gC=(W)=>{if(CW(W))return K5;let X=W.state;return X.wsize=0,X.whave=0,X.wnext=0,vC(W)},uC=(W,X)=>{let G;if(CW(W))return K5;let Y=W.state;if(X<0)G=0,X=-X;else if(G=(X>>4)+5,X<48)X&=15;if(X&&(X<8||X>15))return K5;if(Y.window!==null&&Y.wbits!==X)Y.window=null;return Y.wrap=G,Y.wbits=X,gC(W)},hC=(W,X)=>{if(!W)return K5;let G=new Og;W.state=G,G.strm=W,G.window=null,G.mode=tU;let Y=uC(W,X);if(Y!==OW)W.state=null;return Y},Dg=(W)=>{return hC(W,Kg)},JC=!0,$A,FA,Cg=(W)=>{if(JC){$A=new Int32Array(512),FA=new Int32Array(32);let X=0;while(X<144)W.lens[X++]=8;while(X<256)W.lens[X++]=9;while(X<280)W.lens[X++]=7;while(X<288)W.lens[X++]=8;jJ(FC,W.lens,0,288,$A,0,W.work,{bits:9}),X=0;while(X<32)W.lens[X++]=5;jJ(SC,W.lens,0,32,FA,0,W.work,{bits:5}),JC=!1}W.lencode=$A,W.lenbits=9,W.distcode=FA,W.distbits=5},bC=(W,X,G,Y)=>{let J,Z=W.state;if(Z.window===null)Z.wsize=1<<Z.wbits,Z.wnext=0,Z.whave=0,Z.window=new Uint8Array(Z.wsize);if(Y>=Z.wsize)Z.window.set(X.subarray(G-Z.wsize,G),0),Z.wnext=0,Z.whave=Z.wsize;else{if(J=Z.wsize-Z.wnext,J>Y)J=Y;if(Z.window.set(X.subarray(G-Y,G-Y+J),Z.wnext),Y-=J,Y)Z.window.set(X.subarray(G-Y,G),0),Z.wnext=Y,Z.whave=Z.wsize;else{if(Z.wnext+=J,Z.wnext===Z.wsize)Z.wnext=0;if(Z.whave<Z.wsize)Z.whave+=J}}return 0},Tg=(W,X)=>{let G,Y,J,Z,V,U,Q,N,q,A,H,I,w,O,T=0,x,P,u,F,m,l,p,W0,y=new Uint8Array(4),e,H0,g=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(CW(W)||!W.output||!W.input&&W.avail_in!==0)return K5;if(G=W.state,G.mode===t7)G.mode=LA;V=W.next_out,J=W.output,Q=W.avail_out,Z=W.next_in,Y=W.input,U=W.avail_in,N=G.hold,q=G.bits,A=U,H=Q,W0=OW;W:for(;;)switch(G.mode){case tU:if(G.wrap===0){G.mode=LA;break}while(q<16){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(G.wrap&2&&N===35615){if(G.wbits===0)G.wbits=15;G.check=0,y[0]=N&255,y[1]=N>>>8&255,G.check=r8(G.check,y,2,0),N=0,q=0,G.mode=gD;break}if(G.head)G.head.done=!1;if(!(G.wrap&1)||(((N&255)<<8)+(N>>8))%31){W.msg="incorrect header check",G.mode=O8;break}if((N&15)!==vD){W.msg="unknown compression method",G.mode=O8;break}if(N>>>=4,q-=4,p=(N&15)+8,G.wbits===0)G.wbits=p;if(p>15||p>G.wbits){W.msg="invalid window size",G.mode=O8;break}G.dmax=1<<G.wbits,G.flags=0,W.adler=G.check=1,G.mode=N&512?lD:t7,N=0,q=0;break;case gD:while(q<16){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(G.flags=N,(G.flags&255)!==vD){W.msg="unknown compression method",G.mode=O8;break}if(G.flags&57344){W.msg="unknown header flags set",G.mode=O8;break}if(G.head)G.head.text=N>>8&1;if(G.flags&512&&G.wrap&4)y[0]=N&255,y[1]=N>>>8&255,G.check=r8(G.check,y,2,0);N=0,q=0,G.mode=uD;case uD:while(q<32){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(G.head)G.head.time=N;if(G.flags&512&&G.wrap&4)y[0]=N&255,y[1]=N>>>8&255,y[2]=N>>>16&255,y[3]=N>>>24&255,G.check=r8(G.check,y,4,0);N=0,q=0,G.mode=hD;case hD:while(q<16){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(G.head)G.head.xflags=N&255,G.head.os=N>>8;if(G.flags&512&&G.wrap&4)y[0]=N&255,y[1]=N>>>8&255,G.check=r8(G.check,y,2,0);N=0,q=0,G.mode=bD;case bD:if(G.flags&1024){while(q<16){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(G.length=N,G.head)G.head.extra_len=N;if(G.flags&512&&G.wrap&4)y[0]=N&255,y[1]=N>>>8&255,G.check=r8(G.check,y,2,0);N=0,q=0}else if(G.head)G.head.extra=null;G.mode=mD;case mD:if(G.flags&1024){if(I=G.length,I>U)I=U;if(I){if(G.head){if(p=G.head.extra_len-G.length,!G.head.extra)G.head.extra=new Uint8Array(G.head.extra_len);G.head.extra.set(Y.subarray(Z,Z+I),p)}if(G.flags&512&&G.wrap&4)G.check=r8(G.check,Y,I,Z);U-=I,Z+=I,G.length-=I}if(G.length)break W}G.length=0,G.mode=fD;case fD:if(G.flags&2048){if(U===0)break W;I=0;do if(p=Y[Z+I++],G.head&&p&&G.length<65536)G.head.name+=String.fromCharCode(p);while(p&&I<U);if(G.flags&512&&G.wrap&4)G.check=r8(G.check,Y,I,Z);if(U-=I,Z+=I,p)break W}else if(G.head)G.head.name=null;G.length=0,G.mode=pD;case pD:if(G.flags&4096){if(U===0)break W;I=0;do if(p=Y[Z+I++],G.head&&p&&G.length<65536)G.head.comment+=String.fromCharCode(p);while(p&&I<U);if(G.flags&512&&G.wrap&4)G.check=r8(G.check,Y,I,Z);if(U-=I,Z+=I,p)break W}else if(G.head)G.head.comment=null;G.mode=cD;case cD:if(G.flags&512){while(q<16){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(G.wrap&4&&N!==(G.check&65535)){W.msg="header crc mismatch",G.mode=O8;break}N=0,q=0}if(G.head)G.head.hcrc=G.flags>>9&1,G.head.done=!0;W.adler=G.check=0,G.mode=t7;break;case lD:while(q<32){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}W.adler=G.check=YC(N),N=0,q=0,G.mode=rU;case rU:if(G.havedict===0)return W.next_out=V,W.avail_out=Q,W.next_in=Z,W.avail_in=U,G.hold=N,G.bits=q,Ag;W.adler=G.check=1,G.mode=t7;case t7:if(X===qg||X===cU)break W;case LA:if(G.last){N>>>=q&7,q-=q&7,G.mode=EA;break}while(q<3){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}switch(G.last=N&1,N>>>=1,q-=1,N&3){case 0:G.mode=dD;break;case 1:if(Cg(G),G.mode=lU,X===cU){N>>>=2,q-=2;break W}break;case 2:G.mode=nD;break;case 3:W.msg="invalid block type",G.mode=O8}N>>>=2,q-=2;break;case dD:N>>>=q&7,q-=q&7;while(q<32){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if((N&65535)!==(N>>>16^65535)){W.msg="invalid stored block lengths",G.mode=O8;break}if(G.length=N&65535,N=0,q=0,G.mode=BA,X===cU)break W;case BA:G.mode=oD;case oD:if(I=G.length,I){if(I>U)I=U;if(I>Q)I=Q;if(I===0)break W;J.set(Y.subarray(Z,Z+I),V),U-=I,Z+=I,Q-=I,V+=I,G.length-=I;break}G.mode=t7;break;case nD:while(q<14){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(G.nlen=(N&31)+257,N>>>=5,q-=5,G.ndist=(N&31)+1,N>>>=5,q-=5,G.ncode=(N&15)+4,N>>>=4,q-=4,G.nlen>286||G.ndist>30){W.msg="too many length or distance symbols",G.mode=O8;break}G.have=0,G.mode=iD;case iD:while(G.have<G.ncode){while(q<3){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}G.lens[g[G.have++]]=N&7,N>>>=3,q-=3}while(G.have<19)G.lens[g[G.have++]]=0;if(G.lencode=G.lendyn,G.lenbits=7,e={bits:G.lenbits},W0=jJ(Ng,G.lens,0,19,G.lencode,0,G.work,e),G.lenbits=e.bits,W0){W.msg="invalid code lengths set",G.mode=O8;break}G.have=0,G.mode=rD;case rD:while(G.have<G.nlen+G.ndist){for(;;){if(T=G.lencode[N&(1<<G.lenbits)-1],x=T>>>24,P=T>>>16&255,u=T&65535,x<=q)break;if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(u<16)N>>>=x,q-=x,G.lens[G.have++]=u;else{if(u===16){H0=x+2;while(q<H0){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(N>>>=x,q-=x,G.have===0){W.msg="invalid bit length repeat",G.mode=O8;break}p=G.lens[G.have-1],I=3+(N&3),N>>>=2,q-=2}else if(u===17){H0=x+3;while(q<H0){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}N>>>=x,q-=x,p=0,I=3+(N&7),N>>>=3,q-=3}else{H0=x+7;while(q<H0){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}N>>>=x,q-=x,p=0,I=11+(N&127),N>>>=7,q-=7}if(G.have+I>G.nlen+G.ndist){W.msg="invalid bit length repeat",G.mode=O8;break}while(I--)G.lens[G.have++]=p}}if(G.mode===O8)break;if(G.lens[256]===0){W.msg="invalid code -- missing end-of-block",G.mode=O8;break}if(G.lenbits=9,e={bits:G.lenbits},W0=jJ(FC,G.lens,0,G.nlen,G.lencode,0,G.work,e),G.lenbits=e.bits,W0){W.msg="invalid literal/lengths set",G.mode=O8;break}if(G.distbits=6,G.distcode=G.distdyn,e={bits:G.distbits},W0=jJ(SC,G.lens,G.nlen,G.ndist,G.distcode,0,G.work,e),G.distbits=e.bits,W0){W.msg="invalid distances set",G.mode=O8;break}if(G.mode=lU,X===cU)break W;case lU:G.mode=dU;case dU:if(U>=6&&Q>=258){if(W.next_out=V,W.avail_out=Q,W.next_in=Z,W.avail_in=U,G.hold=N,G.bits=q,Yg(W,H),V=W.next_out,J=W.output,Q=W.avail_out,Z=W.next_in,Y=W.input,U=W.avail_in,N=G.hold,q=G.bits,G.mode===t7)G.back=-1;break}G.back=0;for(;;){if(T=G.lencode[N&(1<<G.lenbits)-1],x=T>>>24,P=T>>>16&255,u=T&65535,x<=q)break;if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(P&&(P&240)===0){F=x,m=P,l=u;for(;;){if(T=G.lencode[l+((N&(1<<F+m)-1)>>F)],x=T>>>24,P=T>>>16&255,u=T&65535,F+x<=q)break;if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}N>>>=F,q-=F,G.back+=F}if(N>>>=x,q-=x,G.back+=x,G.length=u,P===0){G.mode=WC;break}if(P&32){G.back=-1,G.mode=t7;break}if(P&64){W.msg="invalid literal/length code",G.mode=O8;break}G.extra=P&15,G.mode=aD;case aD:if(G.extra){H0=G.extra;while(q<H0){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}G.length+=N&(1<<G.extra)-1,N>>>=G.extra,q-=G.extra,G.back+=G.extra}G.was=G.length,G.mode=sD;case sD:for(;;){if(T=G.distcode[N&(1<<G.distbits)-1],x=T>>>24,P=T>>>16&255,u=T&65535,x<=q)break;if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if((P&240)===0){F=x,m=P,l=u;for(;;){if(T=G.distcode[l+((N&(1<<F+m)-1)>>F)],x=T>>>24,P=T>>>16&255,u=T&65535,F+x<=q)break;if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}N>>>=F,q-=F,G.back+=F}if(N>>>=x,q-=x,G.back+=x,P&64){W.msg="invalid distance code",G.mode=O8;break}G.offset=u,G.extra=P&15,G.mode=tD;case tD:if(G.extra){H0=G.extra;while(q<H0){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}G.offset+=N&(1<<G.extra)-1,N>>>=G.extra,q-=G.extra,G.back+=G.extra}if(G.offset>G.dmax){W.msg="invalid distance too far back",G.mode=O8;break}G.mode=eD;case eD:if(Q===0)break W;if(I=H-Q,G.offset>I){if(I=G.offset-I,I>G.whave){if(G.sane){W.msg="invalid distance too far back",G.mode=O8;break}}if(I>G.wnext)I-=G.wnext,w=G.wsize-I;else w=G.wnext-I;if(I>G.length)I=G.length;O=G.window}else O=J,w=V-G.offset,I=G.length;if(I>Q)I=Q;Q-=I,G.length-=I;do J[V++]=O[w++];while(--I);if(G.length===0)G.mode=dU;break;case WC:if(Q===0)break W;J[V++]=G.length,Q--,G.mode=dU;break;case EA:if(G.wrap){while(q<32){if(U===0)break W;U--,N|=Y[Z++]<<q,q+=8}if(H-=Q,W.total_out+=H,G.total+=H,G.wrap&4&&H)W.adler=G.check=G.flags?r8(G.check,J,H,V-H):TJ(G.check,J,H,V-H);if(H=Q,G.wrap&4&&(G.flags?N:YC(N))!==G.check){W.msg="incorrect data check",G.mode=O8;break}N=0,q=0}G.mode=XC;case XC:if(G.wrap&&G.flags){while(q<32){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(G.wrap&4&&N!==(G.total&4294967295)){W.msg="incorrect length check",G.mode=O8;break}N=0,q=0}G.mode=GC;case GC:W0=Hg;break W;case O8:W0=xC;break W;case _C:return kC;case yC:default:return K5}if(W.next_out=V,W.avail_out=Q,W.next_in=Z,W.avail_in=U,G.hold=N,G.bits=q,G.wsize||H!==W.avail_out&&G.mode<O8&&(G.mode<EA||X!==yD)){if(bC(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,G.total+=H,G.wrap&4&&H)W.adler=G.check=G.flags?r8(G.check,J,H,W.next_out-H):TJ(G.check,J,H,W.next_out-H);if(W.data_type=G.bits+(G.last?64:0)+(G.mode===t7?128:0)+(G.mode===lU||G.mode===BA?256:0),(A===0&&H===0||X===yD)&&W0===OW)W0=zg;return W0},Mg=(W)=>{if(CW(W))return K5;let X=W.state;if(X.window)X.window=null;return W.state=null,OW},Pg=(W,X)=>{if(CW(W))return K5;let G=W.state;if((G.wrap&2)===0)return K5;return G.head=X,X.done=!1,OW},Rg=(W,X)=>{let G=X.length,Y,J,Z;if(CW(W))return K5;if(Y=W.state,Y.wrap!==0&&Y.mode!==rU)return K5;if(Y.mode===rU){if(J=1,J=TJ(J,X,G,0),J!==Y.check)return xC}if(Z=bC(W,X,G,G),Z)return Y.mode=_C,kC;return Y.havedict=1,OW},Lg=gC,Bg=uC,Eg=vC,$g=Dg,Fg=hC,Sg=Tg,xg=Mg,kg=Pg,_g=Rg,yg="pako inflate (from Nodeca project)",W4={inflateReset:Lg,inflateReset2:Bg,inflateResetKeep:Eg,inflateInit:$g,inflateInit2:Fg,inflate:Sg,inflateEnd:xg,inflateGetHeader:kg,inflateSetDictionary:_g,inflateInfo:yg};function vg(){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 gg=vg,mC=Object.prototype.toString,{Z_NO_FLUSH:ug,Z_FINISH:hg,Z_OK:RJ,Z_STREAM_END:SA,Z_NEED_DICT:xA,Z_STREAM_ERROR:bg,Z_DATA_ERROR:ZC,Z_MEM_ERROR:mg}=DW;function $J(W){this.options=sU.assign({chunkSize:65536,windowBits:15,to:""},W||{});let X=this.options;if(X.raw&&X.windowBits>=0&&X.windowBits<16){if(X.windowBits=-X.windowBits,X.windowBits===0)X.windowBits=-15}if(X.windowBits>=0&&X.windowBits<16&&!(W&&W.windowBits))X.windowBits+=32;if(X.windowBits>15&&X.windowBits<48){if((X.windowBits&15)===0)X.windowBits|=15}this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new EC,this.strm.avail_out=0;let G=W4.inflateInit2(this.strm,X.windowBits);if(G!==RJ)throw Error(jW[G]);if(this.header=new gg,W4.inflateGetHeader(this.strm,this.header),X.dictionary){if(typeof X.dictionary==="string")X.dictionary=PJ.string2buf(X.dictionary);else if(mC.call(X.dictionary)==="[object ArrayBuffer]")X.dictionary=new Uint8Array(X.dictionary);if(X.raw){if(G=W4.inflateSetDictionary(this.strm,X.dictionary),G!==RJ)throw Error(jW[G])}}}$J.prototype.push=function(W,X){let G=this.strm,Y=this.options.chunkSize,J=this.options.dictionary,Z,V,U;if(this.ended)return!1;if(X===~~X)V=X;else V=X===!0?hg:ug;if(mC.call(W)==="[object ArrayBuffer]")G.input=new Uint8Array(W);else G.input=W;G.next_in=0,G.avail_in=G.input.length;for(;;){if(G.avail_out===0)G.output=new Uint8Array(Y),G.next_out=0,G.avail_out=Y;if(Z=W4.inflate(G,V),Z===xA&&J){if(Z=W4.inflateSetDictionary(G,J),Z===RJ)Z=W4.inflate(G,V);else if(Z===ZC)Z=xA}while(G.avail_in>0&&Z===SA&&G.state.wrap>0&&W[G.next_in]!==0)W4.inflateReset(G),Z=W4.inflate(G,V);switch(Z){case bg:case ZC:case xA:case mg:return this.onEnd(Z),this.ended=!0,!1}if(U=G.avail_out,G.next_out){if(G.avail_out===0||Z===SA)if(this.options.to==="string"){let Q=PJ.utf8border(G.output,G.next_out),N=G.next_out-Q,q=PJ.buf2string(G.output,Q);if(G.next_out=N,G.avail_out=Y-N,N)G.output.set(G.output.subarray(Q,Q+N),0);this.onData(q)}else this.onData(G.output.length===G.next_out?G.output:G.output.subarray(0,G.next_out))}if(Z===RJ&&U===0)continue;if(Z===SA)return Z=W4.inflateEnd(this.strm),this.onEnd(Z),this.ended=!0,!0;if(G.avail_in===0)break}return!0};$J.prototype.onData=function(W){this.chunks.push(W)};$J.prototype.onEnd=function(W){if(W===RJ)if(this.options.to==="string")this.result=this.chunks.join("");else this.result=sU.flattenChunks(this.chunks);this.chunks=[],this.err=W,this.msg=this.strm.msg};function nA(W,X){let G=new $J(X);if(G.push(W),G.err)throw G.msg||jW[G.err];return G.result}function fg(W,X){return X=X||{},X.raw=!0,nA(W,X)}var pg=$J,cg=nA,lg=fg,dg=nA,og=DW,ng={Inflate:pg,inflate:cg,inflateRaw:lg,ungzip:dg,constants:og},{Deflate:ig,deflate:rg,deflateRaw:ag,gzip:sg}=Xg,{Inflate:tg,inflate:eg,inflateRaw:Wu,ungzip:Xu}=ng,Gu=ig,Yu=rg,Ju=ag,Zu=sg,Vu=tg,Uu=eg,Qu=Wu,Nu=Xu,qu=DW,WG={Deflate:Gu,deflate:Yu,deflateRaw:Ju,gzip:Zu,Inflate:Vu,inflate:Uu,inflateRaw:Qu,ungzip:Nu,constants:qu};function fC(){let W=Date.now(),X=0;return{now(){return W=Math.max(W,Date.now()),X++,{physical:W,logical:X}},update(G){if(!G||typeof G.physical!=="number"||typeof G.logical!=="number")return;W=Math.max(W,G.physical),X=Math.max(X,G.logical)+1},compare(G,Y){if(!G&&!Y)return 0;if(!G)return-1;if(!Y)return 1;if(G.physical!==Y.physical)return G.physical>Y.physical?1:-1;if(G.logical!==Y.logical)return G.logical>Y.logical?1:-1;return 0}}}function pC(W,X,G){let Y=X.timestamp;if(Y?.physical>Date.now()+7200000)Y={physical:Date.now()+7200000,logical:Y.logical};if(X?.value?.priority===!0&&typeof X.id==="string"&&X.id.startsWith("user:")&&"role"in X.value){let{priority:Z,...V}=X.value;return{resolved:!0,value:V,timestamp:Y}}if(X?.value?.priority!==void 0){let{priority:Z,...V}=X.value;X={...X,value:V}}if(!W?.timestamp)return{resolved:!0,value:X.value,timestamp:Y};let J=G.compare(Y,W.timestamp);if(J<0)return{resolved:!1};if(J===0&&JSON.stringify(X.value)<=JSON.stringify(W.value))return{resolved:!1};return{resolved:!0,value:X.value,timestamp:Y}}var FJ={$eq:(W,X)=>W===X,$ne:(W,X)=>W!==X,$gt:(W,X)=>W>X,$gte:(W,X)=>W>=X,$lt:(W,X)=>W<X,$lte:(W,X)=>W<=X,$in:(W,X)=>Array.isArray(X)&&(Array.isArray(W)?W.some((G)=>X.includes(G)):X.includes(W)),$between:(W,[X,G])=>W>=X&&W<=G,$exists:(W,X)=>X?W!==void 0:W===void 0,$startsWith:(W,X)=>typeof W==="string"&&W.startsWith(X),$endsWith:(W,X)=>typeof W==="string"&&W.endsWith(X),$contains:(W,X)=>typeof W==="string"&&W.includes(X),$text:{global:(W,X)=>{let G=(J)=>String(J).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),Y=G(X);return Object.values(W).some((J)=>typeof J==="object"?null.fieldSearch(J,Y):G(J).includes(Y))},field:(W,X)=>{let G=(J)=>String(J).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),Y=G(X);return Array.isArray(W)?W.some((J)=>G(J).includes(Y)):G(W).includes(Y)}},$like:(W,X)=>typeof W==="string"&&typeof X==="string"&&new RegExp(`^${X.replace(/%/g,".*").replace(/_/g,".")}$`,"i").test(W),$regex:(W,X)=>typeof W==="string"&&new RegExp(X.$regex||X,"i").test(W),$and:(W,X,G)=>X.every((Y)=>G.createFilter(Y,G.allNodes)(W)),$or:(W,X,G)=>X.some((Y)=>G.createFilter(Y,G.allNodes)(W)),$not:(W,X,G)=>!G.createFilter(X,G.allNodes)(W),$edge:(W,X,G)=>{if(!W.edges?.length||typeof X!=="object"||X===null)return!1;let Y=G.createFilter(X,G.allNodes),J=[...W.edges],Z=new Set(J).add(W.id),V=[];while(J.length){let U=J.shift(),Q=G.allNodes[U];if(!Q)continue;if(Y(Q))V.push(Q);Q.edges?.forEach((N)=>!Z.has(N)&&Z.add(N)&&J.push(N))}if(V.length)W._edgeResult=V;return V.length>0}},eU=(W,X)=>X.split(".").reduce((G,Y)=>G&&typeof G==="object"&&(Y in G)?G[Y]:void 0,W),WQ=(W,X)=>{if(Object.keys(W).length===0)return()=>!0;return(G)=>Object.entries(W).every(([Y,J])=>{if(Y.startsWith("$"))return FJ[Y](G,J,{createFilter:WQ,allNodes:X});let Z=eU(G.value,Y);if(Z===void 0)Z=eU(G,Y);if(J instanceof RegExp)return J.test(String(Z));if(typeof J!=="object"||J===null)return FJ.$eq(Z,J);return Object.entries(J).every(([V,U])=>{if(V==="$text")return FJ.$text.field(Z,U);if(V==="$between"&&U.every((Q)=>Q instanceof Date))return FJ.$between(new Date(Z),U);return FJ[V]?.(Z,U,{createFilter:WQ,allNodes:X})??!1})})},iA=(W,X)=>{let{$edge:G,...Y}=X.query||{},J=WQ(Y,W),Z=Object.values(W).filter(J),U=[...G?(()=>{let Q=WQ({$edge:G},W);Z.forEach((q)=>Q(q));let N=new Map;return Z.forEach((q)=>{if(q._edgeResult)q._edgeResult.forEach((A)=>N.set(A.id,A)),delete q._edgeResult}),Array.from(N.values())})():Z];if(X.field){let Q=X.order==="asc"?1:-1;U.sort((N,q)=>{let A=eU(N.value,X.field),H=eU(q.value,X.field);if(typeof A==="string"&&typeof H==="string")return A.localeCompare(H)*Q;return((A??0)-(H??0))*Q})}if(X.$after){let Q=U.findIndex((N)=>N.id===X.$after);U=Q>=0?U.slice(Q+1):[]}if(X.$before){let Q=U.findIndex((N)=>N.id===X.$before);U=Q>=0?U.slice(0,Q):[]}if(X.$limit)U=U.slice(0,X.$limit);return U};var JG=(()=>{let W=()=>{};return new Proxy(console,{get:(X,G)=>globalThis.__gdbDebug?X[G].bind(X):W})})(),XG=typeof globalThis==="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function PQ(W){return W instanceof Uint8Array||ArrayBuffer.isView(W)&&W.constructor.name==="Uint8Array"}function Vz(W){if(!Number.isSafeInteger(W)||W<0)throw Error("positive integer expected, got "+W)}function LW(W,...X){if(!PQ(W))throw Error("Uint8Array expected");if(X.length>0&&!X.includes(W.length))throw Error("Uint8Array expected of length "+X+", got length="+W.length)}function NT(W){if(typeof W!=="function"||typeof W.create!=="function")throw Error("Hash should be wrapped by utils.createHasher");Vz(W.outputLen),Vz(W.blockLen)}function AQ(W,X=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(X&&W.finished)throw Error("Hash#digest() has already been called")}function Hu(W,X){LW(W);let G=X.outputLen;if(W.length<G)throw Error("digestInto() expects output buffer of length at least "+G)}function zQ(...W){for(let X=0;X<W.length;X++)W[X].fill(0)}function rA(W){return new DataView(W.buffer,W.byteOffset,W.byteLength)}function I7(W,X){return W<<32-X|W>>>X}var qT=(()=>typeof Uint8Array.from([]).toHex==="function"&&typeof Uint8Array.fromHex==="function")(),Au=Array.from({length:256},(W,X)=>X.toString(16).padStart(2,"0"));function ZG(W){if(LW(W),qT)return W.toHex();let X="";for(let G=0;G<W.length;G++)X+=Au[W[G]];return X}var X4={_0:48,_9:57,A:65,F:70,a:97,f:102};function cC(W){if(W>=X4._0&&W<=X4._9)return W-X4._0;if(W>=X4.A&&W<=X4.F)return W-(X4.A-10);if(W>=X4.a&&W<=X4.f)return W-(X4.a-10);return}function IQ(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);if(qT)return Uint8Array.fromHex(W);let X=W.length,G=X/2;if(X%2)throw Error("hex string expected, got unpadded hex of length "+X);let Y=new Uint8Array(G);for(let J=0,Z=0;J<G;J++,Z+=2){let V=cC(W.charCodeAt(Z)),U=cC(W.charCodeAt(Z+1));if(V===void 0||U===void 0){let Q=W[Z]+W[Z+1];throw Error('hex string expected, got non-hex character "'+Q+'" at index '+Z)}Y[J]=V*16+U}return Y}function HT(W){if(typeof W!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(W))}function Iz(W){if(typeof W==="string")W=HT(W);return LW(W),W}function w7(...W){let X=0;for(let Y=0;Y<W.length;Y++){let J=W[Y];LW(J),X+=J.length}let G=new Uint8Array(X);for(let Y=0,J=0;Y<W.length;Y++){let Z=W[Y];G.set(Z,J),J+=Z.length}return G}class wz{}function zu(W){let X=(Y)=>W().update(Iz(Y)).digest(),G=W();return X.outputLen=G.outputLen,X.blockLen=G.blockLen,X.create=()=>W(),X}function RQ(W=32){if(XG&&typeof XG.getRandomValues==="function")return XG.getRandomValues(new Uint8Array(W));if(XG&&typeof XG.randomBytes==="function")return Uint8Array.from(XG.randomBytes(W));throw Error("crypto.getRandomValues must be defined")}function Iu(W,X,G,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(X,G,Y);let J=BigInt(32),Z=BigInt(4294967295),V=Number(G>>J&Z),U=Number(G&Z),Q=Y?4:0,N=Y?0:4;W.setUint32(X+Q,V,Y),W.setUint32(X+N,U,Y)}function wu(W,X,G){return W&X^~W&G}function ju(W,X,G){return W&X^W&G^X&G}class AT extends wz{constructor(W,X,G,Y){super();this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=W,this.outputLen=X,this.padOffset=G,this.isLE=Y,this.buffer=new Uint8Array(W),this.view=rA(this.buffer)}update(W){AQ(this),W=Iz(W),LW(W);let{view:X,buffer:G,blockLen:Y}=this,J=W.length;for(let Z=0;Z<J;){let V=Math.min(Y-this.pos,J-Z);if(V===Y){let U=rA(W);for(;Y<=J-Z;Z+=Y)this.process(U,Z);continue}if(G.set(W.subarray(Z,Z+V),this.pos),this.pos+=V,Z+=V,this.pos===Y)this.process(X,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){AQ(this),Hu(W,this),this.finished=!0;let{buffer:X,view:G,blockLen:Y,isLE:J}=this,{pos:Z}=this;if(X[Z++]=128,zQ(this.buffer.subarray(Z)),this.padOffset>Y-Z)this.process(G,0),Z=0;for(let q=Z;q<Y;q++)X[q]=0;Iu(G,Y-8,BigInt(this.length*8),J),this.process(G,0);let V=rA(W),U=this.outputLen;if(U%4)throw Error("_sha2: outputLen should be aligned to 32bit");let Q=U/4,N=this.get();if(Q>N.length)throw Error("_sha2: outputLen bigger than state");for(let q=0;q<Q;q++)V.setUint32(4*q,N[q],J)}digest(){let{buffer:W,outputLen:X}=this;this.digestInto(W);let G=W.slice(0,X);return this.destroy(),G}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:X,buffer:G,length:Y,finished:J,destroyed:Z,pos:V}=this;if(W.destroyed=Z,W.finished=J,W.length=Y,W.pos=V,Y%X)W.buffer.set(G);return W}clone(){return this._cloneInto()}}var q6=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Ku=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 zT extends AT{constructor(W=32){super(64,W,8,!1);this.A=q6[0]|0,this.B=q6[1]|0,this.C=q6[2]|0,this.D=q6[3]|0,this.E=q6[4]|0,this.F=q6[5]|0,this.G=q6[6]|0,this.H=q6[7]|0}get(){let{A:W,B:X,C:G,D:Y,E:J,F:Z,G:V,H:U}=this;return[W,X,G,Y,J,Z,V,U]}set(W,X,G,Y,J,Z,V,U){this.A=W|0,this.B=X|0,this.C=G|0,this.D=Y|0,this.E=J|0,this.F=Z|0,this.G=V|0,this.H=U|0}process(W,X){for(let q=0;q<16;q++,X+=4)H6[q]=W.getUint32(X,!1);for(let q=16;q<64;q++){let A=H6[q-15],H=H6[q-2],I=I7(A,7)^I7(A,18)^A>>>3,w=I7(H,17)^I7(H,19)^H>>>10;H6[q]=w+H6[q-7]+I+H6[q-16]|0}let{A:G,B:Y,C:J,D:Z,E:V,F:U,G:Q,H:N}=this;for(let q=0;q<64;q++){let A=I7(V,6)^I7(V,11)^I7(V,25),H=N+A+wu(V,U,Q)+Ku[q]+H6[q]|0,I=(I7(G,2)^I7(G,13)^I7(G,22))+ju(G,Y,J)|0;N=Q,Q=U,U=V,V=Z+H|0,Z=J,J=Y,Y=G,G=H+I|0}G=G+this.A|0,Y=Y+this.B|0,J=J+this.C|0,Z=Z+this.D|0,V=V+this.E|0,U=U+this.F|0,Q=Q+this.G|0,N=N+this.H|0,this.set(G,Y,J,Z,V,U,Q,N)}roundClean(){zQ(H6)}destroy(){this.set(0,0,0,0,0,0,0,0),zQ(this.buffer)}}var Uz=zu(()=>new zT);class jz extends wz{constructor(W,X){super();this.finished=!1,this.destroyed=!1,NT(W);let G=Iz(X);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,J=new Uint8Array(Y);J.set(G.length>Y?W.create().update(G).digest():G);for(let Z=0;Z<J.length;Z++)J[Z]^=54;this.iHash.update(J),this.oHash=W.create();for(let Z=0;Z<J.length;Z++)J[Z]^=106;this.oHash.update(J),zQ(J)}update(W){return AQ(this),this.iHash.update(W),this}digestInto(W){AQ(this),LW(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:X,iHash:G,finished:Y,destroyed:J,blockLen:Z,outputLen:V}=this;return W=W,W.finished=Y,W.destroyed=J,W.blockLen=Z,W.outputLen=V,W.oHash=X._cloneInto(W.oHash),W.iHash=G._cloneInto(W.iHash),W}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var IT=(W,X,G)=>new jz(W,X).update(G).digest();IT.create=(W,X)=>new jz(W,X);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Kz=BigInt(0),Qz=BigInt(1);function wQ(W,X=""){if(typeof W!=="boolean"){let G=X&&`"${X}"`;throw Error(G+"expected boolean, got type="+typeof W)}return W}function TW(W,X,G=""){let Y=PQ(W),J=W?.length,Z=X!==void 0;if(!Y||Z&&J!==X){let V=G&&`"${G}" `,U=Z?` of length ${X}`:"",Q=Y?`length=${J}`:`type=${typeof W}`;throw Error(V+"expected Uint8Array"+U+", got "+Q)}return W}function XQ(W){let X=W.toString(16);return X.length&1?"0"+X:X}function wT(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return W===""?Kz:BigInt("0x"+W)}function qG(W){return wT(ZG(W))}function jT(W){return LW(W),wT(ZG(Uint8Array.from(W).reverse()))}function LQ(W,X){return IQ(W.toString(16).padStart(X*2,"0"))}function KT(W,X){return LQ(W,X).reverse()}function f8(W,X,G){let Y;if(typeof X==="string")try{Y=IQ(X)}catch(Z){throw Error(W+" must be hex string or Uint8Array, cause: "+Z)}else if(PQ(X))Y=Uint8Array.from(X);else throw Error(W+" must be hex string or Uint8Array");let J=Y.length;if(typeof G==="number"&&J!==G)throw Error(W+" of length "+G+" expected, got "+J);return Y}var aA=(W)=>typeof W==="bigint"&&Kz<=W;function Nz(W,X,G){return aA(W)&&aA(X)&&aA(G)&&X<=W&&W<G}function Ou(W,X,G,Y){if(!Nz(X,G,Y))throw Error("expected valid "+W+": "+G+" <= n < "+Y+", got "+X)}function OT(W){let X;for(X=0;W>Kz;W>>=Qz,X+=1);return X}var hJ=(W)=>(Qz<<BigInt(W))-Qz;function Du(W,X,G){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof X!=="number"||X<2)throw Error("qByteLen must be a number");if(typeof G!=="function")throw Error("hmacFn must be a function");let Y=(H)=>new Uint8Array(H),J=(H)=>Uint8Array.of(H),Z=Y(W),V=Y(W),U=0,Q=()=>{Z.fill(1),V.fill(0),U=0},N=(...H)=>G(V,Z,...H),q=(H=Y(0))=>{if(V=N(J(0),H),Z=N(),H.length===0)return;V=N(J(1),H),Z=N()},A=()=>{if(U++>=1000)throw Error("drbg: tried 1000 values");let H=0,I=[];while(H<X){Z=N();let w=Z.slice();I.push(w),H+=Z.length}return w7(...I)};return(H,I)=>{Q(),q(H);let w=void 0;while(!(w=I(A())))q();return Q(),w}}function Oz(W,X,G={}){if(!W||typeof W!=="object")throw Error("expected valid options object");function Y(J,Z,V){let U=W[J];if(V&&U===void 0)return;let Q=typeof U;if(Q!==Z||U===null)throw Error(`param "${J}" is invalid: expected ${Z}, got ${Q}`)}Object.entries(X).forEach(([J,Z])=>Y(J,Z,!1)),Object.entries(G).forEach(([J,Z])=>Y(J,Z,!0))}function lC(W){let X=new WeakMap;return(G,...Y)=>{let J=X.get(G);if(J!==void 0)return J;let Z=W(G,...Y);return X.set(G,Z),Z}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var _9=BigInt(0),I9=BigInt(1),MW=BigInt(2),DT=BigInt(3),CT=BigInt(4),TT=BigInt(5),Cu=BigInt(7),MT=BigInt(8),Tu=BigInt(9),PT=BigInt(16);function C5(W,X){let G=W%X;return G>=_9?G:X+G}function O5(W,X,G){let Y=W;while(X-- >_9)Y*=Y,Y%=G;return Y}function dC(W,X){if(W===_9)throw Error("invert: expected non-zero number");if(X<=_9)throw Error("invert: expected positive modulus, got "+X);let G=C5(W,X),Y=X,J=_9,Z=I9,V=I9,U=_9;while(G!==_9){let Q=Y/G,N=Y%G,q=J-V*Q,A=Z-U*Q;Y=G,G=N,J=V,Z=U,V=q,U=A}if(Y!==I9)throw Error("invert: does not exist");return C5(J,X)}function Dz(W,X,G){if(!W.eql(W.sqr(X),G))throw Error("Cannot find square root")}function RT(W,X){let G=(W.ORDER+I9)/CT,Y=W.pow(X,G);return Dz(W,Y,X),Y}function Mu(W,X){let G=(W.ORDER-TT)/MT,Y=W.mul(X,MW),J=W.pow(Y,G),Z=W.mul(X,J),V=W.mul(W.mul(Z,MW),J),U=W.mul(Z,W.sub(V,W.ONE));return Dz(W,U,X),U}function Pu(W){let X=bJ(W),G=LT(W),Y=G(X,X.neg(X.ONE)),J=G(X,Y),Z=G(X,X.neg(Y)),V=(W+Cu)/PT;return(U,Q)=>{let N=U.pow(Q,V),q=U.mul(N,Y),A=U.mul(N,J),H=U.mul(N,Z),I=U.eql(U.sqr(q),Q),w=U.eql(U.sqr(A),Q);N=U.cmov(N,q,I),q=U.cmov(H,A,w);let O=U.eql(U.sqr(q),Q),T=U.cmov(N,q,O);return Dz(U,T,Q),T}}function LT(W){if(W<DT)throw Error("sqrt is not defined for small field");let X=W-I9,G=0;while(X%MW===_9)X/=MW,G++;let Y=MW,J=bJ(W);while(oC(J,Y)===1)if(Y++>1000)throw Error("Cannot find square root: probably non-prime P");if(G===1)return RT;let Z=J.pow(Y,X),V=(X+I9)/MW;return function(U,Q){if(U.is0(Q))return Q;if(oC(U,Q)!==1)throw Error("Cannot find square root");let N=G,q=U.mul(U.ONE,Z),A=U.pow(Q,X),H=U.pow(Q,V);while(!U.eql(A,U.ONE)){if(U.is0(A))return U.ZERO;let I=1,w=U.sqr(A);while(!U.eql(w,U.ONE))if(I++,w=U.sqr(w),I===N)throw Error("Cannot find square root");let O=I9<<BigInt(N-I-1),T=U.pow(q,O);N=I,q=U.sqr(T),A=U.mul(A,q),H=U.mul(H,T)}return H}}function Ru(W){if(W%CT===DT)return RT;if(W%MT===TT)return Mu;if(W%PT===Tu)return Pu(W);return LT(W)}var Lu=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Bu(W){let X={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},G=Lu.reduce((Y,J)=>{return Y[J]="function",Y},X);return Oz(W,G),W}function Eu(W,X,G){if(G<_9)throw Error("invalid exponent, negatives unsupported");if(G===_9)return W.ONE;if(G===I9)return X;let Y=W.ONE,J=X;while(G>_9){if(G&I9)Y=W.mul(Y,J);J=W.sqr(J),G>>=I9}return Y}function BT(W,X,G=!1){let Y=Array(X.length).fill(G?W.ZERO:void 0),J=X.reduce((V,U,Q)=>{if(W.is0(U))return V;return Y[Q]=V,W.mul(V,U)},W.ONE),Z=W.inv(J);return X.reduceRight((V,U,Q)=>{if(W.is0(U))return V;return Y[Q]=W.mul(V,Y[Q]),W.mul(V,U)},Z),Y}function oC(W,X){let G=(W.ORDER-I9)/MW,Y=W.pow(X,G),J=W.eql(Y,W.ONE),Z=W.eql(Y,W.ZERO),V=W.eql(Y,W.neg(W.ONE));if(!J&&!Z&&!V)throw Error("invalid Legendre symbol result");return J?1:Z?0:-1}function ET(W,X){if(X!==void 0)Vz(X);let G=X!==void 0?X:W.toString(2).length,Y=Math.ceil(G/8);return{nBitLength:G,nByteLength:Y}}function bJ(W,X,G=!1,Y={}){if(W<=_9)throw Error("invalid field: expected ORDER > 0, got "+W);let J=void 0,Z=void 0,V=!1,U=void 0;if(typeof X==="object"&&X!=null){if(Y.sqrt||G)throw Error("cannot specify opts in two arguments");let H=X;if(H.BITS)J=H.BITS;if(H.sqrt)Z=H.sqrt;if(typeof H.isLE==="boolean")G=H.isLE;if(typeof H.modFromBytes==="boolean")V=H.modFromBytes;U=H.allowedLengths}else{if(typeof X==="number")J=X;if(Y.sqrt)Z=Y.sqrt}let{nBitLength:Q,nByteLength:N}=ET(W,J);if(N>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let q,A=Object.freeze({ORDER:W,isLE:G,BITS:Q,BYTES:N,MASK:hJ(Q),ZERO:_9,ONE:I9,allowedLengths:U,create:(H)=>C5(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&I9)===I9,neg:(H)=>C5(-H,W),eql:(H,I)=>H===I,sqr:(H)=>C5(H*H,W),add:(H,I)=>C5(H+I,W),sub:(H,I)=>C5(H-I,W),mul:(H,I)=>C5(H*I,W),pow:(H,I)=>Eu(A,H,I),div:(H,I)=>C5(H*dC(I,W),W),sqrN:(H)=>H*H,addN:(H,I)=>H+I,subN:(H,I)=>H-I,mulN:(H,I)=>H*I,inv:(H)=>dC(H,W),sqrt:Z||((H)=>{if(!q)q=Ru(W);return q(A,H)}),toBytes:(H)=>G?KT(H,N):LQ(H,N),fromBytes:(H,I=!0)=>{if(U){if(!U.includes(H.length)||H.length>N)throw Error("Field.fromBytes: expected "+U+" bytes, got "+H.length);let O=new Uint8Array(N);O.set(H,G?0:O.length-H.length),H=O}if(H.length!==N)throw Error("Field.fromBytes: expected "+N+" bytes, got "+H.length);let w=G?jT(H):qG(H);if(V)w=C5(w,W);if(!I){if(!A.isValid(w))throw Error("invalid field element: outside of range 0..ORDER")}return w},invertBatch:(H)=>BT(A,H),cmov:(H,I,w)=>w?I:H});return Object.freeze(A)}function $T(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let X=W.toString(2).length;return Math.ceil(X/8)}function FT(W){let X=$T(W);return X+Math.ceil(X/2)}function ST(W,X,G=!1){let Y=W.length,J=$T(X),Z=FT(X);if(Y<16||Y<Z||Y>1024)throw Error("expected "+Z+"-1024 bytes of input, got "+Y);let V=G?jT(W):qG(W),U=C5(V,X-I9)+I9;return G?KT(U,J):LQ(U,J)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var QG=BigInt(0),PW=BigInt(1);function jQ(W,X){let G=X.negate();return W?G:X}function sA(W,X){let G=BT(W.Fp,X.map((Y)=>Y.Z));return X.map((Y,J)=>W.fromAffine(Y.toAffine(G[J])))}function xT(W,X){if(!Number.isSafeInteger(W)||W<=0||W>X)throw Error("invalid window size, expected [1.."+X+"], got W="+W)}function tA(W,X){xT(W,X);let G=Math.ceil(X/W)+1,Y=2**(W-1),J=2**W,Z=hJ(W),V=BigInt(W);return{windows:G,windowSize:Y,mask:Z,maxNumber:J,shiftBy:V}}function nC(W,X,G){let{windowSize:Y,mask:J,maxNumber:Z,shiftBy:V}=G,U=Number(W&J),Q=W>>V;if(U>Y)U-=Z,Q+=PW;let N=X*Y,q=N+Math.abs(U)-1,A=U===0,H=U<0,I=X%2!==0;return{nextN:Q,offset:q,isZero:A,isNeg:H,isNegF:I,offsetF:N}}function $u(W,X){if(!Array.isArray(W))throw Error("array expected");W.forEach((G,Y)=>{if(!(G instanceof X))throw Error("invalid point at index "+Y)})}function Fu(W,X){if(!Array.isArray(W))throw Error("array of scalars expected");W.forEach((G,Y)=>{if(!X.isValid(G))throw Error("invalid scalar at index "+Y)})}var eA=new WeakMap,kT=new WeakMap;function Wz(W){return kT.get(W)||1}function iC(W){if(W!==QG)throw Error("invalid wNAF")}class _T{constructor(W,X){this.BASE=W.BASE,this.ZERO=W.ZERO,this.Fn=W.Fn,this.bits=X}_unsafeLadder(W,X,G=this.ZERO){let Y=W;while(X>QG){if(X&PW)G=G.add(Y);Y=Y.double(),X>>=PW}return G}precomputeWindow(W,X){let{windows:G,windowSize:Y}=tA(X,this.bits),J=[],Z=W,V=Z;for(let U=0;U<G;U++){V=Z,J.push(V);for(let Q=1;Q<Y;Q++)V=V.add(Z),J.push(V);Z=V.double()}return J}wNAF(W,X,G){if(!this.Fn.isValid(G))throw Error("invalid scalar");let Y=this.ZERO,J=this.BASE,Z=tA(W,this.bits);for(let V=0;V<Z.windows;V++){let{nextN:U,offset:Q,isZero:N,isNeg:q,isNegF:A,offsetF:H}=nC(G,V,Z);if(G=U,N)J=J.add(jQ(A,X[H]));else Y=Y.add(jQ(q,X[Q]))}return iC(G),{p:Y,f:J}}wNAFUnsafe(W,X,G,Y=this.ZERO){let J=tA(W,this.bits);for(let Z=0;Z<J.windows;Z++){if(G===QG)break;let{nextN:V,offset:U,isZero:Q,isNeg:N}=nC(G,Z,J);if(G=V,Q)continue;else{let q=X[U];Y=Y.add(N?q.negate():q)}}return iC(G),Y}getPrecomputes(W,X,G){let Y=eA.get(X);if(!Y){if(Y=this.precomputeWindow(X,W),W!==1){if(typeof G==="function")Y=G(Y);eA.set(X,Y)}}return Y}cached(W,X,G){let Y=Wz(W);return this.wNAF(Y,this.getPrecomputes(Y,W,G),X)}unsafe(W,X,G,Y){let J=Wz(W);if(J===1)return this._unsafeLadder(W,X,Y);return this.wNAFUnsafe(J,this.getPrecomputes(J,W,G),X,Y)}createCache(W,X){xT(X,this.bits),kT.set(W,X),eA.delete(W)}hasCache(W){return Wz(W)!==1}}function Su(W,X,G,Y){let J=X,Z=W.ZERO,V=W.ZERO;while(G>QG||Y>QG){if(G&PW)Z=Z.add(J);if(Y&PW)V=V.add(J);J=J.double(),G>>=PW,Y>>=PW}return{p1:Z,p2:V}}function xu(W,X,G,Y){$u(G,W),Fu(Y,X);let J=G.length,Z=Y.length;if(J!==Z)throw Error("arrays of points and scalars must have equal length");let V=W.ZERO,U=OT(BigInt(J)),Q=1;if(U>12)Q=U-3;else if(U>4)Q=U-2;else if(U>0)Q=2;let N=hJ(Q),q=Array(Number(N)+1).fill(V),A=Math.floor((X.BITS-1)/Q)*Q,H=V;for(let I=A;I>=0;I-=Q){q.fill(V);for(let O=0;O<Z;O++){let T=Y[O],x=Number(T>>BigInt(I)&N);q[x]=q[x].add(G[O])}let w=V;for(let O=q.length-1,T=V;O>0;O--)T=T.add(q[O]),w=w.add(T);if(H=H.add(w),I!==0)for(let O=0;O<Q;O++)H=H.double()}return H}function rC(W,X,G){if(X){if(X.ORDER!==W)throw Error("Field.ORDER must match order: Fp == p, Fn == n");return Bu(X),X}else return bJ(W,{isLE:G})}function ku(W,X,G={},Y){if(Y===void 0)Y=W==="edwards";if(!X||typeof X!=="object")throw Error(`expected valid ${W} CURVE object`);for(let U of["p","n","h"]){let Q=X[U];if(!(typeof Q==="bigint"&&Q>QG))throw Error(`CURVE.${U} must be positive bigint`)}let J=rC(X.p,G.Fp,Y),Z=rC(X.n,G.Fn,Y),V=["Gx","Gy","a",W==="weierstrass"?"b":"d"];for(let U of V)if(!J.isValid(X[U]))throw Error(`CURVE.${U} must be valid field element of CURVE.Fp`);return X=Object.freeze(Object.assign({},X)),{CURVE:X,Fp:J,Fn:Z}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var aC=(W,X)=>(W+(W>=0?X:-X)/vT)/X;function _u(W,X,G){let[[Y,J],[Z,V]]=X,U=aC(V*W,G),Q=aC(-J*W,G),N=W-U*Y-Q*Z,q=-U*J-Q*V,A=N<Y4,H=q<Y4;if(A)N=-N;if(H)q=-q;let I=hJ(Math.ceil(OT(G)/2))+VG;if(N<Y4||N>=I||q<Y4||q>=I)throw Error("splitScalar (endomorphism): failed, k="+W);return{k1neg:A,k1:N,k2neg:H,k2:q}}function qz(W){if(!["compact","recovered","der"].includes(W))throw Error('Signature format must be "compact", "recovered", or "der"');return W}function Xz(W,X){let G={};for(let Y of Object.keys(X))G[Y]=W[Y]===void 0?X[Y]:W[Y];if(wQ(G.lowS,"lowS"),wQ(G.prehash,"prehash"),G.format!==void 0)qz(G.format);return G}class yT extends Error{constructor(W=""){super(W)}}var G4={Err:yT,_tlv:{encode:(W,X)=>{let{Err:G}=G4;if(W<0||W>256)throw new G("tlv.encode: wrong tag");if(X.length&1)throw new G("tlv.encode: unpadded data");let Y=X.length/2,J=XQ(Y);if(J.length/2&128)throw new G("tlv.encode: long form length too big");let Z=Y>127?XQ(J.length/2|128):"";return XQ(W)+Z+J+X},decode(W,X){let{Err:G}=G4,Y=0;if(W<0||W>256)throw new G("tlv.encode: wrong tag");if(X.length<2||X[Y++]!==W)throw new G("tlv.decode: wrong tlv");let J=X[Y++],Z=!!(J&128),V=0;if(!Z)V=J;else{let Q=J&127;if(!Q)throw new G("tlv.decode(long): indefinite length not supported");if(Q>4)throw new G("tlv.decode(long): byte length is too big");let N=X.subarray(Y,Y+Q);if(N.length!==Q)throw new G("tlv.decode: length bytes not complete");if(N[0]===0)throw new G("tlv.decode(long): zero leftmost byte");for(let q of N)V=V<<8|q;if(Y+=Q,V<128)throw new G("tlv.decode(long): not minimal encoding")}let U=X.subarray(Y,Y+V);if(U.length!==V)throw new G("tlv.decode: wrong value length");return{v:U,l:X.subarray(Y+V)}}},_int:{encode(W){let{Err:X}=G4;if(W<Y4)throw new X("integer: negative integers are not allowed");let G=XQ(W);if(Number.parseInt(G[0],16)&8)G="00"+G;if(G.length&1)throw new X("unexpected DER parsing assertion: unpadded hex");return G},decode(W){let{Err:X}=G4;if(W[0]&128)throw new X("invalid signature integer: negative");if(W[0]===0&&!(W[1]&128))throw new X("invalid signature integer: unnecessary leading zero");return qG(W)}},toSig(W){let{Err:X,_int:G,_tlv:Y}=G4,J=f8("signature",W),{v:Z,l:V}=Y.decode(48,J);if(V.length)throw new X("invalid signature: left bytes after parsing");let{v:U,l:Q}=Y.decode(2,Z),{v:N,l:q}=Y.decode(2,Q);if(q.length)throw new X("invalid signature: left bytes after parsing");return{r:G.decode(U),s:G.decode(N)}},hexFromSig(W){let{_tlv:X,_int:G}=G4,Y=X.encode(2,G.encode(W.r)),J=X.encode(2,G.encode(W.s)),Z=Y+J;return X.encode(48,Z)}},Y4=BigInt(0),VG=BigInt(1),vT=BigInt(2),GQ=BigInt(3),yu=BigInt(4);function RW(W,X){let{BYTES:G}=W,Y;if(typeof X==="bigint")Y=X;else{let J=f8("private key",X);try{Y=W.fromBytes(J)}catch(Z){throw Error(`invalid private key: expected ui8a of size ${G}, got ${typeof X}`)}}if(!W.isValidNot0(Y))throw Error("invalid private key: out of range [1..N-1]");return Y}function vu(W,X={}){let G=ku("weierstrass",W,X),{Fp:Y,Fn:J}=G,Z=G.CURVE,{h:V,n:U}=Z;Oz(X,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:Q}=X;if(Q){if(!Y.is0(Z.a)||typeof Q.beta!=="bigint"||!Array.isArray(Q.basises))throw Error('invalid endo: expected "beta": bigint and "basises": array')}let N=uT(Y,J);function q(){if(!Y.isOdd)throw Error("compression is not supported: Field does not have .isOdd()")}function A(g,d,R){let{x:$,y:f}=d.toAffine(),r=Y.toBytes($);if(wQ(R,"isCompressed"),R){q();let o=!Y.isOdd(f);return w7(gT(o),r)}else return w7(Uint8Array.of(4),r,Y.toBytes(f))}function H(g){TW(g,void 0,"Point");let{publicKey:d,publicKeyUncompressed:R}=N,$=g.length,f=g[0],r=g.subarray(1);if($===d&&(f===2||f===3)){let o=Y.fromBytes(r);if(!Y.isValid(o))throw Error("bad point: is not on curve, wrong x");let E=O(o),S;try{S=Y.sqrt(E)}catch(v){let L=v instanceof Error?": "+v.message:"";throw Error("bad point: is not on curve, sqrt error"+L)}q();let _=Y.isOdd(S);if((f&1)===1!==_)S=Y.neg(S);return{x:o,y:S}}else if($===R&&f===4){let o=Y.BYTES,E=Y.fromBytes(r.subarray(0,o)),S=Y.fromBytes(r.subarray(o,o*2));if(!T(E,S))throw Error("bad point: is not on curve");return{x:E,y:S}}else throw Error(`bad point: got length ${$}, expected compressed=${d} or uncompressed=${R}`)}let I=X.toBytes||A,w=X.fromBytes||H;function O(g){let d=Y.sqr(g),R=Y.mul(d,g);return Y.add(Y.add(R,Y.mul(g,Z.a)),Z.b)}function T(g,d){let R=Y.sqr(d),$=O(g);return Y.eql(R,$)}if(!T(Z.Gx,Z.Gy))throw Error("bad curve params: generator point");let x=Y.mul(Y.pow(Z.a,GQ),yu),P=Y.mul(Y.sqr(Z.b),BigInt(27));if(Y.is0(Y.add(x,P)))throw Error("bad curve params: a or b");function u(g,d,R=!1){if(!Y.isValid(d)||R&&Y.is0(d))throw Error(`bad point coordinate ${g}`);return d}function F(g){if(!(g instanceof y))throw Error("ProjectivePoint expected")}function m(g){if(!Q||!Q.basises)throw Error("no endo");return _u(g,Q.basises,J.ORDER)}let l=lC((g,d)=>{let{X:R,Y:$,Z:f}=g;if(Y.eql(f,Y.ONE))return{x:R,y:$};let r=g.is0();if(d==null)d=r?Y.ONE:Y.inv(f);let o=Y.mul(R,d),E=Y.mul($,d),S=Y.mul(f,d);if(r)return{x:Y.ZERO,y:Y.ZERO};if(!Y.eql(S,Y.ONE))throw Error("invZ was invalid");return{x:o,y:E}}),p=lC((g)=>{if(g.is0()){if(X.allowInfinityPoint&&!Y.is0(g.Y))return;throw Error("bad point: ZERO")}let{x:d,y:R}=g.toAffine();if(!Y.isValid(d)||!Y.isValid(R))throw Error("bad point: x or y not field elements");if(!T(d,R))throw Error("bad point: equation left != right");if(!g.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});function W0(g,d,R,$,f){return R=new y(Y.mul(R.X,g),R.Y,R.Z),d=jQ($,d),R=jQ(f,R),d.add(R)}class y{constructor(g,d,R){this.X=u("x",g),this.Y=u("y",d,!0),this.Z=u("z",R),Object.freeze(this)}static CURVE(){return Z}static fromAffine(g){let{x:d,y:R}=g||{};if(!g||!Y.isValid(d)||!Y.isValid(R))throw Error("invalid affine point");if(g instanceof y)throw Error("projective point not allowed");if(Y.is0(d)&&Y.is0(R))return y.ZERO;return new y(d,R,Y.ONE)}static fromBytes(g){let d=y.fromAffine(w(TW(g,void 0,"point")));return d.assertValidity(),d}static fromHex(g){return y.fromBytes(f8("pointHex",g))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(g=8,d=!0){if(H0.createCache(this,g),!d)this.multiply(GQ);return this}assertValidity(){p(this)}hasEvenY(){let{y:g}=this.toAffine();if(!Y.isOdd)throw Error("Field doesn't support isOdd");return!Y.isOdd(g)}equals(g){F(g);let{X:d,Y:R,Z:$}=this,{X:f,Y:r,Z:o}=g,E=Y.eql(Y.mul(d,o),Y.mul(f,$)),S=Y.eql(Y.mul(R,o),Y.mul(r,$));return E&&S}negate(){return new y(this.X,Y.neg(this.Y),this.Z)}double(){let{a:g,b:d}=Z,R=Y.mul(d,GQ),{X:$,Y:f,Z:r}=this,o=Y.ZERO,E=Y.ZERO,S=Y.ZERO,_=Y.mul($,$),v=Y.mul(f,f),L=Y.mul(r,r),b=Y.mul($,f);return b=Y.add(b,b),S=Y.mul($,r),S=Y.add(S,S),o=Y.mul(g,S),E=Y.mul(R,L),E=Y.add(o,E),o=Y.sub(v,E),E=Y.add(v,E),E=Y.mul(o,E),o=Y.mul(b,o),S=Y.mul(R,S),L=Y.mul(g,L),b=Y.sub(_,L),b=Y.mul(g,b),b=Y.add(b,S),S=Y.add(_,_),_=Y.add(S,_),_=Y.add(_,L),_=Y.mul(_,b),E=Y.add(E,_),L=Y.mul(f,r),L=Y.add(L,L),_=Y.mul(L,b),o=Y.sub(o,_),S=Y.mul(L,v),S=Y.add(S,S),S=Y.add(S,S),new y(o,E,S)}add(g){F(g);let{X:d,Y:R,Z:$}=this,{X:f,Y:r,Z:o}=g,E=Y.ZERO,S=Y.ZERO,_=Y.ZERO,v=Z.a,L=Y.mul(Z.b,GQ),b=Y.mul(d,f),J0=Y.mul(R,r),U0=Y.mul($,o),N0=Y.add(d,R),$0=Y.add(f,r);N0=Y.mul(N0,$0),$0=Y.add(b,J0),N0=Y.sub(N0,$0),$0=Y.add(d,$);let u0=Y.add(f,o);return $0=Y.mul($0,u0),u0=Y.add(b,U0),$0=Y.sub($0,u0),u0=Y.add(R,$),E=Y.add(r,o),u0=Y.mul(u0,E),E=Y.add(J0,U0),u0=Y.sub(u0,E),_=Y.mul(v,$0),E=Y.mul(L,U0),_=Y.add(E,_),E=Y.sub(J0,_),_=Y.add(J0,_),S=Y.mul(E,_),J0=Y.add(b,b),J0=Y.add(J0,b),U0=Y.mul(v,U0),$0=Y.mul(L,$0),J0=Y.add(J0,U0),U0=Y.sub(b,U0),U0=Y.mul(v,U0),$0=Y.add($0,U0),b=Y.mul(J0,$0),S=Y.add(S,b),b=Y.mul(u0,$0),E=Y.mul(N0,E),E=Y.sub(E,b),b=Y.mul(N0,J0),_=Y.mul(u0,_),_=Y.add(_,b),new y(E,S,_)}subtract(g){return this.add(g.negate())}is0(){return this.equals(y.ZERO)}multiply(g){let{endo:d}=X;if(!J.isValidNot0(g))throw Error("invalid scalar: out of range");let R,$,f=(r)=>H0.cached(this,r,(o)=>sA(y,o));if(d){let{k1neg:r,k1:o,k2neg:E,k2:S}=m(g),{p:_,f:v}=f(o),{p:L,f:b}=f(S);$=v.add(b),R=W0(d.beta,_,L,r,E)}else{let{p:r,f:o}=f(g);R=r,$=o}return sA(y,[R,$])[0]}multiplyUnsafe(g){let{endo:d}=X,R=this;if(!J.isValid(g))throw Error("invalid scalar: out of range");if(g===Y4||R.is0())return y.ZERO;if(g===VG)return R;if(H0.hasCache(this))return this.multiply(g);if(d){let{k1neg:$,k1:f,k2neg:r,k2:o}=m(g),{p1:E,p2:S}=Su(y,R,f,o);return W0(d.beta,E,S,$,r)}else return H0.unsafe(R,g)}multiplyAndAddUnsafe(g,d,R){let $=this.multiplyUnsafe(d).add(g.multiplyUnsafe(R));return $.is0()?void 0:$}toAffine(g){return l(this,g)}isTorsionFree(){let{isTorsionFree:g}=X;if(V===VG)return!0;if(g)return g(y,this);return H0.unsafe(this,U).is0()}clearCofactor(){let{clearCofactor:g}=X;if(V===VG)return this;if(g)return g(y,this);return this.multiplyUnsafe(V)}isSmallOrder(){return this.multiplyUnsafe(V).is0()}toBytes(g=!0){return wQ(g,"isCompressed"),this.assertValidity(),I(y,this,g)}toHex(g=!0){return ZG(this.toBytes(g))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(g=!0){return this.toBytes(g)}_setWindowSize(g){this.precompute(g)}static normalizeZ(g){return sA(y,g)}static msm(g,d){return xu(y,J,g,d)}static fromPrivateKey(g){return y.BASE.multiply(RW(J,g))}}y.BASE=new y(Z.Gx,Z.Gy,Y.ONE),y.ZERO=new y(Y.ZERO,Y.ONE,Y.ZERO),y.Fp=Y,y.Fn=J;let e=J.BITS,H0=new _T(y,X.endo?Math.ceil(e/2):e);return y.BASE.precompute(8),y}function gT(W){return Uint8Array.of(W?2:3)}function uT(W,X){return{secretKey:X.BYTES,publicKey:1+W.BYTES,publicKeyUncompressed:1+2*W.BYTES,publicKeyHasPrefix:!0,signature:2*X.BYTES}}function gu(W,X={}){let{Fn:G}=W,Y=X.randomBytes||RQ,J=Object.assign(uT(W.Fp,G),{seed:FT(G.ORDER)});function Z(H){try{return!!RW(G,H)}catch(I){return!1}}function V(H,I){let{publicKey:w,publicKeyUncompressed:O}=J;try{let T=H.length;if(I===!0&&T!==w)return!1;if(I===!1&&T!==O)return!1;return!!W.fromBytes(H)}catch(T){return!1}}function U(H=Y(J.seed)){return ST(TW(H,J.seed,"seed"),G.ORDER)}function Q(H,I=!0){return W.BASE.multiply(RW(G,H)).toBytes(I)}function N(H){let I=U(H);return{secretKey:I,publicKey:Q(I)}}function q(H){if(typeof H==="bigint")return!1;if(H instanceof W)return!0;let{secretKey:I,publicKey:w,publicKeyUncompressed:O}=J;if(G.allowedLengths||I===w)return;let T=f8("key",H).length;return T===w||T===O}function A(H,I,w=!0){if(q(H)===!0)throw Error("first arg must be private key");if(q(I)===!1)throw Error("second arg must be public key");let O=RW(G,H);return W.fromHex(I).multiply(O).toBytes(w)}return Object.freeze({getPublicKey:Q,getSharedSecret:A,keygen:N,Point:W,utils:{isValidSecretKey:Z,isValidPublicKey:V,randomSecretKey:U,isValidPrivateKey:Z,randomPrivateKey:U,normPrivateKeyToScalar:(H)=>RW(G,H),precompute(H=8,I=W.BASE){return I.precompute(H,!1)}},lengths:J})}function uu(W,X,G={}){NT(X),Oz(G,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let Y=G.randomBytes||RQ,J=G.hmac||((R,...$)=>IT(X,R,w7(...$))),{Fp:Z,Fn:V}=W,{ORDER:U,BITS:Q}=V,{keygen:N,getPublicKey:q,getSharedSecret:A,utils:H,lengths:I}=gu(W,G),w={prehash:!1,lowS:typeof G.lowS==="boolean"?G.lowS:!1,format:void 0,extraEntropy:!1},O="compact";function T(R){let $=U>>VG;return R>$}function x(R,$){if(!V.isValidNot0($))throw Error(`invalid signature ${R}: out of range 1..Point.Fn.ORDER`);return $}function P(R,$){qz($);let f=I.signature,r=$==="compact"?f:$==="recovered"?f+1:void 0;return TW(R,r,`${$} signature`)}class u{constructor(R,$,f){if(this.r=x("r",R),this.s=x("s",$),f!=null)this.recovery=f;Object.freeze(this)}static fromBytes(R,$=O){P(R,$);let f;if($==="der"){let{r:S,s:_}=G4.toSig(TW(R));return new u(S,_)}if($==="recovered")f=R[0],$="compact",R=R.subarray(1);let r=V.BYTES,o=R.subarray(0,r),E=R.subarray(r,r*2);return new u(V.fromBytes(o),V.fromBytes(E),f)}static fromHex(R,$){return this.fromBytes(IQ(R),$)}addRecoveryBit(R){return new u(this.r,this.s,R)}recoverPublicKey(R){let $=Z.ORDER,{r:f,s:r,recovery:o}=this;if(o==null||![0,1,2,3].includes(o))throw Error("recovery id invalid");if(U*vT<$&&o>1)throw Error("recovery id is ambiguous for h>1 curve");let E=o===2||o===3?f+U:f;if(!Z.isValid(E))throw Error("recovery id 2 or 3 invalid");let S=Z.toBytes(E),_=W.fromBytes(w7(gT((o&1)===0),S)),v=V.inv(E),L=m(f8("msgHash",R)),b=V.create(-L*v),J0=V.create(r*v),U0=W.BASE.multiplyUnsafe(b).add(_.multiplyUnsafe(J0));if(U0.is0())throw Error("point at infinify");return U0.assertValidity(),U0}hasHighS(){return T(this.s)}toBytes(R=O){if(qz(R),R==="der")return IQ(G4.hexFromSig(this));let $=V.toBytes(this.r),f=V.toBytes(this.s);if(R==="recovered"){if(this.recovery==null)throw Error("recovery bit must be present");return w7(Uint8Array.of(this.recovery),$,f)}return w7($,f)}toHex(R){return ZG(this.toBytes(R))}assertValidity(){}static fromCompact(R){return u.fromBytes(f8("sig",R),"compact")}static fromDER(R){return u.fromBytes(f8("sig",R),"der")}normalizeS(){return this.hasHighS()?new u(this.r,V.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return ZG(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return ZG(this.toBytes("compact"))}}let F=G.bits2int||function(R){if(R.length>8192)throw Error("input is too large");let $=qG(R),f=R.length*8-Q;return f>0?$>>BigInt(f):$},m=G.bits2int_modN||function(R){return V.create(F(R))},l=hJ(Q);function p(R){return Ou("num < 2^"+Q,R,Y4,l),V.toBytes(R)}function W0(R,$){return TW(R,void 0,"message"),$?TW(X(R),void 0,"prehashed message"):R}function y(R,$,f){if(["recovered","canonical"].some((U0)=>(U0 in f)))throw Error("sign() legacy options not supported");let{lowS:r,prehash:o,extraEntropy:E}=Xz(f,w);R=W0(R,o);let S=m(R),_=RW(V,$),v=[p(_),p(S)];if(E!=null&&E!==!1){let U0=E===!0?Y(I.secretKey):E;v.push(f8("extraEntropy",U0))}let L=w7(...v),b=S;function J0(U0){let N0=F(U0);if(!V.isValidNot0(N0))return;let $0=V.inv(N0),u0=W.BASE.multiply(N0).toAffine(),q1=V.create(u0.x);if(q1===Y4)return;let g1=V.create($0*V.create(b+q1*_));if(g1===Y4)return;let h0=(u0.x===q1?0:2)|Number(u0.y&VG),x1=g1;if(r&&T(g1))x1=V.neg(g1),h0^=1;return new u(q1,x1,h0)}return{seed:L,k2sig:J0}}function e(R,$,f={}){R=f8("message",R);let{seed:r,k2sig:o}=y(R,$,f);return Du(X.outputLen,V.BYTES,J)(r,o)}function H0(R){let $=void 0,f=typeof R==="string"||PQ(R),r=!f&&R!==null&&typeof R==="object"&&typeof R.r==="bigint"&&typeof R.s==="bigint";if(!f&&!r)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(r)$=new u(R.r,R.s);else if(f){try{$=u.fromBytes(f8("sig",R),"der")}catch(o){if(!(o instanceof G4.Err))throw o}if(!$)try{$=u.fromBytes(f8("sig",R),"compact")}catch(o){return!1}}if(!$)return!1;return $}function g(R,$,f,r={}){let{lowS:o,prehash:E,format:S}=Xz(r,w);if(f=f8("publicKey",f),$=W0(f8("message",$),E),"strict"in r)throw Error("options.strict was renamed to lowS");let _=S===void 0?H0(R):u.fromBytes(f8("sig",R),S);if(_===!1)return!1;try{let v=W.fromBytes(f);if(o&&_.hasHighS())return!1;let{r:L,s:b}=_,J0=m($),U0=V.inv(b),N0=V.create(J0*U0),$0=V.create(L*U0),u0=W.BASE.multiplyUnsafe(N0).add(v.multiplyUnsafe($0));if(u0.is0())return!1;return V.create(u0.x)===L}catch(v){return!1}}function d(R,$,f={}){let{prehash:r}=Xz(f,w);return $=W0($,r),u.fromBytes(R,"recovered").recoverPublicKey($).toBytes()}return Object.freeze({keygen:N,getPublicKey:q,getSharedSecret:A,utils:H,lengths:I,Point:W,sign:e,verify:g,recoverPublicKey:d,Signature:u,hash:X})}function hu(W){let X={a:W.a,b:W.b,p:W.Fp.ORDER,n:W.n,h:W.h,Gx:W.Gx,Gy:W.Gy},G=W.Fp,Y=W.allowedPrivateKeyLengths?Array.from(new Set(W.allowedPrivateKeyLengths.map((V)=>Math.ceil(V/2)))):void 0,J=bJ(X.n,{BITS:W.nBitLength,allowedLengths:Y,modFromBytes:W.wrapPrivateKey}),Z={Fp:G,Fn:J,allowInfinityPoint:W.allowInfinityPoint,endo:W.endo,isTorsionFree:W.isTorsionFree,clearCofactor:W.clearCofactor,fromBytes:W.fromBytes,toBytes:W.toBytes};return{CURVE:X,curveOpts:Z}}function bu(W){let{CURVE:X,curveOpts:G}=hu(W),Y={hmac:W.hmac,randomBytes:W.randomBytes,lowS:W.lowS,bits2int:W.bits2int,bits2int_modN:W.bits2int_modN};return{CURVE:X,curveOpts:G,hash:W.hash,ecdsaOpts:Y}}function mu(W,X){let G=X.Point;return Object.assign({},X,{ProjectivePoint:G,CURVE:Object.assign({},W,ET(G.Fn.ORDER,G.Fn.BITS))})}function fu(W){let{CURVE:X,curveOpts:G,hash:Y,ecdsaOpts:J}=bu(W),Z=vu(X,G),V=uu(Z,Y,J);return mu(W,V)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function pu(W,X){let G=(Y)=>fu({...W,hash:Y});return{...G(X),create:G}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var NG={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},cu={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},lu=BigInt(0),sC=BigInt(1),Hz=BigInt(2);function du(W){let X=NG.p,G=BigInt(3),Y=BigInt(6),J=BigInt(11),Z=BigInt(22),V=BigInt(23),U=BigInt(44),Q=BigInt(88),N=W*W*W%X,q=N*N*W%X,A=O5(q,G,X)*q%X,H=O5(A,G,X)*q%X,I=O5(H,Hz,X)*N%X,w=O5(I,J,X)*I%X,O=O5(w,Z,X)*w%X,T=O5(O,U,X)*O%X,x=O5(T,Q,X)*T%X,P=O5(x,U,X)*O%X,u=O5(P,G,X)*q%X,F=O5(u,V,X)*w%X,m=O5(F,Y,X)*N%X,l=O5(m,Hz,X);if(!KQ.eql(KQ.sqr(l),W))throw Error("Cannot find square root");return l}var KQ=bJ(NG.p,{sqrt:du}),hT=pu({...NG,Fp:KQ,lowS:!0,endo:cu},Uz),tC={};function OQ(W,...X){let G=tC[W];if(G===void 0){let Y=Uz(HT(W));G=w7(Y,Y),tC[W]=G}return Uz(w7(G,...X))}var Cz=(W)=>W.toBytes(!0).slice(1),HG=(()=>hT.Point)(),Tz=(W)=>W%Hz===lu;function Az(W){let{Fn:X,BASE:G}=HG,Y=RW(X,W),J=G.multiply(Y);return{scalar:Tz(J.y)?Y:X.neg(Y),bytes:Cz(J)}}function bT(W){let X=KQ;if(!X.isValidNot0(W))throw Error("invalid x: Fail if x \u2265 p");let G=X.create(W*W),Y=X.create(G*W+BigInt(7)),J=X.sqrt(Y);if(!Tz(J))J=X.neg(J);let Z=HG.fromAffine({x:W,y:J});return Z.assertValidity(),Z}var gJ=qG;function mT(...W){return HG.Fn.create(gJ(OQ("BIP0340/challenge",...W)))}function eC(W){return Az(W).bytes}function ou(W,X,G=RQ(32)){let{Fn:Y}=HG,J=f8("message",W),{bytes:Z,scalar:V}=Az(X),U=f8("auxRand",G,32),Q=Y.toBytes(V^gJ(OQ("BIP0340/aux",U))),N=OQ("BIP0340/nonce",Q,Z,J),{bytes:q,scalar:A}=Az(N),H=mT(q,Z,J),I=new Uint8Array(64);if(I.set(q,0),I.set(Y.toBytes(Y.create(A+H*V)),32),!fT(I,J,Z))throw Error("sign: Invalid signature produced");return I}function fT(W,X,G){let{Fn:Y,BASE:J}=HG,Z=f8("signature",W,64),V=f8("message",X),U=f8("publicKey",G,32);try{let Q=bT(gJ(U)),N=gJ(Z.subarray(0,32));if(!Nz(N,sC,NG.p))return!1;let q=gJ(Z.subarray(32,64));if(!Nz(q,sC,NG.n))return!1;let A=mT(Y.toBytes(N),Cz(Q),V),H=J.multiplyUnsafe(q).add(Q.multiplyUnsafe(Y.neg(A))),{x:I,y:w}=H.toAffine();if(H.is0()||!Tz(w)||I!==N)return!1;return!0}catch(Q){return!1}}var Mz=(()=>{let W=(G=RQ(48))=>{return ST(G,NG.n)};hT.utils.randomSecretKey;function X(G){let Y=W(G);return{secretKey:Y,publicKey:eC(Y)}}return{keygen:X,getPublicKey:eC,sign:ou,verify:fT,Point:HG,utils:{randomSecretKey:W,randomPrivateKey:W,taggedHash:OQ,lift_x:bT,pointToBytes:Cz,numberToBytesBE:LQ,bytesToNumberBE:qG,mod:C5},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})(),nu=new TextEncoder,iu=new TextDecoder,J4=(W)=>nu.encode(W),kJ=(W)=>iu.decode(W),zz=(W)=>Array.from(W,(X)=>X.toString(16).padStart(2,"0")).join(""),j7=JSON.stringify,DQ=JSON.parse,ru=(W,X=Number.MAX_SAFE_INTEGER)=>W.split("").reduce((G,Y)=>G+Y.charCodeAt(0),0)%X,CQ="AES-GCM",au={},pT="$",cT=",",su=(W)=>{let X=new Uint8Array(W),G=32768,Y="";for(let J=0;J<X.length;J+=32768)Y+=String.fromCharCode(...X.subarray(J,J+32768));return btoa(Y)},tu=(W)=>Uint8Array.from(atob(W),(X)=>X.charCodeAt(0)).buffer,YQ=(W)=>au[W]??=crypto.subtle.digest("SHA-1",J4(W)).then((X)=>{let G=new Uint8Array(X),Y="";for(let J of G)Y+=J.toString(36);return Y}),eu=async(W,X,G)=>{if(!W){let J=await crypto.subtle.digest("SHA-256",J4(`:${X}:${G}`));return crypto.subtle.importKey("raw",J,{name:CQ},!1,["encrypt","decrypt"])}let Y=await crypto.subtle.importKey("raw",J4(W),"PBKDF2",!1,["deriveKey"]);return crypto.subtle.deriveKey({name:"PBKDF2",salt:J4(`${X}:${G}`),iterations:1e5,hash:"SHA-256"},Y,{name:CQ,length:256},!1,["encrypt","decrypt"])},Wh=async(W,X)=>{let G=crypto.getRandomValues(new Uint8Array(12)),Y=await W,J=await crypto.subtle.encrypt({name:CQ,iv:G},Y,J4(X));return`${G.join(cT)}${pT}${su(J)}`},Xh=async(W,X)=>{let[G,Y]=X.split(pT);if(!G||!Y)throw Error("Invalid encrypted payload format");let J=Uint8Array.from(G.split(cT),Number),Z=await W,V=await crypto.subtle.decrypt({name:CQ,iv:J},Z,tu(Y));return kJ(V)},D5="GenosRTC",BQ=(W,X)=>Array.from({length:W},X),TQ=(W)=>Array.from(crypto.getRandomValues(new Uint8Array(W)),(X)=>"0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"[X%62]).join(""),w8=typeof sessionStorage<"u"?sessionStorage.__genosrtcId??=TQ(20):TQ(20),YG=Promise.all.bind(Promise),Gh=typeof window<"u",{entries:Yh,fromEntries:lT,keys:ce}=Object,WT=()=>{},u5=(W)=>Error(`GenosRTC: ${W}`),JQ=(...W)=>W.join("@"),Jh=5000,XT="icegatheringstatechange",GT="offer",Zh="answer",Vh=[...BQ(3,(W,X)=>`stun:stun${X||""}.l.google.com:19302`),"stun:stun.cloudflare.com:3478"].map((W)=>({urls:W})),YT=(W,{rtcConfig:X,rtcPolyfill:G,turnConfig:Y})=>{let J=new(G||RTCPeerConnection)({iceServers:[...Vh,...Y||[]],...X}),Z={},V=!1,U=!1,Q,N=(H)=>Object.assign(H,{binaryType:"arraybuffer",bufferedAmountLowThreshold:65535,onmessage:(I)=>Z.data?.(I.data),onopen:()=>Z.connect?.(),onclose:()=>Z.close?.(),onerror:(I)=>!I?.error?.message?.includes("User-Initiated Abort")&&Z.error?.(I)}),q=()=>Promise.race([new Promise((H)=>{let I=()=>{if(J.iceGatheringState==="complete")J.removeEventListener(XT,I),H()};J.addEventListener(XT,I),I()}),new Promise((H)=>setTimeout(H,Jh))]).then(()=>({type:J.localDescription.type,sdp:J.localDescription.sdp.replace(/a=ice-options:trickle\s\n/g,"")}));if(W?N(Q=J.createDataChannel("data")):J.ondatachannel=({channel:H})=>N(Q=H),J.onnegotiationneeded=async()=>{try{V=!0,await J.setLocalDescription(),Z.signal?.(await q())}catch(H){Z.error?.(H)}finally{V=!1}},J.onconnectionstatechange=()=>{if(["disconnected","failed","closed"].includes(J.connectionState))Z.close?.()},J.ontrack=(H)=>{Z.track?.(H.track,H.streams[0]),Z.stream?.(H.streams[0])},J.onremovestream=(H)=>Z.stream?.(H.stream),W&&!J.canTrickleIceCandidates)J.onnegotiationneeded();let A=()=>J.getSenders();return{created:Date.now(),connection:J,get channel(){return Q},get isDead(){return J.connectionState==="closed"},async signal(H){if(Q?.readyState==="open"&&!H.sdp?.includes("a=rtpmap"))return;try{if(H.type===GT){if(V||J.signalingState!=="stable"&&!U){if(W)return;await YG([J.setLocalDescription({type:"rollback"}),J.setRemoteDescription(H)])}else await J.setRemoteDescription(H);await J.setLocalDescription();let I=await q();return Z.signal?.(I),I}if(H.type===Zh){U=!0;try{await J.setRemoteDescription(H)}finally{U=!1}}}catch(I){Z.error?.(I)}},sendData:(H)=>{if(Q?.readyState!=="open")return!1;return Q.send(H),!0},destroy:()=>{Q?.close(),J.close(),V=U=!1},setHandlers:(H)=>Object.assign(Z,H),offerPromise:W?new Promise((H)=>Z.signal=(I)=>I.type===GT&&H(I)):Promise.resolve(),addStream:(H)=>H.getTracks().forEach((I)=>J.addTrack(I,H)),removeStream:(H)=>A().filter((I)=>H.getTracks().includes(I.track)).forEach((I)=>J.removeTrack(I)),addTrack:(H,I)=>J.addTrack(H,I),removeTrack:(H)=>{let I=A().find((w)=>w.track===H);if(I)J.removeTrack(I)},replaceTrack:(H,I)=>A().find((w)=>w.track===H)?.replaceTrack(I)}},Uh=Object.getPrototypeOf(Uint8Array),QQ=12,dT=0,NQ=dT+QQ,qQ=NQ+1,_J=qQ+1,yJ=_J+1,SJ=16384-yJ,ZQ=255,Gz="bufferedamountlow",GG=(W)=>`@_${W}`,JT=GG("ping"),Yz=100,Qh=3,Nh=200,qh=512,Hh=33554432,ZT=async(W,X,G=1/0)=>{let Y=new Blob([W]).stream().pipeThrough(new X("deflate")).getReader(),J=[],Z=0;for(let Q=await Y.read();!Q.done;Q=await Y.read()){if((Z+=Q.value.byteLength)>G)throw Y.cancel(),u5(`inflated payload exceeds ${G} bytes`);J.push(Q.value)}let V=new Uint8Array(Z),U=0;for(let Q of J)V.set(Q,U),U+=Q.byteLength;return V},Ah=(W,X,G,Y,J)=>{let Z=new Map,V=new Map,U=new Map,Q={},N={},q={},A={},H=new Map,I=new Map,w=Promise.resolve(),O=(L,b)=>{if(!H.has(L))H.set(L,new Set);H.get(L).add(b)},T=(L,b)=>H.get(L)?.delete(b),x=(L,...b)=>H.get(L)?.forEach((J0)=>J0(...b)),P=(L,b)=>{let J0=L?Array.isArray(L)?L:[L]:Z.keys();return Array.from(J0,(U0)=>{let N0=Z.get(U0);if(!N0)return console.warn(`${D5}: no peer with id ${U0}`),null;return b(U0,N0)}).filter(Boolean)},u=(L)=>{if(!Z.has(L))return;Z.delete(L),I.delete(L),_.delete(L),delete Q[L],delete N[L],delete q[L],delete A[L],x("peer:leave",L),X(L)},F=(L)=>new Promise((b,J0)=>{let U0=setTimeout(()=>{L.removeEventListener(Gz,N0),J0(Error(`${D5}: bufferLow timeout`))},5000);function N0(){clearTimeout(U0),L.removeEventListener(Gz,N0),b()}L.addEventListener(Gz,N0)}),m=(L)=>{if(U.has(L))return U.get(L);if(!L)throw u5("action type is required");let b=J4(L);if(b.byteLength>QQ)throw u5(`\u274C "${L}" exceeds ${QQ} bytes. Use a shorter name.`);let J0=new Uint8Array(QQ).map((h0,x1)=>b[x1]||0),U0=0,N0=new Map([["message",new Set],["progress",new Set]]),$0=(h0,x1)=>N0.get(h0)?.add(x1),u0=(h0,x1)=>N0.get(h0)?.delete(x1),q1=async(h0,x1,k1,Q0)=>{if(k1&&typeof k1!=="object")throw u5("meta must be object");if(h0===void 0)throw u5("data cannot be undefined");let S0=h0 instanceof Blob,m0=S0||h0 instanceof ArrayBuffer||h0 instanceof Uh,G0=typeof h0!=="string";if(k1&&!m0)throw u5("meta only allowed with binary");let K0=m0?new Uint8Array(S0?await h0.arrayBuffer():h0):J4(G0?j7(h0):h0),P0=0;if(!m0&&K0.byteLength>=qh){let Y0=await ZT(K0,CompressionStream);if(Y0.byteLength<K0.byteLength)K0=Y0,P0=1}let k0=k1?J4(j7(k1)):null,C1=Math.ceil(K0.byteLength/SJ)+(k1?1:0)||1;if(C1>Yz)throw u5(`Message too large, exceeds max chunks ${Yz}`);let Q1=BQ(C1,(Y0,B0)=>{let F0=B0===C1-1,F1=k1&&B0===0,W8=F1?k0:K0.subarray(k1?(B0-1)*SJ:B0*SJ,k1?B0*SJ:(B0+1)*SJ),T1=new Uint8Array(yJ+W8.byteLength);return T1.set(J0),T1.set([U0],NQ),T1.set([F0|F1<<1|m0<<2|G0<<3|P0<<4],qQ),T1.set([Math.round((B0+1)/C1*ZQ)],_J),T1.set(W8,yJ),T1});return U0=U0+1&ZQ,YG(P(x1,async(Y0,B0)=>{let{channel:F0}=B0;for(let F1=0;F1<C1;F1++){let W8=0;while(F0.bufferedAmount>F0.bufferedAmountLowThreshold){if(W8++>Qh)throw u5(`${D5}: send buffer full, max retries reached for peer ${Y0}`);try{await F(F0)}catch(T1){console.warn(T1.message),await new Promise((H1)=>setTimeout(H1,Nh))}}if(!Z.has(Y0))break;if(!B0.sendData(Q1[F1]))throw u5(`channel not open for peer ${Y0}`);Q0?.(Q1[F1][_J]/ZQ,Y0,k1)}}))};V.set(L,{listeners:N0,send:q1});let g1={send:q1,on:$0,off:u0};return U.set(L,g1),g1},l=(L,b)=>{try{I.set(L,Date.now()),_.delete(L);let J0=new Uint8Array(b),U0=kJ(J0.subarray(dT,NQ)).replace(/\x00/g,"");if(!V.has(U0))return console.warn(`${D5}: unregistered type (${U0})`);if(U0===JT){y("",L).catch(()=>{});return}let[N0]=J0.subarray(NQ,qQ),[$0]=J0.subarray(qQ,_J),[u0]=J0.subarray(_J,yJ),q1=J0.subarray(yJ),g1=Boolean($0&1),h0=Boolean($0&2),x1=Boolean($0&4),k1=Boolean($0&8),Q0=Boolean($0&16),S0=V.get(U0),m0=(Q[L]||={})[U0]||={};if(m0[N0]?.chunks?.length>Yz){console.warn(`${D5}: peer ${L} sent too many chunks for nonce ${N0}, ignoring.`);return}let G0=m0[N0]||={chunks:[]};if(h0)try{G0.meta=DQ(kJ(q1))}catch{console.warn(`${D5}: failed to parse meta from peer ${L} for type ${U0}`);return}else G0.chunks.push(q1);if(S0.listeners.get("progress").forEach((P0)=>{try{P0(u0/ZQ,L,G0.meta)}catch(k0){console.error(k0)}}),!g1)return;let K0=new Uint8Array(G0.chunks.reduce((P0,k0)=>P0+k0.byteLength,0));G0.chunks.reduce((P0,k0)=>(K0.set(k0,P0),P0+k0.byteLength),0),delete m0[N0],w=w.then(async()=>{let P0=Q0?await ZT(K0,DecompressionStream,Hh):K0,k0;if(x1)k0=P0;else if(k1)try{k0=DQ(kJ(P0))}catch{console.warn(`${D5}: failed to parse JSON message data from peer ${L} for type ${U0}`);return}else k0=kJ(P0);S0.listeners.get("message").forEach((C1)=>{try{C1(k0,L,G0.meta)}catch(Q1){console.error(Q1)}})}).catch((P0)=>console.error(`${D5}: dispatch error from peer ${L}:`,P0))}catch(J0){console.error(`${D5}: error handling data from peer ${L}:`,J0)}},p=async()=>{try{await r(""),await new Promise((L)=>setTimeout(L,99))}catch(L){console.warn(`${D5}: error sending leave`,L)}for(let[L,b]of Z){try{b.destroy()}catch{}Z.delete(L)}clearInterval(v),G()},{send:W0}=m(JT),{send:y,on:e}=m(GG("pong")),{send:H0,on:g}=m(GG("signal")),{send:d,on:R}=m(GG("stream")),{send:$,on:f}=m(GG("track")),{send:r,on:o}=m(GG("leave"));W((L,b)=>{let J0=Z.get(b);if(J0===L)return;if(J0){let U0=()=>{};J0.setHandlers({data:U0,stream:U0,track:U0,signal:U0,close:U0,error:U0})}Z.set(b,L),I.set(b,Date.now()),_.delete(b),L.setHandlers({data:(U0)=>l(b,U0),stream:(U0)=>{x("stream:add",U0,b,q[b]),delete q[b]},track:(U0,N0)=>{x("track:add",U0,N0,b,A[b]),delete A[b]},signal:(U0)=>H0(U0,b),close:()=>u(b),error:(U0)=>{console.error(`${D5}: peer error for ${b}`,U0),u(b)}}),x("peer:join",b,Y?.(b))}),J?.((L,b,J0)=>x(J0?"peer:seen":"peer:lost",L,b)),e("message",(L,b)=>{N[b]?.(),delete N[b]}),g("message",(L,b)=>Z.get(b)?.signal(L)),R("message",(L,b)=>q[b]=L),f("message",(L,b)=>A[b]=L),o("message",(L,b)=>u(b));let E=1e4,S=20000,_=new Map,v=setInterval(()=>{let L=Date.now();for(let[b,J0]of Z){if(L-(I.get(b)??L)<=E)continue;let U0=_.get(b);if(U0===void 0)_.set(b,L),W0("",b).catch(()=>{});else if(L-U0>S){_.delete(b);try{J0.destroy()}catch{}u(b)}}},5000);if(Gh)addEventListener("beforeunload",p);return{on:O,off:T,channel:m,leave:p,ping:async(L)=>{if(!L)throw u5("ping() requires target peer ID");let b=Date.now();return W0("",L),await new Promise((J0)=>N[L]=J0),Date.now()-b},getPeers:()=>lT(Array.from(Z,([L,b])=>[L,b.connection])),addStream:(L,b,J0)=>P(b,async(U0,N0)=>{if(J0)await d(J0,U0);N0.addStream(L)}),removeStream:(L,b)=>P(b,(J0,U0)=>U0.removeStream(L)),addTrack:(L,b,J0,U0)=>P(J0,async(N0,$0)=>{if(U0)await $(U0,N0);$0.addTrack(L,b)}),removeTrack:(L,b)=>P(b,(J0,U0)=>U0.removeTrack(L)),replaceTrack:(L,b,J0,U0)=>P(J0,async(N0,$0)=>{if(U0)await $(U0,N0);$0.replaceTrack(L,b)})}},zh=5,Ih=10,wh=2500,VQ=57333,jh=({init:W,subscribe:X,announce:G,bye:Y})=>{let J={},Z=!1,V,U;return(Q,N,q)=>{let{appId:A}=Q;if(J[A]?.[N])return J[A][N];if(!Q||!N||!A&&!Q.firebaseApp)throw u5(!Q?"config required":!N?"roomId required":"appId missing");let H=WT,I=WT;if(!Z){let _=W(Q);U=BQ(zh,()=>{try{return YT(!0,Q)}catch{return null}}).filter(Boolean),V=Array.isArray(_)?_:[_];let v=setInterval(()=>{U=U.filter((L)=>{let b=Date.now()-L.created<VQ;if(!b)L.destroy();return b})},VQ);J.offerCleanupTimer||=v,Z=!0}let w={},O={},T=new Map,x=new Map,P=new Map,u={},F=JQ(D5,A,N),m=YQ(F),l=YQ(JQ(F,w8)),p=eu(Q.password||"",A,N),W0=(_)=>async(v)=>({type:v.type,sdp:await _(p,v.sdp)}),y=W0(Xh),e=W0(Wh),H0=(_)=>{return setTimeout(()=>{if(!_.isDead&&!Object.values(O).includes(_))_.destroy()},VQ),_},g=(_)=>{try{return H0(YT(_,Q))}catch{return null}},d=(_,v)=>{if(O[v]===_)return;_.connectedAt=Date.now(),O[v]?.destroy(),O[v]=_,H(_,v),w[v]?.forEach((L)=>L!==_&&L.destroy()),delete w[v]},R=(_,v)=>{if(O[v]===_)delete O[v]},$=(_)=>async(v,L,b)=>{let[J0,U0]=await YG([m,l]);if(v!==J0&&v!==U0)return;let{peerId:N0,offer:$0,answer:u0,type:q1,bye:g1}=typeof L==="string"?DQ(L):L;if(g1){if(N0&&N0!==w8)x.delete(N0),I(N0,null,!1),P.set(N0,Date.now()),delete u[N0];return}if(N0&&N0!==w8)I(N0,q1,!0),x.set(N0,Date.now()),P.delete(N0);if(q1&&N0)u[N0]=q1;if(N0===w8)return;if(O[N0]){let h0=O[N0].channel?.readyState==="open";if(!$0||h0||Date.now()-O[N0].connectedAt<2000)return;O[N0].destroy(),delete O[N0]}if(Q.admit&&!Q.admit(N0))return;if($0){if(w[N0]?.[_]&&w8>N0)return;let h0=g(!1);if(!h0)return;h0.setHandlers({connect:()=>d(h0,N0),close:()=>R(h0,N0)});try{let x1=await y($0);if(h0.isDead)return;let[k1,Q0]=await YG([YQ(JQ(F,N0)),h0.signal(x1).then(e)]);b(k1,j7({peerId:w8,answer:Q0,...Q.type&&{type:Q.type}}))}catch{q?.({error:"decryption failed (offer)",appId:A,peerId:N0,roomId:N})}}else if(u0){let h0=w[N0]?.[_];if(!h0||h0.isDead)return;h0.setHandlers({connect:()=>d(h0,N0),close:()=>R(h0,N0)});try{h0.signal(await y(u0))}catch{q?.({error:"decryption failed (answer)",appId:A,peerId:N0,roomId:N})}}else{let h0=w[N0]||=[];if(h0.forEach((Q0,S0)=>{if(Q0&&(Q0.isDead||Date.now()-(Q0.dialedAt??Q0.created)>VQ)){if(Q0.isDead)T.set(N0,Date.now()+30000);Q0.destroy(),delete h0[S0]}}),h0[_]||h0.filter(Boolean).length>=2||T.get(N0)>Date.now())return;if(Object.values(w).reduce((Q0,S0)=>Q0+S0.filter((m0)=>m0&&!m0.isDead).length,0)>=Ih)return;let x1=U.pop(),k1=x1?H0(x1):g(!0);if(!k1){T.set(N0,Date.now()+30000);return}k1.dialedAt=Date.now(),h0[_]=k1;try{let[Q0,{offer:S0}]=await YG([YQ(JQ(F,N0)),k1.offerPromise.then(e).then((m0)=>({offer:m0}))]);k1.setHandlers({connect:()=>d(k1,N0),close:()=>R(k1,N0)}),b(Q0,j7({peerId:w8,offer:S0,...Q.type&&{type:Q.type}}))}catch{if(h0[_]===k1)delete h0[_];k1.destroy()}}},f=[],r=[],o=[],E=()=>o.forEach(({relay:_,rootTopic:v})=>Y?.(_,v));V.forEach(async(_,v)=>{let L=await _;if(!L)return;let[b,J0]=await YG([m,l]);r[v]=X(L,b,J0,$(v)),o.push({relay:L,rootTopic:b});let U0=async()=>{let N0=await G(L,b,J0);f[v]=setTimeout(U0,typeof N0==="number"?N0:wh)};U0()}),J[A]||={};let S=Ah((_)=>H=_,(_)=>delete O[_],()=>S.onCleanup?.(),(_)=>u[_],(_)=>I=_);if(typeof window<"u")window.addEventListener("pagehide",E);return S.onCleanup=()=>{if(E(),typeof window<"u")window.removeEventListener("pagehide",E);if(delete J[A][N],f.forEach(clearTimeout),r.forEach((_)=>_?.()),Object.keys(J).length===0)clearInterval(J.offerCleanupTimer),delete J.offerCleanupTimer},S._census=()=>{for(let v of Object.keys(O))x.set(v,Date.now());let _=Date.now()-120000;for(let[v,L]of x)if(L<_)x.delete(v);return[...x.keys()]},S._gone=()=>{let _=Date.now()-60000;for(let[v,L]of P)if(L<_)P.delete(v);return[...P.keys()]},J[A][N]=S}},VT=3333,Kh=30000,xJ={},oT={},Oh=(W,X)=>{let G={},Y=null;G.reopenHandlers=new Set;let J=()=>{if(Y)clearTimeout(Y),Y=null;if(G.socket)G.socket.onclose=null,G.socket.close();let Z=new WebSocket(W);Z.onclose=()=>{xJ[W]??=VT,Y=setTimeout(J,xJ[W]),xJ[W]=Math.min(xJ[W]*2,Kh)},Z.onmessage=(V)=>X(V.data),G.socket=Z,G.url=Z.url,G.ready=new Promise((V)=>{Z.onopen=()=>{xJ[W]=VT,V(G),G.reopenHandlers.forEach((U)=>U())}}),G.send=(V)=>{if(Z.readyState===1)Z.send(V)}};return G.forceReconnect=J,J(),oT[W]=G,G};if(typeof window<"u"){let W=(X)=>{JG.info("\u26A1 [GenosRTC] Network event detected. Forcing reconnection\u2026"),Object.values(oT).forEach((G)=>{if(G.socket&&G.socket.readyState!==WebSocket.OPEN&&(X||G.socket.readyState!==WebSocket.CONNECTING))G.forceReconnect()})};window.addEventListener("online",()=>{JG.info("\u2705 Reconnected to the network."),W(!0)}),window.addEventListener("offline",async()=>{JG.info("\u274C Disconnected from the network.")}),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="visible")W()})}var Dh=(W)=>()=>lT(Yh(W).map(([X,G])=>[X,G.socket])),UG={},Ch=10,nT="x",iT="EVENT",Th=/pow:\s*(\d+)\s*bits needed\.?/i,HQ=new Set,rT=Mz.utils.randomSecretKey(),Mh=zz(Mz.getPublicKey(rT)),Pz={},vJ={},Ph={},aT=()=>Math.floor(Date.now()/1000),sT=(W)=>Ph[W]??=ru(W,1e4)+20000,uJ=(W)=>W.replace(/\/$/,""),Rh="https://cdn.jsdelivr.net/gh/estebanrfp/gdb@main/relays.json",tT=(W)=>Array.isArray(W)?[...new Set(W.filter((X)=>X?.startsWith?.("wss://")))]:[],eT="genosrtc_relays",Lh=()=>{try{return tT(JSON.parse(globalThis.localStorage?.getItem(eT)))}catch{return[]}},Bh=()=>fetch(`${Rh}?r=${Math.random().toString(36).slice(2)}`,{signal:AbortSignal.timeout(5000)}).then((W)=>W.json()).then(tT).then((W)=>(W.length&&globalThis.localStorage?.setItem(eT,JSON.stringify(W)),W)).catch(()=>[]).then((W)=>(W=W.length?W:Lh(),W.length||JG.warn("\u26A0\uFE0F [GenosRTC] Relay list unreachable - Pass rtc.relayUrls to override."),W)),Eh=(W,X)=>{let[G,Y,J,Z]=DQ(X);if(G===iT)return vJ[Y]?.(Pz[Y],J.content);if(G==="NOTICE"||G==="OK"&&!J){if(+((G==="NOTICE"?Y:Z).match(Th)?.[1]??0)>0){let V=uJ(W);HQ.add(V),UG[V]?.close?.(),delete UG[V]}}},$h=(W)=>{let X=uJ(W);if(UG[X])return UG[X];let G=Oh(X,(Y)=>Eh(X,Y));return UG[X]=G},Jz=async(W,X)=>{let G={kind:sT(W),content:X,pubkey:Mh,created_at:aT(),tags:[[nT,W]]},Y=J4(j7([0,G.pubkey,G.created_at,G.kind,G.tags,G.content])),J=new Uint8Array(await crypto.subtle.digest("SHA-256",Y)),Z=Mz.sign(J,rT);return j7([iT,{...G,id:zz(J),sig:zz(Z)}])},UT=(W,X)=>{return Pz[W]=X,j7(["REQ",W,{kinds:[sT(X)],since:aT(),["#"+nT]:[X]}])},QT=(W)=>{return delete Pz[W],j7(["CLOSE",W])},WM=jh({init:(W)=>{let X=W?.relayUrls?.length?W.relayUrls:null,G=X?Promise.resolve(X):Bh(),Y=X?.length??W.relayRedundancy??Ch;return BQ(Y,(J,Z)=>G.then((V)=>{let U=V[Z]&&$h(V[Z]);return U?U.ready.then(()=>U).catch(()=>null):null}))},subscribe:(W,X,G,Y)=>{let J=TQ(64),Z=TQ(64);vJ[J]=vJ[Z]=(U,Q)=>Y(U,Q,async(N,q)=>{if(HQ.has(uJ(W.url)))return;W.send(await Jz(N,q))});let V=()=>{W.send(UT(J,X)),W.send(UT(Z,G))};return V(),W.reopenHandlers.add(V),()=>{W.reopenHandlers.delete(V),W.send(QT(J)),W.send(QT(Z)),delete vJ[J],delete vJ[Z]}},announce:async(W,X)=>{if(HQ.has(uJ(W.url)))return;W.send(await Jz(X,j7({peerId:w8})))},bye:async(W,X)=>{if(HQ.has(uJ(W.url)))return;W.send(await Jz(X,j7({peerId:w8,bye:1})))}}),le=Dh(UG),Fh={cellSize:10},Sh=5000,xh=3000,kh=2000,_h=2000,yh=1e4,vh=30000,gh=5000,uh=30000,MQ=(W)=>{let X=String(W||"").match(/cell-(\d+)/);return X?Number(X[1]):null},Zz=(W,X)=>{let G=MQ(W);if(G==null)return[];let Y=[];for(let J=1;J<X;J*=2){if(G-J>=0)Y.push(`cell-${G-J}`);if(G+J<X)Y.push(`cell-${G+J}`)}return Y},UQ=(W)=>`c${(MQ(W)||0).toString(36)}`,hh=10,bh=(W,X)=>{let G=+X.cellSize>=2?X.cellSize|0:hh;return Math.max(1,Math.ceil(W/G))},XM=(W)=>{let X=0;for(let G=0;G<W.length;G++)X=Math.imul(X^W.charCodeAt(G),2654435761);return X>>>0},A6=(W,X)=>{let G=0,Y=-1;for(let J=0;J<X;J++){let Z=XM(`${W}:${J}`);if(Z>Y)Y=Z,G=J}return G};function mh(W,X={},G={}){let Y={...Fh,...X},J=1,Z={epoch:0,roster:[w8],set:new Set([w8]),key:w8,C:1,cellId:null,isBridge:!1,bridges:[],edgeBridges:[]},V={cellId:null},U=0,Q=0,N="",q=0,A=0,H=0,I=null,w=null,O=null,T=new Map,x=new Set,P=new Map,u=new Set,F=0,m=new Set,l=new Map,p=()=>Math.min(150,Math.ceil(Math.log2(Z.C+1))*2+3),W0=(Q0)=>Zz(Q0,Z.C),y=W.on?.bind(W),e=W.off?.bind(W);if(y)W.on=(Q0,S0)=>String(Q0).startsWith("mesh:")?d(Q0,S0):y(Q0,S0);if(e)W.off=(Q0,S0)=>String(Q0).startsWith("mesh:")?P.get(Q0)?.delete(S0):e(Q0,S0);let H0=(Q0)=>(x.add(Q0),()=>x.delete(Q0)),g=(Q0,S0)=>{for(let m0 of x)try{m0(Q0,S0)}catch(G0){JG.error("\uD83D\uDD78\uFE0F [Cells] Error in deliver handler:",G0)}},d=(Q0,S0)=>{if(!P.has(Q0))P.set(Q0,new Set);return P.get(Q0).add(S0),()=>P.get(Q0)?.delete(S0)},R=(Q0,...S0)=>{let m0=P.get(Q0);if(m0)for(let G0 of m0)try{G0(...S0)}catch{}},$=(Q0)=>{try{return typeof Q0==="string"?JSON.parse(Q0):Q0}catch{return null}},f=()=>`${w8}:${Date.now().toString(36)}:${(F++&65535).toString(36)}`,r=()=>{if(u.size>Sh)u.delete(u.values().next().value)},o=()=>[...new Set([...W._census(),w8])].sort(),E=(Q0,S0,m0)=>S0.filter((G0)=>A6(G0,m0)===Q0),S=(Q0,S0,m0)=>{if(Q0==null)return null;let G0=(k0)=>XM(`${k0}@${Q0}`),K0=null,P0=-1;for(let k0 of E(Q0,S0,m0)){let C1=G0(k0);if(C1>P0)P0=C1,K0=k0}return K0},_=(Q0)=>{let S0=Z.audience?.get(Q0);if(!S0)return[];return Object.keys(W.getPeers?.()||{}).filter((m0)=>S0.has(m0))},v=(Q0,S0)=>{if(Q0!==w&&!(Z.isBridge&&Z.bridges.some((F0)=>UQ(F0)===Q0)))return;let m0=$(S0);if(!m0?.id||!m0?.t)return;if(u.has(m0.id))return;u.add(m0.id),r();let{t:G0,id:K0,ttl:P0,data:k0,origin:C1,originCell:Q1}=m0,Y0=Z.cellId;if(G0==="ping"&&k0?.pingId&&k0.target===w8&&C1!==w8){let F0={t:"pong",id:f(),ttl:p(),data:{pingId:k0.pingId,receivedAt:Date.now()},origin:w8,originCell:Y0},F1=W.getPeers?.()?.[C1]?[C1]:_(Y0);I?.send(JSON.stringify(F0),F1)}if(G0==="pong"&&k0?.pingId){let F0=l.get(k0.pingId);if(F0)clearTimeout(F0.timeout),F0.resolve(Date.now()-F0.start),l.delete(k0.pingId)}if(G0==="msg"&&C1!==w8)g(k0,C1);if(!Z.isBridge)return;if((P0??0)<=0)return;let B0=(F0,F1,W8=null)=>{if(!F0||!F1.length)return;let T1={t:G0,id:K0,ttl:W8??(P0??p())-1,data:k0,origin:C1||w8,originCell:Q1||Y0};F0.send(JSON.stringify(T1),F1)};if(Q0===w){for(let F0 of W0(Y0))B0(L(F0),_(F0));return}B0(I,_(Y0));for(let F0 of W0(Y0))if(UQ(F0)!==Q0)B0(L(F0),_(F0))},L=(Q0)=>{let S0=UQ(Q0),m0=W.channel(S0);if(!m.has(S0))m.add(S0),m0.on("message",(G0)=>v(S0,G0));return m0},b=()=>{if(!Z.cellId)return;if(w=UQ(Z.cellId),I=W.channel(w),!m.has(w))m.add(w),I.on("message",(Q0)=>v(w,Q0));if(Z.isBridge)for(let Q0 of W0(Z.cellId))L(Q0)},J0=(Q0,S0)=>{if(!Q0.cellId||!Q0.set.has(S0))return!1;let m0=`cell-${A6(S0,Q0.C)}`;return m0===Q0.cellId||Q0.bridges.includes(m0)||Zz(m0,Q0.C).includes(Q0.cellId)&&S(A6(S0,Q0.C),Q0.roster,Q0.C)===S0},U0=(Q0)=>Z.set.size<2&&(V.set?.size??0)<2||J0(Z,Q0)||Date.now()<U&&J0(V,Q0),N0=()=>{let Q0=W.getPeers?.()||{};for(let S0 of Object.keys(Q0))if(!U0(S0))Q0[S0].close?.()};G.admit=U0;let $0=()=>({epoch:Z.epoch,cellId:Z.cellId,isBridge:Z.isBridge,bridges:Z.bridges,roster:[...Z.roster],cellSize:J,dynamicTTL:p(),totalCells:Z.C}),u0=()=>{A=Date.now();for(let[Q0,S0]of T){if(Q0===w8)continue;R("mesh:peer-state",{id:Q0,cell:S0.cell,bridges:S0.bridges,timestamp:A})}},q1=(Q0)=>{let S0=bh(Q0.length,Y);J=Math.ceil(Q0.length/S0);let m0=`cell-${A6(w8,S0)}`,G0=new Map,K0=new Set,P0=new Map,k0=(F0)=>P0.get(F0)??P0.set(F0,new Set).get(F0);for(let F0 of Q0)k0(`cell-${A6(F0,S0)}`).add(F0);let C1=new Map,Q1=(F0)=>C1.has(F0)?C1.get(F0):C1.set(F0,S(F0,Q0,S0)).get(F0);for(let F0 of new Set(Q0.map((F1)=>A6(F1,S0)))){let F1=`cell-${F0}`;for(let W8 of Zz(F1,S0)){if(MQ(W8)<F0)continue;for(let T1 of[Q1(F0),Q1(MQ(W8))]){if(!T1)continue;let H1=`cell-${A6(T1,S0)}`===F1?W8:F1,c=G0.get(T1)??[];if(!c.includes(H1))c.push(H1);if(G0.set(T1,c),k0(F1).add(T1),k0(W8).add(T1),F1===m0||W8===m0)K0.add(T1)}}}let Y0=G0.get(w8)??[],B0=Z.cellId!==m0||String(Z.bridges)!==String(Y0);V=Z,Z={epoch:Z.epoch+1,roster:Q0,set:new Set(Q0),key:Q0.join("|"),C:S0,cellId:m0,isBridge:Y0.length>0,bridges:Y0,edgeBridges:[...K0],audience:P0},H=Date.now(),T.clear();for(let F0 of Q0){let F1=G0.get(F0)??[];T.set(F0,{cell:`cell-${A6(F0,S0)}`,isBridge:F1.length>0,bridges:F1})}if(U=Date.now()+gh,B0)b();JG.info("\uD83D\uDD78\uFE0F [Cells] seal",{epoch:Z.epoch,myCell:m0,bridges:Y0,C:S0,roster:Q0.length}),u0(),R("mesh:state",$0())},g1=()=>{let Q0=o(),S0=Q0.join("|");if(S0===Z.key)Q=0;else{let m0=Date.now();if(Q||=m0,S0!==N)N=S0,q=m0;if(Q0.some((G0)=>!Z.set.has(G0))||Z.edgeBridges.some((G0)=>!Q0.includes(G0))||(W._gone?.()??[]).some((G0)=>Z.set.has(G0))?m0-q>=_h||m0-Q>=yh:m0-Q>=vh)Q=0,q1(Q0)}if(U&&Date.now()>=U)U=0,N0()},h0=()=>{if(O)return;O=setInterval(()=>{if(g1(),Date.now()-A>=uh)u0()},kh)},x1=()=>{if(O)clearInterval(O),O=null},k1=(Q0)=>{return new Promise((S0,m0)=>{let G0=`${Date.now()}-${Math.random().toString(36).slice(2,8)}`,K0=Date.now(),P0=setTimeout(()=>{l.delete(G0),m0(Error("Ping timeout"))},xh);l.set(G0,{start:K0,resolve:S0,reject:m0,timeout:P0,peerId:Q0});let k0={t:"ping",id:f(),ttl:p(),data:{pingId:G0,target:Q0},origin:w8,originCell:Z.cellId};I?.send(JSON.stringify(k0),_(Z.cellId))})};return W.on?.("peer:join",()=>g1()),W.on?.("peer:leave",()=>g1()),q1(o()),h0(),{send:(Q0)=>{let S0={t:"msg",id:f(),ttl:p(),data:Q0,origin:w8,originCell:Z.cellId},m0=JSON.stringify(S0);I.send(m0,_(Z.cellId)),v(w,m0)},on:(Q0,S0)=>Q0==="message"?H0(S0):void 0,ping:k1,getState:()=>({...$0(),knownCells:new Set([...T.values()].map((Q0)=>Q0.cell)).size}),getPeerInfo:()=>new Map(T),getStableRoster:()=>[...Z.roster],getKnownCells:()=>{let Q0=new Map;for(let[S0,{cell:m0}]of T)if(!Q0.has(m0))Q0.set(m0,{lastSeen:H,peerId:S0});return Q0},getCellSize:()=>J,destroy:()=>{x1(),l.forEach((Q0)=>clearTimeout(Q0.timeout)),l.clear()}}}function fh(W,X,G){let Y={},J=WM({...W,admit:(Q)=>Y.admit?.(Q)??!0},X,G),Z=W.overlay||{},V=mh(J,Z,Y),U=new Map;return{on:(Q,N)=>J.on(Q,N),off:(Q,N)=>J.off?.(Q,N),channel:(Q)=>{if(U.has(Q))return U.get(Q);let N=J.channel(Q),q={send:(A,H)=>{if(H){let I=[].concat(H),w=J.getPeers?.()||{};if(I.every((O)=>w[O]))return N.send(A,H)}V.send({_ch:Q,_d:A,_t:H})},on:(A,H)=>{if(A==="message")V.on("message",(I,w)=>{if(I?._ch!==Q)return;if(I._t&&![].concat(I._t).includes(w8))return;H(I._d,w)}),N.on(A,H);else N.on(A,H)},off:(A,H)=>N.off?.(A,H),_original:N};return U.set(Q,q),q},get id(){return J.id},get peers(){return J.peers},getPeers:()=>J.getPeers?.()||{},mesh:V,_room:J,getState:()=>V.getState(),getPeerInfo:()=>V.getPeerInfo(),ping:(Q)=>V.ping(Q),leave:()=>{V.destroy(),U.clear(),J.leave()},destroy:()=>{V.destroy(),U.clear()}}}var Rz=(W,X,G)=>W?.cells||W?.overlay?fh(W,X,G):WM(W,X,G);import{randomBytes as CS}from"crypto";function ph(){var W,X=!1,G=this;G._DeArray=function(Y,J,Z){return[Y.slice(J,J+Z)]},G._EnArray=function(Y,J,Z,V){for(var U=0;U<Z;Y[J+U]=V[U]?V[U]:0,U++);},G._DeChar=function(Y,J){return String.fromCharCode(Y[J])},G._EnChar=function(Y,J,Z){Y[J]=Z.charCodeAt(0)},G._DeInt=function(Y,J){var Z=X?W.len-1:0,V=X?-1:1,U=Z+V*W.len,Q,N,q;for(Q=0,N=Z,q=1;N!=U;Q+=Y[J+N]*q,N+=V,q*=256);if(W.bSigned&&Q&Math.pow(2,W.len*8-1))Q-=Math.pow(2,W.len*8);return Q},G._EnInt=function(Y,J,Z){var V=X?W.len-1:0,U=X?-1:1,Q=V+U*W.len,N;Z=Z<W.min?W.min:Z>W.max?W.max:Z;for(N=V;N!=Q;Y[J+N]=Z&255,N+=U,Z>>=8);},G._DeString=function(Y,J,Z){for(var V=Array(Z),U=0;U<Z;V[U]=String.fromCharCode(Y[J+U]),U++);return V.join("")},G._EnString=function(Y,J,Z,V){for(var U,Q=0;Q<Z;Y[J+Q]=(U=V.charCodeAt(Q))?U:0,Q++);},G._De754=function(Y,J){var Z,V,U,Q,N,q,A,H,I,w;A=W.mLen,H=W.len*8-W.mLen-1,w=(1<<H)-1,I=w>>1,Q=X?0:W.len-1,N=X?1:-1,Z=Y[J+Q],Q+=N,q=-7;for(V=Z&(1<<-q)-1,Z>>=-q,q+=H;q>0;V=V*256+Y[J+Q],Q+=N,q-=8);for(U=V&(1<<-q)-1,V>>=-q,q+=A;q>0;U=U*256+Y[J+Q],Q+=N,q-=8);switch(V){case 0:V=1-I;break;case w:return U?NaN:(Z?-1:1)*(1/0);default:U=U+Math.pow(2,A),V=V-I;break}return(Z?-1:1)*U*Math.pow(2,V-A)},G._En754=function(Y,J,Z){var V,U,Q,N,q,A,H,I,w,O;if(H=W.mLen,I=W.len*8-W.mLen-1,O=(1<<I)-1,w=O>>1,V=Z<0?1:0,Z=Math.abs(Z),isNaN(Z)||Z==1/0)Q=isNaN(Z)?1:0,U=O;else{if(U=Math.floor(Math.log(Z)/Math.LN2),Z*(A=Math.pow(2,-U))<1)U--,A*=2;if(U+w>=1)Z+=W.rt/A;else Z+=W.rt*Math.pow(2,1-w);if(Z*A>=2)U++,A/=2;if(U+w>=O)Q=0,U=O;else if(U+w>=1)Q=(Z*A-1)*Math.pow(2,H),U=U+w;else Q=Z*Math.pow(2,w-1)*Math.pow(2,H),U=0}for(N=X?W.len-1:0,q=X?-1:1;H>=8;Y[J+N]=Q&255,N+=q,Q/=256,H-=8);for(U=U<<H|Q,I+=H;I>0;Y[J+N]=U&255,N+=q,U/=256,I-=8);Y[J+N-q]|=V*128},G._DeInt64=function(Y,J){var Z=X?0:7,V=X?1:-1,U=Z+V*8,Q=[0,0,!W.bSigned],N,q,A;for(N=Z,A=1,q=0;N!=U;Q[A]=(Q[A]<<8>>>0)+Y[J+N],N+=V,q++,A=q<4?1:0);return Q},G._EnInt64=function(Y,J,Z){var V=X?0:7,U=X?1:-1,Q=V+U*8,N,q,A,H;for(N=V,A=1,q=0,H=24;N!=Q;Y[J+N]=Z[A]>>H&255,N+=U,q++,A=q<4?1:0,H=24-8*(q%4));},G._sPattern="(\\d + )?([AxcbBhHsfdiIlLqQ])",G._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},G._elLut={A:{en:G._EnArray,de:G._DeArray},s:{en:G._EnString,de:G._DeString},c:{en:G._EnChar,de:G._DeChar},b:{en:G._EnInt,de:G._DeInt,len:1,bSigned:!0,min:-Math.pow(2,7),max:Math.pow(2,7)-1},B:{en:G._EnInt,de:G._DeInt,len:1,bSigned:!1,min:0,max:Math.pow(2,8)-1},h:{en:G._EnInt,de:G._DeInt,len:2,bSigned:!0,min:-Math.pow(2,15),max:Math.pow(2,15)-1},H:{en:G._EnInt,de:G._DeInt,len:2,bSigned:!1,min:0,max:Math.pow(2,16)-1},i:{en:G._EnInt,de:G._DeInt,len:4,bSigned:!0,min:-Math.pow(2,31),max:Math.pow(2,31)-1},I:{en:G._EnInt,de:G._DeInt,len:4,bSigned:!1,min:0,max:Math.pow(2,32)-1},l:{en:G._EnInt,de:G._DeInt,len:4,bSigned:!0,min:-Math.pow(2,31),max:Math.pow(2,31)-1},L:{en:G._EnInt,de:G._DeInt,len:4,bSigned:!1,min:0,max:Math.pow(2,32)-1},f:{en:G._En754,de:G._De754,len:4,mLen:23,rt:Math.pow(2,-24)-Math.pow(2,-77)},d:{en:G._En754,de:G._De754,len:8,mLen:52,rt:0},q:{en:G._EnInt64,de:G._DeInt64,bSigned:!0},Q:{en:G._EnInt64,de:G._DeInt64,bSigned:!1}},G._UnpackSeries=function(Y,J,Z,V){for(var U=W.de,Q=[],N=0;N<Y;Q.push(U(Z,V+N*J)),N++);return Q},G._PackSeries=function(Y,J,Z,V,U,Q){for(var N=W.en,q=0;q<Y;N(Z,V+q*J,U[Q+q]),q++);},G.Unpack=function(Y,J,Z){X=Y.charAt(0)!="<",Z=Z?Z:0;var V=new RegExp(this._sPattern,"g"),U,Q,N,q=[];while(U=V.exec(Y)){if(Q=U[1]==null||U[1]==""?1:parseInt(U[1]),N=this._lenLut[U[2]],Z+Q*N>J.length)return;switch(U[2]){case"A":case"s":q.push(this._elLut[U[2]].de(J,Z,Q));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[U[2]],q.push(this._UnpackSeries(Q,N,J,Z));break}Z+=Q*N}return Array.prototype.concat.apply([],q)},G.PackTo=function(Y,J,Z,V){X=Y.charAt(0)!="<";var U=new RegExp(this._sPattern,"g"),Q,N,q,A,H=0;while(Q=U.exec(Y)){if(N=Q[1]==null||Q[1]==""?1:parseInt(Q[1]),q=this._lenLut[Q[2]],Z+N*q>J.length)return!1;switch(Q[2]){case"A":case"s":if(H+1>V.length)return!1;this._elLut[Q[2]].en(J,Z,N,V[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[Q[2]],H+N>V.length)return!1;this._PackSeries(N,q,J,Z,V,H),H+=N;break;case"x":for(A=0;A<N;A++)J[Z+A]=0;break}Z+=N*q}return J},G.Pack=function(Y,J){return this.PackTo(Y,Array(this.CalcLength(Y)),0,J)},G.CalcLength=function(Y){var J=new RegExp(this._sPattern,"g"),Z=0,V;while(V=J.exec(Y))Z+=(V[1]==null||V[1]==""?1:parseInt(V[1]))*this._lenLut[V[2]];return Z}}var X8=new ph;var xS=m1(HM(),1),AH=m1(uz(),1);import{createSocket as pd}from"dgram";import{createSocket as dd}from"dgram";import*as kS from"net";import{connect as od}from"net";import{createSign as id,randomBytes as rd,webcrypto as ad}from"crypto";var FN0=m1(bM(),1);var R7={};zA(R7,{verifySchema:()=>Wf,fromBER:()=>N4,compareSchema:()=>Z4,VisibleString:()=>FW,ViewWriter:()=>dJ,VideotexString:()=>RG,ValueBlock:()=>X9,Utf8String:()=>b5,UniversalString:()=>CG,UTCTime:()=>SW,TimeOfDay:()=>eQ,TeletexString:()=>PG,TIME:()=>GN,Set:()=>p9,Sequence:()=>y9,Repeated:()=>wG,RelativeObjectIdentifier:()=>sQ,RawData:()=>SP,PrintableString:()=>MG,Primitive:()=>O6,OctetString:()=>M7,ObjectIdentifier:()=>OG,NumericString:()=>TG,Null:()=>T7,Integer:()=>D6,IA5String:()=>LG,HexBlock:()=>C7,GraphicString:()=>BG,GeneralizedTime:()=>FG,GeneralString:()=>EG,Enumerated:()=>KG,EndOfContent:()=>rQ,Duration:()=>XN,DateTime:()=>WN,DEFAULT_MAX_NODES:()=>tM,DEFAULT_MAX_DEPTH:()=>sM,DEFAULT_MAX_CONTENT_LENGTH:()=>eM,DATE:()=>tQ,Constructed:()=>l8,Choice:()=>nJ,CharacterString:()=>$G,Boolean:()=>jG,BmpString:()=>DG,BitString:()=>P7,BaseStringBlock:()=>nQ,BaseBlock:()=>y8,Any:()=>U4});/*!
|
|
147
|
+
`),Qq.prototype[W]=X.toFunction({assertSize:Rj})});HE.exports=Qq;function Rj(W,X){if(W>X)throw new sc(W,X)}});var D8=V1((Qq0,CE)=>{var Lj=wV(),tc=lB(),ec=iB(),Wl=aB(),Xl=tB(),Gl=XE(),zE=YE(),Yl=ZE(),Jl=QE(),{encode:jE}=KV(),{decode:KE}=wY(),{encodingLength:Zl}=OV(),Vl=AE(),OE=zY(),DE={array:tc,bool:Wl,buffer:ec,reserved:Xl,string:Gl,when:Yl,select:Jl};for(let W of Object.keys(zE))DE[W]=zE[W];var Nq=Symbol("schema");function IE(W){let X=new Lj({readableObjectMode:!1,writableObjectMode:!0,transform:Ul});return X[Nq]=W,X}function wE(W){let X=null,G=Buffer.isBuffer(W);if(!G)X=W;let Y=new Lj({transform:Ql,readableObjectMode:!0,writableObjectMode:!1});if(Y[Nq]=X,G)Y.append(W);return Y}function Ul(W,X,G){try{jE(W,this[Nq],this);let Y=this.slice();this.consume(Y.length),G(null,Y)}catch(Y){G(Y)}}function Ql(W,X,G){this.append(W);try{while(this.length>0){let Y=new Vl(this),J=KE(Y,this[Nq]);Y.commit(),this.push(J)}G()}catch(Y){if(Y instanceof OE)G();else G(Y)}}CE.exports={createEncodeStream:IE,createDecodeStream:wE,encode:jE,decode:KE,encodingLength:Zl,createEncode:IE,createDecode:wE,types:DE,BinaryStream:Lj,NotEnoughDataError:OE}});var D$=V1((K$)=>{Object.defineProperty(K$,"__esModule",{value:!0});K$.LEB128=K$.SignedLEB128=K$.UnsignedLEB128=void 0;var MY;(function(W){W[W.LOWER_7=127]="LOWER_7",W[W.UPPER_1=128]="UPPER_1"})(MY||(MY={}));var j$=(W)=>Number.isSafeInteger(W);class PY{static decode(W,X=0){let G=this.$scanForNullBytes(W,X),Y=0,J=0;for(let Z=0;Z<=G-X;Z++){let V=W[X+Z]&MY.LOWER_7;Y|=V<<J,J+=7}return Y}static encode(W){if(this.check(W),W<0)throw Error(`An unsigned number must NOT be negative, ${W} is!`);let X=[],G=W;do{let Y=G&MY.LOWER_7;if(G>>=7,G)Y=Y|MY.UPPER_1;X.push(Y)}while(G);return Uint8Array.from(X)}static check(W){if(!j$(W))throw Error(`${W} is not a safe integer!`)}static $scanForNullBytes(W,X=0){let G=X,Y=0;do{if(G>=W.byteLength)throw Error("This is not a LEB128-encoded Uint8Array, no ending found!");Y=W.slice(G,G+1)[0],G++}while(Y&MY.UPPER_1);return G-1}static getLength(W,X=0){return this.$scanForNullBytes(W,X)-X}}K$.UnsignedLEB128=PY;class Pq{static $ceil7mul(W){let X=W;while(X%7)X++;return X}static check(W){if(!j$(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 X=Math.ceil(Math.log2(-W));return PY.encode((1<<this.$ceil7mul(X))+W)}static decode(W,X=0){let G=PY.decode(W,X);return-((1<<Math.ceil(Math.log2(G)))-G)}}K$.SignedLEB128=Pq;class Rq{}K$.LEB128=Rq;Rq.encode=(W)=>(W>=0?PY:Pq).encode(W);Rq.decode=(W,X=0,G=!1)=>(G?Pq:PY).decode(W,X)});var T$=V1((oj,C$)=>{/*! MIT License. Copyright 2015-2018 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */(function(W){function X(B){return parseInt(B)===B}function G(B){if(!X(B.length))return!1;for(var F=0;F<B.length;F++)if(!X(B[F])||B[F]<0||B[F]>255)return!1;return!0}function Y(B,F){if(B.buffer&&B.name==="Uint8Array"){if(F)if(B.slice)B=B.slice();else B=Array.prototype.slice.call(B);return B}if(Array.isArray(B)){if(!G(B))throw Error("Array contains invalid value: "+B);return new Uint8Array(B)}if(X(B.length)&&G(B))return new Uint8Array(B);throw Error("unsupported array-like object")}function J(B){return new Uint8Array(B)}function Z(B,F,y,v,R){if(v!=null||R!=null)if(B.slice)B=B.slice(v,R);else B=Array.prototype.slice.call(B,v,R);F.set(B,y)}var V=function(){function B(y){var v=[],R=0;y=encodeURI(y);while(R<y.length){var m=y.charCodeAt(R++);if(m===37)v.push(parseInt(y.substr(R,2),16)),R+=2;else v.push(m)}return Y(v)}function F(y){var v=[],R=0;while(R<y.length){var m=y[R];if(m<128)v.push(String.fromCharCode(m)),R++;else if(m>191&&m<224)v.push(String.fromCharCode((m&31)<<6|y[R+1]&63)),R+=2;else v.push(String.fromCharCode((m&15)<<12|(y[R+1]&63)<<6|y[R+2]&63)),R+=3}return v.join("")}return{toBytes:B,fromBytes:F}}(),U=function(){function B(v){var R=[];for(var m=0;m<v.length;m+=2)R.push(parseInt(v.substr(m,2),16));return R}var F="0123456789abcdef";function y(v){var R=[];for(var m=0;m<v.length;m++){var J0=v[m];R.push(F[(J0&240)>>4]+F[J0&15])}return R.join("")}return{toBytes:B,fromBytes:y}}(),Q={16:10,24:12,32:14},N=[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],q=[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],O=[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],T=[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],u=[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],$=[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],S=[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],h=[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],l=[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 t(B){var F=[];for(var y=0;y<B.length;y+=4)F.push(B[y]<<24|B[y+1]<<16|B[y+2]<<8|B[y+3]);return F}var _=function(B){if(!(this instanceof _))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:Y(B,!0)}),this._prepare()};_.prototype._prepare=function(){var B=Q[this.key.length];if(B==null)throw Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var F=0;F<=B;F++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var y=(B+1)*4,v=this.key.length/4,R=t(this.key),m;for(var F=0;F<v;F++)m=F>>2,this._Ke[m][F%4]=R[F],this._Kd[B-m][F%4]=R[F];var J0=0,U0=v,N0;while(U0<y){if(N0=R[v-1],R[0]^=q[N0>>16&255]<<24^q[N0>>8&255]<<16^q[N0&255]<<8^q[N0>>24&255]^N[J0]<<24,J0+=1,v!=8)for(var F=1;F<v;F++)R[F]^=R[F-1];else{for(var F=1;F<v/2;F++)R[F]^=R[F-1];N0=R[v/2-1],R[v/2]^=q[N0&255]^q[N0>>8&255]<<8^q[N0>>16&255]<<16^q[N0>>24&255]<<24;for(var F=v/2+1;F<v;F++)R[F]^=R[F-1]}var F=0,$0,u0;while(F<v&&U0<y)$0=U0>>2,u0=U0%4,this._Ke[$0][u0]=R[F],this._Kd[B-$0][u0]=R[F++],U0++}for(var $0=1;$0<B;$0++)for(var u0=0;u0<4;u0++)N0=this._Kd[$0][u0],this._Kd[$0][u0]=S[N0>>24&255]^h[N0>>16&255]^l[N0>>8&255]^p[N0&255]},_.prototype.encrypt=function(B){if(B.length!=16)throw Error("invalid plaintext size (must be 16 bytes)");var F=this._Ke.length-1,y=[0,0,0,0],v=t(B);for(var R=0;R<4;R++)v[R]^=this._Ke[0][R];for(var m=1;m<F;m++){for(var R=0;R<4;R++)y[R]=H[v[R]>>24&255]^I[v[(R+1)%4]>>16&255]^w[v[(R+2)%4]>>8&255]^O[v[(R+3)%4]&255]^this._Ke[m][R];v=y.slice()}var J0=J(16),U0;for(var R=0;R<4;R++)U0=this._Ke[F][R],J0[4*R]=(q[v[R]>>24&255]^U0>>24)&255,J0[4*R+1]=(q[v[(R+1)%4]>>16&255]^U0>>16)&255,J0[4*R+2]=(q[v[(R+2)%4]>>8&255]^U0>>8)&255,J0[4*R+3]=(q[v[(R+3)%4]&255]^U0)&255;return J0},_.prototype.decrypt=function(B){if(B.length!=16)throw Error("invalid ciphertext size (must be 16 bytes)");var F=this._Kd.length-1,y=[0,0,0,0],v=t(B);for(var R=0;R<4;R++)v[R]^=this._Kd[0][R];for(var m=1;m<F;m++){for(var R=0;R<4;R++)y[R]=T[v[R]>>24&255]^x[v[(R+3)%4]>>16&255]^u[v[(R+2)%4]>>8&255]^$[v[(R+1)%4]&255]^this._Kd[m][R];v=y.slice()}var J0=J(16),U0;for(var R=0;R<4;R++)U0=this._Kd[F][R],J0[4*R]=(A[v[R]>>24&255]^U0>>24)&255,J0[4*R+1]=(A[v[(R+3)%4]>>16&255]^U0>>16)&255,J0[4*R+2]=(A[v[(R+2)%4]>>8&255]^U0>>8)&255,J0[4*R+3]=(A[v[(R+1)%4]&255]^U0)&255;return J0};var e=function(B){if(!(this instanceof e))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new _(B)};e.prototype.encrypt=function(B){if(B=Y(B),B.length%16!==0)throw Error("invalid plaintext size (must be multiple of 16 bytes)");var F=J(B.length),y=J(16);for(var v=0;v<B.length;v+=16)Z(B,y,0,v,v+16),y=this._aes.encrypt(y),Z(y,F,v);return F},e.prototype.decrypt=function(B){if(B=Y(B),B.length%16!==0)throw Error("invalid ciphertext size (must be multiple of 16 bytes)");var F=J(B.length),y=J(16);for(var v=0;v<B.length;v+=16)Z(B,y,0,v,v+16),y=this._aes.decrypt(y),Z(y,F,v);return F};var H0=function(B,F){if(!(this instanceof H0))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",!F)F=J(16);else if(F.length!=16)throw Error("invalid initialation vector size (must be 16 bytes)");this._lastCipherblock=Y(F,!0),this._aes=new _(B)};H0.prototype.encrypt=function(B){if(B=Y(B),B.length%16!==0)throw Error("invalid plaintext size (must be multiple of 16 bytes)");var F=J(B.length),y=J(16);for(var v=0;v<B.length;v+=16){Z(B,y,0,v,v+16);for(var R=0;R<16;R++)y[R]^=this._lastCipherblock[R];this._lastCipherblock=this._aes.encrypt(y),Z(this._lastCipherblock,F,v)}return F},H0.prototype.decrypt=function(B){if(B=Y(B),B.length%16!==0)throw Error("invalid ciphertext size (must be multiple of 16 bytes)");var F=J(B.length),y=J(16);for(var v=0;v<B.length;v+=16){Z(B,y,0,v,v+16),y=this._aes.decrypt(y);for(var R=0;R<16;R++)F[v+R]=y[R]^this._lastCipherblock[R];Z(B,this._lastCipherblock,0,v,v+16)}return F};var g=function(B,F,y){if(!(this instanceof g))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",!F)F=J(16);else if(F.length!=16)throw Error("invalid initialation vector size (must be 16 size)");if(!y)y=1;this.segmentSize=y,this._shiftRegister=Y(F,!0),this._aes=new _(B)};g.prototype.encrypt=function(B){if(B.length%this.segmentSize!=0)throw Error("invalid plaintext size (must be segmentSize bytes)");var F=Y(B,!0),y;for(var v=0;v<F.length;v+=this.segmentSize){y=this._aes.encrypt(this._shiftRegister);for(var R=0;R<this.segmentSize;R++)F[v+R]^=y[R];Z(this._shiftRegister,this._shiftRegister,0,this.segmentSize),Z(F,this._shiftRegister,16-this.segmentSize,v,v+this.segmentSize)}return F},g.prototype.decrypt=function(B){if(B.length%this.segmentSize!=0)throw Error("invalid ciphertext size (must be segmentSize bytes)");var F=Y(B,!0),y;for(var v=0;v<F.length;v+=this.segmentSize){y=this._aes.encrypt(this._shiftRegister);for(var R=0;R<this.segmentSize;R++)F[v+R]^=y[R];Z(this._shiftRegister,this._shiftRegister,0,this.segmentSize),Z(B,this._shiftRegister,16-this.segmentSize,v,v+this.segmentSize)}return F};var d=function(B,F){if(!(this instanceof d))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",!F)F=J(16);else if(F.length!=16)throw Error("invalid initialation vector size (must be 16 bytes)");this._lastPrecipher=Y(F,!0),this._lastPrecipherIndex=16,this._aes=new _(B)};d.prototype.encrypt=function(B){var F=Y(B,!0);for(var y=0;y<F.length;y++){if(this._lastPrecipherIndex===16)this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0;F[y]^=this._lastPrecipher[this._lastPrecipherIndex++]}return F},d.prototype.decrypt=d.prototype.encrypt;var P=function(B){if(!(this instanceof P))throw Error("Counter must be instanitated with `new`");if(B!==0&&!B)B=1;if(typeof B==="number")this._counter=J(16),this.setValue(B);else this.setBytes(B)};P.prototype.setValue=function(B){if(typeof B!=="number"||parseInt(B)!=B)throw Error("invalid counter value (must be an integer)");if(B>Number.MAX_SAFE_INTEGER)throw Error("integer value out of safe range");for(var F=15;F>=0;--F)this._counter[F]=B%256,B=parseInt(B/256)},P.prototype.setBytes=function(B){if(B=Y(B,!0),B.length!=16)throw Error("invalid counter bytes size (must be 16 bytes)");this._counter=B},P.prototype.increment=function(){for(var B=15;B>=0;B--)if(this._counter[B]===255)this._counter[B]=0;else{this._counter[B]++;break}};var E=function(B,F){if(!(this instanceof E))throw Error("AES must be instanitated with `new`");if(this.description="Counter",this.name="ctr",!(F instanceof P))F=new P(F);this._counter=F,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new _(B)};E.prototype.encrypt=function(B){var F=Y(B,!0);for(var y=0;y<F.length;y++){if(this._remainingCounterIndex===16)this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment();F[y]^=this._remainingCounter[this._remainingCounterIndex++]}return F},E.prototype.decrypt=E.prototype.encrypt;function f(B){B=Y(B,!0);var F=16-B.length%16,y=J(B.length+F);Z(B,y);for(var v=B.length;v<y.length;v++)y[v]=F;return y}function r(B){if(B=Y(B,!0),B.length<16)throw Error("PKCS#7 invalid length");var F=B[B.length-1];if(F>16)throw Error("PKCS#7 padding byte out of range");var y=B.length-F;for(var v=0;v<F;v++)if(B[y+v]!==F)throw Error("PKCS#7 invalid padding byte");var R=J(y);return Z(B,R,0,0,y),R}var o={AES:_,Counter:P,ModeOfOperation:{ecb:e,cbc:H0,cfb:g,ofb:d,ctr:E},utils:{hex:U,utf8:V},padding:{pkcs7:{pad:f,strip:r}},_arrayTest:{coerceArray:Y,createArray:J,copyArray:Z}};if(typeof oj<"u")C$.exports=o;else if(typeof define==="function"&&define.amd)define([],function(){return o});else{if(W.aesjs)o._aesjs=W.aesjs;W.aesjs=o}})(oj)});var aj=V1((E$)=>{var G1=E$,{Buffer:$q}=_8("buffer"),nl=_8("os");G1.toBuffer=function(W,X,G){G=~~G;let Y;if(this.isV4Format(W))Y=X||$q.alloc(G+4),W.split(/\./g).map((J)=>{Y[G++]=parseInt(J,10)&255});else if(this.isV6Format(W)){let J=W.split(":",8),Z;for(Z=0;Z<J.length;Z++){let V=this.isV4Format(J[Z]),U;if(V)U=this.toBuffer(J[Z]),J[Z]=U.slice(0,2).toString("hex");if(U&&++Z<8)J.splice(Z,0,U.slice(2,4).toString("hex"))}if(J[0]==="")while(J.length<8)J.unshift("0");else if(J[J.length-1]==="")while(J.length<8)J.push("0");else if(J.length<8){for(Z=0;Z<J.length&&J[Z]!=="";Z++);let V=[Z,1];for(Z=9-J.length;Z>0;Z--)V.push("0");J.splice(...V)}Y=X||$q.alloc(G+16);for(Z=0;Z<J.length;Z++){let V=parseInt(J[Z],16);Y[G++]=V>>8&255,Y[G++]=V&255}}if(!Y)throw Error(`Invalid ip address: ${W}`);return Y};G1.toString=function(W,X,G){X=~~X,G=G||W.length-X;let Y=[];if(G===4){for(let J=0;J<G;J++)Y.push(W[X+J]);Y=Y.join(".")}else if(G===16){for(let J=0;J<G;J+=2)Y.push(W.readUInt16BE(X+J).toString(16));Y=Y.join(":"),Y=Y.replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3"),Y=Y.replace(/:{3,4}/,"::")}return Y};var il=/^(\d{1,3}\.){3,3}\d{1,3}$/,rl=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i;G1.isV4Format=function(W){return il.test(W)};G1.isV6Format=function(W){return rl.test(W)};function FV(W){if(W===4)return"ipv4";if(W===6)return"ipv6";return W?W.toLowerCase():"ipv4"}G1.fromPrefixLen=function(W,X){if(W>32)X="ipv6";else X=FV(X);let G=4;if(X==="ipv6")G=16;let Y=$q.alloc(G);for(let J=0,Z=Y.length;J<Z;++J){let V=8;if(W<8)V=W;W-=V,Y[J]=~(255>>V)&255}return G1.toString(Y)};G1.mask=function(W,X){W=G1.toBuffer(W),X=G1.toBuffer(X);let G=$q.alloc(Math.max(W.length,X.length)),Y;if(W.length===X.length)for(Y=0;Y<W.length;Y++)G[Y]=W[Y]&X[Y];else if(X.length===4)for(Y=0;Y<X.length;Y++)G[Y]=W[W.length-4+Y]&X[Y];else{for(Y=0;Y<G.length-6;Y++)G[Y]=0;G[10]=255,G[11]=255;for(Y=0;Y<W.length;Y++)G[Y+12]=W[Y]&X[Y+12];Y+=12}for(;Y<G.length;Y++)G[Y]=0;return G1.toString(G)};G1.cidr=function(W){let X=W.split("/"),G=X[0];if(X.length!==2)throw Error(`invalid CIDR subnet: ${G}`);let Y=G1.fromPrefixLen(parseInt(X[1],10));return G1.mask(G,Y)};G1.subnet=function(W,X){let G=G1.toLong(G1.mask(W,X)),Y=G1.toBuffer(X),J=0;for(let V=0;V<Y.length;V++)if(Y[V]===255)J+=8;else{let U=Y[V]&255;while(U)U=U<<1&255,J++}let Z=2**(32-J);return{networkAddress:G1.fromLong(G),firstAddress:Z<=2?G1.fromLong(G):G1.fromLong(G+1),lastAddress:Z<=2?G1.fromLong(G+Z-1):G1.fromLong(G+Z-2),broadcastAddress:G1.fromLong(G+Z-1),subnetMask:X,subnetMaskLength:J,numHosts:Z<=2?Z:Z-2,length:Z,contains(V){return G===G1.toLong(G1.mask(V,X))}}};G1.cidrSubnet=function(W){let X=W.split("/"),G=X[0];if(X.length!==2)throw Error(`invalid CIDR subnet: ${G}`);let Y=G1.fromPrefixLen(parseInt(X[1],10));return G1.subnet(G,Y)};G1.not=function(W){let X=G1.toBuffer(W);for(let G=0;G<X.length;G++)X[G]=255^X[G];return G1.toString(X)};G1.or=function(W,X){if(W=G1.toBuffer(W),X=G1.toBuffer(X),W.length===X.length){for(let Z=0;Z<W.length;++Z)W[Z]|=X[Z];return G1.toString(W)}let G=W,Y=X;if(X.length>W.length)G=X,Y=W;let J=G.length-Y.length;for(let Z=J;Z<G.length;++Z)G[Z]|=Y[Z-J];return G1.toString(G)};G1.isEqual=function(W,X){if(W=G1.toBuffer(W),X=G1.toBuffer(X),W.length===X.length){for(let Y=0;Y<W.length;Y++)if(W[Y]!==X[Y])return!1;return!0}if(X.length===4){let Y=X;X=W,W=Y}for(let Y=0;Y<10;Y++)if(X[Y]!==0)return!1;let G=X.readUInt16BE(10);if(G!==0&&G!==65535)return!1;for(let Y=0;Y<4;Y++)if(W[Y]!==X[Y+12])return!1;return!0};G1.isPrivate=function(W){if(G1.isLoopback(W))return!0;if(!G1.isV6Format(W)){let X=G1.normalizeToLong(W);if(X<0)throw Error("invalid ipv4 address");W=G1.fromLong(X)}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)};G1.isPublic=function(W){return!G1.isPrivate(W)};G1.isLoopback=function(W){if(!/\./.test(W)&&!/:/.test(W))W=G1.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)};G1.loopback=function(W){if(W=FV(W),W!=="ipv4"&&W!=="ipv6")throw Error("family must be ipv4 or ipv6");return W==="ipv4"?"127.0.0.1":"fe80::1"};G1.address=function(W,X){let G=nl.networkInterfaces();if(X=FV(X),W&&W!=="private"&&W!=="public"){let J=G[W].filter((Z)=>{return FV(Z.family)===X});if(J.length===0)return;return J[0].address}let Y=Object.keys(G).map((J)=>{let Z=G[J].filter((V)=>{if(V.family=FV(V.family),V.family!==X||G1.isLoopback(V.address))return!1;if(!W)return!0;return W==="public"?G1.isPrivate(V.address):G1.isPublic(V.address)});return Z.length?Z[0].address:void 0}).filter(Boolean);return!Y.length?G1.loopback(X):Y[0]};G1.toLong=function(W){let X=0;return W.split(".").forEach((G)=>{X<<=8,X+=parseInt(G)}),X>>>0};G1.fromLong=function(W){return`${W>>>24}.${W>>16&255}.${W>>8&255}.${W&255}`};G1.normalizeToLong=function(W){let X=W.split(".").map((J)=>{if(J.startsWith("0x")||J.startsWith("0X"))return parseInt(J,16);else if(J.startsWith("0")&&J!=="0"&&/^[0-7]+$/.test(J))return parseInt(J,8);else if(/^[1-9]\d*$/.test(J)||J==="0")return parseInt(J,10);else return NaN});if(X.some(isNaN))return-1;let G=0;switch(X.length){case 1:G=X[0];break;case 2:if(X[0]>255||X[1]>16777215)return-1;G=X[0]<<24|X[1]&16777215;break;case 3:if(X[0]>255||X[1]>255||X[2]>65535)return-1;G=X[0]<<24|X[1]<<16|X[2]&65535;break;case 4:if(X.some((J)=>J>255))return-1;G=X[0]<<24|X[1]<<16|X[2]<<8|X[3];break;default:return-1}return G>>>0}});var F$=V1((rq0,$$)=>{$$.exports=function W(X,G){if(X===G)return!0;if(X&&G&&typeof X=="object"&&typeof G=="object"){if(X.constructor!==G.constructor)return!1;var Y,J,Z;if(Array.isArray(X)){if(Y=X.length,Y!=G.length)return!1;for(J=Y;J--!==0;)if(!W(X[J],G[J]))return!1;return!0}if(X.constructor===RegExp)return X.source===G.source&&X.flags===G.flags;if(X.valueOf!==Object.prototype.valueOf)return X.valueOf()===G.valueOf();if(X.toString!==Object.prototype.toString)return X.toString()===G.toString();if(Z=Object.keys(X),Y=Z.length,Y!==Object.keys(G).length)return!1;for(J=Y;J--!==0;)if(!Object.prototype.hasOwnProperty.call(G,Z[J]))return!1;for(J=Y;J--!==0;){var V=Z[J];if(!W(X[V],G[V]))return!1}return!0}return X!==X&&G!==G}});var S$=V1((al)=>{al.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};al.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 x$=V1((el)=>{el.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};el.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 k$=V1((Gd)=>{Gd.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};Gd.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 _$=V1((Zd)=>{Zd.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};Zd.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 y$=V1((Qd)=>{Qd.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}`};Qd.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 X=W.match(/_(\d+)$/);if(X)return parseInt(X[1],10);return-1}});var u$=V1((g$,sj)=>{var v$=function(W){Object.defineProperty(W,"__esModule",{value:!0}),W.decode=A,W.encode=q,W.familyOf=N,W.name=void 0,W.sizeOf=Q,W.v6=W.v4=void 0;let X=/^(\d{1,3}\.){3,3}\d{1,3}$/,G=4,Y=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i,J=16,Z={name:"v4",size:G,isFormat:(H)=>X.test(H),encode(H,I,w){w=~~w,I=I||new Uint8Array(w+G);let O=H.length,T=0;for(let x=0;x<O;){let u=H.charCodeAt(x++);if(u===46)I[w++]=T,T=0;else T=T*10+(u-48)}return I[w]=T,I},decode(H,I){return I=~~I,`${H[I++]}.${H[I++]}.${H[I++]}.${H[I]}`}};W.v4=Z;let V={name:"v6",size:J,isFormat:(H)=>H.length>0&&Y.test(H),encode(H,I,w){w=~~w;let O=w+J,T=-1,x=0,u=0,$=!0,S=!1;I=I||new Uint8Array(w+J);for(let h=0;h<H.length;h++){let l=H.charCodeAt(h);if(l===58){if($){if(T!==-1){if(w<O)I[w]=0;if(w<O-1)I[w+1]=0;w+=2}else if(w<O)T=w}else{if(S===!0){if(w<O)I[w]=u;w++}else{if(w<O)I[w]=x>>8;if(w<O-1)I[w+1]=x&255;w+=2}x=0,u=0}$=!0,S=!1}else if(l===46){if(w<O)I[w]=u;w++,u=0,x=0,$=!1,S=!0}else{if($=!1,l>=97)l-=87;else if(l>=65)l-=55;else l-=48,u=u*10+l;x=(x<<4)+l}}if($===!1)if(S===!0){if(w<O)I[w]=u;w++}else{if(w<O)I[w]=x>>8;if(w<O-1)I[w+1]=x&255;w+=2}else if(T===0){if(w<O)I[w]=0;if(w<O-1)I[w+1]=0;w+=2}else if(T!==-1){w+=2;for(let h=Math.min(w-1,O-1);h>=T+2;h--)I[h]=I[h-2];I[T]=0,I[T+1]=0,T=w}if(T!==w&&T!==-1){if(w>O-2)w=O-2;while(O>T)I[--O]=w<O&&w>T?I[--w]:0}else while(w<O)I[w++]=0;return I},decode(H,I){I=~~I;let w="";for(let O=0;O<J;O+=2){if(O!==0)w+=":";w+=(H[I+O]<<8|H[I+O+1]).toString(16)}return w.replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}};W.v6=V;let U="ip";W.name=U;function Q(H){if(Z.isFormat(H))return Z.size;if(V.isFormat(H))return V.size;throw Error(`Invalid ip address: ${H}`)}function N(H){return Q(H)===Z.size?1:2}function q(H,I,w){w=~~w;let O=Q(H);if(typeof I==="function")I=I(w+O);if(O===Z.size)return Z.encode(H,I,w);return V.encode(H,I,w)}function A(H,I,w){if(I=~~I,w=w||H.length-I,w===Z.size)return Z.decode(H,I,w);if(w===V.size)return V.decode(H,I,w);throw Error(`Invalid buffer size needs to be ${Z.size} for v4 or ${V.size} for v6.`)}return"default"in W?W.default:W}({});if(typeof define==="function"&&define.amd)define([],function(){return v$});else if(typeof sj==="object"&&typeof g$==="object")sj.exports=v$});var h$=V1((wd)=>{var Z1=_8("buffer").Buffer,m4=S$(),Hd=x$(),Ad=k$(),Sq=_$(),WK=y$(),wX=u$(),g0=wd.name={};g0.encode=function(W,X,G,{mail:Y=!1}={}){if(!X)X=Z1.alloc(g0.encodingLength(W));if(!G)G=0;let J=G,Z=W.replace(/^\.|\.$/gm,"");if(Z.length){let V=[];if(Y){let U="";Z.split(".").forEach((Q)=>{if(Q.endsWith("\\"))U+=(U.length?".":"")+Q.slice(0,-1);else if(V.length===0&&U.length)V.push(U+"."+Q);else V.push(Q)})}else V=Z.split(".");for(let U=0;U<V.length;U++){let Q=X.write(V[U],G+1);X[G]=Q,G+=Q+1}}return X[G++]=0,g0.encode.bytes=G-J,X};g0.encode.bytes=0;g0.decode=function(W,X,{mail:G=!1}={}){if(!X)X=0;let Y=[],J=X,Z=0,V=0,U=!1;while(!0){if(X>=W.length)throw Error("Cannot decode name (buffer overflow)");let Q=W[X++];if(V+=U?0:1,Q===0)break;else if((Q&192)===0){if(X+Q>W.length)throw Error("Cannot decode name (buffer overflow)");if(Z+=Q+1,Z>254)throw Error("Cannot decode name (name too long)");let N=W.toString("utf-8",X,X+Q);if(G)N=N.replace(/\./g,"\\.");Y.push(N),X+=Q,V+=U?0:Q}else if((Q&192)===192){if(X+1>W.length)throw Error("Cannot decode name (buffer overflow)");let N=W.readUInt16BE(X-1)-49152;if(N>=J)throw Error("Cannot decode name (bad pointer)");X=N,J=N,V+=U?0:1,U=!0}else throw Error("Cannot decode name (bad label)")}return g0.decode.bytes=V,Y.length===0?".":Y.join(".")};g0.decode.bytes=0;g0.encodingLength=function(W){if(W==="."||W==="..")return 1;return Z1.byteLength(W.replace(/^\.|\.$/gm,""))+2};var v1={};v1.encode=function(W,X,G){if(!X)X=Z1.alloc(v1.encodingLength(W));if(!G)G=0;let Y=X.write(W,G+1);return X[G]=Y,v1.encode.bytes=Y+1,X};v1.encode.bytes=0;v1.decode=function(W,X){if(!X)X=0;let G=W[X],Y=W.toString("utf-8",X+1,X+1+G);return v1.decode.bytes=G+1,Y};v1.decode.bytes=0;v1.encodingLength=function(W){return Z1.byteLength(W)+1};var e5={};e5.encode=function(W,X,G){if(!X)X=e5.encodingLength(W);if(!G)G=0;let Y=(W.flags||0)&32767,J=W.type==="response"?32768:0;return X.writeUInt16BE(W.id||0,G),X.writeUInt16BE(Y|J,G+2),X.writeUInt16BE(W.questions.length,G+4),X.writeUInt16BE(W.answers.length,G+6),X.writeUInt16BE(W.authorities.length,G+8),X.writeUInt16BE(W.additionals.length,G+10),X};e5.encode.bytes=12;e5.decode=function(W,X){if(!X)X=0;if(W.length<12)throw Error("Header must be 12 bytes");let G=W.readUInt16BE(X+2);return{id:W.readUInt16BE(X),type:G&32768?"response":"query",flags:G&32767,flag_qr:(G>>15&1)===1,opcode:Ad.toString(G>>11&15),flag_aa:(G>>10&1)===1,flag_tc:(G>>9&1)===1,flag_rd:(G>>8&1)===1,flag_ra:(G>>7&1)===1,flag_z:(G>>6&1)===1,flag_ad:(G>>5&1)===1,flag_cd:(G>>4&1)===1,rcode:Hd.toString(G&15),questions:Array(W.readUInt16BE(X+4)),answers:Array(W.readUInt16BE(X+6)),authorities:Array(W.readUInt16BE(X+8)),additionals:Array(W.readUInt16BE(X+10))}};e5.decode.bytes=12;e5.encodingLength=function(){return 12};var x4=wd.unknown={};x4.encode=function(W,X,G){if(!X)X=Z1.alloc(x4.encodingLength(W));if(!G)G=0;return X.writeUInt16BE(W.length,G),W.copy(X,G+2),x4.encode.bytes=W.length+2,X};x4.encode.bytes=0;x4.decode=function(W,X){if(!X)X=0;let G=W.readUInt16BE(X),Y=W.slice(X+2,X+2+G);return x4.decode.bytes=G+2,Y};x4.decode.bytes=0;x4.encodingLength=function(W){return W.length+2};var k4=wd.ns={};k4.encode=function(W,X,G){if(!X)X=Z1.alloc(k4.encodingLength(W));if(!G)G=0;return g0.encode(W,X,G+2),X.writeUInt16BE(g0.encode.bytes,G),k4.encode.bytes=g0.encode.bytes+2,X};k4.encode.bytes=0;k4.decode=function(W,X){if(!X)X=0;let G=W.readUInt16BE(X),Y=g0.decode(W,X+2);return k4.decode.bytes=G+2,Y};k4.decode.bytes=0;k4.encodingLength=function(W){return g0.encodingLength(W)+2};var _4=wd.soa={};_4.encode=function(W,X,G){if(!X)X=Z1.alloc(_4.encodingLength(W));if(!G)G=0;let Y=G;return G+=2,g0.encode(W.mname,X,G),G+=g0.encode.bytes,g0.encode(W.rname,X,G,{mail:!0}),G+=g0.encode.bytes,X.writeUInt32BE(W.serial||0,G),G+=4,X.writeUInt32BE(W.refresh||0,G),G+=4,X.writeUInt32BE(W.retry||0,G),G+=4,X.writeUInt32BE(W.expire||0,G),G+=4,X.writeUInt32BE(W.minimum||0,G),G+=4,X.writeUInt16BE(G-Y-2,Y),_4.encode.bytes=G-Y,X};_4.encode.bytes=0;_4.decode=function(W,X){if(!X)X=0;let G=X,Y={};return X+=2,Y.mname=g0.decode(W,X),X+=g0.decode.bytes,Y.rname=g0.decode(W,X,{mail:!0}),X+=g0.decode.bytes,Y.serial=W.readUInt32BE(X),X+=4,Y.refresh=W.readUInt32BE(X),X+=4,Y.retry=W.readUInt32BE(X),X+=4,Y.expire=W.readUInt32BE(X),X+=4,Y.minimum=W.readUInt32BE(X),X+=4,_4.decode.bytes=X-G,Y};_4.decode.bytes=0;_4.encodingLength=function(W){return 22+g0.encodingLength(W.mname)+g0.encodingLength(W.rname)};var y4=wd.txt={};y4.encode=function(W,X,G){if(!Array.isArray(W))W=[W];for(let J=0;J<W.length;J++){if(typeof W[J]==="string")W[J]=Z1.from(W[J]);if(!Z1.isBuffer(W[J]))throw Error("Must be a Buffer")}if(!X)X=Z1.alloc(y4.encodingLength(W));if(!G)G=0;let Y=G;return G+=2,W.forEach(function(J){X[G++]=J.length,J.copy(X,G,0,J.length),G+=J.length}),X.writeUInt16BE(G-Y-2,Y),y4.encode.bytes=G-Y,X};y4.encode.bytes=0;y4.decode=function(W,X){if(!X)X=0;let G=X,Y=W.readUInt16BE(X);X+=2;let J=[];while(Y>0){let Z=W[X++];if(--Y,Y<Z)throw Error("Buffer overflow");J.push(W.slice(X,X+Z)),X+=Z,Y-=Z}return y4.decode.bytes=X-G,J};y4.decode.bytes=0;y4.encodingLength=function(W){if(!Array.isArray(W))W=[W];let X=2;return W.forEach(function(G){if(typeof G==="string")X+=Z1.byteLength(G)+1;else X+=G.length+1}),X};var v4=wd.null={};v4.encode=function(W,X,G){if(!X)X=Z1.alloc(v4.encodingLength(W));if(!G)G=0;if(typeof W==="string")W=Z1.from(W);if(!W)W=Z1.alloc(0);let Y=G;G+=2;let J=W.length;return W.copy(X,G,0,J),G+=J,X.writeUInt16BE(G-Y-2,Y),v4.encode.bytes=G-Y,X};v4.encode.bytes=0;v4.decode=function(W,X){if(!X)X=0;let G=X,Y=W.readUInt16BE(X);X+=2;let J=W.slice(X,X+Y);return X+=Y,v4.decode.bytes=X-G,J};v4.decode.bytes=0;v4.encodingLength=function(W){if(!W)return 2;return(Z1.isBuffer(W)?W.length:Z1.byteLength(W))+2};var g4=wd.hinfo={};g4.encode=function(W,X,G){if(!X)X=Z1.alloc(g4.encodingLength(W));if(!G)G=0;let Y=G;return G+=2,v1.encode(W.cpu,X,G),G+=v1.encode.bytes,v1.encode(W.os,X,G),G+=v1.encode.bytes,X.writeUInt16BE(G-Y-2,Y),g4.encode.bytes=G-Y,X};g4.encode.bytes=0;g4.decode=function(W,X){if(!X)X=0;let G=X,Y={};return X+=2,Y.cpu=v1.decode(W,X),X+=v1.decode.bytes,Y.os=v1.decode(W,X),X+=v1.decode.bytes,g4.decode.bytes=X-G,Y};g4.decode.bytes=0;g4.encodingLength=function(W){return v1.encodingLength(W.cpu)+v1.encodingLength(W.os)+2};var s5=wd.ptr={},zd=wd.cname=s5,Id=wd.dname=s5;s5.encode=function(W,X,G){if(!X)X=Z1.alloc(s5.encodingLength(W));if(!G)G=0;return g0.encode(W,X,G+2),X.writeUInt16BE(g0.encode.bytes,G),s5.encode.bytes=g0.encode.bytes+2,X};s5.encode.bytes=0;s5.decode=function(W,X){if(!X)X=0;let G=g0.decode(W,X+2);return s5.decode.bytes=g0.decode.bytes+2,G};s5.decode.bytes=0;s5.encodingLength=function(W){return g0.encodingLength(W)+2};var u4=wd.srv={};u4.encode=function(W,X,G){if(!X)X=Z1.alloc(u4.encodingLength(W));if(!G)G=0;X.writeUInt16BE(W.priority||0,G+2),X.writeUInt16BE(W.weight||0,G+4),X.writeUInt16BE(W.port||0,G+6),g0.encode(W.target,X,G+8);let Y=g0.encode.bytes+6;return X.writeUInt16BE(Y,G),u4.encode.bytes=Y+2,X};u4.encode.bytes=0;u4.decode=function(W,X){if(!X)X=0;let G=W.readUInt16BE(X),Y={};return Y.priority=W.readUInt16BE(X+2),Y.weight=W.readUInt16BE(X+4),Y.port=W.readUInt16BE(X+6),Y.target=g0.decode(W,X+8),u4.decode.bytes=G+2,Y};u4.decode.bytes=0;u4.encodingLength=function(W){return 8+g0.encodingLength(W.target)};var q5=wd.caa={};q5.ISSUER_CRITICAL=128;q5.encode=function(W,X,G){let Y=q5.encodingLength(W);if(!X)X=Z1.alloc(q5.encodingLength(W));if(!G)G=0;if(W.issuerCritical)W.flags=q5.ISSUER_CRITICAL;return X.writeUInt16BE(Y-2,G),G+=2,X.writeUInt8(W.flags||0,G),G+=1,v1.encode(W.tag,X,G),G+=v1.encode.bytes,X.write(W.value,G),G+=Z1.byteLength(W.value),q5.encode.bytes=Y,X};q5.encode.bytes=0;q5.decode=function(W,X){if(!X)X=0;let G=W.readUInt16BE(X);X+=2;let Y=X,J={};return J.flags=W.readUInt8(X),X+=1,J.tag=v1.decode(W,X),X+=v1.decode.bytes,J.value=W.toString("utf-8",X,Y+G),J.issuerCritical=!!(J.flags&q5.ISSUER_CRITICAL),q5.decode.bytes=G+2,J};q5.decode.bytes=0;q5.encodingLength=function(W){return v1.encodingLength(W.tag)+v1.encodingLength(W.value)+2};var n6=wd.mx={};n6.encode=function(W,X,G){if(!X)X=Z1.alloc(n6.encodingLength(W));if(!G)G=0;let Y=G;return G+=2,X.writeUInt16BE(W.preference||0,G),G+=2,g0.encode(W.exchange,X,G),G+=g0.encode.bytes,X.writeUInt16BE(G-Y-2,Y),n6.encode.bytes=G-Y,X};n6.encode.bytes=0;n6.decode=function(W,X){if(!X)X=0;let G=X,Y={};return X+=2,Y.preference=W.readUInt16BE(X),X+=2,Y.exchange=g0.decode(W,X),X+=g0.decode.bytes,n6.decode.bytes=X-G,Y};n6.encodingLength=function(W){return 4+g0.encodingLength(W.exchange)};var h4=wd.a={};h4.encode=function(W,X,G){if(!X)X=Z1.alloc(h4.encodingLength(W));if(!G)G=0;return X.writeUInt16BE(4,G),G+=2,wX.v4.encode(W,X,G),h4.encode.bytes=6,X};h4.encode.bytes=0;h4.decode=function(W,X){if(!X)X=0;X+=2;let G=wX.v4.decode(W,X);return h4.decode.bytes=6,G};h4.decode.bytes=0;h4.encodingLength=function(){return 6};var b4=wd.aaaa={};b4.encode=function(W,X,G){if(!X)X=Z1.alloc(b4.encodingLength(W));if(!G)G=0;return X.writeUInt16BE(16,G),G+=2,wX.v6.encode(W,X,G),b4.encode.bytes=18,X};b4.encode.bytes=0;b4.decode=function(W,X){if(!X)X=0;X+=2;let G=wX.v6.decode(W,X);return b4.decode.bytes=18,G};b4.decode.bytes=0;b4.encodingLength=function(){return 18};var a9=wd.option={};a9.encode=function(W,X,G){if(!X)X=Z1.alloc(a9.encodingLength(W));if(!G)G=0;let Y=G,J=WK.toCode(W.code);if(X.writeUInt16BE(J,G),G+=2,W.data)X.writeUInt16BE(W.data.length,G),G+=2,W.data.copy(X,G),G+=W.data.length;else switch(J){case 8:let Z=W.sourcePrefixLength||0,V=W.family||wX.familyOf(W.ip),U=wX.encode(W.ip,Z1.alloc),Q=Math.ceil(Z/8);X.writeUInt16BE(Q+4,G),G+=2,X.writeUInt16BE(V,G),G+=2,X.writeUInt8(Z,G++),X.writeUInt8(W.scopePrefixLength||0,G++),U.copy(X,G,0,Q),G+=Q;break;case 11:if(W.timeout)X.writeUInt16BE(2,G),G+=2,X.writeUInt16BE(W.timeout,G),G+=2;else X.writeUInt16BE(0,G),G+=2;break;case 12:let N=W.length||0;X.writeUInt16BE(N,G),G+=2,X.fill(0,G,G+N),G+=N;break;case 14:let q=W.tags.length*2;X.writeUInt16BE(q,G),G+=2;for(let A of W.tags)X.writeUInt16BE(A,G),G+=2;break;default:throw Error(`Unknown roption code: ${W.code}`)}return a9.encode.bytes=G-Y,X};a9.encode.bytes=0;a9.decode=function(W,X){if(!X)X=0;let G={};G.code=W.readUInt16BE(X),G.type=WK.toString(G.code),X+=2;let Y=W.readUInt16BE(X);switch(X+=2,G.data=W.slice(X,X+Y),G.code){case 8:G.family=W.readUInt16BE(X),X+=2,G.sourcePrefixLength=W.readUInt8(X++),G.scopePrefixLength=W.readUInt8(X++);let J=Z1.alloc(G.family===1?4:16);W.copy(J,0,X,X+Y-4),G.ip=wX.decode(J);break;case 11:if(Y>0)G.timeout=W.readUInt16BE(X),X+=2;break;case 14:G.tags=[];for(let Z=0;Z<Y;Z+=2)G.tags.push(W.readUInt16BE(X)),X+=2}return a9.decode.bytes=Y+4,G};a9.decode.bytes=0;a9.encodingLength=function(W){if(W.data)return W.data.length+4;switch(WK.toCode(W.code)){case 8:let G=W.sourcePrefixLength||0;return Math.ceil(G/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 A5=wd.opt={};A5.encode=function(W,X,G){if(!X)X=Z1.alloc(A5.encodingLength(W));if(!G)G=0;let Y=G,J=$Y(W,a9);return X.writeUInt16BE(J,G),G=SV(W,a9,X,G+2),A5.encode.bytes=G-Y,X};A5.encode.bytes=0;A5.decode=function(W,X){if(!X)X=0;let G=X,Y=[],J=W.readUInt16BE(X);X+=2;let Z=0;while(J>0)Y[Z++]=a9.decode(W,X),X+=a9.decode.bytes,J-=a9.decode.bytes;return A5.decode.bytes=X-G,Y};A5.decode.bytes=0;A5.encodingLength=function(W){return 2+$Y(W||[],a9)};var u9=wd.dnskey={};u9.PROTOCOL_DNSSEC=3;u9.ZONE_KEY=128;u9.SECURE_ENTRYPOINT=32768;u9.encode=function(W,X,G){if(!X)X=Z1.alloc(u9.encodingLength(W));if(!G)G=0;let Y=G,J=W.key;if(!Z1.isBuffer(J))throw Error("Key must be a Buffer");return G+=2,X.writeUInt16BE(W.flags,G),G+=2,X.writeUInt8(u9.PROTOCOL_DNSSEC,G),G+=1,X.writeUInt8(W.algorithm,G),G+=1,J.copy(X,G,0,J.length),G+=J.length,u9.encode.bytes=G-Y,X.writeUInt16BE(u9.encode.bytes-2,Y),X};u9.encode.bytes=0;u9.decode=function(W,X){if(!X)X=0;let G=X;var Y={},J=W.readUInt16BE(X);if(X+=2,Y.flags=W.readUInt16BE(X),X+=2,W.readUInt8(X)!==u9.PROTOCOL_DNSSEC)throw Error("Protocol must be 3");return X+=1,Y.algorithm=W.readUInt8(X),X+=1,Y.key=W.slice(X,G+J+2),X+=Y.key.length,u9.decode.bytes=X-G,Y};u9.decode.bytes=0;u9.encodingLength=function(W){return 6+Z1.byteLength(W.key)};var y7=wd.rrsig={};y7.encode=function(W,X,G){if(!X)X=Z1.alloc(y7.encodingLength(W));if(!G)G=0;let Y=G,J=W.signature;if(!Z1.isBuffer(J))throw Error("Signature must be a Buffer");return G+=2,X.writeUInt16BE(m4.toType(W.typeCovered),G),G+=2,X.writeUInt8(W.algorithm,G),G+=1,X.writeUInt8(W.labels,G),G+=1,X.writeUInt32BE(W.originalTTL,G),G+=4,X.writeUInt32BE(W.expiration,G),G+=4,X.writeUInt32BE(W.inception,G),G+=4,X.writeUInt16BE(W.keyTag,G),G+=2,g0.encode(W.signersName,X,G),G+=g0.encode.bytes,J.copy(X,G,0,J.length),G+=J.length,y7.encode.bytes=G-Y,X.writeUInt16BE(y7.encode.bytes-2,Y),X};y7.encode.bytes=0;y7.decode=function(W,X){if(!X)X=0;let G=X;var Y={},J=W.readUInt16BE(X);return X+=2,Y.typeCovered=m4.toString(W.readUInt16BE(X)),X+=2,Y.algorithm=W.readUInt8(X),X+=1,Y.labels=W.readUInt8(X),X+=1,Y.originalTTL=W.readUInt32BE(X),X+=4,Y.expiration=W.readUInt32BE(X),X+=4,Y.inception=W.readUInt32BE(X),X+=4,Y.keyTag=W.readUInt16BE(X),X+=2,Y.signersName=g0.decode(W,X),X+=g0.decode.bytes,Y.signature=W.slice(X,G+J+2),X+=Y.signature.length,y7.decode.bytes=X-G,Y};y7.decode.bytes=0;y7.encodingLength=function(W){return 20+g0.encodingLength(W.signersName)+Z1.byteLength(W.signature)};var v7=wd.rp={};v7.encode=function(W,X,G){if(!X)X=Z1.alloc(v7.encodingLength(W));if(!G)G=0;let Y=G;return G+=2,g0.encode(W.mbox||".",X,G,{mail:!0}),G+=g0.encode.bytes,g0.encode(W.txt||".",X,G),G+=g0.encode.bytes,v7.encode.bytes=G-Y,X.writeUInt16BE(v7.encode.bytes-2,Y),X};v7.encode.bytes=0;v7.decode=function(W,X){if(!X)X=0;let G=X,Y={};return X+=2,Y.mbox=g0.decode(W,X,{mail:!0})||".",X+=g0.decode.bytes,Y.txt=g0.decode(W,X)||".",X+=g0.decode.bytes,v7.decode.bytes=X-G,Y};v7.decode.bytes=0;v7.encodingLength=function(W){return 2+g0.encodingLength(W.mbox||".")+g0.encodingLength(W.txt||".")};var a8={};a8.encode=function(W,X,G){if(!X)X=Z1.alloc(a8.encodingLength(W));if(!G)G=0;let Y=G;var J=[];for(var Z=0;Z<W.length;Z++){var V=m4.toType(W[Z]);if(J[V>>8]===void 0)J[V>>8]=[];J[V>>8][V>>3&31]|=1<<7-(V&7)}for(Z=0;Z<J.length;Z++)if(J[Z]!==void 0){var U=Z1.from(J[Z]);X.writeUInt8(Z,G),G+=1,X.writeUInt8(U.length,G),G+=1,U.copy(X,G),G+=U.length}return a8.encode.bytes=G-Y,X};a8.encode.bytes=0;a8.decode=function(W,X,G){if(!X)X=0;let Y=X;var J=[];while(X-Y<G){var Z=W.readUInt8(X);X+=1;var V=W.readUInt8(X);X+=1;for(var U=0;U<V;U++){var Q=W.readUInt8(X+U);for(var N=0;N<8;N++)if(Q&1<<7-N){var q=m4.toString(Z<<8|U<<3|N);J.push(q)}}X+=V}return a8.decode.bytes=X-Y,J};a8.decode.bytes=0;a8.encodingLength=function(W){var X=[];for(var G=0;G<W.length;G++){var Y=m4.toType(W[G]);X[Y>>8]=Math.max(X[Y>>8]||0,Y&255)}var J=0;for(G=0;G<X.length;G++)if(X[G]!==void 0)J+=2+Math.ceil((X[G]+1)/8);return J};var g7=wd.nsec={};g7.encode=function(W,X,G){if(!X)X=Z1.alloc(g7.encodingLength(W));if(!G)G=0;let Y=G;return G+=2,g0.encode(W.nextDomain,X,G),G+=g0.encode.bytes,a8.encode(W.rrtypes,X,G),G+=a8.encode.bytes,g7.encode.bytes=G-Y,X.writeUInt16BE(g7.encode.bytes-2,Y),X};g7.encode.bytes=0;g7.decode=function(W,X){if(!X)X=0;let G=X;var Y={},J=W.readUInt16BE(X);return X+=2,Y.nextDomain=g0.decode(W,X),X+=g0.decode.bytes,Y.rrtypes=a8.decode(W,X,J-(X-G)),X+=a8.decode.bytes,g7.decode.bytes=X-G,Y};g7.decode.bytes=0;g7.encodingLength=function(W){return 2+g0.encodingLength(W.nextDomain)+a8.encodingLength(W.rrtypes)};var u7=wd.nsec3={};u7.encode=function(W,X,G){if(!X)X=Z1.alloc(u7.encodingLength(W));if(!G)G=0;let Y=G,J=W.salt;if(!Z1.isBuffer(J))throw Error("salt must be a Buffer");let Z=W.nextDomain;if(!Z1.isBuffer(Z))throw Error("nextDomain must be a Buffer");return G+=2,X.writeUInt8(W.algorithm,G),G+=1,X.writeUInt8(W.flags,G),G+=1,X.writeUInt16BE(W.iterations,G),G+=2,X.writeUInt8(J.length,G),G+=1,J.copy(X,G,0,J.length),G+=J.length,X.writeUInt8(Z.length,G),G+=1,Z.copy(X,G,0,Z.length),G+=Z.length,a8.encode(W.rrtypes,X,G),G+=a8.encode.bytes,u7.encode.bytes=G-Y,X.writeUInt16BE(u7.encode.bytes-2,Y),X};u7.encode.bytes=0;u7.decode=function(W,X){if(!X)X=0;let G=X;var Y={},J=W.readUInt16BE(X);X+=2,Y.algorithm=W.readUInt8(X),X+=1,Y.flags=W.readUInt8(X),X+=1,Y.iterations=W.readUInt16BE(X),X+=2;let Z=W.readUInt8(X);X+=1,Y.salt=W.slice(X,X+Z),X+=Z;let V=W.readUInt8(X);return X+=1,Y.nextDomain=W.slice(X,X+V),X+=V,Y.rrtypes=a8.decode(W,X,J-(X-G)),X+=a8.decode.bytes,u7.decode.bytes=X-G,Y};u7.decode.bytes=0;u7.encodingLength=function(W){return 8+W.salt.length+W.nextDomain.length+a8.encodingLength(W.rrtypes)};var h7=wd.ds={};h7.encode=function(W,X,G){if(!X)X=Z1.alloc(h7.encodingLength(W));if(!G)G=0;let Y=G,J=W.digest;if(!Z1.isBuffer(J))throw Error("Digest must be a Buffer");return G+=2,X.writeUInt16BE(W.keyTag,G),G+=2,X.writeUInt8(W.algorithm,G),G+=1,X.writeUInt8(W.digestType,G),G+=1,J.copy(X,G,0,J.length),G+=J.length,h7.encode.bytes=G-Y,X.writeUInt16BE(h7.encode.bytes-2,Y),X};h7.encode.bytes=0;h7.decode=function(W,X){if(!X)X=0;let G=X;var Y={},J=W.readUInt16BE(X);return X+=2,Y.keyTag=W.readUInt16BE(X),X+=2,Y.algorithm=W.readUInt8(X),X+=1,Y.digestType=W.readUInt8(X),X+=1,Y.digest=W.slice(X,G+J+2),X+=Y.digest.length,h7.decode.bytes=X-G,Y};h7.decode.bytes=0;h7.encodingLength=function(W){return 6+Z1.byteLength(W.digest)};var H5=wd.sshfp={};H5.getFingerprintLengthForHashType=function(X){switch(X){case 1:return 20;case 2:return 32}};H5.encode=function(X,G,Y){if(!G)G=Z1.alloc(H5.encodingLength(X));if(!Y)Y=0;let J=Y;Y+=2,G[Y]=X.algorithm,Y+=1,G[Y]=X.hash,Y+=1;let Z=Z1.from(X.fingerprint.toUpperCase(),"hex");if(Z.length!==H5.getFingerprintLengthForHashType(X.hash))throw Error("Invalid fingerprint length");return Z.copy(G,Y),Y+=Z.byteLength,H5.encode.bytes=Y-J,G.writeUInt16BE(H5.encode.bytes-2,J),G};H5.encode.bytes=0;H5.decode=function(X,G){if(!G)G=0;let Y=G,J={};G+=2,J.algorithm=X[G],G+=1,J.hash=X[G],G+=1;let Z=H5.getFingerprintLengthForHashType(J.hash);return J.fingerprint=X.slice(G,G+Z).toString("hex").toUpperCase(),G+=Z,H5.decode.bytes=G-Y,J};H5.decode.bytes=0;H5.encodingLength=function(W){return 4+Z1.from(W.fingerprint,"hex").byteLength};var b7=wd.naptr={};b7.encode=function(W,X,G){if(!X)X=Z1.alloc(b7.encodingLength(W));if(!G)G=0;let Y=G;return G+=2,X.writeUInt16BE(W.order||0,G),G+=2,X.writeUInt16BE(W.preference||0,G),G+=2,v1.encode(W.flags,X,G),G+=v1.encode.bytes,v1.encode(W.services,X,G),G+=v1.encode.bytes,v1.encode(W.regexp,X,G),G+=v1.encode.bytes,g0.encode(W.replacement,X,G),G+=g0.encode.bytes,b7.encode.bytes=G-Y,X.writeUInt16BE(b7.encode.bytes-2,Y),X};b7.encode.bytes=0;b7.decode=function(W,X){if(!X)X=0;let G=X,Y={};return X+=2,Y.order=W.readUInt16BE(X),X+=2,Y.preference=W.readUInt16BE(X),X+=2,Y.flags=v1.decode(W,X),X+=v1.decode.bytes,Y.services=v1.decode(W,X),X+=v1.decode.bytes,Y.regexp=v1.decode(W,X),X+=v1.decode.bytes,Y.replacement=g0.decode(W,X),X+=g0.decode.bytes,b7.decode.bytes=X-G,Y};b7.decode.bytes=0;b7.encodingLength=function(W){return v1.encodingLength(W.flags)+v1.encodingLength(W.services)+v1.encodingLength(W.regexp)+g0.encodingLength(W.replacement)+6};var m7=wd.tlsa={};m7.encode=function(W,X,G){if(!X)X=Z1.alloc(m7.encodingLength(W));if(!G)G=0;let Y=G,J=W.certificate;if(!Z1.isBuffer(J))throw Error("Certificate must be a Buffer");return G+=2,X.writeUInt8(W.usage,G),G+=1,X.writeUInt8(W.selector,G),G+=1,X.writeUInt8(W.matchingType,G),G+=1,J.copy(X,G,0,J.length),G+=J.length,m7.encode.bytes=G-Y,X.writeUInt16BE(m7.encode.bytes-2,Y),X};m7.encode.bytes=0;m7.decode=function(W,X){if(!X)X=0;let G=X,Y={},J=W.readUInt16BE(X);return X+=2,Y.usage=W.readUInt8(X),X+=1,Y.selector=W.readUInt8(X),X+=1,Y.matchingType=W.readUInt8(X),X+=1,Y.certificate=W.slice(X,G+J+2),X+=Y.certificate.length,m7.decode.bytes=X-G,Y};m7.decode.bytes=0;m7.encodingLength=function(W){return 5+Z1.byteLength(W.certificate)};var XK=wd.record=function(W){switch(W.toUpperCase()){case"A":return h4;case"PTR":return s5;case"CNAME":return zd;case"DNAME":return Id;case"TXT":return y4;case"NULL":return v4;case"AAAA":return b4;case"SRV":return u4;case"HINFO":return g4;case"CAA":return q5;case"NS":return k4;case"SOA":return _4;case"MX":return n6;case"OPT":return A5;case"DNSKEY":return u9;case"RRSIG":return y7;case"RP":return v7;case"NSEC":return g7;case"NSEC3":return u7;case"SSHFP":return H5;case"DS":return h7;case"NAPTR":return b7;case"TLSA":return m7}return x4},V9=wd.answer={};V9.encode=function(W,X,G){if(!X)X=Z1.alloc(V9.encodingLength(W));if(!G)G=0;let Y=G;if(g0.encode(W.name,X,G),G+=g0.encode.bytes,X.writeUInt16BE(m4.toType(W.type),G),W.type.toUpperCase()==="OPT"){if(W.name!==".")throw Error("OPT name must be root.");X.writeUInt16BE(W.udpPayloadSize||4096,G+2),X.writeUInt8(W.extendedRcode||0,G+4),X.writeUInt8(W.ednsVersion||0,G+5),X.writeUInt16BE(W.flags||0,G+6),G+=8,A5.encode(W.options||[],X,G),G+=A5.encode.bytes}else{let J=Sq.toClass(W.class===void 0?"IN":W.class);if(W.flush)J|=32768;X.writeUInt16BE(J,G+2),X.writeUInt32BE(W.ttl||0,G+4),G+=8;let Z=XK(W.type);Z.encode(W.data,X,G),G+=Z.encode.bytes}return V9.encode.bytes=G-Y,X};V9.encode.bytes=0;V9.decode=function(W,X){if(!X)X=0;let G={},Y=X;if(G.name=g0.decode(W,X),X+=g0.decode.bytes,G.type=m4.toString(W.readUInt16BE(X)),G.type==="OPT")G.udpPayloadSize=W.readUInt16BE(X+2),G.extendedRcode=W.readUInt8(X+4),G.ednsVersion=W.readUInt8(X+5),G.flags=W.readUInt16BE(X+6),G.flag_do=(G.flags>>15&1)===1,G.options=A5.decode(W,X+8),X+=8+A5.decode.bytes;else{let J=W.readUInt16BE(X+2);G.ttl=W.readUInt32BE(X+4),G.class=Sq.toString(J&-32769),G.flush=!!(J&32768);let Z=XK(G.type);G.data=Z.decode(W,X+8),X+=8+Z.decode.bytes}return V9.decode.bytes=X-Y,G};V9.decode.bytes=0;V9.encodingLength=function(W){let X=W.data!==null&&W.data!==void 0?W.data:W.options;return g0.encodingLength(W.name)+8+XK(W.type).encodingLength(X)};var t5=wd.question={};t5.encode=function(W,X,G){if(!X)X=Z1.alloc(t5.encodingLength(W));if(!G)G=0;let Y=G;return g0.encode(W.name,X,G),G+=g0.encode.bytes,X.writeUInt16BE(m4.toType(W.type),G),G+=2,X.writeUInt16BE(Sq.toClass(W.class===void 0?"IN":W.class),G),G+=2,t5.encode.bytes=G-Y,W};t5.encode.bytes=0;t5.decode=function(W,X){if(!X)X=0;let G=X,Y={};if(Y.name=g0.decode(W,X),X+=g0.decode.bytes,Y.type=m4.toString(W.readUInt16BE(X)),X+=2,Y.class=Sq.toString(W.readUInt16BE(X)),X+=2,!!(Y.class&32768))Y.class&=-32769;return t5.decode.bytes=X-G,Y};t5.decode.bytes=0;t5.encodingLength=function(W){return g0.encodingLength(W.name)+4};wd.AUTHORITATIVE_ANSWER=1024;wd.TRUNCATED_RESPONSE=512;wd.RECURSION_DESIRED=256;wd.RECURSION_AVAILABLE=128;wd.AUTHENTIC_DATA=32;wd.CHECKING_DISABLED=16;wd.DNSSEC_OK=32768;wd.encode=function(W,X,G){let Y=!X;if(Y)X=Z1.alloc(wd.encodingLength(W));if(!G)G=0;let J=G;if(!W.questions)W.questions=[];if(!W.answers)W.answers=[];if(!W.authorities)W.authorities=[];if(!W.additionals)W.additionals=[];if(e5.encode(W,X,G),G+=e5.encode.bytes,G=SV(W.questions,t5,X,G),G=SV(W.answers,V9,X,G),G=SV(W.authorities,V9,X,G),G=SV(W.additionals,V9,X,G),wd.encode.bytes=G-J,Y&&wd.encode.bytes!==X.length)return X.slice(0,wd.encode.bytes);return X};wd.encode.bytes=0;wd.decode=function(W,X){if(!X)X=0;let G=X,Y=e5.decode(W,X);return X+=e5.decode.bytes,X=Fq(Y.questions,t5,W,X),X=Fq(Y.answers,V9,W,X),X=Fq(Y.authorities,V9,W,X),X=Fq(Y.additionals,V9,W,X),wd.decode.bytes=X-G,Y};wd.decode.bytes=0;wd.encodingLength=function(W){return e5.encodingLength(W)+$Y(W.questions||[],t5)+$Y(W.answers||[],V9)+$Y(W.authorities||[],V9)+$Y(W.additionals||[],V9)};wd.streamEncode=function(W){let X=wd.encode(W),G=Z1.alloc(2);G.writeUInt16BE(X.byteLength);let Y=Z1.concat([G,X]);return wd.streamEncode.bytes=Y.byteLength,Y};wd.streamEncode.bytes=0;wd.streamDecode=function(W){let X=W.readUInt16BE(0);if(W.byteLength<X+2)return null;let G=wd.decode(W.slice(2));return wd.streamDecode.bytes=wd.decode.bytes,G};wd.streamDecode.bytes=0;function $Y(W,X){let G=0;for(let Y=0;Y<W.length;Y++)G+=X.encodingLength(W[Y]);return G}function SV(W,X,G,Y){for(let J=0;J<W.length;J++)X.encode(W[J],G,Y),Y+=X.encode.bytes;return Y}function Fq(W,X,G,Y){for(let J=0;J<W.length;J++)W[J]=X.decode(G,Y),Y+=X.decode.bytes;return Y}});var f$=V1((xH0,m$)=>{var b$=Fd;process.nextTick($d,42);m$.exports=Rd;function Rd(W){var X=Y;return G;function G(J){X(J||Bd)}function Y(J){var Z=[J];X=V,W(U);function V(Q){Z.push(Q)}function U(Q){var N=arguments;X=Ld(Q)?Y:q;while(Z.length)q(Z.shift());function q(A){b$(Ed,A,N)}}}}function Ld(W){return Object.prototype.toString.call(W)==="[object Error]"}function Bd(){}function Ed(W,X){W.apply(null,X)}function $d(W){if(W===42)b$=process.nextTick}function Fd(W,X,G){process.nextTick(function(){W(X,G)})}});var l$=V1((kH0,c$)=>{var GK=h$(),Sd=_8("dgram"),xd=f$(),kd=_8("events"),JK=_8("os"),YK=function(){};c$.exports=function(W){if(!W)W={};var X=new kd.EventEmitter,G=typeof W.port==="number"?W.port:5353,Y=W.type||"udp4",J=W.ip||W.host||(Y==="udp4"?"224.0.0.251":null),Z={address:J,port:G},V={},U=!1,Q=null;if(Y==="udp6"&&(!J||!W.interface))throw Error("For IPv6 multicast you must specify `ip` and `interface`");var N=W.socket||Sd.createSocket({type:Y,reuseAddr:W.reuseAddr!==!1,toString:function(){return Y}});N.on("error",function(A){if(A.code==="EACCES"||A.code==="EADDRINUSE")X.emit("error",A);else X.emit("warning",A)}),N.on("message",function(A,H){try{A=GK.decode(A)}catch(I){X.emit("warning",I);return}if(X.emit("packet",A,H),A.type==="query")X.emit("query",A,H);if(A.type==="response")X.emit("response",A,H)}),N.on("listening",function(){if(!G)G=Z.port=N.address().port;if(W.multicast!==!1)X.update(),Q=setInterval(X.update,5000),N.setMulticastTTL(W.ttl||255),N.setMulticastLoopback(W.loopback!==!1)});var q=xd(function(A){if(!G||W.bind===!1)return A(null);N.once("error",A),N.bind(G,W.bind||W.interface,function(){N.removeListener("error",A),A(null)})});return q(function(A){if(A)return X.emit("error",A);X.emit("ready")}),X.send=function(A,H,I){if(typeof H==="function")return X.send(A,null,H);if(!I)I=YK;if(!H)H=Z;else if(!H.host&&!H.address)H.address=Z.address;q(w);function w(O){if(U)return I();if(O)return I(O);var T=GK.encode(A);N.send(T,0,T.length,H.port,H.address||H.host,I)}},X.response=X.respond=function(A,H,I){if(Array.isArray(A))A={answers:A};A.type="response",A.flags=(A.flags||0)|GK.AUTHORITATIVE_ANSWER,X.send(A,H,I)},X.query=function(A,H,I,w){if(typeof H==="function")return X.query(A,null,null,H);if(typeof H==="object"&&H&&H.port)return X.query(A,null,H,I);if(typeof I==="function")return X.query(A,H,null,I);if(!w)w=YK;if(typeof A==="string")A=[{name:A,type:H||"ANY"}];if(Array.isArray(A))A={type:"query",questions:A};A.type="query",X.send(A,I,w)},X.destroy=function(A){if(!A)A=YK;if(U)return process.nextTick(A);U=!0,clearInterval(Q);for(var H in V)try{N.dropMembership(J,H)}catch(I){}V={},N.close(A)},X.update=function(){var A=W.interface?[].concat(W.interface):yd(),H=!1;for(var I=0;I<A.length;I++){var w=A[I];if(V[w])continue;try{N.addMembership(J,w),V[w]=!0,H=!0}catch(O){X.emit("warning",O)}}if(H){if(N.setMulticastInterface)try{N.setMulticastInterface(W.interface||_d())}catch(O){X.emit("warning",O)}X.emit("networkInterface")}},X};function _d(){var W=JK.networkInterfaces(),X=Object.keys(W);for(var G=0;G<X.length;G++){var Y=W[X[G]];for(var J=0;J<Y.length;J++){var Z=Y[J];if(p$(Z.family)&&!Z.internal){if(JK.platform()==="darwin"&&X[G]==="en0")return Z.address;return"0.0.0.0"}}}return"127.0.0.1"}function yd(){var W=JK.networkInterfaces(),X=Object.keys(W),G=[];for(var Y=0;Y<X.length;Y++){var J=W[X[Y]];for(var Z=0;Z<J.length;Z++){var V=J[Z];if(p$(V.family)){G.push(V.address);break}}}return G}function p$(W){return W===4||W==="IPv4"}});import{Database as $t}from"bun:sqlite";import{mkdirSync as Ft}from"fs";import{dirname as St}from"path";function zD(W){let X=W.length,G=0,Y=0;while(Y<X){let J=W.charCodeAt(Y++);if((J&4294967168)===0){G++;continue}else if((J&4294965248)===0)G+=2;else{if(J>=55296&&J<=56319){if(Y<X){let Z=W.charCodeAt(Y);if((Z&64512)===56320)++Y,J=((J&1023)<<10)+(Z&1023)+65536}}if((J&4294901760)===0)G+=3;else G+=4}}return G}function o_(W,X,G){let Y=W.length,J=G,Z=0;while(Z<Y){let V=W.charCodeAt(Z++);if((V&4294967168)===0){X[J++]=V;continue}else if((V&4294965248)===0)X[J++]=V>>6&31|192;else{if(V>=55296&&V<=56319){if(Z<Y){let U=W.charCodeAt(Z);if((U&64512)===56320)++Z,V=((V&1023)<<10)+(U&1023)+65536}}if((V&4294901760)===0)X[J++]=V>>12&15|224,X[J++]=V>>6&63|128;else X[J++]=V>>18&7|240,X[J++]=V>>12&63|128,X[J++]=V>>6&63|128}X[J++]=V&63|128}}var n_=new TextEncoder,i_=50;function r_(W,X,G){n_.encodeInto(W,X.subarray(G))}function ID(W,X,G){if(W.length>i_)r_(W,X,G);else o_(W,X,G)}var a_=4096;function IA(W,X,G){let Y=X,J=Y+G,Z=[],V="";while(Y<J){let U=W[Y++];if((U&128)===0)Z.push(U);else if((U&224)===192){let Q=W[Y++]&63;Z.push((U&31)<<6|Q)}else if((U&240)===224){let Q=W[Y++]&63,N=W[Y++]&63;Z.push((U&31)<<12|Q<<6|N)}else if((U&248)===240){let Q=W[Y++]&63,N=W[Y++]&63,q=W[Y++]&63,A=(U&7)<<18|Q<<12|N<<6|q;if(A>65535)A-=65536,Z.push(A>>>10&1023|55296),A=56320|A&1023;Z.push(A)}else Z.push(U);if(Z.length>=a_)V+=String.fromCharCode(...Z),Z.length=0}if(Z.length>0)V+=String.fromCharCode(...Z);return V}var s_=new TextDecoder,t_=200;function e_(W,X,G){let Y=W.subarray(X,X+G);return s_.decode(Y)}function wD(W,X,G){if(G>t_)return e_(W,X,G);else return IA(W,X,G)}class cX{type;data;constructor(W,X){this.type=W,this.data=X}}class x9 extends Error{constructor(W){super(W);let X=Object.create(x9.prototype);Object.setPrototypeOf(this,X),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:x9.name})}}var lX=4294967295;function jD(W,X,G){let Y=G/4294967296,J=G;W.setUint32(X,Y),W.setUint32(X+4,J)}function vU(W,X,G){let Y=Math.floor(G/4294967296),J=G;W.setUint32(X,Y),W.setUint32(X+4,J)}function gU(W,X){let G=W.getInt32(X),Y=W.getUint32(X+4);return G*4294967296+Y}function KD(W,X){let G=W.getUint32(X),Y=W.getUint32(X+4);return G*4294967296+Y}var Wy=-1,Xy=4294967295,Gy=17179869183;function Yy({sec:W,nsec:X}){if(W>=0&&X>=0&&W<=Gy)if(X===0&&W<=Xy){let G=new Uint8Array(4);return new DataView(G.buffer).setUint32(0,W),G}else{let G=W/4294967296,Y=W&4294967295,J=new Uint8Array(8),Z=new DataView(J.buffer);return Z.setUint32(0,X<<2|G&3),Z.setUint32(4,Y),J}else{let G=new Uint8Array(12),Y=new DataView(G.buffer);return Y.setUint32(0,X),vU(Y,4,W),G}}function Jy(W){let X=W.getTime(),G=Math.floor(X/1000),Y=(X-G*1000)*1e6,J=Math.floor(Y/1e9);return{sec:G+J,nsec:Y-J*1e9}}function Zy(W){if(W instanceof Date){let X=Jy(W);return Yy(X)}else return null}function Vy(W){let X=new DataView(W.buffer,W.byteOffset,W.byteLength);switch(W.byteLength){case 4:{let G=X.getUint32(0),Y=0;return{sec:G,nsec:0}}case 8:{let G=X.getUint32(0),Y=X.getUint32(4),J=(G&3)*4294967296+Y,Z=G>>>2;return{sec:J,nsec:Z}}case 12:{let G=gU(X,4),Y=X.getUint32(0);return{sec:G,nsec:Y}}default:throw new x9(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${W.length}`)}}function Uy(W){let X=Vy(W);return new Date(X.sec*1000+X.nsec/1e6)}var OD={type:Wy,encode:Zy,decode:Uy};class dX{static defaultCodec=new dX;__brand;builtInEncoders=[];builtInDecoders=[];encoders=[];decoders=[];constructor(){this.register(OD)}register({type:W,encode:X,decode:G}){if(W>=0)this.encoders[W]=X,this.decoders[W]=G;else{let Y=-1-W;this.builtInEncoders[Y]=X,this.builtInDecoders[Y]=G}}tryToEncode(W,X){for(let G=0;G<this.builtInEncoders.length;G++){let Y=this.builtInEncoders[G];if(Y!=null){let J=Y(W,X);if(J!=null){let Z=-1-G;return new cX(Z,J)}}}for(let G=0;G<this.encoders.length;G++){let Y=this.encoders[G];if(Y!=null){let J=Y(W,X);if(J!=null)return new cX(G,J)}}if(W instanceof cX)return W;return null}decode(W,X,G){let Y=X<0?this.builtInDecoders[-1-X]:this.decoders[X];if(Y)return Y(W,X,G);else return new cX(X,W)}}function Qy(W){return W instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&W instanceof SharedArrayBuffer}function QJ(W){if(W instanceof Uint8Array)return W;else if(ArrayBuffer.isView(W))return new Uint8Array(W.buffer,W.byteOffset,W.byteLength);else if(Qy(W))return new Uint8Array(W);else return Uint8Array.from(W)}var Ny=100,qy=2048;class uU{extensionCodec;context;useBigInt64;maxDepth;initialBufferSize;sortKeys;forceFloat32;ignoreUndefined;forceIntegerToFloat;pos;view;bytes;entered=!1;constructor(W){this.extensionCodec=W?.extensionCodec??dX.defaultCodec,this.context=W?.context,this.useBigInt64=W?.useBigInt64??!1,this.maxDepth=W?.maxDepth??Ny,this.initialBufferSize=W?.initialBufferSize??qy,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 uU({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,X){if(X>this.maxDepth)throw Error(`Too deep objects in depth ${X}`);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,X)}ensureBufferSizeToWrite(W){let X=this.pos+W;if(this.view.byteLength<X)this.resizeBuffer(X*2)}resizeBuffer(W){let X=new ArrayBuffer(W),G=new Uint8Array(X),Y=new DataView(X);G.set(this.bytes),this.view=Y,this.bytes=G}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 G=zD(W);this.ensureBufferSizeToWrite(5+G),this.writeStringHeader(G),ID(W,this.bytes,this.pos),this.pos+=G}encodeObject(W,X){let G=this.extensionCodec.tryToEncode(W,this.context);if(G!=null)this.encodeExtension(G);else if(Array.isArray(W))this.encodeArray(W,X);else if(ArrayBuffer.isView(W))this.encodeBinary(W);else if(typeof W==="object")this.encodeMap(W,X);else throw Error(`Unrecognized object: ${Object.prototype.toString.apply(W)}`)}encodeBinary(W){let X=W.byteLength;if(X<256)this.writeU8(196),this.writeU8(X);else if(X<65536)this.writeU8(197),this.writeU16(X);else if(X<4294967296)this.writeU8(198),this.writeU32(X);else throw Error(`Too large binary: ${X}`);let G=QJ(W);this.writeU8a(G)}encodeArray(W,X){let G=W.length;if(G<16)this.writeU8(144+G);else if(G<65536)this.writeU8(220),this.writeU16(G);else if(G<4294967296)this.writeU8(221),this.writeU32(G);else throw Error(`Too large array: ${G}`);for(let Y of W)this.doEncode(Y,X+1)}countWithoutUndefined(W,X){let G=0;for(let Y of X)if(W[Y]!==void 0)G++;return G}encodeMap(W,X){let G=Object.keys(W);if(this.sortKeys)G.sort();let Y=this.ignoreUndefined?this.countWithoutUndefined(W,G):G.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 J of G){let Z=W[J];if(!(this.ignoreUndefined&&Z===void 0))this.encodeString(J),this.doEncode(Z,X+1)}}encodeExtension(W){if(typeof W.data==="function"){let G=W.data(this.pos+6),Y=G.length;if(Y>=4294967296)throw Error(`Too large extension object: ${Y}`);this.writeU8(201),this.writeU32(Y),this.writeI8(W.type),this.writeU8a(G);return}let X=W.data.length;if(X===1)this.writeU8(212);else if(X===2)this.writeU8(213);else if(X===4)this.writeU8(214);else if(X===8)this.writeU8(215);else if(X===16)this.writeU8(216);else if(X<256)this.writeU8(199),this.writeU8(X);else if(X<65536)this.writeU8(200),this.writeU16(X);else if(X<4294967296)this.writeU8(201),this.writeU32(X);else throw Error(`Too large extension object: ${X}`);this.writeI8(W.type),this.writeU8a(W.data)}writeU8(W){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,W),this.pos++}writeU8a(W){let X=W.length;this.ensureBufferSizeToWrite(X),this.bytes.set(W,this.pos),this.pos+=X}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),jD(this.view,this.pos,W),this.pos+=8}writeI64(W){this.ensureBufferSizeToWrite(8),vU(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 hU(W,X){return new uU(X).encodeSharedRef(W)}function bU(W){return`${W<0?"-":""}0x${Math.abs(W).toString(16).padStart(2,"0")}`}var Hy=16,Ay=16;class wA{hit=0;miss=0;caches;maxKeyLength;maxLengthPerKey;constructor(W=Hy,X=Ay){this.maxKeyLength=W,this.maxLengthPerKey=X,this.caches=[];for(let G=0;G<this.maxKeyLength;G++)this.caches.push([])}canBeCached(W){return W>0&&W<=this.maxKeyLength}find(W,X,G){let Y=this.caches[G-1];W:for(let J of Y){let Z=J.bytes;for(let V=0;V<G;V++)if(Z[V]!==W[X+V])continue W;return J.str}return null}store(W,X){let G=this.caches[W.length-1],Y={bytes:W,str:X};if(G.length>=this.maxLengthPerKey)G[Math.random()*G.length|0]=Y;else G.push(Y)}decode(W,X,G){let Y=this.find(W,X,G);if(Y!=null)return this.hit++,Y;this.miss++;let J=IA(W,X,G),Z=Uint8Array.prototype.slice.call(W,X,X+G);return this.store(Z,J),J}}var jA="array",qJ="map_key",CD="map_value",zy=(W)=>{if(typeof W==="string"||typeof W==="number")return W;throw new x9("The type of key must be string or number but "+typeof W)};class TD{stack=[];stackHeadPosition=-1;get length(){return this.stackHeadPosition+1}top(){return this.stack[this.stackHeadPosition]}pushArrayState(W){let X=this.getUninitializedStateFromPool();X.type=jA,X.position=0,X.size=W,X.array=Array(W)}pushMapState(W){let X=this.getUninitializedStateFromPool();X.type=qJ,X.readCount=0,X.size=W,X.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===jA){let G=W;G.size=0,G.array=void 0,G.position=0,G.type=void 0}if(W.type===qJ||W.type===CD){let G=W;G.size=0,G.map=void 0,G.readCount=0,G.type=void 0}this.stackHeadPosition--}reset(){this.stack.length=0,this.stackHeadPosition=-1}}var NJ=-1,KA=new DataView(new ArrayBuffer(0)),Iy=new Uint8Array(KA.buffer);try{KA.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 DD=RangeError("Insufficient data"),wy=new wA;class mU{extensionCodec;context;useBigInt64;rawStrings;maxStrLength;maxBinLength;maxArrayLength;maxMapLength;maxExtLength;keyDecoder;mapKeyConverter;totalPos=0;pos=0;view=KA;bytes=Iy;headByte=NJ;stack=new TD;entered=!1;constructor(W){this.extensionCodec=W?.extensionCodec??dX.defaultCodec,this.context=W?.context,this.useBigInt64=W?.useBigInt64??!1,this.rawStrings=W?.rawStrings??!1,this.maxStrLength=W?.maxStrLength??lX,this.maxBinLength=W?.maxBinLength??lX,this.maxArrayLength=W?.maxArrayLength??lX,this.maxMapLength=W?.maxMapLength??lX,this.maxExtLength=W?.maxExtLength??lX,this.keyDecoder=W?.keyDecoder!==void 0?W.keyDecoder:wy,this.mapKeyConverter=W?.mapKeyConverter??zy}clone(){return new mU({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=NJ,this.stack.reset()}setBuffer(W){let X=QJ(W);this.bytes=X,this.view=new DataView(X.buffer,X.byteOffset,X.byteLength),this.pos=0}appendBuffer(W){if(this.headByte===NJ&&!this.hasRemaining(1))this.setBuffer(W);else{let X=this.bytes.subarray(this.pos),G=QJ(W),Y=new Uint8Array(X.length+G.length);Y.set(X),Y.set(G,X.length),this.setBuffer(Y)}}hasRemaining(W){return this.view.byteLength-this.pos>=W}createExtraByteError(W){let{view:X,pos:G}=this;return RangeError(`Extra ${X.byteLength-G} of ${X.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 X=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return X}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 X=!1,G;for await(let V of W){if(X)throw this.entered=!1,this.createExtraByteError(this.totalPos);this.appendBuffer(V);try{G=this.doDecodeSync(),X=!0}catch(U){if(!(U instanceof RangeError))throw U}this.totalPos+=this.pos}if(X){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return G}let{headByte:Y,pos:J,totalPos:Z}=this;throw RangeError(`Insufficient data in parsing ${bU(Y)} at ${Z} (${J} 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,X){if(this.entered){yield*this.clone().decodeMultiAsync(W,X);return}try{this.entered=!0;let G=X,Y=-1;for await(let J of W){if(X&&Y===0)throw this.createExtraByteError(this.totalPos);if(this.appendBuffer(J),G)Y=this.readArraySize(),G=!1,this.complete();try{while(!0)if(yield this.doDecodeSync(),--Y===0)break}catch(Z){if(!(Z instanceof RangeError))throw Z}this.totalPos+=this.pos}}finally{this.entered=!1}}doDecodeSync(){W:while(!0){let W=this.readHeadByte(),X;if(W>=224)X=W-256;else if(W<192)if(W<128)X=W;else if(W<144){let Y=W-128;if(Y!==0){this.pushMapState(Y),this.complete();continue W}else X={}}else if(W<160){let Y=W-144;if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else X=[]}else{let Y=W-160;X=this.decodeString(Y,0)}else if(W===192)X=null;else if(W===194)X=!1;else if(W===195)X=!0;else if(W===202)X=this.readF32();else if(W===203)X=this.readF64();else if(W===204)X=this.readU8();else if(W===205)X=this.readU16();else if(W===206)X=this.readU32();else if(W===207)if(this.useBigInt64)X=this.readU64AsBigInt();else X=this.readU64();else if(W===208)X=this.readI8();else if(W===209)X=this.readI16();else if(W===210)X=this.readI32();else if(W===211)if(this.useBigInt64)X=this.readI64AsBigInt();else X=this.readI64();else if(W===217){let Y=this.lookU8();X=this.decodeString(Y,1)}else if(W===218){let Y=this.lookU16();X=this.decodeString(Y,2)}else if(W===219){let Y=this.lookU32();X=this.decodeString(Y,4)}else if(W===220){let Y=this.readU16();if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else X=[]}else if(W===221){let Y=this.readU32();if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else X=[]}else if(W===222){let Y=this.readU16();if(Y!==0){this.pushMapState(Y),this.complete();continue W}else X={}}else if(W===223){let Y=this.readU32();if(Y!==0){this.pushMapState(Y),this.complete();continue W}else X={}}else if(W===196){let Y=this.lookU8();X=this.decodeBinary(Y,1)}else if(W===197){let Y=this.lookU16();X=this.decodeBinary(Y,2)}else if(W===198){let Y=this.lookU32();X=this.decodeBinary(Y,4)}else if(W===212)X=this.decodeExtension(1,0);else if(W===213)X=this.decodeExtension(2,0);else if(W===214)X=this.decodeExtension(4,0);else if(W===215)X=this.decodeExtension(8,0);else if(W===216)X=this.decodeExtension(16,0);else if(W===199){let Y=this.lookU8();X=this.decodeExtension(Y,1)}else if(W===200){let Y=this.lookU16();X=this.decodeExtension(Y,2)}else if(W===201){let Y=this.lookU32();X=this.decodeExtension(Y,4)}else throw new x9(`Unrecognized type byte: ${bU(W)}`);this.complete();let G=this.stack;while(G.length>0){let Y=G.top();if(Y.type===jA)if(Y.array[Y.position]=X,Y.position++,Y.position===Y.size)X=Y.array,G.release(Y);else continue W;else if(Y.type===qJ){if(X==="__proto__")throw new x9("The key __proto__ is not allowed");Y.key=this.mapKeyConverter(X),Y.type=CD;continue W}else if(Y.map[Y.key]=X,Y.readCount++,Y.readCount===Y.size)X=Y.map,G.release(Y);else{Y.key=null,Y.type=qJ;continue W}}return X}}readHeadByte(){if(this.headByte===NJ)this.headByte=this.readU8();return this.headByte}complete(){this.headByte=NJ}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 x9(`Unrecognized array type byte: ${bU(W)}`)}}pushMapState(W){if(W>this.maxMapLength)throw new x9(`Max length exceeded: map length (${W}) > maxMapLengthLength (${this.maxMapLength})`);this.stack.pushMapState(W)}pushArrayState(W){if(W>this.maxArrayLength)throw new x9(`Max length exceeded: array length (${W}) > maxArrayLength (${this.maxArrayLength})`);this.stack.pushArrayState(W)}decodeString(W,X){if(!this.rawStrings||this.stateIsMapKey())return this.decodeUtf8String(W,X);return this.decodeBinary(W,X)}decodeUtf8String(W,X){if(W>this.maxStrLength)throw new x9(`Max length exceeded: UTF-8 byte length (${W}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+X+W)throw DD;let G=this.pos+X,Y;if(this.stateIsMapKey()&&this.keyDecoder?.canBeCached(W))Y=this.keyDecoder.decode(this.bytes,G,W);else Y=wD(this.bytes,G,W);return this.pos+=X+W,Y}stateIsMapKey(){if(this.stack.length>0)return this.stack.top().type===qJ;return!1}decodeBinary(W,X){if(W>this.maxBinLength)throw new x9(`Max length exceeded: bin length (${W}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(W+X))throw DD;let G=this.pos+X,Y=this.bytes.subarray(G,G+W);return this.pos+=X+W,Y}decodeExtension(W,X){if(W>this.maxExtLength)throw new x9(`Max length exceeded: ext length (${W}) > maxExtLength (${this.maxExtLength})`);let G=this.view.getInt8(this.pos+X),Y=this.decodeBinary(W,X+1);return this.extensionCodec.decode(Y,G,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=KD(this.view,this.pos);return this.pos+=8,W}readI64(){let W=gU(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 AW(W,X){return new mU(X).decode(W)}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */function sX(W){let X=W.length;while(--X>=0)W[X]=0}var jy=0,VC=1,Ky=2,Oy=3,Dy=258,fA=29,LJ=256,KJ=LJ+1+fA,iX=30,pA=19,UC=2*KJ+1,zW=15,OA=16,Cy=7,cA=256,QC=16,NC=17,qC=18,kA=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]),oU=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]),Ty=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),HC=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),My=512,e7=Array((KJ+2)*2);sX(e7);var IJ=Array(iX*2);sX(IJ);var OJ=Array(My);sX(OJ);var DJ=Array(Dy-Oy+1);sX(DJ);var lA=Array(fA);sX(lA);var nU=Array(iX);sX(nU);function DA(W,X,G,Y,J){this.static_tree=W,this.extra_bits=X,this.extra_base=G,this.elems=Y,this.max_length=J,this.has_stree=W&&W.length}var AC,zC,IC;function CA(W,X){this.dyn_tree=W,this.max_code=0,this.stat_desc=X}var wC=(W)=>{return W<256?OJ[W]:OJ[256+(W>>>7)]},CJ=(W,X)=>{W.pending_buf[W.pending++]=X&255,W.pending_buf[W.pending++]=X>>>8&255},b9=(W,X,G)=>{if(W.bi_valid>OA-G)W.bi_buf|=X<<W.bi_valid&65535,CJ(W,W.bi_buf),W.bi_buf=X>>OA-W.bi_valid,W.bi_valid+=G-OA;else W.bi_buf|=X<<W.bi_valid&65535,W.bi_valid+=G},H7=(W,X,G)=>{b9(W,G[X*2],G[X*2+1])},jC=(W,X)=>{let G=0;do G|=W&1,W>>>=1,G<<=1;while(--X>0);return G>>>1},Py=(W)=>{if(W.bi_valid===16)CJ(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},Ry=(W,X)=>{let{dyn_tree:G,max_code:Y}=X,J=X.stat_desc.static_tree,Z=X.stat_desc.has_stree,V=X.stat_desc.extra_bits,U=X.stat_desc.extra_base,Q=X.stat_desc.max_length,N,q,A,H,I,w,O=0;for(H=0;H<=zW;H++)W.bl_count[H]=0;G[W.heap[W.heap_max]*2+1]=0;for(N=W.heap_max+1;N<UC;N++){if(q=W.heap[N],H=G[G[q*2+1]*2+1]+1,H>Q)H=Q,O++;if(G[q*2+1]=H,q>Y)continue;if(W.bl_count[H]++,I=0,q>=U)I=V[q-U];if(w=G[q*2],W.opt_len+=w*(H+I),Z)W.static_len+=w*(J[q*2+1]+I)}if(O===0)return;do{H=Q-1;while(W.bl_count[H]===0)H--;W.bl_count[H]--,W.bl_count[H+1]+=2,W.bl_count[Q]--,O-=2}while(O>0);for(H=Q;H!==0;H--){q=W.bl_count[H];while(q!==0){if(A=W.heap[--N],A>Y)continue;if(G[A*2+1]!==H)W.opt_len+=(H-G[A*2+1])*G[A*2],G[A*2+1]=H;q--}}},KC=(W,X,G)=>{let Y=Array(zW+1),J=0,Z,V;for(Z=1;Z<=zW;Z++)J=J+G[Z-1]<<1,Y[Z]=J;for(V=0;V<=X;V++){let U=W[V*2+1];if(U===0)continue;W[V*2]=jC(Y[U]++,U)}},Ly=()=>{let W,X,G,Y,J,Z=Array(zW+1);G=0;for(Y=0;Y<fA-1;Y++){lA[Y]=G;for(W=0;W<1<<kA[Y];W++)DJ[G++]=Y}DJ[G-1]=Y,J=0;for(Y=0;Y<16;Y++){nU[Y]=J;for(W=0;W<1<<oU[Y];W++)OJ[J++]=Y}J>>=7;for(;Y<iX;Y++){nU[Y]=J<<7;for(W=0;W<1<<oU[Y]-7;W++)OJ[256+J++]=Y}for(X=0;X<=zW;X++)Z[X]=0;W=0;while(W<=143)e7[W*2+1]=8,W++,Z[8]++;while(W<=255)e7[W*2+1]=9,W++,Z[9]++;while(W<=279)e7[W*2+1]=7,W++,Z[7]++;while(W<=287)e7[W*2+1]=8,W++,Z[8]++;KC(e7,KJ+1,Z);for(W=0;W<iX;W++)IJ[W*2+1]=5,IJ[W*2]=jC(W,5);AC=new DA(e7,kA,LJ+1,KJ,zW),zC=new DA(IJ,oU,0,iX,zW),IC=new DA([],Ty,0,pA,Cy)},OC=(W)=>{let X;for(X=0;X<KJ;X++)W.dyn_ltree[X*2]=0;for(X=0;X<iX;X++)W.dyn_dtree[X*2]=0;for(X=0;X<pA;X++)W.bl_tree[X*2]=0;W.dyn_ltree[cA*2]=1,W.opt_len=W.static_len=0,W.sym_next=W.matches=0},DC=(W)=>{if(W.bi_valid>8)CJ(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},MD=(W,X,G,Y)=>{let J=X*2,Z=G*2;return W[J]<W[Z]||W[J]===W[Z]&&Y[X]<=Y[G]},TA=(W,X,G)=>{let Y=W.heap[G],J=G<<1;while(J<=W.heap_len){if(J<W.heap_len&&MD(X,W.heap[J+1],W.heap[J],W.depth))J++;if(MD(X,Y,W.heap[J],W.depth))break;W.heap[G]=W.heap[J],G=J,J<<=1}W.heap[G]=Y},PD=(W,X,G)=>{let Y,J,Z=0,V,U;if(W.sym_next!==0)do if(Y=W.pending_buf[W.sym_buf+Z++]&255,Y+=(W.pending_buf[W.sym_buf+Z++]&255)<<8,J=W.pending_buf[W.sym_buf+Z++],Y===0)H7(W,J,X);else{if(V=DJ[J],H7(W,V+LJ+1,X),U=kA[V],U!==0)J-=lA[V],b9(W,J,U);if(Y--,V=wC(Y),H7(W,V,G),U=oU[V],U!==0)Y-=nU[V],b9(W,Y,U)}while(Z<W.sym_next);H7(W,cA,X)},_A=(W,X)=>{let G=X.dyn_tree,Y=X.stat_desc.static_tree,J=X.stat_desc.has_stree,Z=X.stat_desc.elems,V,U,Q=-1,N;W.heap_len=0,W.heap_max=UC;for(V=0;V<Z;V++)if(G[V*2]!==0)W.heap[++W.heap_len]=Q=V,W.depth[V]=0;else G[V*2+1]=0;while(W.heap_len<2)if(N=W.heap[++W.heap_len]=Q<2?++Q:0,G[N*2]=1,W.depth[N]=0,W.opt_len--,J)W.static_len-=Y[N*2+1];X.max_code=Q;for(V=W.heap_len>>1;V>=1;V--)TA(W,G,V);N=Z;do V=W.heap[1],W.heap[1]=W.heap[W.heap_len--],TA(W,G,1),U=W.heap[1],W.heap[--W.heap_max]=V,W.heap[--W.heap_max]=U,G[N*2]=G[V*2]+G[U*2],W.depth[N]=(W.depth[V]>=W.depth[U]?W.depth[V]:W.depth[U])+1,G[V*2+1]=G[U*2+1]=N,W.heap[1]=N++,TA(W,G,1);while(W.heap_len>=2);W.heap[--W.heap_max]=W.heap[1],Ry(W,X),KC(G,Q,W.bl_count)},RD=(W,X,G)=>{let Y,J=-1,Z,V=X[1],U=0,Q=7,N=4;if(V===0)Q=138,N=3;X[(G+1)*2+1]=65535;for(Y=0;Y<=G;Y++){if(Z=V,V=X[(Y+1)*2+1],++U<Q&&Z===V)continue;else if(U<N)W.bl_tree[Z*2]+=U;else if(Z!==0){if(Z!==J)W.bl_tree[Z*2]++;W.bl_tree[QC*2]++}else if(U<=10)W.bl_tree[NC*2]++;else W.bl_tree[qC*2]++;if(U=0,J=Z,V===0)Q=138,N=3;else if(Z===V)Q=6,N=3;else Q=7,N=4}},LD=(W,X,G)=>{let Y,J=-1,Z,V=X[1],U=0,Q=7,N=4;if(V===0)Q=138,N=3;for(Y=0;Y<=G;Y++){if(Z=V,V=X[(Y+1)*2+1],++U<Q&&Z===V)continue;else if(U<N)do H7(W,Z,W.bl_tree);while(--U!==0);else if(Z!==0){if(Z!==J)H7(W,Z,W.bl_tree),U--;H7(W,QC,W.bl_tree),b9(W,U-3,2)}else if(U<=10)H7(W,NC,W.bl_tree),b9(W,U-3,3);else H7(W,qC,W.bl_tree),b9(W,U-11,7);if(U=0,J=Z,V===0)Q=138,N=3;else if(Z===V)Q=6,N=3;else Q=7,N=4}},By=(W)=>{let X;RD(W,W.dyn_ltree,W.l_desc.max_code),RD(W,W.dyn_dtree,W.d_desc.max_code),_A(W,W.bl_desc);for(X=pA-1;X>=3;X--)if(W.bl_tree[HC[X]*2+1]!==0)break;return W.opt_len+=3*(X+1)+5+5+4,X},Ey=(W,X,G,Y)=>{let J;b9(W,X-257,5),b9(W,G-1,5),b9(W,Y-4,4);for(J=0;J<Y;J++)b9(W,W.bl_tree[HC[J]*2+1],3);LD(W,W.dyn_ltree,X-1),LD(W,W.dyn_dtree,G-1)},$y=(W)=>{let X=4093624447,G;for(G=0;G<=31;G++,X>>>=1)if(X&1&&W.dyn_ltree[G*2]!==0)return 0;if(W.dyn_ltree[18]!==0||W.dyn_ltree[20]!==0||W.dyn_ltree[26]!==0)return 1;for(G=32;G<LJ;G++)if(W.dyn_ltree[G*2]!==0)return 1;return 0},BD=!1,Fy=(W)=>{if(!BD)Ly(),BD=!0;W.l_desc=new CA(W.dyn_ltree,AC),W.d_desc=new CA(W.dyn_dtree,zC),W.bl_desc=new CA(W.bl_tree,IC),W.bi_buf=0,W.bi_valid=0,OC(W)},CC=(W,X,G,Y)=>{if(b9(W,(jy<<1)+(Y?1:0),3),DC(W),CJ(W,G),CJ(W,~G),G)W.pending_buf.set(W.window.subarray(X,X+G),W.pending);W.pending+=G},Sy=(W)=>{b9(W,VC<<1,3),H7(W,cA,e7),Py(W)},xy=(W,X,G,Y)=>{let J,Z,V=0;if(W.level>0){if(W.strm.data_type===2)W.strm.data_type=$y(W);if(_A(W,W.l_desc),_A(W,W.d_desc),V=By(W),J=W.opt_len+3+7>>>3,Z=W.static_len+3+7>>>3,Z<=J)J=Z}else J=Z=G+5;if(G+4<=J&&X!==-1)CC(W,X,G,Y);else if(W.strategy===4||Z===J)b9(W,(VC<<1)+(Y?1:0),3),PD(W,e7,IJ);else b9(W,(Ky<<1)+(Y?1:0),3),Ey(W,W.l_desc.max_code+1,W.d_desc.max_code+1,V+1),PD(W,W.dyn_ltree,W.dyn_dtree);if(OC(W),Y)DC(W)},ky=(W,X,G)=>{if(W.pending_buf[W.sym_buf+W.sym_next++]=X,W.pending_buf[W.sym_buf+W.sym_next++]=X>>8,W.pending_buf[W.sym_buf+W.sym_next++]=G,X===0)W.dyn_ltree[G*2]++;else W.matches++,X--,W.dyn_ltree[(DJ[G]+LJ+1)*2]++,W.dyn_dtree[wC(X)*2]++;return W.sym_next===W.sym_end},_y=Fy,yy=CC,vy=xy,gy=ky,uy=Sy,hy={_tr_init:_y,_tr_stored_block:yy,_tr_flush_block:vy,_tr_tally:gy,_tr_align:uy},by=(W,X,G,Y)=>{let J=W&65535|0,Z=W>>>16&65535|0,V=0;while(G!==0){V=G>2000?2000:G,G-=V;do J=J+X[Y++]|0,Z=Z+J|0;while(--V);J%=65521,Z%=65521}return J|Z<<16|0},TJ=by,my=()=>{let W,X=[];for(var G=0;G<256;G++){W=G;for(var Y=0;Y<8;Y++)W=W&1?3988292384^W>>>1:W>>>1;X[G]=W}return X},fy=new Uint32Array(my()),py=(W,X,G,Y)=>{let J=fy,Z=Y+G;W^=-1;for(let V=Y;V<Z;V++)W=W>>>8^J[(W^X[V])&255];return W^-1},r8=py,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"},DW={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:cy,_tr_stored_block:yA,_tr_flush_block:ly,_tr_tally:U6,_tr_align:dy}=hy,{Z_NO_FLUSH:Q6,Z_PARTIAL_FLUSH:oy,Z_FULL_FLUSH:ny,Z_FINISH:j5,Z_BLOCK:ED,Z_OK:W9,Z_STREAM_END:$D,Z_STREAM_ERROR:A7,Z_DATA_ERROR:iy,Z_BUF_ERROR:MA,Z_DEFAULT_COMPRESSION:ry,Z_FILTERED:ay,Z_HUFFMAN_ONLY:fU,Z_RLE:sy,Z_FIXED:ty,Z_DEFAULT_STRATEGY:ey,Z_UNKNOWN:Wv,Z_DEFLATED:aU}=DW,Xv=9,Gv=15,Yv=8,Jv=29,Zv=256,vA=Zv+1+Jv,Vv=30,Uv=19,Qv=2*vA+1,Nv=15,f1=3,V6=258,z7=V6+f1+1,qv=32,rX=42,dA=57,gA=69,uA=73,hA=91,bA=103,IW=113,AJ=666,k9=1,tX=2,KW=3,eX=4,Hv=3,wW=(W,X)=>{return W.msg=jW[X],X},FD=(W)=>{return W*2-(W>4?9:0)},Z6=(W)=>{let X=W.length;while(--X>=0)W[X]=0},Av=(W)=>{let X,G,Y,J=W.w_size;X=W.hash_size,Y=X;do G=W.head[--Y],W.head[Y]=G>=J?G-J:0;while(--X);X=J,Y=X;do G=W.prev[--Y],W.prev[Y]=G>=J?G-J:0;while(--X)},zv=(W,X,G)=>(X<<W.hash_shift^G)&W.hash_mask,N6=zv,X5=(W)=>{let X=W.state,G=X.pending;if(G>W.avail_out)G=W.avail_out;if(G===0)return;if(W.output.set(X.pending_buf.subarray(X.pending_out,X.pending_out+G),W.next_out),W.next_out+=G,X.pending_out+=G,W.total_out+=G,W.avail_out-=G,X.pending-=G,X.pending===0)X.pending_out=0},G5=(W,X)=>{ly(W,W.block_start>=0?W.block_start:-1,W.strstart-W.block_start,X),W.block_start=W.strstart,X5(W.strm)},t1=(W,X)=>{W.pending_buf[W.pending++]=X},HJ=(W,X)=>{W.pending_buf[W.pending++]=X>>>8&255,W.pending_buf[W.pending++]=X&255},mA=(W,X,G,Y)=>{let J=W.avail_in;if(J>Y)J=Y;if(J===0)return 0;if(W.avail_in-=J,X.set(W.input.subarray(W.next_in,W.next_in+J),G),W.state.wrap===1)W.adler=TJ(W.adler,X,J,G);else if(W.state.wrap===2)W.adler=r8(W.adler,X,J,G);return W.next_in+=J,W.total_in+=J,J},TC=(W,X)=>{let{max_chain_length:G,strstart:Y}=W,J,Z,V=W.prev_length,U=W.nice_match,Q=W.strstart>W.w_size-z7?W.strstart-(W.w_size-z7):0,N=W.window,q=W.w_mask,A=W.prev,H=W.strstart+V6,I=N[Y+V-1],w=N[Y+V];if(W.prev_length>=W.good_match)G>>=2;if(U>W.lookahead)U=W.lookahead;do{if(J=X,N[J+V]!==w||N[J+V-1]!==I||N[J]!==N[Y]||N[++J]!==N[Y+1])continue;Y+=2,J++;do;while(N[++Y]===N[++J]&&N[++Y]===N[++J]&&N[++Y]===N[++J]&&N[++Y]===N[++J]&&N[++Y]===N[++J]&&N[++Y]===N[++J]&&N[++Y]===N[++J]&&N[++Y]===N[++J]&&Y<H);if(Z=V6-(H-Y),Y=H-V6,Z>V){if(W.match_start=X,V=Z,Z>=U)break;I=N[Y+V-1],w=N[Y+V]}}while((X=A[X&q])>Q&&--G!==0);if(V<=W.lookahead)return V;return W.lookahead},aX=(W)=>{let X=W.w_size,G,Y,J;do{if(Y=W.window_size-W.lookahead-W.strstart,W.strstart>=X+(X-z7)){if(W.window.set(W.window.subarray(X,X+X-Y),0),W.match_start-=X,W.strstart-=X,W.block_start-=X,W.insert>W.strstart)W.insert=W.strstart;Av(W),Y+=X}if(W.strm.avail_in===0)break;if(G=mA(W.strm,W.window,W.strstart+W.lookahead,Y),W.lookahead+=G,W.lookahead+W.insert>=f1){J=W.strstart-W.insert,W.ins_h=W.window[J],W.ins_h=N6(W,W.ins_h,W.window[J+1]);while(W.insert)if(W.ins_h=N6(W,W.ins_h,W.window[J+f1-1]),W.prev[J&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=J,J++,W.insert--,W.lookahead+W.insert<f1)break}}while(W.lookahead<z7&&W.strm.avail_in!==0)},MC=(W,X)=>{let G=W.pending_buf_size-5>W.w_size?W.w_size:W.pending_buf_size-5,Y,J,Z,V=0,U=W.strm.avail_in;do{if(Y=65535,Z=W.bi_valid+42>>3,W.strm.avail_out<Z)break;if(Z=W.strm.avail_out-Z,J=W.strstart-W.block_start,Y>J+W.strm.avail_in)Y=J+W.strm.avail_in;if(Y>Z)Y=Z;if(Y<G&&(Y===0&&X!==j5||X===Q6||Y!==J+W.strm.avail_in))break;if(V=X===j5&&Y===J+W.strm.avail_in?1:0,yA(W,0,0,V),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,X5(W.strm),J){if(J>Y)J=Y;W.strm.output.set(W.window.subarray(W.block_start,W.block_start+J),W.strm.next_out),W.strm.next_out+=J,W.strm.avail_out-=J,W.strm.total_out+=J,W.block_start+=J,Y-=J}if(Y)mA(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(V===0);if(U-=W.strm.avail_in,U){if(U>=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<=U){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-U,W.strm.next_in),W.strstart),W.strstart+=U,W.insert+=U>W.w_size-W.insert?W.w_size-W.insert:U}W.block_start=W.strstart}if(W.high_water<W.strstart)W.high_water=W.strstart;if(V)return eX;if(X!==Q6&&X!==j5&&W.strm.avail_in===0&&W.strstart===W.block_start)return tX;if(Z=W.window_size-W.strstart,W.strm.avail_in>Z&&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(Z+=W.w_size,W.insert>W.strstart)W.insert=W.strstart}if(Z>W.strm.avail_in)Z=W.strm.avail_in;if(Z)mA(W.strm,W.window,W.strstart,Z),W.strstart+=Z,W.insert+=Z>W.w_size-W.insert?W.w_size-W.insert:Z;if(W.high_water<W.strstart)W.high_water=W.strstart;if(Z=W.bi_valid+42>>3,Z=W.pending_buf_size-Z>65535?65535:W.pending_buf_size-Z,G=Z>W.w_size?W.w_size:Z,J=W.strstart-W.block_start,J>=G||(J||X===j5)&&X!==Q6&&W.strm.avail_in===0&&J<=Z)Y=J>Z?Z:J,V=X===j5&&W.strm.avail_in===0&&Y===J?1:0,yA(W,W.block_start,Y,V),W.block_start+=Y,X5(W.strm);return V?KW:k9},PA=(W,X)=>{let G,Y;for(;;){if(W.lookahead<z7){if(aX(W),W.lookahead<z7&&X===Q6)return k9;if(W.lookahead===0)break}if(G=0,W.lookahead>=f1)W.ins_h=N6(W,W.ins_h,W.window[W.strstart+f1-1]),G=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;if(G!==0&&W.strstart-G<=W.w_size-z7)W.match_length=TC(W,G);if(W.match_length>=f1)if(Y=U6(W,W.strstart-W.match_start,W.match_length-f1),W.lookahead-=W.match_length,W.match_length<=W.max_lazy_match&&W.lookahead>=f1){W.match_length--;do W.strstart++,W.ins_h=N6(W,W.ins_h,W.window[W.strstart+f1-1]),G=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=N6(W,W.ins_h,W.window[W.strstart+1]);else Y=U6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++;if(Y){if(G5(W,!1),W.strm.avail_out===0)return k9}}if(W.insert=W.strstart<f1-1?W.strstart:f1-1,X===j5){if(G5(W,!0),W.strm.avail_out===0)return KW;return eX}if(W.sym_next){if(G5(W,!1),W.strm.avail_out===0)return k9}return tX},oX=(W,X)=>{let G,Y,J;for(;;){if(W.lookahead<z7){if(aX(W),W.lookahead<z7&&X===Q6)return k9;if(W.lookahead===0)break}if(G=0,W.lookahead>=f1)W.ins_h=N6(W,W.ins_h,W.window[W.strstart+f1-1]),G=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=f1-1,G!==0&&W.prev_length<W.max_lazy_match&&W.strstart-G<=W.w_size-z7){if(W.match_length=TC(W,G),W.match_length<=5&&(W.strategy===ay||W.match_length===f1&&W.strstart-W.match_start>4096))W.match_length=f1-1}if(W.prev_length>=f1&&W.match_length<=W.prev_length){J=W.strstart+W.lookahead-f1,Y=U6(W,W.strstart-1-W.prev_match,W.prev_length-f1),W.lookahead-=W.prev_length-1,W.prev_length-=2;do if(++W.strstart<=J)W.ins_h=N6(W,W.ins_h,W.window[W.strstart+f1-1]),G=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=f1-1,W.strstart++,Y){if(G5(W,!1),W.strm.avail_out===0)return k9}}else if(W.match_available){if(Y=U6(W,0,W.window[W.strstart-1]),Y)G5(W,!1);if(W.strstart++,W.lookahead--,W.strm.avail_out===0)return k9}else W.match_available=1,W.strstart++,W.lookahead--}if(W.match_available)Y=U6(W,0,W.window[W.strstart-1]),W.match_available=0;if(W.insert=W.strstart<f1-1?W.strstart:f1-1,X===j5){if(G5(W,!0),W.strm.avail_out===0)return KW;return eX}if(W.sym_next){if(G5(W,!1),W.strm.avail_out===0)return k9}return tX},Iv=(W,X)=>{let G,Y,J,Z,V=W.window;for(;;){if(W.lookahead<=V6){if(aX(W),W.lookahead<=V6&&X===Q6)return k9;if(W.lookahead===0)break}if(W.match_length=0,W.lookahead>=f1&&W.strstart>0){if(J=W.strstart-1,Y=V[J],Y===V[++J]&&Y===V[++J]&&Y===V[++J]){Z=W.strstart+V6;do;while(Y===V[++J]&&Y===V[++J]&&Y===V[++J]&&Y===V[++J]&&Y===V[++J]&&Y===V[++J]&&Y===V[++J]&&Y===V[++J]&&J<Z);if(W.match_length=V6-(Z-J),W.match_length>W.lookahead)W.match_length=W.lookahead}}if(W.match_length>=f1)G=U6(W,1,W.match_length-f1),W.lookahead-=W.match_length,W.strstart+=W.match_length,W.match_length=0;else G=U6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++;if(G){if(G5(W,!1),W.strm.avail_out===0)return k9}}if(W.insert=0,X===j5){if(G5(W,!0),W.strm.avail_out===0)return KW;return eX}if(W.sym_next){if(G5(W,!1),W.strm.avail_out===0)return k9}return tX},wv=(W,X)=>{let G;for(;;){if(W.lookahead===0){if(aX(W),W.lookahead===0){if(X===Q6)return k9;break}}if(W.match_length=0,G=U6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++,G){if(G5(W,!1),W.strm.avail_out===0)return k9}}if(W.insert=0,X===j5){if(G5(W,!0),W.strm.avail_out===0)return KW;return eX}if(W.sym_next){if(G5(W,!1),W.strm.avail_out===0)return k9}return tX};function q7(W,X,G,Y,J){this.good_length=W,this.max_lazy=X,this.nice_length=G,this.max_chain=Y,this.func=J}var zJ=[new q7(0,0,0,0,MC),new q7(4,4,8,4,PA),new q7(4,5,16,8,PA),new q7(4,6,32,32,PA),new q7(4,4,16,16,oX),new q7(8,16,32,32,oX),new q7(8,16,128,128,oX),new q7(8,32,128,256,oX),new q7(32,128,258,1024,oX),new q7(32,258,258,4096,oX)],jv=(W)=>{W.window_size=2*W.w_size,Z6(W.head),W.max_lazy_match=zJ[W.level].max_lazy,W.good_match=zJ[W.level].good_length,W.nice_match=zJ[W.level].nice_length,W.max_chain_length=zJ[W.level].max_chain,W.strstart=0,W.block_start=0,W.lookahead=0,W.insert=0,W.match_length=W.prev_length=f1-1,W.match_available=0,W.ins_h=0};function Kv(){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=aU,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(Qv*2),this.dyn_dtree=new Uint16Array((2*Vv+1)*2),this.bl_tree=new Uint16Array((2*Uv+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(Nv+1),this.heap=new Uint16Array(2*vA+1),Z6(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*vA+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 BJ=(W)=>{if(!W)return 1;let X=W.state;if(!X||X.strm!==W||X.status!==rX&&X.status!==dA&&X.status!==gA&&X.status!==uA&&X.status!==hA&&X.status!==bA&&X.status!==IW&&X.status!==AJ)return 1;return 0},PC=(W)=>{if(BJ(W))return wW(W,A7);W.total_in=W.total_out=0,W.data_type=Wv;let X=W.state;if(X.pending=0,X.pending_out=0,X.wrap<0)X.wrap=-X.wrap;return X.status=X.wrap===2?dA:X.wrap?rX:IW,W.adler=X.wrap===2?0:1,X.last_flush=-2,cy(X),W9},RC=(W)=>{let X=PC(W);if(X===W9)jv(W.state);return X},Ov=(W,X)=>{if(BJ(W)||W.state.wrap!==2)return A7;return W.state.gzhead=X,W9},LC=(W,X,G,Y,J,Z)=>{if(!W)return A7;let V=1;if(X===ry)X=6;if(Y<0)V=0,Y=-Y;else if(Y>15)V=2,Y-=16;if(J<1||J>Xv||G!==aU||Y<8||Y>15||X<0||X>9||Z<0||Z>ty||Y===8&&V!==1)return wW(W,A7);if(Y===8)Y=9;let U=new Kv;return W.state=U,U.strm=W,U.status=rX,U.wrap=V,U.gzhead=null,U.w_bits=Y,U.w_size=1<<U.w_bits,U.w_mask=U.w_size-1,U.hash_bits=J+7,U.hash_size=1<<U.hash_bits,U.hash_mask=U.hash_size-1,U.hash_shift=~~((U.hash_bits+f1-1)/f1),U.window=new Uint8Array(U.w_size*2),U.head=new Uint16Array(U.hash_size),U.prev=new Uint16Array(U.w_size),U.lit_bufsize=1<<J+6,U.pending_buf_size=U.lit_bufsize*4,U.pending_buf=new Uint8Array(U.pending_buf_size),U.sym_buf=U.lit_bufsize,U.sym_end=(U.lit_bufsize-1)*3,U.level=X,U.strategy=Z,U.method=G,RC(W)},Dv=(W,X)=>{return LC(W,X,aU,Gv,Yv,ey)},Cv=(W,X)=>{if(BJ(W)||X>ED||X<0)return W?wW(W,A7):A7;let G=W.state;if(!W.output||W.avail_in!==0&&!W.input||G.status===AJ&&X!==j5)return wW(W,W.avail_out===0?MA:A7);let Y=G.last_flush;if(G.last_flush=X,G.pending!==0){if(X5(W),W.avail_out===0)return G.last_flush=-1,W9}else if(W.avail_in===0&&FD(X)<=FD(Y)&&X!==j5)return wW(W,MA);if(G.status===AJ&&W.avail_in!==0)return wW(W,MA);if(G.status===rX&&G.wrap===0)G.status=IW;if(G.status===rX){let J=aU+(G.w_bits-8<<4)<<8,Z=-1;if(G.strategy>=fU||G.level<2)Z=0;else if(G.level<6)Z=1;else if(G.level===6)Z=2;else Z=3;if(J|=Z<<6,G.strstart!==0)J|=qv;if(J+=31-J%31,HJ(G,J),G.strstart!==0)HJ(G,W.adler>>>16),HJ(G,W.adler&65535);if(W.adler=1,G.status=IW,X5(W),G.pending!==0)return G.last_flush=-1,W9}if(G.status===dA)if(W.adler=0,t1(G,31),t1(G,139),t1(G,8),!G.gzhead){if(t1(G,0),t1(G,0),t1(G,0),t1(G,0),t1(G,0),t1(G,G.level===9?2:G.strategy>=fU||G.level<2?4:0),t1(G,Hv),G.status=IW,X5(W),G.pending!==0)return G.last_flush=-1,W9}else{if(t1(G,(G.gzhead.text?1:0)+(G.gzhead.hcrc?2:0)+(!G.gzhead.extra?0:4)+(!G.gzhead.name?0:8)+(!G.gzhead.comment?0:16)),t1(G,G.gzhead.time&255),t1(G,G.gzhead.time>>8&255),t1(G,G.gzhead.time>>16&255),t1(G,G.gzhead.time>>24&255),t1(G,G.level===9?2:G.strategy>=fU||G.level<2?4:0),t1(G,G.gzhead.os&255),G.gzhead.extra&&G.gzhead.extra.length)t1(G,G.gzhead.extra.length&255),t1(G,G.gzhead.extra.length>>8&255);if(G.gzhead.hcrc)W.adler=r8(W.adler,G.pending_buf,G.pending,0);G.gzindex=0,G.status=gA}if(G.status===gA){if(G.gzhead.extra){let J=G.pending,Z=(G.gzhead.extra.length&65535)-G.gzindex;while(G.pending+Z>G.pending_buf_size){let U=G.pending_buf_size-G.pending;if(G.pending_buf.set(G.gzhead.extra.subarray(G.gzindex,G.gzindex+U),G.pending),G.pending=G.pending_buf_size,G.gzhead.hcrc&&G.pending>J)W.adler=r8(W.adler,G.pending_buf,G.pending-J,J);if(G.gzindex+=U,X5(W),G.pending!==0)return G.last_flush=-1,W9;J=0,Z-=U}let V=new Uint8Array(G.gzhead.extra);if(G.pending_buf.set(V.subarray(G.gzindex,G.gzindex+Z),G.pending),G.pending+=Z,G.gzhead.hcrc&&G.pending>J)W.adler=r8(W.adler,G.pending_buf,G.pending-J,J);G.gzindex=0}G.status=uA}if(G.status===uA){if(G.gzhead.name){let J=G.pending,Z;do{if(G.pending===G.pending_buf_size){if(G.gzhead.hcrc&&G.pending>J)W.adler=r8(W.adler,G.pending_buf,G.pending-J,J);if(X5(W),G.pending!==0)return G.last_flush=-1,W9;J=0}if(G.gzindex<G.gzhead.name.length)Z=G.gzhead.name.charCodeAt(G.gzindex++)&255;else Z=0;t1(G,Z)}while(Z!==0);if(G.gzhead.hcrc&&G.pending>J)W.adler=r8(W.adler,G.pending_buf,G.pending-J,J);G.gzindex=0}G.status=hA}if(G.status===hA){if(G.gzhead.comment){let J=G.pending,Z;do{if(G.pending===G.pending_buf_size){if(G.gzhead.hcrc&&G.pending>J)W.adler=r8(W.adler,G.pending_buf,G.pending-J,J);if(X5(W),G.pending!==0)return G.last_flush=-1,W9;J=0}if(G.gzindex<G.gzhead.comment.length)Z=G.gzhead.comment.charCodeAt(G.gzindex++)&255;else Z=0;t1(G,Z)}while(Z!==0);if(G.gzhead.hcrc&&G.pending>J)W.adler=r8(W.adler,G.pending_buf,G.pending-J,J)}G.status=bA}if(G.status===bA){if(G.gzhead.hcrc){if(G.pending+2>G.pending_buf_size){if(X5(W),G.pending!==0)return G.last_flush=-1,W9}t1(G,W.adler&255),t1(G,W.adler>>8&255),W.adler=0}if(G.status=IW,X5(W),G.pending!==0)return G.last_flush=-1,W9}if(W.avail_in!==0||G.lookahead!==0||X!==Q6&&G.status!==AJ){let J=G.level===0?MC(G,X):G.strategy===fU?wv(G,X):G.strategy===sy?Iv(G,X):zJ[G.level].func(G,X);if(J===KW||J===eX)G.status=AJ;if(J===k9||J===KW){if(W.avail_out===0)G.last_flush=-1;return W9}if(J===tX){if(X===oy)dy(G);else if(X!==ED){if(yA(G,0,0,!1),X===ny){if(Z6(G.head),G.lookahead===0)G.strstart=0,G.block_start=0,G.insert=0}}if(X5(W),W.avail_out===0)return G.last_flush=-1,W9}}if(X!==j5)return W9;if(G.wrap<=0)return $D;if(G.wrap===2)t1(G,W.adler&255),t1(G,W.adler>>8&255),t1(G,W.adler>>16&255),t1(G,W.adler>>24&255),t1(G,W.total_in&255),t1(G,W.total_in>>8&255),t1(G,W.total_in>>16&255),t1(G,W.total_in>>24&255);else HJ(G,W.adler>>>16),HJ(G,W.adler&65535);if(X5(W),G.wrap>0)G.wrap=-G.wrap;return G.pending!==0?W9:$D},Tv=(W)=>{if(BJ(W))return A7;let X=W.state.status;return W.state=null,X===IW?wW(W,iy):W9},Mv=(W,X)=>{let G=X.length;if(BJ(W))return A7;let Y=W.state,J=Y.wrap;if(J===2||J===1&&Y.status!==rX||Y.lookahead)return A7;if(J===1)W.adler=TJ(W.adler,X,G,0);if(Y.wrap=0,G>=Y.w_size){if(J===0)Z6(Y.head),Y.strstart=0,Y.block_start=0,Y.insert=0;let Q=new Uint8Array(Y.w_size);Q.set(X.subarray(G-Y.w_size,G),0),X=Q,G=Y.w_size}let{avail_in:Z,next_in:V,input:U}=W;W.avail_in=G,W.next_in=0,W.input=X,aX(Y);while(Y.lookahead>=f1){let Q=Y.strstart,N=Y.lookahead-(f1-1);do Y.ins_h=N6(Y,Y.ins_h,Y.window[Q+f1-1]),Y.prev[Q&Y.w_mask]=Y.head[Y.ins_h],Y.head[Y.ins_h]=Q,Q++;while(--N);Y.strstart=Q,Y.lookahead=f1-1,aX(Y)}return Y.strstart+=Y.lookahead,Y.block_start=Y.strstart,Y.insert=Y.lookahead,Y.lookahead=0,Y.match_length=Y.prev_length=f1-1,Y.match_available=0,W.next_in=V,W.input=U,W.avail_in=Z,Y.wrap=J,W9},Pv=Dv,Rv=LC,Lv=RC,Bv=PC,Ev=Ov,$v=Cv,Fv=Tv,Sv=Mv,xv="pako deflate (from Nodeca project)",wJ={deflateInit:Pv,deflateInit2:Rv,deflateReset:Lv,deflateResetKeep:Bv,deflateSetHeader:Ev,deflate:$v,deflateEnd:Fv,deflateSetDictionary:Sv,deflateInfo:xv},kv=(W,X)=>{return Object.prototype.hasOwnProperty.call(W,X)},_v=function(W){let X=Array.prototype.slice.call(arguments,1);while(X.length){let G=X.shift();if(!G)continue;if(typeof G!=="object")throw TypeError(G+"must be non-object");for(let Y in G)if(kv(G,Y))W[Y]=G[Y]}return W},yv=(W)=>{let X=0;for(let Y=0,J=W.length;Y<J;Y++)X+=W[Y].length;let G=new Uint8Array(X);for(let Y=0,J=0,Z=W.length;Y<Z;Y++){let V=W[Y];G.set(V,J),J+=V.length}return G},sU={assign:_v,flattenChunks:yv},BC=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(W){BC=!1}var MJ=new Uint8Array(256);for(let W=0;W<256;W++)MJ[W]=W>=252?6:W>=248?5:W>=240?4:W>=224?3:W>=192?2:1;MJ[254]=MJ[254]=1;var vv=(W)=>{if(typeof TextEncoder==="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(W);let X,G,Y,J,Z,V=W.length,U=0;for(J=0;J<V;J++){if(G=W.charCodeAt(J),(G&64512)===55296&&J+1<V){if(Y=W.charCodeAt(J+1),(Y&64512)===56320)G=65536+(G-55296<<10)+(Y-56320),J++}U+=G<128?1:G<2048?2:G<65536?3:4}X=new Uint8Array(U);for(Z=0,J=0;Z<U;J++){if(G=W.charCodeAt(J),(G&64512)===55296&&J+1<V){if(Y=W.charCodeAt(J+1),(Y&64512)===56320)G=65536+(G-55296<<10)+(Y-56320),J++}if(G<128)X[Z++]=G;else if(G<2048)X[Z++]=192|G>>>6,X[Z++]=128|G&63;else if(G<65536)X[Z++]=224|G>>>12,X[Z++]=128|G>>>6&63,X[Z++]=128|G&63;else X[Z++]=240|G>>>18,X[Z++]=128|G>>>12&63,X[Z++]=128|G>>>6&63,X[Z++]=128|G&63}return X},gv=(W,X)=>{if(X<65534){if(W.subarray&&BC)return String.fromCharCode.apply(null,W.length===X?W:W.subarray(0,X))}let G="";for(let Y=0;Y<X;Y++)G+=String.fromCharCode(W[Y]);return G},uv=(W,X)=>{let G=X||W.length;if(typeof TextDecoder==="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(W.subarray(0,X));let Y,J,Z=Array(G*2);for(J=0,Y=0;Y<G;){let V=W[Y++];if(V<128){Z[J++]=V;continue}let U=MJ[V];if(U>4){Z[J++]=65533,Y+=U-1;continue}V&=U===2?31:U===3?15:7;while(U>1&&Y<G)V=V<<6|W[Y++]&63,U--;if(U>1){Z[J++]=65533;continue}if(V<65536)Z[J++]=V;else V-=65536,Z[J++]=55296|V>>10&1023,Z[J++]=56320|V&1023}return gv(Z,J)},hv=(W,X)=>{if(X=X||W.length,X>W.length)X=W.length;let G=X-1;while(G>=0&&(W[G]&192)===128)G--;if(G<0)return X;if(G===0)return X;return G+MJ[W[G]]>X?G:X},PJ={string2buf:vv,buf2string:uv,utf8border:hv};function bv(){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 EC=bv,$C=Object.prototype.toString,{Z_NO_FLUSH:mv,Z_SYNC_FLUSH:fv,Z_FULL_FLUSH:pv,Z_FINISH:cv,Z_OK:iU,Z_STREAM_END:lv,Z_DEFAULT_COMPRESSION:dv,Z_DEFAULT_STRATEGY:ov,Z_DEFLATED:nv}=DW;function EJ(W){this.options=sU.assign({level:dv,method:nv,chunkSize:16384,windowBits:15,memLevel:8,strategy:ov},W||{});let X=this.options;if(X.raw&&X.windowBits>0)X.windowBits=-X.windowBits;else if(X.gzip&&X.windowBits>0&&X.windowBits<16)X.windowBits+=16;this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new EC,this.strm.avail_out=0;let G=wJ.deflateInit2(this.strm,X.level,X.method,X.windowBits,X.memLevel,X.strategy);if(G!==iU)throw Error(jW[G]);if(X.header)wJ.deflateSetHeader(this.strm,X.header);if(X.dictionary){let Y;if(typeof X.dictionary==="string")Y=PJ.string2buf(X.dictionary);else if($C.call(X.dictionary)==="[object ArrayBuffer]")Y=new Uint8Array(X.dictionary);else Y=X.dictionary;if(G=wJ.deflateSetDictionary(this.strm,Y),G!==iU)throw Error(jW[G]);this._dict_set=!0}}EJ.prototype.push=function(W,X){let G=this.strm,Y=this.options.chunkSize,J,Z;if(this.ended)return!1;if(X===~~X)Z=X;else Z=X===!0?cv:mv;if(typeof W==="string")G.input=PJ.string2buf(W);else if($C.call(W)==="[object ArrayBuffer]")G.input=new Uint8Array(W);else G.input=W;G.next_in=0,G.avail_in=G.input.length;for(;;){if(G.avail_out===0)G.output=new Uint8Array(Y),G.next_out=0,G.avail_out=Y;if((Z===fv||Z===pv)&&G.avail_out<=6){this.onData(G.output.subarray(0,G.next_out)),G.avail_out=0;continue}if(J=wJ.deflate(G,Z),J===lv){if(G.next_out>0)this.onData(G.output.subarray(0,G.next_out));return J=wJ.deflateEnd(this.strm),this.onEnd(J),this.ended=!0,J===iU}if(G.avail_out===0){this.onData(G.output);continue}if(Z>0&&G.next_out>0){this.onData(G.output.subarray(0,G.next_out)),G.avail_out=0;continue}if(G.avail_in===0)break}return!0};EJ.prototype.onData=function(W){this.chunks.push(W)};EJ.prototype.onEnd=function(W){if(W===iU)this.result=sU.flattenChunks(this.chunks);this.chunks=[],this.err=W,this.msg=this.strm.msg};function oA(W,X){let G=new EJ(X);if(G.push(W,!0),G.err)throw G.msg||jW[G.err];return G.result}function iv(W,X){return X=X||{},X.raw=!0,oA(W,X)}function rv(W,X){return X=X||{},X.gzip=!0,oA(W,X)}var av=EJ,sv=oA,tv=iv,ev=rv,Wg=DW,Xg={Deflate:av,deflate:sv,deflateRaw:tv,gzip:ev,constants:Wg},pU=16209,Gg=16191,Yg=function(X,G){let Y,J,Z,V,U,Q,N,q,A,H,I,w,O,T,x,u,$,S,h,l,p,t,_,e,H0=X.state;Y=X.next_in,_=X.input,J=Y+(X.avail_in-5),Z=X.next_out,e=X.output,V=Z-(G-X.avail_out),U=Z+(X.avail_out-257),Q=H0.dmax,N=H0.wsize,q=H0.whave,A=H0.wnext,H=H0.window,I=H0.hold,w=H0.bits,O=H0.lencode,T=H0.distcode,x=(1<<H0.lenbits)-1,u=(1<<H0.distbits)-1;W:do{if(w<15)I+=_[Y++]<<w,w+=8,I+=_[Y++]<<w,w+=8;$=O[I&x];X:for(;;){if(S=$>>>24,I>>>=S,w-=S,S=$>>>16&255,S===0)e[Z++]=$&65535;else if(S&16){if(h=$&65535,S&=15,S){if(w<S)I+=_[Y++]<<w,w+=8;h+=I&(1<<S)-1,I>>>=S,w-=S}if(w<15)I+=_[Y++]<<w,w+=8,I+=_[Y++]<<w,w+=8;$=T[I&u];G:for(;;){if(S=$>>>24,I>>>=S,w-=S,S=$>>>16&255,S&16){if(l=$&65535,S&=15,w<S){if(I+=_[Y++]<<w,w+=8,w<S)I+=_[Y++]<<w,w+=8}if(l+=I&(1<<S)-1,l>Q){X.msg="invalid distance too far back",H0.mode=pU;break W}if(I>>>=S,w-=S,S=Z-V,l>S){if(S=l-S,S>q){if(H0.sane){X.msg="invalid distance too far back",H0.mode=pU;break W}}if(p=0,t=H,A===0){if(p+=N-S,S<h){h-=S;do e[Z++]=H[p++];while(--S);p=Z-l,t=e}}else if(A<S){if(p+=N+A-S,S-=A,S<h){h-=S;do e[Z++]=H[p++];while(--S);if(p=0,A<h){S=A,h-=S;do e[Z++]=H[p++];while(--S);p=Z-l,t=e}}}else if(p+=A-S,S<h){h-=S;do e[Z++]=H[p++];while(--S);p=Z-l,t=e}while(h>2)e[Z++]=t[p++],e[Z++]=t[p++],e[Z++]=t[p++],h-=3;if(h){if(e[Z++]=t[p++],h>1)e[Z++]=t[p++]}}else{p=Z-l;do e[Z++]=e[p++],e[Z++]=e[p++],e[Z++]=e[p++],h-=3;while(h>2);if(h){if(e[Z++]=e[p++],h>1)e[Z++]=e[p++]}}}else if((S&64)===0){$=T[($&65535)+(I&(1<<S)-1)];continue G}else{X.msg="invalid distance code",H0.mode=pU;break W}break}}else if((S&64)===0){$=O[($&65535)+(I&(1<<S)-1)];continue X}else if(S&32){H0.mode=Gg;break W}else{X.msg="invalid literal/length code",H0.mode=pU;break W}break}}while(Y<J&&Z<U);h=w>>3,Y-=h,w-=h<<3,I&=(1<<w)-1,X.next_in=Y,X.next_out=Z,X.avail_in=Y<J?5+(J-Y):5-(Y-J),X.avail_out=Z<U?257+(U-Z):257-(Z-U),H0.hold=I,H0.bits=w;return},nX=15,SD=852,xD=592,kD=0,RA=1,_D=2,Jg=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]),Zg=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]),Vg=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]),Ug=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]),Qg=(W,X,G,Y,J,Z,V,U)=>{let Q=U.bits,N=0,q=0,A=0,H=0,I=0,w=0,O=0,T=0,x=0,u=0,$,S,h,l,p,t=null,_,e=new Uint16Array(nX+1),H0=new Uint16Array(nX+1),g=null,d,P,E;for(N=0;N<=nX;N++)e[N]=0;for(q=0;q<Y;q++)e[X[G+q]]++;I=Q;for(H=nX;H>=1;H--)if(e[H]!==0)break;if(I>H)I=H;if(H===0)return J[Z++]=20971520,J[Z++]=20971520,U.bits=1,0;for(A=1;A<H;A++)if(e[A]!==0)break;if(I<A)I=A;T=1;for(N=1;N<=nX;N++)if(T<<=1,T-=e[N],T<0)return-1;if(T>0&&(W===kD||H!==1))return-1;H0[1]=0;for(N=1;N<nX;N++)H0[N+1]=H0[N]+e[N];for(q=0;q<Y;q++)if(X[G+q]!==0)V[H0[X[G+q]]++]=q;if(W===kD)t=g=V,_=20;else if(W===RA)t=Jg,g=Zg,_=257;else t=Vg,g=Ug,_=0;if(u=0,q=0,N=A,p=Z,w=I,O=0,h=-1,x=1<<I,l=x-1,W===RA&&x>SD||W===_D&&x>xD)return 1;for(;;){if(d=N-O,V[q]+1<_)P=0,E=V[q];else if(V[q]>=_)P=g[V[q]-_],E=t[V[q]-_];else P=96,E=0;$=1<<N-O,S=1<<w,A=S;do S-=$,J[p+(u>>O)+S]=d<<24|P<<16|E|0;while(S!==0);$=1<<N-1;while(u&$)$>>=1;if($!==0)u&=$-1,u+=$;else u=0;if(q++,--e[N]===0){if(N===H)break;N=X[G+V[q]]}if(N>I&&(u&l)!==h){if(O===0)O=I;p+=A,w=N-O,T=1<<w;while(w+O<H){if(T-=e[w+O],T<=0)break;w++,T<<=1}if(x+=1<<w,W===RA&&x>SD||W===_D&&x>xD)return 1;h=u&l,J[h]=I<<24|w<<16|p-Z|0}}if(u!==0)J[p+u]=N-O<<24|4194304|0;return U.bits=I,0},jJ=Qg,Ng=0,FC=1,SC=2,{Z_FINISH:yD,Z_BLOCK:qg,Z_TREES:cU,Z_OK:OW,Z_STREAM_END:Hg,Z_NEED_DICT:Ag,Z_STREAM_ERROR:K5,Z_DATA_ERROR:xC,Z_MEM_ERROR:kC,Z_BUF_ERROR:zg,Z_DEFLATED:vD}=DW,tU=16180,gD=16181,uD=16182,hD=16183,bD=16184,mD=16185,fD=16186,pD=16187,cD=16188,lD=16189,rU=16190,t7=16191,LA=16192,dD=16193,BA=16194,oD=16195,nD=16196,iD=16197,rD=16198,lU=16199,dU=16200,aD=16201,sD=16202,tD=16203,eD=16204,WC=16205,EA=16206,XC=16207,GC=16208,O8=16209,_C=16210,yC=16211,Ig=852,wg=592,jg=15,Kg=jg,YC=(W)=>{return(W>>>24&255)+(W>>>8&65280)+((W&65280)<<8)+((W&255)<<24)};function Og(){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 CW=(W)=>{if(!W)return 1;let X=W.state;if(!X||X.strm!==W||X.mode<tU||X.mode>yC)return 1;return 0},vC=(W)=>{if(CW(W))return K5;let X=W.state;if(W.total_in=W.total_out=X.total=0,W.msg="",X.wrap)W.adler=X.wrap&1;return X.mode=tU,X.last=0,X.havedict=0,X.flags=-1,X.dmax=32768,X.head=null,X.hold=0,X.bits=0,X.lencode=X.lendyn=new Int32Array(Ig),X.distcode=X.distdyn=new Int32Array(wg),X.sane=1,X.back=-1,OW},gC=(W)=>{if(CW(W))return K5;let X=W.state;return X.wsize=0,X.whave=0,X.wnext=0,vC(W)},uC=(W,X)=>{let G;if(CW(W))return K5;let Y=W.state;if(X<0)G=0,X=-X;else if(G=(X>>4)+5,X<48)X&=15;if(X&&(X<8||X>15))return K5;if(Y.window!==null&&Y.wbits!==X)Y.window=null;return Y.wrap=G,Y.wbits=X,gC(W)},hC=(W,X)=>{if(!W)return K5;let G=new Og;W.state=G,G.strm=W,G.window=null,G.mode=tU;let Y=uC(W,X);if(Y!==OW)W.state=null;return Y},Dg=(W)=>{return hC(W,Kg)},JC=!0,$A,FA,Cg=(W)=>{if(JC){$A=new Int32Array(512),FA=new Int32Array(32);let X=0;while(X<144)W.lens[X++]=8;while(X<256)W.lens[X++]=9;while(X<280)W.lens[X++]=7;while(X<288)W.lens[X++]=8;jJ(FC,W.lens,0,288,$A,0,W.work,{bits:9}),X=0;while(X<32)W.lens[X++]=5;jJ(SC,W.lens,0,32,FA,0,W.work,{bits:5}),JC=!1}W.lencode=$A,W.lenbits=9,W.distcode=FA,W.distbits=5},bC=(W,X,G,Y)=>{let J,Z=W.state;if(Z.window===null)Z.wsize=1<<Z.wbits,Z.wnext=0,Z.whave=0,Z.window=new Uint8Array(Z.wsize);if(Y>=Z.wsize)Z.window.set(X.subarray(G-Z.wsize,G),0),Z.wnext=0,Z.whave=Z.wsize;else{if(J=Z.wsize-Z.wnext,J>Y)J=Y;if(Z.window.set(X.subarray(G-Y,G-Y+J),Z.wnext),Y-=J,Y)Z.window.set(X.subarray(G-Y,G),0),Z.wnext=Y,Z.whave=Z.wsize;else{if(Z.wnext+=J,Z.wnext===Z.wsize)Z.wnext=0;if(Z.whave<Z.wsize)Z.whave+=J}}return 0},Tg=(W,X)=>{let G,Y,J,Z,V,U,Q,N,q,A,H,I,w,O,T=0,x,u,$,S,h,l,p,t,_=new Uint8Array(4),e,H0,g=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(CW(W)||!W.output||!W.input&&W.avail_in!==0)return K5;if(G=W.state,G.mode===t7)G.mode=LA;V=W.next_out,J=W.output,Q=W.avail_out,Z=W.next_in,Y=W.input,U=W.avail_in,N=G.hold,q=G.bits,A=U,H=Q,t=OW;W:for(;;)switch(G.mode){case tU:if(G.wrap===0){G.mode=LA;break}while(q<16){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(G.wrap&2&&N===35615){if(G.wbits===0)G.wbits=15;G.check=0,_[0]=N&255,_[1]=N>>>8&255,G.check=r8(G.check,_,2,0),N=0,q=0,G.mode=gD;break}if(G.head)G.head.done=!1;if(!(G.wrap&1)||(((N&255)<<8)+(N>>8))%31){W.msg="incorrect header check",G.mode=O8;break}if((N&15)!==vD){W.msg="unknown compression method",G.mode=O8;break}if(N>>>=4,q-=4,p=(N&15)+8,G.wbits===0)G.wbits=p;if(p>15||p>G.wbits){W.msg="invalid window size",G.mode=O8;break}G.dmax=1<<G.wbits,G.flags=0,W.adler=G.check=1,G.mode=N&512?lD:t7,N=0,q=0;break;case gD:while(q<16){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(G.flags=N,(G.flags&255)!==vD){W.msg="unknown compression method",G.mode=O8;break}if(G.flags&57344){W.msg="unknown header flags set",G.mode=O8;break}if(G.head)G.head.text=N>>8&1;if(G.flags&512&&G.wrap&4)_[0]=N&255,_[1]=N>>>8&255,G.check=r8(G.check,_,2,0);N=0,q=0,G.mode=uD;case uD:while(q<32){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(G.head)G.head.time=N;if(G.flags&512&&G.wrap&4)_[0]=N&255,_[1]=N>>>8&255,_[2]=N>>>16&255,_[3]=N>>>24&255,G.check=r8(G.check,_,4,0);N=0,q=0,G.mode=hD;case hD:while(q<16){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(G.head)G.head.xflags=N&255,G.head.os=N>>8;if(G.flags&512&&G.wrap&4)_[0]=N&255,_[1]=N>>>8&255,G.check=r8(G.check,_,2,0);N=0,q=0,G.mode=bD;case bD:if(G.flags&1024){while(q<16){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(G.length=N,G.head)G.head.extra_len=N;if(G.flags&512&&G.wrap&4)_[0]=N&255,_[1]=N>>>8&255,G.check=r8(G.check,_,2,0);N=0,q=0}else if(G.head)G.head.extra=null;G.mode=mD;case mD:if(G.flags&1024){if(I=G.length,I>U)I=U;if(I){if(G.head){if(p=G.head.extra_len-G.length,!G.head.extra)G.head.extra=new Uint8Array(G.head.extra_len);G.head.extra.set(Y.subarray(Z,Z+I),p)}if(G.flags&512&&G.wrap&4)G.check=r8(G.check,Y,I,Z);U-=I,Z+=I,G.length-=I}if(G.length)break W}G.length=0,G.mode=fD;case fD:if(G.flags&2048){if(U===0)break W;I=0;do if(p=Y[Z+I++],G.head&&p&&G.length<65536)G.head.name+=String.fromCharCode(p);while(p&&I<U);if(G.flags&512&&G.wrap&4)G.check=r8(G.check,Y,I,Z);if(U-=I,Z+=I,p)break W}else if(G.head)G.head.name=null;G.length=0,G.mode=pD;case pD:if(G.flags&4096){if(U===0)break W;I=0;do if(p=Y[Z+I++],G.head&&p&&G.length<65536)G.head.comment+=String.fromCharCode(p);while(p&&I<U);if(G.flags&512&&G.wrap&4)G.check=r8(G.check,Y,I,Z);if(U-=I,Z+=I,p)break W}else if(G.head)G.head.comment=null;G.mode=cD;case cD:if(G.flags&512){while(q<16){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(G.wrap&4&&N!==(G.check&65535)){W.msg="header crc mismatch",G.mode=O8;break}N=0,q=0}if(G.head)G.head.hcrc=G.flags>>9&1,G.head.done=!0;W.adler=G.check=0,G.mode=t7;break;case lD:while(q<32){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}W.adler=G.check=YC(N),N=0,q=0,G.mode=rU;case rU:if(G.havedict===0)return W.next_out=V,W.avail_out=Q,W.next_in=Z,W.avail_in=U,G.hold=N,G.bits=q,Ag;W.adler=G.check=1,G.mode=t7;case t7:if(X===qg||X===cU)break W;case LA:if(G.last){N>>>=q&7,q-=q&7,G.mode=EA;break}while(q<3){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}switch(G.last=N&1,N>>>=1,q-=1,N&3){case 0:G.mode=dD;break;case 1:if(Cg(G),G.mode=lU,X===cU){N>>>=2,q-=2;break W}break;case 2:G.mode=nD;break;case 3:W.msg="invalid block type",G.mode=O8}N>>>=2,q-=2;break;case dD:N>>>=q&7,q-=q&7;while(q<32){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if((N&65535)!==(N>>>16^65535)){W.msg="invalid stored block lengths",G.mode=O8;break}if(G.length=N&65535,N=0,q=0,G.mode=BA,X===cU)break W;case BA:G.mode=oD;case oD:if(I=G.length,I){if(I>U)I=U;if(I>Q)I=Q;if(I===0)break W;J.set(Y.subarray(Z,Z+I),V),U-=I,Z+=I,Q-=I,V+=I,G.length-=I;break}G.mode=t7;break;case nD:while(q<14){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(G.nlen=(N&31)+257,N>>>=5,q-=5,G.ndist=(N&31)+1,N>>>=5,q-=5,G.ncode=(N&15)+4,N>>>=4,q-=4,G.nlen>286||G.ndist>30){W.msg="too many length or distance symbols",G.mode=O8;break}G.have=0,G.mode=iD;case iD:while(G.have<G.ncode){while(q<3){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}G.lens[g[G.have++]]=N&7,N>>>=3,q-=3}while(G.have<19)G.lens[g[G.have++]]=0;if(G.lencode=G.lendyn,G.lenbits=7,e={bits:G.lenbits},t=jJ(Ng,G.lens,0,19,G.lencode,0,G.work,e),G.lenbits=e.bits,t){W.msg="invalid code lengths set",G.mode=O8;break}G.have=0,G.mode=rD;case rD:while(G.have<G.nlen+G.ndist){for(;;){if(T=G.lencode[N&(1<<G.lenbits)-1],x=T>>>24,u=T>>>16&255,$=T&65535,x<=q)break;if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if($<16)N>>>=x,q-=x,G.lens[G.have++]=$;else{if($===16){H0=x+2;while(q<H0){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(N>>>=x,q-=x,G.have===0){W.msg="invalid bit length repeat",G.mode=O8;break}p=G.lens[G.have-1],I=3+(N&3),N>>>=2,q-=2}else if($===17){H0=x+3;while(q<H0){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}N>>>=x,q-=x,p=0,I=3+(N&7),N>>>=3,q-=3}else{H0=x+7;while(q<H0){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}N>>>=x,q-=x,p=0,I=11+(N&127),N>>>=7,q-=7}if(G.have+I>G.nlen+G.ndist){W.msg="invalid bit length repeat",G.mode=O8;break}while(I--)G.lens[G.have++]=p}}if(G.mode===O8)break;if(G.lens[256]===0){W.msg="invalid code -- missing end-of-block",G.mode=O8;break}if(G.lenbits=9,e={bits:G.lenbits},t=jJ(FC,G.lens,0,G.nlen,G.lencode,0,G.work,e),G.lenbits=e.bits,t){W.msg="invalid literal/lengths set",G.mode=O8;break}if(G.distbits=6,G.distcode=G.distdyn,e={bits:G.distbits},t=jJ(SC,G.lens,G.nlen,G.ndist,G.distcode,0,G.work,e),G.distbits=e.bits,t){W.msg="invalid distances set",G.mode=O8;break}if(G.mode=lU,X===cU)break W;case lU:G.mode=dU;case dU:if(U>=6&&Q>=258){if(W.next_out=V,W.avail_out=Q,W.next_in=Z,W.avail_in=U,G.hold=N,G.bits=q,Yg(W,H),V=W.next_out,J=W.output,Q=W.avail_out,Z=W.next_in,Y=W.input,U=W.avail_in,N=G.hold,q=G.bits,G.mode===t7)G.back=-1;break}G.back=0;for(;;){if(T=G.lencode[N&(1<<G.lenbits)-1],x=T>>>24,u=T>>>16&255,$=T&65535,x<=q)break;if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(u&&(u&240)===0){S=x,h=u,l=$;for(;;){if(T=G.lencode[l+((N&(1<<S+h)-1)>>S)],x=T>>>24,u=T>>>16&255,$=T&65535,S+x<=q)break;if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}N>>>=S,q-=S,G.back+=S}if(N>>>=x,q-=x,G.back+=x,G.length=$,u===0){G.mode=WC;break}if(u&32){G.back=-1,G.mode=t7;break}if(u&64){W.msg="invalid literal/length code",G.mode=O8;break}G.extra=u&15,G.mode=aD;case aD:if(G.extra){H0=G.extra;while(q<H0){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}G.length+=N&(1<<G.extra)-1,N>>>=G.extra,q-=G.extra,G.back+=G.extra}G.was=G.length,G.mode=sD;case sD:for(;;){if(T=G.distcode[N&(1<<G.distbits)-1],x=T>>>24,u=T>>>16&255,$=T&65535,x<=q)break;if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if((u&240)===0){S=x,h=u,l=$;for(;;){if(T=G.distcode[l+((N&(1<<S+h)-1)>>S)],x=T>>>24,u=T>>>16&255,$=T&65535,S+x<=q)break;if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}N>>>=S,q-=S,G.back+=S}if(N>>>=x,q-=x,G.back+=x,u&64){W.msg="invalid distance code",G.mode=O8;break}G.offset=$,G.extra=u&15,G.mode=tD;case tD:if(G.extra){H0=G.extra;while(q<H0){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}G.offset+=N&(1<<G.extra)-1,N>>>=G.extra,q-=G.extra,G.back+=G.extra}if(G.offset>G.dmax){W.msg="invalid distance too far back",G.mode=O8;break}G.mode=eD;case eD:if(Q===0)break W;if(I=H-Q,G.offset>I){if(I=G.offset-I,I>G.whave){if(G.sane){W.msg="invalid distance too far back",G.mode=O8;break}}if(I>G.wnext)I-=G.wnext,w=G.wsize-I;else w=G.wnext-I;if(I>G.length)I=G.length;O=G.window}else O=J,w=V-G.offset,I=G.length;if(I>Q)I=Q;Q-=I,G.length-=I;do J[V++]=O[w++];while(--I);if(G.length===0)G.mode=dU;break;case WC:if(Q===0)break W;J[V++]=G.length,Q--,G.mode=dU;break;case EA:if(G.wrap){while(q<32){if(U===0)break W;U--,N|=Y[Z++]<<q,q+=8}if(H-=Q,W.total_out+=H,G.total+=H,G.wrap&4&&H)W.adler=G.check=G.flags?r8(G.check,J,H,V-H):TJ(G.check,J,H,V-H);if(H=Q,G.wrap&4&&(G.flags?N:YC(N))!==G.check){W.msg="incorrect data check",G.mode=O8;break}N=0,q=0}G.mode=XC;case XC:if(G.wrap&&G.flags){while(q<32){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(G.wrap&4&&N!==(G.total&4294967295)){W.msg="incorrect length check",G.mode=O8;break}N=0,q=0}G.mode=GC;case GC:t=Hg;break W;case O8:t=xC;break W;case _C:return kC;case yC:default:return K5}if(W.next_out=V,W.avail_out=Q,W.next_in=Z,W.avail_in=U,G.hold=N,G.bits=q,G.wsize||H!==W.avail_out&&G.mode<O8&&(G.mode<EA||X!==yD)){if(bC(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,G.total+=H,G.wrap&4&&H)W.adler=G.check=G.flags?r8(G.check,J,H,W.next_out-H):TJ(G.check,J,H,W.next_out-H);if(W.data_type=G.bits+(G.last?64:0)+(G.mode===t7?128:0)+(G.mode===lU||G.mode===BA?256:0),(A===0&&H===0||X===yD)&&t===OW)t=zg;return t},Mg=(W)=>{if(CW(W))return K5;let X=W.state;if(X.window)X.window=null;return W.state=null,OW},Pg=(W,X)=>{if(CW(W))return K5;let G=W.state;if((G.wrap&2)===0)return K5;return G.head=X,X.done=!1,OW},Rg=(W,X)=>{let G=X.length,Y,J,Z;if(CW(W))return K5;if(Y=W.state,Y.wrap!==0&&Y.mode!==rU)return K5;if(Y.mode===rU){if(J=1,J=TJ(J,X,G,0),J!==Y.check)return xC}if(Z=bC(W,X,G,G),Z)return Y.mode=_C,kC;return Y.havedict=1,OW},Lg=gC,Bg=uC,Eg=vC,$g=Dg,Fg=hC,Sg=Tg,xg=Mg,kg=Pg,_g=Rg,yg="pako inflate (from Nodeca project)",W4={inflateReset:Lg,inflateReset2:Bg,inflateResetKeep:Eg,inflateInit:$g,inflateInit2:Fg,inflate:Sg,inflateEnd:xg,inflateGetHeader:kg,inflateSetDictionary:_g,inflateInfo:yg};function vg(){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 gg=vg,mC=Object.prototype.toString,{Z_NO_FLUSH:ug,Z_FINISH:hg,Z_OK:RJ,Z_STREAM_END:SA,Z_NEED_DICT:xA,Z_STREAM_ERROR:bg,Z_DATA_ERROR:ZC,Z_MEM_ERROR:mg}=DW;function $J(W){this.options=sU.assign({chunkSize:65536,windowBits:15,to:""},W||{});let X=this.options;if(X.raw&&X.windowBits>=0&&X.windowBits<16){if(X.windowBits=-X.windowBits,X.windowBits===0)X.windowBits=-15}if(X.windowBits>=0&&X.windowBits<16&&!(W&&W.windowBits))X.windowBits+=32;if(X.windowBits>15&&X.windowBits<48){if((X.windowBits&15)===0)X.windowBits|=15}this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new EC,this.strm.avail_out=0;let G=W4.inflateInit2(this.strm,X.windowBits);if(G!==RJ)throw Error(jW[G]);if(this.header=new gg,W4.inflateGetHeader(this.strm,this.header),X.dictionary){if(typeof X.dictionary==="string")X.dictionary=PJ.string2buf(X.dictionary);else if(mC.call(X.dictionary)==="[object ArrayBuffer]")X.dictionary=new Uint8Array(X.dictionary);if(X.raw){if(G=W4.inflateSetDictionary(this.strm,X.dictionary),G!==RJ)throw Error(jW[G])}}}$J.prototype.push=function(W,X){let G=this.strm,Y=this.options.chunkSize,J=this.options.dictionary,Z,V,U;if(this.ended)return!1;if(X===~~X)V=X;else V=X===!0?hg:ug;if(mC.call(W)==="[object ArrayBuffer]")G.input=new Uint8Array(W);else G.input=W;G.next_in=0,G.avail_in=G.input.length;for(;;){if(G.avail_out===0)G.output=new Uint8Array(Y),G.next_out=0,G.avail_out=Y;if(Z=W4.inflate(G,V),Z===xA&&J){if(Z=W4.inflateSetDictionary(G,J),Z===RJ)Z=W4.inflate(G,V);else if(Z===ZC)Z=xA}while(G.avail_in>0&&Z===SA&&G.state.wrap>0&&W[G.next_in]!==0)W4.inflateReset(G),Z=W4.inflate(G,V);switch(Z){case bg:case ZC:case xA:case mg:return this.onEnd(Z),this.ended=!0,!1}if(U=G.avail_out,G.next_out){if(G.avail_out===0||Z===SA)if(this.options.to==="string"){let Q=PJ.utf8border(G.output,G.next_out),N=G.next_out-Q,q=PJ.buf2string(G.output,Q);if(G.next_out=N,G.avail_out=Y-N,N)G.output.set(G.output.subarray(Q,Q+N),0);this.onData(q)}else this.onData(G.output.length===G.next_out?G.output:G.output.subarray(0,G.next_out))}if(Z===RJ&&U===0)continue;if(Z===SA)return Z=W4.inflateEnd(this.strm),this.onEnd(Z),this.ended=!0,!0;if(G.avail_in===0)break}return!0};$J.prototype.onData=function(W){this.chunks.push(W)};$J.prototype.onEnd=function(W){if(W===RJ)if(this.options.to==="string")this.result=this.chunks.join("");else this.result=sU.flattenChunks(this.chunks);this.chunks=[],this.err=W,this.msg=this.strm.msg};function nA(W,X){let G=new $J(X);if(G.push(W),G.err)throw G.msg||jW[G.err];return G.result}function fg(W,X){return X=X||{},X.raw=!0,nA(W,X)}var pg=$J,cg=nA,lg=fg,dg=nA,og=DW,ng={Inflate:pg,inflate:cg,inflateRaw:lg,ungzip:dg,constants:og},{Deflate:ig,deflate:rg,deflateRaw:ag,gzip:sg}=Xg,{Inflate:tg,inflate:eg,inflateRaw:Wu,ungzip:Xu}=ng,Gu=ig,Yu=rg,Ju=ag,Zu=sg,Vu=tg,Uu=eg,Qu=Wu,Nu=Xu,qu=DW,WG={Deflate:Gu,deflate:Yu,deflateRaw:Ju,gzip:Zu,Inflate:Vu,inflate:Uu,inflateRaw:Qu,ungzip:Nu,constants:qu};function fC(){let W=Date.now(),X=0;return{now(){return W=Math.max(W,Date.now()),X++,{physical:W,logical:X}},update(G){if(!G||typeof G.physical!=="number"||typeof G.logical!=="number")return;W=Math.max(W,G.physical),X=Math.max(X,G.logical)+1},compare(G,Y){if(!G&&!Y)return 0;if(!G)return-1;if(!Y)return 1;if(G.physical!==Y.physical)return G.physical>Y.physical?1:-1;if(G.logical!==Y.logical)return G.logical>Y.logical?1:-1;return 0}}}function pC(W,X,G){let Y=X.timestamp;if(Y?.physical>Date.now()+7200000)Y={physical:Date.now()+7200000,logical:Y.logical};if(X?.value?.priority===!0&&typeof X.id==="string"&&X.id.startsWith("user:")&&"role"in X.value){let{priority:Z,...V}=X.value;return{resolved:!0,value:V,timestamp:Y}}if(X?.value?.priority!==void 0){let{priority:Z,...V}=X.value;X={...X,value:V}}if(!W?.timestamp)return{resolved:!0,value:X.value,timestamp:Y};let J=G.compare(Y,W.timestamp);if(J<0)return{resolved:!1};if(J===0&&JSON.stringify(X.value)<=JSON.stringify(W.value))return{resolved:!1};return{resolved:!0,value:X.value,timestamp:Y}}var FJ={$eq:(W,X)=>W===X,$ne:(W,X)=>W!==X,$gt:(W,X)=>W>X,$gte:(W,X)=>W>=X,$lt:(W,X)=>W<X,$lte:(W,X)=>W<=X,$in:(W,X)=>Array.isArray(X)&&(Array.isArray(W)?W.some((G)=>X.includes(G)):X.includes(W)),$between:(W,[X,G])=>W>=X&&W<=G,$exists:(W,X)=>X?W!==void 0:W===void 0,$startsWith:(W,X)=>typeof W==="string"&&W.startsWith(X),$endsWith:(W,X)=>typeof W==="string"&&W.endsWith(X),$contains:(W,X)=>typeof W==="string"&&W.includes(X),$text:{global:(W,X)=>{let G=(J)=>String(J).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),Y=G(X);return Object.values(W).some((J)=>typeof J==="object"?null.fieldSearch(J,Y):G(J).includes(Y))},field:(W,X)=>{let G=(J)=>String(J).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),Y=G(X);return Array.isArray(W)?W.some((J)=>G(J).includes(Y)):G(W).includes(Y)}},$like:(W,X)=>typeof W==="string"&&typeof X==="string"&&new RegExp(`^${X.replace(/%/g,".*").replace(/_/g,".")}$`,"i").test(W),$regex:(W,X)=>typeof W==="string"&&new RegExp(X.$regex||X,"i").test(W),$and:(W,X,G)=>X.every((Y)=>G.createFilter(Y,G.allNodes)(W)),$or:(W,X,G)=>X.some((Y)=>G.createFilter(Y,G.allNodes)(W)),$not:(W,X,G)=>!G.createFilter(X,G.allNodes)(W),$edge:(W,X,G)=>{if(!W.edges?.length||typeof X!=="object"||X===null)return!1;let Y=G.createFilter(X,G.allNodes),J=[...W.edges],Z=new Set(J).add(W.id),V=[];while(J.length){let U=J.shift(),Q=G.allNodes[U];if(!Q)continue;if(Y(Q))V.push(Q);Q.edges?.forEach((N)=>!Z.has(N)&&Z.add(N)&&J.push(N))}if(V.length)W._edgeResult=V;return V.length>0}},eU=(W,X)=>X.split(".").reduce((G,Y)=>G&&typeof G==="object"&&(Y in G)?G[Y]:void 0,W),WQ=(W,X)=>{if(Object.keys(W).length===0)return()=>!0;return(G)=>Object.entries(W).every(([Y,J])=>{if(Y.startsWith("$"))return FJ[Y](G,J,{createFilter:WQ,allNodes:X});let Z=eU(G.value,Y);if(Z===void 0)Z=eU(G,Y);if(J instanceof RegExp)return J.test(String(Z));if(typeof J!=="object"||J===null)return FJ.$eq(Z,J);return Object.entries(J).every(([V,U])=>{if(V==="$text")return FJ.$text.field(Z,U);if(V==="$between"&&U.every((Q)=>Q instanceof Date))return FJ.$between(new Date(Z),U);return FJ[V]?.(Z,U,{createFilter:WQ,allNodes:X})??!1})})},iA=(W,X)=>{let{$edge:G,...Y}=X.query||{},J=WQ(Y,W),Z=Object.values(W).filter(J),U=[...G?(()=>{let Q=WQ({$edge:G},W);Z.forEach((q)=>Q(q));let N=new Map;return Z.forEach((q)=>{if(q._edgeResult)q._edgeResult.forEach((A)=>N.set(A.id,A)),delete q._edgeResult}),Array.from(N.values())})():Z];if(X.field){let Q=X.order==="asc"?1:-1;U.sort((N,q)=>{let A=eU(N.value,X.field),H=eU(q.value,X.field);if(typeof A==="string"&&typeof H==="string")return A.localeCompare(H)*Q;return((A??0)-(H??0))*Q})}if(X.$after){let Q=U.findIndex((N)=>N.id===X.$after);U=Q>=0?U.slice(Q+1):[]}if(X.$before){let Q=U.findIndex((N)=>N.id===X.$before);U=Q>=0?U.slice(0,Q):[]}if(X.$limit)U=U.slice(0,X.$limit);return U};var JG=(()=>{let W=()=>{};return new Proxy(console,{get:(X,G)=>globalThis.__gdbDebug?X[G].bind(X):W})})(),XG=typeof globalThis==="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function PQ(W){return W instanceof Uint8Array||ArrayBuffer.isView(W)&&W.constructor.name==="Uint8Array"}function Vz(W){if(!Number.isSafeInteger(W)||W<0)throw Error("positive integer expected, got "+W)}function LW(W,...X){if(!PQ(W))throw Error("Uint8Array expected");if(X.length>0&&!X.includes(W.length))throw Error("Uint8Array expected of length "+X+", got length="+W.length)}function NT(W){if(typeof W!=="function"||typeof W.create!=="function")throw Error("Hash should be wrapped by utils.createHasher");Vz(W.outputLen),Vz(W.blockLen)}function AQ(W,X=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(X&&W.finished)throw Error("Hash#digest() has already been called")}function Hu(W,X){LW(W);let G=X.outputLen;if(W.length<G)throw Error("digestInto() expects output buffer of length at least "+G)}function zQ(...W){for(let X=0;X<W.length;X++)W[X].fill(0)}function rA(W){return new DataView(W.buffer,W.byteOffset,W.byteLength)}function I7(W,X){return W<<32-X|W>>>X}var qT=(()=>typeof Uint8Array.from([]).toHex==="function"&&typeof Uint8Array.fromHex==="function")(),Au=Array.from({length:256},(W,X)=>X.toString(16).padStart(2,"0"));function ZG(W){if(LW(W),qT)return W.toHex();let X="";for(let G=0;G<W.length;G++)X+=Au[W[G]];return X}var X4={_0:48,_9:57,A:65,F:70,a:97,f:102};function cC(W){if(W>=X4._0&&W<=X4._9)return W-X4._0;if(W>=X4.A&&W<=X4.F)return W-(X4.A-10);if(W>=X4.a&&W<=X4.f)return W-(X4.a-10);return}function IQ(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);if(qT)return Uint8Array.fromHex(W);let X=W.length,G=X/2;if(X%2)throw Error("hex string expected, got unpadded hex of length "+X);let Y=new Uint8Array(G);for(let J=0,Z=0;J<G;J++,Z+=2){let V=cC(W.charCodeAt(Z)),U=cC(W.charCodeAt(Z+1));if(V===void 0||U===void 0){let Q=W[Z]+W[Z+1];throw Error('hex string expected, got non-hex character "'+Q+'" at index '+Z)}Y[J]=V*16+U}return Y}function HT(W){if(typeof W!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(W))}function Iz(W){if(typeof W==="string")W=HT(W);return LW(W),W}function w7(...W){let X=0;for(let Y=0;Y<W.length;Y++){let J=W[Y];LW(J),X+=J.length}let G=new Uint8Array(X);for(let Y=0,J=0;Y<W.length;Y++){let Z=W[Y];G.set(Z,J),J+=Z.length}return G}class wz{}function zu(W){let X=(Y)=>W().update(Iz(Y)).digest(),G=W();return X.outputLen=G.outputLen,X.blockLen=G.blockLen,X.create=()=>W(),X}function RQ(W=32){if(XG&&typeof XG.getRandomValues==="function")return XG.getRandomValues(new Uint8Array(W));if(XG&&typeof XG.randomBytes==="function")return Uint8Array.from(XG.randomBytes(W));throw Error("crypto.getRandomValues must be defined")}function Iu(W,X,G,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(X,G,Y);let J=BigInt(32),Z=BigInt(4294967295),V=Number(G>>J&Z),U=Number(G&Z),Q=Y?4:0,N=Y?0:4;W.setUint32(X+Q,V,Y),W.setUint32(X+N,U,Y)}function wu(W,X,G){return W&X^~W&G}function ju(W,X,G){return W&X^W&G^X&G}class AT extends wz{constructor(W,X,G,Y){super();this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=W,this.outputLen=X,this.padOffset=G,this.isLE=Y,this.buffer=new Uint8Array(W),this.view=rA(this.buffer)}update(W){AQ(this),W=Iz(W),LW(W);let{view:X,buffer:G,blockLen:Y}=this,J=W.length;for(let Z=0;Z<J;){let V=Math.min(Y-this.pos,J-Z);if(V===Y){let U=rA(W);for(;Y<=J-Z;Z+=Y)this.process(U,Z);continue}if(G.set(W.subarray(Z,Z+V),this.pos),this.pos+=V,Z+=V,this.pos===Y)this.process(X,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){AQ(this),Hu(W,this),this.finished=!0;let{buffer:X,view:G,blockLen:Y,isLE:J}=this,{pos:Z}=this;if(X[Z++]=128,zQ(this.buffer.subarray(Z)),this.padOffset>Y-Z)this.process(G,0),Z=0;for(let q=Z;q<Y;q++)X[q]=0;Iu(G,Y-8,BigInt(this.length*8),J),this.process(G,0);let V=rA(W),U=this.outputLen;if(U%4)throw Error("_sha2: outputLen should be aligned to 32bit");let Q=U/4,N=this.get();if(Q>N.length)throw Error("_sha2: outputLen bigger than state");for(let q=0;q<Q;q++)V.setUint32(4*q,N[q],J)}digest(){let{buffer:W,outputLen:X}=this;this.digestInto(W);let G=W.slice(0,X);return this.destroy(),G}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:X,buffer:G,length:Y,finished:J,destroyed:Z,pos:V}=this;if(W.destroyed=Z,W.finished=J,W.length=Y,W.pos=V,Y%X)W.buffer.set(G);return W}clone(){return this._cloneInto()}}var q6=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Ku=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 zT extends AT{constructor(W=32){super(64,W,8,!1);this.A=q6[0]|0,this.B=q6[1]|0,this.C=q6[2]|0,this.D=q6[3]|0,this.E=q6[4]|0,this.F=q6[5]|0,this.G=q6[6]|0,this.H=q6[7]|0}get(){let{A:W,B:X,C:G,D:Y,E:J,F:Z,G:V,H:U}=this;return[W,X,G,Y,J,Z,V,U]}set(W,X,G,Y,J,Z,V,U){this.A=W|0,this.B=X|0,this.C=G|0,this.D=Y|0,this.E=J|0,this.F=Z|0,this.G=V|0,this.H=U|0}process(W,X){for(let q=0;q<16;q++,X+=4)H6[q]=W.getUint32(X,!1);for(let q=16;q<64;q++){let A=H6[q-15],H=H6[q-2],I=I7(A,7)^I7(A,18)^A>>>3,w=I7(H,17)^I7(H,19)^H>>>10;H6[q]=w+H6[q-7]+I+H6[q-16]|0}let{A:G,B:Y,C:J,D:Z,E:V,F:U,G:Q,H:N}=this;for(let q=0;q<64;q++){let A=I7(V,6)^I7(V,11)^I7(V,25),H=N+A+wu(V,U,Q)+Ku[q]+H6[q]|0,I=(I7(G,2)^I7(G,13)^I7(G,22))+ju(G,Y,J)|0;N=Q,Q=U,U=V,V=Z+H|0,Z=J,J=Y,Y=G,G=H+I|0}G=G+this.A|0,Y=Y+this.B|0,J=J+this.C|0,Z=Z+this.D|0,V=V+this.E|0,U=U+this.F|0,Q=Q+this.G|0,N=N+this.H|0,this.set(G,Y,J,Z,V,U,Q,N)}roundClean(){zQ(H6)}destroy(){this.set(0,0,0,0,0,0,0,0),zQ(this.buffer)}}var Uz=zu(()=>new zT);class jz extends wz{constructor(W,X){super();this.finished=!1,this.destroyed=!1,NT(W);let G=Iz(X);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,J=new Uint8Array(Y);J.set(G.length>Y?W.create().update(G).digest():G);for(let Z=0;Z<J.length;Z++)J[Z]^=54;this.iHash.update(J),this.oHash=W.create();for(let Z=0;Z<J.length;Z++)J[Z]^=106;this.oHash.update(J),zQ(J)}update(W){return AQ(this),this.iHash.update(W),this}digestInto(W){AQ(this),LW(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:X,iHash:G,finished:Y,destroyed:J,blockLen:Z,outputLen:V}=this;return W=W,W.finished=Y,W.destroyed=J,W.blockLen=Z,W.outputLen=V,W.oHash=X._cloneInto(W.oHash),W.iHash=G._cloneInto(W.iHash),W}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var IT=(W,X,G)=>new jz(W,X).update(G).digest();IT.create=(W,X)=>new jz(W,X);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Kz=BigInt(0),Qz=BigInt(1);function wQ(W,X=""){if(typeof W!=="boolean"){let G=X&&`"${X}"`;throw Error(G+"expected boolean, got type="+typeof W)}return W}function TW(W,X,G=""){let Y=PQ(W),J=W?.length,Z=X!==void 0;if(!Y||Z&&J!==X){let V=G&&`"${G}" `,U=Z?` of length ${X}`:"",Q=Y?`length=${J}`:`type=${typeof W}`;throw Error(V+"expected Uint8Array"+U+", got "+Q)}return W}function XQ(W){let X=W.toString(16);return X.length&1?"0"+X:X}function wT(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return W===""?Kz:BigInt("0x"+W)}function qG(W){return wT(ZG(W))}function jT(W){return LW(W),wT(ZG(Uint8Array.from(W).reverse()))}function LQ(W,X){return IQ(W.toString(16).padStart(X*2,"0"))}function KT(W,X){return LQ(W,X).reverse()}function f8(W,X,G){let Y;if(typeof X==="string")try{Y=IQ(X)}catch(Z){throw Error(W+" must be hex string or Uint8Array, cause: "+Z)}else if(PQ(X))Y=Uint8Array.from(X);else throw Error(W+" must be hex string or Uint8Array");let J=Y.length;if(typeof G==="number"&&J!==G)throw Error(W+" of length "+G+" expected, got "+J);return Y}var aA=(W)=>typeof W==="bigint"&&Kz<=W;function Nz(W,X,G){return aA(W)&&aA(X)&&aA(G)&&X<=W&&W<G}function Ou(W,X,G,Y){if(!Nz(X,G,Y))throw Error("expected valid "+W+": "+G+" <= n < "+Y+", got "+X)}function OT(W){let X;for(X=0;W>Kz;W>>=Qz,X+=1);return X}var hJ=(W)=>(Qz<<BigInt(W))-Qz;function Du(W,X,G){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof X!=="number"||X<2)throw Error("qByteLen must be a number");if(typeof G!=="function")throw Error("hmacFn must be a function");let Y=(H)=>new Uint8Array(H),J=(H)=>Uint8Array.of(H),Z=Y(W),V=Y(W),U=0,Q=()=>{Z.fill(1),V.fill(0),U=0},N=(...H)=>G(V,Z,...H),q=(H=Y(0))=>{if(V=N(J(0),H),Z=N(),H.length===0)return;V=N(J(1),H),Z=N()},A=()=>{if(U++>=1000)throw Error("drbg: tried 1000 values");let H=0,I=[];while(H<X){Z=N();let w=Z.slice();I.push(w),H+=Z.length}return w7(...I)};return(H,I)=>{Q(),q(H);let w=void 0;while(!(w=I(A())))q();return Q(),w}}function Oz(W,X,G={}){if(!W||typeof W!=="object")throw Error("expected valid options object");function Y(J,Z,V){let U=W[J];if(V&&U===void 0)return;let Q=typeof U;if(Q!==Z||U===null)throw Error(`param "${J}" is invalid: expected ${Z}, got ${Q}`)}Object.entries(X).forEach(([J,Z])=>Y(J,Z,!1)),Object.entries(G).forEach(([J,Z])=>Y(J,Z,!0))}function lC(W){let X=new WeakMap;return(G,...Y)=>{let J=X.get(G);if(J!==void 0)return J;let Z=W(G,...Y);return X.set(G,Z),Z}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var _9=BigInt(0),I9=BigInt(1),MW=BigInt(2),DT=BigInt(3),CT=BigInt(4),TT=BigInt(5),Cu=BigInt(7),MT=BigInt(8),Tu=BigInt(9),PT=BigInt(16);function C5(W,X){let G=W%X;return G>=_9?G:X+G}function O5(W,X,G){let Y=W;while(X-- >_9)Y*=Y,Y%=G;return Y}function dC(W,X){if(W===_9)throw Error("invert: expected non-zero number");if(X<=_9)throw Error("invert: expected positive modulus, got "+X);let G=C5(W,X),Y=X,J=_9,Z=I9,V=I9,U=_9;while(G!==_9){let Q=Y/G,N=Y%G,q=J-V*Q,A=Z-U*Q;Y=G,G=N,J=V,Z=U,V=q,U=A}if(Y!==I9)throw Error("invert: does not exist");return C5(J,X)}function Dz(W,X,G){if(!W.eql(W.sqr(X),G))throw Error("Cannot find square root")}function RT(W,X){let G=(W.ORDER+I9)/CT,Y=W.pow(X,G);return Dz(W,Y,X),Y}function Mu(W,X){let G=(W.ORDER-TT)/MT,Y=W.mul(X,MW),J=W.pow(Y,G),Z=W.mul(X,J),V=W.mul(W.mul(Z,MW),J),U=W.mul(Z,W.sub(V,W.ONE));return Dz(W,U,X),U}function Pu(W){let X=bJ(W),G=LT(W),Y=G(X,X.neg(X.ONE)),J=G(X,Y),Z=G(X,X.neg(Y)),V=(W+Cu)/PT;return(U,Q)=>{let N=U.pow(Q,V),q=U.mul(N,Y),A=U.mul(N,J),H=U.mul(N,Z),I=U.eql(U.sqr(q),Q),w=U.eql(U.sqr(A),Q);N=U.cmov(N,q,I),q=U.cmov(H,A,w);let O=U.eql(U.sqr(q),Q),T=U.cmov(N,q,O);return Dz(U,T,Q),T}}function LT(W){if(W<DT)throw Error("sqrt is not defined for small field");let X=W-I9,G=0;while(X%MW===_9)X/=MW,G++;let Y=MW,J=bJ(W);while(oC(J,Y)===1)if(Y++>1000)throw Error("Cannot find square root: probably non-prime P");if(G===1)return RT;let Z=J.pow(Y,X),V=(X+I9)/MW;return function(U,Q){if(U.is0(Q))return Q;if(oC(U,Q)!==1)throw Error("Cannot find square root");let N=G,q=U.mul(U.ONE,Z),A=U.pow(Q,X),H=U.pow(Q,V);while(!U.eql(A,U.ONE)){if(U.is0(A))return U.ZERO;let I=1,w=U.sqr(A);while(!U.eql(w,U.ONE))if(I++,w=U.sqr(w),I===N)throw Error("Cannot find square root");let O=I9<<BigInt(N-I-1),T=U.pow(q,O);N=I,q=U.sqr(T),A=U.mul(A,q),H=U.mul(H,T)}return H}}function Ru(W){if(W%CT===DT)return RT;if(W%MT===TT)return Mu;if(W%PT===Tu)return Pu(W);return LT(W)}var Lu=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Bu(W){let X={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},G=Lu.reduce((Y,J)=>{return Y[J]="function",Y},X);return Oz(W,G),W}function Eu(W,X,G){if(G<_9)throw Error("invalid exponent, negatives unsupported");if(G===_9)return W.ONE;if(G===I9)return X;let Y=W.ONE,J=X;while(G>_9){if(G&I9)Y=W.mul(Y,J);J=W.sqr(J),G>>=I9}return Y}function BT(W,X,G=!1){let Y=Array(X.length).fill(G?W.ZERO:void 0),J=X.reduce((V,U,Q)=>{if(W.is0(U))return V;return Y[Q]=V,W.mul(V,U)},W.ONE),Z=W.inv(J);return X.reduceRight((V,U,Q)=>{if(W.is0(U))return V;return Y[Q]=W.mul(V,Y[Q]),W.mul(V,U)},Z),Y}function oC(W,X){let G=(W.ORDER-I9)/MW,Y=W.pow(X,G),J=W.eql(Y,W.ONE),Z=W.eql(Y,W.ZERO),V=W.eql(Y,W.neg(W.ONE));if(!J&&!Z&&!V)throw Error("invalid Legendre symbol result");return J?1:Z?0:-1}function ET(W,X){if(X!==void 0)Vz(X);let G=X!==void 0?X:W.toString(2).length,Y=Math.ceil(G/8);return{nBitLength:G,nByteLength:Y}}function bJ(W,X,G=!1,Y={}){if(W<=_9)throw Error("invalid field: expected ORDER > 0, got "+W);let J=void 0,Z=void 0,V=!1,U=void 0;if(typeof X==="object"&&X!=null){if(Y.sqrt||G)throw Error("cannot specify opts in two arguments");let H=X;if(H.BITS)J=H.BITS;if(H.sqrt)Z=H.sqrt;if(typeof H.isLE==="boolean")G=H.isLE;if(typeof H.modFromBytes==="boolean")V=H.modFromBytes;U=H.allowedLengths}else{if(typeof X==="number")J=X;if(Y.sqrt)Z=Y.sqrt}let{nBitLength:Q,nByteLength:N}=ET(W,J);if(N>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let q,A=Object.freeze({ORDER:W,isLE:G,BITS:Q,BYTES:N,MASK:hJ(Q),ZERO:_9,ONE:I9,allowedLengths:U,create:(H)=>C5(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&I9)===I9,neg:(H)=>C5(-H,W),eql:(H,I)=>H===I,sqr:(H)=>C5(H*H,W),add:(H,I)=>C5(H+I,W),sub:(H,I)=>C5(H-I,W),mul:(H,I)=>C5(H*I,W),pow:(H,I)=>Eu(A,H,I),div:(H,I)=>C5(H*dC(I,W),W),sqrN:(H)=>H*H,addN:(H,I)=>H+I,subN:(H,I)=>H-I,mulN:(H,I)=>H*I,inv:(H)=>dC(H,W),sqrt:Z||((H)=>{if(!q)q=Ru(W);return q(A,H)}),toBytes:(H)=>G?KT(H,N):LQ(H,N),fromBytes:(H,I=!0)=>{if(U){if(!U.includes(H.length)||H.length>N)throw Error("Field.fromBytes: expected "+U+" bytes, got "+H.length);let O=new Uint8Array(N);O.set(H,G?0:O.length-H.length),H=O}if(H.length!==N)throw Error("Field.fromBytes: expected "+N+" bytes, got "+H.length);let w=G?jT(H):qG(H);if(V)w=C5(w,W);if(!I){if(!A.isValid(w))throw Error("invalid field element: outside of range 0..ORDER")}return w},invertBatch:(H)=>BT(A,H),cmov:(H,I,w)=>w?I:H});return Object.freeze(A)}function $T(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let X=W.toString(2).length;return Math.ceil(X/8)}function FT(W){let X=$T(W);return X+Math.ceil(X/2)}function ST(W,X,G=!1){let Y=W.length,J=$T(X),Z=FT(X);if(Y<16||Y<Z||Y>1024)throw Error("expected "+Z+"-1024 bytes of input, got "+Y);let V=G?jT(W):qG(W),U=C5(V,X-I9)+I9;return G?KT(U,J):LQ(U,J)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var QG=BigInt(0),PW=BigInt(1);function jQ(W,X){let G=X.negate();return W?G:X}function sA(W,X){let G=BT(W.Fp,X.map((Y)=>Y.Z));return X.map((Y,J)=>W.fromAffine(Y.toAffine(G[J])))}function xT(W,X){if(!Number.isSafeInteger(W)||W<=0||W>X)throw Error("invalid window size, expected [1.."+X+"], got W="+W)}function tA(W,X){xT(W,X);let G=Math.ceil(X/W)+1,Y=2**(W-1),J=2**W,Z=hJ(W),V=BigInt(W);return{windows:G,windowSize:Y,mask:Z,maxNumber:J,shiftBy:V}}function nC(W,X,G){let{windowSize:Y,mask:J,maxNumber:Z,shiftBy:V}=G,U=Number(W&J),Q=W>>V;if(U>Y)U-=Z,Q+=PW;let N=X*Y,q=N+Math.abs(U)-1,A=U===0,H=U<0,I=X%2!==0;return{nextN:Q,offset:q,isZero:A,isNeg:H,isNegF:I,offsetF:N}}function $u(W,X){if(!Array.isArray(W))throw Error("array expected");W.forEach((G,Y)=>{if(!(G instanceof X))throw Error("invalid point at index "+Y)})}function Fu(W,X){if(!Array.isArray(W))throw Error("array of scalars expected");W.forEach((G,Y)=>{if(!X.isValid(G))throw Error("invalid scalar at index "+Y)})}var eA=new WeakMap,kT=new WeakMap;function Wz(W){return kT.get(W)||1}function iC(W){if(W!==QG)throw Error("invalid wNAF")}class _T{constructor(W,X){this.BASE=W.BASE,this.ZERO=W.ZERO,this.Fn=W.Fn,this.bits=X}_unsafeLadder(W,X,G=this.ZERO){let Y=W;while(X>QG){if(X&PW)G=G.add(Y);Y=Y.double(),X>>=PW}return G}precomputeWindow(W,X){let{windows:G,windowSize:Y}=tA(X,this.bits),J=[],Z=W,V=Z;for(let U=0;U<G;U++){V=Z,J.push(V);for(let Q=1;Q<Y;Q++)V=V.add(Z),J.push(V);Z=V.double()}return J}wNAF(W,X,G){if(!this.Fn.isValid(G))throw Error("invalid scalar");let Y=this.ZERO,J=this.BASE,Z=tA(W,this.bits);for(let V=0;V<Z.windows;V++){let{nextN:U,offset:Q,isZero:N,isNeg:q,isNegF:A,offsetF:H}=nC(G,V,Z);if(G=U,N)J=J.add(jQ(A,X[H]));else Y=Y.add(jQ(q,X[Q]))}return iC(G),{p:Y,f:J}}wNAFUnsafe(W,X,G,Y=this.ZERO){let J=tA(W,this.bits);for(let Z=0;Z<J.windows;Z++){if(G===QG)break;let{nextN:V,offset:U,isZero:Q,isNeg:N}=nC(G,Z,J);if(G=V,Q)continue;else{let q=X[U];Y=Y.add(N?q.negate():q)}}return iC(G),Y}getPrecomputes(W,X,G){let Y=eA.get(X);if(!Y){if(Y=this.precomputeWindow(X,W),W!==1){if(typeof G==="function")Y=G(Y);eA.set(X,Y)}}return Y}cached(W,X,G){let Y=Wz(W);return this.wNAF(Y,this.getPrecomputes(Y,W,G),X)}unsafe(W,X,G,Y){let J=Wz(W);if(J===1)return this._unsafeLadder(W,X,Y);return this.wNAFUnsafe(J,this.getPrecomputes(J,W,G),X,Y)}createCache(W,X){xT(X,this.bits),kT.set(W,X),eA.delete(W)}hasCache(W){return Wz(W)!==1}}function Su(W,X,G,Y){let J=X,Z=W.ZERO,V=W.ZERO;while(G>QG||Y>QG){if(G&PW)Z=Z.add(J);if(Y&PW)V=V.add(J);J=J.double(),G>>=PW,Y>>=PW}return{p1:Z,p2:V}}function xu(W,X,G,Y){$u(G,W),Fu(Y,X);let J=G.length,Z=Y.length;if(J!==Z)throw Error("arrays of points and scalars must have equal length");let V=W.ZERO,U=OT(BigInt(J)),Q=1;if(U>12)Q=U-3;else if(U>4)Q=U-2;else if(U>0)Q=2;let N=hJ(Q),q=Array(Number(N)+1).fill(V),A=Math.floor((X.BITS-1)/Q)*Q,H=V;for(let I=A;I>=0;I-=Q){q.fill(V);for(let O=0;O<Z;O++){let T=Y[O],x=Number(T>>BigInt(I)&N);q[x]=q[x].add(G[O])}let w=V;for(let O=q.length-1,T=V;O>0;O--)T=T.add(q[O]),w=w.add(T);if(H=H.add(w),I!==0)for(let O=0;O<Q;O++)H=H.double()}return H}function rC(W,X,G){if(X){if(X.ORDER!==W)throw Error("Field.ORDER must match order: Fp == p, Fn == n");return Bu(X),X}else return bJ(W,{isLE:G})}function ku(W,X,G={},Y){if(Y===void 0)Y=W==="edwards";if(!X||typeof X!=="object")throw Error(`expected valid ${W} CURVE object`);for(let U of["p","n","h"]){let Q=X[U];if(!(typeof Q==="bigint"&&Q>QG))throw Error(`CURVE.${U} must be positive bigint`)}let J=rC(X.p,G.Fp,Y),Z=rC(X.n,G.Fn,Y),V=["Gx","Gy","a",W==="weierstrass"?"b":"d"];for(let U of V)if(!J.isValid(X[U]))throw Error(`CURVE.${U} must be valid field element of CURVE.Fp`);return X=Object.freeze(Object.assign({},X)),{CURVE:X,Fp:J,Fn:Z}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var aC=(W,X)=>(W+(W>=0?X:-X)/vT)/X;function _u(W,X,G){let[[Y,J],[Z,V]]=X,U=aC(V*W,G),Q=aC(-J*W,G),N=W-U*Y-Q*Z,q=-U*J-Q*V,A=N<Y4,H=q<Y4;if(A)N=-N;if(H)q=-q;let I=hJ(Math.ceil(OT(G)/2))+VG;if(N<Y4||N>=I||q<Y4||q>=I)throw Error("splitScalar (endomorphism): failed, k="+W);return{k1neg:A,k1:N,k2neg:H,k2:q}}function qz(W){if(!["compact","recovered","der"].includes(W))throw Error('Signature format must be "compact", "recovered", or "der"');return W}function Xz(W,X){let G={};for(let Y of Object.keys(X))G[Y]=W[Y]===void 0?X[Y]:W[Y];if(wQ(G.lowS,"lowS"),wQ(G.prehash,"prehash"),G.format!==void 0)qz(G.format);return G}class yT extends Error{constructor(W=""){super(W)}}var G4={Err:yT,_tlv:{encode:(W,X)=>{let{Err:G}=G4;if(W<0||W>256)throw new G("tlv.encode: wrong tag");if(X.length&1)throw new G("tlv.encode: unpadded data");let Y=X.length/2,J=XQ(Y);if(J.length/2&128)throw new G("tlv.encode: long form length too big");let Z=Y>127?XQ(J.length/2|128):"";return XQ(W)+Z+J+X},decode(W,X){let{Err:G}=G4,Y=0;if(W<0||W>256)throw new G("tlv.encode: wrong tag");if(X.length<2||X[Y++]!==W)throw new G("tlv.decode: wrong tlv");let J=X[Y++],Z=!!(J&128),V=0;if(!Z)V=J;else{let Q=J&127;if(!Q)throw new G("tlv.decode(long): indefinite length not supported");if(Q>4)throw new G("tlv.decode(long): byte length is too big");let N=X.subarray(Y,Y+Q);if(N.length!==Q)throw new G("tlv.decode: length bytes not complete");if(N[0]===0)throw new G("tlv.decode(long): zero leftmost byte");for(let q of N)V=V<<8|q;if(Y+=Q,V<128)throw new G("tlv.decode(long): not minimal encoding")}let U=X.subarray(Y,Y+V);if(U.length!==V)throw new G("tlv.decode: wrong value length");return{v:U,l:X.subarray(Y+V)}}},_int:{encode(W){let{Err:X}=G4;if(W<Y4)throw new X("integer: negative integers are not allowed");let G=XQ(W);if(Number.parseInt(G[0],16)&8)G="00"+G;if(G.length&1)throw new X("unexpected DER parsing assertion: unpadded hex");return G},decode(W){let{Err:X}=G4;if(W[0]&128)throw new X("invalid signature integer: negative");if(W[0]===0&&!(W[1]&128))throw new X("invalid signature integer: unnecessary leading zero");return qG(W)}},toSig(W){let{Err:X,_int:G,_tlv:Y}=G4,J=f8("signature",W),{v:Z,l:V}=Y.decode(48,J);if(V.length)throw new X("invalid signature: left bytes after parsing");let{v:U,l:Q}=Y.decode(2,Z),{v:N,l:q}=Y.decode(2,Q);if(q.length)throw new X("invalid signature: left bytes after parsing");return{r:G.decode(U),s:G.decode(N)}},hexFromSig(W){let{_tlv:X,_int:G}=G4,Y=X.encode(2,G.encode(W.r)),J=X.encode(2,G.encode(W.s)),Z=Y+J;return X.encode(48,Z)}},Y4=BigInt(0),VG=BigInt(1),vT=BigInt(2),GQ=BigInt(3),yu=BigInt(4);function RW(W,X){let{BYTES:G}=W,Y;if(typeof X==="bigint")Y=X;else{let J=f8("private key",X);try{Y=W.fromBytes(J)}catch(Z){throw Error(`invalid private key: expected ui8a of size ${G}, got ${typeof X}`)}}if(!W.isValidNot0(Y))throw Error("invalid private key: out of range [1..N-1]");return Y}function vu(W,X={}){let G=ku("weierstrass",W,X),{Fp:Y,Fn:J}=G,Z=G.CURVE,{h:V,n:U}=Z;Oz(X,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:Q}=X;if(Q){if(!Y.is0(Z.a)||typeof Q.beta!=="bigint"||!Array.isArray(Q.basises))throw Error('invalid endo: expected "beta": bigint and "basises": array')}let N=uT(Y,J);function q(){if(!Y.isOdd)throw Error("compression is not supported: Field does not have .isOdd()")}function A(g,d,P){let{x:E,y:f}=d.toAffine(),r=Y.toBytes(E);if(wQ(P,"isCompressed"),P){q();let o=!Y.isOdd(f);return w7(gT(o),r)}else return w7(Uint8Array.of(4),r,Y.toBytes(f))}function H(g){TW(g,void 0,"Point");let{publicKey:d,publicKeyUncompressed:P}=N,E=g.length,f=g[0],r=g.subarray(1);if(E===d&&(f===2||f===3)){let o=Y.fromBytes(r);if(!Y.isValid(o))throw Error("bad point: is not on curve, wrong x");let B=O(o),F;try{F=Y.sqrt(B)}catch(v){let R=v instanceof Error?": "+v.message:"";throw Error("bad point: is not on curve, sqrt error"+R)}q();let y=Y.isOdd(F);if((f&1)===1!==y)F=Y.neg(F);return{x:o,y:F}}else if(E===P&&f===4){let o=Y.BYTES,B=Y.fromBytes(r.subarray(0,o)),F=Y.fromBytes(r.subarray(o,o*2));if(!T(B,F))throw Error("bad point: is not on curve");return{x:B,y:F}}else throw Error(`bad point: got length ${E}, expected compressed=${d} or uncompressed=${P}`)}let I=X.toBytes||A,w=X.fromBytes||H;function O(g){let d=Y.sqr(g),P=Y.mul(d,g);return Y.add(Y.add(P,Y.mul(g,Z.a)),Z.b)}function T(g,d){let P=Y.sqr(d),E=O(g);return Y.eql(P,E)}if(!T(Z.Gx,Z.Gy))throw Error("bad curve params: generator point");let x=Y.mul(Y.pow(Z.a,GQ),yu),u=Y.mul(Y.sqr(Z.b),BigInt(27));if(Y.is0(Y.add(x,u)))throw Error("bad curve params: a or b");function $(g,d,P=!1){if(!Y.isValid(d)||P&&Y.is0(d))throw Error(`bad point coordinate ${g}`);return d}function S(g){if(!(g instanceof _))throw Error("ProjectivePoint expected")}function h(g){if(!Q||!Q.basises)throw Error("no endo");return _u(g,Q.basises,J.ORDER)}let l=lC((g,d)=>{let{X:P,Y:E,Z:f}=g;if(Y.eql(f,Y.ONE))return{x:P,y:E};let r=g.is0();if(d==null)d=r?Y.ONE:Y.inv(f);let o=Y.mul(P,d),B=Y.mul(E,d),F=Y.mul(f,d);if(r)return{x:Y.ZERO,y:Y.ZERO};if(!Y.eql(F,Y.ONE))throw Error("invZ was invalid");return{x:o,y:B}}),p=lC((g)=>{if(g.is0()){if(X.allowInfinityPoint&&!Y.is0(g.Y))return;throw Error("bad point: ZERO")}let{x:d,y:P}=g.toAffine();if(!Y.isValid(d)||!Y.isValid(P))throw Error("bad point: x or y not field elements");if(!T(d,P))throw Error("bad point: equation left != right");if(!g.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});function t(g,d,P,E,f){return P=new _(Y.mul(P.X,g),P.Y,P.Z),d=jQ(E,d),P=jQ(f,P),d.add(P)}class _{constructor(g,d,P){this.X=$("x",g),this.Y=$("y",d,!0),this.Z=$("z",P),Object.freeze(this)}static CURVE(){return Z}static fromAffine(g){let{x:d,y:P}=g||{};if(!g||!Y.isValid(d)||!Y.isValid(P))throw Error("invalid affine point");if(g instanceof _)throw Error("projective point not allowed");if(Y.is0(d)&&Y.is0(P))return _.ZERO;return new _(d,P,Y.ONE)}static fromBytes(g){let d=_.fromAffine(w(TW(g,void 0,"point")));return d.assertValidity(),d}static fromHex(g){return _.fromBytes(f8("pointHex",g))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(g=8,d=!0){if(H0.createCache(this,g),!d)this.multiply(GQ);return this}assertValidity(){p(this)}hasEvenY(){let{y:g}=this.toAffine();if(!Y.isOdd)throw Error("Field doesn't support isOdd");return!Y.isOdd(g)}equals(g){S(g);let{X:d,Y:P,Z:E}=this,{X:f,Y:r,Z:o}=g,B=Y.eql(Y.mul(d,o),Y.mul(f,E)),F=Y.eql(Y.mul(P,o),Y.mul(r,E));return B&&F}negate(){return new _(this.X,Y.neg(this.Y),this.Z)}double(){let{a:g,b:d}=Z,P=Y.mul(d,GQ),{X:E,Y:f,Z:r}=this,o=Y.ZERO,B=Y.ZERO,F=Y.ZERO,y=Y.mul(E,E),v=Y.mul(f,f),R=Y.mul(r,r),m=Y.mul(E,f);return m=Y.add(m,m),F=Y.mul(E,r),F=Y.add(F,F),o=Y.mul(g,F),B=Y.mul(P,R),B=Y.add(o,B),o=Y.sub(v,B),B=Y.add(v,B),B=Y.mul(o,B),o=Y.mul(m,o),F=Y.mul(P,F),R=Y.mul(g,R),m=Y.sub(y,R),m=Y.mul(g,m),m=Y.add(m,F),F=Y.add(y,y),y=Y.add(F,y),y=Y.add(y,R),y=Y.mul(y,m),B=Y.add(B,y),R=Y.mul(f,r),R=Y.add(R,R),y=Y.mul(R,m),o=Y.sub(o,y),F=Y.mul(R,v),F=Y.add(F,F),F=Y.add(F,F),new _(o,B,F)}add(g){S(g);let{X:d,Y:P,Z:E}=this,{X:f,Y:r,Z:o}=g,B=Y.ZERO,F=Y.ZERO,y=Y.ZERO,v=Z.a,R=Y.mul(Z.b,GQ),m=Y.mul(d,f),J0=Y.mul(P,r),U0=Y.mul(E,o),N0=Y.add(d,P),$0=Y.add(f,r);N0=Y.mul(N0,$0),$0=Y.add(m,J0),N0=Y.sub(N0,$0),$0=Y.add(d,E);let u0=Y.add(f,o);return $0=Y.mul($0,u0),u0=Y.add(m,U0),$0=Y.sub($0,u0),u0=Y.add(P,E),B=Y.add(r,o),u0=Y.mul(u0,B),B=Y.add(J0,U0),u0=Y.sub(u0,B),y=Y.mul(v,$0),B=Y.mul(R,U0),y=Y.add(B,y),B=Y.sub(J0,y),y=Y.add(J0,y),F=Y.mul(B,y),J0=Y.add(m,m),J0=Y.add(J0,m),U0=Y.mul(v,U0),$0=Y.mul(R,$0),J0=Y.add(J0,U0),U0=Y.sub(m,U0),U0=Y.mul(v,U0),$0=Y.add($0,U0),m=Y.mul(J0,$0),F=Y.add(F,m),m=Y.mul(u0,$0),B=Y.mul(N0,B),B=Y.sub(B,m),m=Y.mul(N0,J0),y=Y.mul(u0,y),y=Y.add(y,m),new _(B,F,y)}subtract(g){return this.add(g.negate())}is0(){return this.equals(_.ZERO)}multiply(g){let{endo:d}=X;if(!J.isValidNot0(g))throw Error("invalid scalar: out of range");let P,E,f=(r)=>H0.cached(this,r,(o)=>sA(_,o));if(d){let{k1neg:r,k1:o,k2neg:B,k2:F}=h(g),{p:y,f:v}=f(o),{p:R,f:m}=f(F);E=v.add(m),P=t(d.beta,y,R,r,B)}else{let{p:r,f:o}=f(g);P=r,E=o}return sA(_,[P,E])[0]}multiplyUnsafe(g){let{endo:d}=X,P=this;if(!J.isValid(g))throw Error("invalid scalar: out of range");if(g===Y4||P.is0())return _.ZERO;if(g===VG)return P;if(H0.hasCache(this))return this.multiply(g);if(d){let{k1neg:E,k1:f,k2neg:r,k2:o}=h(g),{p1:B,p2:F}=Su(_,P,f,o);return t(d.beta,B,F,E,r)}else return H0.unsafe(P,g)}multiplyAndAddUnsafe(g,d,P){let E=this.multiplyUnsafe(d).add(g.multiplyUnsafe(P));return E.is0()?void 0:E}toAffine(g){return l(this,g)}isTorsionFree(){let{isTorsionFree:g}=X;if(V===VG)return!0;if(g)return g(_,this);return H0.unsafe(this,U).is0()}clearCofactor(){let{clearCofactor:g}=X;if(V===VG)return this;if(g)return g(_,this);return this.multiplyUnsafe(V)}isSmallOrder(){return this.multiplyUnsafe(V).is0()}toBytes(g=!0){return wQ(g,"isCompressed"),this.assertValidity(),I(_,this,g)}toHex(g=!0){return ZG(this.toBytes(g))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(g=!0){return this.toBytes(g)}_setWindowSize(g){this.precompute(g)}static normalizeZ(g){return sA(_,g)}static msm(g,d){return xu(_,J,g,d)}static fromPrivateKey(g){return _.BASE.multiply(RW(J,g))}}_.BASE=new _(Z.Gx,Z.Gy,Y.ONE),_.ZERO=new _(Y.ZERO,Y.ONE,Y.ZERO),_.Fp=Y,_.Fn=J;let e=J.BITS,H0=new _T(_,X.endo?Math.ceil(e/2):e);return _.BASE.precompute(8),_}function gT(W){return Uint8Array.of(W?2:3)}function uT(W,X){return{secretKey:X.BYTES,publicKey:1+W.BYTES,publicKeyUncompressed:1+2*W.BYTES,publicKeyHasPrefix:!0,signature:2*X.BYTES}}function gu(W,X={}){let{Fn:G}=W,Y=X.randomBytes||RQ,J=Object.assign(uT(W.Fp,G),{seed:FT(G.ORDER)});function Z(H){try{return!!RW(G,H)}catch(I){return!1}}function V(H,I){let{publicKey:w,publicKeyUncompressed:O}=J;try{let T=H.length;if(I===!0&&T!==w)return!1;if(I===!1&&T!==O)return!1;return!!W.fromBytes(H)}catch(T){return!1}}function U(H=Y(J.seed)){return ST(TW(H,J.seed,"seed"),G.ORDER)}function Q(H,I=!0){return W.BASE.multiply(RW(G,H)).toBytes(I)}function N(H){let I=U(H);return{secretKey:I,publicKey:Q(I)}}function q(H){if(typeof H==="bigint")return!1;if(H instanceof W)return!0;let{secretKey:I,publicKey:w,publicKeyUncompressed:O}=J;if(G.allowedLengths||I===w)return;let T=f8("key",H).length;return T===w||T===O}function A(H,I,w=!0){if(q(H)===!0)throw Error("first arg must be private key");if(q(I)===!1)throw Error("second arg must be public key");let O=RW(G,H);return W.fromHex(I).multiply(O).toBytes(w)}return Object.freeze({getPublicKey:Q,getSharedSecret:A,keygen:N,Point:W,utils:{isValidSecretKey:Z,isValidPublicKey:V,randomSecretKey:U,isValidPrivateKey:Z,randomPrivateKey:U,normPrivateKeyToScalar:(H)=>RW(G,H),precompute(H=8,I=W.BASE){return I.precompute(H,!1)}},lengths:J})}function uu(W,X,G={}){NT(X),Oz(G,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let Y=G.randomBytes||RQ,J=G.hmac||((P,...E)=>IT(X,P,w7(...E))),{Fp:Z,Fn:V}=W,{ORDER:U,BITS:Q}=V,{keygen:N,getPublicKey:q,getSharedSecret:A,utils:H,lengths:I}=gu(W,G),w={prehash:!1,lowS:typeof G.lowS==="boolean"?G.lowS:!1,format:void 0,extraEntropy:!1},O="compact";function T(P){let E=U>>VG;return P>E}function x(P,E){if(!V.isValidNot0(E))throw Error(`invalid signature ${P}: out of range 1..Point.Fn.ORDER`);return E}function u(P,E){qz(E);let f=I.signature,r=E==="compact"?f:E==="recovered"?f+1:void 0;return TW(P,r,`${E} signature`)}class ${constructor(P,E,f){if(this.r=x("r",P),this.s=x("s",E),f!=null)this.recovery=f;Object.freeze(this)}static fromBytes(P,E=O){u(P,E);let f;if(E==="der"){let{r:F,s:y}=G4.toSig(TW(P));return new $(F,y)}if(E==="recovered")f=P[0],E="compact",P=P.subarray(1);let r=V.BYTES,o=P.subarray(0,r),B=P.subarray(r,r*2);return new $(V.fromBytes(o),V.fromBytes(B),f)}static fromHex(P,E){return this.fromBytes(IQ(P),E)}addRecoveryBit(P){return new $(this.r,this.s,P)}recoverPublicKey(P){let E=Z.ORDER,{r:f,s:r,recovery:o}=this;if(o==null||![0,1,2,3].includes(o))throw Error("recovery id invalid");if(U*vT<E&&o>1)throw Error("recovery id is ambiguous for h>1 curve");let B=o===2||o===3?f+U:f;if(!Z.isValid(B))throw Error("recovery id 2 or 3 invalid");let F=Z.toBytes(B),y=W.fromBytes(w7(gT((o&1)===0),F)),v=V.inv(B),R=h(f8("msgHash",P)),m=V.create(-R*v),J0=V.create(r*v),U0=W.BASE.multiplyUnsafe(m).add(y.multiplyUnsafe(J0));if(U0.is0())throw Error("point at infinify");return U0.assertValidity(),U0}hasHighS(){return T(this.s)}toBytes(P=O){if(qz(P),P==="der")return IQ(G4.hexFromSig(this));let E=V.toBytes(this.r),f=V.toBytes(this.s);if(P==="recovered"){if(this.recovery==null)throw Error("recovery bit must be present");return w7(Uint8Array.of(this.recovery),E,f)}return w7(E,f)}toHex(P){return ZG(this.toBytes(P))}assertValidity(){}static fromCompact(P){return $.fromBytes(f8("sig",P),"compact")}static fromDER(P){return $.fromBytes(f8("sig",P),"der")}normalizeS(){return this.hasHighS()?new $(this.r,V.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return ZG(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return ZG(this.toBytes("compact"))}}let S=G.bits2int||function(P){if(P.length>8192)throw Error("input is too large");let E=qG(P),f=P.length*8-Q;return f>0?E>>BigInt(f):E},h=G.bits2int_modN||function(P){return V.create(S(P))},l=hJ(Q);function p(P){return Ou("num < 2^"+Q,P,Y4,l),V.toBytes(P)}function t(P,E){return TW(P,void 0,"message"),E?TW(X(P),void 0,"prehashed message"):P}function _(P,E,f){if(["recovered","canonical"].some((U0)=>(U0 in f)))throw Error("sign() legacy options not supported");let{lowS:r,prehash:o,extraEntropy:B}=Xz(f,w);P=t(P,o);let F=h(P),y=RW(V,E),v=[p(y),p(F)];if(B!=null&&B!==!1){let U0=B===!0?Y(I.secretKey):B;v.push(f8("extraEntropy",U0))}let R=w7(...v),m=F;function J0(U0){let N0=S(U0);if(!V.isValidNot0(N0))return;let $0=V.inv(N0),u0=W.BASE.multiply(N0).toAffine(),q1=V.create(u0.x);if(q1===Y4)return;let g1=V.create($0*V.create(m+q1*y));if(g1===Y4)return;let h0=(u0.x===q1?0:2)|Number(u0.y&VG),x1=g1;if(r&&T(g1))x1=V.neg(g1),h0^=1;return new $(q1,x1,h0)}return{seed:R,k2sig:J0}}function e(P,E,f={}){P=f8("message",P);let{seed:r,k2sig:o}=_(P,E,f);return Du(X.outputLen,V.BYTES,J)(r,o)}function H0(P){let E=void 0,f=typeof P==="string"||PQ(P),r=!f&&P!==null&&typeof P==="object"&&typeof P.r==="bigint"&&typeof P.s==="bigint";if(!f&&!r)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(r)E=new $(P.r,P.s);else if(f){try{E=$.fromBytes(f8("sig",P),"der")}catch(o){if(!(o instanceof G4.Err))throw o}if(!E)try{E=$.fromBytes(f8("sig",P),"compact")}catch(o){return!1}}if(!E)return!1;return E}function g(P,E,f,r={}){let{lowS:o,prehash:B,format:F}=Xz(r,w);if(f=f8("publicKey",f),E=t(f8("message",E),B),"strict"in r)throw Error("options.strict was renamed to lowS");let y=F===void 0?H0(P):$.fromBytes(f8("sig",P),F);if(y===!1)return!1;try{let v=W.fromBytes(f);if(o&&y.hasHighS())return!1;let{r:R,s:m}=y,J0=h(E),U0=V.inv(m),N0=V.create(J0*U0),$0=V.create(R*U0),u0=W.BASE.multiplyUnsafe(N0).add(v.multiplyUnsafe($0));if(u0.is0())return!1;return V.create(u0.x)===R}catch(v){return!1}}function d(P,E,f={}){let{prehash:r}=Xz(f,w);return E=t(E,r),$.fromBytes(P,"recovered").recoverPublicKey(E).toBytes()}return Object.freeze({keygen:N,getPublicKey:q,getSharedSecret:A,utils:H,lengths:I,Point:W,sign:e,verify:g,recoverPublicKey:d,Signature:$,hash:X})}function hu(W){let X={a:W.a,b:W.b,p:W.Fp.ORDER,n:W.n,h:W.h,Gx:W.Gx,Gy:W.Gy},G=W.Fp,Y=W.allowedPrivateKeyLengths?Array.from(new Set(W.allowedPrivateKeyLengths.map((V)=>Math.ceil(V/2)))):void 0,J=bJ(X.n,{BITS:W.nBitLength,allowedLengths:Y,modFromBytes:W.wrapPrivateKey}),Z={Fp:G,Fn:J,allowInfinityPoint:W.allowInfinityPoint,endo:W.endo,isTorsionFree:W.isTorsionFree,clearCofactor:W.clearCofactor,fromBytes:W.fromBytes,toBytes:W.toBytes};return{CURVE:X,curveOpts:Z}}function bu(W){let{CURVE:X,curveOpts:G}=hu(W),Y={hmac:W.hmac,randomBytes:W.randomBytes,lowS:W.lowS,bits2int:W.bits2int,bits2int_modN:W.bits2int_modN};return{CURVE:X,curveOpts:G,hash:W.hash,ecdsaOpts:Y}}function mu(W,X){let G=X.Point;return Object.assign({},X,{ProjectivePoint:G,CURVE:Object.assign({},W,ET(G.Fn.ORDER,G.Fn.BITS))})}function fu(W){let{CURVE:X,curveOpts:G,hash:Y,ecdsaOpts:J}=bu(W),Z=vu(X,G),V=uu(Z,Y,J);return mu(W,V)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function pu(W,X){let G=(Y)=>fu({...W,hash:Y});return{...G(X),create:G}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var NG={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},cu={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},lu=BigInt(0),sC=BigInt(1),Hz=BigInt(2);function du(W){let X=NG.p,G=BigInt(3),Y=BigInt(6),J=BigInt(11),Z=BigInt(22),V=BigInt(23),U=BigInt(44),Q=BigInt(88),N=W*W*W%X,q=N*N*W%X,A=O5(q,G,X)*q%X,H=O5(A,G,X)*q%X,I=O5(H,Hz,X)*N%X,w=O5(I,J,X)*I%X,O=O5(w,Z,X)*w%X,T=O5(O,U,X)*O%X,x=O5(T,Q,X)*T%X,u=O5(x,U,X)*O%X,$=O5(u,G,X)*q%X,S=O5($,V,X)*w%X,h=O5(S,Y,X)*N%X,l=O5(h,Hz,X);if(!KQ.eql(KQ.sqr(l),W))throw Error("Cannot find square root");return l}var KQ=bJ(NG.p,{sqrt:du}),hT=pu({...NG,Fp:KQ,lowS:!0,endo:cu},Uz),tC={};function OQ(W,...X){let G=tC[W];if(G===void 0){let Y=Uz(HT(W));G=w7(Y,Y),tC[W]=G}return Uz(w7(G,...X))}var Cz=(W)=>W.toBytes(!0).slice(1),HG=(()=>hT.Point)(),Tz=(W)=>W%Hz===lu;function Az(W){let{Fn:X,BASE:G}=HG,Y=RW(X,W),J=G.multiply(Y);return{scalar:Tz(J.y)?Y:X.neg(Y),bytes:Cz(J)}}function bT(W){let X=KQ;if(!X.isValidNot0(W))throw Error("invalid x: Fail if x \u2265 p");let G=X.create(W*W),Y=X.create(G*W+BigInt(7)),J=X.sqrt(Y);if(!Tz(J))J=X.neg(J);let Z=HG.fromAffine({x:W,y:J});return Z.assertValidity(),Z}var gJ=qG;function mT(...W){return HG.Fn.create(gJ(OQ("BIP0340/challenge",...W)))}function eC(W){return Az(W).bytes}function ou(W,X,G=RQ(32)){let{Fn:Y}=HG,J=f8("message",W),{bytes:Z,scalar:V}=Az(X),U=f8("auxRand",G,32),Q=Y.toBytes(V^gJ(OQ("BIP0340/aux",U))),N=OQ("BIP0340/nonce",Q,Z,J),{bytes:q,scalar:A}=Az(N),H=mT(q,Z,J),I=new Uint8Array(64);if(I.set(q,0),I.set(Y.toBytes(Y.create(A+H*V)),32),!fT(I,J,Z))throw Error("sign: Invalid signature produced");return I}function fT(W,X,G){let{Fn:Y,BASE:J}=HG,Z=f8("signature",W,64),V=f8("message",X),U=f8("publicKey",G,32);try{let Q=bT(gJ(U)),N=gJ(Z.subarray(0,32));if(!Nz(N,sC,NG.p))return!1;let q=gJ(Z.subarray(32,64));if(!Nz(q,sC,NG.n))return!1;let A=mT(Y.toBytes(N),Cz(Q),V),H=J.multiplyUnsafe(q).add(Q.multiplyUnsafe(Y.neg(A))),{x:I,y:w}=H.toAffine();if(H.is0()||!Tz(w)||I!==N)return!1;return!0}catch(Q){return!1}}var Mz=(()=>{let W=(G=RQ(48))=>{return ST(G,NG.n)};hT.utils.randomSecretKey;function X(G){let Y=W(G);return{secretKey:Y,publicKey:eC(Y)}}return{keygen:X,getPublicKey:eC,sign:ou,verify:fT,Point:HG,utils:{randomSecretKey:W,randomPrivateKey:W,taggedHash:OQ,lift_x:bT,pointToBytes:Cz,numberToBytesBE:LQ,bytesToNumberBE:qG,mod:C5},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})(),nu=new TextEncoder,iu=new TextDecoder,J4=(W)=>nu.encode(W),kJ=(W)=>iu.decode(W),zz=(W)=>Array.from(W,(X)=>X.toString(16).padStart(2,"0")).join(""),j7=JSON.stringify,DQ=JSON.parse,ru=(W,X=Number.MAX_SAFE_INTEGER)=>W.split("").reduce((G,Y)=>G+Y.charCodeAt(0),0)%X,CQ="AES-GCM",au={},pT="$",cT=",",su=(W)=>{let X=new Uint8Array(W),G=32768,Y="";for(let J=0;J<X.length;J+=32768)Y+=String.fromCharCode(...X.subarray(J,J+32768));return btoa(Y)},tu=(W)=>Uint8Array.from(atob(W),(X)=>X.charCodeAt(0)).buffer,YQ=(W)=>au[W]??=crypto.subtle.digest("SHA-1",J4(W)).then((X)=>{let G=new Uint8Array(X),Y="";for(let J of G)Y+=J.toString(36);return Y}),eu=async(W,X,G)=>{if(!W){let J=await crypto.subtle.digest("SHA-256",J4(`:${X}:${G}`));return crypto.subtle.importKey("raw",J,{name:CQ},!1,["encrypt","decrypt"])}let Y=await crypto.subtle.importKey("raw",J4(W),"PBKDF2",!1,["deriveKey"]);return crypto.subtle.deriveKey({name:"PBKDF2",salt:J4(`${X}:${G}`),iterations:1e5,hash:"SHA-256"},Y,{name:CQ,length:256},!1,["encrypt","decrypt"])},Wh=async(W,X)=>{let G=crypto.getRandomValues(new Uint8Array(12)),Y=await W,J=await crypto.subtle.encrypt({name:CQ,iv:G},Y,J4(X));return`${G.join(cT)}${pT}${su(J)}`},Xh=async(W,X)=>{let[G,Y]=X.split(pT);if(!G||!Y)throw Error("Invalid encrypted payload format");let J=Uint8Array.from(G.split(cT),Number),Z=await W,V=await crypto.subtle.decrypt({name:CQ,iv:J},Z,tu(Y));return kJ(V)},D5="GenosRTC",BQ=(W,X)=>Array.from({length:W},X),TQ=(W)=>Array.from(crypto.getRandomValues(new Uint8Array(W)),(X)=>"0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"[X%62]).join(""),w8=typeof sessionStorage<"u"?sessionStorage.__genosrtcId??=TQ(20):TQ(20),YG=Promise.all.bind(Promise),Gh=typeof window<"u",{entries:Yh,fromEntries:lT,keys:ce}=Object,WT=()=>{},u5=(W)=>Error(`GenosRTC: ${W}`),JQ=(...W)=>W.join("@"),Jh=5000,XT="icegatheringstatechange",GT="offer",Zh="answer",Vh=[...BQ(3,(W,X)=>`stun:stun${X||""}.l.google.com:19302`),"stun:stun.cloudflare.com:3478"].map((W)=>({urls:W})),YT=(W,{rtcConfig:X,rtcPolyfill:G,turnConfig:Y})=>{let J=new(G||RTCPeerConnection)({iceServers:[...Vh,...Y||[]],...X}),Z={},V=!1,U=!1,Q,N=(H)=>Object.assign(H,{binaryType:"arraybuffer",bufferedAmountLowThreshold:65535,onmessage:(I)=>Z.data?.(I.data),onopen:()=>Z.connect?.(),onclose:()=>Z.close?.(),onerror:(I)=>!I?.error?.message?.includes("User-Initiated Abort")&&Z.error?.(I)}),q=()=>Promise.race([new Promise((H)=>{let I=()=>{if(J.iceGatheringState==="complete")J.removeEventListener(XT,I),H()};J.addEventListener(XT,I),I()}),new Promise((H)=>setTimeout(H,Jh))]).then(()=>({type:J.localDescription.type,sdp:J.localDescription.sdp.replace(/a=ice-options:trickle\s\n/g,"")}));if(W?N(Q=J.createDataChannel("data")):J.ondatachannel=({channel:H})=>N(Q=H),J.onnegotiationneeded=async()=>{try{V=!0,await J.setLocalDescription(),Z.signal?.(await q())}catch(H){Z.error?.(H)}finally{V=!1}},J.onconnectionstatechange=()=>{if(["disconnected","failed","closed"].includes(J.connectionState))Z.close?.()},J.ontrack=(H)=>{Z.track?.(H.track,H.streams[0]),Z.stream?.(H.streams[0])},J.onremovestream=(H)=>Z.stream?.(H.stream),W&&!J.canTrickleIceCandidates)J.onnegotiationneeded();let A=()=>J.getSenders();return{created:Date.now(),connection:J,get channel(){return Q},get isDead(){return J.connectionState==="closed"},async signal(H){if(Q?.readyState==="open"&&!H.sdp?.includes("a=rtpmap"))return;try{if(H.type===GT){if(V||J.signalingState!=="stable"&&!U){if(W)return;await YG([J.setLocalDescription({type:"rollback"}),J.setRemoteDescription(H)])}else await J.setRemoteDescription(H);await J.setLocalDescription();let I=await q();return Z.signal?.(I),I}if(H.type===Zh){U=!0;try{await J.setRemoteDescription(H)}finally{U=!1}}}catch(I){Z.error?.(I)}},sendData:(H)=>{if(Q?.readyState!=="open")return!1;return Q.send(H),!0},destroy:()=>{Q?.close(),J.close(),V=U=!1},setHandlers:(H)=>Object.assign(Z,H),offerPromise:W?new Promise((H)=>Z.signal=(I)=>I.type===GT&&H(I)):Promise.resolve(),addStream:(H)=>H.getTracks().forEach((I)=>J.addTrack(I,H)),removeStream:(H)=>A().filter((I)=>H.getTracks().includes(I.track)).forEach((I)=>J.removeTrack(I)),addTrack:(H,I)=>J.addTrack(H,I),removeTrack:(H)=>{let I=A().find((w)=>w.track===H);if(I)J.removeTrack(I)},replaceTrack:(H,I)=>A().find((w)=>w.track===H)?.replaceTrack(I)}},Uh=Object.getPrototypeOf(Uint8Array),QQ=12,dT=0,NQ=dT+QQ,qQ=NQ+1,_J=qQ+1,yJ=_J+1,SJ=16384-yJ,ZQ=255,Gz="bufferedamountlow",GG=(W)=>`@_${W}`,JT=GG("ping"),Yz=100,Qh=3,Nh=200,qh=512,Hh=33554432,ZT=async(W,X,G=1/0)=>{let Y=new Blob([W]).stream().pipeThrough(new X("deflate")).getReader(),J=[],Z=0;for(let Q=await Y.read();!Q.done;Q=await Y.read()){if((Z+=Q.value.byteLength)>G)throw Y.cancel(),u5(`inflated payload exceeds ${G} bytes`);J.push(Q.value)}let V=new Uint8Array(Z),U=0;for(let Q of J)V.set(Q,U),U+=Q.byteLength;return V},Ah=(W,X,G,Y,J)=>{let Z=new Map,V=new Map,U=new Map,Q={},N={},q={},A={},H=new Map,I=new Map,w=Promise.resolve(),O=(R,m)=>{if(!H.has(R))H.set(R,new Set);H.get(R).add(m)},T=(R,m)=>H.get(R)?.delete(m),x=(R,...m)=>H.get(R)?.forEach((J0)=>J0(...m)),u=(R,m)=>{let J0=R?Array.isArray(R)?R:[R]:Z.keys();return Array.from(J0,(U0)=>{let N0=Z.get(U0);if(!N0)return console.warn(`${D5}: no peer with id ${U0}`),null;return m(U0,N0)}).filter(Boolean)},$=(R)=>{if(!Z.has(R))return;Z.delete(R),I.delete(R),y.delete(R),delete Q[R],delete N[R],delete q[R],delete A[R],x("peer:leave",R),X(R)},S=(R)=>new Promise((m,J0)=>{let U0=setTimeout(()=>{R.removeEventListener(Gz,N0),J0(Error(`${D5}: bufferLow timeout`))},5000);function N0(){clearTimeout(U0),R.removeEventListener(Gz,N0),m()}R.addEventListener(Gz,N0)}),h=(R)=>{if(U.has(R))return U.get(R);if(!R)throw u5("action type is required");let m=J4(R);if(m.byteLength>QQ)throw u5(`\u274C "${R}" exceeds ${QQ} bytes. Use a shorter name.`);let J0=new Uint8Array(QQ).map((h0,x1)=>m[x1]||0),U0=0,N0=new Map([["message",new Set],["progress",new Set]]),$0=(h0,x1)=>N0.get(h0)?.add(x1),u0=(h0,x1)=>N0.get(h0)?.delete(x1),q1=async(h0,x1,k1,Q0)=>{if(k1&&typeof k1!=="object")throw u5("meta must be object");if(h0===void 0)throw u5("data cannot be undefined");let S0=h0 instanceof Blob,m0=S0||h0 instanceof ArrayBuffer||h0 instanceof Uh,G0=typeof h0!=="string";if(k1&&!m0)throw u5("meta only allowed with binary");let K0=m0?new Uint8Array(S0?await h0.arrayBuffer():h0):J4(G0?j7(h0):h0),P0=0;if(!m0&&K0.byteLength>=qh){let Y0=await ZT(K0,CompressionStream);if(Y0.byteLength<K0.byteLength)K0=Y0,P0=1}let k0=k1?J4(j7(k1)):null,C1=Math.ceil(K0.byteLength/SJ)+(k1?1:0)||1;if(C1>Yz)throw u5(`Message too large, exceeds max chunks ${Yz}`);let Q1=BQ(C1,(Y0,B0)=>{let F0=B0===C1-1,F1=k1&&B0===0,W8=F1?k0:K0.subarray(k1?(B0-1)*SJ:B0*SJ,k1?B0*SJ:(B0+1)*SJ),T1=new Uint8Array(yJ+W8.byteLength);return T1.set(J0),T1.set([U0],NQ),T1.set([F0|F1<<1|m0<<2|G0<<3|P0<<4],qQ),T1.set([Math.round((B0+1)/C1*ZQ)],_J),T1.set(W8,yJ),T1});return U0=U0+1&ZQ,YG(u(x1,async(Y0,B0)=>{let{channel:F0}=B0;for(let F1=0;F1<C1;F1++){let W8=0;while(F0.bufferedAmount>F0.bufferedAmountLowThreshold){if(W8++>Qh)throw u5(`${D5}: send buffer full, max retries reached for peer ${Y0}`);try{await S(F0)}catch(T1){console.warn(T1.message),await new Promise((H1)=>setTimeout(H1,Nh))}}if(!Z.has(Y0))break;if(!B0.sendData(Q1[F1]))throw u5(`channel not open for peer ${Y0}`);Q0?.(Q1[F1][_J]/ZQ,Y0,k1)}}))};V.set(R,{listeners:N0,send:q1});let g1={send:q1,on:$0,off:u0};return U.set(R,g1),g1},l=(R,m)=>{try{I.set(R,Date.now()),y.delete(R);let J0=new Uint8Array(m),U0=kJ(J0.subarray(dT,NQ)).replace(/\x00/g,"");if(!V.has(U0))return console.warn(`${D5}: unregistered type (${U0})`);if(U0===JT){_("",R).catch(()=>{});return}let[N0]=J0.subarray(NQ,qQ),[$0]=J0.subarray(qQ,_J),[u0]=J0.subarray(_J,yJ),q1=J0.subarray(yJ),g1=Boolean($0&1),h0=Boolean($0&2),x1=Boolean($0&4),k1=Boolean($0&8),Q0=Boolean($0&16),S0=V.get(U0),m0=(Q[R]||={})[U0]||={};if(m0[N0]?.chunks?.length>Yz){console.warn(`${D5}: peer ${R} sent too many chunks for nonce ${N0}, ignoring.`);return}let G0=m0[N0]||={chunks:[]};if(h0)try{G0.meta=DQ(kJ(q1))}catch{console.warn(`${D5}: failed to parse meta from peer ${R} for type ${U0}`);return}else G0.chunks.push(q1);if(S0.listeners.get("progress").forEach((P0)=>{try{P0(u0/ZQ,R,G0.meta)}catch(k0){console.error(k0)}}),!g1)return;let K0=new Uint8Array(G0.chunks.reduce((P0,k0)=>P0+k0.byteLength,0));G0.chunks.reduce((P0,k0)=>(K0.set(k0,P0),P0+k0.byteLength),0),delete m0[N0],w=w.then(async()=>{let P0=Q0?await ZT(K0,DecompressionStream,Hh):K0,k0;if(x1)k0=P0;else if(k1)try{k0=DQ(kJ(P0))}catch{console.warn(`${D5}: failed to parse JSON message data from peer ${R} for type ${U0}`);return}else k0=kJ(P0);S0.listeners.get("message").forEach((C1)=>{try{C1(k0,R,G0.meta)}catch(Q1){console.error(Q1)}})}).catch((P0)=>console.error(`${D5}: dispatch error from peer ${R}:`,P0))}catch(J0){console.error(`${D5}: error handling data from peer ${R}:`,J0)}},p=async()=>{try{await r(""),await new Promise((R)=>setTimeout(R,99))}catch(R){console.warn(`${D5}: error sending leave`,R)}for(let[R,m]of Z){try{m.destroy()}catch{}Z.delete(R)}clearInterval(v),G()},{send:t}=h(JT),{send:_,on:e}=h(GG("pong")),{send:H0,on:g}=h(GG("signal")),{send:d,on:P}=h(GG("stream")),{send:E,on:f}=h(GG("track")),{send:r,on:o}=h(GG("leave"));W((R,m)=>{let J0=Z.get(m);if(J0===R)return;if(J0){let U0=()=>{};J0.setHandlers({data:U0,stream:U0,track:U0,signal:U0,close:U0,error:U0})}Z.set(m,R),I.set(m,Date.now()),y.delete(m),R.setHandlers({data:(U0)=>l(m,U0),stream:(U0)=>{x("stream:add",U0,m,q[m]),delete q[m]},track:(U0,N0)=>{x("track:add",U0,N0,m,A[m]),delete A[m]},signal:(U0)=>H0(U0,m),close:()=>$(m),error:(U0)=>{console.error(`${D5}: peer error for ${m}`,U0),$(m)}}),x("peer:join",m,Y?.(m))}),J?.((R,m,J0)=>x(J0?"peer:seen":"peer:lost",R,m)),e("message",(R,m)=>{N[m]?.(),delete N[m]}),g("message",(R,m)=>Z.get(m)?.signal(R)),P("message",(R,m)=>q[m]=R),f("message",(R,m)=>A[m]=R),o("message",(R,m)=>$(m));let B=1e4,F=20000,y=new Map,v=setInterval(()=>{let R=Date.now();for(let[m,J0]of Z){if(R-(I.get(m)??R)<=B)continue;let U0=y.get(m);if(U0===void 0)y.set(m,R),t("",m).catch(()=>{});else if(R-U0>F){y.delete(m);try{J0.destroy()}catch{}$(m)}}},5000);if(Gh)addEventListener("beforeunload",p);return{on:O,off:T,channel:h,leave:p,ping:async(R)=>{if(!R)throw u5("ping() requires target peer ID");let m=Date.now();return t("",R),await new Promise((J0)=>N[R]=J0),Date.now()-m},getPeers:()=>lT(Array.from(Z,([R,m])=>[R,m.connection])),addStream:(R,m,J0)=>u(m,async(U0,N0)=>{if(J0)await d(J0,U0);N0.addStream(R)}),removeStream:(R,m)=>u(m,(J0,U0)=>U0.removeStream(R)),addTrack:(R,m,J0,U0)=>u(J0,async(N0,$0)=>{if(U0)await E(U0,N0);$0.addTrack(R,m)}),removeTrack:(R,m)=>u(m,(J0,U0)=>U0.removeTrack(R)),replaceTrack:(R,m,J0,U0)=>u(J0,async(N0,$0)=>{if(U0)await E(U0,N0);$0.replaceTrack(R,m)})}},zh=5,Ih=10,wh=2500,VQ=57333,jh=({init:W,subscribe:X,announce:G,bye:Y})=>{let J={},Z=!1,V,U;return(Q,N,q)=>{let{appId:A}=Q;if(J[A]?.[N])return J[A][N];if(!Q||!N||!A&&!Q.firebaseApp)throw u5(!Q?"config required":!N?"roomId required":"appId missing");let H=WT,I=WT;if(!Z){let y=W(Q);U=BQ(zh,()=>{try{return YT(!0,Q)}catch{return null}}).filter(Boolean),V=Array.isArray(y)?y:[y];let v=setInterval(()=>{U=U.filter((R)=>{let m=Date.now()-R.created<VQ;if(!m)R.destroy();return m})},VQ);J.offerCleanupTimer||=v,Z=!0}let w={},O={},T=new Map,x=new Map,u=new Map,$={},S=JQ(D5,A,N),h=YQ(S),l=YQ(JQ(S,w8)),p=eu(Q.password||"",A,N),t=(y)=>async(v)=>({type:v.type,sdp:await y(p,v.sdp)}),_=t(Xh),e=t(Wh),H0=(y)=>{return setTimeout(()=>{if(!y.isDead&&!Object.values(O).includes(y))y.destroy()},VQ),y},g=(y)=>{try{return H0(YT(y,Q))}catch{return null}},d=(y,v)=>{if(O[v]===y)return;y.connectedAt=Date.now(),O[v]?.destroy(),O[v]=y,H(y,v),w[v]?.forEach((R)=>R!==y&&R.destroy()),delete w[v]},P=(y,v)=>{if(O[v]===y)delete O[v]},E=(y)=>async(v,R,m)=>{let[J0,U0]=await YG([h,l]);if(v!==J0&&v!==U0)return;let{peerId:N0,offer:$0,answer:u0,type:q1,bye:g1}=typeof R==="string"?DQ(R):R;if(g1){if(N0&&N0!==w8)x.delete(N0),I(N0,null,!1),u.set(N0,Date.now()),delete $[N0];return}if(N0&&N0!==w8)I(N0,q1,!0),x.set(N0,Date.now()),u.delete(N0);if(q1&&N0)$[N0]=q1;if(N0===w8)return;if(O[N0]){let h0=O[N0].channel?.readyState==="open";if(!$0||h0||Date.now()-O[N0].connectedAt<2000)return;O[N0].destroy(),delete O[N0]}if(Q.admit&&!Q.admit(N0))return;if($0){if(w[N0]?.[y]&&w8>N0)return;let h0=g(!1);if(!h0)return;h0.setHandlers({connect:()=>d(h0,N0),close:()=>P(h0,N0)});try{let x1=await _($0);if(h0.isDead)return;let[k1,Q0]=await YG([YQ(JQ(S,N0)),h0.signal(x1).then(e)]);m(k1,j7({peerId:w8,answer:Q0,...Q.type&&{type:Q.type}}))}catch{q?.({error:"decryption failed (offer)",appId:A,peerId:N0,roomId:N})}}else if(u0){let h0=w[N0]?.[y];if(!h0||h0.isDead)return;h0.setHandlers({connect:()=>d(h0,N0),close:()=>P(h0,N0)});try{h0.signal(await _(u0))}catch{q?.({error:"decryption failed (answer)",appId:A,peerId:N0,roomId:N})}}else{let h0=w[N0]||=[];if(h0.forEach((Q0,S0)=>{if(Q0&&(Q0.isDead||Date.now()-(Q0.dialedAt??Q0.created)>VQ)){if(Q0.isDead)T.set(N0,Date.now()+30000);Q0.destroy(),delete h0[S0]}}),h0[y]||h0.filter(Boolean).length>=2||T.get(N0)>Date.now())return;if(Object.values(w).reduce((Q0,S0)=>Q0+S0.filter((m0)=>m0&&!m0.isDead).length,0)>=Ih)return;let x1=U.pop(),k1=x1?H0(x1):g(!0);if(!k1){T.set(N0,Date.now()+30000);return}k1.dialedAt=Date.now(),h0[y]=k1;try{let[Q0,{offer:S0}]=await YG([YQ(JQ(S,N0)),k1.offerPromise.then(e).then((m0)=>({offer:m0}))]);k1.setHandlers({connect:()=>d(k1,N0),close:()=>P(k1,N0)}),m(Q0,j7({peerId:w8,offer:S0,...Q.type&&{type:Q.type}}))}catch{if(h0[y]===k1)delete h0[y];k1.destroy()}}},f=[],r=[],o=[],B=()=>o.forEach(({relay:y,rootTopic:v})=>Y?.(y,v));V.forEach(async(y,v)=>{let R=await y;if(!R)return;let[m,J0]=await YG([h,l]);r[v]=X(R,m,J0,E(v)),o.push({relay:R,rootTopic:m});let U0=async()=>{let N0=await G(R,m,J0);f[v]=setTimeout(U0,typeof N0==="number"?N0:wh)};U0()}),J[A]||={};let F=Ah((y)=>H=y,(y)=>delete O[y],()=>F.onCleanup?.(),(y)=>$[y],(y)=>I=y);if(typeof window<"u")window.addEventListener("pagehide",B);return F.onCleanup=()=>{if(B(),typeof window<"u")window.removeEventListener("pagehide",B);if(delete J[A][N],f.forEach(clearTimeout),r.forEach((y)=>y?.()),Object.keys(J).length===0)clearInterval(J.offerCleanupTimer),delete J.offerCleanupTimer},F._census=()=>{for(let v of Object.keys(O))x.set(v,Date.now());let y=Date.now()-120000;for(let[v,R]of x)if(R<y)x.delete(v);return[...x.keys()]},F._gone=()=>{let y=Date.now()-60000;for(let[v,R]of u)if(R<y)u.delete(v);return[...u.keys()]},J[A][N]=F}},VT=3333,Kh=30000,xJ={},oT={},Oh=(W,X)=>{let G={},Y=null;G.reopenHandlers=new Set;let J=()=>{if(Y)clearTimeout(Y),Y=null;if(G.socket)G.socket.onclose=null,G.socket.close();let Z=new WebSocket(W);Z.onclose=()=>{xJ[W]??=VT,Y=setTimeout(J,xJ[W]),xJ[W]=Math.min(xJ[W]*2,Kh)},Z.onmessage=(V)=>X(V.data),G.socket=Z,G.url=Z.url,G.ready=new Promise((V)=>{Z.onopen=()=>{xJ[W]=VT,V(G),G.reopenHandlers.forEach((U)=>U())}}),G.send=(V)=>{if(Z.readyState===1)Z.send(V)}};return G.forceReconnect=J,J(),oT[W]=G,G};if(typeof window<"u"){let W=(X)=>{JG.info("\u26A1 [GenosRTC] Network event detected. Forcing reconnection\u2026"),Object.values(oT).forEach((G)=>{if(G.socket&&G.socket.readyState!==WebSocket.OPEN&&(X||G.socket.readyState!==WebSocket.CONNECTING))G.forceReconnect()})};window.addEventListener("online",()=>{JG.info("\u2705 Reconnected to the network."),W(!0)}),window.addEventListener("offline",async()=>{JG.info("\u274C Disconnected from the network.")}),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="visible")W()})}var Dh=(W)=>()=>lT(Yh(W).map(([X,G])=>[X,G.socket])),UG={},Ch=10,nT="x",iT="EVENT",Th=/pow:\s*(\d+)\s*bits needed\.?/i,HQ=new Set,rT=Mz.utils.randomSecretKey(),Mh=zz(Mz.getPublicKey(rT)),Pz={},vJ={},Ph={},aT=()=>Math.floor(Date.now()/1000),sT=(W)=>Ph[W]??=ru(W,1e4)+20000,uJ=(W)=>W.replace(/\/$/,""),Rh="https://cdn.jsdelivr.net/gh/estebanrfp/gdb@main/relays.json",tT=(W)=>Array.isArray(W)?[...new Set(W.filter((X)=>X?.startsWith?.("wss://")))]:[],eT="genosrtc_relays",Lh=()=>{try{return tT(JSON.parse(globalThis.localStorage?.getItem(eT)))}catch{return[]}},Bh=()=>fetch(`${Rh}?r=${Math.random().toString(36).slice(2)}`,{signal:AbortSignal.timeout(5000)}).then((W)=>W.json()).then(tT).then((W)=>(W.length&&globalThis.localStorage?.setItem(eT,JSON.stringify(W)),W)).catch(()=>[]).then((W)=>(W=W.length?W:Lh(),W.length||JG.warn("\u26A0\uFE0F [GenosRTC] Relay list unreachable - Pass rtc.relayUrls to override."),W)),Eh=(W,X)=>{let[G,Y,J,Z]=DQ(X);if(G===iT)return vJ[Y]?.(Pz[Y],J.content);if(G==="NOTICE"||G==="OK"&&!J){if(+((G==="NOTICE"?Y:Z).match(Th)?.[1]??0)>0){let V=uJ(W);HQ.add(V),UG[V]?.close?.(),delete UG[V]}}},$h=(W)=>{let X=uJ(W);if(UG[X])return UG[X];let G=Oh(X,(Y)=>Eh(X,Y));return UG[X]=G},Jz=async(W,X)=>{let G={kind:sT(W),content:X,pubkey:Mh,created_at:aT(),tags:[[nT,W]]},Y=J4(j7([0,G.pubkey,G.created_at,G.kind,G.tags,G.content])),J=new Uint8Array(await crypto.subtle.digest("SHA-256",Y)),Z=Mz.sign(J,rT);return j7([iT,{...G,id:zz(J),sig:zz(Z)}])},UT=(W,X)=>{return Pz[W]=X,j7(["REQ",W,{kinds:[sT(X)],since:aT(),["#"+nT]:[X]}])},QT=(W)=>{return delete Pz[W],j7(["CLOSE",W])},WM=jh({init:(W)=>{let X=W?.relayUrls?.length?W.relayUrls:null,G=X?Promise.resolve(X):Bh(),Y=X?.length??W.relayRedundancy??Ch;return BQ(Y,(J,Z)=>G.then((V)=>{let U=V[Z]&&$h(V[Z]);return U?U.ready.then(()=>U).catch(()=>null):null}))},subscribe:(W,X,G,Y)=>{let J=TQ(64),Z=TQ(64);vJ[J]=vJ[Z]=(U,Q)=>Y(U,Q,async(N,q)=>{if(HQ.has(uJ(W.url)))return;W.send(await Jz(N,q))});let V=()=>{W.send(UT(J,X)),W.send(UT(Z,G))};return V(),W.reopenHandlers.add(V),()=>{W.reopenHandlers.delete(V),W.send(QT(J)),W.send(QT(Z)),delete vJ[J],delete vJ[Z]}},announce:async(W,X)=>{if(HQ.has(uJ(W.url)))return;W.send(await Jz(X,j7({peerId:w8})))},bye:async(W,X)=>{if(HQ.has(uJ(W.url)))return;W.send(await Jz(X,j7({peerId:w8,bye:1})))}}),le=Dh(UG),Fh={cellSize:10},Sh=5000,xh=3000,kh=2000,_h=2000,yh=1e4,vh=30000,gh=5000,uh=30000,MQ=(W)=>{let X=String(W||"").match(/cell-(\d+)/);return X?Number(X[1]):null},Zz=(W,X)=>{let G=MQ(W);if(G==null)return[];let Y=[];for(let J=1;J<X;J*=2){if(G-J>=0)Y.push(`cell-${G-J}`);if(G+J<X)Y.push(`cell-${G+J}`)}return Y},UQ=(W)=>`c${(MQ(W)||0).toString(36)}`,hh=10,bh=(W,X)=>{let G=+X.cellSize>=2?X.cellSize|0:hh;return Math.max(1,Math.ceil(W/G))},XM=(W)=>{let X=0;for(let G=0;G<W.length;G++)X=Math.imul(X^W.charCodeAt(G),2654435761);return X>>>0},A6=(W,X)=>{let G=0,Y=-1;for(let J=0;J<X;J++){let Z=XM(`${W}:${J}`);if(Z>Y)Y=Z,G=J}return G};function mh(W,X={},G={}){let Y={...Fh,...X},J=1,Z={epoch:0,roster:[w8],set:new Set([w8]),key:w8,C:1,cellId:null,isBridge:!1,bridges:[],edgeBridges:[]},V={cellId:null},U=0,Q=0,N="",q=0,A=0,H=0,I=null,w=null,O=null,T=new Map,x=new Set,u=new Map,$=new Set,S=0,h=new Set,l=new Map,p=()=>Math.min(150,Math.ceil(Math.log2(Z.C+1))*2+3),t=(Q0)=>Zz(Q0,Z.C),_=W.on?.bind(W),e=W.off?.bind(W);if(_)W.on=(Q0,S0)=>String(Q0).startsWith("mesh:")?d(Q0,S0):_(Q0,S0);if(e)W.off=(Q0,S0)=>String(Q0).startsWith("mesh:")?u.get(Q0)?.delete(S0):e(Q0,S0);let H0=(Q0)=>(x.add(Q0),()=>x.delete(Q0)),g=(Q0,S0)=>{for(let m0 of x)try{m0(Q0,S0)}catch(G0){JG.error("\uD83D\uDD78\uFE0F [Cells] Error in deliver handler:",G0)}},d=(Q0,S0)=>{if(!u.has(Q0))u.set(Q0,new Set);return u.get(Q0).add(S0),()=>u.get(Q0)?.delete(S0)},P=(Q0,...S0)=>{let m0=u.get(Q0);if(m0)for(let G0 of m0)try{G0(...S0)}catch{}},E=(Q0)=>{try{return typeof Q0==="string"?JSON.parse(Q0):Q0}catch{return null}},f=()=>`${w8}:${Date.now().toString(36)}:${(S++&65535).toString(36)}`,r=()=>{if($.size>Sh)$.delete($.values().next().value)},o=()=>[...new Set([...W._census(),w8])].sort(),B=(Q0,S0,m0)=>S0.filter((G0)=>A6(G0,m0)===Q0),F=(Q0,S0,m0)=>{if(Q0==null)return null;let G0=(k0)=>XM(`${k0}@${Q0}`),K0=null,P0=-1;for(let k0 of B(Q0,S0,m0)){let C1=G0(k0);if(C1>P0)P0=C1,K0=k0}return K0},y=(Q0)=>{let S0=Z.audience?.get(Q0);if(!S0)return[];return Object.keys(W.getPeers?.()||{}).filter((m0)=>S0.has(m0))},v=(Q0,S0)=>{if(Q0!==w&&!(Z.isBridge&&Z.bridges.some((F0)=>UQ(F0)===Q0)))return;let m0=E(S0);if(!m0?.id||!m0?.t)return;if($.has(m0.id))return;$.add(m0.id),r();let{t:G0,id:K0,ttl:P0,data:k0,origin:C1,originCell:Q1}=m0,Y0=Z.cellId;if(G0==="ping"&&k0?.pingId&&k0.target===w8&&C1!==w8){let F0={t:"pong",id:f(),ttl:p(),data:{pingId:k0.pingId,receivedAt:Date.now()},origin:w8,originCell:Y0},F1=W.getPeers?.()?.[C1]?[C1]:y(Y0);I?.send(JSON.stringify(F0),F1)}if(G0==="pong"&&k0?.pingId){let F0=l.get(k0.pingId);if(F0)clearTimeout(F0.timeout),F0.resolve(Date.now()-F0.start),l.delete(k0.pingId)}if(G0==="msg"&&C1!==w8)g(k0,C1);if(!Z.isBridge)return;if((P0??0)<=0)return;let B0=(F0,F1,W8=null)=>{if(!F0||!F1.length)return;let T1={t:G0,id:K0,ttl:W8??(P0??p())-1,data:k0,origin:C1||w8,originCell:Q1||Y0};F0.send(JSON.stringify(T1),F1)};if(Q0===w){for(let F0 of t(Y0))B0(R(F0),y(F0));return}B0(I,y(Y0));for(let F0 of t(Y0))if(UQ(F0)!==Q0)B0(R(F0),y(F0))},R=(Q0)=>{let S0=UQ(Q0),m0=W.channel(S0);if(!h.has(S0))h.add(S0),m0.on("message",(G0)=>v(S0,G0));return m0},m=()=>{if(!Z.cellId)return;if(w=UQ(Z.cellId),I=W.channel(w),!h.has(w))h.add(w),I.on("message",(Q0)=>v(w,Q0));if(Z.isBridge)for(let Q0 of t(Z.cellId))R(Q0)},J0=(Q0,S0)=>{if(!Q0.cellId||!Q0.set.has(S0))return!1;let m0=`cell-${A6(S0,Q0.C)}`;return m0===Q0.cellId||Q0.bridges.includes(m0)||Zz(m0,Q0.C).includes(Q0.cellId)&&F(A6(S0,Q0.C),Q0.roster,Q0.C)===S0},U0=(Q0)=>Z.set.size<2&&(V.set?.size??0)<2||J0(Z,Q0)||Date.now()<U&&J0(V,Q0),N0=()=>{let Q0=W.getPeers?.()||{};for(let S0 of Object.keys(Q0))if(!U0(S0))Q0[S0].close?.()};G.admit=U0;let $0=()=>({epoch:Z.epoch,cellId:Z.cellId,isBridge:Z.isBridge,bridges:Z.bridges,roster:[...Z.roster],cellSize:J,dynamicTTL:p(),totalCells:Z.C}),u0=()=>{A=Date.now();for(let[Q0,S0]of T){if(Q0===w8)continue;P("mesh:peer-state",{id:Q0,cell:S0.cell,bridges:S0.bridges,timestamp:A})}},q1=(Q0)=>{let S0=bh(Q0.length,Y);J=Math.ceil(Q0.length/S0);let m0=`cell-${A6(w8,S0)}`,G0=new Map,K0=new Set,P0=new Map,k0=(F0)=>P0.get(F0)??P0.set(F0,new Set).get(F0);for(let F0 of Q0)k0(`cell-${A6(F0,S0)}`).add(F0);let C1=new Map,Q1=(F0)=>C1.has(F0)?C1.get(F0):C1.set(F0,F(F0,Q0,S0)).get(F0);for(let F0 of new Set(Q0.map((F1)=>A6(F1,S0)))){let F1=`cell-${F0}`;for(let W8 of Zz(F1,S0)){if(MQ(W8)<F0)continue;for(let T1 of[Q1(F0),Q1(MQ(W8))]){if(!T1)continue;let H1=`cell-${A6(T1,S0)}`===F1?W8:F1,c=G0.get(T1)??[];if(!c.includes(H1))c.push(H1);if(G0.set(T1,c),k0(F1).add(T1),k0(W8).add(T1),F1===m0||W8===m0)K0.add(T1)}}}let Y0=G0.get(w8)??[],B0=Z.cellId!==m0||String(Z.bridges)!==String(Y0);V=Z,Z={epoch:Z.epoch+1,roster:Q0,set:new Set(Q0),key:Q0.join("|"),C:S0,cellId:m0,isBridge:Y0.length>0,bridges:Y0,edgeBridges:[...K0],audience:P0},H=Date.now(),T.clear();for(let F0 of Q0){let F1=G0.get(F0)??[];T.set(F0,{cell:`cell-${A6(F0,S0)}`,isBridge:F1.length>0,bridges:F1})}if(U=Date.now()+gh,B0)m();JG.info("\uD83D\uDD78\uFE0F [Cells] seal",{epoch:Z.epoch,myCell:m0,bridges:Y0,C:S0,roster:Q0.length}),u0(),P("mesh:state",$0())},g1=()=>{let Q0=o(),S0=Q0.join("|");if(S0===Z.key)Q=0;else{let m0=Date.now();if(Q||=m0,S0!==N)N=S0,q=m0;if(Q0.some((G0)=>!Z.set.has(G0))||Z.edgeBridges.some((G0)=>!Q0.includes(G0))||(W._gone?.()??[]).some((G0)=>Z.set.has(G0))?m0-q>=_h||m0-Q>=yh:m0-Q>=vh)Q=0,q1(Q0)}if(U&&Date.now()>=U)U=0,N0()},h0=()=>{if(O)return;O=setInterval(()=>{if(g1(),Date.now()-A>=uh)u0()},kh)},x1=()=>{if(O)clearInterval(O),O=null},k1=(Q0)=>{return new Promise((S0,m0)=>{let G0=`${Date.now()}-${Math.random().toString(36).slice(2,8)}`,K0=Date.now(),P0=setTimeout(()=>{l.delete(G0),m0(Error("Ping timeout"))},xh);l.set(G0,{start:K0,resolve:S0,reject:m0,timeout:P0,peerId:Q0});let k0={t:"ping",id:f(),ttl:p(),data:{pingId:G0,target:Q0},origin:w8,originCell:Z.cellId};I?.send(JSON.stringify(k0),y(Z.cellId))})};return W.on?.("peer:join",()=>g1()),W.on?.("peer:leave",()=>g1()),q1(o()),h0(),{send:(Q0)=>{let S0={t:"msg",id:f(),ttl:p(),data:Q0,origin:w8,originCell:Z.cellId},m0=JSON.stringify(S0);I.send(m0,y(Z.cellId)),v(w,m0)},on:(Q0,S0)=>Q0==="message"?H0(S0):void 0,ping:k1,getState:()=>({...$0(),knownCells:new Set([...T.values()].map((Q0)=>Q0.cell)).size}),getPeerInfo:()=>new Map(T),getStableRoster:()=>[...Z.roster],getKnownCells:()=>{let Q0=new Map;for(let[S0,{cell:m0}]of T)if(!Q0.has(m0))Q0.set(m0,{lastSeen:H,peerId:S0});return Q0},getCellSize:()=>J,destroy:()=>{x1(),l.forEach((Q0)=>clearTimeout(Q0.timeout)),l.clear()}}}function fh(W,X,G){let Y={},J=WM({...W,admit:(Q)=>Y.admit?.(Q)??!0},X,G),Z=W.overlay||{},V=mh(J,Z,Y),U=new Map;return{on:(Q,N)=>J.on(Q,N),off:(Q,N)=>J.off?.(Q,N),channel:(Q)=>{if(U.has(Q))return U.get(Q);let N=J.channel(Q),q={send:(A,H)=>{if(H){let I=[].concat(H),w=J.getPeers?.()||{};if(I.every((O)=>w[O]))return N.send(A,H)}V.send({_ch:Q,_d:A,_t:H})},on:(A,H)=>{if(A==="message")V.on("message",(I,w)=>{if(I?._ch!==Q)return;if(I._t&&![].concat(I._t).includes(w8))return;H(I._d,w)}),N.on(A,H);else N.on(A,H)},off:(A,H)=>N.off?.(A,H),_original:N};return U.set(Q,q),q},get id(){return J.id},get peers(){return J.peers},getPeers:()=>J.getPeers?.()||{},mesh:V,_room:J,getState:()=>V.getState(),getPeerInfo:()=>V.getPeerInfo(),ping:(Q)=>V.ping(Q),leave:()=>{V.destroy(),U.clear(),J.leave()},destroy:()=>{V.destroy(),U.clear()}}}var Rz=(W,X,G)=>W?.cells||W?.overlay?fh(W,X,G):WM(W,X,G);import{randomBytes as CS}from"crypto";function ph(){var W,X=!1,G=this;G._DeArray=function(Y,J,Z){return[Y.slice(J,J+Z)]},G._EnArray=function(Y,J,Z,V){for(var U=0;U<Z;Y[J+U]=V[U]?V[U]:0,U++);},G._DeChar=function(Y,J){return String.fromCharCode(Y[J])},G._EnChar=function(Y,J,Z){Y[J]=Z.charCodeAt(0)},G._DeInt=function(Y,J){var Z=X?W.len-1:0,V=X?-1:1,U=Z+V*W.len,Q,N,q;for(Q=0,N=Z,q=1;N!=U;Q+=Y[J+N]*q,N+=V,q*=256);if(W.bSigned&&Q&Math.pow(2,W.len*8-1))Q-=Math.pow(2,W.len*8);return Q},G._EnInt=function(Y,J,Z){var V=X?W.len-1:0,U=X?-1:1,Q=V+U*W.len,N;Z=Z<W.min?W.min:Z>W.max?W.max:Z;for(N=V;N!=Q;Y[J+N]=Z&255,N+=U,Z>>=8);},G._DeString=function(Y,J,Z){for(var V=Array(Z),U=0;U<Z;V[U]=String.fromCharCode(Y[J+U]),U++);return V.join("")},G._EnString=function(Y,J,Z,V){for(var U,Q=0;Q<Z;Y[J+Q]=(U=V.charCodeAt(Q))?U:0,Q++);},G._De754=function(Y,J){var Z,V,U,Q,N,q,A,H,I,w;A=W.mLen,H=W.len*8-W.mLen-1,w=(1<<H)-1,I=w>>1,Q=X?0:W.len-1,N=X?1:-1,Z=Y[J+Q],Q+=N,q=-7;for(V=Z&(1<<-q)-1,Z>>=-q,q+=H;q>0;V=V*256+Y[J+Q],Q+=N,q-=8);for(U=V&(1<<-q)-1,V>>=-q,q+=A;q>0;U=U*256+Y[J+Q],Q+=N,q-=8);switch(V){case 0:V=1-I;break;case w:return U?NaN:(Z?-1:1)*(1/0);default:U=U+Math.pow(2,A),V=V-I;break}return(Z?-1:1)*U*Math.pow(2,V-A)},G._En754=function(Y,J,Z){var V,U,Q,N,q,A,H,I,w,O;if(H=W.mLen,I=W.len*8-W.mLen-1,O=(1<<I)-1,w=O>>1,V=Z<0?1:0,Z=Math.abs(Z),isNaN(Z)||Z==1/0)Q=isNaN(Z)?1:0,U=O;else{if(U=Math.floor(Math.log(Z)/Math.LN2),Z*(A=Math.pow(2,-U))<1)U--,A*=2;if(U+w>=1)Z+=W.rt/A;else Z+=W.rt*Math.pow(2,1-w);if(Z*A>=2)U++,A/=2;if(U+w>=O)Q=0,U=O;else if(U+w>=1)Q=(Z*A-1)*Math.pow(2,H),U=U+w;else Q=Z*Math.pow(2,w-1)*Math.pow(2,H),U=0}for(N=X?W.len-1:0,q=X?-1:1;H>=8;Y[J+N]=Q&255,N+=q,Q/=256,H-=8);for(U=U<<H|Q,I+=H;I>0;Y[J+N]=U&255,N+=q,U/=256,I-=8);Y[J+N-q]|=V*128},G._DeInt64=function(Y,J){var Z=X?0:7,V=X?1:-1,U=Z+V*8,Q=[0,0,!W.bSigned],N,q,A;for(N=Z,A=1,q=0;N!=U;Q[A]=(Q[A]<<8>>>0)+Y[J+N],N+=V,q++,A=q<4?1:0);return Q},G._EnInt64=function(Y,J,Z){var V=X?0:7,U=X?1:-1,Q=V+U*8,N,q,A,H;for(N=V,A=1,q=0,H=24;N!=Q;Y[J+N]=Z[A]>>H&255,N+=U,q++,A=q<4?1:0,H=24-8*(q%4));},G._sPattern="(\\d + )?([AxcbBhHsfdiIlLqQ])",G._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},G._elLut={A:{en:G._EnArray,de:G._DeArray},s:{en:G._EnString,de:G._DeString},c:{en:G._EnChar,de:G._DeChar},b:{en:G._EnInt,de:G._DeInt,len:1,bSigned:!0,min:-Math.pow(2,7),max:Math.pow(2,7)-1},B:{en:G._EnInt,de:G._DeInt,len:1,bSigned:!1,min:0,max:Math.pow(2,8)-1},h:{en:G._EnInt,de:G._DeInt,len:2,bSigned:!0,min:-Math.pow(2,15),max:Math.pow(2,15)-1},H:{en:G._EnInt,de:G._DeInt,len:2,bSigned:!1,min:0,max:Math.pow(2,16)-1},i:{en:G._EnInt,de:G._DeInt,len:4,bSigned:!0,min:-Math.pow(2,31),max:Math.pow(2,31)-1},I:{en:G._EnInt,de:G._DeInt,len:4,bSigned:!1,min:0,max:Math.pow(2,32)-1},l:{en:G._EnInt,de:G._DeInt,len:4,bSigned:!0,min:-Math.pow(2,31),max:Math.pow(2,31)-1},L:{en:G._EnInt,de:G._DeInt,len:4,bSigned:!1,min:0,max:Math.pow(2,32)-1},f:{en:G._En754,de:G._De754,len:4,mLen:23,rt:Math.pow(2,-24)-Math.pow(2,-77)},d:{en:G._En754,de:G._De754,len:8,mLen:52,rt:0},q:{en:G._EnInt64,de:G._DeInt64,bSigned:!0},Q:{en:G._EnInt64,de:G._DeInt64,bSigned:!1}},G._UnpackSeries=function(Y,J,Z,V){for(var U=W.de,Q=[],N=0;N<Y;Q.push(U(Z,V+N*J)),N++);return Q},G._PackSeries=function(Y,J,Z,V,U,Q){for(var N=W.en,q=0;q<Y;N(Z,V+q*J,U[Q+q]),q++);},G.Unpack=function(Y,J,Z){X=Y.charAt(0)!="<",Z=Z?Z:0;var V=new RegExp(this._sPattern,"g"),U,Q,N,q=[];while(U=V.exec(Y)){if(Q=U[1]==null||U[1]==""?1:parseInt(U[1]),N=this._lenLut[U[2]],Z+Q*N>J.length)return;switch(U[2]){case"A":case"s":q.push(this._elLut[U[2]].de(J,Z,Q));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[U[2]],q.push(this._UnpackSeries(Q,N,J,Z));break}Z+=Q*N}return Array.prototype.concat.apply([],q)},G.PackTo=function(Y,J,Z,V){X=Y.charAt(0)!="<";var U=new RegExp(this._sPattern,"g"),Q,N,q,A,H=0;while(Q=U.exec(Y)){if(N=Q[1]==null||Q[1]==""?1:parseInt(Q[1]),q=this._lenLut[Q[2]],Z+N*q>J.length)return!1;switch(Q[2]){case"A":case"s":if(H+1>V.length)return!1;this._elLut[Q[2]].en(J,Z,N,V[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[Q[2]],H+N>V.length)return!1;this._PackSeries(N,q,J,Z,V,H),H+=N;break;case"x":for(A=0;A<N;A++)J[Z+A]=0;break}Z+=N*q}return J},G.Pack=function(Y,J){return this.PackTo(Y,Array(this.CalcLength(Y)),0,J)},G.CalcLength=function(Y){var J=new RegExp(this._sPattern,"g"),Z=0,V;while(V=J.exec(Y))Z+=(V[1]==null||V[1]==""?1:parseInt(V[1]))*this._lenLut[V[2]];return Z}}var X8=new ph;var xS=m1(HM(),1),AH=m1(uz(),1);import{createSocket as pd}from"dgram";import{createSocket as dd}from"dgram";import*as kS from"net";import{connect as od}from"net";import{createSign as id,randomBytes as rd,webcrypto as ad}from"crypto";var FN0=m1(bM(),1);var R7={};zA(R7,{verifySchema:()=>Wf,fromBER:()=>N4,compareSchema:()=>Z4,VisibleString:()=>FW,ViewWriter:()=>dJ,VideotexString:()=>RG,ValueBlock:()=>X9,Utf8String:()=>b5,UniversalString:()=>CG,UTCTime:()=>SW,TimeOfDay:()=>eQ,TeletexString:()=>PG,TIME:()=>GN,Set:()=>p9,Sequence:()=>y9,Repeated:()=>wG,RelativeObjectIdentifier:()=>sQ,RawData:()=>SP,PrintableString:()=>MG,Primitive:()=>O6,OctetString:()=>M7,ObjectIdentifier:()=>OG,NumericString:()=>TG,Null:()=>T7,Integer:()=>D6,IA5String:()=>LG,HexBlock:()=>C7,GraphicString:()=>BG,GeneralizedTime:()=>FG,GeneralString:()=>EG,Enumerated:()=>KG,EndOfContent:()=>rQ,Duration:()=>XN,DateTime:()=>WN,DEFAULT_MAX_NODES:()=>tM,DEFAULT_MAX_DEPTH:()=>sM,DEFAULT_MAX_CONTENT_LENGTH:()=>eM,DATE:()=>tQ,Constructed:()=>l8,Choice:()=>nJ,CharacterString:()=>$G,Boolean:()=>jG,BmpString:()=>DG,BitString:()=>P7,BaseStringBlock:()=>nQ,BaseBlock:()=>y8,Any:()=>U4});/*!
|
|
148
148
|
* MIT License
|
|
149
149
|
*
|
|
150
150
|
* Copyright (c) 2017-2024 Peculiar Ventures, LLC
|
|
@@ -239,18 +239,18 @@ ${W.join(`
|
|
|
239
239
|
`)}static pad(W=0){return"".padStart(2*W," ")}static serializeObj(W,X=0){let G=[],Y=this.pad(X++),J="",Z=W[a1.VALUE];if(Z)J=` ${Z}`;G.push(`${Y}${W[a1.NAME]}:${J}`),Y=this.pad(X);for(let V in W){if(typeof V==="symbol")continue;let U=W[V],Q=V?`${V}: `:"";if(typeof U==="string"||typeof U==="number"||typeof U==="boolean")G.push(`${Y}${Q}${U}`);else if(U instanceof Date)G.push(`${Y}${Q}${U.toUTCString()}`);else if(Array.isArray(U))for(let N of U)N[a1.NAME]=V,G.push(...this.serializeObj(N,X));else if(U instanceof a1)U[a1.NAME]=V,G.push(...this.serializeObj(U,X));else if(y0.isBufferSource(U))if(V)G.push(`${Y}${Q}`),G.push(...this.serializeBufferSource(U,X+1));else G.push(...this.serializeBufferSource(U,X));else if("toTextObject"in U){let N=U.toTextObject();N[a1.NAME]=V,G.push(...this.serializeObj(N,X))}else throw TypeError("Cannot serialize data in text format. Unsupported type.")}return G}static serializeBufferSource(W,X=0){let G=this.pad(X),Y=y0.toUint8Array(W),J=[];for(let Z=0;Z<Y.length;){let V=[];for(let U=0;U<16&&Z<Y.length;U++){if(U===8)V.push("");let Q=Y[Z++].toString(16).padStart(2,"0");V.push(Q)}J.push(`${G}${V.join(" ")}`)}return J}static serializeAlgorithm(W){return this.algorithmSerializer.toTextObject(W)}}_6.oidSerializer=M4;_6.algorithmSerializer=b3;var QY;class v6{get rawData(){if(!R1(this,QY,"f"))j8(this,QY,x0.serialize(this.asn),"f");return R1(this,QY,"f")}constructor(...W){if(QY.set(this,void 0),y0.isBufferSource(W[0]))this.asn=x0.parse(W[0],W[1]),j8(this,QY,y0.toArrayBuffer(W[0]),"f"),this.onInit(this.asn);else this.asn=W[0],this.onInit(this.asn)}equal(W){if(W instanceof v6)return fM(W.rawData,this.rawData);return!1}toString(W="text"){switch(W){case"asn":return x0.toString(this.rawData);case"text":return _6.serialize(this.toTextObject());case"hex":return i0.ToHex(this.rawData);case"base64":return i0.ToBase64(this.rawData);case"base64url":return i0.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 a1(this.getTextName(),{},W)}}QY=new WeakMap;v6.NAME="ASN";class U5 extends v6{constructor(...W){let X;if(y0.isBufferSource(W[0]))X=y0.toArrayBuffer(W[0]);else X=x0.serialize(new D9({extnID:W[0],critical:W[1],extnValue:new J1(y0.toArrayBuffer(W[2]))}));super(X,D9)}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[a1.NAME]===U5.NAME)W[a1.NAME]=M4.toString(this.type);return W}}var m3;class k6{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[m3]="CryptoProvider",typeof self<"u"&&typeof crypto<"u")this.set(k6.DEFAULT,crypto);else if(typeof global<"u"&&global.crypto&&global.crypto.subtle)this.set(k6.DEFAULT,global.crypto)}clear(){this.items.clear()}delete(W){return this.items.delete(W)}forEach(W,X){return this.items.forEach(W,X)}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=k6.DEFAULT){let X=this.items.get(W.toLowerCase());if(!X)throw Error(`Cannot get Crypto by name '${W}'`);return X}set(W,X){if(typeof W==="string"){if(!X)throw TypeError("Argument 'value' is required");this.items.set(W.toLowerCase(),X)}else this.items.set(k6.DEFAULT,W);return this}}m3=Symbol.toStringTag;k6.DEFAULT="default";var u8=new k6,Np=/^[0-2](?:\.[1-9][0-9]*)+$/;function qp(W){return new RegExp(Np).test(W)}class Jj{constructor(W={}){this.items={};for(let X in W)this.register(X,W[X])}get(W){return this.items[W]||null}findId(W){if(!qp(W))return this.get(W);return W}register(W,X){this.items[W]=X,this.items[X]=W}}var d9=new Jj;d9.register("CN","2.5.4.3");d9.register("L","2.5.4.7");d9.register("ST","2.5.4.8");d9.register("O","2.5.4.10");d9.register("OU","2.5.4.11");d9.register("C","2.5.4.6");d9.register("DC","0.9.2342.19200300.100.1.25");d9.register("E","1.2.840.113549.1.9.1");d9.register("G","2.5.4.42");d9.register("I","2.5.4.43");d9.register("SN","2.5.4.4");d9.register("T","2.5.4.12");function Hp(W,X){return`\\${i0.ToHex(i0.FromUtf8String(X)).toUpperCase()}`}function Ap(W){return W.replace(/([,+"\\<>;])/g,"\\$1").replace(/^([ #])/,"\\$1").replace(/([ ]$)/,"\\$1").replace(/([\r\n\t])/,Hp)}class n5{static isASCII(W){for(let X=0;X<W.length;X++)if(W.charCodeAt(X)>255)return!1;return!0}static isPrintableString(W){return/^[A-Za-z0-9 '()+,-./:=?]*$/g.test(W)}constructor(W,X={}){this.extraNames=new Jj,this.asn=new V8;for(let G in X)if(Object.prototype.hasOwnProperty.call(X,G)){let Y=X[G];this.extraNames.register(G,Y)}if(typeof W==="string")this.asn=this.fromString(W);else if(W instanceof V8)this.asn=W;else if(y0.isBufferSource(W))this.asn=x0.parse(W,V8);else this.asn=this.fromJSON(W)}getField(W){let X=this.extraNames.findId(W)||d9.findId(W),G=[];for(let Y of this.asn)for(let J of Y)if(J.type===X)G.push(J.value.toString());return G}getName(W){return this.extraNames.get(W)||d9.get(W)}toString(){return this.asn.map((W)=>W.map((X)=>{let G=this.getName(X.type)||X.type,Y=X.value.anyValue?`#${i0.ToHex(X.value.anyValue)}`:Ap(X.value.toString());return`${G}=${Y}`}).join("+")).join(", ")}toJSON(){var W;let X=[];for(let G of this.asn){let Y={};for(let J of G){let Z=this.getName(J.type)||J.type;(W=Y[Z])!==null&&W!==void 0||(Y[Z]=[]),Y[Z].push(J.value.anyValue?`#${i0.ToHex(J.value.anyValue)}`:J.value.toString())}X.push(Y)}return X}fromString(W){let X=new V8,G=/(\d\.[\d.]*\d|[A-Za-z]+)=((?:"")|(?:".*?[^\\]")|(?:[^,+"\\](?=[,+]|$))|(?:[^,+].*?(?:[^\\][,+]))|(?:))([,+])?/g,Y=null,J=",";while(Y=G.exec(`${W},`)){let[,Z,V]=Y,U=V[V.length-1];if(U===","||U==="+")V=V.slice(0,V.length-1),Y[3]=U;let Q=Y[3];Z=this.getTypeOid(Z);let N=this.createAttribute(Z,V);if(J==="+")X[X.length-1].push(N);else X.push(new T6([N]));J=Q}return X}fromJSON(W){let X=new V8;for(let G of W){let Y=new T6;for(let J in G){let Z=this.getTypeOid(J),V=G[J];for(let U of V){let Q=this.createAttribute(Z,U);Y.push(Q)}}X.push(Y)}return X}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,X){let G=new yG({type:W});if(typeof X==="object")for(let Y in X)switch(Y){case"ia5String":G.value.ia5String=X[Y];break;case"utf8String":G.value.utf8String=X[Y];break;case"universalString":G.value.universalString=X[Y];break;case"bmpString":G.value.bmpString=X[Y];break;case"printableString":G.value.printableString=X[Y];break}else if(X[0]==="#")G.value.anyValue=i0.FromHex(X.slice(1));else{let Y=this.processStringValue(X);if(W===this.getName("E")||W===this.getName("DC"))G.value.ia5String=Y;else if(n5.isPrintableString(Y))G.value.printableString=Y;else G.value.utf8String=Y}return G}processStringValue(W){let X=/"(.*?[^\\])?"/.exec(W);if(X)W=X[1];return W.replace(/\\0a/ig,`
|
|
240
240
|
`).replace(/\\0d/ig,"\r").replace(/\\0g/ig,"\t").replace(/\\(.)/g,"$1")}toArrayBuffer(){return x0.serialize(this.asn)}async getThumbprint(...W){var X;let G,Y="SHA-1";if(W.length>=1&&!((X=W[0])===null||X===void 0?void 0:X.subtle))Y=W[0]||Y,G=W[1]||u8.get();else G=W[0]||u8.get();return await G.subtle.digest(Y,this.toArrayBuffer())}}var f3="Cannot initialize GeneralName from ASN.1 data.",B3=`${f3} Unsupported string format in use.`,zp=`${f3} Value doesn't match to GUID regular expression.`,E3=/^([0-9a-f]{8})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{12})$/i,$3="1.3.6.1.4.1.311.25.1",F3="1.3.6.1.4.1.311.20.2.3",ow="dns",nw="dn",iw="email",rw="ip",aw="url",sw="guid",tw="upn",aN="id";class C4 extends v6{constructor(...W){let X;if(W.length===2)switch(W[0]){case nw:{let G=new n5(W[1]).toArrayBuffer(),Y=x0.parse(G,V8);X=new U1({directoryName:Y});break}case ow:X=new U1({dNSName:W[1]});break;case iw:X=new U1({rfc822Name:W[1]});break;case sw:{let G=new RegExp(E3,"i").exec(W[1]);if(!G)throw Error("Cannot parse GUID value. Value doesn't match to regular expression");let Y=G.slice(1).map((J,Z)=>{if(Z<3)return i0.ToHex(new Uint8Array(i0.FromHex(J)).reverse());return J}).join("");X=new U1({otherName:new kW({typeId:$3,value:x0.serialize(new J1(i0.FromHex(Y)))})});break}case rw:X=new U1({iPAddress:W[1]});break;case aN:X=new U1({registeredID:W[1]});break;case tw:{X=new U1({otherName:new kW({typeId:F3,value:x0.serialize(QI.toASN(W[1]))})});break}case aw:X=new U1({uniformResourceIdentifier:W[1]});break;default:throw Error("Cannot create GeneralName. Unsupported type of the name")}else if(y0.isBufferSource(W[0]))X=x0.parse(W[0],U1);else X=W[0];super(X)}onInit(W){if(W.dNSName!=null)this.type=ow,this.value=W.dNSName;else if(W.rfc822Name!=null)this.type=iw,this.value=W.rfc822Name;else if(W.iPAddress!=null)this.type=rw,this.value=W.iPAddress;else if(W.uniformResourceIdentifier!=null)this.type=aw,this.value=W.uniformResourceIdentifier;else if(W.registeredID!=null)this.type=aN,this.value=W.registeredID;else if(W.directoryName!=null)this.type=nw,this.value=new n5(W.directoryName).toString();else if(W.otherName!=null)if(W.otherName.typeId===$3){this.type=sw;let X=x0.parse(W.otherName.value,J1),G=new RegExp(E3,"i").exec(i0.ToHex(X));if(!G)throw Error(zp);this.value=G.slice(1).map((Y,J)=>{if(J<3)return i0.ToHex(new Uint8Array(i0.FromHex(Y)).reverse());return Y}).join("-")}else if(W.otherName.typeId===F3)this.type=tw,this.value=x0.parse(W.otherName.value,g8).toString();else throw Error(B3);else throw Error(B3)}toJSON(){return{type:this.type,value:this.value}}toTextObject(){let W;switch(this.type){case nw:case ow:case sw:case rw:case aN:case tw:case aw:W=this.type.toUpperCase();break;case iw:W="Email";break;default:throw Error("Unsupported GeneralName type")}let X=this.value;if(this.type===aN)X=M4.toString(X);return new a1(W,void 0,X)}}class y6 extends v6{constructor(W){let X;if(W instanceof K8)X=W;else if(Array.isArray(W)){let G=[];for(let Y of W)if(Y instanceof U1)G.push(Y);else{let J=x0.parse(new C4(Y.type,Y.value).rawData,U1);G.push(J)}X=new K8(G)}else if(y0.isBufferSource(W))X=x0.parse(W,K8);else throw Error("Cannot initialize GeneralNames. Incorrect incoming arguments");super(X)}onInit(W){let X=[];for(let G of W){let Y=null;try{Y=new C4(G)}catch{continue}X.push(Y)}this.items=X}toJSON(){return this.items.map((W)=>W.toJSON())}toTextObject(){let W=super.toTextObjectEmpty();for(let X of this.items){let G=X.toTextObject(),Y=W[G[a1.NAME]];if(!Array.isArray(Y))Y=[],W[G[a1.NAME]]=Y;Y.push(G)}return W}}y6.NAME="GeneralNames";var VV="-{5}",QV="\\n",Ip=`[^${QV}]+`,wp=`${VV}BEGIN (${Ip}(?=${VV}))${VV}`,jp=`${VV}END \\1${VV}`,HY="\\n",Kp=`[^:${QV}]+`,Op=`(?:[^${QV}]+${HY}(?: +[^${QV}]+${HY})*)`,Dp="[a-zA-Z0-9=+/]+",Cp=`(?:${Dp}${HY})+`,S3=`${wp}${HY}(?:((?:${Kp}: ${Op})+))?${HY}?(${Cp})${jp}`;class T9{static isPem(W){return typeof W==="string"&&new RegExp(S3,"g").test(W.replace(/\r/g,""))}static decodeWithHeaders(W){W=W.replace(/\r/g,"");let X=new RegExp(S3,"g"),G=[],Y=null;while(Y=X.exec(W)){let J=Y[3].replace(new RegExp(`[${QV}]+`,"g"),""),Z={type:Y[1],headers:[],rawData:i0.FromBase64(J)},V=Y[2];if(V){let U=V.split(new RegExp(HY,"g")),Q=null;for(let N of U){let[q,A]=N.split(/:(.*)/);if(A===void 0){if(!Q)throw Error("Cannot parse PEM string. Incorrect header value");Q.value+=q.trim()}else{if(Q)Z.headers.push(Q);Q={key:q,value:A.trim()}}}if(Q)Z.headers.push(Q)}G.push(Z)}return G}static decode(W){return this.decodeWithHeaders(W).map((G)=>G.rawData)}static decodeFirst(W){let X=this.decode(W);if(!X.length)throw RangeError("PEM string doesn't contain any objects");return X[0]}static encode(W,X){if(Array.isArray(W)){let G=[];if(X)W.forEach((Y)=>{if(!y0.isBufferSource(Y))throw TypeError("Cannot encode array of BufferSource in PEM format. Not all items of the array are BufferSource");G.push(this.encodeStruct({type:X,rawData:y0.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");G.push(this.encodeStruct(Y))});return G.join(`
|
|
241
241
|
`)}else{if(!X)throw Error("Required argument 'tag' is missed");return this.encodeStruct({type:X,rawData:y0.toArrayBuffer(W)})}}static encodeStruct(W){var X;let G=W.type.toLocaleUpperCase(),Y=[];if(Y.push(`-----BEGIN ${G}-----`),(X=W.headers)===null||X===void 0?void 0:X.length){for(let Q of W.headers)Y.push(`${Q.key}: ${Q.value}`);Y.push("")}let J=i0.ToBase64(W.rawData),Z,V=0,U=Array();while(V<J.length){if(J.length-V<64)Z=J.substring(V);else Z=J.substring(V,V+64),V+=64;if(Z.length!==0){if(U.push(Z),Z.length<64)break}else break}return Y.push(...U),Y.push(`-----END ${G}-----`),Y.join(`
|
|
242
|
-
`)}}T9.CertificateTag="CERTIFICATE";T9.CrlTag="CRL";T9.CertificateRequestTag="CERTIFICATE REQUEST";T9.PublicKeyTag="PUBLIC KEY";T9.PrivateKeyTag="PRIVATE KEY";class T4 extends v6{static isAsnEncoded(W){return y0.isBufferSource(W)||typeof W==="string"}static toArrayBuffer(W){if(typeof W==="string")if(T9.isPem(W))return T9.decode(W)[0];else if(i0.isHex(W))return i0.FromHex(W);else if(i0.isBase64(W))return i0.FromBase64(W);else if(i0.isBase64Url(W))return i0.FromBase64Url(W);else throw TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url");else{let X=y0.toUint8Array(W);if(X.length>0&&X[0]===48)return y0.toArrayBuffer(W);let G=i0.ToBinary(W);if(T9.isPem(G))return T9.decode(G)[0];else if(i0.isHex(G))return i0.FromHex(G);else if(i0.isBase64(G))return i0.FromBase64(G);else if(i0.isBase64Url(G))return i0.FromBase64Url(G);throw TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url")}}constructor(...W){if(T4.isAsnEncoded(W[0]))super(T4.toArrayBuffer(W[0]),W[1]);else super(W[0])}toString(W="pem"){switch(W){case"pem":return T9.encode(this.rawData,this.tag);default:return super.toString(W)}}}class i5 extends T4{static async create(W,X=u8.get()){if(W instanceof i5)return W;else if(k6.isCryptoKey(W)){if(W.type!=="public")throw TypeError("Public key is required");let G=await X.subtle.exportKey("spki",W);return new i5(G)}else if(W.publicKey)return W.publicKey;else if(y0.isBufferSource(W))return new i5(W);else throw TypeError("Unsupported PublicKeyType")}constructor(W){if(T4.isAsnEncoded(W))super(W,O9);else super(W);this.tag=T9.PublicKeyTag}async export(...W){let X,G=["verify"],Y={hash:"SHA-256",...this.algorithm};if(W.length>1)Y=W[0]||Y,G=W[1]||G,X=W[2]||u8.get();else X=W[0]||u8.get();let J=this.rawData,Z=x0.parse(this.rawData,O9);if(Z.algorithm.algorithm===$6)J=Tp(Z,J);return X.subtle.importKey("spki",J,Y,!0,G)}onInit(W){let X=H8.resolve(ZX),G=this.algorithm=X.toWebAlgorithm(W.algorithm);switch(W.algorithm.algorithm){case S7:{let Y=x0.parse(W.subjectPublicKey,SZ),J=y0.toUint8Array(Y.modulus);G.publicExponent=y0.toUint8Array(Y.publicExponent),G.modulusLength=(!J[0]?J.slice(1):J).byteLength<<3;break}}}async getThumbprint(...W){var X;let G,Y="SHA-1";if(W.length>=1&&!((X=W[0])===null||X===void 0?void 0:X.subtle))Y=W[0]||Y,G=W[1]||u8.get();else G=W[0]||u8.get();return await G.subtle.digest(Y,this.rawData)}async getKeyIdentifier(...W){let X,G="SHA-1";if(W.length===1)if(typeof W[0]==="string")G=W[0],X=u8.get();else X=W[0];else if(W.length===2)G=W[0],X=W[1];else X=u8.get();let Y=x0.parse(this.rawData,O9);return await X.subtle.digest(G,Y.subjectPublicKey)}toTextObject(){let W=this.toTextObjectEmpty(),X=x0.parse(this.rawData,O9);switch(W.Algorithm=_6.serializeAlgorithm(X.algorithm),X.algorithm.algorithm){case nW:W["EC Point"]=X.subjectPublicKey;break;case S7:default:W["Raw Data"]=X.subjectPublicKey}return W}}function Tp(W,X){return W.algorithm=new R0({algorithm:S7,parameters:null}),X=x0.serialize(W),X}class NV extends U5{static async create(W,X=!1,G=u8.get()){if("name"in W&&"serialNumber"in W)return new NV(W,X);let J=await(await i5.create(W,G)).getKeyIdentifier(G);return new NV(i0.ToHex(J),X)}constructor(...W){if(y0.isBufferSource(W[0]))super(W[0]);else if(typeof W[0]==="string"){let X=new A4({keyIdentifier:new vG(i0.FromHex(W[0]))});super(AN,W[1],x0.serialize(X))}else{let X=W[0],G=X.name instanceof y6?x0.parse(X.name.rawData,K8):X.name,Y=new A4({authorityCertIssuer:G,authorityCertSerialNumber:i0.FromHex(X.serialNumber)});super(AN,W[1],x0.serialize(Y))}}onInit(W){super.onInit(W);let X=x0.parse(W.extnValue,A4);if(X.keyIdentifier)this.keyId=i0.ToHex(X.keyIdentifier);if(X.authorityCertIssuer||X.authorityCertSerialNumber)this.certId={name:X.authorityCertIssuer||[],serialNumber:X.authorityCertSerialNumber?i0.ToHex(X.authorityCertSerialNumber):""}}toTextObject(){let W=this.toTextObjectWithoutValue(),X=x0.parse(this.value,A4);if(X.authorityCertIssuer)W["Authority Issuer"]=new y6(X.authorityCertIssuer).toTextObject();if(X.authorityCertSerialNumber)W["Authority Serial Number"]=X.authorityCertSerialNumber;if(X.keyIdentifier)W[""]=X.keyIdentifier;return W}}NV.NAME="Authority Key Identifier";class Zj extends U5{constructor(...W){if(y0.isBufferSource(W[0])){super(W[0]);let X=x0.parse(this.value,gG);this.ca=X.cA,this.pathLength=X.pathLenConstraint}else{let X=new gG({cA:W[0],pathLenConstraint:W[1]});super(zN,W[2],x0.serialize(X));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 x3;(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"})(x3||(x3={}));class Vj extends U5{constructor(...W){if(y0.isBufferSource(W[0])){super(W[0]);let X=x0.parse(this.value,WZ);this.usages=X.map((G)=>G)}else{let X=new WZ(W[0]);super(TN,W[1],x0.serialize(X));this.usages=W[0]}}toTextObject(){let W=this.toTextObjectWithoutValue();return W[""]=this.usages.map((X)=>M4.toString(X)).join(", "),W}}Vj.NAME="Extended Key Usages";var k3;(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"})(k3||(k3={}));class Uj extends U5{constructor(...W){if(y0.isBufferSource(W[0])){super(W[0]);let X=x0.parse(this.value,GZ);this.usages=X.toNumber()}else{let X=new GZ(W[0]);super(MN,W[1],x0.serialize(X));this.usages=W[0]}}toTextObject(){let W=this.toTextObjectWithoutValue(),X=x0.parse(this.value,GZ);return W[""]=X.toJSON().join(", "),W}}Uj.NAME="Key Usages";class Xq extends U5{static async create(W,X=!1,G=u8.get()){let J=await(await i5.create(W,G)).getKeyIdentifier(G);return new Xq(i0.ToHex(J),X)}constructor(...W){if(y0.isBufferSource(W[0])){super(W[0]);let X=x0.parse(this.value,Y5);this.keyId=i0.ToHex(X)}else{let X=typeof W[0]==="string"?i0.FromHex(W[0]):W[0],G=new Y5(X);super(mI,W[1],x0.serialize(G));this.keyId=i0.ToHex(X)}}toTextObject(){let W=this.toTextObjectWithoutValue(),X=x0.parse(this.value,Y5);return W[""]=X,W}}Xq.NAME="Subject Key Identifier";class Qj extends U5{constructor(...W){if(y0.isBufferSource(W[0]))super(W[0]);else super(hI,W[1],new y6(W[0]||[]).rawData)}onInit(W){super.onInit(W);let X=x0.parse(W.extnValue,LN);this.names=new y6(X)}toTextObject(){let W=this.toTextObjectWithoutValue(),X=this.names.toTextObject();for(let G in X)W[G]=X[G];return W}}Qj.NAME="Subject Alternative Name";class n9{static register(W,X){this.items.set(W,X)}static create(W){let X=new U5(W),G=this.items.get(X.type);if(G)return new G(W);return X}}n9.items=new Map;class Nj extends U5{constructor(...W){var X;if(y0.isBufferSource(W[0])){super(W[0]);let G=x0.parse(this.value,aJ);this.policies=G.map((Y)=>Y.policyIdentifier)}else{let G=W[0],Y=(X=W[1])!==null&&X!==void 0?X:!1,J=new aJ(G.map((Z)=>new uG({policyIdentifier:Z})));super(wN,Y,x0.serialize(J));this.policies=G}}toTextObject(){let W=this.toTextObjectWithoutValue();return W.Policy=this.policies.map((X)=>new a1("",{},M4.toString(X))),W}}Nj.NAME="Certificate Policies";n9.register(wN,Nj);class qj extends U5{constructor(...W){var X;if(y0.isBufferSource(W[0]))super(W[0]);else if(Array.isArray(W[0])&&typeof W[0][0]==="string"){let Y=W[0].map((Z)=>{return new w4({distributionPoint:new I4({fullName:[new U1({uniformResourceIdentifier:Z})]})})}),J=new R6(Y);super(DN,W[1],x0.serialize(J))}else{let G=new R6(W[0]);super(DN,W[1],x0.serialize(G))}(X=this.distributionPoints)!==null&&X!==void 0||(this.distributionPoints=[])}onInit(W){super.onInit(W);let X=x0.parse(W.extnValue,R6);this.distributionPoints=X}toTextObject(){let W=this.toTextObjectWithoutValue();return W["Distribution Point"]=this.distributionPoints.map((X)=>{var G;let Y={};if(X.distributionPoint)Y[""]=(G=X.distributionPoint.fullName)===null||G===void 0?void 0:G.map((J)=>new C4(J).toString()).join(", ");if(X.reasons)Y.Reasons=X.reasons.toString();if(X.cRLIssuer)Y["CRL Issuer"]=X.cRLIssuer.map((J)=>J.toString()).join(", ");return Y}),W}}qj.NAME="CRL Distribution Points";class Hj extends U5{constructor(...W){var X,G,Y,J;if(y0.isBufferSource(W[0]))super(W[0]);else if(W[0]instanceof yW){let Z=new yW(W[0]);super(HN,W[1],x0.serialize(Z))}else{let Z=W[0],V=new yW;tN(V,Z,DI,"ocsp"),tN(V,Z,CI,"caIssuers"),tN(V,Z,TI,"timeStamping"),tN(V,Z,MI,"caRepository");super(HN,W[1],x0.serialize(V))}(X=this.ocsp)!==null&&X!==void 0||(this.ocsp=[]),(G=this.caIssuers)!==null&&G!==void 0||(this.caIssuers=[]),(Y=this.timeStamping)!==null&&Y!==void 0||(this.timeStamping=[]),(J=this.caRepository)!==null&&J!==void 0||(this.caRepository=[])}onInit(W){super.onInit(W),this.ocsp=[],this.caIssuers=[],this.timeStamping=[],this.caRepository=[],x0.parse(W.extnValue,yW).forEach((G)=>{switch(G.accessMethod){case DI:this.ocsp.push(new C4(G.accessLocation));break;case CI:this.caIssuers.push(new C4(G.accessLocation));break;case TI:this.timeStamping.push(new C4(G.accessLocation));break;case MI:this.caRepository.push(new C4(G.accessLocation));break}})}toTextObject(){let W=this.toTextObjectWithoutValue();if(this.ocsp.length)sN(W,"OCSP",this.ocsp);if(this.caIssuers.length)sN(W,"CA Issuers",this.caIssuers);if(this.timeStamping.length)sN(W,"Time Stamping",this.timeStamping);if(this.caRepository.length)sN(W,"CA Repository",this.caRepository);return W}}Hj.NAME="Authority Info Access";function sN(W,X,G){if(G.length===1)W[X]=G[0].toTextObject();else{let Y=new a1("");G.forEach((J,Z)=>{let V=J.toTextObject(),U=`${V[a1.NAME]} ${Z+1}`,Q=Y[U];if(!Array.isArray(Q))Q=[],Y[U]=Q;Q.push(V)}),W[X]=Y}}function tN(W,X,G,Y){let J=X[Y];if(J)(Array.isArray(J)?J:[J]).forEach((V)=>{if(typeof V==="string")V=new C4("url",V);W.push(new P6({accessMethod:G,accessLocation:x0.parse(V.rawData,U1)}))})}class Aj extends U5{constructor(...W){if(y0.isBufferSource(W[0]))super(W[0]);else super(kI,W[1],new y6(W[0]||[]).rawData)}onInit(W){super.onInit(W);let X=x0.parse(W.extnValue,K8);this.names=new y6(X)}toTextObject(){let W=this.toTextObjectWithoutValue(),X=this.names.toTextObject();for(let G in X)W[G]=X[G];return W}}Aj.NAME="Issuer Alternative Name";class AY extends v6{constructor(...W){let X;if(y0.isBufferSource(W[0]))X=y0.toArrayBuffer(W[0]);else{let G=W[0],Y=Array.isArray(W[1])?W[1].map((J)=>y0.toArrayBuffer(J)):[];X=x0.serialize(new K9({type:G,values:Y}))}super(X,K9)}onInit(W){this.type=W.type,this.values=W.values}toTextObject(){let W=this.toTextObjectWithoutValue();return W.Value=this.values.map((X)=>new a1("",{"":X})),W}toTextObjectWithoutValue(){let W=this.toTextObjectEmpty();if(W[a1.NAME]===AY.NAME)W[a1.NAME]=M4.toString(this.type);return W}}AY.NAME="Attribute";class zj extends AY{constructor(...W){var X;if(y0.isBufferSource(W[0]))super(W[0]);else{let G=new uZ({printableString:W[0]});super(lw,[x0.serialize(G)])}(X=this.password)!==null&&X!==void 0||(this.password="")}onInit(W){if(super.onInit(W),this.values[0]){let X=x0.parse(this.values[0],uZ);this.password=X.toString()}}toTextObject(){let W=this.toTextObjectWithoutValue();return W[a1.VALUE]=this.password,W}}zj.NAME="Challenge Password";class Gq extends AY{constructor(...W){var X;if(y0.isBufferSource(W[0]))super(W[0]);else{let G=W[0],Y=new J5;for(let J of G)Y.push(x0.parse(J.rawData,D9));super(bZ,[x0.serialize(Y)])}(X=this.items)!==null&&X!==void 0||(this.items=[])}onInit(W){if(super.onInit(W),this.values[0]){let X=x0.parse(this.values[0],J5);this.items=X.map((G)=>n9.create(x0.serialize(G)))}}toTextObject(){let W=this.toTextObjectWithoutValue(),X=this.items.map((G)=>G.toTextObject());for(let G of X)W[G[a1.NAME]]=G;return W}}Gq.NAME="Extensions";class HV{static register(W,X){this.items.set(W,X)}static create(W){let X=new AY(W),G=this.items.get(X.type);if(G)return new G(W);return X}}HV.items=new Map;var AV="crypto.signatureFormatter";class p3{toAsnSignature(W,X){return y0.toArrayBuffer(X)}toWebSignature(W,X){return y0.toArrayBuffer(X)}}var Wq,Xj=Wq=class{static createPssParams(X,G){let Y=Wq.getHashAlgorithm(X);if(!Y)return null;return new O4({hashAlgorithm:Y,maskGenAlgorithm:new R0({algorithm:F6,parameters:x0.serialize(Y)}),saltLength:G})}static getHashAlgorithm(X){let G=H8.resolve(ZX);if(typeof X==="string")return G.toAsnAlgorithm({name:X});if(typeof X==="object"&&X&&"name"in X)return G.toAsnAlgorithm(X);return null}toAsnAlgorithm(X){switch(X.name.toLowerCase()){case"rsassa-pkcs1-v1_5":if("hash"in X){let G;if(typeof X.hash==="string")G=X.hash;else if(X.hash&&typeof X.hash==="object"&&"name"in X.hash&&typeof X.hash.name==="string")G=X.hash.name.toUpperCase();else throw Error("Cannot get hash algorithm name");switch(G.toLowerCase()){case"sha-1":return new R0({algorithm:eG,parameters:null});case"sha-256":return new R0({algorithm:bN,parameters:null});case"sha-384":return new R0({algorithm:WY,parameters:null});case"sha-512":return new R0({algorithm:XY,parameters:null})}}else return new R0({algorithm:S7,parameters:null});break;case"rsa-pss":if("hash"in X){if(!(("saltLength"in X)&&typeof X.saltLength==="number"))throw Error("Cannot get 'saltLength' from 'alg' argument");let G=Wq.createPssParams(X.hash,X.saltLength);if(!G)throw Error("Cannot create PSS parameters");return new R0({algorithm:$6,parameters:x0.serialize(G)})}else return new R0({algorithm:$6,parameters:null})}return null}toWebAlgorithm(X){switch(X.algorithm){case S7:return{name:"RSASSA-PKCS1-v1_5"};case eG:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-1"}};case bN:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case WY:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}};case XY:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}};case $6:if(X.parameters){let G=x0.parse(X.parameters,O4);return{name:"RSA-PSS",hash:H8.resolve(ZX).toWebAlgorithm(G.hashAlgorithm),saltLength:G.saltLength}}else return{name:"RSA-PSS"}}return null}};Xj=Wq=j([x6()],Xj);H8.registerSingleton(qV,Xj);var Gj=class{toAsnAlgorithm(X){switch(X.name.toLowerCase()){case"sha-1":return new R0({algorithm:iW});case"sha-256":return new R0({algorithm:rW});case"sha-384":return new R0({algorithm:aW});case"sha-512":return new R0({algorithm:sW})}return null}toWebAlgorithm(X){switch(X.algorithm){case iW:return{name:"SHA-1"};case rW:return{name:"SHA-256"};case aW:return{name:"SHA-384"};case sW:return{name:"SHA-512"}}return null}};Gj=j([x6()],Gj);H8.registerSingleton(qV,Gj);class L5{addPadding(W,X){let G=y0.toUint8Array(X),Y=new Uint8Array(W);return Y.set(G,W-G.length),Y.buffer}removePadding(W,X=!1){let G=y0.toUint8Array(W);for(let Y=0;Y<G.length;Y++){if(!G[Y])continue;G=G.slice(Y);break}if(X&&G[0]>127){let Y=new Uint8Array(G.length+1);return Y.set(G,1),Y.buffer}return G.buffer}toAsnSignature(W,X){if(W.name==="ECDSA"){let G=W.namedCurve,Y=L5.namedCurveSize.get(G)||L5.defaultNamedCurveSize,J=new tG,Z=y0.toUint8Array(X);return J.r=this.removePadding(Z.slice(0,Y),!0),J.s=this.removePadding(Z.slice(Y,Y+Y),!0),x0.serialize(J)}return null}toWebSignature(W,X){if(W.name==="ECDSA"){let G=x0.parse(X,tG),Y=W.namedCurve,J=L5.namedCurveSize.get(Y)||L5.defaultNamedCurveSize,Z=this.addPadding(J,this.removePadding(G.r)),V=this.addPadding(J,this.removePadding(G.s));return mM(Z,V)}return null}}L5.namedCurveSize=new Map;L5.defaultNamedCurveSize=32;var ew="1.3.101.110",_3="1.3.101.111",Wj="1.3.101.112",y3="1.3.101.113",Yj=class{toAsnAlgorithm(X){let G=null;switch(X.name.toLowerCase()){case"ed25519":G=Wj;break;case"x25519":G=ew;break;case"eddsa":switch(X.namedCurve.toLowerCase()){case"ed25519":G=Wj;break;case"ed448":G=y3;break}break;case"ecdh-es":switch(X.namedCurve.toLowerCase()){case"x25519":G=ew;break;case"x448":G=_3;break}}if(G)return new R0({algorithm:G});return null}toWebAlgorithm(X){switch(X.algorithm){case Wj:return{name:"Ed25519"};case y3:return{name:"EdDSA",namedCurve:"Ed448"};case ew:return{name:"X25519"};case _3:return{name:"ECDH-ES",namedCurve:"X448"}}return null}};Yj=j([x6()],Yj);H8.registerSingleton(qV,Yj);var pZ,cZ,lZ,dZ,oZ,nZ,iZ,NY;class c3 extends T4{get subjectName(){if(!R1(this,cZ,"f"))j8(this,cZ,new n5(this.asn.certificationRequestInfo.subject),"f");return R1(this,cZ,"f")}get subject(){if(!R1(this,lZ,"f"))j8(this,lZ,this.subjectName.toString(),"f");return R1(this,lZ,"f")}get signatureAlgorithm(){if(!R1(this,dZ,"f")){let W=H8.resolve(ZX);j8(this,dZ,W.toWebAlgorithm(this.asn.signatureAlgorithm),"f")}return R1(this,dZ,"f")}get signature(){if(!R1(this,oZ,"f"))j8(this,oZ,this.asn.signature,"f");return R1(this,oZ,"f")}get publicKey(){if(!R1(this,nZ,"f"))j8(this,nZ,new i5(this.asn.certificationRequestInfo.subjectPKInfo),"f");return R1(this,nZ,"f")}get attributes(){if(!R1(this,iZ,"f"))j8(this,iZ,this.asn.certificationRequestInfo.attributes.map((W)=>HV.create(x0.serialize(W))),"f");return R1(this,iZ,"f")}get extensions(){if(!R1(this,NY,"f")){j8(this,NY,[],"f");let W=this.getAttribute(bZ);if(W instanceof Gq)j8(this,NY,W.items,"f")}return R1(this,NY,"f")}get tbs(){if(!R1(this,pZ,"f"))j8(this,pZ,this.asn.certificationRequestInfoRaw||x0.serialize(this.asn.certificationRequestInfo),"f");return R1(this,pZ,"f")}constructor(W){let X=T4.isAsnEncoded(W)?[W,JX]:[W];super(X[0],X[1]);pZ.set(this,void 0),cZ.set(this,void 0),lZ.set(this,void 0),dZ.set(this,void 0),oZ.set(this,void 0),nZ.set(this,void 0),iZ.set(this,void 0),NY.set(this,void 0),this.tag=T9.CertificateRequestTag}onInit(W){}getAttribute(W){for(let X of this.attributes)if(X.type===W)return X;return null}getAttributes(W){return this.attributes.filter((X)=>X.type===W)}getExtension(W){for(let X of this.extensions)if(X.type===W)return X;return null}getExtensions(W){return this.extensions.filter((X)=>X.type===W)}async verify(W=u8.get()){let X={...this.publicKey.algorithm,...this.signatureAlgorithm},G=await this.publicKey.export(X,["verify"],W),Y=H8.resolveAll(AV).reverse(),J=null;for(let V of Y)if(J=V.toWebSignature(X,this.signature),J)break;if(!J)throw Error("Cannot convert WebCrypto signature value to ASN.1 format");return await W.subtle.verify(this.signatureAlgorithm,G,J,this.tbs)}toTextObject(){let W=this.toTextObjectEmpty(),X=x0.parse(this.rawData,JX),G=X.certificationRequestInfo,Y=new a1("",{Version:`${L7[G.version]} (${G.version})`,Subject:this.subject,"Subject Public Key Info":this.publicKey});if(this.attributes.length){let J=new a1("");for(let Z of this.attributes){let V=Z.toTextObject();J[V[a1.NAME]]=V}Y.Attributes=J}return W.Data=Y,W.Signature=new a1("",{Algorithm:_6.serializeAlgorithm(X.signatureAlgorithm),"":X.signature}),W}}pZ=new WeakMap,cZ=new WeakMap,lZ=new WeakMap,dZ=new WeakMap,oZ=new WeakMap,nZ=new WeakMap,iZ=new WeakMap,NY=new WeakMap;c3.NAME="PKCS#10 Certificate Request";var rZ,aZ,sZ,tZ,eZ,WV,XV,GV,YV,JV,qY,ZV;class Ij extends T4{get publicKey(){if(!R1(this,ZV,"f"))j8(this,ZV,new i5(this.asn.tbsCertificate.subjectPublicKeyInfo),"f");return R1(this,ZV,"f")}get serialNumber(){if(!R1(this,aZ,"f")){let W=this.asn.tbsCertificate,X=new Uint8Array(W.serialNumber);if(X.length>1&&X[0]===0&&X[1]>127)X=X.slice(1);j8(this,aZ,i0.ToHex(X),"f")}return R1(this,aZ,"f")}get subjectName(){if(!R1(this,sZ,"f"))j8(this,sZ,new n5(this.asn.tbsCertificate.subject),"f");return R1(this,sZ,"f")}get subject(){if(!R1(this,tZ,"f"))j8(this,tZ,this.subjectName.toString(),"f");return R1(this,tZ,"f")}get issuerName(){if(!R1(this,eZ,"f"))j8(this,eZ,new n5(this.asn.tbsCertificate.issuer),"f");return R1(this,eZ,"f")}get issuer(){if(!R1(this,WV,"f"))j8(this,WV,this.issuerName.toString(),"f");return R1(this,WV,"f")}get notBefore(){if(!R1(this,XV,"f")){let W=this.asn.tbsCertificate.validity.notBefore.utcTime||this.asn.tbsCertificate.validity.notBefore.generalTime;if(!W)throw Error("Cannot get 'notBefore' value");j8(this,XV,W,"f")}return R1(this,XV,"f")}get notAfter(){if(!R1(this,GV,"f")){let W=this.asn.tbsCertificate.validity.notAfter.utcTime||this.asn.tbsCertificate.validity.notAfter.generalTime;if(!W)throw Error("Cannot get 'notAfter' value");j8(this,GV,W,"f")}return R1(this,GV,"f")}get signatureAlgorithm(){if(!R1(this,YV,"f")){let W=H8.resolve(ZX);j8(this,YV,W.toWebAlgorithm(this.asn.signatureAlgorithm),"f")}return R1(this,YV,"f")}get signature(){if(!R1(this,JV,"f"))j8(this,JV,this.asn.signatureValue,"f");return R1(this,JV,"f")}get extensions(){if(!R1(this,qY,"f")){if(j8(this,qY,[],"f"),this.asn.tbsCertificate.extensions)j8(this,qY,this.asn.tbsCertificate.extensions.map((W)=>n9.create(x0.serialize(W))),"f")}return R1(this,qY,"f")}get tbs(){if(!R1(this,rZ,"f"))j8(this,rZ,this.asn.tbsCertificateRaw||x0.serialize(this.asn.tbsCertificate),"f");return R1(this,rZ,"f")}constructor(W){let X=T4.isAsnEncoded(W)?[W,p5]:[W];super(X[0],X[1]);rZ.set(this,void 0),aZ.set(this,void 0),sZ.set(this,void 0),tZ.set(this,void 0),eZ.set(this,void 0),WV.set(this,void 0),XV.set(this,void 0),GV.set(this,void 0),YV.set(this,void 0),JV.set(this,void 0),qY.set(this,void 0),ZV.set(this,void 0),this.tag=T9.CertificateTag}onInit(W){}getExtension(W){for(let X of this.extensions)if(typeof W==="string"){if(X.type===W)return X}else if(X instanceof W)return X;return null}getExtensions(W){return this.extensions.filter((X)=>{if(typeof W==="string")return X.type===W;else return X instanceof W})}async verify(W={},X=u8.get()){let G,Y,J=W.publicKey;try{if(!J)G={...this.publicKey.algorithm,...this.signatureAlgorithm},Y=await this.publicKey.export(G,["verify"],X);else if("publicKey"in J)G={...J.publicKey.algorithm,...this.signatureAlgorithm},Y=await J.publicKey.export(G,["verify"],X);else if(J instanceof i5)G={...J.algorithm,...this.signatureAlgorithm},Y=await J.export(G,["verify"],X);else if(y0.isBufferSource(J)){let Q=new i5(J);G={...Q.algorithm,...this.signatureAlgorithm},Y=await Q.export(G,["verify"],X)}else G={...J.algorithm,...this.signatureAlgorithm},Y=J}catch{return!1}let Z=H8.resolveAll(AV).reverse(),V=null;for(let Q of Z)if(V=Q.toWebSignature(G,this.signature),V)break;if(!V)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");let U=await X.subtle.verify(this.signatureAlgorithm,Y,V,this.tbs);if(W.signatureOnly)return U;else{let N=(W.date||new Date).getTime();return U&&this.notBefore.getTime()<N&&N<this.notAfter.getTime()}}async getThumbprint(...W){let X,G="SHA-1";if(W[0])if(!W[0].subtle)G=W[0]||G,X=W[1];else X=W[0];return X!==null&&X!==void 0||(X=u8.get()),await X.subtle.digest(G,this.rawData)}async isSelfSigned(W=u8.get()){return this.subject===this.issuer&&await this.verify({signatureOnly:!0},W)}toTextObject(){let W=this.toTextObjectEmpty(),X=x0.parse(this.rawData,p5),G=X.tbsCertificate,Y=new a1("",{Version:`${L7[G.version]} (${G.version})`,"Serial Number":G.serialNumber,"Signature Algorithm":_6.serializeAlgorithm(G.signature),Issuer:this.issuer,Validity:new a1("",{"Not Before":G.validity.notBefore.getTime(),"Not After":G.validity.notAfter.getTime()}),Subject:this.subject,"Subject Public Key Info":this.publicKey});if(G.issuerUniqueID)Y["Issuer Unique ID"]=G.issuerUniqueID;if(G.subjectUniqueID)Y["Subject Unique ID"]=G.subjectUniqueID;if(this.extensions.length){let J=new a1("");for(let Z of this.extensions){let V=Z.toTextObject();J[V[a1.NAME]]=V}Y.Extensions=J}return W.Data=Y,W.Signature=new a1("",{Algorithm:_6.serializeAlgorithm(X.signatureAlgorithm),"":X.signatureValue}),W}}rZ=new WeakMap,aZ=new WeakMap,sZ=new WeakMap,tZ=new WeakMap,eZ=new WeakMap,WV=new WeakMap,XV=new WeakMap,GV=new WeakMap,YV=new WeakMap,JV=new WeakMap,qY=new WeakMap,ZV=new WeakMap;Ij.NAME="Certificate";function Mp(W,X=u8.get()){let G=y0.toUint8Array(i0.FromHex(W||"")),Y=G&&G.length&&G.some((Z)=>Z>0)?new Uint8Array(G):void 0;if(!Y)Y=X.getRandomValues(new Uint8Array(16));let J=0;while(J<Y.length-1&&Y[J]===0)J++;if(Y=Y.slice(J),Y[0]>127){let Z=new Uint8Array(Y.length+1);Z[0]=0,Z.set(Y,1),Y=Z}return Y.buffer}class wj{static async createSelfSigned(W,X=u8.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},X)}static async create(W,X=u8.get()){var G;let Y;if(W.publicKey instanceof i5)Y=W.publicKey.rawData;else if("publicKey"in W.publicKey)Y=W.publicKey.publicKey.rawData;else if(y0.isBufferSource(W.publicKey))Y=W.publicKey;else Y=await X.subtle.exportKey("spki",W.publicKey);let J=Mp(W.serialNumber,X),Z=W.notBefore||new Date,V=W.notAfter||new Date(Z.getTime()+31536000000),U=new p5({tbsCertificate:new C9({version:L7.v3,serialNumber:J,validity:new L6({notBefore:Z,notAfter:V}),extensions:new J5(((G=W.extensions)===null||G===void 0?void 0:G.map((O)=>x0.parse(O.rawData,D9)))||[]),subjectPublicKeyInfo:x0.parse(Y,O9)})});if(W.subject){let O=W.subject instanceof n5?W.subject:new n5(W.subject);U.tbsCertificate.subject=x0.parse(O.toArrayBuffer(),V8)}if(W.issuer){let O=W.issuer instanceof n5?W.issuer:new n5(W.issuer);U.tbsCertificate.issuer=x0.parse(O.toArrayBuffer(),V8)}let Q={hash:"SHA-256"},N="signingKey"in W?{...Q,...W.signingAlgorithm,...W.signingKey.algorithm}:{...Q,...W.signingAlgorithm},q=H8.resolve(ZX);U.tbsCertificate.signature=U.signatureAlgorithm=q.toAsnAlgorithm(N);let A=x0.serialize(U.tbsCertificate),H="signingKey"in W?await X.subtle.sign(N,W.signingKey,A):W.signature,I=H8.resolveAll(AV).reverse(),w=null;for(let O of I)if(w=O.toAsnSignature(N,H),w)break;if(!w)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");return U.signatureValue=w,new Ij(x0.serialize(U))}}var Pp,Rp,Lp,Bp,Ep,v3;(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"})(v3||(v3={}));Pp=new WeakMap,Rp=new WeakMap,Lp=new WeakMap,Bp=new WeakMap,Ep=new WeakMap;var $p,Fp,Sp,xp,kp,_p,yp;$p=new WeakMap,Fp=new WeakMap,Sp=new WeakMap,xp=new WeakMap,kp=new WeakMap,_p=new WeakMap,yp=new WeakMap;n9.register(zN,Zj);n9.register(TN,Vj);n9.register(MN,Uj);n9.register(mI,Xq);n9.register(AN,NV);n9.register(hI,Qj);n9.register(DN,qj);n9.register(HN,Hj);n9.register(kI,Aj);HV.register(lw,zj);HV.register(bZ,Gq);H8.registerSingleton(AV,p3);H8.registerSingleton(AV,L5);L5.namedCurveSize.set("P-256",32);L5.namedCurveSize.set("K-256",32);L5.namedCurveSize.set("P-384",48);L5.namedCurveSize.set("P-521",66);var uY=m1(D8(),1),gS=m1(D8(),1),uS=m1(yQ(),1);import{createHash as ed,createHmac as Wo}from"crypto";import*as P4 from"crypto";var UX=P4&&typeof P4==="object"&&"webcrypto"in P4?P4.webcrypto:P4&&typeof P4==="object"&&("randomBytes"in P4)?P4:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function QX(W){return W instanceof Uint8Array||ArrayBuffer.isView(W)&&W.constructor.name==="Uint8Array"}function DV(W){if(!Number.isSafeInteger(W)||W<0)throw Error("positive integer expected, got "+W)}function r5(W,...X){if(!QX(W))throw Error("Uint8Array expected");if(X.length>0&&!X.includes(W.length))throw Error("Uint8Array expected of length "+X+", got length="+W.length)}function qq(W){if(typeof W!=="function"||typeof W.create!=="function")throw Error("Hash should be wrapped by utils.createHasher");DV(W.outputLen),DV(W.blockLen)}function jY(W,X=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(X&&W.finished)throw Error("Hash#digest() has already been called")}function ME(W,X){r5(W);let G=X.outputLen;if(W.length<G)throw Error("digestInto() expects output buffer of length at least "+G)}function L4(...W){for(let X=0;X<W.length;X++)W[X].fill(0)}function Hq(W){return new DataView(W.buffer,W.byteOffset,W.byteLength)}function a5(W,X){return W<<32-X|W>>>X}var PE=(()=>typeof Uint8Array.from([]).toHex==="function"&&typeof Uint8Array.fromHex==="function")(),Nl=Array.from({length:256},(W,X)=>X.toString(16).padStart(2,"0"));function B4(W){if(r5(W),PE)return W.toHex();let X="";for(let G=0;G<W.length;G++)X+=Nl[W[G]];return X}var R4={_0:48,_9:57,A:65,F:70,a:97,f:102};function TE(W){if(W>=R4._0&&W<=R4._9)return W-R4._0;if(W>=R4.A&&W<=R4.F)return W-(R4.A-10);if(W>=R4.a&&W<=R4.f)return W-(R4.a-10);return}function NX(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);if(PE)return Uint8Array.fromHex(W);let X=W.length,G=X/2;if(X%2)throw Error("hex string expected, got unpadded hex of length "+X);let Y=new Uint8Array(G);for(let J=0,Z=0;J<G;J++,Z+=2){let V=TE(W.charCodeAt(Z)),U=TE(W.charCodeAt(Z+1));if(V===void 0||U===void 0){let Q=W[Z]+W[Z+1];throw Error('hex string expected, got non-hex character "'+Q+'" at index '+Z)}Y[J]=V*16+U}return Y}function Aq(W){if(typeof W!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(W))}function CV(W){if(typeof W==="string")W=Aq(W);return r5(W),W}function r9(...W){let X=0;for(let Y=0;Y<W.length;Y++){let J=W[Y];r5(J),X+=J.length}let G=new Uint8Array(X);for(let Y=0,J=0;Y<W.length;Y++){let Z=W[Y];G.set(Z,J),J+=Z.length}return G}class TV{}function zq(W){let X=(Y)=>W().update(CV(Y)).digest(),G=W();return X.outputLen=G.outputLen,X.blockLen=G.blockLen,X.create=()=>W(),X}function qX(W=32){if(UX&&typeof UX.getRandomValues==="function")return UX.getRandomValues(new Uint8Array(W));if(UX&&typeof UX.randomBytes==="function")return Uint8Array.from(UX.randomBytes(W));throw Error("crypto.getRandomValues must be defined")}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var $j=BigInt(0),Ej=BigInt(1);function MV(W,X=""){if(typeof W!=="boolean"){let G=X&&`"${X}"`;throw Error(G+"expected boolean, got type="+typeof W)}return W}function f6(W,X,G=""){let Y=QX(W),J=W?.length,Z=X!==void 0;if(!Y||Z&&J!==X){let V=G&&`"${G}" `,U=Z?` of length ${X}`:"",Q=Y?`length=${J}`:`type=${typeof W}`;throw Error(V+"expected Uint8Array"+U+", got "+Q)}return W}function PV(W){let X=W.toString(16);return X.length&1?"0"+X:X}function RE(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return W===""?$j:BigInt("0x"+W)}function E4(W){return RE(B4(W))}function Fj(W){return r5(W),RE(B4(Uint8Array.from(W).reverse()))}function KY(W,X){return NX(W.toString(16).padStart(X*2,"0"))}function Sj(W,X){return KY(W,X).reverse()}function F8(W,X,G){let Y;if(typeof X==="string")try{Y=NX(X)}catch(Z){throw Error(W+" must be hex string or Uint8Array, cause: "+Z)}else if(QX(X))Y=Uint8Array.from(X);else throw Error(W+" must be hex string or Uint8Array");let J=Y.length;if(typeof G==="number"&&J!==G)throw Error(W+" of length "+G+" expected, got "+J);return Y}var Bj=(W)=>typeof W==="bigint"&&$j<=W;function RV(W,X,G){return Bj(W)&&Bj(X)&&Bj(G)&&X<=W&&W<G}function LE(W,X,G,Y){if(!RV(X,G,Y))throw Error("expected valid "+W+": "+G+" <= n < "+Y+", got "+X)}function Iq(W){let X;for(X=0;W>$j;W>>=Ej,X+=1);return X}var p6=(W)=>(Ej<<BigInt(W))-Ej;function BE(W,X,G){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof X!=="number"||X<2)throw Error("qByteLen must be a number");if(typeof G!=="function")throw Error("hmacFn must be a function");let Y=(I)=>new Uint8Array(I),J=(I)=>Uint8Array.of(I),Z=Y(W),V=Y(W),U=0,Q=()=>{Z.fill(1),V.fill(0),U=0},N=(...I)=>G(V,Z,...I),q=(I=Y(0))=>{if(V=N(J(0),I),Z=N(),I.length===0)return;V=N(J(1),I),Z=N()},A=()=>{if(U++>=1000)throw Error("drbg: tried 1000 values");let I=0,w=[];while(I<X){Z=N();let O=Z.slice();w.push(O),I+=Z.length}return r9(...w)};return(I,w)=>{Q(),q(I);let O=void 0;while(!(O=w(A())))q();return Q(),O}}function LV(W,X,G={}){if(!W||typeof W!=="object")throw Error("expected valid options object");function Y(J,Z,V){let U=W[J];if(V&&U===void 0)return;let Q=typeof U;if(Q!==Z||U===null)throw Error(`param "${J}" is invalid: expected ${Z}, got ${Q}`)}Object.entries(X).forEach(([J,Z])=>Y(J,Z,!1)),Object.entries(G).forEach(([J,Z])=>Y(J,Z,!0))}function xj(W){let X=new WeakMap;return(G,...Y)=>{let J=X.get(G);if(J!==void 0)return J;let Z=W(G,...Y);return X.set(G,Z),Z}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var g9=BigInt(0),M9=BigInt(1),HX=BigInt(2),FE=BigInt(3),SE=BigInt(4),xE=BigInt(5),ql=BigInt(7),kE=BigInt(8),Hl=BigInt(9),_E=BigInt(16);function Q5(W,X){let G=W%X;return G>=g9?G:X+G}function N5(W,X,G){let Y=W;while(X-- >g9)Y*=Y,Y%=G;return Y}function EE(W,X){if(W===g9)throw Error("invert: expected non-zero number");if(X<=g9)throw Error("invert: expected positive modulus, got "+X);let G=Q5(W,X),Y=X,J=g9,Z=M9,V=M9,U=g9;while(G!==g9){let N=Y/G,q=Y%G,A=J-V*N,H=Z-U*N;Y=G,G=q,J=V,Z=U,V=A,U=H}if(Y!==M9)throw Error("invert: does not exist");return Q5(J,X)}function kj(W,X,G){if(!W.eql(W.sqr(X),G))throw Error("Cannot find square root")}function yE(W,X){let G=(W.ORDER+M9)/SE,Y=W.pow(X,G);return kj(W,Y,X),Y}function Al(W,X){let G=(W.ORDER-xE)/kE,Y=W.mul(X,HX),J=W.pow(Y,G),Z=W.mul(X,J),V=W.mul(W.mul(Z,HX),J),U=W.mul(Z,W.sub(V,W.ONE));return kj(W,U,X),U}function zl(W){let X=E5(W),G=vE(W),Y=G(X,X.neg(X.ONE)),J=G(X,Y),Z=G(X,X.neg(Y)),V=(W+ql)/_E;return(U,Q)=>{let N=U.pow(Q,V),q=U.mul(N,Y),A=U.mul(N,J),H=U.mul(N,Z),I=U.eql(U.sqr(q),Q),w=U.eql(U.sqr(A),Q);N=U.cmov(N,q,I),q=U.cmov(H,A,w);let O=U.eql(U.sqr(q),Q),T=U.cmov(N,q,O);return kj(U,T,Q),T}}function vE(W){if(W<FE)throw Error("sqrt is not defined for small field");let X=W-M9,G=0;while(X%HX===g9)X/=HX,G++;let Y=HX,J=E5(W);while($E(J,Y)===1)if(Y++>1000)throw Error("Cannot find square root: probably non-prime P");if(G===1)return yE;let Z=J.pow(Y,X),V=(X+M9)/HX;return function(Q,N){if(Q.is0(N))return N;if($E(Q,N)!==1)throw Error("Cannot find square root");let q=G,A=Q.mul(Q.ONE,Z),H=Q.pow(N,X),I=Q.pow(N,V);while(!Q.eql(H,Q.ONE)){if(Q.is0(H))return Q.ZERO;let w=1,O=Q.sqr(H);while(!Q.eql(O,Q.ONE))if(w++,O=Q.sqr(O),w===q)throw Error("Cannot find square root");let T=M9<<BigInt(q-w-1),x=Q.pow(A,T);q=w,A=Q.sqr(x),H=Q.mul(H,A),I=Q.mul(I,x)}return I}}function Il(W){if(W%SE===FE)return yE;if(W%kE===xE)return Al;if(W%_E===Hl)return zl(W);return vE(W)}var wl=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function _j(W){let X={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},G=wl.reduce((Y,J)=>{return Y[J]="function",Y},X);return LV(W,G),W}function jl(W,X,G){if(G<g9)throw Error("invalid exponent, negatives unsupported");if(G===g9)return W.ONE;if(G===M9)return X;let Y=W.ONE,J=X;while(G>g9){if(G&M9)Y=W.mul(Y,J);J=W.sqr(J),G>>=M9}return Y}function wq(W,X,G=!1){let Y=Array(X.length).fill(G?W.ZERO:void 0),J=X.reduce((V,U,Q)=>{if(W.is0(U))return V;return Y[Q]=V,W.mul(V,U)},W.ONE),Z=W.inv(J);return X.reduceRight((V,U,Q)=>{if(W.is0(U))return V;return Y[Q]=W.mul(V,Y[Q]),W.mul(V,U)},Z),Y}function $E(W,X){let G=(W.ORDER-M9)/HX,Y=W.pow(X,G),J=W.eql(Y,W.ONE),Z=W.eql(Y,W.ZERO),V=W.eql(Y,W.neg(W.ONE));if(!J&&!Z&&!V)throw Error("invalid Legendre symbol result");return J?1:Z?0:-1}function jq(W,X){if(X!==void 0)DV(X);let G=X!==void 0?X:W.toString(2).length,Y=Math.ceil(G/8);return{nBitLength:G,nByteLength:Y}}function E5(W,X,G=!1,Y={}){if(W<=g9)throw Error("invalid field: expected ORDER > 0, got "+W);let J=void 0,Z=void 0,V=!1,U=void 0;if(typeof X==="object"&&X!=null){if(Y.sqrt||G)throw Error("cannot specify opts in two arguments");let H=X;if(H.BITS)J=H.BITS;if(H.sqrt)Z=H.sqrt;if(typeof H.isLE==="boolean")G=H.isLE;if(typeof H.modFromBytes==="boolean")V=H.modFromBytes;U=H.allowedLengths}else{if(typeof X==="number")J=X;if(Y.sqrt)Z=Y.sqrt}let{nBitLength:Q,nByteLength:N}=jq(W,J);if(N>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let q,A=Object.freeze({ORDER:W,isLE:G,BITS:Q,BYTES:N,MASK:p6(Q),ZERO:g9,ONE:M9,allowedLengths:U,create:(H)=>Q5(H,W),isValid:(H)=>{if(typeof H!=="bigint")throw Error("invalid field element: expected bigint, got "+typeof H);return g9<=H&&H<W},is0:(H)=>H===g9,isValidNot0:(H)=>!A.is0(H)&&A.isValid(H),isOdd:(H)=>(H&M9)===M9,neg:(H)=>Q5(-H,W),eql:(H,I)=>H===I,sqr:(H)=>Q5(H*H,W),add:(H,I)=>Q5(H+I,W),sub:(H,I)=>Q5(H-I,W),mul:(H,I)=>Q5(H*I,W),pow:(H,I)=>jl(A,H,I),div:(H,I)=>Q5(H*EE(I,W),W),sqrN:(H)=>H*H,addN:(H,I)=>H+I,subN:(H,I)=>H-I,mulN:(H,I)=>H*I,inv:(H)=>EE(H,W),sqrt:Z||((H)=>{if(!q)q=Il(W);return q(A,H)}),toBytes:(H)=>G?Sj(H,N):KY(H,N),fromBytes:(H,I=!0)=>{if(U){if(!U.includes(H.length)||H.length>N)throw Error("Field.fromBytes: expected "+U+" bytes, got "+H.length);let O=new Uint8Array(N);O.set(H,G?0:O.length-H.length),H=O}if(H.length!==N)throw Error("Field.fromBytes: expected "+N+" bytes, got "+H.length);let w=G?Fj(H):E4(H);if(V)w=Q5(w,W);if(!I){if(!A.isValid(w))throw Error("invalid field element: outside of range 0..ORDER")}return w},invertBatch:(H)=>wq(A,H),cmov:(H,I,w)=>w?I:H});return Object.freeze(A)}function gE(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let X=W.toString(2).length;return Math.ceil(X/8)}function yj(W){let X=gE(W);return X+Math.ceil(X/2)}function Kq(W,X,G=!1){let Y=W.length,J=gE(X),Z=yj(X);if(Y<16||Y<Z||Y>1024)throw Error("expected "+Z+"-1024 bytes of input, got "+Y);let V=G?Fj(W):E4(W),U=Q5(V,X-M9)+M9;return G?Sj(U,J):KY(U,J)}function Kl(W,X,G,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(X,G,Y);let J=BigInt(32),Z=BigInt(4294967295),V=Number(G>>J&Z),U=Number(G&Z),Q=Y?4:0,N=Y?0:4;W.setUint32(X+Q,V,Y),W.setUint32(X+N,U,Y)}function uE(W,X,G){return W&X^~W&G}function hE(W,X,G){return W&X^W&G^X&G}class Oq extends TV{constructor(W,X,G,Y){super();this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=W,this.outputLen=X,this.padOffset=G,this.isLE=Y,this.buffer=new Uint8Array(W),this.view=Hq(this.buffer)}update(W){jY(this),W=CV(W),r5(W);let{view:X,buffer:G,blockLen:Y}=this,J=W.length;for(let Z=0;Z<J;){let V=Math.min(Y-this.pos,J-Z);if(V===Y){let U=Hq(W);for(;Y<=J-Z;Z+=Y)this.process(U,Z);continue}if(G.set(W.subarray(Z,Z+V),this.pos),this.pos+=V,Z+=V,this.pos===Y)this.process(X,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){jY(this),ME(W,this),this.finished=!0;let{buffer:X,view:G,blockLen:Y,isLE:J}=this,{pos:Z}=this;if(X[Z++]=128,L4(this.buffer.subarray(Z)),this.padOffset>Y-Z)this.process(G,0),Z=0;for(let q=Z;q<Y;q++)X[q]=0;Kl(G,Y-8,BigInt(this.length*8),J),this.process(G,0);let V=Hq(W),U=this.outputLen;if(U%4)throw Error("_sha2: outputLen should be aligned to 32bit");let Q=U/4,N=this.get();if(Q>N.length)throw Error("_sha2: outputLen bigger than state");for(let q=0;q<Q;q++)V.setUint32(4*q,N[q],J)}digest(){let{buffer:W,outputLen:X}=this;this.digestInto(W);let G=W.slice(0,X);return this.destroy(),G}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:X,buffer:G,length:Y,finished:J,destroyed:Z,pos:V}=this;if(W.destroyed=Z,W.finished=J,W.length=Y,W.pos=V,Y%X)W.buffer.set(G);return W}clone(){return this._cloneInto()}}var $4=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var J9=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),Z9=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var Dq=BigInt(4294967295),bE=BigInt(32);function Ol(W,X=!1){if(X)return{h:Number(W&Dq),l:Number(W>>bE&Dq)};return{h:Number(W>>bE&Dq)|0,l:Number(W&Dq)|0}}function mE(W,X=!1){let G=W.length,Y=new Uint32Array(G),J=new Uint32Array(G);for(let Z=0;Z<G;Z++){let{h:V,l:U}=Ol(W[Z],X);[Y[Z],J[Z]]=[V,U]}return[Y,J]}var vj=(W,X,G)=>W>>>G,gj=(W,X,G)=>W<<32-G|X>>>G,AX=(W,X,G)=>W>>>G|X<<32-G,zX=(W,X,G)=>W<<32-G|X>>>G,BV=(W,X,G)=>W<<64-G|X>>>G-32,EV=(W,X,G)=>W>>>G-32|X<<64-G;function _7(W,X,G,Y){let J=(X>>>0)+(Y>>>0);return{h:W+G+(J/4294967296|0)|0,l:J|0}}var fE=(W,X,G)=>(W>>>0)+(X>>>0)+(G>>>0),pE=(W,X,G,Y)=>X+G+Y+(W/4294967296|0)|0,cE=(W,X,G,Y)=>(W>>>0)+(X>>>0)+(G>>>0)+(Y>>>0),lE=(W,X,G,Y,J)=>X+G+Y+J+(W/4294967296|0)|0,dE=(W,X,G,Y,J)=>(W>>>0)+(X>>>0)+(G>>>0)+(Y>>>0)+(J>>>0),oE=(W,X,G,Y,J,Z)=>X+G+Y+J+Z+(W/4294967296|0)|0;var Cl=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 nE extends Oq{constructor(W=32){super(64,W,8,!1);this.A=$4[0]|0,this.B=$4[1]|0,this.C=$4[2]|0,this.D=$4[3]|0,this.E=$4[4]|0,this.F=$4[5]|0,this.G=$4[6]|0,this.H=$4[7]|0}get(){let{A:W,B:X,C:G,D:Y,E:J,F:Z,G:V,H:U}=this;return[W,X,G,Y,J,Z,V,U]}set(W,X,G,Y,J,Z,V,U){this.A=W|0,this.B=X|0,this.C=G|0,this.D=Y|0,this.E=J|0,this.F=Z|0,this.G=V|0,this.H=U|0}process(W,X){for(let q=0;q<16;q++,X+=4)c6[q]=W.getUint32(X,!1);for(let q=16;q<64;q++){let A=c6[q-15],H=c6[q-2],I=a5(A,7)^a5(A,18)^A>>>3,w=a5(H,17)^a5(H,19)^H>>>10;c6[q]=w+c6[q-7]+I+c6[q-16]|0}let{A:G,B:Y,C:J,D:Z,E:V,F:U,G:Q,H:N}=this;for(let q=0;q<64;q++){let A=a5(V,6)^a5(V,11)^a5(V,25),H=N+A+uE(V,U,Q)+Cl[q]+c6[q]|0,w=(a5(G,2)^a5(G,13)^a5(G,22))+hE(G,Y,J)|0;N=Q,Q=U,U=V,V=Z+H|0,Z=J,J=Y,Y=G,G=H+w|0}G=G+this.A|0,Y=Y+this.B|0,J=J+this.C|0,Z=Z+this.D|0,V=V+this.E|0,U=U+this.F|0,Q=Q+this.G|0,N=N+this.H|0,this.set(G,Y,J,Z,V,U,Q,N)}roundClean(){L4(c6)}destroy(){this.set(0,0,0,0,0,0,0,0),L4(this.buffer)}}var iE=(()=>mE(["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))))(),Tl=(()=>iE[0])(),Ml=(()=>iE[1])(),l6=new Uint32Array(80),d6=new Uint32Array(80);class uj extends Oq{constructor(W=64){super(128,W,16,!1);this.Ah=Z9[0]|0,this.Al=Z9[1]|0,this.Bh=Z9[2]|0,this.Bl=Z9[3]|0,this.Ch=Z9[4]|0,this.Cl=Z9[5]|0,this.Dh=Z9[6]|0,this.Dl=Z9[7]|0,this.Eh=Z9[8]|0,this.El=Z9[9]|0,this.Fh=Z9[10]|0,this.Fl=Z9[11]|0,this.Gh=Z9[12]|0,this.Gl=Z9[13]|0,this.Hh=Z9[14]|0,this.Hl=Z9[15]|0}get(){let{Ah:W,Al:X,Bh:G,Bl:Y,Ch:J,Cl:Z,Dh:V,Dl:U,Eh:Q,El:N,Fh:q,Fl:A,Gh:H,Gl:I,Hh:w,Hl:O}=this;return[W,X,G,Y,J,Z,V,U,Q,N,q,A,H,I,w,O]}set(W,X,G,Y,J,Z,V,U,Q,N,q,A,H,I,w,O){this.Ah=W|0,this.Al=X|0,this.Bh=G|0,this.Bl=Y|0,this.Ch=J|0,this.Cl=Z|0,this.Dh=V|0,this.Dl=U|0,this.Eh=Q|0,this.El=N|0,this.Fh=q|0,this.Fl=A|0,this.Gh=H|0,this.Gl=I|0,this.Hh=w|0,this.Hl=O|0}process(W,X){for(let P=0;P<16;P++,X+=4)l6[P]=W.getUint32(X),d6[P]=W.getUint32(X+=4);for(let P=16;P<80;P++){let u=l6[P-15]|0,F=d6[P-15]|0,m=AX(u,F,1)^AX(u,F,8)^vj(u,F,7),l=zX(u,F,1)^zX(u,F,8)^gj(u,F,7),p=l6[P-2]|0,W0=d6[P-2]|0,y=AX(p,W0,19)^BV(p,W0,61)^vj(p,W0,6),e=zX(p,W0,19)^EV(p,W0,61)^gj(p,W0,6),H0=cE(l,e,d6[P-7],d6[P-16]),g=lE(H0,m,y,l6[P-7],l6[P-16]);l6[P]=g|0,d6[P]=H0|0}let{Ah:G,Al:Y,Bh:J,Bl:Z,Ch:V,Cl:U,Dh:Q,Dl:N,Eh:q,El:A,Fh:H,Fl:I,Gh:w,Gl:O,Hh:T,Hl:x}=this;for(let P=0;P<80;P++){let u=AX(q,A,14)^AX(q,A,18)^BV(q,A,41),F=zX(q,A,14)^zX(q,A,18)^EV(q,A,41),m=q&H^~q&w,l=A&I^~A&O,p=dE(x,F,l,Ml[P],d6[P]),W0=oE(p,T,u,m,Tl[P],l6[P]),y=p|0,e=AX(G,Y,28)^BV(G,Y,34)^BV(G,Y,39),H0=zX(G,Y,28)^EV(G,Y,34)^EV(G,Y,39),g=G&J^G&V^J&V,d=Y&Z^Y&U^Z&U;T=w|0,x=O|0,w=H|0,O=I|0,H=q|0,I=A|0,{h:q,l:A}=_7(Q|0,N|0,W0|0,y|0),Q=V|0,N=U|0,V=J|0,U=Z|0,J=G|0,Z=Y|0;let R=fE(y,H0,d);G=pE(R,W0,e,g),Y=R|0}({h:G,l:Y}=_7(this.Ah|0,this.Al|0,G|0,Y|0)),{h:J,l:Z}=_7(this.Bh|0,this.Bl|0,J|0,Z|0),{h:V,l:U}=_7(this.Ch|0,this.Cl|0,V|0,U|0),{h:Q,l:N}=_7(this.Dh|0,this.Dl|0,Q|0,N|0),{h:q,l:A}=_7(this.Eh|0,this.El|0,q|0,A|0),{h:H,l:I}=_7(this.Fh|0,this.Fl|0,H|0,I|0),{h:w,l:O}=_7(this.Gh|0,this.Gl|0,w|0,O|0),{h:T,l:x}=_7(this.Hh|0,this.Hl|0,T|0,x|0),this.set(G,Y,J,Z,V,U,Q,N,q,A,H,I,w,O,T,x)}roundClean(){L4(l6,d6)}destroy(){L4(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class rE extends uj{constructor(){super(48);this.Ah=J9[0]|0,this.Al=J9[1]|0,this.Bh=J9[2]|0,this.Bl=J9[3]|0,this.Ch=J9[4]|0,this.Cl=J9[5]|0,this.Dh=J9[6]|0,this.Dl=J9[7]|0,this.Eh=J9[8]|0,this.El=J9[9]|0,this.Fh=J9[10]|0,this.Fl=J9[11]|0,this.Gh=J9[12]|0,this.Gl=J9[13]|0,this.Hh=J9[14]|0,this.Hl=J9[15]|0}}var OY=zq(()=>new nE);var aE=zq(()=>new uj),sE=zq(()=>new rE);class hj extends TV{constructor(W,X){super();this.finished=!1,this.destroyed=!1,qq(W);let G=CV(X);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,J=new Uint8Array(Y);J.set(G.length>Y?W.create().update(G).digest():G);for(let Z=0;Z<J.length;Z++)J[Z]^=54;this.iHash.update(J),this.oHash=W.create();for(let Z=0;Z<J.length;Z++)J[Z]^=106;this.oHash.update(J),L4(J)}update(W){return jY(this),this.iHash.update(W),this}digestInto(W){jY(this),r5(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:X,iHash:G,finished:Y,destroyed:J,blockLen:Z,outputLen:V}=this;return W=W,W.finished=Y,W.destroyed=J,W.blockLen=Z,W.outputLen=V,W.oHash=X._cloneInto(W.oHash),W.iHash=G._cloneInto(W.iHash),W}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var bj=(W,X,G)=>new hj(W,X).update(G).digest();bj.create=(W,X)=>new hj(W,X);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var DY=BigInt(0),IX=BigInt(1);function $V(W,X){let G=X.negate();return W?G:X}function Cq(W,X){let G=wq(W.Fp,X.map((Y)=>Y.Z));return X.map((Y,J)=>W.fromAffine(Y.toAffine(G[J])))}function X$(W,X){if(!Number.isSafeInteger(W)||W<=0||W>X)throw Error("invalid window size, expected [1.."+X+"], got W="+W)}function mj(W,X){X$(W,X);let G=Math.ceil(X/W)+1,Y=2**(W-1),J=2**W,Z=p6(W),V=BigInt(W);return{windows:G,windowSize:Y,mask:Z,maxNumber:J,shiftBy:V}}function tE(W,X,G){let{windowSize:Y,mask:J,maxNumber:Z,shiftBy:V}=G,U=Number(W&J),Q=W>>V;if(U>Y)U-=Z,Q+=IX;let N=X*Y,q=N+Math.abs(U)-1,A=U===0,H=U<0,I=X%2!==0;return{nextN:Q,offset:q,isZero:A,isNeg:H,isNegF:I,offsetF:N}}function Pl(W,X){if(!Array.isArray(W))throw Error("array expected");W.forEach((G,Y)=>{if(!(G instanceof X))throw Error("invalid point at index "+Y)})}function Rl(W,X){if(!Array.isArray(W))throw Error("array of scalars expected");W.forEach((G,Y)=>{if(!X.isValid(G))throw Error("invalid scalar at index "+Y)})}var fj=new WeakMap,G$=new WeakMap;function pj(W){return G$.get(W)||1}function eE(W){if(W!==DY)throw Error("invalid wNAF")}class cj{constructor(W,X){this.BASE=W.BASE,this.ZERO=W.ZERO,this.Fn=W.Fn,this.bits=X}_unsafeLadder(W,X,G=this.ZERO){let Y=W;while(X>DY){if(X&IX)G=G.add(Y);Y=Y.double(),X>>=IX}return G}precomputeWindow(W,X){let{windows:G,windowSize:Y}=mj(X,this.bits),J=[],Z=W,V=Z;for(let U=0;U<G;U++){V=Z,J.push(V);for(let Q=1;Q<Y;Q++)V=V.add(Z),J.push(V);Z=V.double()}return J}wNAF(W,X,G){if(!this.Fn.isValid(G))throw Error("invalid scalar");let Y=this.ZERO,J=this.BASE,Z=mj(W,this.bits);for(let V=0;V<Z.windows;V++){let{nextN:U,offset:Q,isZero:N,isNeg:q,isNegF:A,offsetF:H}=tE(G,V,Z);if(G=U,N)J=J.add($V(A,X[H]));else Y=Y.add($V(q,X[Q]))}return eE(G),{p:Y,f:J}}wNAFUnsafe(W,X,G,Y=this.ZERO){let J=mj(W,this.bits);for(let Z=0;Z<J.windows;Z++){if(G===DY)break;let{nextN:V,offset:U,isZero:Q,isNeg:N}=tE(G,Z,J);if(G=V,Q)continue;else{let q=X[U];Y=Y.add(N?q.negate():q)}}return eE(G),Y}getPrecomputes(W,X,G){let Y=fj.get(X);if(!Y){if(Y=this.precomputeWindow(X,W),W!==1){if(typeof G==="function")Y=G(Y);fj.set(X,Y)}}return Y}cached(W,X,G){let Y=pj(W);return this.wNAF(Y,this.getPrecomputes(Y,W,G),X)}unsafe(W,X,G,Y){let J=pj(W);if(J===1)return this._unsafeLadder(W,X,Y);return this.wNAFUnsafe(J,this.getPrecomputes(J,W,G),X,Y)}createCache(W,X){X$(X,this.bits),G$.set(W,X),fj.delete(W)}hasCache(W){return pj(W)!==1}}function Y$(W,X,G,Y){let J=X,Z=W.ZERO,V=W.ZERO;while(G>DY||Y>DY){if(G&IX)Z=Z.add(J);if(Y&IX)V=V.add(J);J=J.double(),G>>=IX,Y>>=IX}return{p1:Z,p2:V}}function J$(W,X,G,Y){Pl(G,W),Rl(Y,X);let J=G.length,Z=Y.length;if(J!==Z)throw Error("arrays of points and scalars must have equal length");let V=W.ZERO,U=Iq(BigInt(J)),Q=1;if(U>12)Q=U-3;else if(U>4)Q=U-2;else if(U>0)Q=2;let N=p6(Q),q=Array(Number(N)+1).fill(V),A=Math.floor((X.BITS-1)/Q)*Q,H=V;for(let I=A;I>=0;I-=Q){q.fill(V);for(let O=0;O<Z;O++){let T=Y[O],x=Number(T>>BigInt(I)&N);q[x]=q[x].add(G[O])}let w=V;for(let O=q.length-1,T=V;O>0;O--)T=T.add(q[O]),w=w.add(T);if(H=H.add(w),I!==0)for(let O=0;O<Q;O++)H=H.double()}return H}function W$(W,X,G){if(X){if(X.ORDER!==W)throw Error("Field.ORDER must match order: Fp == p, Fn == n");return _j(X),X}else return E5(W,{isLE:G})}function Z$(W,X,G={},Y){if(Y===void 0)Y=W==="edwards";if(!X||typeof X!=="object")throw Error(`expected valid ${W} CURVE object`);for(let Q of["p","n","h"]){let N=X[Q];if(!(typeof N==="bigint"&&N>DY))throw Error(`CURVE.${Q} must be positive bigint`)}let J=W$(X.p,G.Fp,Y),Z=W$(X.n,G.Fn,Y),U=["Gx","Gy","a",W==="weierstrass"?"b":"d"];for(let Q of U)if(!J.isValid(X[Q]))throw Error(`CURVE.${Q} must be valid field element of CURVE.Fp`);return X=Object.freeze(Object.assign({},X)),{CURVE:X,Fp:J,Fn:Z}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var V$=(W,X)=>(W+(W>=0?X:-X)/Q$)/X;function Ll(W,X,G){let[[Y,J],[Z,V]]=X,U=V$(V*W,G),Q=V$(-J*W,G),N=W-U*Y-Q*Z,q=-U*J-Q*V,A=N<S4,H=q<S4;if(A)N=-N;if(H)q=-q;let I=p6(Math.ceil(Iq(G)/2))+CY;if(N<S4||N>=I||q<S4||q>=I)throw Error("splitScalar (endomorphism): failed, k="+W);return{k1neg:A,k1:N,k2neg:H,k2:q}}function dj(W){if(!["compact","recovered","der"].includes(W))throw Error('Signature format must be "compact", "recovered", or "der"');return W}function lj(W,X){let G={};for(let Y of Object.keys(X))G[Y]=W[Y]===void 0?X[Y]:W[Y];if(MV(G.lowS,"lowS"),MV(G.prehash,"prehash"),G.format!==void 0)dj(G.format);return G}class U$ extends Error{constructor(W=""){super(W)}}var F4={Err:U$,_tlv:{encode:(W,X)=>{let{Err:G}=F4;if(W<0||W>256)throw new G("tlv.encode: wrong tag");if(X.length&1)throw new G("tlv.encode: unpadded data");let Y=X.length/2,J=PV(Y);if(J.length/2&128)throw new G("tlv.encode: long form length too big");let Z=Y>127?PV(J.length/2|128):"";return PV(W)+Z+J+X},decode(W,X){let{Err:G}=F4,Y=0;if(W<0||W>256)throw new G("tlv.encode: wrong tag");if(X.length<2||X[Y++]!==W)throw new G("tlv.decode: wrong tlv");let J=X[Y++],Z=!!(J&128),V=0;if(!Z)V=J;else{let Q=J&127;if(!Q)throw new G("tlv.decode(long): indefinite length not supported");if(Q>4)throw new G("tlv.decode(long): byte length is too big");let N=X.subarray(Y,Y+Q);if(N.length!==Q)throw new G("tlv.decode: length bytes not complete");if(N[0]===0)throw new G("tlv.decode(long): zero leftmost byte");for(let q of N)V=V<<8|q;if(Y+=Q,V<128)throw new G("tlv.decode(long): not minimal encoding")}let U=X.subarray(Y,Y+V);if(U.length!==V)throw new G("tlv.decode: wrong value length");return{v:U,l:X.subarray(Y+V)}}},_int:{encode(W){let{Err:X}=F4;if(W<S4)throw new X("integer: negative integers are not allowed");let G=PV(W);if(Number.parseInt(G[0],16)&8)G="00"+G;if(G.length&1)throw new X("unexpected DER parsing assertion: unpadded hex");return G},decode(W){let{Err:X}=F4;if(W[0]&128)throw new X("invalid signature integer: negative");if(W[0]===0&&!(W[1]&128))throw new X("invalid signature integer: unnecessary leading zero");return E4(W)}},toSig(W){let{Err:X,_int:G,_tlv:Y}=F4,J=F8("signature",W),{v:Z,l:V}=Y.decode(48,J);if(V.length)throw new X("invalid signature: left bytes after parsing");let{v:U,l:Q}=Y.decode(2,Z),{v:N,l:q}=Y.decode(2,Q);if(q.length)throw new X("invalid signature: left bytes after parsing");return{r:G.decode(U),s:G.decode(N)}},hexFromSig(W){let{_tlv:X,_int:G}=F4,Y=X.encode(2,G.encode(W.r)),J=X.encode(2,G.encode(W.s)),Z=Y+J;return X.encode(48,Z)}},S4=BigInt(0),CY=BigInt(1),Q$=BigInt(2),Tq=BigInt(3),Bl=BigInt(4);function o6(W,X){let{BYTES:G}=W,Y;if(typeof X==="bigint")Y=X;else{let J=F8("private key",X);try{Y=W.fromBytes(J)}catch(Z){throw Error(`invalid private key: expected ui8a of size ${G}, got ${typeof X}`)}}if(!W.isValidNot0(Y))throw Error("invalid private key: out of range [1..N-1]");return Y}function El(W,X={}){let G=Z$("weierstrass",W,X),{Fp:Y,Fn:J}=G,Z=G.CURVE,{h:V,n:U}=Z;LV(X,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:Q}=X;if(Q){if(!Y.is0(Z.a)||typeof Q.beta!=="bigint"||!Array.isArray(Q.basises))throw Error('invalid endo: expected "beta": bigint and "basises": array')}let N=q$(Y,J);function q(){if(!Y.isOdd)throw Error("compression is not supported: Field does not have .isOdd()")}function A(g,d,R){let{x:$,y:f}=d.toAffine(),r=Y.toBytes($);if(MV(R,"isCompressed"),R){q();let o=!Y.isOdd(f);return r9(N$(o),r)}else return r9(Uint8Array.of(4),r,Y.toBytes(f))}function H(g){f6(g,void 0,"Point");let{publicKey:d,publicKeyUncompressed:R}=N,$=g.length,f=g[0],r=g.subarray(1);if($===d&&(f===2||f===3)){let o=Y.fromBytes(r);if(!Y.isValid(o))throw Error("bad point: is not on curve, wrong x");let E=O(o),S;try{S=Y.sqrt(E)}catch(L){let b=L instanceof Error?": "+L.message:"";throw Error("bad point: is not on curve, sqrt error"+b)}q();let _=Y.isOdd(S);if((f&1)===1!==_)S=Y.neg(S);return{x:o,y:S}}else if($===R&&f===4){let o=Y.BYTES,E=Y.fromBytes(r.subarray(0,o)),S=Y.fromBytes(r.subarray(o,o*2));if(!T(E,S))throw Error("bad point: is not on curve");return{x:E,y:S}}else throw Error(`bad point: got length ${$}, expected compressed=${d} or uncompressed=${R}`)}let I=X.toBytes||A,w=X.fromBytes||H;function O(g){let d=Y.sqr(g),R=Y.mul(d,g);return Y.add(Y.add(R,Y.mul(g,Z.a)),Z.b)}function T(g,d){let R=Y.sqr(d),$=O(g);return Y.eql(R,$)}if(!T(Z.Gx,Z.Gy))throw Error("bad curve params: generator point");let x=Y.mul(Y.pow(Z.a,Tq),Bl),P=Y.mul(Y.sqr(Z.b),BigInt(27));if(Y.is0(Y.add(x,P)))throw Error("bad curve params: a or b");function u(g,d,R=!1){if(!Y.isValid(d)||R&&Y.is0(d))throw Error(`bad point coordinate ${g}`);return d}function F(g){if(!(g instanceof y))throw Error("ProjectivePoint expected")}function m(g){if(!Q||!Q.basises)throw Error("no endo");return Ll(g,Q.basises,J.ORDER)}let l=xj((g,d)=>{let{X:R,Y:$,Z:f}=g;if(Y.eql(f,Y.ONE))return{x:R,y:$};let r=g.is0();if(d==null)d=r?Y.ONE:Y.inv(f);let o=Y.mul(R,d),E=Y.mul($,d),S=Y.mul(f,d);if(r)return{x:Y.ZERO,y:Y.ZERO};if(!Y.eql(S,Y.ONE))throw Error("invZ was invalid");return{x:o,y:E}}),p=xj((g)=>{if(g.is0()){if(X.allowInfinityPoint&&!Y.is0(g.Y))return;throw Error("bad point: ZERO")}let{x:d,y:R}=g.toAffine();if(!Y.isValid(d)||!Y.isValid(R))throw Error("bad point: x or y not field elements");if(!T(d,R))throw Error("bad point: equation left != right");if(!g.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});function W0(g,d,R,$,f){return R=new y(Y.mul(R.X,g),R.Y,R.Z),d=$V($,d),R=$V(f,R),d.add(R)}class y{constructor(g,d,R){this.X=u("x",g),this.Y=u("y",d,!0),this.Z=u("z",R),Object.freeze(this)}static CURVE(){return Z}static fromAffine(g){let{x:d,y:R}=g||{};if(!g||!Y.isValid(d)||!Y.isValid(R))throw Error("invalid affine point");if(g instanceof y)throw Error("projective point not allowed");if(Y.is0(d)&&Y.is0(R))return y.ZERO;return new y(d,R,Y.ONE)}static fromBytes(g){let d=y.fromAffine(w(f6(g,void 0,"point")));return d.assertValidity(),d}static fromHex(g){return y.fromBytes(F8("pointHex",g))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(g=8,d=!0){if(H0.createCache(this,g),!d)this.multiply(Tq);return this}assertValidity(){p(this)}hasEvenY(){let{y:g}=this.toAffine();if(!Y.isOdd)throw Error("Field doesn't support isOdd");return!Y.isOdd(g)}equals(g){F(g);let{X:d,Y:R,Z:$}=this,{X:f,Y:r,Z:o}=g,E=Y.eql(Y.mul(d,o),Y.mul(f,$)),S=Y.eql(Y.mul(R,o),Y.mul(r,$));return E&&S}negate(){return new y(this.X,Y.neg(this.Y),this.Z)}double(){let{a:g,b:d}=Z,R=Y.mul(d,Tq),{X:$,Y:f,Z:r}=this,o=Y.ZERO,E=Y.ZERO,S=Y.ZERO,_=Y.mul($,$),v=Y.mul(f,f),L=Y.mul(r,r),b=Y.mul($,f);return b=Y.add(b,b),S=Y.mul($,r),S=Y.add(S,S),o=Y.mul(g,S),E=Y.mul(R,L),E=Y.add(o,E),o=Y.sub(v,E),E=Y.add(v,E),E=Y.mul(o,E),o=Y.mul(b,o),S=Y.mul(R,S),L=Y.mul(g,L),b=Y.sub(_,L),b=Y.mul(g,b),b=Y.add(b,S),S=Y.add(_,_),_=Y.add(S,_),_=Y.add(_,L),_=Y.mul(_,b),E=Y.add(E,_),L=Y.mul(f,r),L=Y.add(L,L),_=Y.mul(L,b),o=Y.sub(o,_),S=Y.mul(L,v),S=Y.add(S,S),S=Y.add(S,S),new y(o,E,S)}add(g){F(g);let{X:d,Y:R,Z:$}=this,{X:f,Y:r,Z:o}=g,E=Y.ZERO,S=Y.ZERO,_=Y.ZERO,v=Z.a,L=Y.mul(Z.b,Tq),b=Y.mul(d,f),J0=Y.mul(R,r),U0=Y.mul($,o),N0=Y.add(d,R),$0=Y.add(f,r);N0=Y.mul(N0,$0),$0=Y.add(b,J0),N0=Y.sub(N0,$0),$0=Y.add(d,$);let u0=Y.add(f,o);return $0=Y.mul($0,u0),u0=Y.add(b,U0),$0=Y.sub($0,u0),u0=Y.add(R,$),E=Y.add(r,o),u0=Y.mul(u0,E),E=Y.add(J0,U0),u0=Y.sub(u0,E),_=Y.mul(v,$0),E=Y.mul(L,U0),_=Y.add(E,_),E=Y.sub(J0,_),_=Y.add(J0,_),S=Y.mul(E,_),J0=Y.add(b,b),J0=Y.add(J0,b),U0=Y.mul(v,U0),$0=Y.mul(L,$0),J0=Y.add(J0,U0),U0=Y.sub(b,U0),U0=Y.mul(v,U0),$0=Y.add($0,U0),b=Y.mul(J0,$0),S=Y.add(S,b),b=Y.mul(u0,$0),E=Y.mul(N0,E),E=Y.sub(E,b),b=Y.mul(N0,J0),_=Y.mul(u0,_),_=Y.add(_,b),new y(E,S,_)}subtract(g){return this.add(g.negate())}is0(){return this.equals(y.ZERO)}multiply(g){let{endo:d}=X;if(!J.isValidNot0(g))throw Error("invalid scalar: out of range");let R,$,f=(r)=>H0.cached(this,r,(o)=>Cq(y,o));if(d){let{k1neg:r,k1:o,k2neg:E,k2:S}=m(g),{p:_,f:v}=f(o),{p:L,f:b}=f(S);$=v.add(b),R=W0(d.beta,_,L,r,E)}else{let{p:r,f:o}=f(g);R=r,$=o}return Cq(y,[R,$])[0]}multiplyUnsafe(g){let{endo:d}=X,R=this;if(!J.isValid(g))throw Error("invalid scalar: out of range");if(g===S4||R.is0())return y.ZERO;if(g===CY)return R;if(H0.hasCache(this))return this.multiply(g);if(d){let{k1neg:$,k1:f,k2neg:r,k2:o}=m(g),{p1:E,p2:S}=Y$(y,R,f,o);return W0(d.beta,E,S,$,r)}else return H0.unsafe(R,g)}multiplyAndAddUnsafe(g,d,R){let $=this.multiplyUnsafe(d).add(g.multiplyUnsafe(R));return $.is0()?void 0:$}toAffine(g){return l(this,g)}isTorsionFree(){let{isTorsionFree:g}=X;if(V===CY)return!0;if(g)return g(y,this);return H0.unsafe(this,U).is0()}clearCofactor(){let{clearCofactor:g}=X;if(V===CY)return this;if(g)return g(y,this);return this.multiplyUnsafe(V)}isSmallOrder(){return this.multiplyUnsafe(V).is0()}toBytes(g=!0){return MV(g,"isCompressed"),this.assertValidity(),I(y,this,g)}toHex(g=!0){return B4(this.toBytes(g))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(g=!0){return this.toBytes(g)}_setWindowSize(g){this.precompute(g)}static normalizeZ(g){return Cq(y,g)}static msm(g,d){return J$(y,J,g,d)}static fromPrivateKey(g){return y.BASE.multiply(o6(J,g))}}y.BASE=new y(Z.Gx,Z.Gy,Y.ONE),y.ZERO=new y(Y.ZERO,Y.ONE,Y.ZERO),y.Fp=Y,y.Fn=J;let e=J.BITS,H0=new cj(y,X.endo?Math.ceil(e/2):e);return y.BASE.precompute(8),y}function N$(W){return Uint8Array.of(W?2:3)}function q$(W,X){return{secretKey:X.BYTES,publicKey:1+W.BYTES,publicKeyUncompressed:1+2*W.BYTES,publicKeyHasPrefix:!0,signature:2*X.BYTES}}function $l(W,X={}){let{Fn:G}=W,Y=X.randomBytes||qX,J=Object.assign(q$(W.Fp,G),{seed:yj(G.ORDER)});function Z(I){try{return!!o6(G,I)}catch(w){return!1}}function V(I,w){let{publicKey:O,publicKeyUncompressed:T}=J;try{let x=I.length;if(w===!0&&x!==O)return!1;if(w===!1&&x!==T)return!1;return!!W.fromBytes(I)}catch(x){return!1}}function U(I=Y(J.seed)){return Kq(f6(I,J.seed,"seed"),G.ORDER)}function Q(I,w=!0){return W.BASE.multiply(o6(G,I)).toBytes(w)}function N(I){let w=U(I);return{secretKey:w,publicKey:Q(w)}}function q(I){if(typeof I==="bigint")return!1;if(I instanceof W)return!0;let{secretKey:w,publicKey:O,publicKeyUncompressed:T}=J;if(G.allowedLengths||w===O)return;let x=F8("key",I).length;return x===O||x===T}function A(I,w,O=!0){if(q(I)===!0)throw Error("first arg must be private key");if(q(w)===!1)throw Error("second arg must be public key");let T=o6(G,I);return W.fromHex(w).multiply(T).toBytes(O)}return Object.freeze({getPublicKey:Q,getSharedSecret:A,keygen:N,Point:W,utils:{isValidSecretKey:Z,isValidPublicKey:V,randomSecretKey:U,isValidPrivateKey:Z,randomPrivateKey:U,normPrivateKeyToScalar:(I)=>o6(G,I),precompute(I=8,w=W.BASE){return w.precompute(I,!1)}},lengths:J})}function Fl(W,X,G={}){qq(X),LV(G,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let Y=G.randomBytes||qX,J=G.hmac||((R,...$)=>bj(X,R,r9(...$))),{Fp:Z,Fn:V}=W,{ORDER:U,BITS:Q}=V,{keygen:N,getPublicKey:q,getSharedSecret:A,utils:H,lengths:I}=$l(W,G),w={prehash:!1,lowS:typeof G.lowS==="boolean"?G.lowS:!1,format:void 0,extraEntropy:!1},O="compact";function T(R){let $=U>>CY;return R>$}function x(R,$){if(!V.isValidNot0($))throw Error(`invalid signature ${R}: out of range 1..Point.Fn.ORDER`);return $}function P(R,$){dj($);let f=I.signature,r=$==="compact"?f:$==="recovered"?f+1:void 0;return f6(R,r,`${$} signature`)}class u{constructor(R,$,f){if(this.r=x("r",R),this.s=x("s",$),f!=null)this.recovery=f;Object.freeze(this)}static fromBytes(R,$=O){P(R,$);let f;if($==="der"){let{r:S,s:_}=F4.toSig(f6(R));return new u(S,_)}if($==="recovered")f=R[0],$="compact",R=R.subarray(1);let r=V.BYTES,o=R.subarray(0,r),E=R.subarray(r,r*2);return new u(V.fromBytes(o),V.fromBytes(E),f)}static fromHex(R,$){return this.fromBytes(NX(R),$)}addRecoveryBit(R){return new u(this.r,this.s,R)}recoverPublicKey(R){let $=Z.ORDER,{r:f,s:r,recovery:o}=this;if(o==null||![0,1,2,3].includes(o))throw Error("recovery id invalid");if(U*Q$<$&&o>1)throw Error("recovery id is ambiguous for h>1 curve");let S=o===2||o===3?f+U:f;if(!Z.isValid(S))throw Error("recovery id 2 or 3 invalid");let _=Z.toBytes(S),v=W.fromBytes(r9(N$((o&1)===0),_)),L=V.inv(S),b=m(F8("msgHash",R)),J0=V.create(-b*L),U0=V.create(r*L),N0=W.BASE.multiplyUnsafe(J0).add(v.multiplyUnsafe(U0));if(N0.is0())throw Error("point at infinify");return N0.assertValidity(),N0}hasHighS(){return T(this.s)}toBytes(R=O){if(dj(R),R==="der")return NX(F4.hexFromSig(this));let $=V.toBytes(this.r),f=V.toBytes(this.s);if(R==="recovered"){if(this.recovery==null)throw Error("recovery bit must be present");return r9(Uint8Array.of(this.recovery),$,f)}return r9($,f)}toHex(R){return B4(this.toBytes(R))}assertValidity(){}static fromCompact(R){return u.fromBytes(F8("sig",R),"compact")}static fromDER(R){return u.fromBytes(F8("sig",R),"der")}normalizeS(){return this.hasHighS()?new u(this.r,V.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return B4(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return B4(this.toBytes("compact"))}}let F=G.bits2int||function($){if($.length>8192)throw Error("input is too large");let f=E4($),r=$.length*8-Q;return r>0?f>>BigInt(r):f},m=G.bits2int_modN||function($){return V.create(F($))},l=p6(Q);function p(R){return LE("num < 2^"+Q,R,S4,l),V.toBytes(R)}function W0(R,$){return f6(R,void 0,"message"),$?f6(X(R),void 0,"prehashed message"):R}function y(R,$,f){if(["recovered","canonical"].some((U0)=>(U0 in f)))throw Error("sign() legacy options not supported");let{lowS:r,prehash:o,extraEntropy:E}=lj(f,w);R=W0(R,o);let S=m(R),_=o6(V,$),v=[p(_),p(S)];if(E!=null&&E!==!1){let U0=E===!0?Y(I.secretKey):E;v.push(F8("extraEntropy",U0))}let L=r9(...v),b=S;function J0(U0){let N0=F(U0);if(!V.isValidNot0(N0))return;let $0=V.inv(N0),u0=W.BASE.multiply(N0).toAffine(),q1=V.create(u0.x);if(q1===S4)return;let g1=V.create($0*V.create(b+q1*_));if(g1===S4)return;let h0=(u0.x===q1?0:2)|Number(u0.y&CY),x1=g1;if(r&&T(g1))x1=V.neg(g1),h0^=1;return new u(q1,x1,h0)}return{seed:L,k2sig:J0}}function e(R,$,f={}){R=F8("message",R);let{seed:r,k2sig:o}=y(R,$,f);return BE(X.outputLen,V.BYTES,J)(r,o)}function H0(R){let $=void 0,f=typeof R==="string"||QX(R),r=!f&&R!==null&&typeof R==="object"&&typeof R.r==="bigint"&&typeof R.s==="bigint";if(!f&&!r)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(r)$=new u(R.r,R.s);else if(f){try{$=u.fromBytes(F8("sig",R),"der")}catch(o){if(!(o instanceof F4.Err))throw o}if(!$)try{$=u.fromBytes(F8("sig",R),"compact")}catch(o){return!1}}if(!$)return!1;return $}function g(R,$,f,r={}){let{lowS:o,prehash:E,format:S}=lj(r,w);if(f=F8("publicKey",f),$=W0(F8("message",$),E),"strict"in r)throw Error("options.strict was renamed to lowS");let _=S===void 0?H0(R):u.fromBytes(F8("sig",R),S);if(_===!1)return!1;try{let v=W.fromBytes(f);if(o&&_.hasHighS())return!1;let{r:L,s:b}=_,J0=m($),U0=V.inv(b),N0=V.create(J0*U0),$0=V.create(L*U0),u0=W.BASE.multiplyUnsafe(N0).add(v.multiplyUnsafe($0));if(u0.is0())return!1;return V.create(u0.x)===L}catch(v){return!1}}function d(R,$,f={}){let{prehash:r}=lj(f,w);return $=W0($,r),u.fromBytes(R,"recovered").recoverPublicKey($).toBytes()}return Object.freeze({keygen:N,getPublicKey:q,getSharedSecret:A,utils:H,lengths:I,Point:W,sign:e,verify:g,recoverPublicKey:d,Signature:u,hash:X})}function Sl(W){let X={a:W.a,b:W.b,p:W.Fp.ORDER,n:W.n,h:W.h,Gx:W.Gx,Gy:W.Gy},G=W.Fp,Y=W.allowedPrivateKeyLengths?Array.from(new Set(W.allowedPrivateKeyLengths.map((V)=>Math.ceil(V/2)))):void 0,J=E5(X.n,{BITS:W.nBitLength,allowedLengths:Y,modFromBytes:W.wrapPrivateKey}),Z={Fp:G,Fn:J,allowInfinityPoint:W.allowInfinityPoint,endo:W.endo,isTorsionFree:W.isTorsionFree,clearCofactor:W.clearCofactor,fromBytes:W.fromBytes,toBytes:W.toBytes};return{CURVE:X,curveOpts:Z}}function xl(W){let{CURVE:X,curveOpts:G}=Sl(W),Y={hmac:W.hmac,randomBytes:W.randomBytes,lowS:W.lowS,bits2int:W.bits2int,bits2int_modN:W.bits2int_modN};return{CURVE:X,curveOpts:G,hash:W.hash,ecdsaOpts:Y}}function kl(W,X){let G=X.Point;return Object.assign({},X,{ProjectivePoint:G,CURVE:Object.assign({},W,jq(G.Fn.ORDER,G.Fn.BITS))})}function H$(W){let{CURVE:X,curveOpts:G,hash:Y,ecdsaOpts:J}=xl(W),Z=El(X,G),V=Fl(Z,Y,J);return kl(W,V)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function TY(W,X){let G=(Y)=>H$({...W,hash:Y});return{...G(X),create:G}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var A$={p:BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),h:BigInt(1),a:BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5")},z$={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff"),n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),h:BigInt(1),a:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc"),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f")},I$={p:BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),h:BigInt(1),a:BigInt("0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650")},_l=E5(A$.p),yl=E5(z$.p),vl=E5(I$.p);var w$=TY({...A$,Fp:_l,lowS:!1},OY);var fq0=TY({...z$,Fp:yl,lowS:!1},sE);var pq0=TY({...I$,Fp:vl,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},aE);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Mq=w$;var U9=m1(D8(),1),J7=m1(D8(),1),lS=m1(D8(),1),CX=m1(D8(),1),c4=m1(D8(),1),aS=m1(yQ(),1),MX=m1(D8(),1),r6=m1(D8(),1),PX=m1(D8(),1),cY=m1(D8(),1),a6=m1(D8(),1),RX=m1(D8(),1),Z7=m1(D8(),1),V7=m1(D8(),1),jH=m1(D8(),1),Y7=m1(D8(),1),J2=m1(D8(),1),vo=m1(D$(),1);import{randomBytes as jo}from"crypto";import{setTimeout as Ko}from"timers/promises";import{createCipheriv as $o,createDecipheriv as Fo}from"crypto";var hq=m1(T$(),1),LX=m1(D8(),1),OX=m1(D8(),1),d7=m1(D8(),1),c7=m1(D8(),1),BX=m1(D8(),1);import{createHmac as VK}from"crypto";import{createCipheriv as QF,createDecipheriv as NF,createHmac as qF,timingSafeEqual as Hn}from"crypto";import{createCipheriv as IF,createDecipheriv as wF}from"crypto";import{setTimeout as Tn}from"timers/promises";import{randomBytes as Bn}from"crypto";import{createHmac as R2}from"crypto";import{randomBytes as L2}from"crypto";var Bq="undefined",BY=Bq!==typeof Buffer&&Buffer,LY=Bq!==typeof Uint8Array&&Uint8Array,Lq=Bq!==typeof ArrayBuffer&&ArrayBuffer,M$=[0,0,0,0,0,0,0,0],hl=Array.isArray||ol,RY=4294967296,bl=16777216,EY,Eq=R$("Uint64BE",!0,!0),ij=R$("Int64BE",!0,!1);function R$(W,X,G){var Y=X?0:4,J=X?4:0,Z=X?0:3,V=X?1:2,U=X?2:1,Q=X?3:0,N=X?pl:ll,q=X?cl:dl,A=w.prototype,H="is"+W,I="_"+H;if(A.buffer=void 0,A.offset=0,A[I]=!0,A.toNumber=P,A.toString=u,A.toJSON=P,A.toArray=ml,BY)A.toBuffer=fl;if(LY)A.toArrayBuffer=L$;return w[H]=O,w;function w(l,p,W0,y){if(!(this instanceof w))return new w(l,p,W0,y);return T(this,l,p,W0,y)}function O(l){return!!(l&&l[I])}function T(l,p,W0,y,e){if(LY&&Lq){if(p instanceof Lq)p=new LY(p);if(y instanceof Lq)y=new LY(y)}if(!p&&!W0&&!y&&!EY){l.buffer=B$(M$,0);return}if(!P$(p,W0)){var H0=EY||Array;e=W0,y=p,W0=0,p=EY===BY?BY.alloc(8):new H0(8)}if(l.buffer=p,l.offset=W0|=0,Bq===typeof y)return;if(typeof y==="string")x(p,W0,y,e||10);else if(P$(y,e))nj(p,W0,y,e);else if(typeof e==="number")F(p,W0+Y,y),F(p,W0+J,e);else if(y>0)N(p,W0,y);else if(y<0)q(p,W0,y);else nj(p,W0,M$,0)}function x(l,p,W0,y){var e=0,H0=W0.length,g=0,d=0;if(W0[0]==="-")e++;var R=e;while(e<H0){var $=parseInt(W0[e++],y);if(!($>=0))break;d=d*y+$,g=g*y+Math.floor(d/RY),d%=RY}if(R)if(g=~g,d)d=RY-d;else g++;F(l,p+Y,g),F(l,p+J,d)}function P(){var l=this.buffer,p=this.offset,W0=m(l,p+Y),y=m(l,p+J);if(!G)W0|=0;return W0?W0*RY+y:y}function u(l){var p=this.buffer,W0=this.offset,y=m(p,W0+Y),e=m(p,W0+J),H0="",g=!G&&y&2147483648;if(g)y=~y,e=RY-e;l=l||10;while(!0){var d=y%l*RY+e;if(y=Math.floor(y/l),e=Math.floor(d/l),H0=(d%l).toString(l)+H0,!y&&!e)break}if(g)H0="-"+H0;return H0}function F(l,p,W0){l[p+Q]=W0&255,W0=W0>>8,l[p+U]=W0&255,W0=W0>>8,l[p+V]=W0&255,W0=W0>>8,l[p+Z]=W0&255}function m(l,p){return l[p+Z]*bl+(l[p+V]<<16)+(l[p+U]<<8)+l[p+Q]}}function ml(W){var X=this.buffer,G=this.offset;if(EY=null,W!==!1&&hl(X))return X.length===8?X:X.slice(G,G+8);return B$(X,G)}function fl(W){var X=this.buffer,G=this.offset;if(EY=BY,W!==!1&&BY.isBuffer(X))return X.length===8?X:X.slice(G,G+8);return BY.from(L$.call(this,W))}function L$(W){var X=this.buffer,G=this.offset,Y=X.buffer;if(EY=LY,W!==!1&&!X.offset&&Y instanceof Lq)return Y.byteLength===8?Y:Y.slice(G,G+8);var J=new LY(8);return nj(J,0,X,G),J.buffer}function P$(W,X){var G=W&&W.length;return X|=0,G&&X+8<=G&&typeof W[X]!=="string"}function nj(W,X,G,Y){X|=0,Y|=0;for(var J=0;J<8;J++)W[X++]=G[Y++]&255}function B$(W,X){return Array.prototype.slice.call(W,X,X+8)}function pl(W,X,G){var Y=X+8;while(Y>X)W[--Y]=G&255,G/=256}function cl(W,X,G){var Y=X+8;G++;while(Y>X)W[--Y]=-G&255^255,G/=256}function ll(W,X,G){var Y=X+8;while(X<Y)W[X++]=G&255,G/=256}function dl(W,X,G){var Y=X+8;G++;while(X<Y)W[X++]=-G&255^255,G/=256}function ol(W){return!!W&&Object.prototype.toString.call(W)=="[object Array]"}var sV=m1(aj(),1);import{createHash as ln}from"crypto";import{setTimeout as dn}from"timers/promises";import{createHash as Wi}from"crypto";import{isIPv4 as vF}from"net";import{randomBytes as Xi}from"crypto";import{isIPv4 as gF}from"net";var pq=m1(F$(),1),_2=m1(l$(),1),v2=m1(aj(),1);import*as vK from"timers/promises";import{randomUUID as Yi}from"crypto";import*as y2 from"os";import{EventEmitter as Ii}from"events";import{randomUUID as Li}from"crypto";import{setTimeout as wK}from"timers/promises";import{createHash as Bi}from"crypto";import{performance as kq}from"perf_hooks";import{randomUUID as Ei}from"crypto";import{randomUUID as n2}from"crypto";import{setTimeout as ri}from"timers/promises";import{randomBytes as ei}from"crypto";import{isIPv4 as Wr}from"net";var tV=m1(uz(),1);import{randomUUID as Xr}from"crypto";import{setTimeout as Gr}from"timers/promises";import{randomUUID as Ur}from"crypto";import{randomUUID as Ar}from"crypto";import{createHmac as GS,randomBytes as zr}from"crypto";import{randomBytes as IS}from"crypto";import{randomUUID as wS}from"crypto";import{setTimeout as jS}from"timers/promises";import{randomUUID as fr}from"crypto";function TS(){return X8.Unpack("!H",CS(2))[0]}function TK(){return X8.Unpack("!L",CS(4))[0]}var aq=class{constructor(W){this.bitLength=W}value=0;set(W,X,G){return G&=(1<<W)-1,this.value|=G<<this.bitLength-W-X,this}get buffer(){let W=Math.ceil(this.bitLength/8),X=Buffer.alloc(W);return X.writeUIntBE(this.value,0,W),X}},MS=class{constructor(W){if(this.bitLength=W,W>32)throw Error()}_value=0n;offset=0n;set(W,X=1){let G=BigInt(W),Y=BigInt(X);return G&=(1n<<Y)-1n,this._value|=G<<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),X=Buffer.alloc(W);return X.writeUIntBE(this.value,0,W),X}};function b8(W,X,G=1){let Y=W.toString(2).split("");Y=[...Array(8-Y.length).fill("0"),...Y];let J=Y.slice(X,X+G).join("");return Number.parseInt(J,2)}function S8(W,X){return gq(W)(X)}function gq(W,X){let G=W.reduce((J,Z)=>J+Z,0),Y=X?Buffer.alloc(G):void 0;return(J)=>{let Z=Y||Buffer.alloc(G),V=0;return J.forEach((U,Q)=>{let N=W[Q];if(N===8)Z.writeBigUInt64BE(U,V);else Z.writeUIntBE(U,V,N);V+=N}),Z}}function t9(W,X){let G=0;return X.map((Y)=>{let J;if(Y===8)J=W.readBigUInt64BE(G);else J=W.readUIntBE(G,Y);return G+=Y,J})}var cV=class{constructor(W){this.uint8Array=W}position=0;bitsPending=0;writeBits(W,X){if(W==0)return this;X&=4294967295>>>32-W;let G;if(this.bitsPending>0)if(this.bitsPending>W)this.uint8Array[this.position-1]|=X<<this.bitsPending-W,G=W,this.bitsPending-=W;else if(this.bitsPending==W)this.uint8Array[this.position-1]|=X,G=W,this.bitsPending=0;else this.uint8Array[this.position-1]|=X>>W-this.bitsPending,G=this.bitsPending,this.bitsPending=0;else G=Math.min(8,W),this.bitsPending=8-G,this.uint8Array[this.position++]=X>>W-G<<this.bitsPending;if(W-=G,W>0)this.writeBits(W,X);return this}readBits(W){return this._readBits(W)}_readBits(W,X){if(typeof X>"u")X=0;if(W==0)return X;let G,Y;if(this.bitsPending>0){let J=this.uint8Array[this.position-1]&255>>8-this.bitsPending;Y=Math.min(this.bitsPending,W),this.bitsPending-=Y,G=J>>this.bitsPending}else Y=Math.min(8,W),this.bitsPending=8-Y,G=this.uint8Array[this.position++]>>this.bitsPending;return W-=Y,X=X<<Y|G,W>0?this._readBits(W,X):X}seekTo(W){if(this.position=W/8|0,this.bitsPending=W%8,this.bitsPending>0)this.bitsPending=8-this.bitsPending,this.position++}},vd=3988292384,gd=2197175160;function PS(W){return typeof W!=="string"}function RS(W){let X=Array(256),G=0;for(let Y=0;Y<256;++Y)G=Y,G=G&1?W^G>>>1:G>>>1,G=G&1?W^G>>>1:G>>>1,G=G&1?W^G>>>1:G>>>1,G=G&1?W^G>>>1:G>>>1,G=G&1?W^G>>>1:G>>>1,G=G&1?W^G>>>1:G>>>1,G=G&1?W^G>>>1:G>>>1,G=G&1?W^G>>>1:G>>>1,X[Y]=G;return new Int32Array(X)}function LS(W){let X=new Int32Array(4096),G=0,Y=0,J=0;for(J=0;J<256;++J)X[J]=W[J];for(J=0;J<256;++J){Y=W[J];for(G=256+J;G<4096;G+=256)Y=X[G]=Y>>>8^W[Y&255]}let Z=[];for(J=1;J<16;++J)Z[J-1]=X.subarray(J*256,J*256+256);return Z}function BS(W,X,G){let Y=X^-1,J=0,Z=W.length,V=0,U=0;while(J<Z)if(V=W.charCodeAt(J++),V<128)Y=Y>>>8^G[(Y^V)&255];else if(V<2048)Y=Y>>>8^G[(Y^(192|V>>6&31))&255],Y=Y>>>8^G[(Y^(128|V&63))&255];else if(V>=55296&&V<57344)V=(V&1023)+64,U=W.charCodeAt(J++)&1023,Y=Y>>>8^G[(Y^(240|V>>8&7))&255],Y=Y>>>8^G[(Y^(128|V>>2&63))&255],Y=Y>>>8^G[(Y^(128|U>>6&15|(V&3)<<4))&255],Y=Y>>>8^G[(Y^(128|U&63))&255];else Y=Y>>>8^G[(Y^(224|V>>12&15))&255],Y=Y>>>8^G[(Y^(128|V>>6&63))&255],Y=Y>>>8^G[(Y^(128|V&63))&255];return~Y>>>0}function ES(W,X,G,Y){let[J,Z,V,U,Q,N,q,A,H,I,w,O,T,x,P]=Y,u=X^-1,F=0,m=W.length-15;while(F<m)u=P[W[F++]^u&255]^x[W[F++]^u>>>8&255]^T[W[F++]^u>>>16&255]^O[W[F++]^u>>>24]^w[W[F++]]^I[W[F++]]^H[W[F++]]^A[W[F++]]^q[W[F++]]^N[W[F++]]^Q[W[F++]]^U[W[F++]]^V[W[F++]]^Z[W[F++]]^J[W[F++]]^G[W[F++]];for(m+=15;F<m;)u=u>>>8^G[(u^W[F++])&255];return~u>>>0}var MK=RS(vd),ud=LS(MK),PK=RS(gd),hd=LS(PK);function bd(W,X=0){if(PS(W))return ES(W,X,MK,ud);return BS(W,X,MK)}function $S(W,X=0){if(PS(W))return ES(W,X,PK,hd);return BS(W,X,PK)}function md(W,X){return W+X&255}function R9(W,X){return W+X&65535}function gY(W,X){return Number(BigInt(W)+BigInt(X)&0xffffffffn)}function fd(W){return W&16777215}function FS(W,X){return W<X&&X-W>32768||W>X&&W-X<32768}function p4(W,X){return W<X&&X-W>2147483648||W>X&&W-X<2147483648}function mV(W,X){return W===X||p4(W,X)}var lV=(W)=>Number.parseInt(W,10);var SS=(W,X)=>X?X[W]:void 0;async function cd(W,X,G="udp4",Y){let J;for(let Z=W;Z<=X;Z++){let V=pd(G);if(setImmediate(()=>V.bind({port:Z,address:SS(G,Y)})),await new Promise((Q)=>{V.once("error",(N)=>Q(N)),V.once("listening",()=>Q())})){await new Promise((Q)=>V.close(()=>Q()));continue}if(J=V.address()?.port,await new Promise((Q)=>V.close(()=>Q())),W<=J&&J<=X)break}if(!J)throw Error("port not found");return J}function sq(W){if(W==="IPv4")return 4;if(W==="IPv6")return 6;return W}var L1=xS.default.debug,d0=class{event={stack:[],promiseStack:[],eventId:0};ended=!1;onended;onerror=(W)=>{};execute=(...W)=>{if(this.ended)return;for(let X of this.event.stack)X.execute(...W);(async()=>{for(let X of this.event.promiseStack)await X.execute(...W)})().catch((X)=>{this.onerror(X)})};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 X of this.event.stack)if(X.error)X.error(W);this.allUnsubscribe()};allUnsubscribe=()=>{if(this.ended)throw Error("event completed");this.event={stack:[],promiseStack:[],eventId:0}};subscribe=(W,X,G)=>{let Y=this.event.eventId;this.event.stack.push({execute:W,id:Y,complete:X,error:G}),this.event.eventId++;let J=()=>{this.event.stack=this.event.stack.filter((V)=>V.id!==Y&&V)};return{unSubscribe:J,disposer:(V)=>{V.push(J)}}};pipe(W){this.subscribe((...X)=>{W.execute(...X)})}queuingSubscribe=(W,X,G)=>{if(this.ended)throw Error("event completed");let Y=this.event.eventId;this.event.promiseStack.push({execute:W,id:Y,complete:X,error:G}),this.event.eventId++;let J=()=>{this.event.stack=this.event.stack.filter((V)=>V.id!==Y&&V)};return{unSubscribe:J,disposer:(V)=>{V.push(J)}}};once=(W,X,G)=>{let Y=this.subscribe((...J)=>{Y.unSubscribe(),W(...J)},X,G)};watch=(W,X)=>new Promise((G,Y)=>{let J=X&&setTimeout(()=>{Y("Event watch timeout")},X),{unSubscribe:Z}=this.subscribe((...V)=>{if(W(...V)){if(J)clearTimeout(J);Z(),G(V)}})});asPromise=(W)=>new Promise((X,G)=>{let Y=W&&setTimeout(()=>{G("Event asPromise timeout")},W);this.once((...J)=>{if(Y)clearTimeout(Y);X(J)},()=>{if(Y)clearTimeout(Y);X([])},(J)=>{if(Y)clearTimeout(Y);G(J)})});get returnTrigger(){let{execute:W,error:X,complete:G}=this;return{execute:W,error:X,complete:G}}get returnListener(){let{subscribe:W,once:X,asPromise:G}=this;return{subscribe:W,once:X,asPromise:G}}get length(){return this.event.stack.length}},ld=class{_disposer=[];push(W){this._disposer.push(W)}dispose(){this._disposer.forEach((W)=>W()),this._disposer=[]}},d$=L1("werift-ice:packages/ice/src/transport.ts"),RK=class W{constructor(X,G={}){this.socketType=X,this.options=G,this.socket=dd(X),this.socket.on("message",(Y,J)=>{if(sq(J.family)===6)[J.address]=J.address.split("%");this.rinfo=J;try{this.onData(Y,[J.address,J.port])}catch(Z){d$("onData error",Z)}})}type="udp";socket;rinfo;onData=()=>{};closed=!1;static async init(X,G={}){let Y=new W(X,G);return await Y.init(),Y}async init(){let X=SS(this.socketType,this.options.interfaceAddresses);if(this.options.port)this.socket.bind({port:this.options.port,address:X});else if(this.options.portRange){let G=await cd(this.options.portRange[0],this.options.portRange[1],this.socketType,this.options.interfaceAddresses);this.socket.bind({port:G,address:X})}else this.socket.bind({address:X});await new Promise((G)=>this.socket.once("listening",G))}send=async(X,G)=>{if(G&&!kS.isIP(G[0]))return new Promise((Y,J)=>{this.socket.send(X,G[1],G[0],(Z)=>{if(Z)d$("send error",G,X),J(Z);else Y()})});else G=G??[this.rinfo?.address,this.rinfo?.port],this.socket.send(X,G[1],G[0])};get address(){return this.socket.address()}get host(){return this.socket.address().address}get port(){return this.socket.address().port}close=()=>new Promise((X)=>{this.closed=!0,this.socket.once("close",X);try{this.socket.close()}catch(G){X()}})},nd=class W{constructor(X){this.addr=X,this.connect()}type="tcp";connecting;client;onData=()=>{};closed=!1;connect(){if(this.closed)return;if(this.client)this.client.destroy();this.connecting=new Promise((X,G)=>{try{this.client=od({port:this.addr[1],host:this.addr[0]},X)}catch(Y){G(Y)}}),this.client.on("data",(X)=>{let G=[this.client.remoteAddress,this.client.remotePort];this.onData(X,G)}),this.client.on("end",()=>{this.connect()}),this.client.on("error",(X)=>{console.log("error",X)})}async init(){await this.connecting}static async init(X){let G=new W(X);return await G.init(),G}get address(){return{}}send=async(X,G)=>{await this.connecting,this.client.write(X,(Y)=>{if(Y)console.log("err",Y)})};close=async()=>{this.closed=!0,this.client.destroy()}},d4={rsa_1:1,ecdsa_3:3},tq={sha256_4:4},LK={TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_49195:49195,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256_49199:49199},sd=Object.values(LK),s6={x25519_29:29,secp256r1_23:23},_S=Object.values(s6),yS={named_curve_3:3},o$={rsa_pkcs1_sha256:1025,ecdsa_secp256r1_sha256:1027},td=[1,64],vS=[{hash:tq.sha256_4,signature:d4.rsa_1},{hash:tq.sha256_4,signature:d4.ecdsa_3}],Xo=()=>{let W=Mq.utils.randomPrivateKey(),X=Mq.getPublicKey(W,!1),G=Buffer.from(W),Y=Buffer.from(X);return{privateKey:G,publicKey:Y}},Go=({publicKey:W,privateKey:X})=>{let G=Mq.getSharedSecret(X,W);return Buffer.from(G).subarray(1)};function hS(W,X,G){switch(G){case s6.secp256r1_23:return Go({publicKey:W,privateKey:X});case s6.x25519_29:return Buffer.from(uS.default.scalarMult(X,W));default:throw Error()}}function n$(W,X,G){let Y=Wo(W,X);return Y.update(G),Y.digest()}function WU(W,X,G,Y="sha256"){let J=G,Z=[],V=X;do{V=n$(Y,W,V);let U=n$(Y,W,Buffer.concat([V,X]));Z.push(U),G-=U.length}while(G>0);return Buffer.concat(Z,J)}function bS(W,X,G){let Y=Buffer.concat([Buffer.from("master secret"),X,G]);return WU(W,Y,48)}function mS(W,X){let G=fS("sha256",X),Y="extended master secret";return WU(W,Buffer.concat([Buffer.from("extended master secret"),G]),48)}function Yo(W,X,G,Y,J,Z){let V=Z?Y:J,U=Z?J:Y,Q=Buffer.concat([Buffer.from(W),V,U]);return WU(G,Q,X)}function fS(W,X){return ed(W).update(X).digest()}function pS(W,X,G,Y=12){let J=fS("sha256",X);return WU(W,Buffer.concat([Buffer.from(G),J]),Y)}function Jo(W,X){return pS(W,X,"client finished")}function Zo(W,X){return pS(W,X,"server finished")}function Vo(W,X,G,Y,J,Z,V="sha256"){let U=Y*2+J*2,Q=W,N=Buffer.concat([G,X]),q=WU(Q,Buffer.concat([Buffer.from("key expansion"),N]),U,V),A=gS.createDecode(q),H=A.readBuffer(Y),I=A.readBuffer(Y),w=A.readBuffer(J),O=A.readBuffer(J),T=Buffer.alloc(Z,0),x=Buffer.alloc(Z,0);return w.copy(T,0),O.copy(x,0),{clientWriteKey:H,serverWriteKey:I,clientNonce:T,serverNonce:x}}var l4={CLIENT:1,SERVER:2},Uo=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}},BK=ad;u8.set(BK);var eq=class{constructor(W,X,G,Y){if(this.sessionType=W,this.certPem=X,this.keyPem=G,X&&G&&Y)this.parseX509(X,G,Y)}localRandom;remoteRandom;cipherSuite;remoteCertificate;remoteKeyPair;localKeyPair;masterSecret;cipher;namedCurve;signatureHashAlgorithm;localCert;localPrivateKey;static createSelfSignedCertificateWithKey=async(W,X)=>{let G=(()=>{switch(W.signature){case d4.rsa_1:return"RSASSA-PKCS1-v1_5";case d4.ecdsa_3:return"ECDSA"}})(),Y=(()=>{switch(W.hash){case tq.sha256_4:return"SHA-256"}})(),J=(()=>{switch(X){case s6.secp256r1_23:return"P-256";case s6.x25519_29:if(G==="ECDSA")return"P-256";return"X25519";default:{if(G==="ECDSA")return"P-256";if(G==="RSASSA-PKCS1-v1_5")return"X25519"}}})(),Z=(()=>{switch(G){case"ECDSA":return{name:G,hash:Y,namedCurve:J};case"RSASSA-PKCS1-v1_5":return{name:G,hash:Y,publicExponent:new Uint8Array([1,0,1]),modulusLength:2048}}})(),V=await BK.subtle.generateKey(Z,!0,["sign","verify"]),Q=(await wj.createSelfSigned({serialNumber:rd(8).toString("hex"),name:"C=AU, ST=Some-State, O=Internet Widgits Pty Ltd",notBefore:new Date,notAfter:new Date(Date.now()+315360000000),signingAlgorithm:Z,keys:V})).toString("pem"),N=T9.encode(await BK.subtle.exportKey("pkcs8",V.privateKey),"private key");return{certPem:Q,keyPem:N,signatureHash:W}};encryptPacket(W){let X=W.recordLayerHeader,G=X.protocolVersion.major<<8|X.protocolVersion.minor,Y=this.cipher.encrypt(this.sessionType,W.fragment,{type:X.contentType,version:G,epoch:X.epoch,sequenceNumber:X.sequenceNumber});return W.fragment=Y,W.recordLayerHeader.contentLen=Y.length,W}decryptPacket(W){let X=W.recordLayerHeader,G=X.protocolVersion.major<<8|X.protocolVersion.minor;return this.cipher.decrypt(this.sessionType,W.fragment,{type:X.contentType,version:G,epoch:X.epoch,sequenceNumber:X.sequenceNumber})}verifyData(W){if(this.sessionType===l4.CLIENT)return Jo(this.masterSecret,W);else return Zo(this.masterSecret,W)}signatureData(W,X){let G=id(X).update(W),Y=this.localPrivateKey.toPEM().toString();return G.sign(Y)}generateKeySignature(W){let X=this.sessionType===l4.CLIENT?this.localRandom:this.remoteRandom,G=this.sessionType===l4.SERVER?this.localRandom:this.remoteRandom,Y=this.valueKeySignature(X.serialize(),G.serialize(),this.localKeyPair.publicKey,this.namedCurve);return this.localPrivateKey.sign(Y,W)}parseX509(W,X,G){let Y=AH.Certificate.fromPEM(Buffer.from(W)),J=AH.PrivateKey.fromPEM(Buffer.from(X));this.localCert=Y.raw,this.localPrivateKey=J,this.signatureHashAlgorithm=G}valueKeySignature(W,X,G,Y){let J=Buffer.from(uY.encode({type:yS.named_curve_3,curve:Y,len:G.length},{type:uY.types.uint8,curve:uY.types.uint16be,len:uY.types.uint8}).slice());return Buffer.concat([W,X,J,G])}},WH=class{srtpProfile;static findMatchingSRTPProfile(W,X){for(let G of X)if(W.includes(G))return G}},WO=(W)=>"0x"+W.toString("hex").replace(/(.)(.)/g,"$1$2 ").split(" ").filter((X)=>X!=null&&X.length>0).join(",0x"),cS=(W)=>Object.entries({...W}).reduce((X,[G,Y])=>{if(typeof Y==="number"||typeof Y==="string")X[G]=Y;if(Buffer.isBuffer(Y))X[G]=WO(Y);return X},{}),$5=class W{constructor(X,G,Y,J,Z,V){this.msg_type=X,this.length=G,this.message_seq=Y,this.fragment_offset=J,this.fragment_length=Z,this.fragment=V}static spec={msg_type:J7.types.uint8,length:J7.types.uint24be,message_seq:J7.types.uint16be,fragment_offset:J7.types.uint24be,fragment_length:J7.types.uint24be,fragment:J7.types.buffer((X)=>X.current.fragment_length)};get summary(){return cS(this)}static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(X){return new W(...Object.values(J7.decode(X,W.spec)))}serialize(){let X=J7.encode(this,W.spec).slice();return Buffer.from(X)}chunk(X){let G=0,Y=this.fragment.length;if(Y===0)return[new W(this.msg_type,Y,this.message_seq,G,0,this.fragment)];let J=[];if(!X)X=1240;while(G<Y){let Z=Math.min(X,Y-G),V=Buffer.from(this.fragment.slice(G,G+Z));if(V.length<=0)throw Error("Zero or less bytes processed while fragmenting handshake message.");J.push(new W(this.msg_type,Y,this.message_seq,G,V.length,V)),G+=V.length}return J}static assemble(X){if(!X?.length)throw Error("cannot reassemble handshake from empty array");X=X.sort((Y,J)=>Y.fragment_offset-J.fragment_offset);let G=Buffer.alloc(X[0].length);for(let Y of X)Y.fragment.copy(G,Y.fragment_offset);return new W(X[0].msg_type,X[0].length,X[0].message_seq,0,G.length,G)}static findAllFragments(X,G){let Y=X.find((J)=>J.msg_type===G);if(!Y)return[];if(!X?.length)return[];return X.filter((J)=>{return J.msg_type===Y.msg_type&&J.message_seq===Y.message_seq&&J.length===Y.length})}},{uint16be:XH,uint24be:Qo,buffer:dS,array:No,uint8:nV,string:qo}=lS.types,Ho={type:XH,data:dS(XH)},EK=No(Ho,XH,"bytes"),Ao=dS(Qo),zo=nV,Io=qo(XH),wo={hash:nV,signature:nV},XO={major:nV,minor:nV},TX=class W{constructor(X=Math.floor(Date.now()/1000),G=jo(28)){this.gmt_unix_time=X,this.random_bytes=G}static spec={gmt_unix_time:CX.types.uint32be,random_bytes:CX.types.buffer(28)};static deSerialize(X){return new W(...Object.values(CX.decode(X,W.spec)))}static from(X){return new W(...Object.values(X))}serialize(){let X=CX.encode(this,W.spec).slice();return Buffer.from(X)}},oS=class W{constructor(X,G,Y,J,Z,V,U){this.clientVersion=X,this.random=G,this.sessionId=Y,this.cookie=J,this.cipherSuites=Z,this.compressionMethods=V,this.extensions=U}msgType=1;messageSeq=0;static spec={clientVersion:{major:U9.types.uint8,minor:U9.types.uint8},random:TX.spec,sessionId:U9.types.buffer(U9.types.uint8),cookie:U9.types.buffer(U9.types.uint8),cipherSuites:U9.types.array(U9.types.uint16be,U9.types.uint16be,"bytes"),compressionMethods:U9.types.array(U9.types.uint8,U9.types.uint8,"bytes"),extensions:EK};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(X){return new W(...Object.values(U9.decode(X,W.spec)))}serialize(){let X=U9.encode(this,W.spec).slice();return Buffer.from(X)}toFragment(){let X=this.serialize();return new $5(this.msgType,X.length,this.messageSeq,0,X.length,X)}},Oo=class W{constructor(X,G,Y,J,Z){this.epoch=X,this.sequenceNumber=G,this.contentType=Y,this.protocolVersion=J,this.contentLen=Z}static spec={epoch:c4.types.uint16be,sequenceNumber:c4.types.uint48be,contentType:c4.types.uint8,protocolVersion:XO,contentLen:c4.types.uint16be};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0)}static deSerialize(X){return new W(...Object.values(c4.decode(X,W.spec)))}serialize(){let X=c4.encode(this,W.spec).slice();return Buffer.from(X)}},nS=class W{constructor(X,G){this.recordLayerHeader=X,this.fragment=G}get summary(){return{header:this.recordLayerHeader,fragment:WO(this.fragment)}}static createEmpty(){return new W(void 0,void 0)}static deSerialize(X){if(X.length<13)throw Error("Invalid DTLS record: buffer is too short");let G=X.readUInt8(0),Y=X.readUInt8(1),J=X.readUInt8(2),Z=X.readUInt16BE(3),V=X.slice(5,11).readUIntBE(0,6),U=X.readUInt16BE(11);if(X.length<13+U)throw Error("Invalid DTLS record: fragment length exceeds buffer");let Q=X.slice(13,13+U);return new W({contentType:G,protocolVersion:{major:Y,minor:J},epoch:Z,sequenceNumber:V,contentLen:U},Q)}serialize(){let X=this.fragment.length,G=13+X,Y=Buffer.alloc(G);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(X,11),this.fragment.copy(Y,13),Y}computeMACHeader(){return new Oo(this.recordLayerHeader.epoch,this.recordLayerHeader.sequenceNumber,this.recordLayerHeader.contentType,this.recordLayerHeader.protocolVersion,this.recordLayerHeader.contentLen).serialize()}},iS=(W)=>(X)=>{return W.lastFlight=X,X.flatMap((G)=>{return G.messageSeq=W.sequenceNumber++,G.toFragment().chunk()})},XU=(W)=>(X,G)=>{return X.map((Y)=>{return new nS({contentType:Y.type,protocolVersion:W.version,epoch:W.epoch,sequenceNumber:G,contentLen:Y.fragment.length},Y.fragment)})},$K=((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})($K||{}),Do=L1("werift-dtls : packages/dtls/src/flight/flight.ts : warn"),ZK=L1("werift-dtls : packages/dtls/src/flight/flight.ts : err"),GU=class W{constructor(X,G,Y,J){this.transport=X,this.dtls=G,this.flight=Y,this.nextFlight=J}state="PREPARING";static RetransmitCount=10;createPacket(X){let G=iS(this.dtls)(X);return this.dtls.bufferHandshakeCache(G,!0,this.flight),XU(this.dtls)(G.map((J)=>({type:22,fragment:J.serialize()})),++this.dtls.recordSequenceNumber)}async transmit(X){let G=0;for(;G<=W.RetransmitCount;G++){if(this.setState("SENDING"),this.send(X).catch((Y)=>{ZK("fail to send",ZK)}),this.setState("WAITING"),this.nextFlight===void 0){this.setState("FINISHED");break}if(await Ko(1000*((G+1)/2)),this.dtls.flight>=this.nextFlight){this.setState("FINISHED");break}else Do(this.dtls.sessionId,"retransmit",G,this.dtls.flight)}if(G>W.RetransmitCount)throw ZK(this.dtls.sessionId,"retransmit failed",G),Error(`over retransmitCount : ${this.flight} ${this.nextFlight}`)}send=(X)=>Promise.all(X.map((G)=>this.transport.send(G)));setState(X){this.state=X}},Co=class extends GU{constructor(W,X,G){super(W,X,1,3);this.cipher=G}async exec(W){if(this.dtls.flight===1)throw Error();this.dtls.flight=1;let X=new oS({major:254,minor:253},new TX,Buffer.from([]),Buffer.from([]),sd,[0],W);this.dtls.version=X.clientVersion,this.cipher.localRandom=TX.from(X.random);let G=this.createPacket([X]),Y=Buffer.concat(G.map((J)=>J.serialize()));await this.transmit([Y])}},To=L1("werift-dtls : packages/dtls/src/flight/client/flight3.ts : log"),Mo=class extends GU{constructor(W,X){super(W,X,3,5)}async exec(W){if(this.dtls.flight===3)throw Error();this.dtls.flight=3,this.dtls.handshakeCache=[];let[X]=this.dtls.lastFlight;To("dtls version",X.clientVersion),X.cookie=W.cookie,this.dtls.cookie=W.cookie;let G=this.createPacket([X]),Y=Buffer.concat(G.map((J)=>J.serialize()));await this.transmit([Y])}},zH={NULL:0,ECDHE:1},YU={NULL:0,RSA:1,ECDSA:2,PSK:3},JU={NULL:0,RSA:1,ECDHE_RSA:2,ECDHE_ECDSA:3,PSK:4,ECDHE_PSK:5},ZU=class{id=0;name;signType;keyType;toString(){return this.name}};function Po(){let W=new ZU;return W.id=JU.RSA,W.name="RSA",W.keyType=YU.RSA,W}function Ro(){let W=new ZU;return W.id=JU.ECDHE_RSA,W.name="ECDHE_RSA",W.signType=zH.ECDHE,W.keyType=YU.RSA,W}function Lo(){let W=new ZU;return W.id=JU.ECDHE_ECDSA,W.name="ECDHE_ECDSA",W.signType=zH.ECDHE,W.keyType=YU.ECDSA,W}function Bo(){let W=new ZU;return W.id=JU.PSK,W.name="PSK",W.signType=zH.NULL,W.keyType=YU.PSK,W}function Eo(){let W=new ZU;return W.id=JU.ECDHE_PSK,W.name="ECDHE_PSK",W.signType=zH.ECDHE,W.keyType=YU.PSK,W}var So=L1("werift-dtls : packages/dtls/src/cipher/suites/aead.ts : err"),xo=class extends Uo{keyLength=0;nonceLength=0;ivLength=0;authTagLength=0;nonceImplicitLength=0;nonceExplicitLength=0;clientWriteKey;serverWriteKey;clientNonce;serverNonce;constructor(){super()}get summary(){return cS(this)}init(W,X,G){let Y=Vo(W,G,X,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,X,G){let Y=W===l4.CLIENT,J=Y?this.clientNonce:this.serverNonce,Z=Y?this.clientWriteKey:this.serverWriteKey;if(!J||!Z)throw Error();J.writeUInt16BE(G.epoch,this.nonceImplicitLength),J.writeUIntBE(G.sequenceNumber,this.nonceImplicitLength+2,6);let V=J.slice(this.nonceImplicitLength),U=this.encodeAdditionalBuffer(G,X.length),Q=$o(this.blockAlgorithm,Z,J,{authTagLength:this.authTagLength});Q.setAAD(U,{plaintextLength:X.length});let N=Q.update(X),q=Q.final(),A=Q.getAuthTag();return Buffer.concat([V,N,q,A])}encodeAdditionalBuffer(W,X){let G=Buffer.alloc(13);return G.writeUInt16BE(W.epoch,0),G.writeUintBE(W.sequenceNumber,2,6),G.writeUInt8(W.type,8),G.writeUInt16BE(W.version,9),G.writeUInt16BE(X,11),G}decrypt(W,X,G){let Y=W===l4.CLIENT,J=Y?this.serverNonce:this.clientNonce,Z=Y?this.serverWriteKey:this.clientWriteKey;if(!J||!Z)throw Error();X.subarray(0,this.nonceExplicitLength).copy(J,this.nonceImplicitLength);let U=X.subarray(this.nonceExplicitLength,X.length-this.authTagLength),Q=X.subarray(X.length-this.authTagLength),N=this.encodeAdditionalBuffer(G,U.length),q=Fo(this.blockAlgorithm,Z,J,{authTagLength:this.authTagLength});q.setAuthTag(Q),q.setAAD(N,{plaintextLength:U.length});let A=q.update(U);try{let H=q.final();return H.length>0?Buffer.concat([A,H]):A}catch(H){throw So("decrypt failed",H,W,WO(X),G,this.summary),H}}},h8={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},kV={K_LEN:16,N_MIN:12,N_MAX:12,P_MAX:68719476705,A_MAX:9007199254740991,C_MAX:68719476721},_V={K_LEN:32,N_MIN:12,N_MAX:12,P_MAX:68719476705,A_MAX:9007199254740991,C_MAX:68719476721},i$=Po(),r$=Ro(),a$=Lo(),s$=Bo(),t$=Eo();function rS(W){switch(W){case h8.TLS_RSA_WITH_AES_128_GCM_SHA256:return f7(h8.TLS_RSA_WITH_AES_128_GCM_SHA256,"TLS_RSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",i$,kV);case h8.TLS_RSA_WITH_AES_256_GCM_SHA384:return f7(h8.TLS_RSA_WITH_AES_256_GCM_SHA384,"TLS_RSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",i$,_V,"sha384");case h8.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:return f7(h8.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",r$,kV);case h8.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:return f7(h8.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",r$,_V,"sha384");case h8.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:return f7(h8.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",a$,kV);case h8.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:return f7(h8.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",a$,_V,"sha384");case h8.TLS_PSK_WITH_AES_128_GCM_SHA256:return f7(h8.TLS_PSK_WITH_AES_128_GCM_SHA256,"TLS_PSK_WITH_AES_128_GCM_SHA256","aes-128-gcm",s$,kV,"sha256");case h8.TLS_PSK_WITH_AES_256_GCM_SHA384:return f7(h8.TLS_PSK_WITH_AES_256_GCM_SHA384,"TLS_PSK_WITH_AES_256_GCM_SHA384","aes-256-gcm",s$,_V,"sha384");case h8.TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256:return f7(h8.TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256","aes-128-gcm",t$,kV,"sha256");case h8.TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384:return f7(h8.TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384","aes-256-gcm",t$,_V,"sha384");default:break}return null}function f7(W,X,G,Y,J,Z="sha256"){let V=new xo;return V.id=W,V.name=X,V.blockAlgorithm=G,V.kx=Y,V.hashAlgorithm=Z,V.keyLength=J.K_LEN,V.nonceLength=J.N_MAX,V.nonceImplicitLength=4,V.nonceExplicitLength=8,V.ivLength=V.nonceImplicitLength,V.authTagLength=16,V}function sS(W){switch(W){case s6.secp256r1_23:{let{privateKey:X,publicKey:G}=Xo();return{curve:W,privateKey:X,publicKey:G}}case s6.x25519_29:{let X=aS.default.box.keyPair();return{curve:W,privateKey:Buffer.from(X.secretKey.buffer),publicKey:Buffer.from(X.publicKey.buffer)}}default:throw Error()}}var IH=class{static type=23},wH=class W{static type=65281;static spec={type:MX.types.uint16be,data:MX.types.uint8};type=W.type;data=0;constructor(X={}){Object.assign(this,X)}static createEmpty(){return new W}static deSerialize(X){return new W(MX.decode(X,W.spec))}serialize(){let X=MX.encode(this,W.spec).slice();return Buffer.from(X)}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},hY=class W{static type=14;static spec={type:r6.types.uint16be,data:r6.types.buffer(r6.types.uint16be)};type=W.type;data=Buffer.from([]);profiles=[];mki=Buffer.from([0]);constructor(X={}){Object.assign(this,X)}static create(X,G){return new W({profiles:X,mki:G})}static deSerialize(X){let G=new W(r6.decode(X,W.spec)),Y=G.data.readUInt16BE(),J=Array(Y/2);for(let Z=0;Z<J.length;Z++)J[Z]=G.data.readUInt16BE(Z*2+2);return G.profiles=J,G.mki=G.data.slice(Y+2),G}serialize(){let X=Buffer.alloc(2);X.writeUInt16BE(this.profiles.length*2);let G=Buffer.concat([X,...this.profiles.map((J)=>{let Z=Buffer.alloc(2);return Z.writeUInt16BE(J),Z}),this.mki]);this.data=G;let Y=r6.encode(this,W.spec).slice();return Buffer.from(Y)}static fromData(X){let G=Buffer.alloc(4);return G.writeUInt16BE(W.type),G.writeUInt16BE(X.length,2),W.deSerialize(Buffer.concat([G,X]))}get extension(){return{type:this.type,data:this.serialize().slice(4)}}},GH=class W{constructor(X){this.certificateList=X}msgType=11;messageSeq;static spec={certificateList:PX.types.array(Ao,PX.types.uint24be,"bytes")};static createEmpty(){return new W(void 0)}static deSerialize(X){return new W(...Object.values(PX.decode(X,W.spec)))}serialize(){let X=PX.encode(this,W.spec).slice();return Buffer.from(X)}toFragment(){let X=this.serialize();return new $5(this.msgType,X.length,this.messageSeq,0,X.length,X)}},tS=class W{constructor(X=1){this.type=X}static spec={type:cY.types.uint8};static createEmpty(){return new W}static deSerialize(X){return new W(...Object.values(cY.decode(X,W.spec)))}serialize(){let X=cY.encode(this,W.spec).slice();return Buffer.from(X)}},eS=class W{constructor(X,G){this.algorithm=X,this.signature=G}msgType=15;messageSeq;static spec={algorithm:a6.types.uint16be,signature:a6.types.buffer(a6.types.uint16be)};static createEmpty(){return new W(void 0,void 0)}static deSerialize(X){let G=a6.decode(X,W.spec);return new W(...Object.values(G))}serialize(){let X=a6.encode(this,W.spec).slice();return Buffer.from(X)}toFragment(){let X=this.serialize();return new $5(this.msgType,X.length,this.messageSeq,0,X.length,X)}},W2=class W{constructor(X){this.publicKey=X}msgType=16;messageSeq;static spec={publicKey:RX.types.buffer(RX.types.uint8)};static createEmpty(){return new W(void 0)}static deSerialize(X){let G=RX.decode(X,W.spec);return new W(...Object.values(G))}serialize(){let X=RX.encode(this,W.spec).slice();return Buffer.from(X)}toFragment(){let X=this.serialize();return new $5(this.msgType,X.length,this.messageSeq,0,X.length,X)}},FK=class W{constructor(X){this.verifyData=X}msgType=20;messageSeq;static createEmpty(){return new W(void 0)}static deSerialize(X){return new W(X)}serialize(){return this.verifyData}toFragment(){let X=this.serialize();return new $5(this.msgType,X.length,this.messageSeq,0,X.length,X)}},X2=class W{constructor(X,G,Y){this.certificateTypes=X,this.signatures=G,this.authorities=Y}msgType=13;messageSeq;static spec={certificateTypes:Z7.types.array(zo,Z7.types.uint8,"bytes"),signatures:Z7.types.array(wo,Z7.types.uint16be,"bytes"),authorities:Z7.types.array(Io,Z7.types.uint16be,"bytes")};static createEmpty(){return new W(void 0,void 0,void 0)}static deSerialize(X){return new W(...Object.values(Z7.decode(X,W.spec)))}serialize(){let X=Z7.encode(this,W.spec).slice();return Buffer.from(X)}toFragment(){let X=this.serialize();return new $5(this.msgType,X.length,this.messageSeq,0,X.length,X)}},G2=class W{constructor(X,G,Y,J,Z,V){this.serverVersion=X,this.random=G,this.sessionId=Y,this.cipherSuite=J,this.compressionMethod=Z,this.extensions=V}msgType=2;messageSeq;static spec={serverVersion:XO,random:TX.spec,sessionId:V7.types.buffer(V7.types.uint8),cipherSuite:V7.types.uint16be,compressionMethod:V7.types.uint8};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(X){let G=V7.decode(X,W.spec),Y=new W(...Object.values(G));if(Y.serialize().length<X.length)return new W(...Object.values(V7.decode(X,{...W.spec,extensions:EK})));return Y}serialize(){let X=this.extensions===void 0?V7.encode(this,W.spec).slice():V7.encode(this,{...W.spec,extensions:EK}).slice();return Buffer.from(X)}toFragment(){let X=this.serialize();return new $5(this.msgType,X.length,this.messageSeq,0,X.length,X)}},Y2=class W{msgType=14;messageSeq;static spec={};static createEmpty(){return new W}static deSerialize(X){return new W(...Object.values(jH.decode(X,W.spec)))}serialize(){let X=jH.encode(this,W.spec).slice();return Buffer.from(X)}toFragment(){let X=this.serialize();return new $5(this.msgType,X.length,this.messageSeq,0,X.length,X)}};function ko(W,X){return Buffer.from(J2.encode(W,X).slice())}var Z2=class W{constructor(X,G,Y,J,Z,V,U,Q){this.ellipticCurveType=X,this.namedCurve=G,this.publicKeyLength=Y,this.publicKey=J,this.hashAlgorithm=Z,this.signatureAlgorithm=V,this.signatureLength=U,this.signature=Q}msgType=12;messageSeq;static spec={ellipticCurveType:Y7.types.uint8,namedCurve:Y7.types.uint16be,publicKeyLength:Y7.types.uint8,publicKey:Y7.types.buffer((X)=>X.current.publicKeyLength),hashAlgorithm:Y7.types.uint8,signatureAlgorithm:Y7.types.uint8,signatureLength:Y7.types.uint16be,signature:Y7.types.buffer((X)=>X.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(X){let G=Y7.decode(X,W.spec);return new W(...Object.values(G))}serialize(){return ko(this,W.spec)}toFragment(){let X=this.serialize();return new $5(this.msgType,X.length,this.messageSeq,0,X.length,X)}},KH=1,VU=7;var _o=(W)=>{switch(W){case KH:case VU:return 16}},yo=(W)=>{switch(W){case KH:return 14;case VU:return 12}},lH0=L1("werift-rtp : packages/rtp/src/codec/av1.ts");var go={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"},dH0=Object.entries(go).reduce((W,[X,G])=>{return W[G]=Number(X),W},{});var oH0=Buffer.from([0,0,0,1]);function e$(W,X){let G=Buffer.alloc(X);return W.copy(G),G}function YH(W){return Number.parseInt(W.toString(),10)}function uo(W){let X=W[0];return X>127&&X<192}var SK=4,WW=class W{version=2;padding=!1;count=0;type=0;length=0;constructor(X={}){Object.assign(this,X)}static serialize(X,G,Y,J){let V=new W({type:X,count:G,version:2,length:J}).serialize();return Buffer.concat([V,Y])}serialize(){let X=new aq(8);if(X.set(2,0,this.version),this.padding)X.set(1,2,1);return X.set(5,3,this.count),S8([1,1,2],[X.value,this.type,this.length])}static deSerialize(X){let[G,Y,J]=t9(X,[1,1,2]),Z=b8(G,0,2),V=b8(G,2,1)>0,U=b8(G,3,5);return new W({version:Z,padding:V,count:U,type:Y,length:J})}},WF=class W{static count=4;count=W.count;senderSsrc;mediaSsrc;fir=[];constructor(X={}){Object.assign(this,X)}get length(){return Math.floor(this.serialize().length/4-1)}static deSerialize(X){let[G,Y]=t9(X,[4,4]),J=[];for(let Z=8;Z<X.length;Z+=8)J.push({ssrc:X.readUInt32BE(Z),sequenceNumber:X[Z+4]});return new W({senderSsrc:G,mediaSsrc:Y,fir:J})}serialize(){let X=S8([4,4],[this.senderSsrc,this.mediaSsrc]),G=Buffer.alloc(this.fir.length*8);return this.fir.forEach(({ssrc:Y,sequenceNumber:J},Z)=>{G.writeUInt32BE(Y,Z*8),G[Z*8+4]=J}),Buffer.concat([X,G])}},JH=class W{static count=1;count=W.count;length=2;senderSsrc;mediaSsrc;constructor(X={}){Object.assign(this,X)}static deSerialize(X){let[G,Y]=t9(X,[4,4]);return new W({senderSsrc:G,mediaSsrc:Y})}serialize(){return S8([4,4],[this.senderSsrc,this.mediaSsrc])}},ZH=class W{static count=15;length;count=W.count;senderSsrc;mediaSsrc;uniqueID="REMB";ssrcNum=0;brExp;brMantissa;bitrate;ssrcFeedbacks=[];constructor(X={}){Object.assign(this,X)}static deSerialize(X){let[G,Y,J,Z,V]=t9(X,[4,4,4,1,1]),U=b8(V,0,6),Q=(b8(V,6,2)<<16)+(X[14]<<8)+X[15],N=U>46?18446744073709551615n:BigInt(Q)<<BigInt(U),q=[];for(let A=16;A<X.length;A+=4){let H=X.slice(A).readUIntBE(0,4);q.push(H)}return new W({senderSsrc:G,mediaSsrc:Y,uniqueID:S8([4],[J]).toString(),ssrcNum:Z,brExp:U,brMantissa:Q,ssrcFeedbacks:q,bitrate:N})}serialize(){let X=Buffer.concat([S8([4,4],[this.senderSsrc,this.mediaSsrc]),Buffer.from(this.uniqueID),S8([1],[this.ssrcNum])]),G=new aq(24);G.set(6,0,this.brExp).set(18,6,this.brMantissa);let Y=Buffer.concat(this.ssrcFeedbacks.map((Z)=>S8([4],[Z]))),J=Buffer.concat([X,S8([3],[G.value]),Y]);return this.length=J.length/4,J}},ho=L1("werift-rtp: /rtcp/psfb/index"),iV=class W{static type=206;type=W.type;feedback;constructor(X={}){Object.assign(this,X)}serialize(){let X=this.feedback.serialize();return WW.serialize(this.type,this.feedback.count,X,this.feedback.length)}static deSerialize(X,G){let Y;switch(G.count){case WF.count:Y=WF.deSerialize(X);break;case JH.count:Y=JH.deSerialize(X);break;case ZH.count:Y=ZH.deSerialize(X);break;default:ho("unknown psfb packet",G.count);break}return new W({feedback:Y})}},rV=class W{ssrc=0;reports=[];static type=201;type=W.type;constructor(X={}){Object.assign(this,X)}serialize(){let X=S8([4],[this.ssrc]);return X=Buffer.concat([X,...this.reports.map((G)=>G.serialize())]),WW.serialize(W.type,this.reports.length,X,Math.floor(X.length/4))}static deSerialize(X,G){let[Y]=t9(X,[4]),J=4,Z=[];for(let V=0;V<G;V++)Z.push(GO.deSerialize(X.slice(J,J+24))),J+=24;return new W({ssrc:Y,reports:Z})}},GO=class W{ssrc;fractionLost;packetsLost;highestSequence;jitter;lsr;dlsr;constructor(X={}){Object.assign(this,X)}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 S8([4,1,3,4,4,4,4],[this.ssrc,this.fractionLost,this.packetsLost,this.highestSequence,this.jitter,this.lsr,this.dlsr])}static deSerialize(X){let[G,Y,J,Z,V,U,Q]=t9(X,[4,1,3,4,4,4,4]);return new W({ssrc:G,fractionLost:Y,packetsLost:J,highestSequence:Z,jitter:V,lsr:U,dlsr:Q})}},V2=205,VH=class W{static count=1;count=W.count;header;senderSsrc;mediaSourceSsrc;lost=[];toJSON(){return{lost:this.lost,senderSsrc:this.senderSsrc,mediaSourceSsrc:this.mediaSourceSsrc}}constructor(X={}){if(Object.assign(this,X),!this.header)this.header=new WW({type:V2,count:this.count,version:2})}static deSerialize(X,G){let[Y,J]=t9(X,[4,4]),Z=[];for(let V=8;V<X.length;V+=4){let[U,Q]=t9(X.subarray(V),[2,2]);Z.push(U);for(let N=0;N<16;N++)if(Q>>N&1)Z.push(U+N+1)}return new W({header:G,senderSsrc:Y,mediaSourceSsrc:J,lost:Z})}serialize(){let X=S8([4,4],[this.senderSsrc,this.mediaSourceSsrc]),G=[];if(this.lost.length>0){let J=this.lost[0],Z=0;this.lost.slice(1).forEach((V)=>{let U=V-J-1;if(U>=0&&U<16)Z|=1<<U;else G.push(S8([2,2],[J,Z])),J=V,Z=0}),G.push(S8([2,2],[J,Z]))}let Y=Buffer.concat([X,Buffer.concat(G)]);return this.header.length=Y.length/4,Buffer.concat([this.header.serialize(),Y])}},bo=L1("werift/rtp/rtcp/rtpfb/twcc"),UH=class W{static count=15;count=W.count;length=2;senderSsrc;mediaSourceSsrc;baseSequenceNumber;packetStatusCount;referenceTime;fbPktCount;packetChunks=[];recvDeltas=[];header;constructor(X={}){if(Object.assign(this,X),!this.header)this.header=new WW({type:205,count:this.count,version:2})}static deSerialize(X,G){let[Y,J,Z,V,U,Q]=t9(X,[4,4,2,2,3,1]),N=[],q=[],A=16;for(let I=0;I<V;){let w=b8(X.slice(A,A+1)[0],0,1),O;switch(w){case 0:{let T=dV.deSerialize(X.slice(A,A+2));O=T;let x=Math.min(V-I,T.runLength);if(T.packetStatus===1||T.packetStatus===2)for(let P=0;P<x;P++)q.push(new uq({type:T.packetStatus}));I+=x}break;case 1:{let T=mo.deSerialize(X.slice(A,A+2));if(O=T,T.symbolSize===0)T.symbolList.forEach((x)=>{if(x===1)q.push(new uq({type:1}))});if(T.symbolSize===1)T.symbolList.forEach((x)=>{if(x===1||x===2)q.push(new uq({type:x}))});I+=T.symbolList.length}break}if(!O)throw Error();A+=2,N.push(O)}let H=A;return q.forEach((I)=>{if(I.type===1)I.deSerialize(X.slice(H,H+1)),H++;if(I.type===2)I.deSerialize(X.slice(H,H+2)),H+=2}),new W({senderSsrc:Y,mediaSourceSsrc:J,baseSequenceNumber:Z,packetStatusCount:V,referenceTime:U,fbPktCount:Q,recvDeltas:q,packetChunks:N,header:G})}serialize(){let X=S8([4,4,2,2,3,1],[this.senderSsrc,this.mediaSourceSsrc,this.baseSequenceNumber,this.packetStatusCount,this.referenceTime,this.fbPktCount]),G=Buffer.concat(this.packetChunks.map((Z)=>Z.serialize())),Y=Buffer.concat(this.recvDeltas.map((Z)=>{try{return Z.serialize()}catch(V){bo(V?.message);return}}).filter((Z)=>Z)),J=Buffer.concat([X,G,Y]);if(this.header.padding&&J.length%4!==0){let Z=4-J.length%4,V=Buffer.alloc(Z);return V[V.length-1]=V.length,this.header.length=Math.floor((J.length+V.length)/4),Buffer.concat([this.header.serialize(),J,V])}return this.header.length=Math.floor(J.length/4),Buffer.concat([this.header.serialize(),J])}get packetResults(){let X=this.baseSequenceNumber-1,G=this.packetChunks.filter((V)=>V instanceof dV).flatMap((V)=>V.results(X)),Y=0,Z=BigInt(this.referenceTime)*64n;for(let V of G){let U=this.recvDeltas[Y];if(!V.received||!U)continue;Z+=BigInt(U.delta)/1000n,V.delta=U.delta,V.receivedAtMs=Number(Z),Y++}return G}},dV=class W{type;packetStatus;runLength;constructor(X={}){Object.assign(this,X),this.type=0}static deSerialize(X){let G=b8(X[0],1,2),Y=(b8(X[0],3,5)<<8)+X[1];return new W({type:0,packetStatus:G,runLength:Y})}serialize(){return new MS(16).set(0).set(this.packetStatus,2).set(this.runLength,13).buffer}results(X){let G=this.packetStatus===1||this.packetStatus===2,Y=[];for(let J=0;J<=this.runLength;++J)Y.push(new fo({sequenceNumber:++X,received:G}));return Y}},mo=class W{type;symbolSize;symbolList=[];constructor(X={}){Object.assign(this,X)}static deSerialize(X){let Y=b8(X[0],1,1),J=[];function Z(V,U){for(let Q=0;Q<V;Q++)U(Q)}switch(Y){case 0:Z(6,(V)=>J.push(b8(X[0],2+V,1))),Z(8,(V)=>J.push(b8(X[1],V,1)));break;case 1:Z(3,(V)=>J.push(b8(X[0],2+V*2,2))),Z(4,(V)=>J.push(b8(X[1],V*2,2)));break;default:Y=(b8(X[0],2,6)<<8)+X[1]}return new W({type:1,symbolSize:Y,symbolList:J})}serialize(){let X=Buffer.alloc(2),G=new MS(16).set(1).set(this.symbolSize),Y=this.symbolSize===0?1:2;return this.symbolList.forEach((J)=>{G.set(J,Y)}),X.writeUInt16BE(G.value),X}},uq=class W{type;delta;constructor(X={}){Object.assign(this,X)}static deSerialize(X){let G,Y;if(X.length===1)G=1,Y=250*X[0];else if(X.length===2)G=2,Y=250*X.readInt16BE();if(G===void 0||Y===void 0)throw Error();return new W({type:G,delta:Y})}deSerialize(X){let G=W.deSerialize(X);this.delta=G.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 X=Buffer.alloc(1);return X.writeUInt8(this.delta),X}else if(this.type===2){let X=Buffer.alloc(2);return X.writeInt16BE(this.delta),X}throw Error("errDeltaExceedLimit "+this.delta+" "+this.type)}};var fo=class{sequenceNumber=0;delta=0;received=!1;receivedAtMs=0;constructor(W){Object.assign(this,W)}},po=L1("werift-rtp:packages/rtp/rtcp/rtpfb/index"),bY=class W{static type=V2;type=W.type;feedback;header;constructor(X={}){Object.assign(this,X)}serialize(){return this.feedback.serialize()}static deSerialize(X,G){let Y;switch(G.count){case VH.count:Y=VH.deSerialize(X,G);break;case UH.count:Y=UH.deSerialize(X,G);break;default:po("unknown rtpfb packet",G.count);break}return new W({feedback:Y,header:G})}},QH=class W{static type=202;type=W.type;chunks=[];constructor(X){Object.assign(this,X)}get length(){let X=0;return this.chunks.forEach((G)=>X+=G.length),X}serialize(){let X=Buffer.concat(this.chunks.map((G)=>G.serialize()));while(X.length%4)X=Buffer.concat([X,Buffer.from([0])]);return WW.serialize(this.type,this.chunks.length,X,X.length/4)}static deSerialize(X,G){let Y=[];for(let J=0;J<X.length;){let Z=U2.deSerialize(X.slice(J));Y.push(Z),J+=Z.length}return new W({chunks:Y})}},U2=class W{source;items=[];constructor(X={}){Object.assign(this,X)}get length(){let X=4;return this.items.forEach((G)=>X+=G.length),X+=1,X+=XF(X),X}serialize(){let X=Buffer.concat([S8([4],[this.source]),Buffer.concat(this.items.map((Y)=>Y.serialize()))]);return Buffer.concat([X,Buffer.alloc(XF(X.length))])}static deSerialize(X){let G=X.readUInt32BE(),Y=[];for(let J=4;J<X.length;){if(X[J]===0)break;let V=Q2.deSerialize(X.slice(J));Y.push(V),J+=V.length}return new W({source:G,items:Y})}},Q2=class W{type;text;constructor(X){Object.assign(this,X)}get length(){return 2+Buffer.from(this.text).length}serialize(){let X=Buffer.from(this.text);return Buffer.concat([S8([1,1],[this.type,X.length]),X])}static deSerialize(X){let G=X[0],Y=X[1],J=X.slice(2,2+Y).toString();return new W({type:G,text:J})}};function XF(W){if(W%4==0)return 0;return 4-W%4}var mY=class W{ssrc=0;senderInfo;reports=[];static type=200;type=W.type;constructor(X){Object.assign(this,X)}toJSON(){return{ssrc:this.ssrc,senderInfo:this.senderInfo.toJSON(),reports:this.reports.map((X)=>X.toJSON())}}serialize(){let X=Buffer.alloc(4);return X.writeUInt32BE(this.ssrc),X=Buffer.concat([X,this.senderInfo.serialize()]),X=Buffer.concat([X,...this.reports.map((G)=>G.serialize())]),WW.serialize(W.type,this.reports.length,X,Math.floor(X.length/4))}static deSerialize(X,G){let Y=X.readUInt32BE(),J=N2.deSerialize(X.subarray(4,24)),Z=24,V=[];for(let Q=0;Q<G;Q++)V.push(GO.deSerialize(X.subarray(Z,Z+24))),Z+=24;return new W({ssrc:Y,senderInfo:J,reports:V})}},N2=class W{ntpTimestamp;rtpTimestamp;packetCount;octetCount;constructor(X={}){Object.assign(this,X)}toJSON(){return{ntpTimestamp:co(this.ntpTimestamp),rtpTimestamp:this.rtpTimestamp}}serialize(){return S8([8,4,4,4],[this.ntpTimestamp,this.rtpTimestamp,this.packetCount,this.octetCount])}static deSerialize(X){let[G,Y,J,Z]=t9(X,[8,4,4,4]);return new W({ntpTimestamp:G,rtpTimestamp:Y,packetCount:J,octetCount:Z})}},co=(W)=>{let[X,G]=t9(S8([8],[W]),[4,4]);return Number(`${X}.${G}`)},lo=L1("werift-rtp:packages/rtp/src/rtcp/rtcp.ts"),oo=class{static deSerialize(W){let X=0,G=[];while(X<W.length){let Y=WW.deSerialize(W.subarray(X,X+SK));X+=SK;let J=W.subarray(X);if(X+=Y.length*4,Y.padding)J=J.subarray(0,J.length-J.subarray(-1)[0]);try{switch(Y.type){case mY.type:G.push(mY.deSerialize(J,Y.count));break;case rV.type:G.push(rV.deSerialize(J,Y.count));break;case QH.type:G.push(QH.deSerialize(J,Y));break;case bY.type:G.push(bY.deSerialize(J,Y));break;case iV.type:G.push(iV.deSerialize(J,Y));break;default:break}}catch(Z){lo("deSerialize RTCP",Z)}}return G}};function no(W){return W.length>=2&&W[1]>=192&&W[1]<=208}var P9={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 io(W,X){return W.map((G)=>{let Y=X[G.id];if(!Y)return{uri:"unknown",value:G.payload};switch(Y){case P9.sdesMid:case P9.sdesRTPStreamID:case P9.repairedRtpStreamId:return{uri:Y,value:Wn(G.payload)};case P9.transportWideCC:return{uri:Y,value:Xn(G.payload)};case P9.absSendTime:return{uri:Y,value:Gn(G.payload)};case P9.audioLevelIndication:return{uri:Y,value:Yn(G.payload)};case P9.videoOrientation:return{uri:Y,value:Jn(G.payload)};default:return{uri:Y,value:G.payload}}}).reduce((G,Y)=>{if(Y)G[Y.uri]=Y.value;return G},{})}function ro(W){return Buffer.from(W)}function ao(W){return Buffer.from(W)}function so(W){return Buffer.from(W)}function to(W){return S8([2],[W])}function eo(W){let X=Buffer.alloc(3),G=W>>14n&0x00ffffffn;return X.writeUIntBE(Number(G),0,3),X}function Wn(W){return W.toString()}function Xn(W){return W.readUInt16BE()}function Gn(W){return t9(W,[3])[0]}function Yn(W){let X=new cV(W);return{v:X.readBits(1)===1,level:X.readBits(7)}}function Jn(W){let X=new cV(W);return X.readBits(4),{c:X.readBits(1),f:X.readBits(1),r1:X.readBits(1),r0:X.readBits(1)}}var Zn=L1("packages/rtp/src/rtp/red/packet.ts"),q2=class W{header;blocks=[];static deSerialize(X){let G=X instanceof ArrayBuffer?Buffer.from(X):X,Y=new W,J=0;return[Y.header,J]=GF.deSerialize(G),Y.header.fields.forEach(({blockLength:Z,timestampOffset:V,blockPT:U})=>{if(Z&&V){let Q=G.subarray(J,J+Z);Y.blocks.push({block:Q,blockPT:U,timestampOffset:V}),J+=Z}else{let Q=G.subarray(J);Y.blocks.push({block:Q,blockPT:U})}}),Y}serialize(){this.header=new GF;for(let{timestampOffset:G,blockPT:Y,block:J}of this.blocks)if(G)this.header.fields.push({fBit:1,blockPT:Y,blockLength:J.length,timestampOffset:G});else this.header.fields.push({fBit:0,blockPT:Y});let X=this.header.serialize();for(let{block:G}of this.blocks)X=Buffer.concat([X,G]);return X}},GF=class W{fields=[];static deSerialize(X){let G=0,Y=new W;for(;;){let J={};Y.fields.push(J);let Z=new cV(X.subarray(G));if(J.fBit=Z.readBits(1),J.blockPT=Z.readBits(7),G++,J.fBit===0)break;J.timestampOffset=Z.readBits(14),J.blockLength=Z.readBits(10),G+=3}return[Y,G]}serialize(){let X=Buffer.alloc(0);for(let G of this.fields)try{if(G.timestampOffset&&G.blockLength){let Y=new cV(Buffer.alloc(4)).writeBits(1,G.fBit).writeBits(7,G.blockPT).writeBits(14,G.timestampOffset).writeBits(10,G.blockLength);X=Buffer.concat([X,Y.uint8Array])}else{let Y=new cV(Buffer.alloc(1)).writeBits(1,0).writeBits(7,G.blockPT);X=Buffer.concat([X,Y.uint8Array])}}catch(Y){Zn(Y?.message)}return X}},Vn=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 q2,X=this.cache.slice(-(this.distance+1)),G=X.pop();if(!G)return W;return X.forEach((Y)=>{let J=gY(G.timestamp,-Y.timestamp);if(J>Un)return;W.blocks.push({block:Y.block,blockPT:Y.blockPT,timestampOffset:J})}),W.blocks.push({block:G.block,blockPT:G.blockPT}),W}},Un=16383,Qn=class{size=150;sequenceNumbers=[];push(W,X){let G=[];return W.blocks.forEach(({blockPT:J,timestampOffset:Z,block:V},U)=>{let Q=R9(X.header.sequenceNumber,-(W.blocks.length-(U+1)));if(Z)G.push(new e6(new t6({timestamp:gY(X.header.timestamp,-Z),payloadType:J,ssrc:X.header.ssrc,sequenceNumber:Q,marker:!0}),V));else G.push(new e6(new t6({timestamp:X.header.timestamp,payloadType:J,ssrc:X.header.ssrc,sequenceNumber:Q,marker:!0}),V))}),G.filter((J)=>{if(this.sequenceNumbers.includes(J.header.sequenceNumber))return!1;else{if(this.sequenceNumbers.length>this.size)this.sequenceNumbers.shift();return this.sequenceNumbers.push(J.header.sequenceNumber),!0}})}},jX={OneByte:48862,TwoByte:4096},YF=2,JF=4,ZF=8,VF=12,UF=4,t6=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=jX.OneByte;extensionLength;extensions=[];constructor(X={}){Object.assign(this,X)}static deSerialize(X){let G=new W,Y=0,J=X[Y++];G.version=b8(J,0,2),G.padding=b8(J,2)>0,G.extension=b8(J,3)>0,G.csrcLength=b8(J,4,4),G.csrc=[...Array(G.csrcLength)].map(()=>{let V=X.readUInt32BE(Y);return Y+=4,V}),Y+=VF-1;let Z=X[1];G.marker=b8(Z,0)>0,G.payloadType=b8(Z,1,7),G.sequenceNumber=X.readUInt16BE(YF),G.timestamp=X.readUInt32BE(JF),G.ssrc=X.readUInt32BE(ZF);for(let V=0;V<G.csrc.length;V++){let U=VF+V*UF;G.csrc[V]=X.subarray(U).readUInt32BE()}if(G.extension){G.extensionProfile=X.subarray(Y).readUInt16BE(),Y+=2;let V=X.subarray(Y).readUInt16BE()*4;switch(G.extensionLength=V,Y+=2,G.extensionProfile){case jX.OneByte:{let U=Y+V;while(Y<U){if(X[Y]===0){Y++;continue}let Q=X[Y]>>4,N=(X[Y]&(X[Y]^240))+1;if(Y++,Q===15)break;let q={id:Q,payload:X.subarray(Y,Y+N)};G.extensions=[...G.extensions,q],Y+=N}}break;case jX.TwoByte:{let U=Y+V;while(Y<U){if(X[Y]===0){Y++;continue}let Q=X[Y];Y++;let N=X[Y];Y++;let q={id:Q,payload:X.subarray(Y,Y+N)};G.extensions=[...G.extensions,q],Y+=N}}break;default:{let U={id:0,payload:X.subarray(Y,Y+V)};G.extensions=[...G.extensions,U],Y+=G.extensions[0].payload.length}break}}if(G.payloadOffset=Y,G.padding)G.paddingSize=X[X.length-1];return G}get serializeSize(){let{csrc:X,extensionProfile:G,extensions:Y}=this,J=12+X.length*UF;if(Y.length>0||this.extension===!0){let Z=4;switch(G){case jX.OneByte:for(let V of Y)Z+=1+V.payload.length;break;case jX.TwoByte:for(let V of Y)Z+=2+V.payload.length;break;default:Z+=Y[0].payload.length}J+=Math.floor((Z+3)/4)*4}return J}serialize(X){let G=Buffer.alloc(X),Y=0,J=new aq(8);if(J.set(2,0,this.version),this.padding)J.set(1,2,1);if(this.extensions.length>0)this.extension=!0;if(this.extension)J.set(1,3,1);J.set(4,4,this.csrc.length),G.writeUInt8(J.value,Y++);let Z=new aq(8);if(this.marker)Z.set(1,0,1);Z.set(7,1,this.payloadType),G.writeUInt8(Z.value,Y++),G.writeUInt16BE(this.sequenceNumber,YF),Y+=2,G.writeUInt32BE(this.timestamp,JF),Y+=4,G.writeUInt32BE(this.ssrc,ZF),Y+=4;for(let V of this.csrc)G.writeUInt32BE(V,Y),Y+=4;if(this.extension){let V=Y;G.writeUInt16BE(this.extensionProfile,Y),Y+=4;let U=Y;switch(this.extensionProfile){case jX.OneByte:for(let q of this.extensions)G.writeUInt8(q.id<<4|q.payload.length-1,Y++),q.payload.copy(G,Y),Y+=q.payload.length;break;case jX.TwoByte:for(let q of this.extensions)G.writeUInt8(q.id,Y++),G.writeUInt8(q.payload.length,Y++),q.payload.copy(G,Y),Y+=q.payload.length;break;default:{let q=this.extensions[0].payload.length;if(q%4!=0)throw Error();this.extensions[0].payload.copy(G,Y),Y+=q}}let Q=Y-U,N=Math.trunc((Q+3)/4)*4;G.writeUInt16BE(Math.trunc(N/4),V+2);for(let q=0;q<N-Q;q++)G.writeUInt8(0,Y),Y++}return this.payloadOffset=Y,G}},e6=class W{constructor(X,G){this.header=X,this.payload=G}get serializeSize(){return this.header.serializeSize+this.payload.length}clone(){return new W(new t6({...this.header}),this.payload)}serialize(){let X=this.header.serialize(this.header.serializeSize+this.payload.length),{payloadOffset:G}=this.header;if(this.payload.copy(X,G),this.header.padding){let Y=Buffer.alloc(this.header.paddingSize);Y.writeUInt8(this.header.paddingSize,this.header.paddingSize-1),X=Buffer.concat([X,Y])}return X}static deSerialize(X){let G=t6.deSerialize(X);return new W(G,X.subarray(G.payloadOffset,X.length-G.paddingSize))}clear(){this.payload=null}};function Nn(W,X,G){return new e6(new t6({payloadType:X,marker:W.header.marker,sequenceNumber:X8.Unpack("!H",W.payload.subarray(0,2))[0],timestamp:W.header.timestamp,ssrc:G}),W.payload.subarray(2))}function qn(W,X,G,Y){return new e6(new t6({payloadType:X,marker:W.header.marker,sequenceNumber:G,timestamp:W.header.timestamp,ssrc:Y,csrc:W.header.csrc,extensions:W.header.extensions}),Buffer.concat([Buffer.from(X8.Pack("!H",[W.header.sequenceNumber])),W.payload]))}var H2=class{constructor(W,X,G,Y){this.srtpSessionKey=W,this.srtpSessionSalt=X,this.srtcpSessionKey=G,this.srtcpSessionSalt=Y}encryptRtp(W,X,G){return Buffer.from([])}decryptRtp(W,X,G){return[]}encryptRTCP(W,X){return Buffer.from([])}decryptRTCP(W){return[]}},fY=class extends Error{constructor(W){super(W);this.name="SrtpAuthenticationError"}},HF=12,An=8;function YO(W,X,G="Failed to authenticate SRTP packet"){let Y=W.length-X;aV(W.length>=HF+X,G);let J=z2(()=>t6.deSerialize(W.subarray(0,Y)),G);return J.paddingSize=0,aV(J.payloadOffset>=HF&&J.payloadOffset<=Y,G),J}function A2(W,X,G,Y="Failed to authenticate SRTCP packet"){return aV(W.length>=An+X+G,Y),z2(()=>WW.deSerialize(W.subarray(0,SK)),Y)}function aV(W,X){if(!W)throw new fY(X)}function z2(W,X){try{return W()}catch{throw new fY(X)}}function I2(W,X,G="Failed to authenticate SRTP packet"){if(!W.padding)return W.paddingSize=0,W;aV(X.length>W.payloadOffset,G);let Y=X[X.length-1];return aV(Y>0&&Y<=X.length-W.payloadOffset,G),W.paddingSize=Y,W}var zn=class extends H2{constructor(W,X,G,Y,J,Z){super(W,X,G,Y);this.srtpSessionAuthTag=J,this.srtcpSessionAuthTag=Z}authTagLength=10;encryptRtp(W,X,G){let Y=W.serialize(W.serializeSize),J=this.generateCounter(W.sequenceNumber,G,W.ssrc,this.srtpSessionSalt),V=QF("aes-128-ctr",this.srtpSessionKey,J).update(X),U=this.generateSrtpAuthTag(G,Y,V);return Buffer.concat([Y,V,U])}decryptRtp(W,X,G=YO(W,this.authTagLength)){let Y=W.length-this.authTagLength,J=W.subarray(0,Y),Z=W.subarray(Y),V=this.generateSrtpAuthTag(X,J.subarray(0,G.payloadOffset),J.subarray(G.payloadOffset));zF(Z,V,"Failed to authenticate SRTP packet");let U=this.generateCounter(G.sequenceNumber,X,G.ssrc,this.srtpSessionSalt),Q=NF("aes-128-ctr",this.srtpSessionKey,U),N=J.subarray(G.payloadOffset),q=Q.update(N),A=Buffer.concat([J.subarray(0,G.payloadOffset),q]);return[A,I2(G,A,"Failed to authenticate SRTP packet")]}encryptRTCP(W,X){let G=Buffer.from(W),Y=G.readUInt32BE(4),J=this.generateCounter(X&65535,X>>16,Y,this.srtcpSessionSalt);QF("aes-128-ctr",this.srtcpSessionKey,J).update(G.slice(8)).copy(G,8),G=Buffer.concat([G,Buffer.alloc(4)]),G.writeUInt32BE(X,G.length-4),G[G.length-4]|=128;let U=this.generateSrtcpAuthTag(G);return G=Buffer.concat([G,U]),G}decryptRTCP(W){let X=A2(W,this.authTagLength,AF),G=W.length-(this.authTagLength+AF),Y=W.subarray(0,W.length-this.authTagLength),J=W.subarray(W.length-this.authTagLength),Z=this.generateSrtcpAuthTag(Y);zF(J,Z,"Failed to authenticate SRTCP packet");let V=Buffer.from(W).slice(0,G);if(W[G]>>>7===0)return[V,X];let Q=W.readUInt32BE(G);Q&=2147483647;let N=W.readUInt32BE(4),q=this.generateCounter(Q&65535,Q>>16,N,this.srtcpSessionSalt);return NF("aes-128-ctr",this.srtcpSessionKey,q).update(V.subarray(8)).copy(V,8),[V,X]}generateSrtcpAuthTag(W){return qF("sha1",this.srtcpSessionAuthTag).update(W).digest().slice(0,10)}generateCounter(W,X,G,Y){let J=Buffer.alloc(16);J.writeUInt32BE(G,4),J.writeUInt32BE(X,8),J.writeUInt32BE(Number(BigInt(W)<<16n),12);for(let Z=0;Z<Y.length;Z++)J[Z]^=Y[Z];return J}generateSrtpAuthTag(W,...X){let G=qF("sha1",this.srtpSessionAuthTag),Y=Buffer.alloc(4);Y.writeUInt32BE(W);for(let J of X)G.update(J);return G.update(Y).digest().subarray(0,10)}},AF=4;function zF(W,X,G){if(W.length!==X.length||!Hn(W,X))throw new fY(G)}var In=class extends H2{aeadAuthTagLen=16;rtpIvWriter=gq([2,4,4,2],!0);rtcpIvWriter=gq([2,4,2,4],!0);aadWriter=gq([4],!0);constructor(W,X,G,Y){super(W,X,G,Y)}encryptRtp(W,X,G){let Y=W.serialize(W.serializeSize),J=this.rtpInitializationVector(W,G),Z=IF("aes-128-gcm",this.srtpSessionKey,J);Z.setAAD(Y);let V=Z.update(X);Z.final();let U=Z.getAuthTag();return Buffer.concat([Y,V,U])}decryptRtp(W,X,G=YO(W,this.aeadAuthTagLen)){let Y=W.subarray(0,G.payloadOffset),J=W.length-this.aeadAuthTagLen,Z=W.subarray(J),V=Buffer.from([]);V=e$(V,W.length-this.aeadAuthTagLen),Y.copy(V);let U=this.rtpInitializationVector(G,X),Q=W.slice(G.payloadOffset,J),N=wF("aes-128-gcm",this.srtpSessionKey,U);N.setAAD(Y),N.setAuthTag(Z);let q=N.update(Q);return KF(N,"SRTP"),q.copy(V,G.payloadOffset),[V,I2(G,V,"Failed to authenticate SRTP packet")]}encryptRTCP(W,X){let G=W.readUInt32BE(4),Y=W.length+this.aeadAuthTagLen,J=Buffer.from([]);J=e$(J,Y+UK),W.slice(0,8).copy(J);let Z=this.rtcpInitializationVector(G,X),V=this.rtcpAdditionalAuthenticatedData(W,X),U=IF("aes-128-gcm",this.srtcpSessionKey,Z);U.setAAD(V);let Q=U.update(W.slice(8));return U.final(),Q.copy(J,8),U.getAuthTag().copy(J,8+Q.length),V.slice(8,12).copy(J,Y),J}decryptRTCP(W){let X=A2(W,this.aeadAuthTagLen,UK),G=W.length-UK,Y=G-this.aeadAuthTagLen,J=W.readUInt32BE(4),Z=W.readUInt32BE(G),V=Z>>>31===1,U=Z&~(jF<<24),Q=this.rtcpInitializationVector(J,U),N=V?Buffer.concat([W.subarray(0,8),W.subarray(G)]):Buffer.concat([W.subarray(0,Y),W.subarray(G)]),q=V?W.slice(8,Y):Buffer.alloc(0),A=V?Buffer.alloc(Y):Buffer.from(W.subarray(0,Y));if(V)W.slice(0,8).copy(A);let H=wF("aes-128-gcm",this.srtcpSessionKey,Q);H.setAAD(N),H.setAuthTag(W.subarray(Y,G));let I=H.update(q);if(KF(H,"SRTCP"),V)I.copy(A,8);return[A,X]}rtpInitializationVector(W,X){let G=this.rtpIvWriter([0,W.ssrc,X,W.sequenceNumber]);for(let Y=0;Y<G.length;Y++)G[Y]^=this.srtpSessionSalt[Y];return G}rtcpInitializationVector(W,X){let G=this.rtcpIvWriter([0,W,0,X]);for(let Y=0;Y<G.length;Y++)G[Y]^=this.srtcpSessionSalt[Y];return G}rtcpAdditionalAuthenticatedData(W,X){let G=Buffer.concat([W.subarray(0,8),this.aadWriter([X])]);return G[8]|=jF,G}},UK=4,jF=128;function KF(W,X){try{W.final()}catch{throw new fY(`Failed to authenticate ${X} packet`)}}var w2=class{constructor(W,X,G){this.masterKey=W,this.masterSalt=X,this.profile=G;{let Y=14-X.length;if(Y>0)this.masterSalt=Buffer.concat([X,Buffer.alloc(Y)])}switch(this.srtpSessionKey=this.generateSessionKey(0),this.srtpSessionSalt=this.generateSessionSalt(2),this.srtpSessionAuthTag=this.generateSessionAuthTag(1),this.srtpSessionAuth=VK("sha1",this.srtpSessionAuthTag),this.srtcpSessionKey=this.generateSessionKey(3),this.srtcpSessionSalt=this.generateSessionSalt(5),this.srtcpSessionAuthTag=this.generateSessionAuthTag(4),this.srtcpSessionAuth=VK("sha1",this.srtcpSessionAuthTag),G){case KH:this.cipher=new zn(this.srtpSessionKey,this.srtpSessionSalt,this.srtcpSessionKey,this.srtcpSessionSalt,this.srtpSessionAuthTag,this.srtcpSessionAuthTag);break;case VU:this.cipher=new In(this.srtpSessionKey,this.srtpSessionSalt,this.srtcpSessionKey,this.srtcpSessionSalt);break}}srtpSSRCStates={};srtpSessionKey;srtpSessionSalt;srtpSessionAuthTag;srtpSessionAuth;srtcpSSRCStates={};srtcpSessionKey;srtcpSessionSalt;srtcpSessionAuthTag;srtcpSessionAuth;cipher;generateSessionKey(W){let X=Buffer.from(this.masterSalt),G=Buffer.from([W,0,0,0,0,0,0]);for(let J=G.length-1,Z=X.length-1;J>=0;J--,Z--)X[Z]=X[Z]^G[J];X=Buffer.concat([X,Buffer.from([0,0])]);let Y=new hq.default.AES(this.masterKey);return Buffer.from(Y.encrypt(X))}generateSessionSalt(W){let X=Buffer.from(this.masterSalt),G=Buffer.from([W,0,0,0,0,0,0]);for(let J=G.length-1,Z=X.length-1;J>=0;J--,Z--)X[Z]=X[Z]^G[J];X=Buffer.concat([X,Buffer.from([0,0])]);let Y=new hq.default.AES(this.masterKey);return X=Buffer.from(Y.encrypt(X)),X.subarray(0,14)}generateSessionAuthTag(W){let X=Buffer.from(this.masterSalt),G=Buffer.from([W,0,0,0,0,0,0]);for(let V=G.length-1,U=X.length-1;V>=0;V--,U--)X[U]=X[U]^G[V];let Y=Buffer.concat([X,Buffer.from([0,0])]),J=Buffer.concat([X,Buffer.from([0,1])]),Z=new hq.default.AES(this.masterKey);return Y=Buffer.from(Z.encrypt(Y)),J=Buffer.from(Z.encrypt(J)),Buffer.concat([Y,J.subarray(0,4)])}getSrtpSsrcState(W){let X=this.srtpSSRCStates[W];if(X)return X;return X={ssrc:W,rolloverCounter:0,lastSequenceNumber:0},this.srtpSSRCStates[W]=X,X}getSrtcpSsrcState(W){let X=this.srtcpSSRCStates[W];if(X)return X;return X={srtcpIndex:0,ssrc:W},this.srtcpSSRCStates[W]=X,X}updateRolloverCount(W,X){if(!X.rolloverHasProcessed)X.rolloverHasProcessed=!0;else if(W===0){if(X.lastSequenceNumber>yV)X.rolloverCounter++}else if(X.lastSequenceNumber<yV&&W>OF-yV){if(X.rolloverCounter>0)X.rolloverCounter--}else if(W<yV&&X.lastSequenceNumber>OF-yV)X.rolloverCounter++;X.lastSequenceNumber=W}generateSrtpAuthTag(W,X){this.srtpSessionAuth=VK("sha1",this.srtpSessionAuthTag);let G=Buffer.alloc(4);return G.writeUInt32BE(X),this.srtpSessionAuth.update(W).update(G).digest().slice(0,10)}index(W){let X=this.srtcpSSRCStates[W];if(!X)return 0;return X.srtcpIndex}setIndex(W,X){let G=this.getSrtcpSsrcState(W);G.srtcpIndex=X%2147483647}},yV=100,OF=65535,wn=class extends w2{constructor(W,X,G){super(W,X,G)}encryptRTCP(W){let X=W.readUInt32BE(4),G=this.getSrtcpSsrcState(X);if(G.srtcpIndex++,G.srtcpIndex>>jn)G.srtcpIndex=0;return this.cipher.encryptRTCP(W,G.srtcpIndex)}decryptRTCP(W){return this.cipher.decryptRTCP(W)}},jn=2147483647,j2=class{constructor(W){this.ContextCls=W}localContext;remoteContext;onData;start(W,X,G,Y,J){this.localContext=new this.ContextCls(W,X,J),this.remoteContext=new this.ContextCls(G,Y,J)}},Kn=class extends j2{constructor(W){super(wn);this.config=W,this.start(W.keys.localMasterKey,W.keys.localMasterSalt,W.keys.remoteMasterKey,W.keys.remoteMasterSalt,W.profile)}decrypt=(W)=>{let[X]=this.remoteContext.decryptRTCP(W);return X};encrypt(W){return this.localContext.encryptRTCP(W)}},On=class extends w2{constructor(W,X,G){super(W,X,G)}encryptRtp(W,X){let G=this.getSrtpSsrcState(X.ssrc);return this.updateRolloverCount(X.sequenceNumber,G),this.cipher.encryptRtp(X,W,G.rolloverCounter)}decryptRtp(W){let X=YO(W,this.rtpAuthTagLength),G=this.srtpSSRCStates[X.ssrc],Y=G?{...G}:{ssrc:X.ssrc,rolloverCounter:0,lastSequenceNumber:0};this.updateRolloverCount(X.sequenceNumber,Y);let J=this.cipher.decryptRtp(W,Y.rolloverCounter,X);if(G)Object.assign(G,Y);else this.srtpSSRCStates[X.ssrc]=Y;return J}get rtpAuthTagLength(){return this.profile===VU?16:10}},Dn=class extends j2{constructor(W){super(On);this.config=W,this.start(W.keys.localMasterKey,W.keys.localMasterSalt,W.keys.remoteMasterKey,W.keys.remoteMasterSalt,W.profile)}decrypt=(W)=>{let[X]=this.remoteContext.decryptRtp(W);return X};encrypt(W,X){return this.localContext.encryptRtp(W,X)}},sH0=class{constructor(W){this.props=W}sequenceNumber=TS();timestamp=TK();create(W){this.sequenceNumber=R9(this.sequenceNumber,1);let X=this.props.between*this.props.clockRate/1000;this.timestamp=gY(this.timestamp,X);let G=new t6({sequenceNumber:this.sequenceNumber,timestamp:Number(this.timestamp),payloadType:96,extension:!0,marker:!1,padding:!1});return new e6(G,W)}},h9=L1("werift-dtls : packages/dtls/src/flight/client/flight5.ts : log"),Cn=class extends GU{constructor(W,X,G,Y){super(W,X,5,7);this.cipher=G,this.srtp=Y}handleHandshake(W){this.dtls.bufferHandshakeCache([W],!1,4);let X=(()=>{switch(W.msg_type){case 2:return G2.deSerialize(W.fragment);case 11:return GH.deSerialize(W.fragment);case 12:return Z2.deSerialize(W.fragment);case 13:return X2.deSerialize(W.fragment);case 14:return Y2.deSerialize(W.fragment)}})();if(X)lY[X.msgType]({dtls:this.dtls,cipher:this.cipher,srtp:this.srtp})(X)}async exec(){if(this.dtls.flight===5){h9(this.dtls.sessionId,"flight5 twice"),this.send(this.dtls.lastMessage);return}this.dtls.flight=5;let W=this.dtls.requestedCertificateTypes.length>0;h9(this.dtls.sessionId,"send flight5",W);let X=[W&&this.sendCertificate(),this.sendClientKeyExchange(),W&&this.sendCertificateVerify(),this.sendChangeCipherSpec(),this.sendFinished()].filter((G)=>G);this.dtls.lastMessage=X,await this.transmit(X)}sendCertificate(){let W=new GH([Buffer.from(this.cipher.localCert)]),X=this.createPacket([W]);return Buffer.concat(X.map((Y)=>Y.serialize()))}sendClientKeyExchange(){if(!this.cipher.localKeyPair)throw Error();let W=new W2(this.cipher.localKeyPair.publicKey),X=this.createPacket([W]),G=Buffer.concat(X.map((U)=>U.serialize())),Y=this.cipher.localKeyPair,J=this.cipher.remoteKeyPair;if(!J.publicKey)throw Error("not exist");let Z=hS(J.publicKey,Y.privateKey,Y.curve);h9(this.dtls.sessionId,"extendedMasterSecret",this.dtls.options.extendedMasterSecret,this.dtls.remoteExtendedMasterSecret);let V=Buffer.concat(this.dtls.sortedHandshakeCache.map((U)=>U.serialize()));return this.cipher.masterSecret=this.dtls.options.extendedMasterSecret&&this.dtls.remoteExtendedMasterSecret?mS(Z,V):bS(Z,this.cipher.localRandom.serialize(),this.cipher.remoteRandom.serialize()),this.cipher.cipher=rS(this.cipher.cipherSuite),this.cipher.cipher.init(this.cipher.masterSecret,this.cipher.remoteRandom.serialize(),this.cipher.localRandom.serialize()),h9(this.dtls.sessionId,"cipher",this.cipher.cipher.summary),G}sendCertificateVerify(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((V)=>V.serialize())),X=this.cipher.signatureData(W,"sha256"),G=(()=>{switch(this.cipher.signatureHashAlgorithm?.signature){case d4.ecdsa_3:return o$.ecdsa_secp256r1_sha256;case d4.rsa_1:return o$.rsa_pkcs1_sha256}})();if(!G)throw Error();h9(this.dtls.sessionId,"signatureScheme",this.cipher.signatureHashAlgorithm?.signature,G);let Y=new eS(G,X),J=this.createPacket([Y]);return Buffer.concat(J.map((V)=>V.serialize()))}sendChangeCipherSpec(){let W=tS.createEmpty().serialize(),X=XU(this.dtls)([{type:20,fragment:W}],++this.dtls.recordSequenceNumber);return Buffer.concat(X.map((Y)=>Y.serialize()))}sendFinished(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((Z)=>Z.serialize())),X=this.cipher.verifyData(W),G=new FK(X);this.dtls.epoch=1;let[Y]=this.createPacket([G]);this.dtls.recordSequenceNumber=0;let J=this.cipher.encryptPacket(Y).serialize();return h9(this.dtls.sessionId,"finished",this.cipher.cipher.summary),J}},lY={};lY[2]=({cipher:W,srtp:X,dtls:G})=>(Y)=>{if(h9(G.sessionId,"serverHello",Y.cipherSuite),W.remoteRandom=TX.from(Y.random),W.cipherSuite=Y.cipherSuite,h9(G.sessionId,"selected cipherSuite",W.cipherSuite),Y.extensions)Y.extensions.forEach((J)=>{switch(J.type){case hY.type:{let Z=hY.fromData(J.data),V=WH.findMatchingSRTPProfile(Z.profiles,G.options.srtpProfiles||[]);if(h9(G.sessionId,"selected srtp profile",V),V==null)return;X.srtpProfile=V}break;case IH.type:G.remoteExtendedMasterSecret=!0;break;case wH.type:h9(G.sessionId,"RenegotiationIndication");break}})};lY[11]=({cipher:W,dtls:X})=>(G)=>{h9(X.sessionId,"handshake certificate",G),W.remoteCertificate=G.certificateList[0]};lY[12]=({cipher:W,dtls:X})=>(G)=>{if(!W.localRandom||!W.remoteRandom)throw Error();h9(X.sessionId,"ServerKeyExchange",G),h9(X.sessionId,"selected curve",G.namedCurve),W.remoteKeyPair={curve:G.namedCurve,publicKey:G.publicKey},W.localKeyPair=sS(G.namedCurve)};lY[13]=({dtls:W})=>(X)=>{h9(W.sessionId,"certificate_request",X),W.requestedCertificateTypes=X.certificateTypes,W.requestedSignatureAlgorithms=X.signatures};lY[14]=({dtls:W})=>(X)=>{h9(W.sessionId,"server_hello_done",X)};var K2=class W{constructor(X,G){this.serverVersion=X,this.cookie=G}msgType=3;messageSeq;static spec={serverVersion:XO,cookie:LX.types.buffer(LX.types.uint8)};static createEmpty(){return new W(void 0,void 0)}static deSerialize(X){return new W(...Object.values(LX.decode(X,W.spec)))}serialize(){let X=LX.encode(this,W.spec).slice();return Buffer.from(X)}get version(){return{major:255-this.serverVersion.major,minor:255-this.serverVersion.minor}}toFragment(){let X=this.serialize();return new $5(this.msgType,X.length,this.messageSeq,0,X.length,X)}},Mn=L1("werift-dtls : packages/dtls/src/context/dtls.ts : log"),DF=class{constructor(W,X){this.options=W,this.sessionType=X}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],[X])=>Number(W)-Number(X)).flatMap(([,{data:W}])=>W.sort((X,G)=>X.message_seq-G.message_seq))}checkHandshakesExist=(W)=>!W.find((X)=>this.sortedHandshakeCache.find((G)=>G.msg_type===X)==null);bufferHandshakeCache(W,X,G){if(!this.handshakeCache[G])this.handshakeCache[G]={data:[],isLocal:X,flight:G};let Y=W.filter((J)=>{let Z=this.handshakeCache[G].data.find((V)=>V.msg_type===J.msg_type);if(Z)return Mn(this.sessionId,"exist",Z.summary,X,G),!1;return!0});this.handshakeCache[G].data=[...this.handshakeCache[G].data,...Y]}},Pn=class{constructor(W){this.socket=W}send=(W)=>{return this.socket.send(W)}},xK=class W{static type=10;static spec={type:d7.types.uint16be,data:d7.types.array(d7.types.uint16be,d7.types.uint16be,"bytes")};type=W.type;data=[];constructor(X={}){Object.assign(this,X)}static createEmpty(){return new W}static fromData(X){return new W({type:W.type,data:d7.decode(X,W.spec.data)})}static deSerialize(X){return new W(d7.decode(X,W.spec))}serialize(){return Buffer.from(d7.encode(this,W.spec).slice())}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},kK=class W{static type=13;static spec={type:c7.types.uint16be,data:c7.types.array({hash:c7.types.uint8,signature:c7.types.uint8},c7.types.uint16be,"bytes")};type=W.type;data=[];constructor(X={}){Object.assign(this,X)}static createEmpty(){return new W}static deSerialize(X){return new W(c7.decode(X,W.spec))}serialize(){let X=c7.encode(this,W.spec).slice();return Buffer.from(X)}static fromData(X){let G=Buffer.alloc(2);return G.writeUInt16BE(W.type),W.deSerialize(Buffer.concat([G,X]))}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},CF=class W{constructor(X,G){this.level=X,this.description=G}static spec={level:BX.types.uint8,description:BX.types.uint8};static deSerialize(X){return new W(...Object.values(BX.decode(X,W.spec)))}serialize(){let X=BX.encode(this,W.spec).slice();return Buffer.from(X)}},TF=L1("werift-dtls : packages/dtls/record/receive.ts : log"),QK=L1("werift-dtls : packages/dtls/record/receive.ts : err"),Rn=(W)=>{let X=0,G=[];while(W.length>X){let Y=W.readUInt16BE(X+11);if(W.length<X+(12+Y))break;let J=nS.deSerialize(W.subarray(X));G.push(J),X+=13+Y}return G},Ln=(W,X)=>(G)=>{switch(G.recordLayerHeader.contentType){case 20:return TF(W.sessionId,"change cipher spec"),[{type:20,data:void 0}];case 22:{let J=G.fragment;try{if(G.recordLayerHeader.epoch>0)TF(W.sessionId,"decrypt handshake"),J=X.decryptPacket(G)}catch(Z){throw QK(W.sessionId,"decrypt failed",Z),Z}try{let Z=0,V=[];while(J.length>Z){let U=$5.deSerialize(J.subarray(Z));V.push({type:22,data:U}),Z+=U.fragment_length+12}return V}catch(Z){throw QK(W.sessionId,"decSerialize failed",Z,J),Z}}case 23:return[{type:23,data:X.decryptPacket(G)}];case 21:{let J=CF.deSerialize(G.fragment);if($K[J.description]==null){let Z=X.decryptPacket(G);J=CF.deSerialize(Z)}if(QK(W.sessionId,"ContentType.alert",J,$K[J.description],"flight",W.flight,"lastFlight",W.lastFlight),J.level>1)throw Error("alert fatal error");return[{type:21,data:void 0}]}default:return[{type:21,data:void 0}]}},MF=L1("werift-dtls : packages/dtls/src/socket.ts : log"),PF=L1("werift-dtls : packages/dtls/src/socket.ts : err"),O2=class{constructor(W,X){this.options=W,this.sessionType=X,this.dtls=new DF(this.options,this.sessionType),this.cipher=new eq(this.sessionType,this.options.cert,this.options.key,this.options.signatureHash),this.transport=new Pn(this.options.transport),this.setupExtensions(),this.transport.socket.onData=this.udpOnMessage}onConnect=new d0;onData=new d0;onError=new d0;onClose=new d0;transport;cipher;dtls;srtp=new WH;connected=!1;extensions=[];onHandleHandshakes;bufferFragmentedHandshakes=[];renegotiation(){MF("renegotiation",this.sessionType),this.connected=!1,this.cipher=new eq(this.sessionType,this.options.cert,this.options.key,this.options.signatureHash),this.dtls=new DF(this.options,this.sessionType),this.srtp=new WH,this.extensions=[],this.bufferFragmentedHandshakes=[]}udpOnMessage=(W)=>{let X=Rn(W);for(let G of X)try{let Y=Ln(this.dtls,this.cipher)(G);for(let J of Y)switch(J.type){case 22:{let Z=J.data,V=this.handleFragmentHandshake([Z]),U=Object.values(V.reduce((Q,N)=>{if(!Q[N.msg_type])Q[N.msg_type]=[];return Q[N.msg_type].push(N),Q},{})).map((Q)=>$5.assemble(Q)).sort((Q,N)=>Q.msg_type-N.msg_type);this.onHandleHandshakes(U).catch((Q)=>{PF(this.dtls.sessionId,"onHandleHandshakes error",Q),this.onError.execute(Q)})}break;case 23:this.onData.execute(J.data);break;case 21:this.onClose.execute();break}}catch(Y){PF(this.dtls.sessionId,"catch udpOnMessage error",Y)}};setupExtensions(){if(MF(this.dtls.sessionId,"support srtpProfiles",this.options.srtpProfiles),this.options.srtpProfiles&&this.options.srtpProfiles.length>0){let W=hY.create(this.options.srtpProfiles,Buffer.from([0]));this.extensions.push(W.extension)}{let W=xK.createEmpty();W.data=_S,this.extensions.push(W.extension)}{let W=kK.createEmpty();W.data=vS,this.extensions.push(W.extension)}if(this.options.extendedMasterSecret)this.extensions.push({type:IH.type,data:Buffer.alloc(0)});{let W=wH.createEmpty();this.extensions.push(W.extension)}}waitForReady=(W)=>new Promise(async(X,G)=>{for(let Y=0;Y<10;Y++)if(W()){X();break}else await Tn(100*Y);G("waitForReady timeout")});handleFragmentHandshake(W){let X=W.filter((G)=>{if(G.fragment_length!==G.length)return this.bufferFragmentedHandshakes.push(G),!1;return!0});if(this.bufferFragmentedHandshakes.length>1){let[G]=this.bufferFragmentedHandshakes.slice(-1);if(G.fragment_offset+G.fragment_length===G.length)X=[...this.bufferFragmentedHandshakes,...X],this.bufferFragmentedHandshakes=[]}return X}send=async(W)=>{let X=XU(this.dtls)([{type:23,fragment:W}],++this.dtls.recordSequenceNumber)[0];await this.transport.send(this.cipher.encryptPacket(X).serialize())};close(){this.transport.socket.close()}extractSessionKeys(W,X){let G=this.exportKeyingMaterial("EXTRACTOR-dtls_srtp",W*2+X*2),{clientKey:Y,serverKey:J,clientSalt:Z,serverSalt:V}=OX.decode(G,{clientKey:OX.types.buffer(W),serverKey:OX.types.buffer(W),clientSalt:OX.types.buffer(X),serverSalt:OX.types.buffer(X)});if(this.sessionType===l4.CLIENT)return{localKey:Y,localSalt:Z,remoteKey:J,remoteSalt:V};else return{localKey:J,localSalt:V,remoteKey:Y,remoteSalt:Z}}exportKeyingMaterial(W,X){return Yo(W,X,this.cipher.masterSecret,this.cipher.localRandom.serialize(),this.cipher.remoteRandom.serialize(),this.sessionType===l4.CLIENT)}get remoteCertificate(){return this.cipher.remoteCertificate}},NK=L1("werift-dtls : packages/dtls/src/client.ts : log"),RF=class extends O2{constructor(W){super(W,l4.CLIENT);this.onHandleHandshakes=this.handleHandshakes,NK(this.dtls.sessionId,"start client")}async connect(){await new Co(this.transport,this.dtls,this.cipher).exec(this.extensions)}flight5;handleHandshakes=async(W)=>{NK(this.dtls.sessionId,"handleHandshakes",W.map((X)=>X.msg_type));for(let X of W)switch(X.msg_type){case 3:{let G=K2.deSerialize(X.fragment);await new Mo(this.transport,this.dtls).exec(G)}break;case 2:{if(this.connected)return;this.flight5=new Cn(this.transport,this.dtls,this.cipher,this.srtp),this.flight5.handleHandshake(X)}break;case 11:case 12:case 13:await this.waitForReady(()=>!!this.flight5),this.flight5?.handleHandshake(X);break;case 14:{await this.waitForReady(()=>!!this.flight5),this.flight5?.handleHandshake(X);let G=[11,12,this.options.certificateRequest&&13].filter((Y)=>typeof Y==="number");await this.waitForReady(()=>this.dtls.checkHandshakesExist(G)),await this.flight5?.exec()}break;case 20:this.dtls.flight=7,this.connected=!0,this.onConnect.execute(),NK(this.dtls.sessionId,"dtls connected");break}}},p7=L1("werift-dtls : packages/dtls/flight/server/flight2.ts : log"),En=(W,X,G,Y)=>(J)=>{p7("dtls version",J.clientVersion),X.flight=2,X.recordSequenceNumber=0,X.sequenceNumber=0,J.extensions.forEach((A)=>{switch(A.type){case xK.type:{let H=xK.fromData(A.data).data;p7(X.sessionId,"curves",H);let I=H.filter((w)=>_S.includes(w))[0];G.namedCurve=I,p7(X.sessionId,"curve selected",G.namedCurve)}break;case kK.type:{if(!G.signatureHashAlgorithm)throw Error("need to set certificate");let H=kK.fromData(A.data).data;p7(X.sessionId,"hash,signature",H);let I=H.find((O)=>O.signature===G.signatureHashAlgorithm?.signature)?.signature,w=H.find((O)=>O.hash===G.signatureHashAlgorithm?.hash)?.hash;if(I==null||w==null)throw Error("invalid signatureHash")}break;case hY.type:{if(!X.options?.srtpProfiles)return;if(X.options.srtpProfiles.length===0)return;let H=hY.fromData(A.data);p7(X.sessionId,"srtp profiles",H.profiles);let I=WH.findMatchingSRTPProfile(H.profiles,X.options?.srtpProfiles);if(!I)throw Error();Y.srtpProfile=I,p7(X.sessionId,"srtp profile selected",Y.srtpProfile)}break;case IH.type:X.remoteExtendedMasterSecret=!0;break;case wH.type:p7(X.sessionId,"RenegotiationIndication",A.data);break;case 43:{let I=[...A.data.subarray(1)].map((w)=>w.toString(10));p7("dtls supported version",I)}break}}),G.localRandom=new TX,G.remoteRandom=TX.from(J.random);let Z=J.cipherSuites;p7(X.sessionId,"cipher suites",Z);let V=(()=>{switch(G.signatureHashAlgorithm?.signature){case d4.ecdsa_3:return LK.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_49195;case d4.rsa_1:return LK.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256_49199}})();if(V===void 0||!Z.includes(V))throw Error("dtls cipher suite negotiation failed");G.cipherSuite=V,p7(X.sessionId,"selected cipherSuite",G.cipherSuite),G.localKeyPair=sS(G.namedCurve),X.cookie||=Bn(20);let U=new K2({major:254,minor:253},X.cookie),Q=iS(X)([U]),q=XU(X)(Q.map((A)=>({type:22,fragment:A.serialize()})),++X.recordSequenceNumber).map((A)=>A.serialize());for(let A of q)W.send(A)},LF=L1("werift-dtls : packages/dtls/flight/server/flight4.ts : log"),$n=class extends GU{constructor(W,X,G,Y){super(W,X,4,6);this.cipher=G,this.srtp=Y}async exec(W,X=!1){if(this.dtls.flight===4){LF(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 G=[this.sendServerHello(),this.sendCertificate(),this.sendServerKeyExchange(),X&&this.sendCertificateRequest(),this.sendServerHelloDone()].filter((Y)=>Y);this.dtls.lastMessage=G,await this.transmit(G)}sendServerHello(){let W=[];if(this.srtp.srtpProfile)W.push(hY.create([this.srtp.srtpProfile],Buffer.from([0])).extension);if(this.dtls.options.extendedMasterSecret)W.push({type:IH.type,data:Buffer.alloc(0)});let X=wH.createEmpty();W.push(X.extension);let G=new G2(this.dtls.version,this.cipher.localRandom,Buffer.from([0]),this.cipher.cipherSuite,0,W),Y=this.createPacket([G]);return Buffer.concat(Y.map((J)=>J.serialize()))}sendCertificate(){let W=new GH([Buffer.from(this.cipher.localCert)]),X=this.createPacket([W]);return Buffer.concat(X.map((G)=>G.serialize()))}sendServerKeyExchange(){let W=this.cipher.generateKeySignature("sha256");if(!this.cipher.signatureHashAlgorithm)throw Error("not exist");let X=new Z2(yS.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),G=this.createPacket([X]);return Buffer.concat(G.map((Y)=>Y.serialize()))}sendCertificateRequest(){let W=new X2(td,vS,[]);LF(this.dtls.sessionId,"sendCertificateRequest",W);let X=this.createPacket([W]);return Buffer.concat(X.map((G)=>G.serialize()))}sendServerHelloDone(){let W=new Y2,X=this.createPacket([W]);return Buffer.concat(X.map((G)=>G.serialize()))}},pY=L1("werift-dtls : packages/dtls/flight/server/flight6.ts"),Fn=class extends GU{constructor(W,X,G){super(W,X,6);this.cipher=G}handleHandshake(W){this.dtls.bufferHandshakeCache([W],!1,5);let X=(()=>{switch(W.msg_type){case 11:return GH.deSerialize(W.fragment);case 15:return eS.deSerialize(W.fragment);case 16:return W2.deSerialize(W.fragment);case 20:return FK.deSerialize(W.fragment)}})();if(X){let G=UU[X.msgType];if(!G)return;G({dtls:this.dtls,cipher:this.cipher})(X)}}async exec(){if(this.dtls.flight===6){pY(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=tS.createEmpty().serialize(),X=XU(this.dtls)([{type:20,fragment:W}],++this.dtls.recordSequenceNumber);return Buffer.concat(X.map((Y)=>Y.serialize()))}sendFinished(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((Z)=>Z.serialize())),X=this.cipher.verifyData(W),G=new FK(X);this.dtls.epoch=1;let[Y]=this.createPacket([G]);return this.dtls.recordSequenceNumber=0,this.cipher.encryptPacket(Y).serialize()}},UU={};UU[16]=({cipher:W,dtls:X})=>(G)=>{if(W.remoteKeyPair={curve:W.namedCurve,publicKey:G.publicKey},!W.remoteKeyPair.publicKey||!W.localKeyPair||!W.remoteRandom||!W.localRandom)throw Error("not exist");let Y=hS(W.remoteKeyPair.publicKey,W.localKeyPair.privateKey,W.localKeyPair.curve);pY(X.sessionId,"extendedMasterSecret",X.options.extendedMasterSecret,X.remoteExtendedMasterSecret);let J=Buffer.concat(X.sortedHandshakeCache.map((Z)=>Z.serialize()));W.masterSecret=X.options.extendedMasterSecret&&X.remoteExtendedMasterSecret?mS(Y,J):bS(Y,W.remoteRandom.serialize(),W.localRandom.serialize()),W.cipher=rS(W.cipherSuite),W.cipher.init(W.masterSecret,W.localRandom.serialize(),W.remoteRandom.serialize()),pY(X.sessionId,"setup cipher",W.cipher.summary)};UU[11]=({cipher:W,dtls:X})=>(G)=>{pY(X.sessionId,"handshake certificate",G),W.remoteCertificate=G.certificateList[0]};UU[15]=({cipher:W,dtls:X})=>(G)=>{if(!W.remoteCertificate)throw Error("client certificate missing before certificate verify");pY(X.sessionId,"certificate_verify",G.algorithm)};UU[20]=({dtls:W})=>(X)=>{pY(W.sessionId,"finished",X)};var SY=L1("werift-dtls : packages/dtls/src/server.ts : log"),Sn=class extends O2{constructor(W){super(W,l4.SERVER);this.onHandleHandshakes=this.handleHandshakes,SY(this.dtls.sessionId,"start server")}flight6;handleHandshakes=async(W)=>{SY(this.dtls.sessionId,"handleHandshakes",W.map((X)=>X.msg_type));for(let X of W)switch(X.msg_type){case 1:{if(this.connected)this.renegotiation();let G=oS.deSerialize(X.fragment);if(G.cookie.length===0)SY(this.dtls.sessionId,"send flight2"),En(this.transport,this.dtls,this.cipher,this.srtp)(G);else if(this.dtls.cookie&&G.cookie.equals(this.dtls.cookie))SY(this.dtls.sessionId,"send flight4"),await new $n(this.transport,this.dtls,this.cipher,this.srtp).exec(X,this.options.certificateRequest);else SY("wrong state",{dtlsCookie:this.dtls.cookie?.toString("hex").slice(10),helloCookie:G.cookie.toString("hex").slice(10)})}break;case 11:case 15:case 16:{if(this.connected)return;this.flight6=new Fn(this.transport,this.dtls,this.cipher),this.flight6.handleHandshake(X)}break;case 20:{await this.waitForReady(()=>!!this.flight6),this.flight6?.handleHandshake(X);let G=[16,this.options.certificateRequest&&11,this.options.certificateRequest&&15].filter((Y)=>typeof Y==="number");await this.waitForReady(()=>this.dtls.checkHandshakesExist(G)),await this.flight6?.exec(),this.connected=!0,this.onConnect.execute(),SY(this.dtls.sessionId,"dtls connected")}break}}},JO=554869826,xn=8,kn=1398035790,i6=20,D2=24,C2=1,T2=2,_n=6,yn=50;var M2=((W)=>{return W[W.REQUEST=0]="REQUEST",W[W.INDICATION=16]="INDICATION",W[W.RESPONSE=256]="RESPONSE",W[W.ERROR=272]="ERROR",W})(M2||{}),P2=((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})(P2||{});function vV(W){return L2(W).toString("hex").substring(0,W)}function B2(){return L2(12)}var BF=class{queue=[];wait=new d0;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((X)=>{this.wait.subscribe((G)=>{this.queue.shift(),X(G)})});return W}},_K=(W)=>{let X,G,Y=new Promise((Z,V)=>{X=Z,G=V});Y.then(()=>{J.execute(void 0),J.complete()}).catch((Z)=>{J.execute(Z??Error()),J.complete()});let J=new d0;return W(X,G,J).catch(()=>{}),{awaitable:Y,resolve:X,reject:G}};function _Y(W){let[X]=W,G=sV.default.isV4Format(X)?C2:T2,Y=Buffer.alloc(4);return Y.writeUInt8(0,0),Y.writeUInt8(G,1),Y.writeUInt16BE(W[1],2),Buffer.concat([Y,sV.default.toBuffer(X)])}function vn(W){if(W.length<4)throw Error("STUN error code is less than 4 bytes");let X=W.readUInt8(2),G=W.readUInt8(3),Y=W.slice(4).toString("utf8");return[X*100+G,Y]}function yY(W){if(W.length<4)throw Error("STUN address length is less than 4 bytes");let X=W.readUInt8(1),G=W.readUInt16BE(2),Y=W.slice(4);switch(X){case C2:if(Y.length!=4)throw Error("STUN address has invalid length for IPv4");return[sV.default.toString(Y),G];case T2:if(Y.length!=16)throw Error("STUN address has invalid length for IPv6");return[sV.default.toString(Y),G];default:throw Error("STUN address has unknown protocol")}}var ZO=Buffer.alloc(6);ZO.writeUInt16BE(JO>>16,0);ZO.writeUInt32BE(JO,2);function E2(W,X){let G=[...ZO,...X],Y=W.slice(0,2);for(let J=2;J<W.length;J++){let Z=W[J]^G[J-2],V=Buffer.alloc(1);V.writeUIntBE(Z,0,1),Y=Buffer.concat([Y,V])}return Y}function bq(W,X){return yY(E2(W,X))}function gn(W){let X=Buffer.alloc(4);X.writeUInt16BE(0,0),X.writeUInt8(Math.floor(W[0]/100),2),X.writeUInt8(W[0]%100,3);let G=Buffer.from(W[1],"utf8");return Buffer.concat([X,G])}function mq(W,X){return E2(_Y(W),X)}var gV=(W)=>{let X=Buffer.alloc(4);return X.writeUInt32BE(W,0),X},uV=(W)=>W.readUInt32BE(0),un=(W)=>{let X=Buffer.alloc(4);return X.writeUInt16BE(W,0),X},hn=(W)=>W.readUInt16BE(0),EF=(W)=>{return new ij(W.toString()).toBuffer()},$F=(W)=>{let X=new ij(W);return BigInt(X.toString())},qK=(W)=>Buffer.from(W,"utf8"),HK=(W)=>W.toString("utf8"),AK=(W)=>W,zK=(W)=>W,bn=(W)=>Buffer.from([]),mn=(W)=>null,$2=[[1,"MAPPED-ADDRESS",_Y,yY],[3,"CHANGE-REQUEST",gV,uV],[4,"SOURCE-ADDRESS",_Y,yY],[5,"CHANGED-ADDRESS",_Y,yY],[6,"USERNAME",qK,HK],[8,"MESSAGE-INTEGRITY",AK,zK],[9,"ERROR-CODE",gn,vn],[12,"CHANNEL-NUMBER",un,hn],[13,"LIFETIME",gV,uV],[18,"XOR-PEER-ADDRESS",mq,bq],[19,"DATA",AK,zK],[20,"REALM",qK,HK],[21,"NONCE",AK,zK],[22,"XOR-RELAYED-ADDRESS",mq,bq],[25,"REQUESTED-TRANSPORT",gV,uV],[32,"XOR-MAPPED-ADDRESS",mq,bq],[36,"PRIORITY",gV,uV],[37,"USE-CANDIDATE",bn,mn],[32802,"SOFTWARE",qK,HK],[32808,"FINGERPRINT",gV,uV],[32809,"ICE-CONTROLLED",EF,$F],[32810,"ICE-CONTROLLING",EF,$F],[32811,"RESPONSE-ORIGIN",_Y,yY],[32812,"OTHER-ADDRESS",_Y,yY]],F2=class{constructor(W=[]){this.attributes=W}getAttributes(){return this.attributes}setAttribute(W,X){let G=this.attributes.find((Y)=>Y[0]===W);if(G)G[1]=X;else this.attributes.push([W,X]);return this}getAttributeValue(W){let X=this.attributes.find((G)=>G[0]===W);if(!X)return;return X[1]}get attributesKeys(){return this.attributes.map((W)=>W[0])}clear(){this.attributes=[]}},FF=$2.reduce((W,X)=>{return W[X[0]]=X,W},{}),fn=$2.reduce((W,X)=>{return W[X[1]]=X,W},{});function VO(W,X){if(W.length<i6)return;let G=W.readUint16BE(2);if(W.length!==i6+G)return;let Y=W.readUint16BE(0),J=Buffer.from(W.slice(i6-12,i6)),Z=new F2;for(let U=i6;U<=W.length-4;){let Q=W.readUInt16BE(U),N=W.readUInt16BE(U+2),q=W.slice(U+4,U+4+N),A=4*Math.floor((N+3)/4)-N;if(Object.keys(FF).includes(Q.toString())){let[,I,,w]=FF[Q];if(w.name===bq.name)Z.setAttribute(I,w(q,J));else Z.setAttribute(I,w(q));if(I==="FINGERPRINT"){let O=S2(W.slice(0,U));if(Z.getAttributeValue("FINGERPRINT")!==O)return}else if(I==="MESSAGE-INTEGRITY"){if(X){let O=pn(W.slice(0,U),X),T=Z.getAttributeValue("MESSAGE-INTEGRITY");if(!O.equals(T))return}}}U+=4+N+A}let V=Z.getAttributes();return Z.clear(),new l7(Y&16111,Y&272,J,V)}var l7=class extends F2{constructor(W,X,G=B2(),Y=[]){super(Y);this.messageMethod=W,this.messageClass=X,this.transactionId=G}toJSON(){return this.json}get json(){return{messageMethod:P2[this.messageMethod],messageClass:M2[this.messageClass],attributes:this.attributes}}get transactionIdHex(){return this.transactionId.toString("hex")}get bytes(){let W=Buffer.from([]);for(let G of this.attributesKeys){let Y=this.getAttributeValue(G),[J,,Z]=fn[G],V=Z.name===mq.name?Z(Y,this.transactionId):Z(Y),U=V.length,Q=4*Math.floor((U+3)/4)-U,N=Buffer.alloc(4);N.writeUInt16BE(J,0),N.writeUInt16BE(U,2),W=Buffer.concat([W,N,V,Buffer.alloc(Q,0)])}let X=Buffer.alloc(8);return X.writeUInt16BE(this.messageMethod|this.messageClass,0),X.writeUInt16BE(W.length,2),X.writeUInt32BE(JO,4),Buffer.concat([X,this.transactionId,W])}addMessageIntegrity(W){return this.setAttribute("MESSAGE-INTEGRITY",this.messageIntegrity(W)),this}messageIntegrity(W){let X=UO(this.bytes,this.bytes.length-i6+D2);return Buffer.from(R2("sha1",W).update(X).digest("hex"),"hex")}addFingerprint(){this.setAttribute("FINGERPRINT",S2(this.bytes))}},UO=(W,X)=>{let G=Buffer.alloc(W.length);return W.copy(G,0,0,2),G.writeUInt16BE(X,2),W.copy(G,4,4),G};function S2(W){let X=UO(W,W.length-i6+xn);return(bd(X)^kn)>>>0}function pn(W,X){let G=UO(W,W.length-i6+D2);return Buffer.from(R2("sha1",X).update(G).digest("hex"),"hex")}function SF(W){let X=W%4;if(X===0)return 0;else return 4-X}var x2=class extends Error{response;addr},k2=class extends x2{constructor(W,X){super();this.response=W,this.addr=X}get str(){let W="STUN transaction failed",X=this.response.getAttributeValue("ERROR-CODE");if(X){let[G,Y]=X;W+=` (${G} - ${Y})`}return W}},cn=class extends x2{get str(){return"STUN transaction timed out"}},IK=L1("werift-ice:packages/ice/src/stun/transaction.ts"),QO=class{constructor(W,X,G,Y){this.request=W,this.addr=X,this.protocol=G,this.retransmissions=Y,this.triesMax=1+(this.retransmissions?this.retransmissions:_n)}timeoutDelay=yn;ended=!1;tries=0;triesMax;onResponse=new d0;responseReceived=(W,X)=>{if(this.onResponse.length>0)if(W.messageClass===256)this.onResponse.execute(W,X),this.onResponse.complete();else this.onResponse.error(new k2(W,X))};run=async()=>{try{return this.retry().catch((X)=>{IK("retry failed",X)}),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)=>{IK("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)IK(`retry failed times:${this.tries} maxLimit:${this.triesMax}`),this.onResponse.error(new cn)};cancel(){this.ended=!0}},xF=L1("werift-ice : packages/ice/src/stun/protocol.ts"),kF=class W{static type="stun";type=W.type;transport;transactions={};get transactionsKeys(){return Object.keys(this.transactions)}localCandidate;sentMessage;localIp;onRequestReceived=new d0;onDataReceived=new d0;constructor(){}connectionMade=async(X,G,Y)=>{if(X)this.transport=await RK.init("udp4",{portRange:G,interfaceAddresses:Y});else this.transport=await RK.init("udp6",{portRange:G,interfaceAddresses:Y});this.transport.onData=(J,Z)=>{this.datagramReceived(J,Z)}};datagramReceived(X,G){try{let Y=VO(X);if(!Y){if(this.localCandidate)this.onDataReceived.execute(X);return}if((Y.messageClass===256||Y.messageClass===272)&&this.transactionsKeys.includes(Y.transactionIdHex))this.transactions[Y.transactionIdHex].responseReceived(Y,G);else if(Y.messageClass===0)this.onRequestReceived.execute(Y,G,X)}catch(Y){xF("datagramReceived error",Y)}}getExtraInfo(){let{address:X,port:G}=this.transport.address;return[X,G]}async sendStun(X,G){if(this.transport.closed)return;let Y=X.bytes;await this.transport.send(Y,G).catch(()=>{xF("sendStun failed",G,X)})}async sendData(X,G){if(this.transport.closed)return;await this.transport.send(X,G)}async request(X,G,Y,J){if(this.transactionsKeys.includes(X.transactionIdHex))throw Error("already request ed");if(Y)X.addMessageIntegrity(Y),X.addFingerprint();let Z=new QO(X,G,this,J);this.transactions[X.transactionIdHex]=Z;try{return await Z.run()}catch(V){throw V}finally{delete this.transactions[X.transactionIdHex]}}async close(){Object.values(this.transactions).forEach((X)=>{X.cancel()}),await this.transport.close(),this.onRequestReceived.complete(),this.onDataReceived.complete()}},s9=L1("werift-ice:packages/ice/src/turn/protocol.ts"),on=500,nn=600,rn=285212672,an=class W{constructor(X){this.turn=X,X.onData.subscribe((G,Y)=>{this.handleStunMessage(G,Y)}).disposer(this.disposer)}static type="turn";type=W.type;localCandidate;disposer=new ld;onRequestReceived=new d0;onDataReceived=new d0;handleStunMessage=(X,G)=>{try{let Y=VO(X);if(!Y){this.onDataReceived.execute(X);return}if(Y.messageClass===256||Y.messageClass===272){let J=this.turn.transactions[Y.transactionIdHex];if(J)J.responseReceived(Y,G)}else if(Y.messageClass===0)this.onRequestReceived.execute(Y,G,X)}catch(Y){s9("datagramReceived error",Y)}};async request(X,G,Y){if(this.turn.transactions[X.transactionIdHex])throw Error("exist");if(Y)X.addMessageIntegrity(Y),X.addFingerprint();let J=new QO(X,G,this);this.turn.transactions[X.transactionIdHex]=J;try{return await J.run()}catch(Z){throw Z}finally{delete this.turn.transactions[X.transactionIdHex]}}async connectionMade(){}async sendData(X,G){await this.turn.sendData(X,G)}async sendStun(X,G){await this.turn.sendData(X.bytes,G)}async close(){return this.disposer.dispose(),this.turn.close()}},sn=class W{constructor(X,G,Y,J,Z,V={}){this.server=X,this.username=G,this.password=Y,this.lifetime=J,this.transport=Z,this.options=V,this.channelRefreshTime=this.options.channelRefreshTime??on}static type="turn";type=W.type;onData=new d0;onRequestReceived=new d0;onDataReceived=new d0;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=(J,Z)=>{this.dataReceived(J,Z)};let X=new l7(3,0);X.setAttribute("LIFETIME",this.lifetime).setAttribute("REQUESTED-TRANSPORT",rn);let[G]=await this.requestWithRetry(X,this.server).catch((J)=>{throw s9("connect error",J),J});this.relayedAddress=G.getAttributeValue("XOR-RELAYED-ADDRESS"),this.mappedAddress=G.getAttributeValue("XOR-MAPPED-ADDRESS");let Y=G.getAttributeValue("LIFETIME");s9("connect",this.relayedAddress,this.mappedAddress,{exp:Y}),this.refresh(Y)}handleChannelData(X){let[G,Y]=X8.Unpack("!HH",X.slice(0,4)),J=this.addrByChannel[G];if(J){let Z=X.subarray(4,4+Y);this.onData.execute(Z,J)}}handleSTUNMessage(X,G){try{let Y=VO(X);if(!Y)throw Error("not stun message");if(Y.messageClass===256||Y.messageClass===272){let J=this.transactions[Y.transactionIdHex];if(J)J.responseReceived(Y,G)}else if(Y.messageClass===0)this.onData.execute(X,G);if(Y.getAttributeValue("DATA")){let J=Y.getAttributeValue("DATA");this.onData.execute(J,G)}}catch(Y){s9("parse error",X.toString())}}dataReceived(X,G){let Y=(J,Z)=>{if(J.length>=4&&yF(J))this.handleChannelData(J);else this.handleSTUNMessage(J,Z)};if(this.transport.type==="tcp"){this.tcpBuffer=Buffer.concat([this.tcpBuffer,X]);while(this.tcpBuffer.length>=4){let[,J]=t9(this.tcpBuffer.subarray(0,4),[2,2]);J+=SF(J);let Z=yF(this.tcpBuffer)?4+J:20+J;if(this.tcpBuffer.length<Z)break;Y(this.tcpBuffer.subarray(0,Z),G),this.tcpBuffer=this.tcpBuffer.subarray(Z)}}else Y(X,G)}async send(X,G){if(this.transport.closed)return;if(this.transport.type==="tcp"){let Y=SF(X.length);await this.transport.send(Y>0?Buffer.concat([X,Buffer.alloc(Y)]):X,G)}else await this.transport.send(X,G)}async createPermission(X){let G=new l7(8,0);G.setAttribute("XOR-PEER-ADDRESS",X).setAttribute("USERNAME",this.username).setAttribute("REALM",this.realm).setAttribute("NONCE",this.nonce),await this.request(G,this.server).catch((Y)=>{throw Y})}refresh=(X)=>{this.refreshHandle=_K(async(G,Y,J)=>{let Z=!0;J.once(()=>{Z=!1});while(Z){let V=0.8333333333333334*X*1000;s9("refresh delay",V,{exp:X}),await dn(V);let U=new l7(4,0);U.setAttribute("LIFETIME",X);try{let[Q]=await this.requestWithRetry(U,this.server);X=Q.getAttributeValue("LIFETIME"),s9("refresh",{exp:X})}catch(Q){s9("refresh error",Q)}}})};async request(X,G){if(this.transactions[X.transactionIdHex])throw Error("exist");if(this.integrityKey)X.setAttribute("USERNAME",this.username).setAttribute("REALM",this.realm).setAttribute("NONCE",this.nonce).addMessageIntegrity(this.integrityKey).addFingerprint();let Y=new QO(X,G,this);this.transactions[X.transactionIdHex]=Y;try{return await Y.run()}catch(J){throw J}finally{delete this.transactions[X.transactionIdHex]}}async requestWithRetry(X,G){let Y,J;try{[Y,J]=await this.request(X,G)}catch(Z){if(Z instanceof k2==!1)throw s9("requestWithRetry error",Z),Z;this.server=Z.addr;let[V]=Z.response.getAttributeValue("ERROR-CODE"),U=Z.response.getAttributeValue("NONCE"),Q=Z.response.getAttributeValue("REALM");if((V===401&&Q||V===438&&this.realm)&&U){if(s9("retry with nonce",V),this.nonce=U,V===401)this.realm=Q;this.integrityKey=en(this.username,this.realm,this.password),X.transactionId=B2(),[Y,J]=await this.request(X,this.server)}else throw Z}return[Y,J]}async sendData(X,G){let Y=await this.getChannel(G).catch((Z)=>{return Error("channelBind error")});if(Y instanceof Error){await this.getPermission(G);let Z=new l7(6,16).setAttribute("DATA",X).setAttribute("XOR-PEER-ADDRESS",G);await this.sendStun(Z,this.server);return}let J=X8.Pack("!HH",[Y.number,X.length]);await this.send(Buffer.concat([Buffer.from(J),X]),this.server)}async getPermission(X){if(await this.creatingPermission,!this.permissionByAddr[X.join(":")])this.creatingPermission=this.createPermission(X),this.permissionByAddr[X.join(":")]=!0,await this.creatingPermission.catch((Y)=>{throw s9("createPermission error",Y),Y})}async getChannel(X){if(this.channelBinding)await this.channelBinding;let G=this.channelByAddr[X.join(":")];if(!G)this.channelByAddr[X.join(":")]={number:this.channelNumber++,address:X},G=this.channelByAddr[X.join(":")],this.addrByChannel[G.number]=X,this.channelBinding=this.channelBind(G.number,X),await this.channelBinding.catch((Y)=>{throw s9("channelBind error",Y),Y}),this.channelRefreshAt=lV(Date.now()/1000)+this.channelRefreshTime,this.channelBinding=void 0,s9("channelBind",G);else if(this.channelRefreshAt<lV(Date.now()/1000))this.channelBinding=this.channelBind(G.number,X),this.channelRefreshAt=lV(Date.now()/1000)+this.channelRefreshTime,await this.channelBinding.catch((Y)=>{throw s9("channelBind error",Y),Y}),this.channelBinding=void 0,s9("channelBind refresh",G);return G}async channelBind(X,G){let Y=new l7(9,0);Y.setAttribute("CHANNEL-NUMBER",X).setAttribute("XOR-PEER-ADDRESS",G);let[J]=await this.requestWithRetry(Y,this.server);if(J.messageMethod!==9)throw Error("should be CHANNEL_BIND")}async sendStun(X,G){await this.send(X.bytes,G)}async close(){this.refreshHandle?.resolve?.(),await this.transport.close()}};async function tn({address:W,username:X,password:G},{lifetime:Y,portRange:J,interfaceAddresses:Z,transport:V}={}){Y??=nn,V??="udp";let U=V==="udp"?await RK.init("udp4",{portRange:J,interfaceAddresses:Z}):await nd.init(W),Q=new sn(W,X,G,Y,U);return await Q.connectionMade(),Q}async function _F({address:W,username:X,password:G},{lifetime:Y,portRange:J,interfaceAddresses:Z,transport:V}={}){let U=await tn({address:W,username:X,password:G},{lifetime:Y,portRange:J,interfaceAddresses:Z,transport:V});return new an(U)}function en(W,X,G){return ln("md5").update(Buffer.from([W,X,G].join(":"))).digest()}function yF(W){return(W[0]&192)==64}var DX=class W{constructor(X,G,Y,J,Z,V,U,Q,N,q,A,H){this.foundation=X,this.component=G,this.transport=Y,this.priority=J,this.host=Z,this.port=V,this.type=U,this.relatedAddress=Q,this.relatedPort=N,this.tcptype=q,this.generation=A,this.ufrag=H}static fromSdp(X){let G=X.split(" ");if(G.length<8)throw Error("SDP does not have enough properties");let Y={foundation:G[0],component:Number(G[1]),transport:G[2],priority:Number(G[3]),host:G[4],port:Number(G[5]),type:G[7]};for(let A=8,H=G.length-1;A<H;A+=2)if(G[A]==="raddr")Y.related_address=G[A+1];else if(G[A]==="rport")Y.related_port=Number(G[A+1]);else if(G[A]==="tcptype")Y.tcptype=G[A+1];else if(G[A]==="generation")Y.generation=Number(G[A+1]);else if(G[A]==="ufrag")Y.ufrag=G[A+1];let{foundation:J,component:Z,transport:V,priority:U,host:Q,port:N,type:q}=Y;return new W(J,Z,V,U,Q,N,q,Y.related_address,Y.related_port,Y.tcptype,Y.generation,Y.ufrag)}canPairWith(X){let G=vF(this.host),Y=vF(X.host);return this.component===X.component&&this.transport.toLowerCase()===X.transport.toLowerCase()&&G===Y}toSdp(){let X=`${this.foundation} ${this.component} ${this.transport} ${this.priority} ${this.host} ${this.port} typ ${this.type}`;if(this.relatedAddress)X+=` raddr ${this.relatedAddress}`;if(this.relatedPort!=null)X+=` rport ${this.relatedPort}`;if(this.tcptype)X+=` tcptype ${this.tcptype}`;if(this.generation!=null)X+=` generation ${this.generation}`;if(this.ufrag!=null)X+=` ufrag ${this.ufrag}`;return X}};function yK(W,X,G){let Y=`${W}|${X}|${G}`;return Wi("md5").update(Y,"ascii").digest("hex").slice(7)}function fq(W,X=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*X+255}var Gi=class{cache=new Map;mdnsInstance=_2.default();constructor(){this.mdnsInstance.setMaxListeners(50)}lookup(W){return new Promise((X,G)=>{let Y=()=>{this.mdnsInstance.removeListener("response",Z),clearTimeout(J)},J=setTimeout(()=>{Y(),G(Error("No mDNS response"))},1e4),Z=(V)=>{let U=V.answers?.[0];if(U?.type!=="A")return;if(U.name!==W)return;Y(),X(U.data)};this.mdnsInstance.on("response",Z),this.mdnsInstance.query(W,"A")})}close(){this.mdnsInstance.destroy()}},Ji=L1("werift-ice : packages/ice/src/ice.ts : log"),uF=class{constructor(W,X,G){this.protocol=W,this.remoteCandidate=X,this.iceControlling=G}id=Yi().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 gK(this.localCandidate,this.remoteCandidate,this.iceControlling)}get foundation(){return this.localCandidate.foundation}},hF=1,xq=2,Zi=5,bF=6;var Vi={useIpv4:!0,useIpv6:!0};function mF(W){if(!["host","relay","srflx"].includes(W.type))throw Error(`Unexpected candidate type "${W.type}"`);return W}function Ui(W,X){return W.sort((G,Y)=>gK(G.localCandidate,G.remoteCandidate,X)-gK(Y.localCandidate,Y.remoteCandidate,X)).reverse()}function gK(W,X,G){let Y=G&&W.priority||X.priority,J=G&&X.priority||W.priority;return 1*Math.min(Y,J)+2*Math.max(Y,J)+(Y>J?1:0)}async function Qi(W,X){let G=new l7(1,0);try{let[Y]=await W.request(G,X),J=W.localCandidate;if(!J)throw Error("not exist");return new DX(yK("srflx","udp",J.host),J.component,J.transport,fq("srflx"),Y.getAttributeValue("XOR-MAPPED-ADDRESS")[0],Y.getAttributeValue("XOR-MAPPED-ADDRESS")[1],"srflx",J.host,J.port)}catch(Y){Ji("error serverReflexiveCandidate",Y)}}function fF(W){if(W&&Number.isNaN(W[1]))return[W[0],443];return W}var Ni=L1("werift-ice : packages/ice/src/utils.ts");function qi(W){return sq(W.family)===4&&W.address?.startsWith("169.254.")||sq(W.family)===6&&W.address?.startsWith("fe80::")}function pF(W,{useLinkLocalAddress:X}={}){let G=["ipsec","tun","utun","tap"],Y=["vmnet","veth"],J=y2.networkInterfaces();Ni(J);let Z=Object.keys(J).map((V)=>{for(let Q of[...G,...Y])if(V.startsWith(Q))return{nic:V,addresses:[]};let U=J[V].filter((Q)=>sq(Q.family)===W&&!v2.default.isLoopback(Q.address)&&(X?!0:!qi(Q)));return{nic:V,addresses:U.map((Q)=>Q.address)}}).filter((V)=>!!V);return Z.sort((V,U)=>V.nic.localeCompare(U.nic)),Object.values(Z).flatMap((V)=>V.addresses)}function Hi(W,X,G={}){let Y=[];if(W)Y.push(...pF(4,G));if(X)Y.push(...pF(6,G));return Y}var J8=L1("werift-ice : packages/ice/src/ice.ts : log"),Ai=class{constructor(W,X){this._iceControlling=W,this.options={...Vi,...X};let{stunServer:G,turnServer:Y}=this.options;this.stunServer=fF(G)??["stun.l.google.com",19302],this.turnServer=fF(Y),this.restart(),J8("new Connection",this.options)}localUsername=vV(4);localPassword=vV(22);remoteIsLite=!1;remotePassword="";remoteUsername="";checkList=[];localCandidates=[];stunServer;turnServer;options;remoteCandidatesEnd=!1;localCandidatesEnd=!1;generation=-1;userHistory={};tieBreaker=BigInt(new Eq(Xi(64)).toString());state="new";lookup;_remoteCandidates=[];nominated;nominating=!1;checkListDone=!1;checkListState=new BF;earlyChecks=[];earlyChecksDone=!1;localCandidatesStart=!1;protocols=[];queryConsentHandle;onData=new d0;stateChanged=new d0;onIceCandidate=new d0;get iceControlling(){return this._iceControlling}set iceControlling(W){if(this.generation>0||this.nominated)return;this._iceControlling=W;for(let X of this.checkList)X.iceControlling=W}async restart(){if(this.generation++,this.localUsername=vV(4),this.localPassword=vV(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 BF,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(){J8("resetNominatedPair"),this.nominated=void 0,this.nominating=!1}setRemoteParams({iceLite:W,usernameFragment:X,password:G}){J8("setRemoteParams",{iceLite:W,usernameFragment:X,password:G}),this.remoteIsLite=W,this.remoteUsername=X,this.remotePassword=G}async gatherCandidates(){if(!this.localCandidatesStart){this.localCandidatesStart=!0;let W=Hi(this.options.useIpv4,this.options.useIpv6,{useLinkLocalAddress:this.options.useLinkLocalAddress}),{interfaceAddresses:X}=this.options;if(X){let Y=W.filter((J)=>Object.values(X).includes(J));if(Y.length)W=Y}if(this.options.additionalHostAddresses)W=Array.from(new Set([...this.options.additionalHostAddresses,...W]));let G=this.getCandidatePromises(W,5);await Promise.allSettled(G),this.localCandidatesEnd=!0}this.setState("completed")}appendLocalCandidate(W){this.localCandidates.push(W),this.onIceCandidate.execute(W)}ensureProtocol(W){W.onRequestReceived.subscribe((X,G,Y)=>{if(X.messageMethod!==1){this.respondError(X,G,W,[400,"Bad Request"]);return}let J=X.getAttributeValue("USERNAME"),{remoteUsername:Z}=cF(J),V=this.userHistory[Z]??this.localPassword,{iceControlling:U}=this;if(U&&X.attributesKeys.includes("ICE-CONTROLLING"))if(this.tieBreaker>=X.getAttributeValue("ICE-CONTROLLING")){this.respondError(X,G,W,[487,"Role Conflict"]);return}else this.switchRole(!1);else if(!U&&X.attributesKeys.includes("ICE-CONTROLLED"))if(this.tieBreaker<X.getAttributeValue("ICE-CONTROLLED"))this.respondError(X,G,W,[487,"Role Conflict"]);else{this.switchRole(!0);return}if(this.options.filterStunResponse&&!this.options.filterStunResponse(X,G,W))return;let Q=new l7(1,256,X.transactionId);if(Q.setAttribute("XOR-MAPPED-ADDRESS",G).addMessageIntegrity(Buffer.from(V,"utf8")).addFingerprint(),W.sendStun(Q,G).catch((N)=>{J8("sendStun error",N)}),this.checkList.length===0&&!this.earlyChecksDone)this.earlyChecks.push([X,G,W]);else this.checkIncoming(X,G,W)}),W.onDataReceived.subscribe((X)=>{try{let G=this.nominated;if(G&&G.protocol===W)G.packetsReceived++,G.bytesReceived+=X.length;this.onData.execute(X)}catch(G){J8("dataReceived",G)}})}getCandidatePromises(W,X=5){let G=[];W=W.filter((Q)=>{if(this.protocols.find((N)=>N.localIp===Q))return!1;return!0});let Y=W.map(async(Q)=>{let N=new kF;this.ensureProtocol(N);try{await N.connectionMade(gF(Q),this.options.portRange,this.options.interfaceAddresses),N.localIp=Q,this.protocols.push(N),J8("protocol",N.localIp);let q=[Q,N.getExtraInfo()[1]];return N.localCandidate=new DX(yK("host","udp",q[0]),1,"udp",fq("host"),q[0],q[1],"host",void 0,void 0,void 0,this.generation,this.localUsername),this.pairLocalProtocol(N),this.appendLocalCandidate(N.localCandidate),N}catch(q){J8("error protocol STUN",q)}});G.push(...Y.map((Q)=>Q.then((N)=>N?.localCandidate)));let{stunServer:J,turnServer:Z}=this;if(J){let Q=Y.map(async(N)=>{let q=await N;if(!q)return;return new Promise(async(H,I)=>{let w=setTimeout(I,X*1000);if(q.localCandidate?.host&&gF(q.localCandidate?.host)){let O=await Qi(q,J).catch((T)=>{J8("error",T)});if(O)this.appendLocalCandidate(O);clearTimeout(w),H(O)}else clearTimeout(w),H()}).catch((H)=>{J8("query STUN server",H)})});G.push(...Q)}let{turnUsername:V,turnPassword:U}=this.options;if(Z&&V&&U){let Q=(async()=>{let N=await _F({address:Z,username:V,password:U},{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 _F({address:Z,username:V,password:U},{portRange:this.options.portRange,interfaceAddresses:this.options.interfaceAddresses,transport:"tcp"});else throw H});this.ensureProtocol(N),this.protocols.push(N);let q=N.turn.relayedAddress,A=N.turn.mappedAddress;return J8("turn candidateAddress",q),N.localCandidate=new DX(yK("relay","udp",q[0]),1,"udp",fq("relay"),q[0],q[1],"relay",A[0],A[1],void 0,this.generation,this.localUsername),this.appendLocalCandidate(N.localCandidate),N.localCandidate})().catch((N)=>{J8("query TURN server",N)});if(this.options.forceTurn)G=[];G.push(Q)}return G}async connect(){if(J8("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 X of this.remoteCandidates)this.pairRemoteCandidate(X);this.sortCheckList(),this.unfreezeInitial(),J8("earlyChecks",this.localPassword,this.earlyChecks.length);for(let X of this.earlyChecks)this.checkIncoming(...X);this.earlyChecks=[],this.earlyChecksDone=!0;for(;;){if(this.state==="closed")break;if(!this.schedulingChecks())break;await vK.setTimeout(20)}let W=xq;while(this.checkList.length>0&&W===xq)W=await this.checkListState.get(),J8("checkListState",W);for(let X of this.checkList)X.handle?.resolve?.();if(W!==hF)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 X=new Set(W.localCandidate.foundation);for(let G of this.checkList)if(G.component===W.component&&!X.has(G.localCandidate.foundation)&&G.state===0)G.updateState(1),X.add(G.localCandidate.foundation)}schedulingChecks(){{let W=this.checkList.filter((X)=>{if(this.options.forceTurn&&X.protocol.type===kF.type)return!1;return!0}).find((X)=>X.state===1);if(W)return W.handle=this.checkStart(W),!0}{let W=this.checkList.find((X)=>X.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=_K(async(W,X,G)=>{let Y=0,J=!1,Z=new AbortController;G.once(()=>{J=!0,Y+=bF,Z.abort(),this.queryConsentHandle=void 0});let{localUsername:V,remoteUsername:U,iceControlling:Q}=this;try{while(this.state!=="closed"&&!J){await vK.setTimeout(Zi*(0.8+0.4*Math.random())*1000,void 0,{signal:Z.signal});let N=this.nominated;if(!N||J)break;let q=this.buildRequest({nominate:!1,localUsername:V,remoteUsername:U,iceControlling:Q});try{if(await N.protocol.request(q,N.remoteAddr,Buffer.from(this.remotePassword,"utf8"),0),Y=0,this.state==="disconnected")this.setState("connected")}catch(A){if(N.id===this.nominated?.id){J8("no stun response"),Y++,this.setState("disconnected");break}}if(Y>=bF){J8("Consent to send expired"),this.queryConsentHandle=void 0,this.setState("closed");break}}}catch(N){}})};async close(){if(this.setState("closed"),this.queryConsentHandle?.resolve?.(),this.checkList&&!this.checkListDone)this.checkListState.put(new Promise((W)=>{W(xq)}));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 Gi;let X=await this.lookup.lookup(W.host);W.host=X}catch(X){return}try{mF(W)}catch(X){return}J8("addRemoteCandidate",W),this._remoteCandidates.push(W),this.pairRemoteCandidate(W),this.sortCheckList()}send=async(W)=>{let X=this.nominated;if(X)await X.protocol.sendData(W,X.remoteAddr),X.packetsSent++,X.bytesSent+=W.length;else return};getDefaultCandidate(){let W=this.localCandidates.sort((G,Y)=>G.priority-Y.priority),[X]=W;return X}set remoteCandidates(W){if(this.remoteCandidatesEnd)throw Error("Cannot set remote candidates after end-of-candidates.");this._remoteCandidates=[];for(let X of W){try{mF(X)}catch(G){continue}this._remoteCandidates.push(X)}this.remoteCandidatesEnd=!0}get remoteCandidates(){return this._remoteCandidates}get candidatePairs(){return this.checkList}sortCheckList(){Ui(this.checkList,this.iceControlling)}findPair(W,X){return this.checkList.find((Y)=>pq.default(Y.protocol,W)&&pq.default(Y.remoteCandidate,X))}switchRole(W){J8("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){J8("nominated",W.toJSON()),this.nominated=W,this.nominating=!1;for(let X of this.checkList)if(X.component===W.component&&[1,0].includes(X.state))X.updateState(4)}if(this.nominated){if(!this.checkListDone)J8("ICE completed"),this.checkListState.put(new Promise((X)=>X(hF))),this.checkListDone=!0;return}J8("not completed",W.toJSON());for(let X of this.checkList)if(X.localCandidate.foundation===W.localCandidate.foundation&&X.state===0)X.updateState(1)}{let X=[3,4];if(this.checkList.find(({state:G})=>!X.includes(G)))return}if(!this.iceControlling){if(this.checkList.find(({state:G})=>G===3))return}if(!this.checkListDone)J8("ICE failed"),this.checkListState.put(new Promise((X)=>{X(xq)}))}checkStart=(W)=>_K(async(X)=>{J8("check start",W.toJSON()),W.updateState(2);let G={},{remotePassword:Y,remoteUsername:J,generation:Z}=this,V=W.localCandidate.ufrag??this.localUsername,U=this.iceControlling&&!this.remoteIsLite,Q=this.buildRequest({nominate:U,localUsername:V,remoteUsername:J,iceControlling:this.iceControlling}),N=performance.now();try{let[q,A]=await W.protocol.request(Q,W.remoteAddr,Buffer.from(Y,"utf8"),4),I=(performance.now()-N)/1000;W.rtt=I,W.totalRoundTripTime+=I,W.roundTripTimeMeasurements++,J8("response received",Q.toJSON(),q.toJSON(),A,{localUsername:V,remoteUsername:J,remotePassword:Y,generation:Z,rtt:I}),G.response=q,G.addr=A}catch(q){let A=q;if(J8("failure case",Q.toJSON(),A.response?JSON.stringify(A.response.toJSON(),null,2):q,{localUsername:V,remoteUsername:J,remotePassword:Y,generation:Z},W.remoteAddr),A.response?.getAttributeValue("ERROR-CODE")[0]===487){if(Q.attributesKeys.includes("ICE-CONTROLLED"))this.switchRole(!0);else if(Q.attributesKeys.includes("ICE-CONTROLLING"))this.switchRole(!1);await this.checkStart(W).awaitable,X();return}if(A.response?.getAttributeValue("ERROR-CODE")[0]===401){J8("retry 401",W.toJSON()),await this.checkStart(W).awaitable,X();return}else{J8("checkStart CandidatePairState.FAILED",W.toJSON()),W.updateState(4),this.checkComplete(W),X();return}}if(!pq.default(G.addr,W.remoteAddr)){W.updateState(4),this.checkComplete(W),X();return}if(U||W.remoteNominated)W.nominated=!0;else if(this.iceControlling&&!this.nominating){this.nominating=!0;let q=this.buildRequest({nominate:!0,localUsername:V,remoteUsername:J,iceControlling:this.iceControlling});try{await W.protocol.request(q,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),X()});addPair(W){this.checkList.push(W),this.sortCheckList()}checkIncoming(W,X,G){let Y=W.getAttributeValue("USERNAME"),{remoteUsername:J}=cF(Y),Z,[V,U]=X;for(let N of this.remoteCandidates)if(N.host===V&&N.port===U){Z=N;break}if(!Z)Z=new DX(vV(10),1,"udp",W.getAttributeValue("PRIORITY"),V,U,"prflx",void 0,void 0,void 0,void 0,void 0),this._remoteCandidates.push(Z);let Q=this.findPair(G,Z);if(!Q)Q=new uF(G,Z,this.iceControlling),Q.updateState(1),this.addPair(Q);if(Q.localCandidate.ufrag=J,J8("Triggered Checks",W.toJSON(),Q.toJSON(),{localUsername:this.localUsername,remoteUsername:this.remoteUsername,localPassword:this.localPassword,remotePassword:this.remotePassword,generation:this.generation}),[1,4].includes(Q.state))Q.handle=this.checkStart(Q);if(W.attributesKeys.includes("USE-CANDIDATE")&&!this.iceControlling){if(Q.remoteNominated=!0,Q.state===3)Q.nominated=!0,this.checkComplete(Q)}}tryPair(W,X){if(W.localCandidate?.canPairWith(X)&&!this.findPair(W,X)){let G=new uF(W,X,this.iceControlling);if(this.options.filterCandidatePair&&!this.options.filterCandidatePair(G))return;G.updateState(1),this.addPair(G)}}pairLocalProtocol(W){for(let X of this.remoteCandidates)this.tryPair(W,X)}pairRemoteCandidate=(W)=>{for(let X of this.protocols)this.tryPair(X,W)};buildRequest({nominate:W,remoteUsername:X,localUsername:G,iceControlling:Y}){let J=zi({remoteUsername:X,localUsername:G}),Z=new l7(1,0);if(Z.setAttribute("USERNAME",J).setAttribute("PRIORITY",fq("prflx")),Y){if(Z.setAttribute("ICE-CONTROLLING",this.tieBreaker),W)Z.setAttribute("USE-CANDIDATE",null)}else Z.setAttribute("ICE-CONTROLLED",this.tieBreaker);return Z}respondError(W,X,G,Y){let J=new l7(W.messageMethod,272,W.transactionId);J.setAttribute("ERROR-CODE",Y).addMessageIntegrity(Buffer.from(this.localPassword,"utf8")).addFingerprint(),G.sendStun(J,X).catch((Z)=>{J8("sendStun error",Z)})}},zi=({remoteUsername:W,localUsername:X})=>{return`${W}:${X}`},cF=(W)=>{let[X,G]=W.split(":");return{remoteUsername:X,localUsername:G}};function lF(W){return W.map((X,G)=>[G,X])}function f4(W,X){let G=W.split(X);return[G[0],G.slice(1).join(X)]}var NO=class extends Ii{addEventListener=(W,X)=>{this.addListener(W,X)};removeEventListener=(W,X)=>{this.removeListener(W,X)}},wi=L1("werift:packages/webrtc/src/dataChannel.ts");function ji(W){return Buffer.isBuffer(W)?W.length:Buffer.byteLength(W)}var g2=class extends NO{constructor(W,X,G=!0){super();if(this.sctp=W,this.parameters=X,this.sendOpen=G,this.id=this.parameters.id,X.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(G)this.sendOpen=!1,this.sctp.dataChannelOpen(this)}stateChange=new d0;stateChanged=new d0;onMessage=new d0;error=new d0;bufferedAmountLow=new d0;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}wi("change state",W)}}addBufferedAmount(W){let X=this.bufferedAmount>this.bufferedAmountLowThreshold&&this.bufferedAmount+W<=this.bufferedAmountLowThreshold;if(this.bufferedAmount+=W,X)this.bufferedAmountLow.execute(),this.emit("bufferedamountlow")}send(W){let X=this.sctp.datachannelSend(this,W);this.messagesSent++,this.bytesSent+=X}close(){this.sctp.dataChannelClose(this)}},u2=class{label="";maxPacketLifeTime;maxRetransmits;ordered=!0;protocol="";negotiated=!1;id;constructor(W={}){Object.assign(this,W)}};var OH=()=>({type:"nack"}),QU=()=>({type:"nack",parameter:"pli"}),DH=()=>({type:"goog-remb"}),Ki=()=>({type:"transport-cc"}),EX=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}},Oi=class{id;uri;constructor(W){Object.assign(this,W)}};var Di=class{type;parameter;constructor(W={}){Object.assign(this,W)}},Ci=class{ssrc;constructor(W={}){Object.assign(this,W)}},Ti=class{ssrc;payloadType;rtx;constructor(W){Object.assign(this,W)}},h2=class{rid;direction;constructor(W){Object.assign(this,W)}},Mi=(W={})=>new EX({mimeType:"video/h264",clockRate:90000,rtcpFeedback:[OH(),QU(),DH()],parameters:"profile-level-id=42e01f;packetization-mode=1;level-asymmetry-allowed=1",...W}),b2=(W={})=>new EX({mimeType:"video/VP8",clockRate:90000,rtcpFeedback:[OH(),QU(),DH()],...W}),Pi=(W={})=>new EX({mimeType:"video/VP9",clockRate:90000,rtcpFeedback:[OH(),QU(),DH()],...W}),Ri=(W={})=>new EX({mimeType:"video/AV1X",clockRate:90000,rtcpFeedback:[OH(),QU(),DH()],...W}),m2=(W={})=>new EX({mimeType:"audio/OPUS",clockRate:48000,channels:2,...W}),f2=(W={})=>new EX({mimeType:"audio/PCMU",clockRate:8000,channels:1,payloadType:0,...W}),p2=[Ri(),Pi(),b2(),Mi(),m2(),f2()].map((W)=>W.mimeType),HA0=p2.filter((W)=>W.toLowerCase().startsWith("video/")),AA0=p2.filter((W)=>W.toLowerCase().startsWith("audio/"));var dF=2,oF=3,$i=0,_q=50,nF=51,iF=53,Fi=56,Si=57,xi="0.0.0.0",rF=9,uK={auto:"actpass",client:"active",server:"passive"},aF=Object.keys(uK).reduce((W,X)=>{let G=uK[X];return W[G]=X,W},{}),ki=["apt","max-fr","max-fs","maxplaybackrate","minptime","stereo","useinbandfec"],c2=["cname","msid","mslabel","label"],sF={SRTP_AES128_CM_HMAC_SHA1_80:KH,SRTP_AEAD_AES_128_GCM:VU},cq=["sendonly","sendrecv"],_i=["sendrecv","recvonly"],yi=class extends Map{constructor(W){super();if(W)for(let X of W)this.set(X.id,X)}};function N8(W,...X){let G=X.filter((Y)=>Y!==void 0);return`${W}_${G.join("_")}`}function $X(){return performance.now()}var vi=class{constructor(W,X,G,Y,J){if(this.kind=W,this.receiver=G,this.sender=Y,this._direction=J,X)this.setDtlsTransport(X)}id=Ei().toString();onTrack=new d0;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,cq.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((X)=>X.mimeType.toLowerCase().includes(W.toLowerCase()))?.payloadType}getCodecStats(){let W=$X(),X=[];if(!this.dtlsTransport)return X;let G=N8("transport",this.dtlsTransport.id);for(let Y of this.codecs){let J={type:"codec",id:N8("codec",Y.payloadType,G),timestamp:W,payloadType:Y.payloadType,transportId:G,mimeType:Y.mimeType,clockRate:Y.clockRate,channels:Y.channels,sdpFmtpLine:Y.parameters};X.push(J)}return X}},gi="inactive",l2="sendonly",d2="recvonly",o2="sendrecv",jK=[gi,l2,d2,o2],hK=class extends NO{uuid=n2().toString();streamId;remote=!1;label;kind;id;ssrc;rid;header;codec;enabled=!0;onReceiveRtp=new d0;onReceiveRtcp=new d0;onSourceChanged=new d0;stopped=!1;muted=!0;constructor(W){super();Object.assign(this,W),this.onReceiveRtp.subscribe((X)=>{this.muted=!1,this.header=X.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 X=Buffer.isBuffer(W)?e6.deSerialize(W):W;X.header.payloadType=this.codec?.payloadType??X.header.payloadType,this.onReceiveRtp.execute(X)}},ui=class{id;tracks=[];constructor(W){if(Array.isArray(W))this.tracks=W;else Object.assign(this,W);this.id??=n2().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")}},hi=L1("werift:packages/webrtc/src/utils.ts");function i2(W,X){let G=(Z)=>Z.toUpperCase(),Y=(Z)=>Z.match(/(.{2})/g).join(":"),J=Bi(X).update(W).digest("hex");return Y(G(J))}var bi={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 r2(W){return bi[W.trim().toLowerCase()]}function bK(W){return W.replace(/[^0-9a-f]/gi,"").toLowerCase()}function mi(W){let X=W[0];return X>19&&X<64}var a2=(W,X)=>jK[jK.indexOf(W)&jK.indexOf(X)];function fi(W){if(W==="sendonly")return"recvonly";if(W==="recvonly")return"sendonly";return W}var s2=Date.now,pi=BigInt(Date.now())*1000n-process.hrtime.bigint()/1000n,ci=()=>{return pi+process.hrtime.bigint()/1000n},NH=()=>Date.now()/1000,li=()=>{let X=(kq.timeOrigin+kq.now()-Date.UTC(1900,0,1))/1000,[G,Y]=X.toString().split(".").map(Number);return S8([4,4],[G,Y]).readBigUInt64BE()},t2=(W)=>{let X=S8([8],[W]),[,G,Y]=t9(X,[2,2,2,2]);return S8([2,2],[G,Y]).readUInt32BE()};function di(W){let X=(U)=>{if(!U)return;let[Q,N]=U.split(":");return[Q,Number.parseInt(N)]},G=X(W.find(({urls:U})=>U.includes("stun:"))?.urls.slice(5)),Y=X(W.find(({urls:U})=>U.includes("turn:"))?.urls.slice(5)),{credential:J,username:Z}=W.find(({urls:U})=>U.includes("turn:"))||{},V={stunServer:G,turnServer:Y,turnUsername:Z,turnPassword:J};return hi("iceOptions",V),V}var DA0=eq.createSelfSignedCertificateWithKey;var oi=(W,X)=>{if(!W||typeof W!=="object")if(X!==null&&typeof X==="object")return X;else return W;if(!X||typeof X!=="object"){if(X==null)return W;return X}for(let G in X)if(Object.prototype.hasOwnProperty.call(X,G)){let Y=X[G];if(Y!=null)W[G]=Y}return W},ni=L1("werift:packages/webrtc/src/media/receiver/nack.ts"),tF=150,ii=class{constructor(W){this.receiver=W}newEstSeqNum=0;_lost={};nackLoop;onPacketLost=new d0;mediaSourceSsrc;retryCount=10;closed=!1;get lostSeqNumbers(){return Object.keys(this._lost).map(Number).sort()}getLost(W){return this._lost[W]}setLost(W,X){if(this._lost[W]=X,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(G){ni("failed to send nack",G)}},5)}removeLost(W){delete this._lost[W]}addPacket(W){let{sequenceNumber:X,ssrc:G}=W.header;if(this.mediaSourceSsrc=G,this.newEstSeqNum===0){this.newEstSeqNum=X;return}if(this.getLost(X)){this.removeLost(X);return}if(X===R9(this.newEstSeqNum,1))this.newEstSeqNum=X;else if(X>R9(this.newEstSeqNum,1)){for(let Y=R9(this.newEstSeqNum,1);Y<X;Y=R9(Y,1))this.setLost(Y,1);this.newEstSeqNum=X,this.pruneLost()}}pruneLost(){if(this.lostSeqNumbers.length>tF)this._lost=Object.entries(this._lost).slice(-tF).reduce((W,[X,G])=>{return W[X]=G,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,X)=>{if(this.lostSeqNumbers.length>0&&this.mediaSourceSsrc){let G=new VH({senderSsrc:this.receiver.rtcpSsrc,mediaSourceSsrc:this.mediaSourceSsrc,lost:this.lostSeqNumbers}),Y=new bY({feedback:G});this.receiver.dtlsTransport.sendRtcp([Y]).then(W).catch(X),this.updateRetryCount(),this.onPacketLost.execute(G)}})},ai=L1("werift:packages/webrtc/media/receiver/receiverTwcc"),si=class{constructor(W,X,G){this.dtlsTransport=W,this.rtcpSsrc=X,this.mediaSourceSsrc=G,this.runTWCC()}extensionInfo={};twccRunning=!1;fbPktCount=0;lastTimestamp;handleTWCC(W){if(this.extensionInfo[W]={tsn:W,timestamp:ci()},Object.keys(this.extensionInfo).length>10)this.sendTWCC()}async runTWCC(){while(this.twccRunning)this.sendTWCC(),await ri(100)}sendTWCC(){if(Object.keys(this.extensionInfo).length===0)return;let W=Object.values(this.extensionInfo).sort((q,A)=>q.tsn-A.tsn),X=W[0].tsn,G=W.slice(-1)[0].tsn,Y=[],J=W[0].tsn,Z=R9(G-X,1),V,U,Q=[];for(let q=X;q<=G;q++){let A=this.extensionInfo[q]?.timestamp;if(A){if(!this.lastTimestamp)this.lastTimestamp=A;if(!V)V=this.lastTimestamp;let H=A-this.lastTimestamp;this.lastTimestamp=A;let I=new uq({delta:Number(H)});if(I.parseDelta(),Q.push(I),U!=null&&U.status!==I.type)Y.push(new dV({packetStatus:U.status,runLength:q-U.minTSN})),U={minTSN:q,status:I.type};if(q===G)if(U!=null)Y.push(new dV({packetStatus:U.status,runLength:q-U.minTSN+1}));else Y.push(new dV({packetStatus:I.type,runLength:1}));if(U==null)U={minTSN:q,status:I.type}}}if(!V)return;let N=new bY({feedback:new UH({senderSsrc:this.rtcpSsrc,mediaSourceSsrc:this.mediaSourceSsrc,baseSequenceNumber:J,packetStatusCount:Z,referenceTime:fd(Math.floor(Number(V/1000n/64n))),fbPktCount:this.fbPktCount,recvDeltas:Q,packetChunks:Y})});this.dtlsTransport.sendRtcp([N]).catch((q)=>{ai(q)}),this.extensionInfo={},this.fbPktCount=md(this.fbPktCount,1)}},ti=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,X=Date.now()/1000){let G=this.max_seq==null||FS(W.header.sequenceNumber,this.max_seq);if(this.packets_received++,this.base_seq==null)this.base_seq=W.header.sequenceNumber;if(G){let Y=lV(X*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 J=Math.abs(Y-(this.last_arrival??0)-(W.header.timestamp-(this.last_timestamp??0)));this.jitter_q4+=J-(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 X=this.packets_received-this.received_prior;this.received_prior=this.packets_received;let G=W-X;if(W==0||G<=0)return 0;else return Math.floor((G<<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}},W7=L1("werift:packages/webrtc/src/transport/dtls.ts"),eF=class W{constructor(X,G,Y,J=[]){this.config=X,this.iceTransport=G,this.localCertificate=Y,this.srtpProfiles=J,this.localCertificate??=W.localCertificate}id=Xr().toString();state="new";role="auto";srtpStarted=!1;transportSequenceNumber=0;bytesSent=0;bytesReceived=0;packetsSent=0;packetsReceived=0;dataReceiver=()=>{};dtls;srtp;srtcp;onStateChange=new d0;onRtcp=new d0;onRtp=new d0;static localCertificate;static localCertificatePromise;remoteParameters;get localParameters(){return new fK(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:X,keyPem:G,signatureHash:Y}=await eq.createSelfSignedCertificateWithKey({signature:d4.ecdsa_3,hash:tq.sha256_4},s6.secp256r1_23);return this.localCertificate=new e2(G,X,Y),this.localCertificate})(),this.localCertificatePromise}setRemoteParams(X){let G=Yr([...this.remoteParameters?.fingerprints??[],...X.fingerprints]),Y=X.role==="auto"&&this.remoteParameters?.role?this.remoteParameters.role:X.role;this.remoteParameters=new fK(G,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(X,G)=>{if(this.role==="server")this.dtls=new Sn({cert:this.localCertificate?.certPem,key:this.localCertificate?.privateKey,signatureHash:this.localCertificate?.signatureHash,transport:WS(this.iceTransport.connection),srtpProfiles:this.srtpProfiles,extendedMasterSecret:!0,certificateRequest:!0});else this.dtls=new RF({cert:this.localCertificate?.certPem,key:this.localCertificate?.privateKey,signatureHash:this.localCertificate?.signatureHash,transport:WS(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(X),this.dtls.onError.once((Y)=>{this.setState("failed"),W7("dtls failed",Y),G(Y)}),this.dtls instanceof RF)await Gr(100),this.dtls.connect().catch((Y)=>{this.setState("failed"),W7("dtls connect failed",Y),G(Y)})});try{this.verifyRemoteCertificateFingerprint()}catch(X){throw this.setState("failed"),this.dtls?.close(),X}if(this.srtpProfiles.length>0)this.startSrtp();this.setState("connected"),W7("dtls connected")}verifyRemoteCertificateFingerprint(){if(!this.remoteParameters||this.remoteParameters.fingerprints.length===0)throw Error("remote fingerprint not exist");let X=this.dtls?.remoteCertificate;if(!X)throw Error("remote certificate not available");let G=this.remoteParameters.fingerprints.flatMap(({algorithm:U,value:Q})=>{let N=r2(U);if(!N)return[];let q=bK(Q);if(!q)throw Error("remote fingerprint value is empty");return[{normalizedAlgorithm:N,normalizedValue:q}]});if(G.length===0)throw Error("no supported remote fingerprint algorithms");let Y=Zr(G),J=G.filter(({normalizedAlgorithm:U})=>U===Y),Z=J.reduce((U,{normalizedAlgorithm:Q})=>{if(!U.has(Q))U.set(Q,bK(i2(X,Q)));return U},new Map);if(!J.some(({normalizedAlgorithm:U,normalizedValue:Q})=>Z.get(U)===Q))throw Error("remote certificate fingerprint mismatch")}updateSrtpSession(){if(!this.dtls)throw Error();let X=this.dtls.srtp.srtpProfile;if(!X)throw Error("need srtpProfile");W7("selected SRTP Profile",X);let{localKey:G,localSalt:Y,remoteKey:J,remoteSalt:Z}=this.dtls.extractSessionKeys(_o(X),yo(X)),V={keys:{localMasterKey:G,localMasterSalt:Y,remoteMasterKey:J,remoteMasterSalt:Z},profile:X};this.srtp=new Dn(V),this.srtcp=new Kn(V)}startSrtp(){if(this.srtpStarted)return;this.srtpStarted=!0,this.updateSrtpSession(),this.iceTransport.connection.onData.subscribe((X)=>{if(this.config.debug.inboundPacketLoss&&this.config.debug.inboundPacketLoss/100<Math.random())return;if(!uo(X))return;if(this.bytesReceived+=X.length,this.packetsReceived++,no(X)){let G;try{G=this.srtcp.decrypt(X)}catch(J){if(J instanceof fY){W7("dropping invalid SRTCP packet",J);return}throw J}let Y;try{Y=oo.deSerialize(G)}catch(J){W7("dropping malformed SRTCP packet",J);return}for(let J of Y)try{this.onRtcp.execute(J)}catch(Z){W7("RTCP error",Z)}}else{let G;try{G=this.srtp.decrypt(X)}catch(J){if(J instanceof fY){W7("dropping invalid SRTP packet",J);return}throw J}let Y;try{Y=e6.deSerialize(G)}catch(J){W7("dropping malformed SRTP packet",J);return}try{this.onRtp.execute(Y)}catch(J){W7("RTP error",J)}}})}sendData=async(X)=>{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(X)};async sendRtp(X,G){try{let Y=this.srtp.encrypt(X,G);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 W7("failed to send",Y),0}}async sendRtcp(X){let G=Buffer.concat(X.map((J)=>J.serialize())),Y=this.srtcp.encrypt(G);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(X){if(X!=this.state)this.state=X,this.onStateChange.execute(X)}async stop(){this.setState("closed"),await this.iceTransport.stop()}async getStats(){let X=$X(),G=[],J={type:"transport",id:N8("transport",this.id),timestamp:X,bytesSent:this.bytesSent,bytesReceived:this.bytesReceived,packetsSent:this.packetsSent,packetsReceived:this.packetsReceived,dtlsState:this.state,iceState:this.iceTransport.state,selectedCandidatePairId:this.iceTransport.connection.nominated?N8("candidate-pair",this.iceTransport.connection.nominated.localCandidate.foundation,this.iceTransport.connection.nominated.remoteCandidate.foundation):void 0,localCertificateId:this.localCertificate?N8("certificate","local"):void 0,remoteCertificateId:this.remoteParameters?N8("certificate","remote"):void 0,dtlsRole:this.role==="auto"?void 0:this.role};if(G.push(J),this.localCertificate){let V=this.localCertificate.getFingerprints();if(V.length>0){let U={type:"certificate",id:N8("certificate","local"),timestamp:X,fingerprint:V[0].value,fingerprintAlgorithm:V[0].algorithm,base64Certificate:Buffer.from(this.localCertificate.certPem).toString("base64")};G.push(U)}}if(this.remoteParameters&&this.remoteParameters.fingerprints.length>0){let V={type:"certificate",id:N8("certificate","remote"),timestamp:X,fingerprint:this.remoteParameters.fingerprints[0].value,fingerprintAlgorithm:this.remoteParameters.fingerprints[0].algorithm,base64Certificate:""};G.push(V)}let Z=await this.iceTransport.getStats();return G.push(...Z),G}};var e2=class{constructor(W,X,G){this.certPem=X,this.signatureHash=G;let Y=tV.Certificate.fromPEM(Buffer.from(X));this.publicKey=Y.publicKey.toPEM(),this.privateKey=tV.PrivateKey.fromPEM(Buffer.from(W)).toPEM()}publicKey;privateKey;getFingerprints(){return[new mK("sha-256",i2(tV.Certificate.fromPEM(Buffer.from(this.certPem)).raw,"sha256"))]}},mK=class{constructor(W,X){this.algorithm=W,this.value=X}},fK=class{constructor(W=[],X){this.fingerprints=W,this.role=X}},Yr=(W)=>{let X=new Set;return W.filter(({algorithm:G,value:Y})=>{let J=`${r2(G)??G.trim().toLowerCase()}:${bK(Y)}`;if(X.has(J))return!1;return X.add(J),!0})},Jr=["sha512","sha384","sha256","sha224","sha1"],Zr=(W)=>{return Jr.find((X)=>W.some(({normalizedAlgorithm:G})=>G===X))??W[0].normalizedAlgorithm},Vr=class{constructor(W){this.ice=W,W.onData.subscribe((X)=>{if(mi(X)){if(this.onData)this.onData(X)}})}closed=!1;onData=()=>{};get address(){return{}}type="ice";send=(W)=>{return this.ice.send(W)};async close(){this.closed=!0,this.ice.close()}},WS=(W)=>new Vr(W),XS=L1("werift:packages/webrtc/src/transport/ice.ts"),Qr=class{constructor(W){this.iceGather=W,this.connection=this.iceGather.connection,this.connection.stateChanged.subscribe((X)=>{this.setState(X)}),this.iceGather.onIceCandidate=(X)=>{this.onIceCandidate.execute(X)}}id=Ur().toString();connection;state="new";waitStart;renominating=!1;onStateChange=new d0;onIceCandidate=new d0;onNegotiationNeeded=new d0;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(qr(W))};setRemoteParams(W,X=!1){if(X)this.renominating=!0;if(this.connection.remoteUsername&&this.connection.remotePassword&&(this.connection.remoteUsername!==W.usernameFragment||this.connection.remotePassword!==W.password))if(this.renominating)XS("renomination",W),this.connection.resetNominatedPair(),this.renominating=!1;else XS("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 d0,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=$X(),X=[];for(let Y of this.localCandidates){let J={type:"local-candidate",id:N8("local-candidate",Y.foundation),timestamp:W,transportId:N8("transport",this.id),address:Y.ip,port:Y.port,protocol:Y.protocol,candidateType:Y.type,priority:Y.priority,foundation:Y.foundation};X.push(J)}for(let Y of this.connection.remoteCandidates){let J=eV(Y),Z={type:"remote-candidate",id:N8("remote-candidate",J.foundation),timestamp:W,transportId:N8("transport",this.id),address:J.ip,port:J.port,protocol:J.protocol,candidateType:J.type,priority:J.priority,foundation:J.foundation};X.push(Z)}let G=this.connection?.candidatePairs?[...this.connection.candidatePairs.filter((Y)=>Y.nominated),...this.connection.candidatePairs.filter((Y)=>!Y.nominated)]:[];for(let Y of G){let J={type:"candidate-pair",id:N8("candidate-pair",Y.foundation),timestamp:W,transportId:N8("transport",this.id),localCandidateId:N8("local-candidate",Y.localCandidate.foundation),remoteCandidateId:N8("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};X.push(J)}return X}};var Nr=class{constructor(W={}){this.options=W,this.connection=new Ai(!1,this.options),this.connection.onIceCandidate.subscribe((X)=>{this.onIceCandidate(eV(X))})}onIceCandidate=()=>{};gatheringState="new";connection;onGatheringStateChange=new d0;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(eV)}get localParameters(){return new Xx({usernameFragment:this.connection.localUsername,password:this.connection.localPassword})}setState(W){if(W!==this.gatheringState)this.gatheringState=W,this.onGatheringStateChange.execute(W)}};function eV(W){let X=new Wx(W.component,W.foundation,W.host,W.port,W.priority,W.transport,W.type,W.generation,W.ufrag);return X.relatedAddress=W.relatedAddress,X.relatedPort=W.relatedPort,X.tcpType=W.tcptype,X}function qr(W){return new DX(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 Hr=class{candidate;sdpMid;sdpMLineIndex;usernameFragment;constructor(W){Object.assign(this,W)}static fromSdp(W){let X=DX.fromSdp(W);return eV(X).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}}},Wx=class{constructor(W,X,G,Y,J,Z,V,U,Q){this.component=W,this.foundation=X,this.ip=G,this.port=Y,this.priority=J,this.protocol=Z,this.type=V,this.generation=U,this.ufrag=Q}relatedAddress;relatedPort;sdpMid;sdpMLineIndex;tcpType;toJSON(){return new Hr({candidate:Hx(this),sdpMLineIndex:this.sdpMLineIndex,sdpMid:this.sdpMid,usernameFragment:this.ufrag})}static fromJSON(W){try{if(!W.candidate)throw Error("candidate is required");let X=Ax(W.candidate);return X.sdpMLineIndex=W.sdpMLineIndex??void 0,X.sdpMid=W.sdpMid??void 0,X}catch(X){}}},Xx=class{iceLite=!1;usernameFragment;password;constructor(W={}){Object.assign(this,W)}},o7=class W{constructor(X=0,G=Buffer.from("")){this.flags=X,this._body=G}get body(){return this._body}set body(X){this._body=X}static type=-1;get type(){return W.type}get bytes(){if(!this.body)throw Error();let X=Buffer.alloc(4);return X.writeUInt8(this.type,0),X.writeUInt8(this.flags,1),X.writeUInt16BE(this.body.length+4,2),Buffer.concat([X,this.body,...[...Array(qU(this.body.length))].map(()=>Buffer.from("\x00"))])}},qO=class extends o7{constructor(W=0,X){super(W,X);if(this.flags=W,X)this.initiateTag=X.readUInt32BE(0),this.advertisedRwnd=X.readUInt32BE(4),this.outboundStreams=X.readUInt16BE(8),this.inboundStreams=X.readUInt16BE(10),this.initialTsn=X.readUInt32BE(12),this.params=Ux(X.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,Vx(this.params)])}},lq=class W extends qO{static type=1;get type(){return W.type}},pK=class W extends qO{static type=2;get type(){return W.type}},Ir=class W extends qO{static type=130;get type(){return W.type}},dq=class W extends o7{constructor(X=0,G){super(X,G);if(this.flags=X,G){this.cumulativeTsn=G.readUInt32BE(0);let Y=4;while(Y<G.length)this.streams.push([G.readUInt16BE(Y),G.readUInt16BE(Y+2)]),Y+=4}else this.cumulativeTsn=0}static type=192;streams=[];cumulativeTsn;get type(){return W.type}set body(X){}get body(){let X=Buffer.alloc(4);return X.writeUInt32BE(this.cumulativeTsn,0),Buffer.concat([X,...this.streams.map(([G,Y])=>{let J=Buffer.alloc(4);return J.writeUInt16BE(G,0),J.writeUInt16BE(Y,2),J})])}},oq=class W extends o7{constructor(X=0,G){super(X,G);if(this.flags=X,G)this.tsn=G.readUInt32BE(0),this.streamId=G.readUInt16BE(4),this.streamSeqNum=G.readUInt16BE(6),this.protocol=G.readUInt32BE(8),this.userData=G.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 X=16+this.userData.length,G=Buffer.alloc(16);G.writeUInt8(this.type,0),G.writeUInt8(this.flags,1),G.writeUInt16BE(X,2),G.writeUInt32BE(this.tsn,4),G.writeUInt16BE(this.streamId,8),G.writeUInt16BE(this.streamSeqNum,10),G.writeUInt32BE(this.protocol,12);let Y=Buffer.concat([G,this.userData]);if(X%4)Y=Buffer.concat([Y,...[...Array(qU(X))].map(()=>Buffer.from("\x00"))]);return Y}},cK=class W extends o7{static type=10;get type(){return W.type}},lK=class W extends o7{static type=11;get type(){return W.type}},NU=class extends o7{constructor(W=0,X=void 0){super(W,X);if(this.flags=W,X)this.params=Ux(X)}params=[];get body(){return Vx(this.params)}},dK=class W extends NU{static type=6;get type(){return W.type}},nq=class W extends NU{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(([X,G])=>{return{name:(Object.entries(W.CODE).find(([,J])=>J===X)||[])[0],body:G}})}},oK=class W extends NU{static type=4;get type(){return W.type}},Gx=class W extends NU{static type=5;get type(){return W.type}},nK=class W extends NU{static type=130;get type(){return W.type}},iK=class W extends o7{constructor(X=0,G){super(X,G);if(this.flags=X,G){this.cumulativeTsn=G.readUInt32BE(0),this.advertisedRwnd=G.readUInt32BE(4);let Y=G.readUInt16BE(8),J=G.readUInt16BE(10),Z=12;[...Array(Y)].forEach(()=>{this.gaps.push([G.readUInt16BE(Z),G.readUInt16BE(Z+2)]),Z+=4}),[...Array(J)].forEach(()=>{this.duplicates.push(G.readUInt32BE(Z)),Z+=4})}}static type=3;get type(){return W.type}gaps=[];duplicates=[];cumulativeTsn=0;advertisedRwnd=0;get bytes(){let X=16+4*(this.gaps.length+this.duplicates.length),G=Buffer.alloc(16);G.writeUInt8(this.type,0),G.writeUInt8(this.flags,1),G.writeUInt16BE(X,2),G.writeUInt32BE(this.cumulativeTsn,4),G.writeUInt32BE(this.advertisedRwnd,8),G.writeUInt16BE(this.gaps.length,12),G.writeUInt16BE(this.duplicates.length,14);let Y=Buffer.concat([G,...this.gaps.map((J)=>{let Z=Buffer.alloc(4);return Z.writeUInt16BE(J[0],0),Z.writeUInt16BE(J[1],2),Z})]);return Y=Buffer.concat([Y,...this.duplicates.map((J)=>{let Z=Buffer.alloc(4);return Z.writeUInt32BE(J,0),Z})]),Y}},Yx=class W extends o7{constructor(X=0,G){super(X,G);if(this.flags=X,G)this.cumulativeTsn=G.readUInt32BE(0)}static type=7;get type(){return W.type}cumulativeTsn=0;get body(){let X=Buffer.alloc(4);return X.writeUInt32BE(this.cumulativeTsn,0),X}},Jx=class W extends o7{static type=8;get type(){return W.type}},Zx=class W extends o7{static type=14;get type(){return W.type}},wr=[oq,lq,pK,iK,oK,Gx,dK,Yx,Jx,nq,cK,lK,Zx,nK,dq],jr=wr.reduce((W,X)=>{return W[X.type]=X,W},{});function qU(W){let X=W%4;return X?4-X:0}function Vx(W){let X=Buffer.from(""),G=Buffer.from("");return W.forEach(([Y,J])=>{let Z=J.length+4,V=Buffer.alloc(4);V.writeUInt16BE(Y,0),V.writeUInt16BE(Z,2),X=Buffer.concat([X,G,V,J]),G=Buffer.concat([...Array(qU(Z))].map(()=>Buffer.from("\x00")))}),X}function Ux(W){let X=[],G=0;while(G<=W.length-4){let Y=W.readUInt16BE(G),J=W.readUInt16BE(G+2);X.push([Y,W.slice(G+4,G+J)]),G+=J+qU(J)}return X}function Kr(W){if(W.length<12)throw Error("SCTP packet length is less than 12 bytes");let X=W.readUInt16BE(0),G=W.readUInt16BE(2),Y=W.readUInt32BE(4),J=W.readUInt32LE(8),Z=$S(Buffer.concat([W.slice(0,8),Buffer.from("\x00\x00\x00\x00"),W.slice(12)]));if(J!==Z)throw Error("SCTP packet has invalid checksum");let V=[],U=12;while(U+4<=W.length){let Q=W.readUInt8(U),N=W.readUInt8(U+1),q=W.readUInt16BE(U+2),A=W.slice(U+4,U+q),H=jr[Q.toString()];if(H)V.push(new H(N,A));else throw Error("unknown");U+=q+qU(q)}return[X,G,Y,V]}function Or(W,X,G,Y){let J=Buffer.alloc(8);J.writeUInt16BE(W,0),J.writeUInt16BE(X,2),J.writeUInt32BE(G,4);let Z=Y.bytes,V=$S(Buffer.concat([J,Buffer.from("\x00\x00\x00\x00"),Z])),U=Buffer.alloc(4);return U.writeUInt32LE(V,0),Buffer.concat([J,U,Z])}function Dr(W){return W.map((X,G)=>[G,X])}function Cr(W){return W.reduce((X,G)=>{return X[G]=new d0,X},{})}var rK=class W{constructor(X,G,Y,J){this.requestSequence=X,this.responseSequence=G,this.lastTsn=Y,this.streams=J}static type=13;get type(){return W.type}get bytes(){let X=Buffer.from(X8.Pack("!LLL",[this.requestSequence,this.responseSequence,this.lastTsn]));return Buffer.concat([X,...this.streams.map((G)=>Buffer.from(X8.Pack("!H",[G])))])}static parse(X){let[G,Y,J]=X8.Unpack("!LLL",X),Z=[];for(let V=12;V<X.length;V+=2)Z.push(X8.Unpack("!H",X.slice(V))[0]);return new W(G,Y,J,Z)}},Qx=class W{constructor(X,G){this.requestSequence=X,this.newStreams=G}static type=17;get type(){return W.type}get bytes(){return Buffer.from(X8.Pack("!LHH",[this.requestSequence,this.newStreams,0]))}static parse(X){let[G,Y]=X8.Unpack("!LHH",X);return new W(G,Y)}},yq={ReconfigResultSuccessPerformed:1,BadSequenceNumber:5},iq=class W{constructor(X,G){this.responseSequence=X,this.result=G}static type=16;get type(){return W.type}get bytes(){return Buffer.from(X8.Pack("!LL",[this.responseSequence,this.result]))}static parse(X){let[G,Y]=X8.Unpack("!LL",X);return new W(G,Y)}},YS={13:rK,16:iq,17:Qx},e1=L1("werift/sctp/sctp"),Tr=24,Mr=60,JS=65535,X7=1200,fV=1,Nx=2,aK=4,ZS=10,Pr=8,VS=0.125,US=0.25,QS=3,Rr=1,Lr=60,qH=4294967296,Br=200,Er=30,NS=135,qS=7,HS=32776,AS=49152,$r=["new","closed","connected","connecting"],Fr=class W{constructor(X,G=5000){this.transport=X,this.port=G,this.localPort=this.port,this.transport.onData=(Y)=>{this.handleData(Y)}}flush=new d0;stateChanged=Cr($r);onReconfigStreams=new d0;onReceive=new d0;onSackReceived=async()=>{};associationState=1;started=!1;state="new";isServer=!0;isStopping=!1;isClosed=!1;hmacKey=zr(16);localPartialReliability=!0;localPort;localVerificationTag=TK();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=JS;lastReceivedTsn;sackDuplicates=[];sackMisOrdered=new Set;sackNeeded=!1;sackPacketCount=0;sackHasNewDataInPacket=!1;sackImmediate=!1;sackTimeout;cwnd=3*X7;fastRecoveryExit;fastRecoveryTransmit=!1;forwardTsnChunk;flightSize=0;outboundQueue=[];outboundStreamSeq={};_outboundStreamsCount=JS;localTsn=Number(TK());lastSackedTsn=KX(this.localTsn);advancedPeerAckTsn=KX(this.localTsn);partialBytesAcked=0;sentQueue=[];transmitting=!1;transmitRequested=!1;reconfigRequestSeq=this.localTsn;reconfigResponseSeq=0;reconfigRequest;reconfigQueue=[];srtt;rttvar;rto=QS;timer1Handle;timer1Chunk;timer1Failures=0;timer2Handle;timer2Chunk;timer2Failures=0;timer3Handle;timerReconfigHandle;timerReconfigFailures=0;timerHeartbeatHandle;heartbeatInterval=Er;ssthresh;get isStopped(){return this.isStopping||this.isClosed}get maxChannels(){if(this._inboundStreamsCount>0)return Math.min(this._inboundStreamsCount,this._outboundStreamsCount);return}static client(X,G=5000){let Y=new W(X,G);return Y.isServer=!1,Y}static server(X,G=5000){let Y=new W(X,G);return Y.isServer=!0,Y}async handleData(X){if(this.isStopped)return;let G,[,,Y,J]=Kr(X);if(J.filter((V)=>V.type===lq.type).length>0){if(J.length!=1)throw Error();G=0}else G=this.localVerificationTag;if(Y!==G)return;this.sackHasNewDataInPacket=!1;for(let V of J)await this.receiveChunk(V);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((X)=>{e1("send delayed sack failed",X.message)})},Br)}async sendSack(){if(this.isStopped)return;if(!this.sackNeeded)return;let X=[],G;[...this.sackMisOrdered].sort().forEach((J)=>{let Z=(J-this.lastReceivedTsn)%qH;if(J===G)X[X.length-1][1]=Z;else X.push([Z,Z]);G=vY(J)});let Y=new iK(0,void 0);Y.cumulativeTsn=this.lastReceivedTsn,Y.advertisedRwnd=Math.max(0,this.advertisedRwnd),Y.duplicates=[...this.sackDuplicates],Y.gaps=X,await this.sendChunk(Y).catch((J)=>{e1("send sack failed",J.message)}),this.sackDuplicates=[],this.sackNeeded=!1,this.sackPacketCount=0,this.sackImmediate=!1}async receiveChunk(X){switch(X.type){case oq.type:this.receiveDataChunk(X);break;case lq.type:{if(!this.isServer)return;let G=X;e1("receive init",G),this.lastReceivedTsn=KX(G.initialTsn),this.reconfigResponseSeq=KX(G.initialTsn),this.remoteVerificationTag=G.initiateTag,this.ssthresh=G.advertisedRwnd,this.peerAdvertisedRwnd=G.advertisedRwnd,this.getExtensions(G.params),this._inboundStreamsCount=Math.min(G.outboundStreams,this._inboundStreamsMax),this._outboundStreamsCount=Math.min(this._outboundStreamsCount,G.inboundStreams);let Y=new pK;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 J=Date.now()/1000,Z=Buffer.from(X8.Pack("!L",[J]));Z=Buffer.concat([Z,GS("sha1",this.hmacKey).update(Z).digest()]),Y.params.push([qS,Z]),e1("send initAck",Y),await this.sendChunk(Y).catch((V)=>{e1("send initAck failed",V.message)})}break;case pK.type:{if(this.associationState!=2)return;let G=X;this.timer1Cancel(),this.lastReceivedTsn=KX(G.initialTsn),this.reconfigResponseSeq=KX(G.initialTsn),this.remoteVerificationTag=G.initiateTag,this.ssthresh=G.advertisedRwnd,this.peerAdvertisedRwnd=G.advertisedRwnd,this.getExtensions(G.params),this._inboundStreamsCount=Math.min(G.outboundStreams,this._inboundStreamsMax),this._outboundStreamsCount=Math.min(this._outboundStreamsCount,G.inboundStreams);let Y=new cK;for(let[J,Z]of G.params)if(J===qS){Y.body=Z;break}await this.sendChunk(Y).catch((J)=>{e1("send echo failed",J.message)}),this.timer1Start(Y),this.setState(3)}break;case iK.type:await this.receiveSackChunk(X);break;case oK.type:{let G=new Gx;G.params=X.params,await this.sendChunk(G).catch((Y)=>{e1("send heartbeat ack failed",Y.message)})}break;case dK.type:this.setState(1);break;case Yx.type:{this.timer2Cancel(),this.setState(7);let G=new Jx;await this.sendChunk(G).catch((Y)=>{e1("send shutdown ack failed",Y.message)}),this.t2Start(G),this.setState(6)}break;case nq.type:e1("ErrorChunk",X.descriptions);break;case cK.type:{if(!this.isServer)return;let Y=X.body,J=GS("sha1",this.hmacKey).update(Y.slice(0,4)).digest();if(Y?.length!=Tr||!Y.slice(4).equals(J)){e1("x State cookie is invalid");return}let Z=Date.now()/1000,V=X8.Unpack("!L",Y)[0];if(V<Z-Mr||V>Z){let Q=new nq(0,void 0);Q.params.push([nq.CODE.StaleCookieError,Buffer.concat([...Array(8)].map(()=>Buffer.from("\x00")))]),await this.sendChunk(Q).catch((N)=>{e1("send errorChunk failed",N.message)});return}let U=new lK;await this.sendChunk(U).catch((Q)=>{e1("send cookieAck failed",Q.message)}),this.setState(4)}break;case lK.type:{if(this.associationState!=3)return;this.timer1Cancel(),this.setState(4)}break;case Zx.type:{if(this.associationState!=8)return;this.timer2Cancel(),this.setState(1)}break;case nK.type:{if(this.associationState!=4)return;let G=X;for(let[Y,J]of G.params){let Z=YS[Y];if(Z)await this.receiveReconfigParam(Z.parse(J))}}break;case dq.type:this.receiveForwardTsnChunk(X);break}}getExtensions(X){for(let[G,Y]of X)if(G===AS)this.remotePartialReliability=!0;else if(G===HS)this.remoteExtensions=[...Y]}async receiveReconfigParam(X){switch(e1("receiveReconfigParam",YS[X.type]),X.type){case rK.type:{let G=X,Y=new iq(G.requestSequence,yq.ReconfigResultSuccessPerformed);this.reconfigResponseSeq=G.requestSequence,await this.sendReconfigParam(Y),await Promise.all(G.streams.map(async(J)=>{if(delete this.inboundStreams[J],this.outboundStreamSeq[J]){if(!this.reconfigQueue.includes(J))this.reconfigQueue.push(J)}})),await this.transmitReconfigRequest(),this.onReconfigStreams.execute(G.streams)}break;case iq.type:{let G=X;if(G.result!==yq.ReconfigResultSuccessPerformed)e1("OutgoingSSNResetRequestParam failed",Object.keys(yq).find((Y)=>yq[Y]===G.result));else if(G.responseSequence===this.reconfigRequest?.requestSequence){let Y=this.reconfigRequest.streams.map((J)=>{return delete this.outboundStreamSeq[J],J});if(this.onReconfigStreams.execute(Y),this.reconfigRequest=void 0,this.timerReconfigCancel(),this.rto=QS,this.timerReconfigFailures=0,this.reconfigQueue.length>0)await this.transmitReconfigRequest()}}break;case Qx.type:{let G=X;this._inboundStreamsCount+=G.newStreams;let Y=new iq(G.requestSequence,1);this.reconfigResponseSeq=G.requestSequence,await this.sendReconfigParam(Y)}break}}receiveDataChunk(X){if(this.sackNeeded=!0,this.markReceived(X.tsn)){this.sackImmediate=!0;return}if(this.sackHasNewDataInPacket=!0,this.sackImmediate=!0,(X.flags&fV)===0)this.sackImmediate=!0;if(this.sackMisOrdered.size>0)this.sackImmediate=!0;let G=this.getInboundStream(X.streamId);G.addChunk(X),this.advertisedRwnd-=X.userData.length;for(let Y of G.popMessages())this.advertisedRwnd+=Y[2].length,this.receive(...Y)}async receiveSackChunk(X){if(p4(this.lastSackedTsn,X.cumulativeTsn))return;let G=Date.now()/1000;this.lastSackedTsn=X.cumulativeTsn;let Y=this.flightSize>=this.cwnd,J=0,Z=0;while(this.sentQueue.length>0&&mV(this.lastSackedTsn,this.sentQueue[0].tsn)){let U=this.sentQueue.shift();if(J++,!U?.acked)Z+=U.bookSize,this.flightSizeDecrease(U);if(J===1&&U.sentCount===1)this.updateRto(G-U.sentTime)}if(!this.sentQueue.length)this.sentQueue=[];let V=!1;if(X.gaps.length>0){let U=new Set,Q;X.gaps.forEach((q)=>{for(let A=q[0];A<q[1]+1;A++)Q=(X.cumulativeTsn+A)%qH,U.add(Q)});let N=X.cumulativeTsn;for(let q of this.sentQueue){if(p4(q.tsn,Q))break;if(U.has(q.tsn)&&!q.acked)Z+=q.bookSize,q.acked=!0,this.flightSizeDecrease(q),N=q.tsn}for(let q of this.sentQueue){if(p4(q.tsn,N))break;if(!U.has(q.tsn)){if(q.misses++,q.misses===3){if(q.misses=0,!this.maybeAbandon(q))q.retransmit=!0;q.acked=!1,this.flightSizeDecrease(q),V=!0}}}}if(this.fastRecoveryExit===void 0){if(J&&Y){if(this.cwnd<=this.ssthresh)this.cwnd+=Math.min(Z,X7);else if(this.partialBytesAcked+=Z,this.partialBytesAcked>=this.cwnd)this.partialBytesAcked-=this.cwnd,this.cwnd+=X7}if(V)this.ssthresh=Math.max(Math.floor(this.cwnd/2),4*X7),this.cwnd=this.ssthresh,this.partialBytesAcked=0,this.fastRecoveryExit=this.sentQueue[this.sentQueue.length-1].tsn,this.fastRecoveryTransmit=!0}else if(mV(X.cumulativeTsn,this.fastRecoveryExit))this.fastRecoveryExit=void 0;if(this.sentQueue.length===0)this.timer3Cancel();else if(J>0)this.timer3Restart();this.peerAdvertisedRwnd=X.advertisedRwnd,this.updateAdvancedPeerAckPoint(),await this.onSackReceived(),await this.transmit()}receiveForwardTsnChunk(X){if(this.sackNeeded=!0,this.sackImmediate=!0,mV(this.lastReceivedTsn,X.cumulativeTsn))return;let G=(Y)=>p4(Y,this.lastReceivedTsn);this.lastReceivedTsn=X.cumulativeTsn,this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(G));for(let Y of[...this.sackMisOrdered].sort())if(Y===vY(this.lastReceivedTsn))this.lastReceivedTsn=Y;else break;this.sackDuplicates=this.sackDuplicates.filter(G),this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(G));for(let[Y,J]of X.streams){let Z=this.getInboundStream(Y);Z.streamSequenceNumber=R9(J,1);for(let V of Z.popMessages())this.advertisedRwnd+=V[2].length,this.receive(...V)}Object.values(this.inboundStreams).forEach((Y)=>{this.advertisedRwnd+=Y.pruneChunks(this.lastReceivedTsn)})}updateRto(X){if(!this.srtt)this.rttvar=X/2,this.srtt=X;else this.rttvar=(1-US)*this.rttvar+US*Math.abs(this.srtt-X),this.srtt=(1-VS)*this.srtt+VS*X;this.rto=Math.max(Rr,Math.min(this.srtt+4*this.rttvar,Lr))}receive(X,G,Y){this.onReceive.execute(X,G,Y)}getInboundStream(X){if(!this.inboundStreams[X])this.inboundStreams[X]=new Sr;return this.inboundStreams[X]}markReceived(X){if(mV(this.lastReceivedTsn,X)||this.sackMisOrdered.has(X))return this.sackDuplicates.push(X),!0;this.sackMisOrdered.add(X);for(let Y of[...this.sackMisOrdered].sort())if(Y===vY(this.lastReceivedTsn))this.lastReceivedTsn=Y;else break;let G=(Y)=>p4(Y,this.lastReceivedTsn);return this.sackDuplicates=this.sackDuplicates.filter(G),this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(G)),!1}send=async(X,G,Y,{expiry:J,maxRetransmits:Z,ordered:V}={expiry:void 0,maxRetransmits:void 0,ordered:!0})=>{let U=V?this.outboundStreamSeq[X]||0:0,Q=Math.ceil(Y.length/X7),N=0,q=[];for(let A=0;A<Q;A++){let H=new oq(0,void 0);if(H.flags=0,!V)H.flags=aK;if(A===0)H.flags|=Nx;if(A===Q-1)H.flags|=fV;H.tsn=this.localTsn,H.streamId=X,H.streamSeqNum=U,H.protocol=G,H.userData=Y.slice(N,N+X7),H.bookSize=H.userData.length,H.expiry=J,H.maxRetransmits=Z,N+=X7,this.localTsn=vY(this.localTsn),q.push(H)}if(q.forEach((A)=>{this.outboundQueue.push(A)}),V)this.outboundStreamSeq[X]=R9(U,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((J)=>{e1("send forwardTsn failed",J.message)}),this.forwardTsnChunk=void 0,!this.timer3Handle)this.timer3Start()}let X=this.fastRecoveryExit!=null?2*X7:4*X7,G=Math.min(this.flightSize+X,this.cwnd),Y=!0;for(let J of this.sentQueue){if(J.retransmit){if(this.fastRecoveryTransmit)this.fastRecoveryTransmit=!1;else if(this.flightSize>=G)break;if(this.flightSizeIncrease(J),J.misses=0,J.retransmit=!1,J.sentCount++,await this.sendChunk(J).catch((Z)=>{e1("send data failed",Z.message)}),Y)this.timer3Restart()}Y=!1}while(this.outboundQueue.length>0&&this.flightSize<G&&this.peerRwnd>0){let J=this.outboundQueue.shift();if(!J)break;if(J.bookSize>this.peerRwnd&&this.flightSize>0){this.outboundQueue.unshift(J);break}if(this.sentQueue.push(J),this.flightSizeIncrease(J),J.sentCount++,J.sentTime=Date.now()/1000,await this.sendChunk(J).catch((Z)=>{e1("send data outboundQueue failed",Z.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 X=[...new Set(this.reconfigQueue)],G=X.slice(0,NS);this.reconfigQueue=X.slice(NS);let Y=new rK(this.reconfigRequestSeq,this.reconfigResponseSeq,KX(this.localTsn),G);this.reconfigRequestSeq=vY(this.reconfigRequestSeq),this.reconfigRequest=Y,await this.sendReconfigParam(Y),this.timerReconfigHandleStart()}}async sendReconfigParam(X){e1("sendReconfigParam",X);let G=new nK;G.params.push([X.type,X.bytes]),await this.sendChunk(G).catch((Y)=>{e1("send reconfig failed",Y.message)})}async sendResetRequest(X){e1("sendResetRequest",X);let G=new oq(0,void 0);if(G.streamId=X,this.outboundQueue.push(G),!this.timer3Handle)await this.transmit()}flightSizeIncrease(X){this.flightSize+=X.bookSize}flightSizeDecrease(X){this.flightSize=Math.max(0,this.flightSize-X.bookSize)}timer1Start(X){if(this.timer1Handle)throw Error();this.timer1Chunk=X,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>Pr)this.setState(1);else{if(setImmediate(()=>{if(this.isStopped)return;this.sendChunk(this.timer1Chunk).catch((X)=>{e1("send timer1 chunk failed",X.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(X){if(this.timer2Handle)throw Error();this.timer2Chunk=X,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>ZS)this.setState(1);else{if(setImmediate(()=>{if(this.isStopped)return;this.sendChunk(this.timer2Chunk).catch((X)=>{e1("send timer2Chunk failed",X.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((X)=>{if(!this.maybeAbandon(X))X.retransmit=!0}),this.updateAdvancedPeerAckPoint(),this.fastRecoveryExit=void 0,this.flightSize=0,this.partialBytesAcked=0,this.ssthresh=Math.max(Math.floor(this.cwnd/2),4*X7),this.cwnd=X7,this.transmit()};timer3Cancel(){if(this.timer3Handle)clearTimeout(this.timer3Handle),this.timer3Handle=void 0}timerReconfigHandleStart(){if(this.isStopped)return;if(this.timerReconfigHandle)return;e1("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>ZS)e1("timerReconfigFailures",this.timerReconfigFailures),this.setState(1),this.timerReconfigHandle=void 0;else if(this.reconfigRequest){if(e1("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)e1("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 X=new oK;X.params.push([1,Buffer.from(X8.Pack("!L",[Math.floor(Date.now()/1000)]))]),await this.sendChunk(X).catch((G)=>{e1("send heartbeat failed",G.message)})}this.heartbeatStart()};setHeartbeatInterval(X){if(X<=0)throw Error("heartbeat interval must be > 0");this.heartbeatInterval=X,this.heartbeatRestart()}updateAdvancedPeerAckPoint(){if(p4(this.lastSackedTsn,this.advancedPeerAckTsn))this.advancedPeerAckTsn=this.lastSackedTsn;let X=0,G={};while(this.sentQueue.length>0&&this.sentQueue[0].abandoned){let Y=this.sentQueue.shift();if(this.advancedPeerAckTsn=Y.tsn,X++,!(Y.flags&aK))G[Y.streamId]=Y.streamSeqNum}if(!this.sentQueue.length)this.sentQueue=[];if(X)this.forwardTsnChunk=new dq(0,void 0),this.forwardTsnChunk.cumulativeTsn=this.advancedPeerAckTsn,this.forwardTsnChunk.streams=Object.entries(G).map(([Y,J])=>[Number(Y),J])}maybeAbandon(X){if(X.abandoned)return!0;if(!(!!X.maxRetransmits&&X.maxRetransmits<X.sentCount||!!X.expiry&&X.expiry<Date.now()/1000))return!1;let Y=this.sentQueue.findIndex((J)=>J.type===X.type);for(let J=Y;J>=0;J--){let Z=this.sentQueue[J];if(Z.abandoned=!0,Z.retransmit=!1,Z.flags&fV)break}for(let J=Y;J<this.sentQueue.length;J++){let Z=this.sentQueue[J];if(Z.abandoned=!0,Z.retransmit=!1,Z.flags&fV)break}return!0}static getCapabilities(){return new xr(65536)}setRemotePort(X){this.remotePort=X}async start(X){if(!this.started){if(this.started=!0,this.setConnectionState("connecting"),X)this.setRemotePort(X);if(!this.isServer)await this.init()}}async init(){let X=new lq;X.initiateTag=this.localVerificationTag,X.advertisedRwnd=this.advertisedRwnd,X.outboundStreams=this._outboundStreamsCount,X.inboundStreams=this._inboundStreamsMax,X.initialTsn=this.localTsn,this.setExtensions(X.params),e1("send init",X);try{await this.sendChunk(X),this.timer1Start(X),this.setState(2)}catch(G){e1("send init failed",G.message)}}setExtensions(X){let G=[];if(this.localPartialReliability)X.push([AS,Buffer.from("")]),G.push(dq.type);G.push(Ir.type),X.push([HS,Buffer.from(G)])}async sendChunk(X){if(this.state==="closed")return;if(this.remotePort===void 0)throw Error("invalid remote port");let G=Or(this.localPort,this.remotePort,this.remoteVerificationTag,X);await this.transport.send(G)}setState(X){if(X!=this.associationState)this.associationState=X;if(X===4)this.isStopping=!1,this.isClosed=!1,this.setConnectionState("connected"),this.heartbeatStart();else if(X===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(X){this.state=X,e1("setConnectionState",X),this.stateChanged[X].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 X=new dK;await this.sendChunk(X).catch((G)=>{e1("send abort failed",G.message)})}removeAllListeners(){Object.values(this.stateChanged).forEach((X)=>X.allUnsubscribe())}},Sr=class{reassembly=[];streamSequenceNumber=0;constructor(){}addChunk(W){if(this.reassembly.length===0||p4(W.tsn,this.reassembly[this.reassembly.length-1].tsn)){this.reassembly.push(W);return}for(let[X,G]of Dr(this.reassembly)){if(G.tsn===W.tsn)throw Error("duplicate chunk in reassembly");if(p4(G.tsn,W.tsn)){this.reassembly.splice(X,0,W);break}}}*popMessages(){let W=0,X,G,Y;while(W<this.reassembly.length){let J=this.reassembly[W];if(X===void 0){if(Y=!(J.flags&aK),!(J.flags&Nx))if(Y)break;else{W++;continue}if(Y&&FS(J.streamSeqNum,this.streamSequenceNumber))break;G=J.tsn,X=W}else if(J.tsn!==G)if(Y)break;else{X=void 0,W++;continue}if(J.flags&fV){let Z=this.reassembly.slice(X,W+1).map((U)=>U.userData).reduce((U,Q)=>{return U.push(Q),U.push(Buffer.from("")),U},[]);Z.pop();let V=Buffer.concat(Z);if(this.reassembly=[...this.reassembly.slice(0,X),...this.reassembly.slice(W+1)],Y&&J.streamSeqNum===this.streamSequenceNumber)this.streamSequenceNumber=R9(this.streamSequenceNumber,1);W=X,yield[J.streamId,J.protocol,V]}else W++;G=vY(G)}}pruneChunks(W){let X=-1,G=0;for(let[Y,J]of this.reassembly.entries())if(mV(W,J.tsn))X=Y,G+=J.userData.length;else break;return this.reassembly=this.reassembly.slice(X+1),G}},xr=class{constructor(W){this.maxMessageSize=W}};function KX(W){return(W-1)%qH}function vY(W){return(W+1)%qH}var xY=L1("werift:packages/webrtc/src/transport/sctp.ts"),pV=65536,kr=class W{constructor(X=5000,G=pV){this.port=X,this.maxMessageSize=G}dtlsTransport;sctp;onDataChannel=new d0;id=Ar().toString();mid;mLineIndex;bundled=!1;dataChannels={};remoteMaxMessageSize=pV;dataChannelQueue=[];dataChannelId;eventDisposer=[];setDtlsTransport(X){if(this.dtlsTransport&&this.dtlsTransport.id===X.id)return;this.eventDisposer.forEach((G)=>G()),this.dtlsTransport=X,this.sctp=new Fr(new _r(this.dtlsTransport),this.port),this.eventDisposer=[...[this.sctp.onReceive.subscribe(this.datachannelReceive),this.sctp.onReconfigStreams.subscribe((G)=>{G.forEach((Y)=>{let J=this.dataChannels[Y];if(!J)return;J.setReadyState("closing"),J.setReadyState("closed"),delete this.dataChannels[Y]})}),this.sctp.stateChanged.connected.subscribe(()=>{Object.values(this.dataChannels).forEach((G)=>{if(G.negotiated&&G.readyState!=="open")G.setReadyState("open")}),this.dataChannelFlush()}),this.sctp.stateChanged.closed.subscribe(()=>{Object.values(this.dataChannels).forEach((G)=>{G.setReadyState("closed")}),this.dataChannels={}}),this.dtlsTransport.onStateChange.subscribe((G)=>{if(G==="closed")this.sctp.setState(1)})].map((G)=>G.unSubscribe),()=>this.sctp.onSackReceived=async()=>{}],this.sctp.onSackReceived=async()=>{await this.dataChannelFlush()}}get isServer(){return this.dtlsTransport.iceTransport.role!=="controlling"}channelByLabel(X){return Object.values(this.dataChannels).find((G)=>G.label===X)}datachannelReceive=async(X,G,Y)=>{if(G===_q&&Y.length>0)switch(xY("DCEP",X,G,Y),Y[0]){case oF:{if(Y.length<12){xY("DATA_CHANNEL_OPEN data.length not enough");return}if(!Object.keys(this.dataChannels).includes(X.toString())){let[,Z,,V,U,Q]=X8.Unpack("!BBHLHH",Y),N=12,q=Y.slice(N,N+U).toString("utf8");N+=U;let A=Y.slice(N,N+Q).toString("utf8");xY("DATA_CHANNEL_OPEN",{channelType:Z,reliability:V,streamId:X,label:q,protocol:A});let H=(Z&3)===1?V:void 0,I=(Z&3)===2?V:void 0,w=new u2({label:q,ordered:(Z&128)===0,maxPacketLifeTime:I,maxRetransmits:H,protocol:A,id:X}),O=new g2(this,w,!1);O.isCreatedByRemote=!0,this.dataChannels[X]=O,this.onDataChannel.execute(O),O.setReadyState("open")}else xY("datachannel already opened","retransmit ack");let J=this.dataChannels[X];this.dataChannelQueue.push([J,_q,Buffer.from(X8.Pack("!B",[dF]))]),await this.dataChannelFlush()}break;case dF:{xY("DATA_CHANNEL_ACK",X,G);let J=this.dataChannels[X];if(!J)throw Error("channel not found");J.setReadyState("open")}break}else{let J=this.dataChannels[X];if(J){let Z=(()=>{switch(G){case nF:return Y.toString("utf8");case Fi:return"";case iF:return Y;case Si:return Buffer.from([]);default:throw Error()}})();if(J.messagesReceived++,J.bytesReceived+=Y.length,J.onMessage.execute(Z),J.emit("message",{data:Z}),J.onmessage)J.onmessage({data:Z})}}};dataChannelAddNegotiated(X){if(X.id==null)throw Error();if(this.dataChannels[X.id])throw Error();if(this.dataChannels[X.id]=X,this.sctp.associationState===4)X.setReadyState("open")}dataChannelOpen(X){if(X.id){if(this.dataChannels[X.id])throw Error(`Data channel with ID ${X.id} already registered`);this.dataChannels[X.id]=X}let G=$i,Y=0,J=0;if(!X.ordered)G=128;if(X.maxRetransmits)G=1,J=X.maxRetransmits;else if(X.maxPacketLifeTime)G=2,J=X.maxPacketLifeTime;let Z=X8.Pack("!BBHLHH",[oF,G,Y,J,X.label.length,X.protocol.length]),V=Buffer.concat([Buffer.from(Z),Buffer.from(X.label,"utf8"),Buffer.from(X.protocol,"utf8")]);this.dataChannelQueue.push([X,_q,V]),this.dataChannelFlush()}async dataChannelFlush(){if(this.sctp.associationState!=4)return;while(this.dataChannelQueue.length>0){let[X,G,Y]=this.dataChannelQueue.shift(),J=X.id;if(J===void 0){J=this.dataChannelId;while(Object.keys(this.dataChannels).includes(J.toString()))J+=2;this.dataChannels[J]=X,X.setId(J)}if(G===_q)await this.sctp.send(J,G,Y,{ordered:!0});else{let Z=X.maxPacketLifeTime?Date.now()+X.maxPacketLifeTime/1000:void 0;await this.sctp.send(J,G,Y,{expiry:Z,maxRetransmits:X.maxRetransmits,ordered:X.ordered}),X.addBufferedAmount(-Y.length)}}this.dataChannelQueue=[]}assertSendableMessageSize(X){if(this.remoteMaxMessageSize!==0&&X>this.remoteMaxMessageSize)throw Error(`max-message-size exceeded: ${X} > ${this.remoteMaxMessageSize}`)}datachannelSend=(X,G)=>{let Y=Buffer.isBuffer(G)?G:Buffer.from(G),J=ji(G);if(this.assertSendableMessageSize(J),X.addBufferedAmount(J),this.dataChannelQueue.push(typeof G==="string"?[X,nF,Y]:[X,iF,Y]),this.sctp.associationState!==4)xY("sctp not established",this.sctp.associationState);return this.dataChannelFlush(),J};getCapabilities(){return W.getCapabilities(this.maxMessageSize)}static getCapabilities(X=pV){return new qx(X)}setRemoteMaxMessageSize(X){this.remoteMaxMessageSize=X??pV}setRemotePort(X){this.sctp.setRemotePort(X)}async start(X){if(this.isServer)this.dataChannelId=0;else this.dataChannelId=1;this.sctp.isServer=this.isServer,await this.sctp.start(X)}async stop(){this.dtlsTransport.dataReceiver=()=>{},await this.sctp.stop()}dataChannelClose(X){if(!["closing","closed"].includes(X.readyState))if(X.setReadyState("closing"),this.sctp.associationState===4){if(!this.sctp.reconfigQueue.includes(X.id))this.sctp.reconfigQueue.push(X.id);if(this.sctp.reconfigQueue.length===1)this.sctp.transmitReconfigRequest()}else{if(this.dataChannelQueue=this.dataChannelQueue.filter((G)=>G[0].id!==X.id),this.sctp.reconfigQueue=this.sctp.reconfigQueue.filter((G)=>G!==X.id),X.id)delete this.dataChannels[X.id];X.setReadyState("closed")}}},qx=class{constructor(W){this.maxMessageSize=W}},_r=class{constructor(W){this.dtls=W}set onData(W){this.dtls.dataReceiver=W}send=(W)=>{return this.dtls.sendData(W)};close(){}},rq=class W{version=0;origin;name="-";time="0 0";host;group=[];extMapAllowMixed=!0;msidSemantic=[];media=[];type;dtlsRole;iceOptions;iceLite;icePassword;iceUsernameFragment;dtlsFingerprints=[];static parse(X){let[G,Y]=yr(X),J=new W;G.forEach((V)=>{if(V.startsWith("v="))J.version=Number.parseInt(V.slice(2),10);else if(V.startsWith("o="))J.origin=V.slice(2);else if(V.startsWith("s="))J.name=V.slice(2);else if(V.startsWith("c="))J.host=KK(V.slice(2));else if(V.startsWith("t="))J.time=V.slice(2);else if(V.startsWith("a=")){let[U,Q]=OK(V);switch(U){case"fingerprint":{let[N,q]=Q?.split(" ")||[];J.dtlsFingerprints.push(new mK(N,q))}break;case"ice-lite":J.iceLite=!0;break;case"ice-options":J.iceOptions=Q;break;case"ice-pwd":J.icePassword=Q;break;case"ice-ufrag":J.iceUsernameFragment=Q;break;case"group":DK(J.group,Q);break;case"msid-semantic":DK(J.msidSemantic,Q);break;case"setup":J.dtlsRole=aF[Q];break;case"extmap-allow-mixed":J.extMapAllowMixed=!0;break}}});let Z=J.group.find((V)=>V.semantic==="BUNDLE");return Y.forEach((V)=>{let Q=V[0].match(/^m=([^ ]+) ([0-9]+) ([A-Z/]+) (.+)/);if(!Q)throw Error("m line not found");let N=Q[1],q=Q[4].split(" "),A=["audio","video"].includes(N)?q.map((w)=>Number(w)):void 0,H=new sK(N,Number.parseInt(Q[2]),Q[3],A||q);if(H.dtlsParams=new fK([...J.dtlsFingerprints],J.dtlsRole),H.iceParams=new Xx({iceLite:J.iceLite,usernameFragment:J.iceUsernameFragment,password:J.icePassword}),H.iceOptions=J.iceOptions,J.media.push(H),V.slice(1).forEach((w)=>{if(w.startsWith("c="))H.host=KK(w.slice(2));else if(w.startsWith("a=")){let[O,T]=OK(w);switch(O){case"candidate":if(!T)throw Error();H.iceCandidates.push(Ax(T));break;case"end-of-candidates":H.iceCandidatesComplete=!0;break;case"extmap":{let[x,P]=T.split(" ");if(x.includes("/"))[x]=x.split("/");H.rtp.headerExtensions.push(new Oi({id:Number.parseInt(x),uri:P}))}break;case"fingerprint":{if(!T)throw Error();let[x,P]=T.split(" ");H.dtlsParams?.fingerprints.push(new mK(x,P))}break;case"ice-options":H.iceOptions=T;break;case"ice-pwd":H.iceParams.password=T;break;case"ice-ufrag":H.iceParams.usernameFragment=T;break;case"ice-lite":H.iceParams.iceLite=!0;break;case"max-message-size":H.sctpCapabilities=new qx(Number.parseInt(T,10));break;case"mid":H.rtp.muxId=T;break;case"msid":H.msid=T;break;case"rtcp":{let[x,P]=f4(T," ");H.rtcpPort=Number.parseInt(x),H.rtcpHost=KK(P)}break;case"rtcp-mux":H.rtcpMux=!0;break;case"setup":H.dtlsParams.role=aF[T];break;case"recvonly":case"sendonly":case"sendrecv":case"inactive":H.direction=O;break;case"rtpmap":{let[x,P]=f4(T," "),[u,F,m]=P.split("/"),l;if(H.kind==="audio")l=m?Number.parseInt(m):1;let p=new EX({mimeType:H.kind+"/"+u,channels:l,clockRate:Number.parseInt(F),payloadType:Number.parseInt(x)});H.rtp.codecs.push(p)}break;case"sctpmap":{if(!T)throw Error();let[x,P]=f4(T," ");H.sctpMap[Number.parseInt(x)]=P,H.sctpPort=Number.parseInt(x)}break;case"sctp-port":if(!T)throw Error();H.sctpPort=Number.parseInt(T);break;case"ssrc":{let[x,P]=f4(T," "),u=Number.parseInt(x),[F,m]=f4(P,":"),l=H.ssrc.find((p)=>p.ssrc===u);if(!l)l=new eK({ssrc:u}),H.ssrc.push(l);if(c2.includes(F))l[F]=m}break;case"ssrc-group":DK(H.ssrcGroup,T);break;case"rid":{let[x,P]=f4(T," ");H.simulcastParameters.push(new h2({rid:x,direction:P}))}break}}}),!H.iceParams.usernameFragment||!H.iceParams.password){if(H.rtp.muxId&&Z&&Z.items.includes(H.rtp.muxId))for(let w=0;w<Z.items.length;w++){if(!Z.items.includes(w.toString()))continue;let O=J.media[w];if(O.iceParams?.usernameFragment&&O.iceParams.password){H.iceParams={...O.iceParams};break}}}if(!H.dtlsParams.role)H.dtlsParams=void 0;let I=(w)=>H.rtp.codecs.find((O)=>O.payloadType===w);V.slice(1).forEach((w)=>{if(w.startsWith("a=")){let[O,T]=OK(w);if(O==="fmtp"){let[x,P]=f4(T," "),u=I(Number(x));u.parameters=P}else if(O==="rtcp-fb"){let[x,P,u]=T.split(" ");H.rtp.codecs.forEach((F)=>{if(["*",F.payloadType.toString()].includes(x))F.rtcpFeedback.push(new Di({type:P,parameter:u}))})}}})}),J}webrtcTrackId(X){if(X.msid?.includes(" ")){let G=X.msid.split(" ");for(let Y of this.msidSemantic)if(Y.semantic==="WMS"&&(Y.items.includes(G[0])||Y.items.includes("*")))return G[1]}return}get string(){let X=[`v=${this.version}`,`o=${this.origin}`,`s=${this.name}`];if(this.host)X.push(`c=${tK(this.host)}`);if(X.push(`t=${this.time}`),this.group.forEach((J)=>X.push(`a=group:${J.str}`)),this.extMapAllowMixed)X.push("a=extmap-allow-mixed");this.msidSemantic.forEach((J)=>X.push(`a=msid-semantic:${J.str}`));let G=this.media.map((J)=>J.toString()).join("");return X.join(`\r
|
|
242
|
+
`)}}T9.CertificateTag="CERTIFICATE";T9.CrlTag="CRL";T9.CertificateRequestTag="CERTIFICATE REQUEST";T9.PublicKeyTag="PUBLIC KEY";T9.PrivateKeyTag="PRIVATE KEY";class T4 extends v6{static isAsnEncoded(W){return y0.isBufferSource(W)||typeof W==="string"}static toArrayBuffer(W){if(typeof W==="string")if(T9.isPem(W))return T9.decode(W)[0];else if(i0.isHex(W))return i0.FromHex(W);else if(i0.isBase64(W))return i0.FromBase64(W);else if(i0.isBase64Url(W))return i0.FromBase64Url(W);else throw TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url");else{let X=y0.toUint8Array(W);if(X.length>0&&X[0]===48)return y0.toArrayBuffer(W);let G=i0.ToBinary(W);if(T9.isPem(G))return T9.decode(G)[0];else if(i0.isHex(G))return i0.FromHex(G);else if(i0.isBase64(G))return i0.FromBase64(G);else if(i0.isBase64Url(G))return i0.FromBase64Url(G);throw TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url")}}constructor(...W){if(T4.isAsnEncoded(W[0]))super(T4.toArrayBuffer(W[0]),W[1]);else super(W[0])}toString(W="pem"){switch(W){case"pem":return T9.encode(this.rawData,this.tag);default:return super.toString(W)}}}class i5 extends T4{static async create(W,X=u8.get()){if(W instanceof i5)return W;else if(k6.isCryptoKey(W)){if(W.type!=="public")throw TypeError("Public key is required");let G=await X.subtle.exportKey("spki",W);return new i5(G)}else if(W.publicKey)return W.publicKey;else if(y0.isBufferSource(W))return new i5(W);else throw TypeError("Unsupported PublicKeyType")}constructor(W){if(T4.isAsnEncoded(W))super(W,O9);else super(W);this.tag=T9.PublicKeyTag}async export(...W){let X,G=["verify"],Y={hash:"SHA-256",...this.algorithm};if(W.length>1)Y=W[0]||Y,G=W[1]||G,X=W[2]||u8.get();else X=W[0]||u8.get();let J=this.rawData,Z=x0.parse(this.rawData,O9);if(Z.algorithm.algorithm===$6)J=Tp(Z,J);return X.subtle.importKey("spki",J,Y,!0,G)}onInit(W){let X=H8.resolve(ZX),G=this.algorithm=X.toWebAlgorithm(W.algorithm);switch(W.algorithm.algorithm){case S7:{let Y=x0.parse(W.subjectPublicKey,SZ),J=y0.toUint8Array(Y.modulus);G.publicExponent=y0.toUint8Array(Y.publicExponent),G.modulusLength=(!J[0]?J.slice(1):J).byteLength<<3;break}}}async getThumbprint(...W){var X;let G,Y="SHA-1";if(W.length>=1&&!((X=W[0])===null||X===void 0?void 0:X.subtle))Y=W[0]||Y,G=W[1]||u8.get();else G=W[0]||u8.get();return await G.subtle.digest(Y,this.rawData)}async getKeyIdentifier(...W){let X,G="SHA-1";if(W.length===1)if(typeof W[0]==="string")G=W[0],X=u8.get();else X=W[0];else if(W.length===2)G=W[0],X=W[1];else X=u8.get();let Y=x0.parse(this.rawData,O9);return await X.subtle.digest(G,Y.subjectPublicKey)}toTextObject(){let W=this.toTextObjectEmpty(),X=x0.parse(this.rawData,O9);switch(W.Algorithm=_6.serializeAlgorithm(X.algorithm),X.algorithm.algorithm){case nW:W["EC Point"]=X.subjectPublicKey;break;case S7:default:W["Raw Data"]=X.subjectPublicKey}return W}}function Tp(W,X){return W.algorithm=new R0({algorithm:S7,parameters:null}),X=x0.serialize(W),X}class NV extends U5{static async create(W,X=!1,G=u8.get()){if("name"in W&&"serialNumber"in W)return new NV(W,X);let J=await(await i5.create(W,G)).getKeyIdentifier(G);return new NV(i0.ToHex(J),X)}constructor(...W){if(y0.isBufferSource(W[0]))super(W[0]);else if(typeof W[0]==="string"){let X=new A4({keyIdentifier:new vG(i0.FromHex(W[0]))});super(AN,W[1],x0.serialize(X))}else{let X=W[0],G=X.name instanceof y6?x0.parse(X.name.rawData,K8):X.name,Y=new A4({authorityCertIssuer:G,authorityCertSerialNumber:i0.FromHex(X.serialNumber)});super(AN,W[1],x0.serialize(Y))}}onInit(W){super.onInit(W);let X=x0.parse(W.extnValue,A4);if(X.keyIdentifier)this.keyId=i0.ToHex(X.keyIdentifier);if(X.authorityCertIssuer||X.authorityCertSerialNumber)this.certId={name:X.authorityCertIssuer||[],serialNumber:X.authorityCertSerialNumber?i0.ToHex(X.authorityCertSerialNumber):""}}toTextObject(){let W=this.toTextObjectWithoutValue(),X=x0.parse(this.value,A4);if(X.authorityCertIssuer)W["Authority Issuer"]=new y6(X.authorityCertIssuer).toTextObject();if(X.authorityCertSerialNumber)W["Authority Serial Number"]=X.authorityCertSerialNumber;if(X.keyIdentifier)W[""]=X.keyIdentifier;return W}}NV.NAME="Authority Key Identifier";class Zj extends U5{constructor(...W){if(y0.isBufferSource(W[0])){super(W[0]);let X=x0.parse(this.value,gG);this.ca=X.cA,this.pathLength=X.pathLenConstraint}else{let X=new gG({cA:W[0],pathLenConstraint:W[1]});super(zN,W[2],x0.serialize(X));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 x3;(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"})(x3||(x3={}));class Vj extends U5{constructor(...W){if(y0.isBufferSource(W[0])){super(W[0]);let X=x0.parse(this.value,WZ);this.usages=X.map((G)=>G)}else{let X=new WZ(W[0]);super(TN,W[1],x0.serialize(X));this.usages=W[0]}}toTextObject(){let W=this.toTextObjectWithoutValue();return W[""]=this.usages.map((X)=>M4.toString(X)).join(", "),W}}Vj.NAME="Extended Key Usages";var k3;(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"})(k3||(k3={}));class Uj extends U5{constructor(...W){if(y0.isBufferSource(W[0])){super(W[0]);let X=x0.parse(this.value,GZ);this.usages=X.toNumber()}else{let X=new GZ(W[0]);super(MN,W[1],x0.serialize(X));this.usages=W[0]}}toTextObject(){let W=this.toTextObjectWithoutValue(),X=x0.parse(this.value,GZ);return W[""]=X.toJSON().join(", "),W}}Uj.NAME="Key Usages";class Xq extends U5{static async create(W,X=!1,G=u8.get()){let J=await(await i5.create(W,G)).getKeyIdentifier(G);return new Xq(i0.ToHex(J),X)}constructor(...W){if(y0.isBufferSource(W[0])){super(W[0]);let X=x0.parse(this.value,Y5);this.keyId=i0.ToHex(X)}else{let X=typeof W[0]==="string"?i0.FromHex(W[0]):W[0],G=new Y5(X);super(mI,W[1],x0.serialize(G));this.keyId=i0.ToHex(X)}}toTextObject(){let W=this.toTextObjectWithoutValue(),X=x0.parse(this.value,Y5);return W[""]=X,W}}Xq.NAME="Subject Key Identifier";class Qj extends U5{constructor(...W){if(y0.isBufferSource(W[0]))super(W[0]);else super(hI,W[1],new y6(W[0]||[]).rawData)}onInit(W){super.onInit(W);let X=x0.parse(W.extnValue,LN);this.names=new y6(X)}toTextObject(){let W=this.toTextObjectWithoutValue(),X=this.names.toTextObject();for(let G in X)W[G]=X[G];return W}}Qj.NAME="Subject Alternative Name";class n9{static register(W,X){this.items.set(W,X)}static create(W){let X=new U5(W),G=this.items.get(X.type);if(G)return new G(W);return X}}n9.items=new Map;class Nj extends U5{constructor(...W){var X;if(y0.isBufferSource(W[0])){super(W[0]);let G=x0.parse(this.value,aJ);this.policies=G.map((Y)=>Y.policyIdentifier)}else{let G=W[0],Y=(X=W[1])!==null&&X!==void 0?X:!1,J=new aJ(G.map((Z)=>new uG({policyIdentifier:Z})));super(wN,Y,x0.serialize(J));this.policies=G}}toTextObject(){let W=this.toTextObjectWithoutValue();return W.Policy=this.policies.map((X)=>new a1("",{},M4.toString(X))),W}}Nj.NAME="Certificate Policies";n9.register(wN,Nj);class qj extends U5{constructor(...W){var X;if(y0.isBufferSource(W[0]))super(W[0]);else if(Array.isArray(W[0])&&typeof W[0][0]==="string"){let Y=W[0].map((Z)=>{return new w4({distributionPoint:new I4({fullName:[new U1({uniformResourceIdentifier:Z})]})})}),J=new R6(Y);super(DN,W[1],x0.serialize(J))}else{let G=new R6(W[0]);super(DN,W[1],x0.serialize(G))}(X=this.distributionPoints)!==null&&X!==void 0||(this.distributionPoints=[])}onInit(W){super.onInit(W);let X=x0.parse(W.extnValue,R6);this.distributionPoints=X}toTextObject(){let W=this.toTextObjectWithoutValue();return W["Distribution Point"]=this.distributionPoints.map((X)=>{var G;let Y={};if(X.distributionPoint)Y[""]=(G=X.distributionPoint.fullName)===null||G===void 0?void 0:G.map((J)=>new C4(J).toString()).join(", ");if(X.reasons)Y.Reasons=X.reasons.toString();if(X.cRLIssuer)Y["CRL Issuer"]=X.cRLIssuer.map((J)=>J.toString()).join(", ");return Y}),W}}qj.NAME="CRL Distribution Points";class Hj extends U5{constructor(...W){var X,G,Y,J;if(y0.isBufferSource(W[0]))super(W[0]);else if(W[0]instanceof yW){let Z=new yW(W[0]);super(HN,W[1],x0.serialize(Z))}else{let Z=W[0],V=new yW;tN(V,Z,DI,"ocsp"),tN(V,Z,CI,"caIssuers"),tN(V,Z,TI,"timeStamping"),tN(V,Z,MI,"caRepository");super(HN,W[1],x0.serialize(V))}(X=this.ocsp)!==null&&X!==void 0||(this.ocsp=[]),(G=this.caIssuers)!==null&&G!==void 0||(this.caIssuers=[]),(Y=this.timeStamping)!==null&&Y!==void 0||(this.timeStamping=[]),(J=this.caRepository)!==null&&J!==void 0||(this.caRepository=[])}onInit(W){super.onInit(W),this.ocsp=[],this.caIssuers=[],this.timeStamping=[],this.caRepository=[],x0.parse(W.extnValue,yW).forEach((G)=>{switch(G.accessMethod){case DI:this.ocsp.push(new C4(G.accessLocation));break;case CI:this.caIssuers.push(new C4(G.accessLocation));break;case TI:this.timeStamping.push(new C4(G.accessLocation));break;case MI:this.caRepository.push(new C4(G.accessLocation));break}})}toTextObject(){let W=this.toTextObjectWithoutValue();if(this.ocsp.length)sN(W,"OCSP",this.ocsp);if(this.caIssuers.length)sN(W,"CA Issuers",this.caIssuers);if(this.timeStamping.length)sN(W,"Time Stamping",this.timeStamping);if(this.caRepository.length)sN(W,"CA Repository",this.caRepository);return W}}Hj.NAME="Authority Info Access";function sN(W,X,G){if(G.length===1)W[X]=G[0].toTextObject();else{let Y=new a1("");G.forEach((J,Z)=>{let V=J.toTextObject(),U=`${V[a1.NAME]} ${Z+1}`,Q=Y[U];if(!Array.isArray(Q))Q=[],Y[U]=Q;Q.push(V)}),W[X]=Y}}function tN(W,X,G,Y){let J=X[Y];if(J)(Array.isArray(J)?J:[J]).forEach((V)=>{if(typeof V==="string")V=new C4("url",V);W.push(new P6({accessMethod:G,accessLocation:x0.parse(V.rawData,U1)}))})}class Aj extends U5{constructor(...W){if(y0.isBufferSource(W[0]))super(W[0]);else super(kI,W[1],new y6(W[0]||[]).rawData)}onInit(W){super.onInit(W);let X=x0.parse(W.extnValue,K8);this.names=new y6(X)}toTextObject(){let W=this.toTextObjectWithoutValue(),X=this.names.toTextObject();for(let G in X)W[G]=X[G];return W}}Aj.NAME="Issuer Alternative Name";class AY extends v6{constructor(...W){let X;if(y0.isBufferSource(W[0]))X=y0.toArrayBuffer(W[0]);else{let G=W[0],Y=Array.isArray(W[1])?W[1].map((J)=>y0.toArrayBuffer(J)):[];X=x0.serialize(new K9({type:G,values:Y}))}super(X,K9)}onInit(W){this.type=W.type,this.values=W.values}toTextObject(){let W=this.toTextObjectWithoutValue();return W.Value=this.values.map((X)=>new a1("",{"":X})),W}toTextObjectWithoutValue(){let W=this.toTextObjectEmpty();if(W[a1.NAME]===AY.NAME)W[a1.NAME]=M4.toString(this.type);return W}}AY.NAME="Attribute";class zj extends AY{constructor(...W){var X;if(y0.isBufferSource(W[0]))super(W[0]);else{let G=new uZ({printableString:W[0]});super(lw,[x0.serialize(G)])}(X=this.password)!==null&&X!==void 0||(this.password="")}onInit(W){if(super.onInit(W),this.values[0]){let X=x0.parse(this.values[0],uZ);this.password=X.toString()}}toTextObject(){let W=this.toTextObjectWithoutValue();return W[a1.VALUE]=this.password,W}}zj.NAME="Challenge Password";class Gq extends AY{constructor(...W){var X;if(y0.isBufferSource(W[0]))super(W[0]);else{let G=W[0],Y=new J5;for(let J of G)Y.push(x0.parse(J.rawData,D9));super(bZ,[x0.serialize(Y)])}(X=this.items)!==null&&X!==void 0||(this.items=[])}onInit(W){if(super.onInit(W),this.values[0]){let X=x0.parse(this.values[0],J5);this.items=X.map((G)=>n9.create(x0.serialize(G)))}}toTextObject(){let W=this.toTextObjectWithoutValue(),X=this.items.map((G)=>G.toTextObject());for(let G of X)W[G[a1.NAME]]=G;return W}}Gq.NAME="Extensions";class HV{static register(W,X){this.items.set(W,X)}static create(W){let X=new AY(W),G=this.items.get(X.type);if(G)return new G(W);return X}}HV.items=new Map;var AV="crypto.signatureFormatter";class p3{toAsnSignature(W,X){return y0.toArrayBuffer(X)}toWebSignature(W,X){return y0.toArrayBuffer(X)}}var Wq,Xj=Wq=class{static createPssParams(X,G){let Y=Wq.getHashAlgorithm(X);if(!Y)return null;return new O4({hashAlgorithm:Y,maskGenAlgorithm:new R0({algorithm:F6,parameters:x0.serialize(Y)}),saltLength:G})}static getHashAlgorithm(X){let G=H8.resolve(ZX);if(typeof X==="string")return G.toAsnAlgorithm({name:X});if(typeof X==="object"&&X&&"name"in X)return G.toAsnAlgorithm(X);return null}toAsnAlgorithm(X){switch(X.name.toLowerCase()){case"rsassa-pkcs1-v1_5":if("hash"in X){let G;if(typeof X.hash==="string")G=X.hash;else if(X.hash&&typeof X.hash==="object"&&"name"in X.hash&&typeof X.hash.name==="string")G=X.hash.name.toUpperCase();else throw Error("Cannot get hash algorithm name");switch(G.toLowerCase()){case"sha-1":return new R0({algorithm:eG,parameters:null});case"sha-256":return new R0({algorithm:bN,parameters:null});case"sha-384":return new R0({algorithm:WY,parameters:null});case"sha-512":return new R0({algorithm:XY,parameters:null})}}else return new R0({algorithm:S7,parameters:null});break;case"rsa-pss":if("hash"in X){if(!(("saltLength"in X)&&typeof X.saltLength==="number"))throw Error("Cannot get 'saltLength' from 'alg' argument");let G=Wq.createPssParams(X.hash,X.saltLength);if(!G)throw Error("Cannot create PSS parameters");return new R0({algorithm:$6,parameters:x0.serialize(G)})}else return new R0({algorithm:$6,parameters:null})}return null}toWebAlgorithm(X){switch(X.algorithm){case S7:return{name:"RSASSA-PKCS1-v1_5"};case eG:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-1"}};case bN:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case WY:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}};case XY:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}};case $6:if(X.parameters){let G=x0.parse(X.parameters,O4);return{name:"RSA-PSS",hash:H8.resolve(ZX).toWebAlgorithm(G.hashAlgorithm),saltLength:G.saltLength}}else return{name:"RSA-PSS"}}return null}};Xj=Wq=j([x6()],Xj);H8.registerSingleton(qV,Xj);var Gj=class{toAsnAlgorithm(X){switch(X.name.toLowerCase()){case"sha-1":return new R0({algorithm:iW});case"sha-256":return new R0({algorithm:rW});case"sha-384":return new R0({algorithm:aW});case"sha-512":return new R0({algorithm:sW})}return null}toWebAlgorithm(X){switch(X.algorithm){case iW:return{name:"SHA-1"};case rW:return{name:"SHA-256"};case aW:return{name:"SHA-384"};case sW:return{name:"SHA-512"}}return null}};Gj=j([x6()],Gj);H8.registerSingleton(qV,Gj);class L5{addPadding(W,X){let G=y0.toUint8Array(X),Y=new Uint8Array(W);return Y.set(G,W-G.length),Y.buffer}removePadding(W,X=!1){let G=y0.toUint8Array(W);for(let Y=0;Y<G.length;Y++){if(!G[Y])continue;G=G.slice(Y);break}if(X&&G[0]>127){let Y=new Uint8Array(G.length+1);return Y.set(G,1),Y.buffer}return G.buffer}toAsnSignature(W,X){if(W.name==="ECDSA"){let G=W.namedCurve,Y=L5.namedCurveSize.get(G)||L5.defaultNamedCurveSize,J=new tG,Z=y0.toUint8Array(X);return J.r=this.removePadding(Z.slice(0,Y),!0),J.s=this.removePadding(Z.slice(Y,Y+Y),!0),x0.serialize(J)}return null}toWebSignature(W,X){if(W.name==="ECDSA"){let G=x0.parse(X,tG),Y=W.namedCurve,J=L5.namedCurveSize.get(Y)||L5.defaultNamedCurveSize,Z=this.addPadding(J,this.removePadding(G.r)),V=this.addPadding(J,this.removePadding(G.s));return mM(Z,V)}return null}}L5.namedCurveSize=new Map;L5.defaultNamedCurveSize=32;var ew="1.3.101.110",_3="1.3.101.111",Wj="1.3.101.112",y3="1.3.101.113",Yj=class{toAsnAlgorithm(X){let G=null;switch(X.name.toLowerCase()){case"ed25519":G=Wj;break;case"x25519":G=ew;break;case"eddsa":switch(X.namedCurve.toLowerCase()){case"ed25519":G=Wj;break;case"ed448":G=y3;break}break;case"ecdh-es":switch(X.namedCurve.toLowerCase()){case"x25519":G=ew;break;case"x448":G=_3;break}}if(G)return new R0({algorithm:G});return null}toWebAlgorithm(X){switch(X.algorithm){case Wj:return{name:"Ed25519"};case y3:return{name:"EdDSA",namedCurve:"Ed448"};case ew:return{name:"X25519"};case _3:return{name:"ECDH-ES",namedCurve:"X448"}}return null}};Yj=j([x6()],Yj);H8.registerSingleton(qV,Yj);var pZ,cZ,lZ,dZ,oZ,nZ,iZ,NY;class c3 extends T4{get subjectName(){if(!R1(this,cZ,"f"))j8(this,cZ,new n5(this.asn.certificationRequestInfo.subject),"f");return R1(this,cZ,"f")}get subject(){if(!R1(this,lZ,"f"))j8(this,lZ,this.subjectName.toString(),"f");return R1(this,lZ,"f")}get signatureAlgorithm(){if(!R1(this,dZ,"f")){let W=H8.resolve(ZX);j8(this,dZ,W.toWebAlgorithm(this.asn.signatureAlgorithm),"f")}return R1(this,dZ,"f")}get signature(){if(!R1(this,oZ,"f"))j8(this,oZ,this.asn.signature,"f");return R1(this,oZ,"f")}get publicKey(){if(!R1(this,nZ,"f"))j8(this,nZ,new i5(this.asn.certificationRequestInfo.subjectPKInfo),"f");return R1(this,nZ,"f")}get attributes(){if(!R1(this,iZ,"f"))j8(this,iZ,this.asn.certificationRequestInfo.attributes.map((W)=>HV.create(x0.serialize(W))),"f");return R1(this,iZ,"f")}get extensions(){if(!R1(this,NY,"f")){j8(this,NY,[],"f");let W=this.getAttribute(bZ);if(W instanceof Gq)j8(this,NY,W.items,"f")}return R1(this,NY,"f")}get tbs(){if(!R1(this,pZ,"f"))j8(this,pZ,this.asn.certificationRequestInfoRaw||x0.serialize(this.asn.certificationRequestInfo),"f");return R1(this,pZ,"f")}constructor(W){let X=T4.isAsnEncoded(W)?[W,JX]:[W];super(X[0],X[1]);pZ.set(this,void 0),cZ.set(this,void 0),lZ.set(this,void 0),dZ.set(this,void 0),oZ.set(this,void 0),nZ.set(this,void 0),iZ.set(this,void 0),NY.set(this,void 0),this.tag=T9.CertificateRequestTag}onInit(W){}getAttribute(W){for(let X of this.attributes)if(X.type===W)return X;return null}getAttributes(W){return this.attributes.filter((X)=>X.type===W)}getExtension(W){for(let X of this.extensions)if(X.type===W)return X;return null}getExtensions(W){return this.extensions.filter((X)=>X.type===W)}async verify(W=u8.get()){let X={...this.publicKey.algorithm,...this.signatureAlgorithm},G=await this.publicKey.export(X,["verify"],W),Y=H8.resolveAll(AV).reverse(),J=null;for(let V of Y)if(J=V.toWebSignature(X,this.signature),J)break;if(!J)throw Error("Cannot convert WebCrypto signature value to ASN.1 format");return await W.subtle.verify(this.signatureAlgorithm,G,J,this.tbs)}toTextObject(){let W=this.toTextObjectEmpty(),X=x0.parse(this.rawData,JX),G=X.certificationRequestInfo,Y=new a1("",{Version:`${L7[G.version]} (${G.version})`,Subject:this.subject,"Subject Public Key Info":this.publicKey});if(this.attributes.length){let J=new a1("");for(let Z of this.attributes){let V=Z.toTextObject();J[V[a1.NAME]]=V}Y.Attributes=J}return W.Data=Y,W.Signature=new a1("",{Algorithm:_6.serializeAlgorithm(X.signatureAlgorithm),"":X.signature}),W}}pZ=new WeakMap,cZ=new WeakMap,lZ=new WeakMap,dZ=new WeakMap,oZ=new WeakMap,nZ=new WeakMap,iZ=new WeakMap,NY=new WeakMap;c3.NAME="PKCS#10 Certificate Request";var rZ,aZ,sZ,tZ,eZ,WV,XV,GV,YV,JV,qY,ZV;class Ij extends T4{get publicKey(){if(!R1(this,ZV,"f"))j8(this,ZV,new i5(this.asn.tbsCertificate.subjectPublicKeyInfo),"f");return R1(this,ZV,"f")}get serialNumber(){if(!R1(this,aZ,"f")){let W=this.asn.tbsCertificate,X=new Uint8Array(W.serialNumber);if(X.length>1&&X[0]===0&&X[1]>127)X=X.slice(1);j8(this,aZ,i0.ToHex(X),"f")}return R1(this,aZ,"f")}get subjectName(){if(!R1(this,sZ,"f"))j8(this,sZ,new n5(this.asn.tbsCertificate.subject),"f");return R1(this,sZ,"f")}get subject(){if(!R1(this,tZ,"f"))j8(this,tZ,this.subjectName.toString(),"f");return R1(this,tZ,"f")}get issuerName(){if(!R1(this,eZ,"f"))j8(this,eZ,new n5(this.asn.tbsCertificate.issuer),"f");return R1(this,eZ,"f")}get issuer(){if(!R1(this,WV,"f"))j8(this,WV,this.issuerName.toString(),"f");return R1(this,WV,"f")}get notBefore(){if(!R1(this,XV,"f")){let W=this.asn.tbsCertificate.validity.notBefore.utcTime||this.asn.tbsCertificate.validity.notBefore.generalTime;if(!W)throw Error("Cannot get 'notBefore' value");j8(this,XV,W,"f")}return R1(this,XV,"f")}get notAfter(){if(!R1(this,GV,"f")){let W=this.asn.tbsCertificate.validity.notAfter.utcTime||this.asn.tbsCertificate.validity.notAfter.generalTime;if(!W)throw Error("Cannot get 'notAfter' value");j8(this,GV,W,"f")}return R1(this,GV,"f")}get signatureAlgorithm(){if(!R1(this,YV,"f")){let W=H8.resolve(ZX);j8(this,YV,W.toWebAlgorithm(this.asn.signatureAlgorithm),"f")}return R1(this,YV,"f")}get signature(){if(!R1(this,JV,"f"))j8(this,JV,this.asn.signatureValue,"f");return R1(this,JV,"f")}get extensions(){if(!R1(this,qY,"f")){if(j8(this,qY,[],"f"),this.asn.tbsCertificate.extensions)j8(this,qY,this.asn.tbsCertificate.extensions.map((W)=>n9.create(x0.serialize(W))),"f")}return R1(this,qY,"f")}get tbs(){if(!R1(this,rZ,"f"))j8(this,rZ,this.asn.tbsCertificateRaw||x0.serialize(this.asn.tbsCertificate),"f");return R1(this,rZ,"f")}constructor(W){let X=T4.isAsnEncoded(W)?[W,p5]:[W];super(X[0],X[1]);rZ.set(this,void 0),aZ.set(this,void 0),sZ.set(this,void 0),tZ.set(this,void 0),eZ.set(this,void 0),WV.set(this,void 0),XV.set(this,void 0),GV.set(this,void 0),YV.set(this,void 0),JV.set(this,void 0),qY.set(this,void 0),ZV.set(this,void 0),this.tag=T9.CertificateTag}onInit(W){}getExtension(W){for(let X of this.extensions)if(typeof W==="string"){if(X.type===W)return X}else if(X instanceof W)return X;return null}getExtensions(W){return this.extensions.filter((X)=>{if(typeof W==="string")return X.type===W;else return X instanceof W})}async verify(W={},X=u8.get()){let G,Y,J=W.publicKey;try{if(!J)G={...this.publicKey.algorithm,...this.signatureAlgorithm},Y=await this.publicKey.export(G,["verify"],X);else if("publicKey"in J)G={...J.publicKey.algorithm,...this.signatureAlgorithm},Y=await J.publicKey.export(G,["verify"],X);else if(J instanceof i5)G={...J.algorithm,...this.signatureAlgorithm},Y=await J.export(G,["verify"],X);else if(y0.isBufferSource(J)){let Q=new i5(J);G={...Q.algorithm,...this.signatureAlgorithm},Y=await Q.export(G,["verify"],X)}else G={...J.algorithm,...this.signatureAlgorithm},Y=J}catch{return!1}let Z=H8.resolveAll(AV).reverse(),V=null;for(let Q of Z)if(V=Q.toWebSignature(G,this.signature),V)break;if(!V)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");let U=await X.subtle.verify(this.signatureAlgorithm,Y,V,this.tbs);if(W.signatureOnly)return U;else{let N=(W.date||new Date).getTime();return U&&this.notBefore.getTime()<N&&N<this.notAfter.getTime()}}async getThumbprint(...W){let X,G="SHA-1";if(W[0])if(!W[0].subtle)G=W[0]||G,X=W[1];else X=W[0];return X!==null&&X!==void 0||(X=u8.get()),await X.subtle.digest(G,this.rawData)}async isSelfSigned(W=u8.get()){return this.subject===this.issuer&&await this.verify({signatureOnly:!0},W)}toTextObject(){let W=this.toTextObjectEmpty(),X=x0.parse(this.rawData,p5),G=X.tbsCertificate,Y=new a1("",{Version:`${L7[G.version]} (${G.version})`,"Serial Number":G.serialNumber,"Signature Algorithm":_6.serializeAlgorithm(G.signature),Issuer:this.issuer,Validity:new a1("",{"Not Before":G.validity.notBefore.getTime(),"Not After":G.validity.notAfter.getTime()}),Subject:this.subject,"Subject Public Key Info":this.publicKey});if(G.issuerUniqueID)Y["Issuer Unique ID"]=G.issuerUniqueID;if(G.subjectUniqueID)Y["Subject Unique ID"]=G.subjectUniqueID;if(this.extensions.length){let J=new a1("");for(let Z of this.extensions){let V=Z.toTextObject();J[V[a1.NAME]]=V}Y.Extensions=J}return W.Data=Y,W.Signature=new a1("",{Algorithm:_6.serializeAlgorithm(X.signatureAlgorithm),"":X.signatureValue}),W}}rZ=new WeakMap,aZ=new WeakMap,sZ=new WeakMap,tZ=new WeakMap,eZ=new WeakMap,WV=new WeakMap,XV=new WeakMap,GV=new WeakMap,YV=new WeakMap,JV=new WeakMap,qY=new WeakMap,ZV=new WeakMap;Ij.NAME="Certificate";function Mp(W,X=u8.get()){let G=y0.toUint8Array(i0.FromHex(W||"")),Y=G&&G.length&&G.some((Z)=>Z>0)?new Uint8Array(G):void 0;if(!Y)Y=X.getRandomValues(new Uint8Array(16));let J=0;while(J<Y.length-1&&Y[J]===0)J++;if(Y=Y.slice(J),Y[0]>127){let Z=new Uint8Array(Y.length+1);Z[0]=0,Z.set(Y,1),Y=Z}return Y.buffer}class wj{static async createSelfSigned(W,X=u8.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},X)}static async create(W,X=u8.get()){var G;let Y;if(W.publicKey instanceof i5)Y=W.publicKey.rawData;else if("publicKey"in W.publicKey)Y=W.publicKey.publicKey.rawData;else if(y0.isBufferSource(W.publicKey))Y=W.publicKey;else Y=await X.subtle.exportKey("spki",W.publicKey);let J=Mp(W.serialNumber,X),Z=W.notBefore||new Date,V=W.notAfter||new Date(Z.getTime()+31536000000),U=new p5({tbsCertificate:new C9({version:L7.v3,serialNumber:J,validity:new L6({notBefore:Z,notAfter:V}),extensions:new J5(((G=W.extensions)===null||G===void 0?void 0:G.map((O)=>x0.parse(O.rawData,D9)))||[]),subjectPublicKeyInfo:x0.parse(Y,O9)})});if(W.subject){let O=W.subject instanceof n5?W.subject:new n5(W.subject);U.tbsCertificate.subject=x0.parse(O.toArrayBuffer(),V8)}if(W.issuer){let O=W.issuer instanceof n5?W.issuer:new n5(W.issuer);U.tbsCertificate.issuer=x0.parse(O.toArrayBuffer(),V8)}let Q={hash:"SHA-256"},N="signingKey"in W?{...Q,...W.signingAlgorithm,...W.signingKey.algorithm}:{...Q,...W.signingAlgorithm},q=H8.resolve(ZX);U.tbsCertificate.signature=U.signatureAlgorithm=q.toAsnAlgorithm(N);let A=x0.serialize(U.tbsCertificate),H="signingKey"in W?await X.subtle.sign(N,W.signingKey,A):W.signature,I=H8.resolveAll(AV).reverse(),w=null;for(let O of I)if(w=O.toAsnSignature(N,H),w)break;if(!w)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");return U.signatureValue=w,new Ij(x0.serialize(U))}}var Pp,Rp,Lp,Bp,Ep,v3;(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"})(v3||(v3={}));Pp=new WeakMap,Rp=new WeakMap,Lp=new WeakMap,Bp=new WeakMap,Ep=new WeakMap;var $p,Fp,Sp,xp,kp,_p,yp;$p=new WeakMap,Fp=new WeakMap,Sp=new WeakMap,xp=new WeakMap,kp=new WeakMap,_p=new WeakMap,yp=new WeakMap;n9.register(zN,Zj);n9.register(TN,Vj);n9.register(MN,Uj);n9.register(mI,Xq);n9.register(AN,NV);n9.register(hI,Qj);n9.register(DN,qj);n9.register(HN,Hj);n9.register(kI,Aj);HV.register(lw,zj);HV.register(bZ,Gq);H8.registerSingleton(AV,p3);H8.registerSingleton(AV,L5);L5.namedCurveSize.set("P-256",32);L5.namedCurveSize.set("K-256",32);L5.namedCurveSize.set("P-384",48);L5.namedCurveSize.set("P-521",66);var uY=m1(D8(),1),gS=m1(D8(),1),uS=m1(yQ(),1);import{createHash as ed,createHmac as Wo}from"crypto";import*as P4 from"crypto";var UX=P4&&typeof P4==="object"&&"webcrypto"in P4?P4.webcrypto:P4&&typeof P4==="object"&&("randomBytes"in P4)?P4:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function QX(W){return W instanceof Uint8Array||ArrayBuffer.isView(W)&&W.constructor.name==="Uint8Array"}function DV(W){if(!Number.isSafeInteger(W)||W<0)throw Error("positive integer expected, got "+W)}function r5(W,...X){if(!QX(W))throw Error("Uint8Array expected");if(X.length>0&&!X.includes(W.length))throw Error("Uint8Array expected of length "+X+", got length="+W.length)}function qq(W){if(typeof W!=="function"||typeof W.create!=="function")throw Error("Hash should be wrapped by utils.createHasher");DV(W.outputLen),DV(W.blockLen)}function jY(W,X=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(X&&W.finished)throw Error("Hash#digest() has already been called")}function ME(W,X){r5(W);let G=X.outputLen;if(W.length<G)throw Error("digestInto() expects output buffer of length at least "+G)}function L4(...W){for(let X=0;X<W.length;X++)W[X].fill(0)}function Hq(W){return new DataView(W.buffer,W.byteOffset,W.byteLength)}function a5(W,X){return W<<32-X|W>>>X}var PE=(()=>typeof Uint8Array.from([]).toHex==="function"&&typeof Uint8Array.fromHex==="function")(),Nl=Array.from({length:256},(W,X)=>X.toString(16).padStart(2,"0"));function B4(W){if(r5(W),PE)return W.toHex();let X="";for(let G=0;G<W.length;G++)X+=Nl[W[G]];return X}var R4={_0:48,_9:57,A:65,F:70,a:97,f:102};function TE(W){if(W>=R4._0&&W<=R4._9)return W-R4._0;if(W>=R4.A&&W<=R4.F)return W-(R4.A-10);if(W>=R4.a&&W<=R4.f)return W-(R4.a-10);return}function NX(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);if(PE)return Uint8Array.fromHex(W);let X=W.length,G=X/2;if(X%2)throw Error("hex string expected, got unpadded hex of length "+X);let Y=new Uint8Array(G);for(let J=0,Z=0;J<G;J++,Z+=2){let V=TE(W.charCodeAt(Z)),U=TE(W.charCodeAt(Z+1));if(V===void 0||U===void 0){let Q=W[Z]+W[Z+1];throw Error('hex string expected, got non-hex character "'+Q+'" at index '+Z)}Y[J]=V*16+U}return Y}function Aq(W){if(typeof W!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(W))}function CV(W){if(typeof W==="string")W=Aq(W);return r5(W),W}function r9(...W){let X=0;for(let Y=0;Y<W.length;Y++){let J=W[Y];r5(J),X+=J.length}let G=new Uint8Array(X);for(let Y=0,J=0;Y<W.length;Y++){let Z=W[Y];G.set(Z,J),J+=Z.length}return G}class TV{}function zq(W){let X=(Y)=>W().update(CV(Y)).digest(),G=W();return X.outputLen=G.outputLen,X.blockLen=G.blockLen,X.create=()=>W(),X}function qX(W=32){if(UX&&typeof UX.getRandomValues==="function")return UX.getRandomValues(new Uint8Array(W));if(UX&&typeof UX.randomBytes==="function")return Uint8Array.from(UX.randomBytes(W));throw Error("crypto.getRandomValues must be defined")}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var $j=BigInt(0),Ej=BigInt(1);function MV(W,X=""){if(typeof W!=="boolean"){let G=X&&`"${X}"`;throw Error(G+"expected boolean, got type="+typeof W)}return W}function f6(W,X,G=""){let Y=QX(W),J=W?.length,Z=X!==void 0;if(!Y||Z&&J!==X){let V=G&&`"${G}" `,U=Z?` of length ${X}`:"",Q=Y?`length=${J}`:`type=${typeof W}`;throw Error(V+"expected Uint8Array"+U+", got "+Q)}return W}function PV(W){let X=W.toString(16);return X.length&1?"0"+X:X}function RE(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return W===""?$j:BigInt("0x"+W)}function E4(W){return RE(B4(W))}function Fj(W){return r5(W),RE(B4(Uint8Array.from(W).reverse()))}function KY(W,X){return NX(W.toString(16).padStart(X*2,"0"))}function Sj(W,X){return KY(W,X).reverse()}function F8(W,X,G){let Y;if(typeof X==="string")try{Y=NX(X)}catch(Z){throw Error(W+" must be hex string or Uint8Array, cause: "+Z)}else if(QX(X))Y=Uint8Array.from(X);else throw Error(W+" must be hex string or Uint8Array");let J=Y.length;if(typeof G==="number"&&J!==G)throw Error(W+" of length "+G+" expected, got "+J);return Y}var Bj=(W)=>typeof W==="bigint"&&$j<=W;function RV(W,X,G){return Bj(W)&&Bj(X)&&Bj(G)&&X<=W&&W<G}function LE(W,X,G,Y){if(!RV(X,G,Y))throw Error("expected valid "+W+": "+G+" <= n < "+Y+", got "+X)}function Iq(W){let X;for(X=0;W>$j;W>>=Ej,X+=1);return X}var p6=(W)=>(Ej<<BigInt(W))-Ej;function BE(W,X,G){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof X!=="number"||X<2)throw Error("qByteLen must be a number");if(typeof G!=="function")throw Error("hmacFn must be a function");let Y=(I)=>new Uint8Array(I),J=(I)=>Uint8Array.of(I),Z=Y(W),V=Y(W),U=0,Q=()=>{Z.fill(1),V.fill(0),U=0},N=(...I)=>G(V,Z,...I),q=(I=Y(0))=>{if(V=N(J(0),I),Z=N(),I.length===0)return;V=N(J(1),I),Z=N()},A=()=>{if(U++>=1000)throw Error("drbg: tried 1000 values");let I=0,w=[];while(I<X){Z=N();let O=Z.slice();w.push(O),I+=Z.length}return r9(...w)};return(I,w)=>{Q(),q(I);let O=void 0;while(!(O=w(A())))q();return Q(),O}}function LV(W,X,G={}){if(!W||typeof W!=="object")throw Error("expected valid options object");function Y(J,Z,V){let U=W[J];if(V&&U===void 0)return;let Q=typeof U;if(Q!==Z||U===null)throw Error(`param "${J}" is invalid: expected ${Z}, got ${Q}`)}Object.entries(X).forEach(([J,Z])=>Y(J,Z,!1)),Object.entries(G).forEach(([J,Z])=>Y(J,Z,!0))}function xj(W){let X=new WeakMap;return(G,...Y)=>{let J=X.get(G);if(J!==void 0)return J;let Z=W(G,...Y);return X.set(G,Z),Z}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var g9=BigInt(0),M9=BigInt(1),HX=BigInt(2),FE=BigInt(3),SE=BigInt(4),xE=BigInt(5),ql=BigInt(7),kE=BigInt(8),Hl=BigInt(9),_E=BigInt(16);function Q5(W,X){let G=W%X;return G>=g9?G:X+G}function N5(W,X,G){let Y=W;while(X-- >g9)Y*=Y,Y%=G;return Y}function EE(W,X){if(W===g9)throw Error("invert: expected non-zero number");if(X<=g9)throw Error("invert: expected positive modulus, got "+X);let G=Q5(W,X),Y=X,J=g9,Z=M9,V=M9,U=g9;while(G!==g9){let N=Y/G,q=Y%G,A=J-V*N,H=Z-U*N;Y=G,G=q,J=V,Z=U,V=A,U=H}if(Y!==M9)throw Error("invert: does not exist");return Q5(J,X)}function kj(W,X,G){if(!W.eql(W.sqr(X),G))throw Error("Cannot find square root")}function yE(W,X){let G=(W.ORDER+M9)/SE,Y=W.pow(X,G);return kj(W,Y,X),Y}function Al(W,X){let G=(W.ORDER-xE)/kE,Y=W.mul(X,HX),J=W.pow(Y,G),Z=W.mul(X,J),V=W.mul(W.mul(Z,HX),J),U=W.mul(Z,W.sub(V,W.ONE));return kj(W,U,X),U}function zl(W){let X=E5(W),G=vE(W),Y=G(X,X.neg(X.ONE)),J=G(X,Y),Z=G(X,X.neg(Y)),V=(W+ql)/_E;return(U,Q)=>{let N=U.pow(Q,V),q=U.mul(N,Y),A=U.mul(N,J),H=U.mul(N,Z),I=U.eql(U.sqr(q),Q),w=U.eql(U.sqr(A),Q);N=U.cmov(N,q,I),q=U.cmov(H,A,w);let O=U.eql(U.sqr(q),Q),T=U.cmov(N,q,O);return kj(U,T,Q),T}}function vE(W){if(W<FE)throw Error("sqrt is not defined for small field");let X=W-M9,G=0;while(X%HX===g9)X/=HX,G++;let Y=HX,J=E5(W);while($E(J,Y)===1)if(Y++>1000)throw Error("Cannot find square root: probably non-prime P");if(G===1)return yE;let Z=J.pow(Y,X),V=(X+M9)/HX;return function(Q,N){if(Q.is0(N))return N;if($E(Q,N)!==1)throw Error("Cannot find square root");let q=G,A=Q.mul(Q.ONE,Z),H=Q.pow(N,X),I=Q.pow(N,V);while(!Q.eql(H,Q.ONE)){if(Q.is0(H))return Q.ZERO;let w=1,O=Q.sqr(H);while(!Q.eql(O,Q.ONE))if(w++,O=Q.sqr(O),w===q)throw Error("Cannot find square root");let T=M9<<BigInt(q-w-1),x=Q.pow(A,T);q=w,A=Q.sqr(x),H=Q.mul(H,A),I=Q.mul(I,x)}return I}}function Il(W){if(W%SE===FE)return yE;if(W%kE===xE)return Al;if(W%_E===Hl)return zl(W);return vE(W)}var wl=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function _j(W){let X={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},G=wl.reduce((Y,J)=>{return Y[J]="function",Y},X);return LV(W,G),W}function jl(W,X,G){if(G<g9)throw Error("invalid exponent, negatives unsupported");if(G===g9)return W.ONE;if(G===M9)return X;let Y=W.ONE,J=X;while(G>g9){if(G&M9)Y=W.mul(Y,J);J=W.sqr(J),G>>=M9}return Y}function wq(W,X,G=!1){let Y=Array(X.length).fill(G?W.ZERO:void 0),J=X.reduce((V,U,Q)=>{if(W.is0(U))return V;return Y[Q]=V,W.mul(V,U)},W.ONE),Z=W.inv(J);return X.reduceRight((V,U,Q)=>{if(W.is0(U))return V;return Y[Q]=W.mul(V,Y[Q]),W.mul(V,U)},Z),Y}function $E(W,X){let G=(W.ORDER-M9)/HX,Y=W.pow(X,G),J=W.eql(Y,W.ONE),Z=W.eql(Y,W.ZERO),V=W.eql(Y,W.neg(W.ONE));if(!J&&!Z&&!V)throw Error("invalid Legendre symbol result");return J?1:Z?0:-1}function jq(W,X){if(X!==void 0)DV(X);let G=X!==void 0?X:W.toString(2).length,Y=Math.ceil(G/8);return{nBitLength:G,nByteLength:Y}}function E5(W,X,G=!1,Y={}){if(W<=g9)throw Error("invalid field: expected ORDER > 0, got "+W);let J=void 0,Z=void 0,V=!1,U=void 0;if(typeof X==="object"&&X!=null){if(Y.sqrt||G)throw Error("cannot specify opts in two arguments");let H=X;if(H.BITS)J=H.BITS;if(H.sqrt)Z=H.sqrt;if(typeof H.isLE==="boolean")G=H.isLE;if(typeof H.modFromBytes==="boolean")V=H.modFromBytes;U=H.allowedLengths}else{if(typeof X==="number")J=X;if(Y.sqrt)Z=Y.sqrt}let{nBitLength:Q,nByteLength:N}=jq(W,J);if(N>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let q,A=Object.freeze({ORDER:W,isLE:G,BITS:Q,BYTES:N,MASK:p6(Q),ZERO:g9,ONE:M9,allowedLengths:U,create:(H)=>Q5(H,W),isValid:(H)=>{if(typeof H!=="bigint")throw Error("invalid field element: expected bigint, got "+typeof H);return g9<=H&&H<W},is0:(H)=>H===g9,isValidNot0:(H)=>!A.is0(H)&&A.isValid(H),isOdd:(H)=>(H&M9)===M9,neg:(H)=>Q5(-H,W),eql:(H,I)=>H===I,sqr:(H)=>Q5(H*H,W),add:(H,I)=>Q5(H+I,W),sub:(H,I)=>Q5(H-I,W),mul:(H,I)=>Q5(H*I,W),pow:(H,I)=>jl(A,H,I),div:(H,I)=>Q5(H*EE(I,W),W),sqrN:(H)=>H*H,addN:(H,I)=>H+I,subN:(H,I)=>H-I,mulN:(H,I)=>H*I,inv:(H)=>EE(H,W),sqrt:Z||((H)=>{if(!q)q=Il(W);return q(A,H)}),toBytes:(H)=>G?Sj(H,N):KY(H,N),fromBytes:(H,I=!0)=>{if(U){if(!U.includes(H.length)||H.length>N)throw Error("Field.fromBytes: expected "+U+" bytes, got "+H.length);let O=new Uint8Array(N);O.set(H,G?0:O.length-H.length),H=O}if(H.length!==N)throw Error("Field.fromBytes: expected "+N+" bytes, got "+H.length);let w=G?Fj(H):E4(H);if(V)w=Q5(w,W);if(!I){if(!A.isValid(w))throw Error("invalid field element: outside of range 0..ORDER")}return w},invertBatch:(H)=>wq(A,H),cmov:(H,I,w)=>w?I:H});return Object.freeze(A)}function gE(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let X=W.toString(2).length;return Math.ceil(X/8)}function yj(W){let X=gE(W);return X+Math.ceil(X/2)}function Kq(W,X,G=!1){let Y=W.length,J=gE(X),Z=yj(X);if(Y<16||Y<Z||Y>1024)throw Error("expected "+Z+"-1024 bytes of input, got "+Y);let V=G?Fj(W):E4(W),U=Q5(V,X-M9)+M9;return G?Sj(U,J):KY(U,J)}function Kl(W,X,G,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(X,G,Y);let J=BigInt(32),Z=BigInt(4294967295),V=Number(G>>J&Z),U=Number(G&Z),Q=Y?4:0,N=Y?0:4;W.setUint32(X+Q,V,Y),W.setUint32(X+N,U,Y)}function uE(W,X,G){return W&X^~W&G}function hE(W,X,G){return W&X^W&G^X&G}class Oq extends TV{constructor(W,X,G,Y){super();this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=W,this.outputLen=X,this.padOffset=G,this.isLE=Y,this.buffer=new Uint8Array(W),this.view=Hq(this.buffer)}update(W){jY(this),W=CV(W),r5(W);let{view:X,buffer:G,blockLen:Y}=this,J=W.length;for(let Z=0;Z<J;){let V=Math.min(Y-this.pos,J-Z);if(V===Y){let U=Hq(W);for(;Y<=J-Z;Z+=Y)this.process(U,Z);continue}if(G.set(W.subarray(Z,Z+V),this.pos),this.pos+=V,Z+=V,this.pos===Y)this.process(X,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){jY(this),ME(W,this),this.finished=!0;let{buffer:X,view:G,blockLen:Y,isLE:J}=this,{pos:Z}=this;if(X[Z++]=128,L4(this.buffer.subarray(Z)),this.padOffset>Y-Z)this.process(G,0),Z=0;for(let q=Z;q<Y;q++)X[q]=0;Kl(G,Y-8,BigInt(this.length*8),J),this.process(G,0);let V=Hq(W),U=this.outputLen;if(U%4)throw Error("_sha2: outputLen should be aligned to 32bit");let Q=U/4,N=this.get();if(Q>N.length)throw Error("_sha2: outputLen bigger than state");for(let q=0;q<Q;q++)V.setUint32(4*q,N[q],J)}digest(){let{buffer:W,outputLen:X}=this;this.digestInto(W);let G=W.slice(0,X);return this.destroy(),G}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:X,buffer:G,length:Y,finished:J,destroyed:Z,pos:V}=this;if(W.destroyed=Z,W.finished=J,W.length=Y,W.pos=V,Y%X)W.buffer.set(G);return W}clone(){return this._cloneInto()}}var $4=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var J9=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),Z9=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var Dq=BigInt(4294967295),bE=BigInt(32);function Ol(W,X=!1){if(X)return{h:Number(W&Dq),l:Number(W>>bE&Dq)};return{h:Number(W>>bE&Dq)|0,l:Number(W&Dq)|0}}function mE(W,X=!1){let G=W.length,Y=new Uint32Array(G),J=new Uint32Array(G);for(let Z=0;Z<G;Z++){let{h:V,l:U}=Ol(W[Z],X);[Y[Z],J[Z]]=[V,U]}return[Y,J]}var vj=(W,X,G)=>W>>>G,gj=(W,X,G)=>W<<32-G|X>>>G,AX=(W,X,G)=>W>>>G|X<<32-G,zX=(W,X,G)=>W<<32-G|X>>>G,BV=(W,X,G)=>W<<64-G|X>>>G-32,EV=(W,X,G)=>W>>>G-32|X<<64-G;function _7(W,X,G,Y){let J=(X>>>0)+(Y>>>0);return{h:W+G+(J/4294967296|0)|0,l:J|0}}var fE=(W,X,G)=>(W>>>0)+(X>>>0)+(G>>>0),pE=(W,X,G,Y)=>X+G+Y+(W/4294967296|0)|0,cE=(W,X,G,Y)=>(W>>>0)+(X>>>0)+(G>>>0)+(Y>>>0),lE=(W,X,G,Y,J)=>X+G+Y+J+(W/4294967296|0)|0,dE=(W,X,G,Y,J)=>(W>>>0)+(X>>>0)+(G>>>0)+(Y>>>0)+(J>>>0),oE=(W,X,G,Y,J,Z)=>X+G+Y+J+Z+(W/4294967296|0)|0;var Cl=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 nE extends Oq{constructor(W=32){super(64,W,8,!1);this.A=$4[0]|0,this.B=$4[1]|0,this.C=$4[2]|0,this.D=$4[3]|0,this.E=$4[4]|0,this.F=$4[5]|0,this.G=$4[6]|0,this.H=$4[7]|0}get(){let{A:W,B:X,C:G,D:Y,E:J,F:Z,G:V,H:U}=this;return[W,X,G,Y,J,Z,V,U]}set(W,X,G,Y,J,Z,V,U){this.A=W|0,this.B=X|0,this.C=G|0,this.D=Y|0,this.E=J|0,this.F=Z|0,this.G=V|0,this.H=U|0}process(W,X){for(let q=0;q<16;q++,X+=4)c6[q]=W.getUint32(X,!1);for(let q=16;q<64;q++){let A=c6[q-15],H=c6[q-2],I=a5(A,7)^a5(A,18)^A>>>3,w=a5(H,17)^a5(H,19)^H>>>10;c6[q]=w+c6[q-7]+I+c6[q-16]|0}let{A:G,B:Y,C:J,D:Z,E:V,F:U,G:Q,H:N}=this;for(let q=0;q<64;q++){let A=a5(V,6)^a5(V,11)^a5(V,25),H=N+A+uE(V,U,Q)+Cl[q]+c6[q]|0,w=(a5(G,2)^a5(G,13)^a5(G,22))+hE(G,Y,J)|0;N=Q,Q=U,U=V,V=Z+H|0,Z=J,J=Y,Y=G,G=H+w|0}G=G+this.A|0,Y=Y+this.B|0,J=J+this.C|0,Z=Z+this.D|0,V=V+this.E|0,U=U+this.F|0,Q=Q+this.G|0,N=N+this.H|0,this.set(G,Y,J,Z,V,U,Q,N)}roundClean(){L4(c6)}destroy(){this.set(0,0,0,0,0,0,0,0),L4(this.buffer)}}var iE=(()=>mE(["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))))(),Tl=(()=>iE[0])(),Ml=(()=>iE[1])(),l6=new Uint32Array(80),d6=new Uint32Array(80);class uj extends Oq{constructor(W=64){super(128,W,16,!1);this.Ah=Z9[0]|0,this.Al=Z9[1]|0,this.Bh=Z9[2]|0,this.Bl=Z9[3]|0,this.Ch=Z9[4]|0,this.Cl=Z9[5]|0,this.Dh=Z9[6]|0,this.Dl=Z9[7]|0,this.Eh=Z9[8]|0,this.El=Z9[9]|0,this.Fh=Z9[10]|0,this.Fl=Z9[11]|0,this.Gh=Z9[12]|0,this.Gl=Z9[13]|0,this.Hh=Z9[14]|0,this.Hl=Z9[15]|0}get(){let{Ah:W,Al:X,Bh:G,Bl:Y,Ch:J,Cl:Z,Dh:V,Dl:U,Eh:Q,El:N,Fh:q,Fl:A,Gh:H,Gl:I,Hh:w,Hl:O}=this;return[W,X,G,Y,J,Z,V,U,Q,N,q,A,H,I,w,O]}set(W,X,G,Y,J,Z,V,U,Q,N,q,A,H,I,w,O){this.Ah=W|0,this.Al=X|0,this.Bh=G|0,this.Bl=Y|0,this.Ch=J|0,this.Cl=Z|0,this.Dh=V|0,this.Dl=U|0,this.Eh=Q|0,this.El=N|0,this.Fh=q|0,this.Fl=A|0,this.Gh=H|0,this.Gl=I|0,this.Hh=w|0,this.Hl=O|0}process(W,X){for(let u=0;u<16;u++,X+=4)l6[u]=W.getUint32(X),d6[u]=W.getUint32(X+=4);for(let u=16;u<80;u++){let $=l6[u-15]|0,S=d6[u-15]|0,h=AX($,S,1)^AX($,S,8)^vj($,S,7),l=zX($,S,1)^zX($,S,8)^gj($,S,7),p=l6[u-2]|0,t=d6[u-2]|0,_=AX(p,t,19)^BV(p,t,61)^vj(p,t,6),e=zX(p,t,19)^EV(p,t,61)^gj(p,t,6),H0=cE(l,e,d6[u-7],d6[u-16]),g=lE(H0,h,_,l6[u-7],l6[u-16]);l6[u]=g|0,d6[u]=H0|0}let{Ah:G,Al:Y,Bh:J,Bl:Z,Ch:V,Cl:U,Dh:Q,Dl:N,Eh:q,El:A,Fh:H,Fl:I,Gh:w,Gl:O,Hh:T,Hl:x}=this;for(let u=0;u<80;u++){let $=AX(q,A,14)^AX(q,A,18)^BV(q,A,41),S=zX(q,A,14)^zX(q,A,18)^EV(q,A,41),h=q&H^~q&w,l=A&I^~A&O,p=dE(x,S,l,Ml[u],d6[u]),t=oE(p,T,$,h,Tl[u],l6[u]),_=p|0,e=AX(G,Y,28)^BV(G,Y,34)^BV(G,Y,39),H0=zX(G,Y,28)^EV(G,Y,34)^EV(G,Y,39),g=G&J^G&V^J&V,d=Y&Z^Y&U^Z&U;T=w|0,x=O|0,w=H|0,O=I|0,H=q|0,I=A|0,{h:q,l:A}=_7(Q|0,N|0,t|0,_|0),Q=V|0,N=U|0,V=J|0,U=Z|0,J=G|0,Z=Y|0;let P=fE(_,H0,d);G=pE(P,t,e,g),Y=P|0}({h:G,l:Y}=_7(this.Ah|0,this.Al|0,G|0,Y|0)),{h:J,l:Z}=_7(this.Bh|0,this.Bl|0,J|0,Z|0),{h:V,l:U}=_7(this.Ch|0,this.Cl|0,V|0,U|0),{h:Q,l:N}=_7(this.Dh|0,this.Dl|0,Q|0,N|0),{h:q,l:A}=_7(this.Eh|0,this.El|0,q|0,A|0),{h:H,l:I}=_7(this.Fh|0,this.Fl|0,H|0,I|0),{h:w,l:O}=_7(this.Gh|0,this.Gl|0,w|0,O|0),{h:T,l:x}=_7(this.Hh|0,this.Hl|0,T|0,x|0),this.set(G,Y,J,Z,V,U,Q,N,q,A,H,I,w,O,T,x)}roundClean(){L4(l6,d6)}destroy(){L4(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class rE extends uj{constructor(){super(48);this.Ah=J9[0]|0,this.Al=J9[1]|0,this.Bh=J9[2]|0,this.Bl=J9[3]|0,this.Ch=J9[4]|0,this.Cl=J9[5]|0,this.Dh=J9[6]|0,this.Dl=J9[7]|0,this.Eh=J9[8]|0,this.El=J9[9]|0,this.Fh=J9[10]|0,this.Fl=J9[11]|0,this.Gh=J9[12]|0,this.Gl=J9[13]|0,this.Hh=J9[14]|0,this.Hl=J9[15]|0}}var OY=zq(()=>new nE);var aE=zq(()=>new uj),sE=zq(()=>new rE);class hj extends TV{constructor(W,X){super();this.finished=!1,this.destroyed=!1,qq(W);let G=CV(X);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,J=new Uint8Array(Y);J.set(G.length>Y?W.create().update(G).digest():G);for(let Z=0;Z<J.length;Z++)J[Z]^=54;this.iHash.update(J),this.oHash=W.create();for(let Z=0;Z<J.length;Z++)J[Z]^=106;this.oHash.update(J),L4(J)}update(W){return jY(this),this.iHash.update(W),this}digestInto(W){jY(this),r5(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:X,iHash:G,finished:Y,destroyed:J,blockLen:Z,outputLen:V}=this;return W=W,W.finished=Y,W.destroyed=J,W.blockLen=Z,W.outputLen=V,W.oHash=X._cloneInto(W.oHash),W.iHash=G._cloneInto(W.iHash),W}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var bj=(W,X,G)=>new hj(W,X).update(G).digest();bj.create=(W,X)=>new hj(W,X);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var DY=BigInt(0),IX=BigInt(1);function $V(W,X){let G=X.negate();return W?G:X}function Cq(W,X){let G=wq(W.Fp,X.map((Y)=>Y.Z));return X.map((Y,J)=>W.fromAffine(Y.toAffine(G[J])))}function X$(W,X){if(!Number.isSafeInteger(W)||W<=0||W>X)throw Error("invalid window size, expected [1.."+X+"], got W="+W)}function mj(W,X){X$(W,X);let G=Math.ceil(X/W)+1,Y=2**(W-1),J=2**W,Z=p6(W),V=BigInt(W);return{windows:G,windowSize:Y,mask:Z,maxNumber:J,shiftBy:V}}function tE(W,X,G){let{windowSize:Y,mask:J,maxNumber:Z,shiftBy:V}=G,U=Number(W&J),Q=W>>V;if(U>Y)U-=Z,Q+=IX;let N=X*Y,q=N+Math.abs(U)-1,A=U===0,H=U<0,I=X%2!==0;return{nextN:Q,offset:q,isZero:A,isNeg:H,isNegF:I,offsetF:N}}function Pl(W,X){if(!Array.isArray(W))throw Error("array expected");W.forEach((G,Y)=>{if(!(G instanceof X))throw Error("invalid point at index "+Y)})}function Rl(W,X){if(!Array.isArray(W))throw Error("array of scalars expected");W.forEach((G,Y)=>{if(!X.isValid(G))throw Error("invalid scalar at index "+Y)})}var fj=new WeakMap,G$=new WeakMap;function pj(W){return G$.get(W)||1}function eE(W){if(W!==DY)throw Error("invalid wNAF")}class cj{constructor(W,X){this.BASE=W.BASE,this.ZERO=W.ZERO,this.Fn=W.Fn,this.bits=X}_unsafeLadder(W,X,G=this.ZERO){let Y=W;while(X>DY){if(X&IX)G=G.add(Y);Y=Y.double(),X>>=IX}return G}precomputeWindow(W,X){let{windows:G,windowSize:Y}=mj(X,this.bits),J=[],Z=W,V=Z;for(let U=0;U<G;U++){V=Z,J.push(V);for(let Q=1;Q<Y;Q++)V=V.add(Z),J.push(V);Z=V.double()}return J}wNAF(W,X,G){if(!this.Fn.isValid(G))throw Error("invalid scalar");let Y=this.ZERO,J=this.BASE,Z=mj(W,this.bits);for(let V=0;V<Z.windows;V++){let{nextN:U,offset:Q,isZero:N,isNeg:q,isNegF:A,offsetF:H}=tE(G,V,Z);if(G=U,N)J=J.add($V(A,X[H]));else Y=Y.add($V(q,X[Q]))}return eE(G),{p:Y,f:J}}wNAFUnsafe(W,X,G,Y=this.ZERO){let J=mj(W,this.bits);for(let Z=0;Z<J.windows;Z++){if(G===DY)break;let{nextN:V,offset:U,isZero:Q,isNeg:N}=tE(G,Z,J);if(G=V,Q)continue;else{let q=X[U];Y=Y.add(N?q.negate():q)}}return eE(G),Y}getPrecomputes(W,X,G){let Y=fj.get(X);if(!Y){if(Y=this.precomputeWindow(X,W),W!==1){if(typeof G==="function")Y=G(Y);fj.set(X,Y)}}return Y}cached(W,X,G){let Y=pj(W);return this.wNAF(Y,this.getPrecomputes(Y,W,G),X)}unsafe(W,X,G,Y){let J=pj(W);if(J===1)return this._unsafeLadder(W,X,Y);return this.wNAFUnsafe(J,this.getPrecomputes(J,W,G),X,Y)}createCache(W,X){X$(X,this.bits),G$.set(W,X),fj.delete(W)}hasCache(W){return pj(W)!==1}}function Y$(W,X,G,Y){let J=X,Z=W.ZERO,V=W.ZERO;while(G>DY||Y>DY){if(G&IX)Z=Z.add(J);if(Y&IX)V=V.add(J);J=J.double(),G>>=IX,Y>>=IX}return{p1:Z,p2:V}}function J$(W,X,G,Y){Pl(G,W),Rl(Y,X);let J=G.length,Z=Y.length;if(J!==Z)throw Error("arrays of points and scalars must have equal length");let V=W.ZERO,U=Iq(BigInt(J)),Q=1;if(U>12)Q=U-3;else if(U>4)Q=U-2;else if(U>0)Q=2;let N=p6(Q),q=Array(Number(N)+1).fill(V),A=Math.floor((X.BITS-1)/Q)*Q,H=V;for(let I=A;I>=0;I-=Q){q.fill(V);for(let O=0;O<Z;O++){let T=Y[O],x=Number(T>>BigInt(I)&N);q[x]=q[x].add(G[O])}let w=V;for(let O=q.length-1,T=V;O>0;O--)T=T.add(q[O]),w=w.add(T);if(H=H.add(w),I!==0)for(let O=0;O<Q;O++)H=H.double()}return H}function W$(W,X,G){if(X){if(X.ORDER!==W)throw Error("Field.ORDER must match order: Fp == p, Fn == n");return _j(X),X}else return E5(W,{isLE:G})}function Z$(W,X,G={},Y){if(Y===void 0)Y=W==="edwards";if(!X||typeof X!=="object")throw Error(`expected valid ${W} CURVE object`);for(let Q of["p","n","h"]){let N=X[Q];if(!(typeof N==="bigint"&&N>DY))throw Error(`CURVE.${Q} must be positive bigint`)}let J=W$(X.p,G.Fp,Y),Z=W$(X.n,G.Fn,Y),U=["Gx","Gy","a",W==="weierstrass"?"b":"d"];for(let Q of U)if(!J.isValid(X[Q]))throw Error(`CURVE.${Q} must be valid field element of CURVE.Fp`);return X=Object.freeze(Object.assign({},X)),{CURVE:X,Fp:J,Fn:Z}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var V$=(W,X)=>(W+(W>=0?X:-X)/Q$)/X;function Ll(W,X,G){let[[Y,J],[Z,V]]=X,U=V$(V*W,G),Q=V$(-J*W,G),N=W-U*Y-Q*Z,q=-U*J-Q*V,A=N<S4,H=q<S4;if(A)N=-N;if(H)q=-q;let I=p6(Math.ceil(Iq(G)/2))+CY;if(N<S4||N>=I||q<S4||q>=I)throw Error("splitScalar (endomorphism): failed, k="+W);return{k1neg:A,k1:N,k2neg:H,k2:q}}function dj(W){if(!["compact","recovered","der"].includes(W))throw Error('Signature format must be "compact", "recovered", or "der"');return W}function lj(W,X){let G={};for(let Y of Object.keys(X))G[Y]=W[Y]===void 0?X[Y]:W[Y];if(MV(G.lowS,"lowS"),MV(G.prehash,"prehash"),G.format!==void 0)dj(G.format);return G}class U$ extends Error{constructor(W=""){super(W)}}var F4={Err:U$,_tlv:{encode:(W,X)=>{let{Err:G}=F4;if(W<0||W>256)throw new G("tlv.encode: wrong tag");if(X.length&1)throw new G("tlv.encode: unpadded data");let Y=X.length/2,J=PV(Y);if(J.length/2&128)throw new G("tlv.encode: long form length too big");let Z=Y>127?PV(J.length/2|128):"";return PV(W)+Z+J+X},decode(W,X){let{Err:G}=F4,Y=0;if(W<0||W>256)throw new G("tlv.encode: wrong tag");if(X.length<2||X[Y++]!==W)throw new G("tlv.decode: wrong tlv");let J=X[Y++],Z=!!(J&128),V=0;if(!Z)V=J;else{let Q=J&127;if(!Q)throw new G("tlv.decode(long): indefinite length not supported");if(Q>4)throw new G("tlv.decode(long): byte length is too big");let N=X.subarray(Y,Y+Q);if(N.length!==Q)throw new G("tlv.decode: length bytes not complete");if(N[0]===0)throw new G("tlv.decode(long): zero leftmost byte");for(let q of N)V=V<<8|q;if(Y+=Q,V<128)throw new G("tlv.decode(long): not minimal encoding")}let U=X.subarray(Y,Y+V);if(U.length!==V)throw new G("tlv.decode: wrong value length");return{v:U,l:X.subarray(Y+V)}}},_int:{encode(W){let{Err:X}=F4;if(W<S4)throw new X("integer: negative integers are not allowed");let G=PV(W);if(Number.parseInt(G[0],16)&8)G="00"+G;if(G.length&1)throw new X("unexpected DER parsing assertion: unpadded hex");return G},decode(W){let{Err:X}=F4;if(W[0]&128)throw new X("invalid signature integer: negative");if(W[0]===0&&!(W[1]&128))throw new X("invalid signature integer: unnecessary leading zero");return E4(W)}},toSig(W){let{Err:X,_int:G,_tlv:Y}=F4,J=F8("signature",W),{v:Z,l:V}=Y.decode(48,J);if(V.length)throw new X("invalid signature: left bytes after parsing");let{v:U,l:Q}=Y.decode(2,Z),{v:N,l:q}=Y.decode(2,Q);if(q.length)throw new X("invalid signature: left bytes after parsing");return{r:G.decode(U),s:G.decode(N)}},hexFromSig(W){let{_tlv:X,_int:G}=F4,Y=X.encode(2,G.encode(W.r)),J=X.encode(2,G.encode(W.s)),Z=Y+J;return X.encode(48,Z)}},S4=BigInt(0),CY=BigInt(1),Q$=BigInt(2),Tq=BigInt(3),Bl=BigInt(4);function o6(W,X){let{BYTES:G}=W,Y;if(typeof X==="bigint")Y=X;else{let J=F8("private key",X);try{Y=W.fromBytes(J)}catch(Z){throw Error(`invalid private key: expected ui8a of size ${G}, got ${typeof X}`)}}if(!W.isValidNot0(Y))throw Error("invalid private key: out of range [1..N-1]");return Y}function El(W,X={}){let G=Z$("weierstrass",W,X),{Fp:Y,Fn:J}=G,Z=G.CURVE,{h:V,n:U}=Z;LV(X,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:Q}=X;if(Q){if(!Y.is0(Z.a)||typeof Q.beta!=="bigint"||!Array.isArray(Q.basises))throw Error('invalid endo: expected "beta": bigint and "basises": array')}let N=q$(Y,J);function q(){if(!Y.isOdd)throw Error("compression is not supported: Field does not have .isOdd()")}function A(g,d,P){let{x:E,y:f}=d.toAffine(),r=Y.toBytes(E);if(MV(P,"isCompressed"),P){q();let o=!Y.isOdd(f);return r9(N$(o),r)}else return r9(Uint8Array.of(4),r,Y.toBytes(f))}function H(g){f6(g,void 0,"Point");let{publicKey:d,publicKeyUncompressed:P}=N,E=g.length,f=g[0],r=g.subarray(1);if(E===d&&(f===2||f===3)){let o=Y.fromBytes(r);if(!Y.isValid(o))throw Error("bad point: is not on curve, wrong x");let B=O(o),F;try{F=Y.sqrt(B)}catch(R){let m=R instanceof Error?": "+R.message:"";throw Error("bad point: is not on curve, sqrt error"+m)}q();let y=Y.isOdd(F);if((f&1)===1!==y)F=Y.neg(F);return{x:o,y:F}}else if(E===P&&f===4){let o=Y.BYTES,B=Y.fromBytes(r.subarray(0,o)),F=Y.fromBytes(r.subarray(o,o*2));if(!T(B,F))throw Error("bad point: is not on curve");return{x:B,y:F}}else throw Error(`bad point: got length ${E}, expected compressed=${d} or uncompressed=${P}`)}let I=X.toBytes||A,w=X.fromBytes||H;function O(g){let d=Y.sqr(g),P=Y.mul(d,g);return Y.add(Y.add(P,Y.mul(g,Z.a)),Z.b)}function T(g,d){let P=Y.sqr(d),E=O(g);return Y.eql(P,E)}if(!T(Z.Gx,Z.Gy))throw Error("bad curve params: generator point");let x=Y.mul(Y.pow(Z.a,Tq),Bl),u=Y.mul(Y.sqr(Z.b),BigInt(27));if(Y.is0(Y.add(x,u)))throw Error("bad curve params: a or b");function $(g,d,P=!1){if(!Y.isValid(d)||P&&Y.is0(d))throw Error(`bad point coordinate ${g}`);return d}function S(g){if(!(g instanceof _))throw Error("ProjectivePoint expected")}function h(g){if(!Q||!Q.basises)throw Error("no endo");return Ll(g,Q.basises,J.ORDER)}let l=xj((g,d)=>{let{X:P,Y:E,Z:f}=g;if(Y.eql(f,Y.ONE))return{x:P,y:E};let r=g.is0();if(d==null)d=r?Y.ONE:Y.inv(f);let o=Y.mul(P,d),B=Y.mul(E,d),F=Y.mul(f,d);if(r)return{x:Y.ZERO,y:Y.ZERO};if(!Y.eql(F,Y.ONE))throw Error("invZ was invalid");return{x:o,y:B}}),p=xj((g)=>{if(g.is0()){if(X.allowInfinityPoint&&!Y.is0(g.Y))return;throw Error("bad point: ZERO")}let{x:d,y:P}=g.toAffine();if(!Y.isValid(d)||!Y.isValid(P))throw Error("bad point: x or y not field elements");if(!T(d,P))throw Error("bad point: equation left != right");if(!g.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});function t(g,d,P,E,f){return P=new _(Y.mul(P.X,g),P.Y,P.Z),d=$V(E,d),P=$V(f,P),d.add(P)}class _{constructor(g,d,P){this.X=$("x",g),this.Y=$("y",d,!0),this.Z=$("z",P),Object.freeze(this)}static CURVE(){return Z}static fromAffine(g){let{x:d,y:P}=g||{};if(!g||!Y.isValid(d)||!Y.isValid(P))throw Error("invalid affine point");if(g instanceof _)throw Error("projective point not allowed");if(Y.is0(d)&&Y.is0(P))return _.ZERO;return new _(d,P,Y.ONE)}static fromBytes(g){let d=_.fromAffine(w(f6(g,void 0,"point")));return d.assertValidity(),d}static fromHex(g){return _.fromBytes(F8("pointHex",g))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(g=8,d=!0){if(H0.createCache(this,g),!d)this.multiply(Tq);return this}assertValidity(){p(this)}hasEvenY(){let{y:g}=this.toAffine();if(!Y.isOdd)throw Error("Field doesn't support isOdd");return!Y.isOdd(g)}equals(g){S(g);let{X:d,Y:P,Z:E}=this,{X:f,Y:r,Z:o}=g,B=Y.eql(Y.mul(d,o),Y.mul(f,E)),F=Y.eql(Y.mul(P,o),Y.mul(r,E));return B&&F}negate(){return new _(this.X,Y.neg(this.Y),this.Z)}double(){let{a:g,b:d}=Z,P=Y.mul(d,Tq),{X:E,Y:f,Z:r}=this,o=Y.ZERO,B=Y.ZERO,F=Y.ZERO,y=Y.mul(E,E),v=Y.mul(f,f),R=Y.mul(r,r),m=Y.mul(E,f);return m=Y.add(m,m),F=Y.mul(E,r),F=Y.add(F,F),o=Y.mul(g,F),B=Y.mul(P,R),B=Y.add(o,B),o=Y.sub(v,B),B=Y.add(v,B),B=Y.mul(o,B),o=Y.mul(m,o),F=Y.mul(P,F),R=Y.mul(g,R),m=Y.sub(y,R),m=Y.mul(g,m),m=Y.add(m,F),F=Y.add(y,y),y=Y.add(F,y),y=Y.add(y,R),y=Y.mul(y,m),B=Y.add(B,y),R=Y.mul(f,r),R=Y.add(R,R),y=Y.mul(R,m),o=Y.sub(o,y),F=Y.mul(R,v),F=Y.add(F,F),F=Y.add(F,F),new _(o,B,F)}add(g){S(g);let{X:d,Y:P,Z:E}=this,{X:f,Y:r,Z:o}=g,B=Y.ZERO,F=Y.ZERO,y=Y.ZERO,v=Z.a,R=Y.mul(Z.b,Tq),m=Y.mul(d,f),J0=Y.mul(P,r),U0=Y.mul(E,o),N0=Y.add(d,P),$0=Y.add(f,r);N0=Y.mul(N0,$0),$0=Y.add(m,J0),N0=Y.sub(N0,$0),$0=Y.add(d,E);let u0=Y.add(f,o);return $0=Y.mul($0,u0),u0=Y.add(m,U0),$0=Y.sub($0,u0),u0=Y.add(P,E),B=Y.add(r,o),u0=Y.mul(u0,B),B=Y.add(J0,U0),u0=Y.sub(u0,B),y=Y.mul(v,$0),B=Y.mul(R,U0),y=Y.add(B,y),B=Y.sub(J0,y),y=Y.add(J0,y),F=Y.mul(B,y),J0=Y.add(m,m),J0=Y.add(J0,m),U0=Y.mul(v,U0),$0=Y.mul(R,$0),J0=Y.add(J0,U0),U0=Y.sub(m,U0),U0=Y.mul(v,U0),$0=Y.add($0,U0),m=Y.mul(J0,$0),F=Y.add(F,m),m=Y.mul(u0,$0),B=Y.mul(N0,B),B=Y.sub(B,m),m=Y.mul(N0,J0),y=Y.mul(u0,y),y=Y.add(y,m),new _(B,F,y)}subtract(g){return this.add(g.negate())}is0(){return this.equals(_.ZERO)}multiply(g){let{endo:d}=X;if(!J.isValidNot0(g))throw Error("invalid scalar: out of range");let P,E,f=(r)=>H0.cached(this,r,(o)=>Cq(_,o));if(d){let{k1neg:r,k1:o,k2neg:B,k2:F}=h(g),{p:y,f:v}=f(o),{p:R,f:m}=f(F);E=v.add(m),P=t(d.beta,y,R,r,B)}else{let{p:r,f:o}=f(g);P=r,E=o}return Cq(_,[P,E])[0]}multiplyUnsafe(g){let{endo:d}=X,P=this;if(!J.isValid(g))throw Error("invalid scalar: out of range");if(g===S4||P.is0())return _.ZERO;if(g===CY)return P;if(H0.hasCache(this))return this.multiply(g);if(d){let{k1neg:E,k1:f,k2neg:r,k2:o}=h(g),{p1:B,p2:F}=Y$(_,P,f,o);return t(d.beta,B,F,E,r)}else return H0.unsafe(P,g)}multiplyAndAddUnsafe(g,d,P){let E=this.multiplyUnsafe(d).add(g.multiplyUnsafe(P));return E.is0()?void 0:E}toAffine(g){return l(this,g)}isTorsionFree(){let{isTorsionFree:g}=X;if(V===CY)return!0;if(g)return g(_,this);return H0.unsafe(this,U).is0()}clearCofactor(){let{clearCofactor:g}=X;if(V===CY)return this;if(g)return g(_,this);return this.multiplyUnsafe(V)}isSmallOrder(){return this.multiplyUnsafe(V).is0()}toBytes(g=!0){return MV(g,"isCompressed"),this.assertValidity(),I(_,this,g)}toHex(g=!0){return B4(this.toBytes(g))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(g=!0){return this.toBytes(g)}_setWindowSize(g){this.precompute(g)}static normalizeZ(g){return Cq(_,g)}static msm(g,d){return J$(_,J,g,d)}static fromPrivateKey(g){return _.BASE.multiply(o6(J,g))}}_.BASE=new _(Z.Gx,Z.Gy,Y.ONE),_.ZERO=new _(Y.ZERO,Y.ONE,Y.ZERO),_.Fp=Y,_.Fn=J;let e=J.BITS,H0=new cj(_,X.endo?Math.ceil(e/2):e);return _.BASE.precompute(8),_}function N$(W){return Uint8Array.of(W?2:3)}function q$(W,X){return{secretKey:X.BYTES,publicKey:1+W.BYTES,publicKeyUncompressed:1+2*W.BYTES,publicKeyHasPrefix:!0,signature:2*X.BYTES}}function $l(W,X={}){let{Fn:G}=W,Y=X.randomBytes||qX,J=Object.assign(q$(W.Fp,G),{seed:yj(G.ORDER)});function Z(I){try{return!!o6(G,I)}catch(w){return!1}}function V(I,w){let{publicKey:O,publicKeyUncompressed:T}=J;try{let x=I.length;if(w===!0&&x!==O)return!1;if(w===!1&&x!==T)return!1;return!!W.fromBytes(I)}catch(x){return!1}}function U(I=Y(J.seed)){return Kq(f6(I,J.seed,"seed"),G.ORDER)}function Q(I,w=!0){return W.BASE.multiply(o6(G,I)).toBytes(w)}function N(I){let w=U(I);return{secretKey:w,publicKey:Q(w)}}function q(I){if(typeof I==="bigint")return!1;if(I instanceof W)return!0;let{secretKey:w,publicKey:O,publicKeyUncompressed:T}=J;if(G.allowedLengths||w===O)return;let x=F8("key",I).length;return x===O||x===T}function A(I,w,O=!0){if(q(I)===!0)throw Error("first arg must be private key");if(q(w)===!1)throw Error("second arg must be public key");let T=o6(G,I);return W.fromHex(w).multiply(T).toBytes(O)}return Object.freeze({getPublicKey:Q,getSharedSecret:A,keygen:N,Point:W,utils:{isValidSecretKey:Z,isValidPublicKey:V,randomSecretKey:U,isValidPrivateKey:Z,randomPrivateKey:U,normPrivateKeyToScalar:(I)=>o6(G,I),precompute(I=8,w=W.BASE){return w.precompute(I,!1)}},lengths:J})}function Fl(W,X,G={}){qq(X),LV(G,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let Y=G.randomBytes||qX,J=G.hmac||((P,...E)=>bj(X,P,r9(...E))),{Fp:Z,Fn:V}=W,{ORDER:U,BITS:Q}=V,{keygen:N,getPublicKey:q,getSharedSecret:A,utils:H,lengths:I}=$l(W,G),w={prehash:!1,lowS:typeof G.lowS==="boolean"?G.lowS:!1,format:void 0,extraEntropy:!1},O="compact";function T(P){let E=U>>CY;return P>E}function x(P,E){if(!V.isValidNot0(E))throw Error(`invalid signature ${P}: out of range 1..Point.Fn.ORDER`);return E}function u(P,E){dj(E);let f=I.signature,r=E==="compact"?f:E==="recovered"?f+1:void 0;return f6(P,r,`${E} signature`)}class ${constructor(P,E,f){if(this.r=x("r",P),this.s=x("s",E),f!=null)this.recovery=f;Object.freeze(this)}static fromBytes(P,E=O){u(P,E);let f;if(E==="der"){let{r:F,s:y}=F4.toSig(f6(P));return new $(F,y)}if(E==="recovered")f=P[0],E="compact",P=P.subarray(1);let r=V.BYTES,o=P.subarray(0,r),B=P.subarray(r,r*2);return new $(V.fromBytes(o),V.fromBytes(B),f)}static fromHex(P,E){return this.fromBytes(NX(P),E)}addRecoveryBit(P){return new $(this.r,this.s,P)}recoverPublicKey(P){let E=Z.ORDER,{r:f,s:r,recovery:o}=this;if(o==null||![0,1,2,3].includes(o))throw Error("recovery id invalid");if(U*Q$<E&&o>1)throw Error("recovery id is ambiguous for h>1 curve");let F=o===2||o===3?f+U:f;if(!Z.isValid(F))throw Error("recovery id 2 or 3 invalid");let y=Z.toBytes(F),v=W.fromBytes(r9(N$((o&1)===0),y)),R=V.inv(F),m=h(F8("msgHash",P)),J0=V.create(-m*R),U0=V.create(r*R),N0=W.BASE.multiplyUnsafe(J0).add(v.multiplyUnsafe(U0));if(N0.is0())throw Error("point at infinify");return N0.assertValidity(),N0}hasHighS(){return T(this.s)}toBytes(P=O){if(dj(P),P==="der")return NX(F4.hexFromSig(this));let E=V.toBytes(this.r),f=V.toBytes(this.s);if(P==="recovered"){if(this.recovery==null)throw Error("recovery bit must be present");return r9(Uint8Array.of(this.recovery),E,f)}return r9(E,f)}toHex(P){return B4(this.toBytes(P))}assertValidity(){}static fromCompact(P){return $.fromBytes(F8("sig",P),"compact")}static fromDER(P){return $.fromBytes(F8("sig",P),"der")}normalizeS(){return this.hasHighS()?new $(this.r,V.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return B4(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return B4(this.toBytes("compact"))}}let S=G.bits2int||function(E){if(E.length>8192)throw Error("input is too large");let f=E4(E),r=E.length*8-Q;return r>0?f>>BigInt(r):f},h=G.bits2int_modN||function(E){return V.create(S(E))},l=p6(Q);function p(P){return LE("num < 2^"+Q,P,S4,l),V.toBytes(P)}function t(P,E){return f6(P,void 0,"message"),E?f6(X(P),void 0,"prehashed message"):P}function _(P,E,f){if(["recovered","canonical"].some((U0)=>(U0 in f)))throw Error("sign() legacy options not supported");let{lowS:r,prehash:o,extraEntropy:B}=lj(f,w);P=t(P,o);let F=h(P),y=o6(V,E),v=[p(y),p(F)];if(B!=null&&B!==!1){let U0=B===!0?Y(I.secretKey):B;v.push(F8("extraEntropy",U0))}let R=r9(...v),m=F;function J0(U0){let N0=S(U0);if(!V.isValidNot0(N0))return;let $0=V.inv(N0),u0=W.BASE.multiply(N0).toAffine(),q1=V.create(u0.x);if(q1===S4)return;let g1=V.create($0*V.create(m+q1*y));if(g1===S4)return;let h0=(u0.x===q1?0:2)|Number(u0.y&CY),x1=g1;if(r&&T(g1))x1=V.neg(g1),h0^=1;return new $(q1,x1,h0)}return{seed:R,k2sig:J0}}function e(P,E,f={}){P=F8("message",P);let{seed:r,k2sig:o}=_(P,E,f);return BE(X.outputLen,V.BYTES,J)(r,o)}function H0(P){let E=void 0,f=typeof P==="string"||QX(P),r=!f&&P!==null&&typeof P==="object"&&typeof P.r==="bigint"&&typeof P.s==="bigint";if(!f&&!r)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(r)E=new $(P.r,P.s);else if(f){try{E=$.fromBytes(F8("sig",P),"der")}catch(o){if(!(o instanceof F4.Err))throw o}if(!E)try{E=$.fromBytes(F8("sig",P),"compact")}catch(o){return!1}}if(!E)return!1;return E}function g(P,E,f,r={}){let{lowS:o,prehash:B,format:F}=lj(r,w);if(f=F8("publicKey",f),E=t(F8("message",E),B),"strict"in r)throw Error("options.strict was renamed to lowS");let y=F===void 0?H0(P):$.fromBytes(F8("sig",P),F);if(y===!1)return!1;try{let v=W.fromBytes(f);if(o&&y.hasHighS())return!1;let{r:R,s:m}=y,J0=h(E),U0=V.inv(m),N0=V.create(J0*U0),$0=V.create(R*U0),u0=W.BASE.multiplyUnsafe(N0).add(v.multiplyUnsafe($0));if(u0.is0())return!1;return V.create(u0.x)===R}catch(v){return!1}}function d(P,E,f={}){let{prehash:r}=lj(f,w);return E=t(E,r),$.fromBytes(P,"recovered").recoverPublicKey(E).toBytes()}return Object.freeze({keygen:N,getPublicKey:q,getSharedSecret:A,utils:H,lengths:I,Point:W,sign:e,verify:g,recoverPublicKey:d,Signature:$,hash:X})}function Sl(W){let X={a:W.a,b:W.b,p:W.Fp.ORDER,n:W.n,h:W.h,Gx:W.Gx,Gy:W.Gy},G=W.Fp,Y=W.allowedPrivateKeyLengths?Array.from(new Set(W.allowedPrivateKeyLengths.map((V)=>Math.ceil(V/2)))):void 0,J=E5(X.n,{BITS:W.nBitLength,allowedLengths:Y,modFromBytes:W.wrapPrivateKey}),Z={Fp:G,Fn:J,allowInfinityPoint:W.allowInfinityPoint,endo:W.endo,isTorsionFree:W.isTorsionFree,clearCofactor:W.clearCofactor,fromBytes:W.fromBytes,toBytes:W.toBytes};return{CURVE:X,curveOpts:Z}}function xl(W){let{CURVE:X,curveOpts:G}=Sl(W),Y={hmac:W.hmac,randomBytes:W.randomBytes,lowS:W.lowS,bits2int:W.bits2int,bits2int_modN:W.bits2int_modN};return{CURVE:X,curveOpts:G,hash:W.hash,ecdsaOpts:Y}}function kl(W,X){let G=X.Point;return Object.assign({},X,{ProjectivePoint:G,CURVE:Object.assign({},W,jq(G.Fn.ORDER,G.Fn.BITS))})}function H$(W){let{CURVE:X,curveOpts:G,hash:Y,ecdsaOpts:J}=xl(W),Z=El(X,G),V=Fl(Z,Y,J);return kl(W,V)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function TY(W,X){let G=(Y)=>H$({...W,hash:Y});return{...G(X),create:G}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var A$={p:BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),h:BigInt(1),a:BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5")},z$={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff"),n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),h:BigInt(1),a:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc"),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f")},I$={p:BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),h:BigInt(1),a:BigInt("0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650")},_l=E5(A$.p),yl=E5(z$.p),vl=E5(I$.p);var w$=TY({...A$,Fp:_l,lowS:!1},OY);var fq0=TY({...z$,Fp:yl,lowS:!1},sE);var pq0=TY({...I$,Fp:vl,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},aE);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Mq=w$;var U9=m1(D8(),1),J7=m1(D8(),1),lS=m1(D8(),1),CX=m1(D8(),1),c4=m1(D8(),1),aS=m1(yQ(),1),MX=m1(D8(),1),r6=m1(D8(),1),PX=m1(D8(),1),cY=m1(D8(),1),a6=m1(D8(),1),RX=m1(D8(),1),Z7=m1(D8(),1),V7=m1(D8(),1),jH=m1(D8(),1),Y7=m1(D8(),1),J2=m1(D8(),1),vo=m1(D$(),1);import{randomBytes as jo}from"crypto";import{setTimeout as Ko}from"timers/promises";import{createCipheriv as $o,createDecipheriv as Fo}from"crypto";var hq=m1(T$(),1),LX=m1(D8(),1),OX=m1(D8(),1),d7=m1(D8(),1),c7=m1(D8(),1),BX=m1(D8(),1);import{createHmac as VK}from"crypto";import{createCipheriv as QF,createDecipheriv as NF,createHmac as qF,timingSafeEqual as Hn}from"crypto";import{createCipheriv as IF,createDecipheriv as wF}from"crypto";import{setTimeout as Tn}from"timers/promises";import{randomBytes as Bn}from"crypto";import{createHmac as R2}from"crypto";import{randomBytes as L2}from"crypto";var Bq="undefined",BY=Bq!==typeof Buffer&&Buffer,LY=Bq!==typeof Uint8Array&&Uint8Array,Lq=Bq!==typeof ArrayBuffer&&ArrayBuffer,M$=[0,0,0,0,0,0,0,0],hl=Array.isArray||ol,RY=4294967296,bl=16777216,EY,Eq=R$("Uint64BE",!0,!0),ij=R$("Int64BE",!0,!1);function R$(W,X,G){var Y=X?0:4,J=X?4:0,Z=X?0:3,V=X?1:2,U=X?2:1,Q=X?3:0,N=X?pl:ll,q=X?cl:dl,A=w.prototype,H="is"+W,I="_"+H;if(A.buffer=void 0,A.offset=0,A[I]=!0,A.toNumber=u,A.toString=$,A.toJSON=u,A.toArray=ml,BY)A.toBuffer=fl;if(LY)A.toArrayBuffer=L$;return w[H]=O,w;function w(l,p,t,_){if(!(this instanceof w))return new w(l,p,t,_);return T(this,l,p,t,_)}function O(l){return!!(l&&l[I])}function T(l,p,t,_,e){if(LY&&Lq){if(p instanceof Lq)p=new LY(p);if(_ instanceof Lq)_=new LY(_)}if(!p&&!t&&!_&&!EY){l.buffer=B$(M$,0);return}if(!P$(p,t)){var H0=EY||Array;e=t,_=p,t=0,p=EY===BY?BY.alloc(8):new H0(8)}if(l.buffer=p,l.offset=t|=0,Bq===typeof _)return;if(typeof _==="string")x(p,t,_,e||10);else if(P$(_,e))nj(p,t,_,e);else if(typeof e==="number")S(p,t+Y,_),S(p,t+J,e);else if(_>0)N(p,t,_);else if(_<0)q(p,t,_);else nj(p,t,M$,0)}function x(l,p,t,_){var e=0,H0=t.length,g=0,d=0;if(t[0]==="-")e++;var P=e;while(e<H0){var E=parseInt(t[e++],_);if(!(E>=0))break;d=d*_+E,g=g*_+Math.floor(d/RY),d%=RY}if(P)if(g=~g,d)d=RY-d;else g++;S(l,p+Y,g),S(l,p+J,d)}function u(){var l=this.buffer,p=this.offset,t=h(l,p+Y),_=h(l,p+J);if(!G)t|=0;return t?t*RY+_:_}function $(l){var p=this.buffer,t=this.offset,_=h(p,t+Y),e=h(p,t+J),H0="",g=!G&&_&2147483648;if(g)_=~_,e=RY-e;l=l||10;while(!0){var d=_%l*RY+e;if(_=Math.floor(_/l),e=Math.floor(d/l),H0=(d%l).toString(l)+H0,!_&&!e)break}if(g)H0="-"+H0;return H0}function S(l,p,t){l[p+Q]=t&255,t=t>>8,l[p+U]=t&255,t=t>>8,l[p+V]=t&255,t=t>>8,l[p+Z]=t&255}function h(l,p){return l[p+Z]*bl+(l[p+V]<<16)+(l[p+U]<<8)+l[p+Q]}}function ml(W){var X=this.buffer,G=this.offset;if(EY=null,W!==!1&&hl(X))return X.length===8?X:X.slice(G,G+8);return B$(X,G)}function fl(W){var X=this.buffer,G=this.offset;if(EY=BY,W!==!1&&BY.isBuffer(X))return X.length===8?X:X.slice(G,G+8);return BY.from(L$.call(this,W))}function L$(W){var X=this.buffer,G=this.offset,Y=X.buffer;if(EY=LY,W!==!1&&!X.offset&&Y instanceof Lq)return Y.byteLength===8?Y:Y.slice(G,G+8);var J=new LY(8);return nj(J,0,X,G),J.buffer}function P$(W,X){var G=W&&W.length;return X|=0,G&&X+8<=G&&typeof W[X]!=="string"}function nj(W,X,G,Y){X|=0,Y|=0;for(var J=0;J<8;J++)W[X++]=G[Y++]&255}function B$(W,X){return Array.prototype.slice.call(W,X,X+8)}function pl(W,X,G){var Y=X+8;while(Y>X)W[--Y]=G&255,G/=256}function cl(W,X,G){var Y=X+8;G++;while(Y>X)W[--Y]=-G&255^255,G/=256}function ll(W,X,G){var Y=X+8;while(X<Y)W[X++]=G&255,G/=256}function dl(W,X,G){var Y=X+8;G++;while(X<Y)W[X++]=-G&255^255,G/=256}function ol(W){return!!W&&Object.prototype.toString.call(W)=="[object Array]"}var sV=m1(aj(),1);import{createHash as ln}from"crypto";import{setTimeout as dn}from"timers/promises";import{createHash as Wi}from"crypto";import{isIPv4 as vF}from"net";import{randomBytes as Xi}from"crypto";import{isIPv4 as gF}from"net";var pq=m1(F$(),1),_2=m1(l$(),1),v2=m1(aj(),1);import*as vK from"timers/promises";import{randomUUID as Yi}from"crypto";import*as y2 from"os";import{EventEmitter as Ii}from"events";import{randomUUID as Li}from"crypto";import{setTimeout as wK}from"timers/promises";import{createHash as Bi}from"crypto";import{performance as kq}from"perf_hooks";import{randomUUID as Ei}from"crypto";import{randomUUID as n2}from"crypto";import{setTimeout as ri}from"timers/promises";import{randomBytes as ei}from"crypto";import{isIPv4 as Wr}from"net";var tV=m1(uz(),1);import{randomUUID as Xr}from"crypto";import{setTimeout as Gr}from"timers/promises";import{randomUUID as Ur}from"crypto";import{randomUUID as Ar}from"crypto";import{createHmac as GS,randomBytes as zr}from"crypto";import{randomBytes as IS}from"crypto";import{randomUUID as wS}from"crypto";import{setTimeout as jS}from"timers/promises";import{randomUUID as fr}from"crypto";function TS(){return X8.Unpack("!H",CS(2))[0]}function TK(){return X8.Unpack("!L",CS(4))[0]}var aq=class{constructor(W){this.bitLength=W}value=0;set(W,X,G){return G&=(1<<W)-1,this.value|=G<<this.bitLength-W-X,this}get buffer(){let W=Math.ceil(this.bitLength/8),X=Buffer.alloc(W);return X.writeUIntBE(this.value,0,W),X}},MS=class{constructor(W){if(this.bitLength=W,W>32)throw Error()}_value=0n;offset=0n;set(W,X=1){let G=BigInt(W),Y=BigInt(X);return G&=(1n<<Y)-1n,this._value|=G<<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),X=Buffer.alloc(W);return X.writeUIntBE(this.value,0,W),X}};function b8(W,X,G=1){let Y=W.toString(2).split("");Y=[...Array(8-Y.length).fill("0"),...Y];let J=Y.slice(X,X+G).join("");return Number.parseInt(J,2)}function S8(W,X){return gq(W)(X)}function gq(W,X){let G=W.reduce((J,Z)=>J+Z,0),Y=X?Buffer.alloc(G):void 0;return(J)=>{let Z=Y||Buffer.alloc(G),V=0;return J.forEach((U,Q)=>{let N=W[Q];if(N===8)Z.writeBigUInt64BE(U,V);else Z.writeUIntBE(U,V,N);V+=N}),Z}}function t9(W,X){let G=0;return X.map((Y)=>{let J;if(Y===8)J=W.readBigUInt64BE(G);else J=W.readUIntBE(G,Y);return G+=Y,J})}var cV=class{constructor(W){this.uint8Array=W}position=0;bitsPending=0;writeBits(W,X){if(W==0)return this;X&=4294967295>>>32-W;let G;if(this.bitsPending>0)if(this.bitsPending>W)this.uint8Array[this.position-1]|=X<<this.bitsPending-W,G=W,this.bitsPending-=W;else if(this.bitsPending==W)this.uint8Array[this.position-1]|=X,G=W,this.bitsPending=0;else this.uint8Array[this.position-1]|=X>>W-this.bitsPending,G=this.bitsPending,this.bitsPending=0;else G=Math.min(8,W),this.bitsPending=8-G,this.uint8Array[this.position++]=X>>W-G<<this.bitsPending;if(W-=G,W>0)this.writeBits(W,X);return this}readBits(W){return this._readBits(W)}_readBits(W,X){if(typeof X>"u")X=0;if(W==0)return X;let G,Y;if(this.bitsPending>0){let J=this.uint8Array[this.position-1]&255>>8-this.bitsPending;Y=Math.min(this.bitsPending,W),this.bitsPending-=Y,G=J>>this.bitsPending}else Y=Math.min(8,W),this.bitsPending=8-Y,G=this.uint8Array[this.position++]>>this.bitsPending;return W-=Y,X=X<<Y|G,W>0?this._readBits(W,X):X}seekTo(W){if(this.position=W/8|0,this.bitsPending=W%8,this.bitsPending>0)this.bitsPending=8-this.bitsPending,this.position++}},vd=3988292384,gd=2197175160;function PS(W){return typeof W!=="string"}function RS(W){let X=Array(256),G=0;for(let Y=0;Y<256;++Y)G=Y,G=G&1?W^G>>>1:G>>>1,G=G&1?W^G>>>1:G>>>1,G=G&1?W^G>>>1:G>>>1,G=G&1?W^G>>>1:G>>>1,G=G&1?W^G>>>1:G>>>1,G=G&1?W^G>>>1:G>>>1,G=G&1?W^G>>>1:G>>>1,G=G&1?W^G>>>1:G>>>1,X[Y]=G;return new Int32Array(X)}function LS(W){let X=new Int32Array(4096),G=0,Y=0,J=0;for(J=0;J<256;++J)X[J]=W[J];for(J=0;J<256;++J){Y=W[J];for(G=256+J;G<4096;G+=256)Y=X[G]=Y>>>8^W[Y&255]}let Z=[];for(J=1;J<16;++J)Z[J-1]=X.subarray(J*256,J*256+256);return Z}function BS(W,X,G){let Y=X^-1,J=0,Z=W.length,V=0,U=0;while(J<Z)if(V=W.charCodeAt(J++),V<128)Y=Y>>>8^G[(Y^V)&255];else if(V<2048)Y=Y>>>8^G[(Y^(192|V>>6&31))&255],Y=Y>>>8^G[(Y^(128|V&63))&255];else if(V>=55296&&V<57344)V=(V&1023)+64,U=W.charCodeAt(J++)&1023,Y=Y>>>8^G[(Y^(240|V>>8&7))&255],Y=Y>>>8^G[(Y^(128|V>>2&63))&255],Y=Y>>>8^G[(Y^(128|U>>6&15|(V&3)<<4))&255],Y=Y>>>8^G[(Y^(128|U&63))&255];else Y=Y>>>8^G[(Y^(224|V>>12&15))&255],Y=Y>>>8^G[(Y^(128|V>>6&63))&255],Y=Y>>>8^G[(Y^(128|V&63))&255];return~Y>>>0}function ES(W,X,G,Y){let[J,Z,V,U,Q,N,q,A,H,I,w,O,T,x,u]=Y,$=X^-1,S=0,h=W.length-15;while(S<h)$=u[W[S++]^$&255]^x[W[S++]^$>>>8&255]^T[W[S++]^$>>>16&255]^O[W[S++]^$>>>24]^w[W[S++]]^I[W[S++]]^H[W[S++]]^A[W[S++]]^q[W[S++]]^N[W[S++]]^Q[W[S++]]^U[W[S++]]^V[W[S++]]^Z[W[S++]]^J[W[S++]]^G[W[S++]];for(h+=15;S<h;)$=$>>>8^G[($^W[S++])&255];return~$>>>0}var MK=RS(vd),ud=LS(MK),PK=RS(gd),hd=LS(PK);function bd(W,X=0){if(PS(W))return ES(W,X,MK,ud);return BS(W,X,MK)}function $S(W,X=0){if(PS(W))return ES(W,X,PK,hd);return BS(W,X,PK)}function md(W,X){return W+X&255}function R9(W,X){return W+X&65535}function gY(W,X){return Number(BigInt(W)+BigInt(X)&0xffffffffn)}function fd(W){return W&16777215}function FS(W,X){return W<X&&X-W>32768||W>X&&W-X<32768}function p4(W,X){return W<X&&X-W>2147483648||W>X&&W-X<2147483648}function mV(W,X){return W===X||p4(W,X)}var lV=(W)=>Number.parseInt(W,10);var SS=(W,X)=>X?X[W]:void 0;async function cd(W,X,G="udp4",Y){let J;for(let Z=W;Z<=X;Z++){let V=pd(G);if(setImmediate(()=>V.bind({port:Z,address:SS(G,Y)})),await new Promise((Q)=>{V.once("error",(N)=>Q(N)),V.once("listening",()=>Q())})){await new Promise((Q)=>V.close(()=>Q()));continue}if(J=V.address()?.port,await new Promise((Q)=>V.close(()=>Q())),W<=J&&J<=X)break}if(!J)throw Error("port not found");return J}function sq(W){if(W==="IPv4")return 4;if(W==="IPv6")return 6;return W}var L1=xS.default.debug,d0=class{event={stack:[],promiseStack:[],eventId:0};ended=!1;onended;onerror=(W)=>{};execute=(...W)=>{if(this.ended)return;for(let X of this.event.stack)X.execute(...W);(async()=>{for(let X of this.event.promiseStack)await X.execute(...W)})().catch((X)=>{this.onerror(X)})};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 X of this.event.stack)if(X.error)X.error(W);this.allUnsubscribe()};allUnsubscribe=()=>{if(this.ended)throw Error("event completed");this.event={stack:[],promiseStack:[],eventId:0}};subscribe=(W,X,G)=>{let Y=this.event.eventId;this.event.stack.push({execute:W,id:Y,complete:X,error:G}),this.event.eventId++;let J=()=>{this.event.stack=this.event.stack.filter((V)=>V.id!==Y&&V)};return{unSubscribe:J,disposer:(V)=>{V.push(J)}}};pipe(W){this.subscribe((...X)=>{W.execute(...X)})}queuingSubscribe=(W,X,G)=>{if(this.ended)throw Error("event completed");let Y=this.event.eventId;this.event.promiseStack.push({execute:W,id:Y,complete:X,error:G}),this.event.eventId++;let J=()=>{this.event.stack=this.event.stack.filter((V)=>V.id!==Y&&V)};return{unSubscribe:J,disposer:(V)=>{V.push(J)}}};once=(W,X,G)=>{let Y=this.subscribe((...J)=>{Y.unSubscribe(),W(...J)},X,G)};watch=(W,X)=>new Promise((G,Y)=>{let J=X&&setTimeout(()=>{Y("Event watch timeout")},X),{unSubscribe:Z}=this.subscribe((...V)=>{if(W(...V)){if(J)clearTimeout(J);Z(),G(V)}})});asPromise=(W)=>new Promise((X,G)=>{let Y=W&&setTimeout(()=>{G("Event asPromise timeout")},W);this.once((...J)=>{if(Y)clearTimeout(Y);X(J)},()=>{if(Y)clearTimeout(Y);X([])},(J)=>{if(Y)clearTimeout(Y);G(J)})});get returnTrigger(){let{execute:W,error:X,complete:G}=this;return{execute:W,error:X,complete:G}}get returnListener(){let{subscribe:W,once:X,asPromise:G}=this;return{subscribe:W,once:X,asPromise:G}}get length(){return this.event.stack.length}},ld=class{_disposer=[];push(W){this._disposer.push(W)}dispose(){this._disposer.forEach((W)=>W()),this._disposer=[]}},d$=L1("werift-ice:packages/ice/src/transport.ts"),RK=class W{constructor(X,G={}){this.socketType=X,this.options=G,this.socket=dd(X),this.socket.on("message",(Y,J)=>{if(sq(J.family)===6)[J.address]=J.address.split("%");this.rinfo=J;try{this.onData(Y,[J.address,J.port])}catch(Z){d$("onData error",Z)}})}type="udp";socket;rinfo;onData=()=>{};closed=!1;static async init(X,G={}){let Y=new W(X,G);return await Y.init(),Y}async init(){let X=SS(this.socketType,this.options.interfaceAddresses);if(this.options.port)this.socket.bind({port:this.options.port,address:X});else if(this.options.portRange){let G=await cd(this.options.portRange[0],this.options.portRange[1],this.socketType,this.options.interfaceAddresses);this.socket.bind({port:G,address:X})}else this.socket.bind({address:X});await new Promise((G)=>this.socket.once("listening",G))}send=async(X,G)=>{if(G&&!kS.isIP(G[0]))return new Promise((Y,J)=>{this.socket.send(X,G[1],G[0],(Z)=>{if(Z)d$("send error",G,X),J(Z);else Y()})});else G=G??[this.rinfo?.address,this.rinfo?.port],this.socket.send(X,G[1],G[0])};get address(){return this.socket.address()}get host(){return this.socket.address().address}get port(){return this.socket.address().port}close=()=>new Promise((X)=>{this.closed=!0,this.socket.once("close",X);try{this.socket.close()}catch(G){X()}})},nd=class W{constructor(X){this.addr=X,this.connect()}type="tcp";connecting;client;onData=()=>{};closed=!1;connect(){if(this.closed)return;if(this.client)this.client.destroy();this.connecting=new Promise((X,G)=>{try{this.client=od({port:this.addr[1],host:this.addr[0]},X)}catch(Y){G(Y)}}),this.client.on("data",(X)=>{let G=[this.client.remoteAddress,this.client.remotePort];this.onData(X,G)}),this.client.on("end",()=>{this.connect()}),this.client.on("error",(X)=>{console.log("error",X)})}async init(){await this.connecting}static async init(X){let G=new W(X);return await G.init(),G}get address(){return{}}send=async(X,G)=>{await this.connecting,this.client.write(X,(Y)=>{if(Y)console.log("err",Y)})};close=async()=>{this.closed=!0,this.client.destroy()}},d4={rsa_1:1,ecdsa_3:3},tq={sha256_4:4},LK={TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_49195:49195,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256_49199:49199},sd=Object.values(LK),s6={x25519_29:29,secp256r1_23:23},_S=Object.values(s6),yS={named_curve_3:3},o$={rsa_pkcs1_sha256:1025,ecdsa_secp256r1_sha256:1027},td=[1,64],vS=[{hash:tq.sha256_4,signature:d4.rsa_1},{hash:tq.sha256_4,signature:d4.ecdsa_3}],Xo=()=>{let W=Mq.utils.randomPrivateKey(),X=Mq.getPublicKey(W,!1),G=Buffer.from(W),Y=Buffer.from(X);return{privateKey:G,publicKey:Y}},Go=({publicKey:W,privateKey:X})=>{let G=Mq.getSharedSecret(X,W);return Buffer.from(G).subarray(1)};function hS(W,X,G){switch(G){case s6.secp256r1_23:return Go({publicKey:W,privateKey:X});case s6.x25519_29:return Buffer.from(uS.default.scalarMult(X,W));default:throw Error()}}function n$(W,X,G){let Y=Wo(W,X);return Y.update(G),Y.digest()}function WU(W,X,G,Y="sha256"){let J=G,Z=[],V=X;do{V=n$(Y,W,V);let U=n$(Y,W,Buffer.concat([V,X]));Z.push(U),G-=U.length}while(G>0);return Buffer.concat(Z,J)}function bS(W,X,G){let Y=Buffer.concat([Buffer.from("master secret"),X,G]);return WU(W,Y,48)}function mS(W,X){let G=fS("sha256",X),Y="extended master secret";return WU(W,Buffer.concat([Buffer.from("extended master secret"),G]),48)}function Yo(W,X,G,Y,J,Z){let V=Z?Y:J,U=Z?J:Y,Q=Buffer.concat([Buffer.from(W),V,U]);return WU(G,Q,X)}function fS(W,X){return ed(W).update(X).digest()}function pS(W,X,G,Y=12){let J=fS("sha256",X);return WU(W,Buffer.concat([Buffer.from(G),J]),Y)}function Jo(W,X){return pS(W,X,"client finished")}function Zo(W,X){return pS(W,X,"server finished")}function Vo(W,X,G,Y,J,Z,V="sha256"){let U=Y*2+J*2,Q=W,N=Buffer.concat([G,X]),q=WU(Q,Buffer.concat([Buffer.from("key expansion"),N]),U,V),A=gS.createDecode(q),H=A.readBuffer(Y),I=A.readBuffer(Y),w=A.readBuffer(J),O=A.readBuffer(J),T=Buffer.alloc(Z,0),x=Buffer.alloc(Z,0);return w.copy(T,0),O.copy(x,0),{clientWriteKey:H,serverWriteKey:I,clientNonce:T,serverNonce:x}}var l4={CLIENT:1,SERVER:2},Uo=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}},BK=ad;u8.set(BK);var eq=class{constructor(W,X,G,Y){if(this.sessionType=W,this.certPem=X,this.keyPem=G,X&&G&&Y)this.parseX509(X,G,Y)}localRandom;remoteRandom;cipherSuite;remoteCertificate;remoteKeyPair;localKeyPair;masterSecret;cipher;namedCurve;signatureHashAlgorithm;localCert;localPrivateKey;static createSelfSignedCertificateWithKey=async(W,X)=>{let G=(()=>{switch(W.signature){case d4.rsa_1:return"RSASSA-PKCS1-v1_5";case d4.ecdsa_3:return"ECDSA"}})(),Y=(()=>{switch(W.hash){case tq.sha256_4:return"SHA-256"}})(),J=(()=>{switch(X){case s6.secp256r1_23:return"P-256";case s6.x25519_29:if(G==="ECDSA")return"P-256";return"X25519";default:{if(G==="ECDSA")return"P-256";if(G==="RSASSA-PKCS1-v1_5")return"X25519"}}})(),Z=(()=>{switch(G){case"ECDSA":return{name:G,hash:Y,namedCurve:J};case"RSASSA-PKCS1-v1_5":return{name:G,hash:Y,publicExponent:new Uint8Array([1,0,1]),modulusLength:2048}}})(),V=await BK.subtle.generateKey(Z,!0,["sign","verify"]),Q=(await wj.createSelfSigned({serialNumber:rd(8).toString("hex"),name:"C=AU, ST=Some-State, O=Internet Widgits Pty Ltd",notBefore:new Date,notAfter:new Date(Date.now()+315360000000),signingAlgorithm:Z,keys:V})).toString("pem"),N=T9.encode(await BK.subtle.exportKey("pkcs8",V.privateKey),"private key");return{certPem:Q,keyPem:N,signatureHash:W}};encryptPacket(W){let X=W.recordLayerHeader,G=X.protocolVersion.major<<8|X.protocolVersion.minor,Y=this.cipher.encrypt(this.sessionType,W.fragment,{type:X.contentType,version:G,epoch:X.epoch,sequenceNumber:X.sequenceNumber});return W.fragment=Y,W.recordLayerHeader.contentLen=Y.length,W}decryptPacket(W){let X=W.recordLayerHeader,G=X.protocolVersion.major<<8|X.protocolVersion.minor;return this.cipher.decrypt(this.sessionType,W.fragment,{type:X.contentType,version:G,epoch:X.epoch,sequenceNumber:X.sequenceNumber})}verifyData(W){if(this.sessionType===l4.CLIENT)return Jo(this.masterSecret,W);else return Zo(this.masterSecret,W)}signatureData(W,X){let G=id(X).update(W),Y=this.localPrivateKey.toPEM().toString();return G.sign(Y)}generateKeySignature(W){let X=this.sessionType===l4.CLIENT?this.localRandom:this.remoteRandom,G=this.sessionType===l4.SERVER?this.localRandom:this.remoteRandom,Y=this.valueKeySignature(X.serialize(),G.serialize(),this.localKeyPair.publicKey,this.namedCurve);return this.localPrivateKey.sign(Y,W)}parseX509(W,X,G){let Y=AH.Certificate.fromPEM(Buffer.from(W)),J=AH.PrivateKey.fromPEM(Buffer.from(X));this.localCert=Y.raw,this.localPrivateKey=J,this.signatureHashAlgorithm=G}valueKeySignature(W,X,G,Y){let J=Buffer.from(uY.encode({type:yS.named_curve_3,curve:Y,len:G.length},{type:uY.types.uint8,curve:uY.types.uint16be,len:uY.types.uint8}).slice());return Buffer.concat([W,X,J,G])}},WH=class{srtpProfile;static findMatchingSRTPProfile(W,X){for(let G of X)if(W.includes(G))return G}},WO=(W)=>"0x"+W.toString("hex").replace(/(.)(.)/g,"$1$2 ").split(" ").filter((X)=>X!=null&&X.length>0).join(",0x"),cS=(W)=>Object.entries({...W}).reduce((X,[G,Y])=>{if(typeof Y==="number"||typeof Y==="string")X[G]=Y;if(Buffer.isBuffer(Y))X[G]=WO(Y);return X},{}),$5=class W{constructor(X,G,Y,J,Z,V){this.msg_type=X,this.length=G,this.message_seq=Y,this.fragment_offset=J,this.fragment_length=Z,this.fragment=V}static spec={msg_type:J7.types.uint8,length:J7.types.uint24be,message_seq:J7.types.uint16be,fragment_offset:J7.types.uint24be,fragment_length:J7.types.uint24be,fragment:J7.types.buffer((X)=>X.current.fragment_length)};get summary(){return cS(this)}static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(X){return new W(...Object.values(J7.decode(X,W.spec)))}serialize(){let X=J7.encode(this,W.spec).slice();return Buffer.from(X)}chunk(X){let G=0,Y=this.fragment.length;if(Y===0)return[new W(this.msg_type,Y,this.message_seq,G,0,this.fragment)];let J=[];if(!X)X=1240;while(G<Y){let Z=Math.min(X,Y-G),V=Buffer.from(this.fragment.slice(G,G+Z));if(V.length<=0)throw Error("Zero or less bytes processed while fragmenting handshake message.");J.push(new W(this.msg_type,Y,this.message_seq,G,V.length,V)),G+=V.length}return J}static assemble(X){if(!X?.length)throw Error("cannot reassemble handshake from empty array");X=X.sort((Y,J)=>Y.fragment_offset-J.fragment_offset);let G=Buffer.alloc(X[0].length);for(let Y of X)Y.fragment.copy(G,Y.fragment_offset);return new W(X[0].msg_type,X[0].length,X[0].message_seq,0,G.length,G)}static findAllFragments(X,G){let Y=X.find((J)=>J.msg_type===G);if(!Y)return[];if(!X?.length)return[];return X.filter((J)=>{return J.msg_type===Y.msg_type&&J.message_seq===Y.message_seq&&J.length===Y.length})}},{uint16be:XH,uint24be:Qo,buffer:dS,array:No,uint8:nV,string:qo}=lS.types,Ho={type:XH,data:dS(XH)},EK=No(Ho,XH,"bytes"),Ao=dS(Qo),zo=nV,Io=qo(XH),wo={hash:nV,signature:nV},XO={major:nV,minor:nV},TX=class W{constructor(X=Math.floor(Date.now()/1000),G=jo(28)){this.gmt_unix_time=X,this.random_bytes=G}static spec={gmt_unix_time:CX.types.uint32be,random_bytes:CX.types.buffer(28)};static deSerialize(X){return new W(...Object.values(CX.decode(X,W.spec)))}static from(X){return new W(...Object.values(X))}serialize(){let X=CX.encode(this,W.spec).slice();return Buffer.from(X)}},oS=class W{constructor(X,G,Y,J,Z,V,U){this.clientVersion=X,this.random=G,this.sessionId=Y,this.cookie=J,this.cipherSuites=Z,this.compressionMethods=V,this.extensions=U}msgType=1;messageSeq=0;static spec={clientVersion:{major:U9.types.uint8,minor:U9.types.uint8},random:TX.spec,sessionId:U9.types.buffer(U9.types.uint8),cookie:U9.types.buffer(U9.types.uint8),cipherSuites:U9.types.array(U9.types.uint16be,U9.types.uint16be,"bytes"),compressionMethods:U9.types.array(U9.types.uint8,U9.types.uint8,"bytes"),extensions:EK};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(X){return new W(...Object.values(U9.decode(X,W.spec)))}serialize(){let X=U9.encode(this,W.spec).slice();return Buffer.from(X)}toFragment(){let X=this.serialize();return new $5(this.msgType,X.length,this.messageSeq,0,X.length,X)}},Oo=class W{constructor(X,G,Y,J,Z){this.epoch=X,this.sequenceNumber=G,this.contentType=Y,this.protocolVersion=J,this.contentLen=Z}static spec={epoch:c4.types.uint16be,sequenceNumber:c4.types.uint48be,contentType:c4.types.uint8,protocolVersion:XO,contentLen:c4.types.uint16be};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0)}static deSerialize(X){return new W(...Object.values(c4.decode(X,W.spec)))}serialize(){let X=c4.encode(this,W.spec).slice();return Buffer.from(X)}},nS=class W{constructor(X,G){this.recordLayerHeader=X,this.fragment=G}get summary(){return{header:this.recordLayerHeader,fragment:WO(this.fragment)}}static createEmpty(){return new W(void 0,void 0)}static deSerialize(X){if(X.length<13)throw Error("Invalid DTLS record: buffer is too short");let G=X.readUInt8(0),Y=X.readUInt8(1),J=X.readUInt8(2),Z=X.readUInt16BE(3),V=X.slice(5,11).readUIntBE(0,6),U=X.readUInt16BE(11);if(X.length<13+U)throw Error("Invalid DTLS record: fragment length exceeds buffer");let Q=X.slice(13,13+U);return new W({contentType:G,protocolVersion:{major:Y,minor:J},epoch:Z,sequenceNumber:V,contentLen:U},Q)}serialize(){let X=this.fragment.length,G=13+X,Y=Buffer.alloc(G);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(X,11),this.fragment.copy(Y,13),Y}computeMACHeader(){return new Oo(this.recordLayerHeader.epoch,this.recordLayerHeader.sequenceNumber,this.recordLayerHeader.contentType,this.recordLayerHeader.protocolVersion,this.recordLayerHeader.contentLen).serialize()}},iS=(W)=>(X)=>{return W.lastFlight=X,X.flatMap((G)=>{return G.messageSeq=W.sequenceNumber++,G.toFragment().chunk()})},XU=(W)=>(X,G)=>{return X.map((Y)=>{return new nS({contentType:Y.type,protocolVersion:W.version,epoch:W.epoch,sequenceNumber:G,contentLen:Y.fragment.length},Y.fragment)})},$K=((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})($K||{}),Do=L1("werift-dtls : packages/dtls/src/flight/flight.ts : warn"),ZK=L1("werift-dtls : packages/dtls/src/flight/flight.ts : err"),GU=class W{constructor(X,G,Y,J){this.transport=X,this.dtls=G,this.flight=Y,this.nextFlight=J}state="PREPARING";static RetransmitCount=10;createPacket(X){let G=iS(this.dtls)(X);return this.dtls.bufferHandshakeCache(G,!0,this.flight),XU(this.dtls)(G.map((J)=>({type:22,fragment:J.serialize()})),++this.dtls.recordSequenceNumber)}async transmit(X){let G=0;for(;G<=W.RetransmitCount;G++){if(this.setState("SENDING"),this.send(X).catch((Y)=>{ZK("fail to send",ZK)}),this.setState("WAITING"),this.nextFlight===void 0){this.setState("FINISHED");break}if(await Ko(1000*((G+1)/2)),this.dtls.flight>=this.nextFlight){this.setState("FINISHED");break}else Do(this.dtls.sessionId,"retransmit",G,this.dtls.flight)}if(G>W.RetransmitCount)throw ZK(this.dtls.sessionId,"retransmit failed",G),Error(`over retransmitCount : ${this.flight} ${this.nextFlight}`)}send=(X)=>Promise.all(X.map((G)=>this.transport.send(G)));setState(X){this.state=X}},Co=class extends GU{constructor(W,X,G){super(W,X,1,3);this.cipher=G}async exec(W){if(this.dtls.flight===1)throw Error();this.dtls.flight=1;let X=new oS({major:254,minor:253},new TX,Buffer.from([]),Buffer.from([]),sd,[0],W);this.dtls.version=X.clientVersion,this.cipher.localRandom=TX.from(X.random);let G=this.createPacket([X]),Y=Buffer.concat(G.map((J)=>J.serialize()));await this.transmit([Y])}},To=L1("werift-dtls : packages/dtls/src/flight/client/flight3.ts : log"),Mo=class extends GU{constructor(W,X){super(W,X,3,5)}async exec(W){if(this.dtls.flight===3)throw Error();this.dtls.flight=3,this.dtls.handshakeCache=[];let[X]=this.dtls.lastFlight;To("dtls version",X.clientVersion),X.cookie=W.cookie,this.dtls.cookie=W.cookie;let G=this.createPacket([X]),Y=Buffer.concat(G.map((J)=>J.serialize()));await this.transmit([Y])}},zH={NULL:0,ECDHE:1},YU={NULL:0,RSA:1,ECDSA:2,PSK:3},JU={NULL:0,RSA:1,ECDHE_RSA:2,ECDHE_ECDSA:3,PSK:4,ECDHE_PSK:5},ZU=class{id=0;name;signType;keyType;toString(){return this.name}};function Po(){let W=new ZU;return W.id=JU.RSA,W.name="RSA",W.keyType=YU.RSA,W}function Ro(){let W=new ZU;return W.id=JU.ECDHE_RSA,W.name="ECDHE_RSA",W.signType=zH.ECDHE,W.keyType=YU.RSA,W}function Lo(){let W=new ZU;return W.id=JU.ECDHE_ECDSA,W.name="ECDHE_ECDSA",W.signType=zH.ECDHE,W.keyType=YU.ECDSA,W}function Bo(){let W=new ZU;return W.id=JU.PSK,W.name="PSK",W.signType=zH.NULL,W.keyType=YU.PSK,W}function Eo(){let W=new ZU;return W.id=JU.ECDHE_PSK,W.name="ECDHE_PSK",W.signType=zH.ECDHE,W.keyType=YU.PSK,W}var So=L1("werift-dtls : packages/dtls/src/cipher/suites/aead.ts : err"),xo=class extends Uo{keyLength=0;nonceLength=0;ivLength=0;authTagLength=0;nonceImplicitLength=0;nonceExplicitLength=0;clientWriteKey;serverWriteKey;clientNonce;serverNonce;constructor(){super()}get summary(){return cS(this)}init(W,X,G){let Y=Vo(W,G,X,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,X,G){let Y=W===l4.CLIENT,J=Y?this.clientNonce:this.serverNonce,Z=Y?this.clientWriteKey:this.serverWriteKey;if(!J||!Z)throw Error();J.writeUInt16BE(G.epoch,this.nonceImplicitLength),J.writeUIntBE(G.sequenceNumber,this.nonceImplicitLength+2,6);let V=J.slice(this.nonceImplicitLength),U=this.encodeAdditionalBuffer(G,X.length),Q=$o(this.blockAlgorithm,Z,J,{authTagLength:this.authTagLength});Q.setAAD(U,{plaintextLength:X.length});let N=Q.update(X),q=Q.final(),A=Q.getAuthTag();return Buffer.concat([V,N,q,A])}encodeAdditionalBuffer(W,X){let G=Buffer.alloc(13);return G.writeUInt16BE(W.epoch,0),G.writeUintBE(W.sequenceNumber,2,6),G.writeUInt8(W.type,8),G.writeUInt16BE(W.version,9),G.writeUInt16BE(X,11),G}decrypt(W,X,G){let Y=W===l4.CLIENT,J=Y?this.serverNonce:this.clientNonce,Z=Y?this.serverWriteKey:this.clientWriteKey;if(!J||!Z)throw Error();X.subarray(0,this.nonceExplicitLength).copy(J,this.nonceImplicitLength);let U=X.subarray(this.nonceExplicitLength,X.length-this.authTagLength),Q=X.subarray(X.length-this.authTagLength),N=this.encodeAdditionalBuffer(G,U.length),q=Fo(this.blockAlgorithm,Z,J,{authTagLength:this.authTagLength});q.setAuthTag(Q),q.setAAD(N,{plaintextLength:U.length});let A=q.update(U);try{let H=q.final();return H.length>0?Buffer.concat([A,H]):A}catch(H){throw So("decrypt failed",H,W,WO(X),G,this.summary),H}}},h8={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},kV={K_LEN:16,N_MIN:12,N_MAX:12,P_MAX:68719476705,A_MAX:9007199254740991,C_MAX:68719476721},_V={K_LEN:32,N_MIN:12,N_MAX:12,P_MAX:68719476705,A_MAX:9007199254740991,C_MAX:68719476721},i$=Po(),r$=Ro(),a$=Lo(),s$=Bo(),t$=Eo();function rS(W){switch(W){case h8.TLS_RSA_WITH_AES_128_GCM_SHA256:return f7(h8.TLS_RSA_WITH_AES_128_GCM_SHA256,"TLS_RSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",i$,kV);case h8.TLS_RSA_WITH_AES_256_GCM_SHA384:return f7(h8.TLS_RSA_WITH_AES_256_GCM_SHA384,"TLS_RSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",i$,_V,"sha384");case h8.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:return f7(h8.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",r$,kV);case h8.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:return f7(h8.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",r$,_V,"sha384");case h8.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:return f7(h8.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",a$,kV);case h8.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:return f7(h8.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",a$,_V,"sha384");case h8.TLS_PSK_WITH_AES_128_GCM_SHA256:return f7(h8.TLS_PSK_WITH_AES_128_GCM_SHA256,"TLS_PSK_WITH_AES_128_GCM_SHA256","aes-128-gcm",s$,kV,"sha256");case h8.TLS_PSK_WITH_AES_256_GCM_SHA384:return f7(h8.TLS_PSK_WITH_AES_256_GCM_SHA384,"TLS_PSK_WITH_AES_256_GCM_SHA384","aes-256-gcm",s$,_V,"sha384");case h8.TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256:return f7(h8.TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256","aes-128-gcm",t$,kV,"sha256");case h8.TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384:return f7(h8.TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384","aes-256-gcm",t$,_V,"sha384");default:break}return null}function f7(W,X,G,Y,J,Z="sha256"){let V=new xo;return V.id=W,V.name=X,V.blockAlgorithm=G,V.kx=Y,V.hashAlgorithm=Z,V.keyLength=J.K_LEN,V.nonceLength=J.N_MAX,V.nonceImplicitLength=4,V.nonceExplicitLength=8,V.ivLength=V.nonceImplicitLength,V.authTagLength=16,V}function sS(W){switch(W){case s6.secp256r1_23:{let{privateKey:X,publicKey:G}=Xo();return{curve:W,privateKey:X,publicKey:G}}case s6.x25519_29:{let X=aS.default.box.keyPair();return{curve:W,privateKey:Buffer.from(X.secretKey.buffer),publicKey:Buffer.from(X.publicKey.buffer)}}default:throw Error()}}var IH=class{static type=23},wH=class W{static type=65281;static spec={type:MX.types.uint16be,data:MX.types.uint8};type=W.type;data=0;constructor(X={}){Object.assign(this,X)}static createEmpty(){return new W}static deSerialize(X){return new W(MX.decode(X,W.spec))}serialize(){let X=MX.encode(this,W.spec).slice();return Buffer.from(X)}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},hY=class W{static type=14;static spec={type:r6.types.uint16be,data:r6.types.buffer(r6.types.uint16be)};type=W.type;data=Buffer.from([]);profiles=[];mki=Buffer.from([0]);constructor(X={}){Object.assign(this,X)}static create(X,G){return new W({profiles:X,mki:G})}static deSerialize(X){let G=new W(r6.decode(X,W.spec)),Y=G.data.readUInt16BE(),J=Array(Y/2);for(let Z=0;Z<J.length;Z++)J[Z]=G.data.readUInt16BE(Z*2+2);return G.profiles=J,G.mki=G.data.slice(Y+2),G}serialize(){let X=Buffer.alloc(2);X.writeUInt16BE(this.profiles.length*2);let G=Buffer.concat([X,...this.profiles.map((J)=>{let Z=Buffer.alloc(2);return Z.writeUInt16BE(J),Z}),this.mki]);this.data=G;let Y=r6.encode(this,W.spec).slice();return Buffer.from(Y)}static fromData(X){let G=Buffer.alloc(4);return G.writeUInt16BE(W.type),G.writeUInt16BE(X.length,2),W.deSerialize(Buffer.concat([G,X]))}get extension(){return{type:this.type,data:this.serialize().slice(4)}}},GH=class W{constructor(X){this.certificateList=X}msgType=11;messageSeq;static spec={certificateList:PX.types.array(Ao,PX.types.uint24be,"bytes")};static createEmpty(){return new W(void 0)}static deSerialize(X){return new W(...Object.values(PX.decode(X,W.spec)))}serialize(){let X=PX.encode(this,W.spec).slice();return Buffer.from(X)}toFragment(){let X=this.serialize();return new $5(this.msgType,X.length,this.messageSeq,0,X.length,X)}},tS=class W{constructor(X=1){this.type=X}static spec={type:cY.types.uint8};static createEmpty(){return new W}static deSerialize(X){return new W(...Object.values(cY.decode(X,W.spec)))}serialize(){let X=cY.encode(this,W.spec).slice();return Buffer.from(X)}},eS=class W{constructor(X,G){this.algorithm=X,this.signature=G}msgType=15;messageSeq;static spec={algorithm:a6.types.uint16be,signature:a6.types.buffer(a6.types.uint16be)};static createEmpty(){return new W(void 0,void 0)}static deSerialize(X){let G=a6.decode(X,W.spec);return new W(...Object.values(G))}serialize(){let X=a6.encode(this,W.spec).slice();return Buffer.from(X)}toFragment(){let X=this.serialize();return new $5(this.msgType,X.length,this.messageSeq,0,X.length,X)}},W2=class W{constructor(X){this.publicKey=X}msgType=16;messageSeq;static spec={publicKey:RX.types.buffer(RX.types.uint8)};static createEmpty(){return new W(void 0)}static deSerialize(X){let G=RX.decode(X,W.spec);return new W(...Object.values(G))}serialize(){let X=RX.encode(this,W.spec).slice();return Buffer.from(X)}toFragment(){let X=this.serialize();return new $5(this.msgType,X.length,this.messageSeq,0,X.length,X)}},FK=class W{constructor(X){this.verifyData=X}msgType=20;messageSeq;static createEmpty(){return new W(void 0)}static deSerialize(X){return new W(X)}serialize(){return this.verifyData}toFragment(){let X=this.serialize();return new $5(this.msgType,X.length,this.messageSeq,0,X.length,X)}},X2=class W{constructor(X,G,Y){this.certificateTypes=X,this.signatures=G,this.authorities=Y}msgType=13;messageSeq;static spec={certificateTypes:Z7.types.array(zo,Z7.types.uint8,"bytes"),signatures:Z7.types.array(wo,Z7.types.uint16be,"bytes"),authorities:Z7.types.array(Io,Z7.types.uint16be,"bytes")};static createEmpty(){return new W(void 0,void 0,void 0)}static deSerialize(X){return new W(...Object.values(Z7.decode(X,W.spec)))}serialize(){let X=Z7.encode(this,W.spec).slice();return Buffer.from(X)}toFragment(){let X=this.serialize();return new $5(this.msgType,X.length,this.messageSeq,0,X.length,X)}},G2=class W{constructor(X,G,Y,J,Z,V){this.serverVersion=X,this.random=G,this.sessionId=Y,this.cipherSuite=J,this.compressionMethod=Z,this.extensions=V}msgType=2;messageSeq;static spec={serverVersion:XO,random:TX.spec,sessionId:V7.types.buffer(V7.types.uint8),cipherSuite:V7.types.uint16be,compressionMethod:V7.types.uint8};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(X){let G=V7.decode(X,W.spec),Y=new W(...Object.values(G));if(Y.serialize().length<X.length)return new W(...Object.values(V7.decode(X,{...W.spec,extensions:EK})));return Y}serialize(){let X=this.extensions===void 0?V7.encode(this,W.spec).slice():V7.encode(this,{...W.spec,extensions:EK}).slice();return Buffer.from(X)}toFragment(){let X=this.serialize();return new $5(this.msgType,X.length,this.messageSeq,0,X.length,X)}},Y2=class W{msgType=14;messageSeq;static spec={};static createEmpty(){return new W}static deSerialize(X){return new W(...Object.values(jH.decode(X,W.spec)))}serialize(){let X=jH.encode(this,W.spec).slice();return Buffer.from(X)}toFragment(){let X=this.serialize();return new $5(this.msgType,X.length,this.messageSeq,0,X.length,X)}};function ko(W,X){return Buffer.from(J2.encode(W,X).slice())}var Z2=class W{constructor(X,G,Y,J,Z,V,U,Q){this.ellipticCurveType=X,this.namedCurve=G,this.publicKeyLength=Y,this.publicKey=J,this.hashAlgorithm=Z,this.signatureAlgorithm=V,this.signatureLength=U,this.signature=Q}msgType=12;messageSeq;static spec={ellipticCurveType:Y7.types.uint8,namedCurve:Y7.types.uint16be,publicKeyLength:Y7.types.uint8,publicKey:Y7.types.buffer((X)=>X.current.publicKeyLength),hashAlgorithm:Y7.types.uint8,signatureAlgorithm:Y7.types.uint8,signatureLength:Y7.types.uint16be,signature:Y7.types.buffer((X)=>X.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(X){let G=Y7.decode(X,W.spec);return new W(...Object.values(G))}serialize(){return ko(this,W.spec)}toFragment(){let X=this.serialize();return new $5(this.msgType,X.length,this.messageSeq,0,X.length,X)}},KH=1,VU=7;var _o=(W)=>{switch(W){case KH:case VU:return 16}},yo=(W)=>{switch(W){case KH:return 14;case VU:return 12}},lH0=L1("werift-rtp : packages/rtp/src/codec/av1.ts");var go={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"},dH0=Object.entries(go).reduce((W,[X,G])=>{return W[G]=Number(X),W},{});var oH0=Buffer.from([0,0,0,1]);function e$(W,X){let G=Buffer.alloc(X);return W.copy(G),G}function YH(W){return Number.parseInt(W.toString(),10)}function uo(W){let X=W[0];return X>127&&X<192}var SK=4,WW=class W{version=2;padding=!1;count=0;type=0;length=0;constructor(X={}){Object.assign(this,X)}static serialize(X,G,Y,J){let V=new W({type:X,count:G,version:2,length:J}).serialize();return Buffer.concat([V,Y])}serialize(){let X=new aq(8);if(X.set(2,0,this.version),this.padding)X.set(1,2,1);return X.set(5,3,this.count),S8([1,1,2],[X.value,this.type,this.length])}static deSerialize(X){let[G,Y,J]=t9(X,[1,1,2]),Z=b8(G,0,2),V=b8(G,2,1)>0,U=b8(G,3,5);return new W({version:Z,padding:V,count:U,type:Y,length:J})}},WF=class W{static count=4;count=W.count;senderSsrc;mediaSsrc;fir=[];constructor(X={}){Object.assign(this,X)}get length(){return Math.floor(this.serialize().length/4-1)}static deSerialize(X){let[G,Y]=t9(X,[4,4]),J=[];for(let Z=8;Z<X.length;Z+=8)J.push({ssrc:X.readUInt32BE(Z),sequenceNumber:X[Z+4]});return new W({senderSsrc:G,mediaSsrc:Y,fir:J})}serialize(){let X=S8([4,4],[this.senderSsrc,this.mediaSsrc]),G=Buffer.alloc(this.fir.length*8);return this.fir.forEach(({ssrc:Y,sequenceNumber:J},Z)=>{G.writeUInt32BE(Y,Z*8),G[Z*8+4]=J}),Buffer.concat([X,G])}},JH=class W{static count=1;count=W.count;length=2;senderSsrc;mediaSsrc;constructor(X={}){Object.assign(this,X)}static deSerialize(X){let[G,Y]=t9(X,[4,4]);return new W({senderSsrc:G,mediaSsrc:Y})}serialize(){return S8([4,4],[this.senderSsrc,this.mediaSsrc])}},ZH=class W{static count=15;length;count=W.count;senderSsrc;mediaSsrc;uniqueID="REMB";ssrcNum=0;brExp;brMantissa;bitrate;ssrcFeedbacks=[];constructor(X={}){Object.assign(this,X)}static deSerialize(X){let[G,Y,J,Z,V]=t9(X,[4,4,4,1,1]),U=b8(V,0,6),Q=(b8(V,6,2)<<16)+(X[14]<<8)+X[15],N=U>46?18446744073709551615n:BigInt(Q)<<BigInt(U),q=[];for(let A=16;A<X.length;A+=4){let H=X.slice(A).readUIntBE(0,4);q.push(H)}return new W({senderSsrc:G,mediaSsrc:Y,uniqueID:S8([4],[J]).toString(),ssrcNum:Z,brExp:U,brMantissa:Q,ssrcFeedbacks:q,bitrate:N})}serialize(){let X=Buffer.concat([S8([4,4],[this.senderSsrc,this.mediaSsrc]),Buffer.from(this.uniqueID),S8([1],[this.ssrcNum])]),G=new aq(24);G.set(6,0,this.brExp).set(18,6,this.brMantissa);let Y=Buffer.concat(this.ssrcFeedbacks.map((Z)=>S8([4],[Z]))),J=Buffer.concat([X,S8([3],[G.value]),Y]);return this.length=J.length/4,J}},ho=L1("werift-rtp: /rtcp/psfb/index"),iV=class W{static type=206;type=W.type;feedback;constructor(X={}){Object.assign(this,X)}serialize(){let X=this.feedback.serialize();return WW.serialize(this.type,this.feedback.count,X,this.feedback.length)}static deSerialize(X,G){let Y;switch(G.count){case WF.count:Y=WF.deSerialize(X);break;case JH.count:Y=JH.deSerialize(X);break;case ZH.count:Y=ZH.deSerialize(X);break;default:ho("unknown psfb packet",G.count);break}return new W({feedback:Y})}},rV=class W{ssrc=0;reports=[];static type=201;type=W.type;constructor(X={}){Object.assign(this,X)}serialize(){let X=S8([4],[this.ssrc]);return X=Buffer.concat([X,...this.reports.map((G)=>G.serialize())]),WW.serialize(W.type,this.reports.length,X,Math.floor(X.length/4))}static deSerialize(X,G){let[Y]=t9(X,[4]),J=4,Z=[];for(let V=0;V<G;V++)Z.push(GO.deSerialize(X.slice(J,J+24))),J+=24;return new W({ssrc:Y,reports:Z})}},GO=class W{ssrc;fractionLost;packetsLost;highestSequence;jitter;lsr;dlsr;constructor(X={}){Object.assign(this,X)}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 S8([4,1,3,4,4,4,4],[this.ssrc,this.fractionLost,this.packetsLost,this.highestSequence,this.jitter,this.lsr,this.dlsr])}static deSerialize(X){let[G,Y,J,Z,V,U,Q]=t9(X,[4,1,3,4,4,4,4]);return new W({ssrc:G,fractionLost:Y,packetsLost:J,highestSequence:Z,jitter:V,lsr:U,dlsr:Q})}},V2=205,VH=class W{static count=1;count=W.count;header;senderSsrc;mediaSourceSsrc;lost=[];toJSON(){return{lost:this.lost,senderSsrc:this.senderSsrc,mediaSourceSsrc:this.mediaSourceSsrc}}constructor(X={}){if(Object.assign(this,X),!this.header)this.header=new WW({type:V2,count:this.count,version:2})}static deSerialize(X,G){let[Y,J]=t9(X,[4,4]),Z=[];for(let V=8;V<X.length;V+=4){let[U,Q]=t9(X.subarray(V),[2,2]);Z.push(U);for(let N=0;N<16;N++)if(Q>>N&1)Z.push(U+N+1)}return new W({header:G,senderSsrc:Y,mediaSourceSsrc:J,lost:Z})}serialize(){let X=S8([4,4],[this.senderSsrc,this.mediaSourceSsrc]),G=[];if(this.lost.length>0){let J=this.lost[0],Z=0;this.lost.slice(1).forEach((V)=>{let U=V-J-1;if(U>=0&&U<16)Z|=1<<U;else G.push(S8([2,2],[J,Z])),J=V,Z=0}),G.push(S8([2,2],[J,Z]))}let Y=Buffer.concat([X,Buffer.concat(G)]);return this.header.length=Y.length/4,Buffer.concat([this.header.serialize(),Y])}},bo=L1("werift/rtp/rtcp/rtpfb/twcc"),UH=class W{static count=15;count=W.count;length=2;senderSsrc;mediaSourceSsrc;baseSequenceNumber;packetStatusCount;referenceTime;fbPktCount;packetChunks=[];recvDeltas=[];header;constructor(X={}){if(Object.assign(this,X),!this.header)this.header=new WW({type:205,count:this.count,version:2})}static deSerialize(X,G){let[Y,J,Z,V,U,Q]=t9(X,[4,4,2,2,3,1]),N=[],q=[],A=16;for(let I=0;I<V;){let w=b8(X.slice(A,A+1)[0],0,1),O;switch(w){case 0:{let T=dV.deSerialize(X.slice(A,A+2));O=T;let x=Math.min(V-I,T.runLength);if(T.packetStatus===1||T.packetStatus===2)for(let u=0;u<x;u++)q.push(new uq({type:T.packetStatus}));I+=x}break;case 1:{let T=mo.deSerialize(X.slice(A,A+2));if(O=T,T.symbolSize===0)T.symbolList.forEach((x)=>{if(x===1)q.push(new uq({type:1}))});if(T.symbolSize===1)T.symbolList.forEach((x)=>{if(x===1||x===2)q.push(new uq({type:x}))});I+=T.symbolList.length}break}if(!O)throw Error();A+=2,N.push(O)}let H=A;return q.forEach((I)=>{if(I.type===1)I.deSerialize(X.slice(H,H+1)),H++;if(I.type===2)I.deSerialize(X.slice(H,H+2)),H+=2}),new W({senderSsrc:Y,mediaSourceSsrc:J,baseSequenceNumber:Z,packetStatusCount:V,referenceTime:U,fbPktCount:Q,recvDeltas:q,packetChunks:N,header:G})}serialize(){let X=S8([4,4,2,2,3,1],[this.senderSsrc,this.mediaSourceSsrc,this.baseSequenceNumber,this.packetStatusCount,this.referenceTime,this.fbPktCount]),G=Buffer.concat(this.packetChunks.map((Z)=>Z.serialize())),Y=Buffer.concat(this.recvDeltas.map((Z)=>{try{return Z.serialize()}catch(V){bo(V?.message);return}}).filter((Z)=>Z)),J=Buffer.concat([X,G,Y]);if(this.header.padding&&J.length%4!==0){let Z=4-J.length%4,V=Buffer.alloc(Z);return V[V.length-1]=V.length,this.header.length=Math.floor((J.length+V.length)/4),Buffer.concat([this.header.serialize(),J,V])}return this.header.length=Math.floor(J.length/4),Buffer.concat([this.header.serialize(),J])}get packetResults(){let X=this.baseSequenceNumber-1,G=this.packetChunks.filter((V)=>V instanceof dV).flatMap((V)=>V.results(X)),Y=0,Z=BigInt(this.referenceTime)*64n;for(let V of G){let U=this.recvDeltas[Y];if(!V.received||!U)continue;Z+=BigInt(U.delta)/1000n,V.delta=U.delta,V.receivedAtMs=Number(Z),Y++}return G}},dV=class W{type;packetStatus;runLength;constructor(X={}){Object.assign(this,X),this.type=0}static deSerialize(X){let G=b8(X[0],1,2),Y=(b8(X[0],3,5)<<8)+X[1];return new W({type:0,packetStatus:G,runLength:Y})}serialize(){return new MS(16).set(0).set(this.packetStatus,2).set(this.runLength,13).buffer}results(X){let G=this.packetStatus===1||this.packetStatus===2,Y=[];for(let J=0;J<=this.runLength;++J)Y.push(new fo({sequenceNumber:++X,received:G}));return Y}},mo=class W{type;symbolSize;symbolList=[];constructor(X={}){Object.assign(this,X)}static deSerialize(X){let Y=b8(X[0],1,1),J=[];function Z(V,U){for(let Q=0;Q<V;Q++)U(Q)}switch(Y){case 0:Z(6,(V)=>J.push(b8(X[0],2+V,1))),Z(8,(V)=>J.push(b8(X[1],V,1)));break;case 1:Z(3,(V)=>J.push(b8(X[0],2+V*2,2))),Z(4,(V)=>J.push(b8(X[1],V*2,2)));break;default:Y=(b8(X[0],2,6)<<8)+X[1]}return new W({type:1,symbolSize:Y,symbolList:J})}serialize(){let X=Buffer.alloc(2),G=new MS(16).set(1).set(this.symbolSize),Y=this.symbolSize===0?1:2;return this.symbolList.forEach((J)=>{G.set(J,Y)}),X.writeUInt16BE(G.value),X}},uq=class W{type;delta;constructor(X={}){Object.assign(this,X)}static deSerialize(X){let G,Y;if(X.length===1)G=1,Y=250*X[0];else if(X.length===2)G=2,Y=250*X.readInt16BE();if(G===void 0||Y===void 0)throw Error();return new W({type:G,delta:Y})}deSerialize(X){let G=W.deSerialize(X);this.delta=G.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 X=Buffer.alloc(1);return X.writeUInt8(this.delta),X}else if(this.type===2){let X=Buffer.alloc(2);return X.writeInt16BE(this.delta),X}throw Error("errDeltaExceedLimit "+this.delta+" "+this.type)}};var fo=class{sequenceNumber=0;delta=0;received=!1;receivedAtMs=0;constructor(W){Object.assign(this,W)}},po=L1("werift-rtp:packages/rtp/rtcp/rtpfb/index"),bY=class W{static type=V2;type=W.type;feedback;header;constructor(X={}){Object.assign(this,X)}serialize(){return this.feedback.serialize()}static deSerialize(X,G){let Y;switch(G.count){case VH.count:Y=VH.deSerialize(X,G);break;case UH.count:Y=UH.deSerialize(X,G);break;default:po("unknown rtpfb packet",G.count);break}return new W({feedback:Y,header:G})}},QH=class W{static type=202;type=W.type;chunks=[];constructor(X){Object.assign(this,X)}get length(){let X=0;return this.chunks.forEach((G)=>X+=G.length),X}serialize(){let X=Buffer.concat(this.chunks.map((G)=>G.serialize()));while(X.length%4)X=Buffer.concat([X,Buffer.from([0])]);return WW.serialize(this.type,this.chunks.length,X,X.length/4)}static deSerialize(X,G){let Y=[];for(let J=0;J<X.length;){let Z=U2.deSerialize(X.slice(J));Y.push(Z),J+=Z.length}return new W({chunks:Y})}},U2=class W{source;items=[];constructor(X={}){Object.assign(this,X)}get length(){let X=4;return this.items.forEach((G)=>X+=G.length),X+=1,X+=XF(X),X}serialize(){let X=Buffer.concat([S8([4],[this.source]),Buffer.concat(this.items.map((Y)=>Y.serialize()))]);return Buffer.concat([X,Buffer.alloc(XF(X.length))])}static deSerialize(X){let G=X.readUInt32BE(),Y=[];for(let J=4;J<X.length;){if(X[J]===0)break;let V=Q2.deSerialize(X.slice(J));Y.push(V),J+=V.length}return new W({source:G,items:Y})}},Q2=class W{type;text;constructor(X){Object.assign(this,X)}get length(){return 2+Buffer.from(this.text).length}serialize(){let X=Buffer.from(this.text);return Buffer.concat([S8([1,1],[this.type,X.length]),X])}static deSerialize(X){let G=X[0],Y=X[1],J=X.slice(2,2+Y).toString();return new W({type:G,text:J})}};function XF(W){if(W%4==0)return 0;return 4-W%4}var mY=class W{ssrc=0;senderInfo;reports=[];static type=200;type=W.type;constructor(X){Object.assign(this,X)}toJSON(){return{ssrc:this.ssrc,senderInfo:this.senderInfo.toJSON(),reports:this.reports.map((X)=>X.toJSON())}}serialize(){let X=Buffer.alloc(4);return X.writeUInt32BE(this.ssrc),X=Buffer.concat([X,this.senderInfo.serialize()]),X=Buffer.concat([X,...this.reports.map((G)=>G.serialize())]),WW.serialize(W.type,this.reports.length,X,Math.floor(X.length/4))}static deSerialize(X,G){let Y=X.readUInt32BE(),J=N2.deSerialize(X.subarray(4,24)),Z=24,V=[];for(let Q=0;Q<G;Q++)V.push(GO.deSerialize(X.subarray(Z,Z+24))),Z+=24;return new W({ssrc:Y,senderInfo:J,reports:V})}},N2=class W{ntpTimestamp;rtpTimestamp;packetCount;octetCount;constructor(X={}){Object.assign(this,X)}toJSON(){return{ntpTimestamp:co(this.ntpTimestamp),rtpTimestamp:this.rtpTimestamp}}serialize(){return S8([8,4,4,4],[this.ntpTimestamp,this.rtpTimestamp,this.packetCount,this.octetCount])}static deSerialize(X){let[G,Y,J,Z]=t9(X,[8,4,4,4]);return new W({ntpTimestamp:G,rtpTimestamp:Y,packetCount:J,octetCount:Z})}},co=(W)=>{let[X,G]=t9(S8([8],[W]),[4,4]);return Number(`${X}.${G}`)},lo=L1("werift-rtp:packages/rtp/src/rtcp/rtcp.ts"),oo=class{static deSerialize(W){let X=0,G=[];while(X<W.length){let Y=WW.deSerialize(W.subarray(X,X+SK));X+=SK;let J=W.subarray(X);if(X+=Y.length*4,Y.padding)J=J.subarray(0,J.length-J.subarray(-1)[0]);try{switch(Y.type){case mY.type:G.push(mY.deSerialize(J,Y.count));break;case rV.type:G.push(rV.deSerialize(J,Y.count));break;case QH.type:G.push(QH.deSerialize(J,Y));break;case bY.type:G.push(bY.deSerialize(J,Y));break;case iV.type:G.push(iV.deSerialize(J,Y));break;default:break}}catch(Z){lo("deSerialize RTCP",Z)}}return G}};function no(W){return W.length>=2&&W[1]>=192&&W[1]<=208}var P9={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 io(W,X){return W.map((G)=>{let Y=X[G.id];if(!Y)return{uri:"unknown",value:G.payload};switch(Y){case P9.sdesMid:case P9.sdesRTPStreamID:case P9.repairedRtpStreamId:return{uri:Y,value:Wn(G.payload)};case P9.transportWideCC:return{uri:Y,value:Xn(G.payload)};case P9.absSendTime:return{uri:Y,value:Gn(G.payload)};case P9.audioLevelIndication:return{uri:Y,value:Yn(G.payload)};case P9.videoOrientation:return{uri:Y,value:Jn(G.payload)};default:return{uri:Y,value:G.payload}}}).reduce((G,Y)=>{if(Y)G[Y.uri]=Y.value;return G},{})}function ro(W){return Buffer.from(W)}function ao(W){return Buffer.from(W)}function so(W){return Buffer.from(W)}function to(W){return S8([2],[W])}function eo(W){let X=Buffer.alloc(3),G=W>>14n&0x00ffffffn;return X.writeUIntBE(Number(G),0,3),X}function Wn(W){return W.toString()}function Xn(W){return W.readUInt16BE()}function Gn(W){return t9(W,[3])[0]}function Yn(W){let X=new cV(W);return{v:X.readBits(1)===1,level:X.readBits(7)}}function Jn(W){let X=new cV(W);return X.readBits(4),{c:X.readBits(1),f:X.readBits(1),r1:X.readBits(1),r0:X.readBits(1)}}var Zn=L1("packages/rtp/src/rtp/red/packet.ts"),q2=class W{header;blocks=[];static deSerialize(X){let G=X instanceof ArrayBuffer?Buffer.from(X):X,Y=new W,J=0;return[Y.header,J]=GF.deSerialize(G),Y.header.fields.forEach(({blockLength:Z,timestampOffset:V,blockPT:U})=>{if(Z&&V){let Q=G.subarray(J,J+Z);Y.blocks.push({block:Q,blockPT:U,timestampOffset:V}),J+=Z}else{let Q=G.subarray(J);Y.blocks.push({block:Q,blockPT:U})}}),Y}serialize(){this.header=new GF;for(let{timestampOffset:G,blockPT:Y,block:J}of this.blocks)if(G)this.header.fields.push({fBit:1,blockPT:Y,blockLength:J.length,timestampOffset:G});else this.header.fields.push({fBit:0,blockPT:Y});let X=this.header.serialize();for(let{block:G}of this.blocks)X=Buffer.concat([X,G]);return X}},GF=class W{fields=[];static deSerialize(X){let G=0,Y=new W;for(;;){let J={};Y.fields.push(J);let Z=new cV(X.subarray(G));if(J.fBit=Z.readBits(1),J.blockPT=Z.readBits(7),G++,J.fBit===0)break;J.timestampOffset=Z.readBits(14),J.blockLength=Z.readBits(10),G+=3}return[Y,G]}serialize(){let X=Buffer.alloc(0);for(let G of this.fields)try{if(G.timestampOffset&&G.blockLength){let Y=new cV(Buffer.alloc(4)).writeBits(1,G.fBit).writeBits(7,G.blockPT).writeBits(14,G.timestampOffset).writeBits(10,G.blockLength);X=Buffer.concat([X,Y.uint8Array])}else{let Y=new cV(Buffer.alloc(1)).writeBits(1,0).writeBits(7,G.blockPT);X=Buffer.concat([X,Y.uint8Array])}}catch(Y){Zn(Y?.message)}return X}},Vn=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 q2,X=this.cache.slice(-(this.distance+1)),G=X.pop();if(!G)return W;return X.forEach((Y)=>{let J=gY(G.timestamp,-Y.timestamp);if(J>Un)return;W.blocks.push({block:Y.block,blockPT:Y.blockPT,timestampOffset:J})}),W.blocks.push({block:G.block,blockPT:G.blockPT}),W}},Un=16383,Qn=class{size=150;sequenceNumbers=[];push(W,X){let G=[];return W.blocks.forEach(({blockPT:J,timestampOffset:Z,block:V},U)=>{let Q=R9(X.header.sequenceNumber,-(W.blocks.length-(U+1)));if(Z)G.push(new e6(new t6({timestamp:gY(X.header.timestamp,-Z),payloadType:J,ssrc:X.header.ssrc,sequenceNumber:Q,marker:!0}),V));else G.push(new e6(new t6({timestamp:X.header.timestamp,payloadType:J,ssrc:X.header.ssrc,sequenceNumber:Q,marker:!0}),V))}),G.filter((J)=>{if(this.sequenceNumbers.includes(J.header.sequenceNumber))return!1;else{if(this.sequenceNumbers.length>this.size)this.sequenceNumbers.shift();return this.sequenceNumbers.push(J.header.sequenceNumber),!0}})}},jX={OneByte:48862,TwoByte:4096},YF=2,JF=4,ZF=8,VF=12,UF=4,t6=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=jX.OneByte;extensionLength;extensions=[];constructor(X={}){Object.assign(this,X)}static deSerialize(X){let G=new W,Y=0,J=X[Y++];G.version=b8(J,0,2),G.padding=b8(J,2)>0,G.extension=b8(J,3)>0,G.csrcLength=b8(J,4,4),G.csrc=[...Array(G.csrcLength)].map(()=>{let V=X.readUInt32BE(Y);return Y+=4,V}),Y+=VF-1;let Z=X[1];G.marker=b8(Z,0)>0,G.payloadType=b8(Z,1,7),G.sequenceNumber=X.readUInt16BE(YF),G.timestamp=X.readUInt32BE(JF),G.ssrc=X.readUInt32BE(ZF);for(let V=0;V<G.csrc.length;V++){let U=VF+V*UF;G.csrc[V]=X.subarray(U).readUInt32BE()}if(G.extension){G.extensionProfile=X.subarray(Y).readUInt16BE(),Y+=2;let V=X.subarray(Y).readUInt16BE()*4;switch(G.extensionLength=V,Y+=2,G.extensionProfile){case jX.OneByte:{let U=Y+V;while(Y<U){if(X[Y]===0){Y++;continue}let Q=X[Y]>>4,N=(X[Y]&(X[Y]^240))+1;if(Y++,Q===15)break;let q={id:Q,payload:X.subarray(Y,Y+N)};G.extensions=[...G.extensions,q],Y+=N}}break;case jX.TwoByte:{let U=Y+V;while(Y<U){if(X[Y]===0){Y++;continue}let Q=X[Y];Y++;let N=X[Y];Y++;let q={id:Q,payload:X.subarray(Y,Y+N)};G.extensions=[...G.extensions,q],Y+=N}}break;default:{let U={id:0,payload:X.subarray(Y,Y+V)};G.extensions=[...G.extensions,U],Y+=G.extensions[0].payload.length}break}}if(G.payloadOffset=Y,G.padding)G.paddingSize=X[X.length-1];return G}get serializeSize(){let{csrc:X,extensionProfile:G,extensions:Y}=this,J=12+X.length*UF;if(Y.length>0||this.extension===!0){let Z=4;switch(G){case jX.OneByte:for(let V of Y)Z+=1+V.payload.length;break;case jX.TwoByte:for(let V of Y)Z+=2+V.payload.length;break;default:Z+=Y[0].payload.length}J+=Math.floor((Z+3)/4)*4}return J}serialize(X){let G=Buffer.alloc(X),Y=0,J=new aq(8);if(J.set(2,0,this.version),this.padding)J.set(1,2,1);if(this.extensions.length>0)this.extension=!0;if(this.extension)J.set(1,3,1);J.set(4,4,this.csrc.length),G.writeUInt8(J.value,Y++);let Z=new aq(8);if(this.marker)Z.set(1,0,1);Z.set(7,1,this.payloadType),G.writeUInt8(Z.value,Y++),G.writeUInt16BE(this.sequenceNumber,YF),Y+=2,G.writeUInt32BE(this.timestamp,JF),Y+=4,G.writeUInt32BE(this.ssrc,ZF),Y+=4;for(let V of this.csrc)G.writeUInt32BE(V,Y),Y+=4;if(this.extension){let V=Y;G.writeUInt16BE(this.extensionProfile,Y),Y+=4;let U=Y;switch(this.extensionProfile){case jX.OneByte:for(let q of this.extensions)G.writeUInt8(q.id<<4|q.payload.length-1,Y++),q.payload.copy(G,Y),Y+=q.payload.length;break;case jX.TwoByte:for(let q of this.extensions)G.writeUInt8(q.id,Y++),G.writeUInt8(q.payload.length,Y++),q.payload.copy(G,Y),Y+=q.payload.length;break;default:{let q=this.extensions[0].payload.length;if(q%4!=0)throw Error();this.extensions[0].payload.copy(G,Y),Y+=q}}let Q=Y-U,N=Math.trunc((Q+3)/4)*4;G.writeUInt16BE(Math.trunc(N/4),V+2);for(let q=0;q<N-Q;q++)G.writeUInt8(0,Y),Y++}return this.payloadOffset=Y,G}},e6=class W{constructor(X,G){this.header=X,this.payload=G}get serializeSize(){return this.header.serializeSize+this.payload.length}clone(){return new W(new t6({...this.header}),this.payload)}serialize(){let X=this.header.serialize(this.header.serializeSize+this.payload.length),{payloadOffset:G}=this.header;if(this.payload.copy(X,G),this.header.padding){let Y=Buffer.alloc(this.header.paddingSize);Y.writeUInt8(this.header.paddingSize,this.header.paddingSize-1),X=Buffer.concat([X,Y])}return X}static deSerialize(X){let G=t6.deSerialize(X);return new W(G,X.subarray(G.payloadOffset,X.length-G.paddingSize))}clear(){this.payload=null}};function Nn(W,X,G){return new e6(new t6({payloadType:X,marker:W.header.marker,sequenceNumber:X8.Unpack("!H",W.payload.subarray(0,2))[0],timestamp:W.header.timestamp,ssrc:G}),W.payload.subarray(2))}function qn(W,X,G,Y){return new e6(new t6({payloadType:X,marker:W.header.marker,sequenceNumber:G,timestamp:W.header.timestamp,ssrc:Y,csrc:W.header.csrc,extensions:W.header.extensions}),Buffer.concat([Buffer.from(X8.Pack("!H",[W.header.sequenceNumber])),W.payload]))}var H2=class{constructor(W,X,G,Y){this.srtpSessionKey=W,this.srtpSessionSalt=X,this.srtcpSessionKey=G,this.srtcpSessionSalt=Y}encryptRtp(W,X,G){return Buffer.from([])}decryptRtp(W,X,G){return[]}encryptRTCP(W,X){return Buffer.from([])}decryptRTCP(W){return[]}},fY=class extends Error{constructor(W){super(W);this.name="SrtpAuthenticationError"}},HF=12,An=8;function YO(W,X,G="Failed to authenticate SRTP packet"){let Y=W.length-X;aV(W.length>=HF+X,G);let J=z2(()=>t6.deSerialize(W.subarray(0,Y)),G);return J.paddingSize=0,aV(J.payloadOffset>=HF&&J.payloadOffset<=Y,G),J}function A2(W,X,G,Y="Failed to authenticate SRTCP packet"){return aV(W.length>=An+X+G,Y),z2(()=>WW.deSerialize(W.subarray(0,SK)),Y)}function aV(W,X){if(!W)throw new fY(X)}function z2(W,X){try{return W()}catch{throw new fY(X)}}function I2(W,X,G="Failed to authenticate SRTP packet"){if(!W.padding)return W.paddingSize=0,W;aV(X.length>W.payloadOffset,G);let Y=X[X.length-1];return aV(Y>0&&Y<=X.length-W.payloadOffset,G),W.paddingSize=Y,W}var zn=class extends H2{constructor(W,X,G,Y,J,Z){super(W,X,G,Y);this.srtpSessionAuthTag=J,this.srtcpSessionAuthTag=Z}authTagLength=10;encryptRtp(W,X,G){let Y=W.serialize(W.serializeSize),J=this.generateCounter(W.sequenceNumber,G,W.ssrc,this.srtpSessionSalt),V=QF("aes-128-ctr",this.srtpSessionKey,J).update(X),U=this.generateSrtpAuthTag(G,Y,V);return Buffer.concat([Y,V,U])}decryptRtp(W,X,G=YO(W,this.authTagLength)){let Y=W.length-this.authTagLength,J=W.subarray(0,Y),Z=W.subarray(Y),V=this.generateSrtpAuthTag(X,J.subarray(0,G.payloadOffset),J.subarray(G.payloadOffset));zF(Z,V,"Failed to authenticate SRTP packet");let U=this.generateCounter(G.sequenceNumber,X,G.ssrc,this.srtpSessionSalt),Q=NF("aes-128-ctr",this.srtpSessionKey,U),N=J.subarray(G.payloadOffset),q=Q.update(N),A=Buffer.concat([J.subarray(0,G.payloadOffset),q]);return[A,I2(G,A,"Failed to authenticate SRTP packet")]}encryptRTCP(W,X){let G=Buffer.from(W),Y=G.readUInt32BE(4),J=this.generateCounter(X&65535,X>>16,Y,this.srtcpSessionSalt);QF("aes-128-ctr",this.srtcpSessionKey,J).update(G.slice(8)).copy(G,8),G=Buffer.concat([G,Buffer.alloc(4)]),G.writeUInt32BE(X,G.length-4),G[G.length-4]|=128;let U=this.generateSrtcpAuthTag(G);return G=Buffer.concat([G,U]),G}decryptRTCP(W){let X=A2(W,this.authTagLength,AF),G=W.length-(this.authTagLength+AF),Y=W.subarray(0,W.length-this.authTagLength),J=W.subarray(W.length-this.authTagLength),Z=this.generateSrtcpAuthTag(Y);zF(J,Z,"Failed to authenticate SRTCP packet");let V=Buffer.from(W).slice(0,G);if(W[G]>>>7===0)return[V,X];let Q=W.readUInt32BE(G);Q&=2147483647;let N=W.readUInt32BE(4),q=this.generateCounter(Q&65535,Q>>16,N,this.srtcpSessionSalt);return NF("aes-128-ctr",this.srtcpSessionKey,q).update(V.subarray(8)).copy(V,8),[V,X]}generateSrtcpAuthTag(W){return qF("sha1",this.srtcpSessionAuthTag).update(W).digest().slice(0,10)}generateCounter(W,X,G,Y){let J=Buffer.alloc(16);J.writeUInt32BE(G,4),J.writeUInt32BE(X,8),J.writeUInt32BE(Number(BigInt(W)<<16n),12);for(let Z=0;Z<Y.length;Z++)J[Z]^=Y[Z];return J}generateSrtpAuthTag(W,...X){let G=qF("sha1",this.srtpSessionAuthTag),Y=Buffer.alloc(4);Y.writeUInt32BE(W);for(let J of X)G.update(J);return G.update(Y).digest().subarray(0,10)}},AF=4;function zF(W,X,G){if(W.length!==X.length||!Hn(W,X))throw new fY(G)}var In=class extends H2{aeadAuthTagLen=16;rtpIvWriter=gq([2,4,4,2],!0);rtcpIvWriter=gq([2,4,2,4],!0);aadWriter=gq([4],!0);constructor(W,X,G,Y){super(W,X,G,Y)}encryptRtp(W,X,G){let Y=W.serialize(W.serializeSize),J=this.rtpInitializationVector(W,G),Z=IF("aes-128-gcm",this.srtpSessionKey,J);Z.setAAD(Y);let V=Z.update(X);Z.final();let U=Z.getAuthTag();return Buffer.concat([Y,V,U])}decryptRtp(W,X,G=YO(W,this.aeadAuthTagLen)){let Y=W.subarray(0,G.payloadOffset),J=W.length-this.aeadAuthTagLen,Z=W.subarray(J),V=Buffer.from([]);V=e$(V,W.length-this.aeadAuthTagLen),Y.copy(V);let U=this.rtpInitializationVector(G,X),Q=W.slice(G.payloadOffset,J),N=wF("aes-128-gcm",this.srtpSessionKey,U);N.setAAD(Y),N.setAuthTag(Z);let q=N.update(Q);return KF(N,"SRTP"),q.copy(V,G.payloadOffset),[V,I2(G,V,"Failed to authenticate SRTP packet")]}encryptRTCP(W,X){let G=W.readUInt32BE(4),Y=W.length+this.aeadAuthTagLen,J=Buffer.from([]);J=e$(J,Y+UK),W.slice(0,8).copy(J);let Z=this.rtcpInitializationVector(G,X),V=this.rtcpAdditionalAuthenticatedData(W,X),U=IF("aes-128-gcm",this.srtcpSessionKey,Z);U.setAAD(V);let Q=U.update(W.slice(8));return U.final(),Q.copy(J,8),U.getAuthTag().copy(J,8+Q.length),V.slice(8,12).copy(J,Y),J}decryptRTCP(W){let X=A2(W,this.aeadAuthTagLen,UK),G=W.length-UK,Y=G-this.aeadAuthTagLen,J=W.readUInt32BE(4),Z=W.readUInt32BE(G),V=Z>>>31===1,U=Z&~(jF<<24),Q=this.rtcpInitializationVector(J,U),N=V?Buffer.concat([W.subarray(0,8),W.subarray(G)]):Buffer.concat([W.subarray(0,Y),W.subarray(G)]),q=V?W.slice(8,Y):Buffer.alloc(0),A=V?Buffer.alloc(Y):Buffer.from(W.subarray(0,Y));if(V)W.slice(0,8).copy(A);let H=wF("aes-128-gcm",this.srtcpSessionKey,Q);H.setAAD(N),H.setAuthTag(W.subarray(Y,G));let I=H.update(q);if(KF(H,"SRTCP"),V)I.copy(A,8);return[A,X]}rtpInitializationVector(W,X){let G=this.rtpIvWriter([0,W.ssrc,X,W.sequenceNumber]);for(let Y=0;Y<G.length;Y++)G[Y]^=this.srtpSessionSalt[Y];return G}rtcpInitializationVector(W,X){let G=this.rtcpIvWriter([0,W,0,X]);for(let Y=0;Y<G.length;Y++)G[Y]^=this.srtcpSessionSalt[Y];return G}rtcpAdditionalAuthenticatedData(W,X){let G=Buffer.concat([W.subarray(0,8),this.aadWriter([X])]);return G[8]|=jF,G}},UK=4,jF=128;function KF(W,X){try{W.final()}catch{throw new fY(`Failed to authenticate ${X} packet`)}}var w2=class{constructor(W,X,G){this.masterKey=W,this.masterSalt=X,this.profile=G;{let Y=14-X.length;if(Y>0)this.masterSalt=Buffer.concat([X,Buffer.alloc(Y)])}switch(this.srtpSessionKey=this.generateSessionKey(0),this.srtpSessionSalt=this.generateSessionSalt(2),this.srtpSessionAuthTag=this.generateSessionAuthTag(1),this.srtpSessionAuth=VK("sha1",this.srtpSessionAuthTag),this.srtcpSessionKey=this.generateSessionKey(3),this.srtcpSessionSalt=this.generateSessionSalt(5),this.srtcpSessionAuthTag=this.generateSessionAuthTag(4),this.srtcpSessionAuth=VK("sha1",this.srtcpSessionAuthTag),G){case KH:this.cipher=new zn(this.srtpSessionKey,this.srtpSessionSalt,this.srtcpSessionKey,this.srtcpSessionSalt,this.srtpSessionAuthTag,this.srtcpSessionAuthTag);break;case VU:this.cipher=new In(this.srtpSessionKey,this.srtpSessionSalt,this.srtcpSessionKey,this.srtcpSessionSalt);break}}srtpSSRCStates={};srtpSessionKey;srtpSessionSalt;srtpSessionAuthTag;srtpSessionAuth;srtcpSSRCStates={};srtcpSessionKey;srtcpSessionSalt;srtcpSessionAuthTag;srtcpSessionAuth;cipher;generateSessionKey(W){let X=Buffer.from(this.masterSalt),G=Buffer.from([W,0,0,0,0,0,0]);for(let J=G.length-1,Z=X.length-1;J>=0;J--,Z--)X[Z]=X[Z]^G[J];X=Buffer.concat([X,Buffer.from([0,0])]);let Y=new hq.default.AES(this.masterKey);return Buffer.from(Y.encrypt(X))}generateSessionSalt(W){let X=Buffer.from(this.masterSalt),G=Buffer.from([W,0,0,0,0,0,0]);for(let J=G.length-1,Z=X.length-1;J>=0;J--,Z--)X[Z]=X[Z]^G[J];X=Buffer.concat([X,Buffer.from([0,0])]);let Y=new hq.default.AES(this.masterKey);return X=Buffer.from(Y.encrypt(X)),X.subarray(0,14)}generateSessionAuthTag(W){let X=Buffer.from(this.masterSalt),G=Buffer.from([W,0,0,0,0,0,0]);for(let V=G.length-1,U=X.length-1;V>=0;V--,U--)X[U]=X[U]^G[V];let Y=Buffer.concat([X,Buffer.from([0,0])]),J=Buffer.concat([X,Buffer.from([0,1])]),Z=new hq.default.AES(this.masterKey);return Y=Buffer.from(Z.encrypt(Y)),J=Buffer.from(Z.encrypt(J)),Buffer.concat([Y,J.subarray(0,4)])}getSrtpSsrcState(W){let X=this.srtpSSRCStates[W];if(X)return X;return X={ssrc:W,rolloverCounter:0,lastSequenceNumber:0},this.srtpSSRCStates[W]=X,X}getSrtcpSsrcState(W){let X=this.srtcpSSRCStates[W];if(X)return X;return X={srtcpIndex:0,ssrc:W},this.srtcpSSRCStates[W]=X,X}updateRolloverCount(W,X){if(!X.rolloverHasProcessed)X.rolloverHasProcessed=!0;else if(W===0){if(X.lastSequenceNumber>yV)X.rolloverCounter++}else if(X.lastSequenceNumber<yV&&W>OF-yV){if(X.rolloverCounter>0)X.rolloverCounter--}else if(W<yV&&X.lastSequenceNumber>OF-yV)X.rolloverCounter++;X.lastSequenceNumber=W}generateSrtpAuthTag(W,X){this.srtpSessionAuth=VK("sha1",this.srtpSessionAuthTag);let G=Buffer.alloc(4);return G.writeUInt32BE(X),this.srtpSessionAuth.update(W).update(G).digest().slice(0,10)}index(W){let X=this.srtcpSSRCStates[W];if(!X)return 0;return X.srtcpIndex}setIndex(W,X){let G=this.getSrtcpSsrcState(W);G.srtcpIndex=X%2147483647}},yV=100,OF=65535,wn=class extends w2{constructor(W,X,G){super(W,X,G)}encryptRTCP(W){let X=W.readUInt32BE(4),G=this.getSrtcpSsrcState(X);if(G.srtcpIndex++,G.srtcpIndex>>jn)G.srtcpIndex=0;return this.cipher.encryptRTCP(W,G.srtcpIndex)}decryptRTCP(W){return this.cipher.decryptRTCP(W)}},jn=2147483647,j2=class{constructor(W){this.ContextCls=W}localContext;remoteContext;onData;start(W,X,G,Y,J){this.localContext=new this.ContextCls(W,X,J),this.remoteContext=new this.ContextCls(G,Y,J)}},Kn=class extends j2{constructor(W){super(wn);this.config=W,this.start(W.keys.localMasterKey,W.keys.localMasterSalt,W.keys.remoteMasterKey,W.keys.remoteMasterSalt,W.profile)}decrypt=(W)=>{let[X]=this.remoteContext.decryptRTCP(W);return X};encrypt(W){return this.localContext.encryptRTCP(W)}},On=class extends w2{constructor(W,X,G){super(W,X,G)}encryptRtp(W,X){let G=this.getSrtpSsrcState(X.ssrc);return this.updateRolloverCount(X.sequenceNumber,G),this.cipher.encryptRtp(X,W,G.rolloverCounter)}decryptRtp(W){let X=YO(W,this.rtpAuthTagLength),G=this.srtpSSRCStates[X.ssrc],Y=G?{...G}:{ssrc:X.ssrc,rolloverCounter:0,lastSequenceNumber:0};this.updateRolloverCount(X.sequenceNumber,Y);let J=this.cipher.decryptRtp(W,Y.rolloverCounter,X);if(G)Object.assign(G,Y);else this.srtpSSRCStates[X.ssrc]=Y;return J}get rtpAuthTagLength(){return this.profile===VU?16:10}},Dn=class extends j2{constructor(W){super(On);this.config=W,this.start(W.keys.localMasterKey,W.keys.localMasterSalt,W.keys.remoteMasterKey,W.keys.remoteMasterSalt,W.profile)}decrypt=(W)=>{let[X]=this.remoteContext.decryptRtp(W);return X};encrypt(W,X){return this.localContext.encryptRtp(W,X)}},sH0=class{constructor(W){this.props=W}sequenceNumber=TS();timestamp=TK();create(W){this.sequenceNumber=R9(this.sequenceNumber,1);let X=this.props.between*this.props.clockRate/1000;this.timestamp=gY(this.timestamp,X);let G=new t6({sequenceNumber:this.sequenceNumber,timestamp:Number(this.timestamp),payloadType:96,extension:!0,marker:!1,padding:!1});return new e6(G,W)}},h9=L1("werift-dtls : packages/dtls/src/flight/client/flight5.ts : log"),Cn=class extends GU{constructor(W,X,G,Y){super(W,X,5,7);this.cipher=G,this.srtp=Y}handleHandshake(W){this.dtls.bufferHandshakeCache([W],!1,4);let X=(()=>{switch(W.msg_type){case 2:return G2.deSerialize(W.fragment);case 11:return GH.deSerialize(W.fragment);case 12:return Z2.deSerialize(W.fragment);case 13:return X2.deSerialize(W.fragment);case 14:return Y2.deSerialize(W.fragment)}})();if(X)lY[X.msgType]({dtls:this.dtls,cipher:this.cipher,srtp:this.srtp})(X)}async exec(){if(this.dtls.flight===5){h9(this.dtls.sessionId,"flight5 twice"),this.send(this.dtls.lastMessage);return}this.dtls.flight=5;let W=this.dtls.requestedCertificateTypes.length>0;h9(this.dtls.sessionId,"send flight5",W);let X=[W&&this.sendCertificate(),this.sendClientKeyExchange(),W&&this.sendCertificateVerify(),this.sendChangeCipherSpec(),this.sendFinished()].filter((G)=>G);this.dtls.lastMessage=X,await this.transmit(X)}sendCertificate(){let W=new GH([Buffer.from(this.cipher.localCert)]),X=this.createPacket([W]);return Buffer.concat(X.map((Y)=>Y.serialize()))}sendClientKeyExchange(){if(!this.cipher.localKeyPair)throw Error();let W=new W2(this.cipher.localKeyPair.publicKey),X=this.createPacket([W]),G=Buffer.concat(X.map((U)=>U.serialize())),Y=this.cipher.localKeyPair,J=this.cipher.remoteKeyPair;if(!J.publicKey)throw Error("not exist");let Z=hS(J.publicKey,Y.privateKey,Y.curve);h9(this.dtls.sessionId,"extendedMasterSecret",this.dtls.options.extendedMasterSecret,this.dtls.remoteExtendedMasterSecret);let V=Buffer.concat(this.dtls.sortedHandshakeCache.map((U)=>U.serialize()));return this.cipher.masterSecret=this.dtls.options.extendedMasterSecret&&this.dtls.remoteExtendedMasterSecret?mS(Z,V):bS(Z,this.cipher.localRandom.serialize(),this.cipher.remoteRandom.serialize()),this.cipher.cipher=rS(this.cipher.cipherSuite),this.cipher.cipher.init(this.cipher.masterSecret,this.cipher.remoteRandom.serialize(),this.cipher.localRandom.serialize()),h9(this.dtls.sessionId,"cipher",this.cipher.cipher.summary),G}sendCertificateVerify(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((V)=>V.serialize())),X=this.cipher.signatureData(W,"sha256"),G=(()=>{switch(this.cipher.signatureHashAlgorithm?.signature){case d4.ecdsa_3:return o$.ecdsa_secp256r1_sha256;case d4.rsa_1:return o$.rsa_pkcs1_sha256}})();if(!G)throw Error();h9(this.dtls.sessionId,"signatureScheme",this.cipher.signatureHashAlgorithm?.signature,G);let Y=new eS(G,X),J=this.createPacket([Y]);return Buffer.concat(J.map((V)=>V.serialize()))}sendChangeCipherSpec(){let W=tS.createEmpty().serialize(),X=XU(this.dtls)([{type:20,fragment:W}],++this.dtls.recordSequenceNumber);return Buffer.concat(X.map((Y)=>Y.serialize()))}sendFinished(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((Z)=>Z.serialize())),X=this.cipher.verifyData(W),G=new FK(X);this.dtls.epoch=1;let[Y]=this.createPacket([G]);this.dtls.recordSequenceNumber=0;let J=this.cipher.encryptPacket(Y).serialize();return h9(this.dtls.sessionId,"finished",this.cipher.cipher.summary),J}},lY={};lY[2]=({cipher:W,srtp:X,dtls:G})=>(Y)=>{if(h9(G.sessionId,"serverHello",Y.cipherSuite),W.remoteRandom=TX.from(Y.random),W.cipherSuite=Y.cipherSuite,h9(G.sessionId,"selected cipherSuite",W.cipherSuite),Y.extensions)Y.extensions.forEach((J)=>{switch(J.type){case hY.type:{let Z=hY.fromData(J.data),V=WH.findMatchingSRTPProfile(Z.profiles,G.options.srtpProfiles||[]);if(h9(G.sessionId,"selected srtp profile",V),V==null)return;X.srtpProfile=V}break;case IH.type:G.remoteExtendedMasterSecret=!0;break;case wH.type:h9(G.sessionId,"RenegotiationIndication");break}})};lY[11]=({cipher:W,dtls:X})=>(G)=>{h9(X.sessionId,"handshake certificate",G),W.remoteCertificate=G.certificateList[0]};lY[12]=({cipher:W,dtls:X})=>(G)=>{if(!W.localRandom||!W.remoteRandom)throw Error();h9(X.sessionId,"ServerKeyExchange",G),h9(X.sessionId,"selected curve",G.namedCurve),W.remoteKeyPair={curve:G.namedCurve,publicKey:G.publicKey},W.localKeyPair=sS(G.namedCurve)};lY[13]=({dtls:W})=>(X)=>{h9(W.sessionId,"certificate_request",X),W.requestedCertificateTypes=X.certificateTypes,W.requestedSignatureAlgorithms=X.signatures};lY[14]=({dtls:W})=>(X)=>{h9(W.sessionId,"server_hello_done",X)};var K2=class W{constructor(X,G){this.serverVersion=X,this.cookie=G}msgType=3;messageSeq;static spec={serverVersion:XO,cookie:LX.types.buffer(LX.types.uint8)};static createEmpty(){return new W(void 0,void 0)}static deSerialize(X){return new W(...Object.values(LX.decode(X,W.spec)))}serialize(){let X=LX.encode(this,W.spec).slice();return Buffer.from(X)}get version(){return{major:255-this.serverVersion.major,minor:255-this.serverVersion.minor}}toFragment(){let X=this.serialize();return new $5(this.msgType,X.length,this.messageSeq,0,X.length,X)}},Mn=L1("werift-dtls : packages/dtls/src/context/dtls.ts : log"),DF=class{constructor(W,X){this.options=W,this.sessionType=X}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],[X])=>Number(W)-Number(X)).flatMap(([,{data:W}])=>W.sort((X,G)=>X.message_seq-G.message_seq))}checkHandshakesExist=(W)=>!W.find((X)=>this.sortedHandshakeCache.find((G)=>G.msg_type===X)==null);bufferHandshakeCache(W,X,G){if(!this.handshakeCache[G])this.handshakeCache[G]={data:[],isLocal:X,flight:G};let Y=W.filter((J)=>{let Z=this.handshakeCache[G].data.find((V)=>V.msg_type===J.msg_type);if(Z)return Mn(this.sessionId,"exist",Z.summary,X,G),!1;return!0});this.handshakeCache[G].data=[...this.handshakeCache[G].data,...Y]}},Pn=class{constructor(W){this.socket=W}send=(W)=>{return this.socket.send(W)}},xK=class W{static type=10;static spec={type:d7.types.uint16be,data:d7.types.array(d7.types.uint16be,d7.types.uint16be,"bytes")};type=W.type;data=[];constructor(X={}){Object.assign(this,X)}static createEmpty(){return new W}static fromData(X){return new W({type:W.type,data:d7.decode(X,W.spec.data)})}static deSerialize(X){return new W(d7.decode(X,W.spec))}serialize(){return Buffer.from(d7.encode(this,W.spec).slice())}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},kK=class W{static type=13;static spec={type:c7.types.uint16be,data:c7.types.array({hash:c7.types.uint8,signature:c7.types.uint8},c7.types.uint16be,"bytes")};type=W.type;data=[];constructor(X={}){Object.assign(this,X)}static createEmpty(){return new W}static deSerialize(X){return new W(c7.decode(X,W.spec))}serialize(){let X=c7.encode(this,W.spec).slice();return Buffer.from(X)}static fromData(X){let G=Buffer.alloc(2);return G.writeUInt16BE(W.type),W.deSerialize(Buffer.concat([G,X]))}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},CF=class W{constructor(X,G){this.level=X,this.description=G}static spec={level:BX.types.uint8,description:BX.types.uint8};static deSerialize(X){return new W(...Object.values(BX.decode(X,W.spec)))}serialize(){let X=BX.encode(this,W.spec).slice();return Buffer.from(X)}},TF=L1("werift-dtls : packages/dtls/record/receive.ts : log"),QK=L1("werift-dtls : packages/dtls/record/receive.ts : err"),Rn=(W)=>{let X=0,G=[];while(W.length>X){let Y=W.readUInt16BE(X+11);if(W.length<X+(12+Y))break;let J=nS.deSerialize(W.subarray(X));G.push(J),X+=13+Y}return G},Ln=(W,X)=>(G)=>{switch(G.recordLayerHeader.contentType){case 20:return TF(W.sessionId,"change cipher spec"),[{type:20,data:void 0}];case 22:{let J=G.fragment;try{if(G.recordLayerHeader.epoch>0)TF(W.sessionId,"decrypt handshake"),J=X.decryptPacket(G)}catch(Z){throw QK(W.sessionId,"decrypt failed",Z),Z}try{let Z=0,V=[];while(J.length>Z){let U=$5.deSerialize(J.subarray(Z));V.push({type:22,data:U}),Z+=U.fragment_length+12}return V}catch(Z){throw QK(W.sessionId,"decSerialize failed",Z,J),Z}}case 23:return[{type:23,data:X.decryptPacket(G)}];case 21:{let J=CF.deSerialize(G.fragment);if($K[J.description]==null){let Z=X.decryptPacket(G);J=CF.deSerialize(Z)}if(QK(W.sessionId,"ContentType.alert",J,$K[J.description],"flight",W.flight,"lastFlight",W.lastFlight),J.level>1)throw Error("alert fatal error");return[{type:21,data:void 0}]}default:return[{type:21,data:void 0}]}},MF=L1("werift-dtls : packages/dtls/src/socket.ts : log"),PF=L1("werift-dtls : packages/dtls/src/socket.ts : err"),O2=class{constructor(W,X){this.options=W,this.sessionType=X,this.dtls=new DF(this.options,this.sessionType),this.cipher=new eq(this.sessionType,this.options.cert,this.options.key,this.options.signatureHash),this.transport=new Pn(this.options.transport),this.setupExtensions(),this.transport.socket.onData=this.udpOnMessage}onConnect=new d0;onData=new d0;onError=new d0;onClose=new d0;transport;cipher;dtls;srtp=new WH;connected=!1;extensions=[];onHandleHandshakes;bufferFragmentedHandshakes=[];renegotiation(){MF("renegotiation",this.sessionType),this.connected=!1,this.cipher=new eq(this.sessionType,this.options.cert,this.options.key,this.options.signatureHash),this.dtls=new DF(this.options,this.sessionType),this.srtp=new WH,this.extensions=[],this.bufferFragmentedHandshakes=[]}udpOnMessage=(W)=>{let X=Rn(W);for(let G of X)try{let Y=Ln(this.dtls,this.cipher)(G);for(let J of Y)switch(J.type){case 22:{let Z=J.data,V=this.handleFragmentHandshake([Z]),U=Object.values(V.reduce((Q,N)=>{if(!Q[N.msg_type])Q[N.msg_type]=[];return Q[N.msg_type].push(N),Q},{})).map((Q)=>$5.assemble(Q)).sort((Q,N)=>Q.msg_type-N.msg_type);this.onHandleHandshakes(U).catch((Q)=>{PF(this.dtls.sessionId,"onHandleHandshakes error",Q),this.onError.execute(Q)})}break;case 23:this.onData.execute(J.data);break;case 21:this.onClose.execute();break}}catch(Y){PF(this.dtls.sessionId,"catch udpOnMessage error",Y)}};setupExtensions(){if(MF(this.dtls.sessionId,"support srtpProfiles",this.options.srtpProfiles),this.options.srtpProfiles&&this.options.srtpProfiles.length>0){let W=hY.create(this.options.srtpProfiles,Buffer.from([0]));this.extensions.push(W.extension)}{let W=xK.createEmpty();W.data=_S,this.extensions.push(W.extension)}{let W=kK.createEmpty();W.data=vS,this.extensions.push(W.extension)}if(this.options.extendedMasterSecret)this.extensions.push({type:IH.type,data:Buffer.alloc(0)});{let W=wH.createEmpty();this.extensions.push(W.extension)}}waitForReady=(W)=>new Promise(async(X,G)=>{for(let Y=0;Y<10;Y++)if(W()){X();break}else await Tn(100*Y);G("waitForReady timeout")});handleFragmentHandshake(W){let X=W.filter((G)=>{if(G.fragment_length!==G.length)return this.bufferFragmentedHandshakes.push(G),!1;return!0});if(this.bufferFragmentedHandshakes.length>1){let[G]=this.bufferFragmentedHandshakes.slice(-1);if(G.fragment_offset+G.fragment_length===G.length)X=[...this.bufferFragmentedHandshakes,...X],this.bufferFragmentedHandshakes=[]}return X}send=async(W)=>{let X=XU(this.dtls)([{type:23,fragment:W}],++this.dtls.recordSequenceNumber)[0];await this.transport.send(this.cipher.encryptPacket(X).serialize())};close(){this.transport.socket.close()}extractSessionKeys(W,X){let G=this.exportKeyingMaterial("EXTRACTOR-dtls_srtp",W*2+X*2),{clientKey:Y,serverKey:J,clientSalt:Z,serverSalt:V}=OX.decode(G,{clientKey:OX.types.buffer(W),serverKey:OX.types.buffer(W),clientSalt:OX.types.buffer(X),serverSalt:OX.types.buffer(X)});if(this.sessionType===l4.CLIENT)return{localKey:Y,localSalt:Z,remoteKey:J,remoteSalt:V};else return{localKey:J,localSalt:V,remoteKey:Y,remoteSalt:Z}}exportKeyingMaterial(W,X){return Yo(W,X,this.cipher.masterSecret,this.cipher.localRandom.serialize(),this.cipher.remoteRandom.serialize(),this.sessionType===l4.CLIENT)}get remoteCertificate(){return this.cipher.remoteCertificate}},NK=L1("werift-dtls : packages/dtls/src/client.ts : log"),RF=class extends O2{constructor(W){super(W,l4.CLIENT);this.onHandleHandshakes=this.handleHandshakes,NK(this.dtls.sessionId,"start client")}async connect(){await new Co(this.transport,this.dtls,this.cipher).exec(this.extensions)}flight5;handleHandshakes=async(W)=>{NK(this.dtls.sessionId,"handleHandshakes",W.map((X)=>X.msg_type));for(let X of W)switch(X.msg_type){case 3:{let G=K2.deSerialize(X.fragment);await new Mo(this.transport,this.dtls).exec(G)}break;case 2:{if(this.connected)return;this.flight5=new Cn(this.transport,this.dtls,this.cipher,this.srtp),this.flight5.handleHandshake(X)}break;case 11:case 12:case 13:await this.waitForReady(()=>!!this.flight5),this.flight5?.handleHandshake(X);break;case 14:{await this.waitForReady(()=>!!this.flight5),this.flight5?.handleHandshake(X);let G=[11,12,this.options.certificateRequest&&13].filter((Y)=>typeof Y==="number");await this.waitForReady(()=>this.dtls.checkHandshakesExist(G)),await this.flight5?.exec()}break;case 20:this.dtls.flight=7,this.connected=!0,this.onConnect.execute(),NK(this.dtls.sessionId,"dtls connected");break}}},p7=L1("werift-dtls : packages/dtls/flight/server/flight2.ts : log"),En=(W,X,G,Y)=>(J)=>{p7("dtls version",J.clientVersion),X.flight=2,X.recordSequenceNumber=0,X.sequenceNumber=0,J.extensions.forEach((A)=>{switch(A.type){case xK.type:{let H=xK.fromData(A.data).data;p7(X.sessionId,"curves",H);let I=H.filter((w)=>_S.includes(w))[0];G.namedCurve=I,p7(X.sessionId,"curve selected",G.namedCurve)}break;case kK.type:{if(!G.signatureHashAlgorithm)throw Error("need to set certificate");let H=kK.fromData(A.data).data;p7(X.sessionId,"hash,signature",H);let I=H.find((O)=>O.signature===G.signatureHashAlgorithm?.signature)?.signature,w=H.find((O)=>O.hash===G.signatureHashAlgorithm?.hash)?.hash;if(I==null||w==null)throw Error("invalid signatureHash")}break;case hY.type:{if(!X.options?.srtpProfiles)return;if(X.options.srtpProfiles.length===0)return;let H=hY.fromData(A.data);p7(X.sessionId,"srtp profiles",H.profiles);let I=WH.findMatchingSRTPProfile(H.profiles,X.options?.srtpProfiles);if(!I)throw Error();Y.srtpProfile=I,p7(X.sessionId,"srtp profile selected",Y.srtpProfile)}break;case IH.type:X.remoteExtendedMasterSecret=!0;break;case wH.type:p7(X.sessionId,"RenegotiationIndication",A.data);break;case 43:{let I=[...A.data.subarray(1)].map((w)=>w.toString(10));p7("dtls supported version",I)}break}}),G.localRandom=new TX,G.remoteRandom=TX.from(J.random);let Z=J.cipherSuites;p7(X.sessionId,"cipher suites",Z);let V=(()=>{switch(G.signatureHashAlgorithm?.signature){case d4.ecdsa_3:return LK.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_49195;case d4.rsa_1:return LK.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256_49199}})();if(V===void 0||!Z.includes(V))throw Error("dtls cipher suite negotiation failed");G.cipherSuite=V,p7(X.sessionId,"selected cipherSuite",G.cipherSuite),G.localKeyPair=sS(G.namedCurve),X.cookie||=Bn(20);let U=new K2({major:254,minor:253},X.cookie),Q=iS(X)([U]),q=XU(X)(Q.map((A)=>({type:22,fragment:A.serialize()})),++X.recordSequenceNumber).map((A)=>A.serialize());for(let A of q)W.send(A)},LF=L1("werift-dtls : packages/dtls/flight/server/flight4.ts : log"),$n=class extends GU{constructor(W,X,G,Y){super(W,X,4,6);this.cipher=G,this.srtp=Y}async exec(W,X=!1){if(this.dtls.flight===4){LF(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 G=[this.sendServerHello(),this.sendCertificate(),this.sendServerKeyExchange(),X&&this.sendCertificateRequest(),this.sendServerHelloDone()].filter((Y)=>Y);this.dtls.lastMessage=G,await this.transmit(G)}sendServerHello(){let W=[];if(this.srtp.srtpProfile)W.push(hY.create([this.srtp.srtpProfile],Buffer.from([0])).extension);if(this.dtls.options.extendedMasterSecret)W.push({type:IH.type,data:Buffer.alloc(0)});let X=wH.createEmpty();W.push(X.extension);let G=new G2(this.dtls.version,this.cipher.localRandom,Buffer.from([0]),this.cipher.cipherSuite,0,W),Y=this.createPacket([G]);return Buffer.concat(Y.map((J)=>J.serialize()))}sendCertificate(){let W=new GH([Buffer.from(this.cipher.localCert)]),X=this.createPacket([W]);return Buffer.concat(X.map((G)=>G.serialize()))}sendServerKeyExchange(){let W=this.cipher.generateKeySignature("sha256");if(!this.cipher.signatureHashAlgorithm)throw Error("not exist");let X=new Z2(yS.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),G=this.createPacket([X]);return Buffer.concat(G.map((Y)=>Y.serialize()))}sendCertificateRequest(){let W=new X2(td,vS,[]);LF(this.dtls.sessionId,"sendCertificateRequest",W);let X=this.createPacket([W]);return Buffer.concat(X.map((G)=>G.serialize()))}sendServerHelloDone(){let W=new Y2,X=this.createPacket([W]);return Buffer.concat(X.map((G)=>G.serialize()))}},pY=L1("werift-dtls : packages/dtls/flight/server/flight6.ts"),Fn=class extends GU{constructor(W,X,G){super(W,X,6);this.cipher=G}handleHandshake(W){this.dtls.bufferHandshakeCache([W],!1,5);let X=(()=>{switch(W.msg_type){case 11:return GH.deSerialize(W.fragment);case 15:return eS.deSerialize(W.fragment);case 16:return W2.deSerialize(W.fragment);case 20:return FK.deSerialize(W.fragment)}})();if(X){let G=UU[X.msgType];if(!G)return;G({dtls:this.dtls,cipher:this.cipher})(X)}}async exec(){if(this.dtls.flight===6){pY(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=tS.createEmpty().serialize(),X=XU(this.dtls)([{type:20,fragment:W}],++this.dtls.recordSequenceNumber);return Buffer.concat(X.map((Y)=>Y.serialize()))}sendFinished(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((Z)=>Z.serialize())),X=this.cipher.verifyData(W),G=new FK(X);this.dtls.epoch=1;let[Y]=this.createPacket([G]);return this.dtls.recordSequenceNumber=0,this.cipher.encryptPacket(Y).serialize()}},UU={};UU[16]=({cipher:W,dtls:X})=>(G)=>{if(W.remoteKeyPair={curve:W.namedCurve,publicKey:G.publicKey},!W.remoteKeyPair.publicKey||!W.localKeyPair||!W.remoteRandom||!W.localRandom)throw Error("not exist");let Y=hS(W.remoteKeyPair.publicKey,W.localKeyPair.privateKey,W.localKeyPair.curve);pY(X.sessionId,"extendedMasterSecret",X.options.extendedMasterSecret,X.remoteExtendedMasterSecret);let J=Buffer.concat(X.sortedHandshakeCache.map((Z)=>Z.serialize()));W.masterSecret=X.options.extendedMasterSecret&&X.remoteExtendedMasterSecret?mS(Y,J):bS(Y,W.remoteRandom.serialize(),W.localRandom.serialize()),W.cipher=rS(W.cipherSuite),W.cipher.init(W.masterSecret,W.localRandom.serialize(),W.remoteRandom.serialize()),pY(X.sessionId,"setup cipher",W.cipher.summary)};UU[11]=({cipher:W,dtls:X})=>(G)=>{pY(X.sessionId,"handshake certificate",G),W.remoteCertificate=G.certificateList[0]};UU[15]=({cipher:W,dtls:X})=>(G)=>{if(!W.remoteCertificate)throw Error("client certificate missing before certificate verify");pY(X.sessionId,"certificate_verify",G.algorithm)};UU[20]=({dtls:W})=>(X)=>{pY(W.sessionId,"finished",X)};var SY=L1("werift-dtls : packages/dtls/src/server.ts : log"),Sn=class extends O2{constructor(W){super(W,l4.SERVER);this.onHandleHandshakes=this.handleHandshakes,SY(this.dtls.sessionId,"start server")}flight6;handleHandshakes=async(W)=>{SY(this.dtls.sessionId,"handleHandshakes",W.map((X)=>X.msg_type));for(let X of W)switch(X.msg_type){case 1:{if(this.connected)this.renegotiation();let G=oS.deSerialize(X.fragment);if(G.cookie.length===0)SY(this.dtls.sessionId,"send flight2"),En(this.transport,this.dtls,this.cipher,this.srtp)(G);else if(this.dtls.cookie&&G.cookie.equals(this.dtls.cookie))SY(this.dtls.sessionId,"send flight4"),await new $n(this.transport,this.dtls,this.cipher,this.srtp).exec(X,this.options.certificateRequest);else SY("wrong state",{dtlsCookie:this.dtls.cookie?.toString("hex").slice(10),helloCookie:G.cookie.toString("hex").slice(10)})}break;case 11:case 15:case 16:{if(this.connected)return;this.flight6=new Fn(this.transport,this.dtls,this.cipher),this.flight6.handleHandshake(X)}break;case 20:{await this.waitForReady(()=>!!this.flight6),this.flight6?.handleHandshake(X);let G=[16,this.options.certificateRequest&&11,this.options.certificateRequest&&15].filter((Y)=>typeof Y==="number");await this.waitForReady(()=>this.dtls.checkHandshakesExist(G)),await this.flight6?.exec(),this.connected=!0,this.onConnect.execute(),SY(this.dtls.sessionId,"dtls connected")}break}}},JO=554869826,xn=8,kn=1398035790,i6=20,D2=24,C2=1,T2=2,_n=6,yn=50;var M2=((W)=>{return W[W.REQUEST=0]="REQUEST",W[W.INDICATION=16]="INDICATION",W[W.RESPONSE=256]="RESPONSE",W[W.ERROR=272]="ERROR",W})(M2||{}),P2=((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})(P2||{});function vV(W){return L2(W).toString("hex").substring(0,W)}function B2(){return L2(12)}var BF=class{queue=[];wait=new d0;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((X)=>{this.wait.subscribe((G)=>{this.queue.shift(),X(G)})});return W}},_K=(W)=>{let X,G,Y=new Promise((Z,V)=>{X=Z,G=V});Y.then(()=>{J.execute(void 0),J.complete()}).catch((Z)=>{J.execute(Z??Error()),J.complete()});let J=new d0;return W(X,G,J).catch(()=>{}),{awaitable:Y,resolve:X,reject:G}};function _Y(W){let[X]=W,G=sV.default.isV4Format(X)?C2:T2,Y=Buffer.alloc(4);return Y.writeUInt8(0,0),Y.writeUInt8(G,1),Y.writeUInt16BE(W[1],2),Buffer.concat([Y,sV.default.toBuffer(X)])}function vn(W){if(W.length<4)throw Error("STUN error code is less than 4 bytes");let X=W.readUInt8(2),G=W.readUInt8(3),Y=W.slice(4).toString("utf8");return[X*100+G,Y]}function yY(W){if(W.length<4)throw Error("STUN address length is less than 4 bytes");let X=W.readUInt8(1),G=W.readUInt16BE(2),Y=W.slice(4);switch(X){case C2:if(Y.length!=4)throw Error("STUN address has invalid length for IPv4");return[sV.default.toString(Y),G];case T2:if(Y.length!=16)throw Error("STUN address has invalid length for IPv6");return[sV.default.toString(Y),G];default:throw Error("STUN address has unknown protocol")}}var ZO=Buffer.alloc(6);ZO.writeUInt16BE(JO>>16,0);ZO.writeUInt32BE(JO,2);function E2(W,X){let G=[...ZO,...X],Y=W.slice(0,2);for(let J=2;J<W.length;J++){let Z=W[J]^G[J-2],V=Buffer.alloc(1);V.writeUIntBE(Z,0,1),Y=Buffer.concat([Y,V])}return Y}function bq(W,X){return yY(E2(W,X))}function gn(W){let X=Buffer.alloc(4);X.writeUInt16BE(0,0),X.writeUInt8(Math.floor(W[0]/100),2),X.writeUInt8(W[0]%100,3);let G=Buffer.from(W[1],"utf8");return Buffer.concat([X,G])}function mq(W,X){return E2(_Y(W),X)}var gV=(W)=>{let X=Buffer.alloc(4);return X.writeUInt32BE(W,0),X},uV=(W)=>W.readUInt32BE(0),un=(W)=>{let X=Buffer.alloc(4);return X.writeUInt16BE(W,0),X},hn=(W)=>W.readUInt16BE(0),EF=(W)=>{return new ij(W.toString()).toBuffer()},$F=(W)=>{let X=new ij(W);return BigInt(X.toString())},qK=(W)=>Buffer.from(W,"utf8"),HK=(W)=>W.toString("utf8"),AK=(W)=>W,zK=(W)=>W,bn=(W)=>Buffer.from([]),mn=(W)=>null,$2=[[1,"MAPPED-ADDRESS",_Y,yY],[3,"CHANGE-REQUEST",gV,uV],[4,"SOURCE-ADDRESS",_Y,yY],[5,"CHANGED-ADDRESS",_Y,yY],[6,"USERNAME",qK,HK],[8,"MESSAGE-INTEGRITY",AK,zK],[9,"ERROR-CODE",gn,vn],[12,"CHANNEL-NUMBER",un,hn],[13,"LIFETIME",gV,uV],[18,"XOR-PEER-ADDRESS",mq,bq],[19,"DATA",AK,zK],[20,"REALM",qK,HK],[21,"NONCE",AK,zK],[22,"XOR-RELAYED-ADDRESS",mq,bq],[25,"REQUESTED-TRANSPORT",gV,uV],[32,"XOR-MAPPED-ADDRESS",mq,bq],[36,"PRIORITY",gV,uV],[37,"USE-CANDIDATE",bn,mn],[32802,"SOFTWARE",qK,HK],[32808,"FINGERPRINT",gV,uV],[32809,"ICE-CONTROLLED",EF,$F],[32810,"ICE-CONTROLLING",EF,$F],[32811,"RESPONSE-ORIGIN",_Y,yY],[32812,"OTHER-ADDRESS",_Y,yY]],F2=class{constructor(W=[]){this.attributes=W}getAttributes(){return this.attributes}setAttribute(W,X){let G=this.attributes.find((Y)=>Y[0]===W);if(G)G[1]=X;else this.attributes.push([W,X]);return this}getAttributeValue(W){let X=this.attributes.find((G)=>G[0]===W);if(!X)return;return X[1]}get attributesKeys(){return this.attributes.map((W)=>W[0])}clear(){this.attributes=[]}},FF=$2.reduce((W,X)=>{return W[X[0]]=X,W},{}),fn=$2.reduce((W,X)=>{return W[X[1]]=X,W},{});function VO(W,X){if(W.length<i6)return;let G=W.readUint16BE(2);if(W.length!==i6+G)return;let Y=W.readUint16BE(0),J=Buffer.from(W.slice(i6-12,i6)),Z=new F2;for(let U=i6;U<=W.length-4;){let Q=W.readUInt16BE(U),N=W.readUInt16BE(U+2),q=W.slice(U+4,U+4+N),A=4*Math.floor((N+3)/4)-N;if(Object.keys(FF).includes(Q.toString())){let[,I,,w]=FF[Q];if(w.name===bq.name)Z.setAttribute(I,w(q,J));else Z.setAttribute(I,w(q));if(I==="FINGERPRINT"){let O=S2(W.slice(0,U));if(Z.getAttributeValue("FINGERPRINT")!==O)return}else if(I==="MESSAGE-INTEGRITY"){if(X){let O=pn(W.slice(0,U),X),T=Z.getAttributeValue("MESSAGE-INTEGRITY");if(!O.equals(T))return}}}U+=4+N+A}let V=Z.getAttributes();return Z.clear(),new l7(Y&16111,Y&272,J,V)}var l7=class extends F2{constructor(W,X,G=B2(),Y=[]){super(Y);this.messageMethod=W,this.messageClass=X,this.transactionId=G}toJSON(){return this.json}get json(){return{messageMethod:P2[this.messageMethod],messageClass:M2[this.messageClass],attributes:this.attributes}}get transactionIdHex(){return this.transactionId.toString("hex")}get bytes(){let W=Buffer.from([]);for(let G of this.attributesKeys){let Y=this.getAttributeValue(G),[J,,Z]=fn[G],V=Z.name===mq.name?Z(Y,this.transactionId):Z(Y),U=V.length,Q=4*Math.floor((U+3)/4)-U,N=Buffer.alloc(4);N.writeUInt16BE(J,0),N.writeUInt16BE(U,2),W=Buffer.concat([W,N,V,Buffer.alloc(Q,0)])}let X=Buffer.alloc(8);return X.writeUInt16BE(this.messageMethod|this.messageClass,0),X.writeUInt16BE(W.length,2),X.writeUInt32BE(JO,4),Buffer.concat([X,this.transactionId,W])}addMessageIntegrity(W){return this.setAttribute("MESSAGE-INTEGRITY",this.messageIntegrity(W)),this}messageIntegrity(W){let X=UO(this.bytes,this.bytes.length-i6+D2);return Buffer.from(R2("sha1",W).update(X).digest("hex"),"hex")}addFingerprint(){this.setAttribute("FINGERPRINT",S2(this.bytes))}},UO=(W,X)=>{let G=Buffer.alloc(W.length);return W.copy(G,0,0,2),G.writeUInt16BE(X,2),W.copy(G,4,4),G};function S2(W){let X=UO(W,W.length-i6+xn);return(bd(X)^kn)>>>0}function pn(W,X){let G=UO(W,W.length-i6+D2);return Buffer.from(R2("sha1",X).update(G).digest("hex"),"hex")}function SF(W){let X=W%4;if(X===0)return 0;else return 4-X}var x2=class extends Error{response;addr},k2=class extends x2{constructor(W,X){super();this.response=W,this.addr=X}get str(){let W="STUN transaction failed",X=this.response.getAttributeValue("ERROR-CODE");if(X){let[G,Y]=X;W+=` (${G} - ${Y})`}return W}},cn=class extends x2{get str(){return"STUN transaction timed out"}},IK=L1("werift-ice:packages/ice/src/stun/transaction.ts"),QO=class{constructor(W,X,G,Y){this.request=W,this.addr=X,this.protocol=G,this.retransmissions=Y,this.triesMax=1+(this.retransmissions?this.retransmissions:_n)}timeoutDelay=yn;ended=!1;tries=0;triesMax;onResponse=new d0;responseReceived=(W,X)=>{if(this.onResponse.length>0)if(W.messageClass===256)this.onResponse.execute(W,X),this.onResponse.complete();else this.onResponse.error(new k2(W,X))};run=async()=>{try{return this.retry().catch((X)=>{IK("retry failed",X)}),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)=>{IK("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)IK(`retry failed times:${this.tries} maxLimit:${this.triesMax}`),this.onResponse.error(new cn)};cancel(){this.ended=!0}},xF=L1("werift-ice : packages/ice/src/stun/protocol.ts"),kF=class W{static type="stun";type=W.type;transport;transactions={};get transactionsKeys(){return Object.keys(this.transactions)}localCandidate;sentMessage;localIp;onRequestReceived=new d0;onDataReceived=new d0;constructor(){}connectionMade=async(X,G,Y)=>{if(X)this.transport=await RK.init("udp4",{portRange:G,interfaceAddresses:Y});else this.transport=await RK.init("udp6",{portRange:G,interfaceAddresses:Y});this.transport.onData=(J,Z)=>{this.datagramReceived(J,Z)}};datagramReceived(X,G){try{let Y=VO(X);if(!Y){if(this.localCandidate)this.onDataReceived.execute(X);return}if((Y.messageClass===256||Y.messageClass===272)&&this.transactionsKeys.includes(Y.transactionIdHex))this.transactions[Y.transactionIdHex].responseReceived(Y,G);else if(Y.messageClass===0)this.onRequestReceived.execute(Y,G,X)}catch(Y){xF("datagramReceived error",Y)}}getExtraInfo(){let{address:X,port:G}=this.transport.address;return[X,G]}async sendStun(X,G){if(this.transport.closed)return;let Y=X.bytes;await this.transport.send(Y,G).catch(()=>{xF("sendStun failed",G,X)})}async sendData(X,G){if(this.transport.closed)return;await this.transport.send(X,G)}async request(X,G,Y,J){if(this.transactionsKeys.includes(X.transactionIdHex))throw Error("already request ed");if(Y)X.addMessageIntegrity(Y),X.addFingerprint();let Z=new QO(X,G,this,J);this.transactions[X.transactionIdHex]=Z;try{return await Z.run()}catch(V){throw V}finally{delete this.transactions[X.transactionIdHex]}}async close(){Object.values(this.transactions).forEach((X)=>{X.cancel()}),await this.transport.close(),this.onRequestReceived.complete(),this.onDataReceived.complete()}},s9=L1("werift-ice:packages/ice/src/turn/protocol.ts"),on=500,nn=600,rn=285212672,an=class W{constructor(X){this.turn=X,X.onData.subscribe((G,Y)=>{this.handleStunMessage(G,Y)}).disposer(this.disposer)}static type="turn";type=W.type;localCandidate;disposer=new ld;onRequestReceived=new d0;onDataReceived=new d0;handleStunMessage=(X,G)=>{try{let Y=VO(X);if(!Y){this.onDataReceived.execute(X);return}if(Y.messageClass===256||Y.messageClass===272){let J=this.turn.transactions[Y.transactionIdHex];if(J)J.responseReceived(Y,G)}else if(Y.messageClass===0)this.onRequestReceived.execute(Y,G,X)}catch(Y){s9("datagramReceived error",Y)}};async request(X,G,Y){if(this.turn.transactions[X.transactionIdHex])throw Error("exist");if(Y)X.addMessageIntegrity(Y),X.addFingerprint();let J=new QO(X,G,this);this.turn.transactions[X.transactionIdHex]=J;try{return await J.run()}catch(Z){throw Z}finally{delete this.turn.transactions[X.transactionIdHex]}}async connectionMade(){}async sendData(X,G){await this.turn.sendData(X,G)}async sendStun(X,G){await this.turn.sendData(X.bytes,G)}async close(){return this.disposer.dispose(),this.turn.close()}},sn=class W{constructor(X,G,Y,J,Z,V={}){this.server=X,this.username=G,this.password=Y,this.lifetime=J,this.transport=Z,this.options=V,this.channelRefreshTime=this.options.channelRefreshTime??on}static type="turn";type=W.type;onData=new d0;onRequestReceived=new d0;onDataReceived=new d0;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=(J,Z)=>{this.dataReceived(J,Z)};let X=new l7(3,0);X.setAttribute("LIFETIME",this.lifetime).setAttribute("REQUESTED-TRANSPORT",rn);let[G]=await this.requestWithRetry(X,this.server).catch((J)=>{throw s9("connect error",J),J});this.relayedAddress=G.getAttributeValue("XOR-RELAYED-ADDRESS"),this.mappedAddress=G.getAttributeValue("XOR-MAPPED-ADDRESS");let Y=G.getAttributeValue("LIFETIME");s9("connect",this.relayedAddress,this.mappedAddress,{exp:Y}),this.refresh(Y)}handleChannelData(X){let[G,Y]=X8.Unpack("!HH",X.slice(0,4)),J=this.addrByChannel[G];if(J){let Z=X.subarray(4,4+Y);this.onData.execute(Z,J)}}handleSTUNMessage(X,G){try{let Y=VO(X);if(!Y)throw Error("not stun message");if(Y.messageClass===256||Y.messageClass===272){let J=this.transactions[Y.transactionIdHex];if(J)J.responseReceived(Y,G)}else if(Y.messageClass===0)this.onData.execute(X,G);if(Y.getAttributeValue("DATA")){let J=Y.getAttributeValue("DATA");this.onData.execute(J,G)}}catch(Y){s9("parse error",X.toString())}}dataReceived(X,G){let Y=(J,Z)=>{if(J.length>=4&&yF(J))this.handleChannelData(J);else this.handleSTUNMessage(J,Z)};if(this.transport.type==="tcp"){this.tcpBuffer=Buffer.concat([this.tcpBuffer,X]);while(this.tcpBuffer.length>=4){let[,J]=t9(this.tcpBuffer.subarray(0,4),[2,2]);J+=SF(J);let Z=yF(this.tcpBuffer)?4+J:20+J;if(this.tcpBuffer.length<Z)break;Y(this.tcpBuffer.subarray(0,Z),G),this.tcpBuffer=this.tcpBuffer.subarray(Z)}}else Y(X,G)}async send(X,G){if(this.transport.closed)return;if(this.transport.type==="tcp"){let Y=SF(X.length);await this.transport.send(Y>0?Buffer.concat([X,Buffer.alloc(Y)]):X,G)}else await this.transport.send(X,G)}async createPermission(X){let G=new l7(8,0);G.setAttribute("XOR-PEER-ADDRESS",X).setAttribute("USERNAME",this.username).setAttribute("REALM",this.realm).setAttribute("NONCE",this.nonce),await this.request(G,this.server).catch((Y)=>{throw Y})}refresh=(X)=>{this.refreshHandle=_K(async(G,Y,J)=>{let Z=!0;J.once(()=>{Z=!1});while(Z){let V=0.8333333333333334*X*1000;s9("refresh delay",V,{exp:X}),await dn(V);let U=new l7(4,0);U.setAttribute("LIFETIME",X);try{let[Q]=await this.requestWithRetry(U,this.server);X=Q.getAttributeValue("LIFETIME"),s9("refresh",{exp:X})}catch(Q){s9("refresh error",Q)}}})};async request(X,G){if(this.transactions[X.transactionIdHex])throw Error("exist");if(this.integrityKey)X.setAttribute("USERNAME",this.username).setAttribute("REALM",this.realm).setAttribute("NONCE",this.nonce).addMessageIntegrity(this.integrityKey).addFingerprint();let Y=new QO(X,G,this);this.transactions[X.transactionIdHex]=Y;try{return await Y.run()}catch(J){throw J}finally{delete this.transactions[X.transactionIdHex]}}async requestWithRetry(X,G){let Y,J;try{[Y,J]=await this.request(X,G)}catch(Z){if(Z instanceof k2==!1)throw s9("requestWithRetry error",Z),Z;this.server=Z.addr;let[V]=Z.response.getAttributeValue("ERROR-CODE"),U=Z.response.getAttributeValue("NONCE"),Q=Z.response.getAttributeValue("REALM");if((V===401&&Q||V===438&&this.realm)&&U){if(s9("retry with nonce",V),this.nonce=U,V===401)this.realm=Q;this.integrityKey=en(this.username,this.realm,this.password),X.transactionId=B2(),[Y,J]=await this.request(X,this.server)}else throw Z}return[Y,J]}async sendData(X,G){let Y=await this.getChannel(G).catch((Z)=>{return Error("channelBind error")});if(Y instanceof Error){await this.getPermission(G);let Z=new l7(6,16).setAttribute("DATA",X).setAttribute("XOR-PEER-ADDRESS",G);await this.sendStun(Z,this.server);return}let J=X8.Pack("!HH",[Y.number,X.length]);await this.send(Buffer.concat([Buffer.from(J),X]),this.server)}async getPermission(X){if(await this.creatingPermission,!this.permissionByAddr[X.join(":")])this.creatingPermission=this.createPermission(X),this.permissionByAddr[X.join(":")]=!0,await this.creatingPermission.catch((Y)=>{throw s9("createPermission error",Y),Y})}async getChannel(X){if(this.channelBinding)await this.channelBinding;let G=this.channelByAddr[X.join(":")];if(!G)this.channelByAddr[X.join(":")]={number:this.channelNumber++,address:X},G=this.channelByAddr[X.join(":")],this.addrByChannel[G.number]=X,this.channelBinding=this.channelBind(G.number,X),await this.channelBinding.catch((Y)=>{throw s9("channelBind error",Y),Y}),this.channelRefreshAt=lV(Date.now()/1000)+this.channelRefreshTime,this.channelBinding=void 0,s9("channelBind",G);else if(this.channelRefreshAt<lV(Date.now()/1000))this.channelBinding=this.channelBind(G.number,X),this.channelRefreshAt=lV(Date.now()/1000)+this.channelRefreshTime,await this.channelBinding.catch((Y)=>{throw s9("channelBind error",Y),Y}),this.channelBinding=void 0,s9("channelBind refresh",G);return G}async channelBind(X,G){let Y=new l7(9,0);Y.setAttribute("CHANNEL-NUMBER",X).setAttribute("XOR-PEER-ADDRESS",G);let[J]=await this.requestWithRetry(Y,this.server);if(J.messageMethod!==9)throw Error("should be CHANNEL_BIND")}async sendStun(X,G){await this.send(X.bytes,G)}async close(){this.refreshHandle?.resolve?.(),await this.transport.close()}};async function tn({address:W,username:X,password:G},{lifetime:Y,portRange:J,interfaceAddresses:Z,transport:V}={}){Y??=nn,V??="udp";let U=V==="udp"?await RK.init("udp4",{portRange:J,interfaceAddresses:Z}):await nd.init(W),Q=new sn(W,X,G,Y,U);return await Q.connectionMade(),Q}async function _F({address:W,username:X,password:G},{lifetime:Y,portRange:J,interfaceAddresses:Z,transport:V}={}){let U=await tn({address:W,username:X,password:G},{lifetime:Y,portRange:J,interfaceAddresses:Z,transport:V});return new an(U)}function en(W,X,G){return ln("md5").update(Buffer.from([W,X,G].join(":"))).digest()}function yF(W){return(W[0]&192)==64}var DX=class W{constructor(X,G,Y,J,Z,V,U,Q,N,q,A,H){this.foundation=X,this.component=G,this.transport=Y,this.priority=J,this.host=Z,this.port=V,this.type=U,this.relatedAddress=Q,this.relatedPort=N,this.tcptype=q,this.generation=A,this.ufrag=H}static fromSdp(X){let G=X.split(" ");if(G.length<8)throw Error("SDP does not have enough properties");let Y={foundation:G[0],component:Number(G[1]),transport:G[2],priority:Number(G[3]),host:G[4],port:Number(G[5]),type:G[7]};for(let A=8,H=G.length-1;A<H;A+=2)if(G[A]==="raddr")Y.related_address=G[A+1];else if(G[A]==="rport")Y.related_port=Number(G[A+1]);else if(G[A]==="tcptype")Y.tcptype=G[A+1];else if(G[A]==="generation")Y.generation=Number(G[A+1]);else if(G[A]==="ufrag")Y.ufrag=G[A+1];let{foundation:J,component:Z,transport:V,priority:U,host:Q,port:N,type:q}=Y;return new W(J,Z,V,U,Q,N,q,Y.related_address,Y.related_port,Y.tcptype,Y.generation,Y.ufrag)}canPairWith(X){let G=vF(this.host),Y=vF(X.host);return this.component===X.component&&this.transport.toLowerCase()===X.transport.toLowerCase()&&G===Y}toSdp(){let X=`${this.foundation} ${this.component} ${this.transport} ${this.priority} ${this.host} ${this.port} typ ${this.type}`;if(this.relatedAddress)X+=` raddr ${this.relatedAddress}`;if(this.relatedPort!=null)X+=` rport ${this.relatedPort}`;if(this.tcptype)X+=` tcptype ${this.tcptype}`;if(this.generation!=null)X+=` generation ${this.generation}`;if(this.ufrag!=null)X+=` ufrag ${this.ufrag}`;return X}};function yK(W,X,G){let Y=`${W}|${X}|${G}`;return Wi("md5").update(Y,"ascii").digest("hex").slice(7)}function fq(W,X=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*X+255}var Gi=class{cache=new Map;mdnsInstance=_2.default();constructor(){this.mdnsInstance.setMaxListeners(50)}lookup(W){return new Promise((X,G)=>{let Y=()=>{this.mdnsInstance.removeListener("response",Z),clearTimeout(J)},J=setTimeout(()=>{Y(),G(Error("No mDNS response"))},1e4),Z=(V)=>{let U=V.answers?.[0];if(U?.type!=="A")return;if(U.name!==W)return;Y(),X(U.data)};this.mdnsInstance.on("response",Z),this.mdnsInstance.query(W,"A")})}close(){this.mdnsInstance.destroy()}},Ji=L1("werift-ice : packages/ice/src/ice.ts : log"),uF=class{constructor(W,X,G){this.protocol=W,this.remoteCandidate=X,this.iceControlling=G}id=Yi().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 gK(this.localCandidate,this.remoteCandidate,this.iceControlling)}get foundation(){return this.localCandidate.foundation}},hF=1,xq=2,Zi=5,bF=6;var Vi={useIpv4:!0,useIpv6:!0};function mF(W){if(!["host","relay","srflx"].includes(W.type))throw Error(`Unexpected candidate type "${W.type}"`);return W}function Ui(W,X){return W.sort((G,Y)=>gK(G.localCandidate,G.remoteCandidate,X)-gK(Y.localCandidate,Y.remoteCandidate,X)).reverse()}function gK(W,X,G){let Y=G&&W.priority||X.priority,J=G&&X.priority||W.priority;return 1*Math.min(Y,J)+2*Math.max(Y,J)+(Y>J?1:0)}async function Qi(W,X){let G=new l7(1,0);try{let[Y]=await W.request(G,X),J=W.localCandidate;if(!J)throw Error("not exist");return new DX(yK("srflx","udp",J.host),J.component,J.transport,fq("srflx"),Y.getAttributeValue("XOR-MAPPED-ADDRESS")[0],Y.getAttributeValue("XOR-MAPPED-ADDRESS")[1],"srflx",J.host,J.port)}catch(Y){Ji("error serverReflexiveCandidate",Y)}}function fF(W){if(W&&Number.isNaN(W[1]))return[W[0],443];return W}var Ni=L1("werift-ice : packages/ice/src/utils.ts");function qi(W){return sq(W.family)===4&&W.address?.startsWith("169.254.")||sq(W.family)===6&&W.address?.startsWith("fe80::")}function pF(W,{useLinkLocalAddress:X}={}){let G=["ipsec","tun","utun","tap"],Y=["vmnet","veth"],J=y2.networkInterfaces();Ni(J);let Z=Object.keys(J).map((V)=>{for(let Q of[...G,...Y])if(V.startsWith(Q))return{nic:V,addresses:[]};let U=J[V].filter((Q)=>sq(Q.family)===W&&!v2.default.isLoopback(Q.address)&&(X?!0:!qi(Q)));return{nic:V,addresses:U.map((Q)=>Q.address)}}).filter((V)=>!!V);return Z.sort((V,U)=>V.nic.localeCompare(U.nic)),Object.values(Z).flatMap((V)=>V.addresses)}function Hi(W,X,G={}){let Y=[];if(W)Y.push(...pF(4,G));if(X)Y.push(...pF(6,G));return Y}var J8=L1("werift-ice : packages/ice/src/ice.ts : log"),Ai=class{constructor(W,X){this._iceControlling=W,this.options={...Vi,...X};let{stunServer:G,turnServer:Y}=this.options;this.stunServer=fF(G)??["stun.l.google.com",19302],this.turnServer=fF(Y),this.restart(),J8("new Connection",this.options)}localUsername=vV(4);localPassword=vV(22);remoteIsLite=!1;remotePassword="";remoteUsername="";checkList=[];localCandidates=[];stunServer;turnServer;options;remoteCandidatesEnd=!1;localCandidatesEnd=!1;generation=-1;userHistory={};tieBreaker=BigInt(new Eq(Xi(64)).toString());state="new";lookup;_remoteCandidates=[];nominated;nominating=!1;checkListDone=!1;checkListState=new BF;earlyChecks=[];earlyChecksDone=!1;localCandidatesStart=!1;protocols=[];queryConsentHandle;onData=new d0;stateChanged=new d0;onIceCandidate=new d0;get iceControlling(){return this._iceControlling}set iceControlling(W){if(this.generation>0||this.nominated)return;this._iceControlling=W;for(let X of this.checkList)X.iceControlling=W}async restart(){if(this.generation++,this.localUsername=vV(4),this.localPassword=vV(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 BF,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(){J8("resetNominatedPair"),this.nominated=void 0,this.nominating=!1}setRemoteParams({iceLite:W,usernameFragment:X,password:G}){J8("setRemoteParams",{iceLite:W,usernameFragment:X,password:G}),this.remoteIsLite=W,this.remoteUsername=X,this.remotePassword=G}async gatherCandidates(){if(!this.localCandidatesStart){this.localCandidatesStart=!0;let W=Hi(this.options.useIpv4,this.options.useIpv6,{useLinkLocalAddress:this.options.useLinkLocalAddress}),{interfaceAddresses:X}=this.options;if(X){let Y=W.filter((J)=>Object.values(X).includes(J));if(Y.length)W=Y}if(this.options.additionalHostAddresses)W=Array.from(new Set([...this.options.additionalHostAddresses,...W]));let G=this.getCandidatePromises(W,5);await Promise.allSettled(G),this.localCandidatesEnd=!0}this.setState("completed")}appendLocalCandidate(W){this.localCandidates.push(W),this.onIceCandidate.execute(W)}ensureProtocol(W){W.onRequestReceived.subscribe((X,G,Y)=>{if(X.messageMethod!==1){this.respondError(X,G,W,[400,"Bad Request"]);return}let J=X.getAttributeValue("USERNAME"),{remoteUsername:Z}=cF(J),V=this.userHistory[Z]??this.localPassword,{iceControlling:U}=this;if(U&&X.attributesKeys.includes("ICE-CONTROLLING"))if(this.tieBreaker>=X.getAttributeValue("ICE-CONTROLLING")){this.respondError(X,G,W,[487,"Role Conflict"]);return}else this.switchRole(!1);else if(!U&&X.attributesKeys.includes("ICE-CONTROLLED"))if(this.tieBreaker<X.getAttributeValue("ICE-CONTROLLED"))this.respondError(X,G,W,[487,"Role Conflict"]);else{this.switchRole(!0);return}if(this.options.filterStunResponse&&!this.options.filterStunResponse(X,G,W))return;let Q=new l7(1,256,X.transactionId);if(Q.setAttribute("XOR-MAPPED-ADDRESS",G).addMessageIntegrity(Buffer.from(V,"utf8")).addFingerprint(),W.sendStun(Q,G).catch((N)=>{J8("sendStun error",N)}),this.checkList.length===0&&!this.earlyChecksDone)this.earlyChecks.push([X,G,W]);else this.checkIncoming(X,G,W)}),W.onDataReceived.subscribe((X)=>{try{let G=this.nominated;if(G&&G.protocol===W)G.packetsReceived++,G.bytesReceived+=X.length;this.onData.execute(X)}catch(G){J8("dataReceived",G)}})}getCandidatePromises(W,X=5){let G=[];W=W.filter((Q)=>{if(this.protocols.find((N)=>N.localIp===Q))return!1;return!0});let Y=W.map(async(Q)=>{let N=new kF;this.ensureProtocol(N);try{await N.connectionMade(gF(Q),this.options.portRange,this.options.interfaceAddresses),N.localIp=Q,this.protocols.push(N),J8("protocol",N.localIp);let q=[Q,N.getExtraInfo()[1]];return N.localCandidate=new DX(yK("host","udp",q[0]),1,"udp",fq("host"),q[0],q[1],"host",void 0,void 0,void 0,this.generation,this.localUsername),this.pairLocalProtocol(N),this.appendLocalCandidate(N.localCandidate),N}catch(q){J8("error protocol STUN",q)}});G.push(...Y.map((Q)=>Q.then((N)=>N?.localCandidate)));let{stunServer:J,turnServer:Z}=this;if(J){let Q=Y.map(async(N)=>{let q=await N;if(!q)return;return new Promise(async(H,I)=>{let w=setTimeout(I,X*1000);if(q.localCandidate?.host&&gF(q.localCandidate?.host)){let O=await Qi(q,J).catch((T)=>{J8("error",T)});if(O)this.appendLocalCandidate(O);clearTimeout(w),H(O)}else clearTimeout(w),H()}).catch((H)=>{J8("query STUN server",H)})});G.push(...Q)}let{turnUsername:V,turnPassword:U}=this.options;if(Z&&V&&U){let Q=(async()=>{let N=await _F({address:Z,username:V,password:U},{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 _F({address:Z,username:V,password:U},{portRange:this.options.portRange,interfaceAddresses:this.options.interfaceAddresses,transport:"tcp"});else throw H});this.ensureProtocol(N),this.protocols.push(N);let q=N.turn.relayedAddress,A=N.turn.mappedAddress;return J8("turn candidateAddress",q),N.localCandidate=new DX(yK("relay","udp",q[0]),1,"udp",fq("relay"),q[0],q[1],"relay",A[0],A[1],void 0,this.generation,this.localUsername),this.appendLocalCandidate(N.localCandidate),N.localCandidate})().catch((N)=>{J8("query TURN server",N)});if(this.options.forceTurn)G=[];G.push(Q)}return G}async connect(){if(J8("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 X of this.remoteCandidates)this.pairRemoteCandidate(X);this.sortCheckList(),this.unfreezeInitial(),J8("earlyChecks",this.localPassword,this.earlyChecks.length);for(let X of this.earlyChecks)this.checkIncoming(...X);this.earlyChecks=[],this.earlyChecksDone=!0;for(;;){if(this.state==="closed")break;if(!this.schedulingChecks())break;await vK.setTimeout(20)}let W=xq;while(this.checkList.length>0&&W===xq)W=await this.checkListState.get(),J8("checkListState",W);for(let X of this.checkList)X.handle?.resolve?.();if(W!==hF)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 X=new Set(W.localCandidate.foundation);for(let G of this.checkList)if(G.component===W.component&&!X.has(G.localCandidate.foundation)&&G.state===0)G.updateState(1),X.add(G.localCandidate.foundation)}schedulingChecks(){{let W=this.checkList.filter((X)=>{if(this.options.forceTurn&&X.protocol.type===kF.type)return!1;return!0}).find((X)=>X.state===1);if(W)return W.handle=this.checkStart(W),!0}{let W=this.checkList.find((X)=>X.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=_K(async(W,X,G)=>{let Y=0,J=!1,Z=new AbortController;G.once(()=>{J=!0,Y+=bF,Z.abort(),this.queryConsentHandle=void 0});let{localUsername:V,remoteUsername:U,iceControlling:Q}=this;try{while(this.state!=="closed"&&!J){await vK.setTimeout(Zi*(0.8+0.4*Math.random())*1000,void 0,{signal:Z.signal});let N=this.nominated;if(!N||J)break;let q=this.buildRequest({nominate:!1,localUsername:V,remoteUsername:U,iceControlling:Q});try{if(await N.protocol.request(q,N.remoteAddr,Buffer.from(this.remotePassword,"utf8"),0),Y=0,this.state==="disconnected")this.setState("connected")}catch(A){if(N.id===this.nominated?.id){J8("no stun response"),Y++,this.setState("disconnected");break}}if(Y>=bF){J8("Consent to send expired"),this.queryConsentHandle=void 0,this.setState("closed");break}}}catch(N){}})};async close(){if(this.setState("closed"),this.queryConsentHandle?.resolve?.(),this.checkList&&!this.checkListDone)this.checkListState.put(new Promise((W)=>{W(xq)}));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 Gi;let X=await this.lookup.lookup(W.host);W.host=X}catch(X){return}try{mF(W)}catch(X){return}J8("addRemoteCandidate",W),this._remoteCandidates.push(W),this.pairRemoteCandidate(W),this.sortCheckList()}send=async(W)=>{let X=this.nominated;if(X)await X.protocol.sendData(W,X.remoteAddr),X.packetsSent++,X.bytesSent+=W.length;else return};getDefaultCandidate(){let W=this.localCandidates.sort((G,Y)=>G.priority-Y.priority),[X]=W;return X}set remoteCandidates(W){if(this.remoteCandidatesEnd)throw Error("Cannot set remote candidates after end-of-candidates.");this._remoteCandidates=[];for(let X of W){try{mF(X)}catch(G){continue}this._remoteCandidates.push(X)}this.remoteCandidatesEnd=!0}get remoteCandidates(){return this._remoteCandidates}get candidatePairs(){return this.checkList}sortCheckList(){Ui(this.checkList,this.iceControlling)}findPair(W,X){return this.checkList.find((Y)=>pq.default(Y.protocol,W)&&pq.default(Y.remoteCandidate,X))}switchRole(W){J8("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){J8("nominated",W.toJSON()),this.nominated=W,this.nominating=!1;for(let X of this.checkList)if(X.component===W.component&&[1,0].includes(X.state))X.updateState(4)}if(this.nominated){if(!this.checkListDone)J8("ICE completed"),this.checkListState.put(new Promise((X)=>X(hF))),this.checkListDone=!0;return}J8("not completed",W.toJSON());for(let X of this.checkList)if(X.localCandidate.foundation===W.localCandidate.foundation&&X.state===0)X.updateState(1)}{let X=[3,4];if(this.checkList.find(({state:G})=>!X.includes(G)))return}if(!this.iceControlling){if(this.checkList.find(({state:G})=>G===3))return}if(!this.checkListDone)J8("ICE failed"),this.checkListState.put(new Promise((X)=>{X(xq)}))}checkStart=(W)=>_K(async(X)=>{J8("check start",W.toJSON()),W.updateState(2);let G={},{remotePassword:Y,remoteUsername:J,generation:Z}=this,V=W.localCandidate.ufrag??this.localUsername,U=this.iceControlling&&!this.remoteIsLite,Q=this.buildRequest({nominate:U,localUsername:V,remoteUsername:J,iceControlling:this.iceControlling}),N=performance.now();try{let[q,A]=await W.protocol.request(Q,W.remoteAddr,Buffer.from(Y,"utf8"),4),I=(performance.now()-N)/1000;W.rtt=I,W.totalRoundTripTime+=I,W.roundTripTimeMeasurements++,J8("response received",Q.toJSON(),q.toJSON(),A,{localUsername:V,remoteUsername:J,remotePassword:Y,generation:Z,rtt:I}),G.response=q,G.addr=A}catch(q){let A=q;if(J8("failure case",Q.toJSON(),A.response?JSON.stringify(A.response.toJSON(),null,2):q,{localUsername:V,remoteUsername:J,remotePassword:Y,generation:Z},W.remoteAddr),A.response?.getAttributeValue("ERROR-CODE")[0]===487){if(Q.attributesKeys.includes("ICE-CONTROLLED"))this.switchRole(!0);else if(Q.attributesKeys.includes("ICE-CONTROLLING"))this.switchRole(!1);await this.checkStart(W).awaitable,X();return}if(A.response?.getAttributeValue("ERROR-CODE")[0]===401){J8("retry 401",W.toJSON()),await this.checkStart(W).awaitable,X();return}else{J8("checkStart CandidatePairState.FAILED",W.toJSON()),W.updateState(4),this.checkComplete(W),X();return}}if(!pq.default(G.addr,W.remoteAddr)){W.updateState(4),this.checkComplete(W),X();return}if(U||W.remoteNominated)W.nominated=!0;else if(this.iceControlling&&!this.nominating){this.nominating=!0;let q=this.buildRequest({nominate:!0,localUsername:V,remoteUsername:J,iceControlling:this.iceControlling});try{await W.protocol.request(q,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),X()});addPair(W){this.checkList.push(W),this.sortCheckList()}checkIncoming(W,X,G){let Y=W.getAttributeValue("USERNAME"),{remoteUsername:J}=cF(Y),Z,[V,U]=X;for(let N of this.remoteCandidates)if(N.host===V&&N.port===U){Z=N;break}if(!Z)Z=new DX(vV(10),1,"udp",W.getAttributeValue("PRIORITY"),V,U,"prflx",void 0,void 0,void 0,void 0,void 0),this._remoteCandidates.push(Z);let Q=this.findPair(G,Z);if(!Q)Q=new uF(G,Z,this.iceControlling),Q.updateState(1),this.addPair(Q);if(Q.localCandidate.ufrag=J,J8("Triggered Checks",W.toJSON(),Q.toJSON(),{localUsername:this.localUsername,remoteUsername:this.remoteUsername,localPassword:this.localPassword,remotePassword:this.remotePassword,generation:this.generation}),[1,4].includes(Q.state))Q.handle=this.checkStart(Q);if(W.attributesKeys.includes("USE-CANDIDATE")&&!this.iceControlling){if(Q.remoteNominated=!0,Q.state===3)Q.nominated=!0,this.checkComplete(Q)}}tryPair(W,X){if(W.localCandidate?.canPairWith(X)&&!this.findPair(W,X)){let G=new uF(W,X,this.iceControlling);if(this.options.filterCandidatePair&&!this.options.filterCandidatePair(G))return;G.updateState(1),this.addPair(G)}}pairLocalProtocol(W){for(let X of this.remoteCandidates)this.tryPair(W,X)}pairRemoteCandidate=(W)=>{for(let X of this.protocols)this.tryPair(X,W)};buildRequest({nominate:W,remoteUsername:X,localUsername:G,iceControlling:Y}){let J=zi({remoteUsername:X,localUsername:G}),Z=new l7(1,0);if(Z.setAttribute("USERNAME",J).setAttribute("PRIORITY",fq("prflx")),Y){if(Z.setAttribute("ICE-CONTROLLING",this.tieBreaker),W)Z.setAttribute("USE-CANDIDATE",null)}else Z.setAttribute("ICE-CONTROLLED",this.tieBreaker);return Z}respondError(W,X,G,Y){let J=new l7(W.messageMethod,272,W.transactionId);J.setAttribute("ERROR-CODE",Y).addMessageIntegrity(Buffer.from(this.localPassword,"utf8")).addFingerprint(),G.sendStun(J,X).catch((Z)=>{J8("sendStun error",Z)})}},zi=({remoteUsername:W,localUsername:X})=>{return`${W}:${X}`},cF=(W)=>{let[X,G]=W.split(":");return{remoteUsername:X,localUsername:G}};function lF(W){return W.map((X,G)=>[G,X])}function f4(W,X){let G=W.split(X);return[G[0],G.slice(1).join(X)]}var NO=class extends Ii{addEventListener=(W,X)=>{this.addListener(W,X)};removeEventListener=(W,X)=>{this.removeListener(W,X)}},wi=L1("werift:packages/webrtc/src/dataChannel.ts");function ji(W){return Buffer.isBuffer(W)?W.length:Buffer.byteLength(W)}var g2=class extends NO{constructor(W,X,G=!0){super();if(this.sctp=W,this.parameters=X,this.sendOpen=G,this.id=this.parameters.id,X.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(G)this.sendOpen=!1,this.sctp.dataChannelOpen(this)}stateChange=new d0;stateChanged=new d0;onMessage=new d0;error=new d0;bufferedAmountLow=new d0;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}wi("change state",W)}}addBufferedAmount(W){let X=this.bufferedAmount>this.bufferedAmountLowThreshold&&this.bufferedAmount+W<=this.bufferedAmountLowThreshold;if(this.bufferedAmount+=W,X)this.bufferedAmountLow.execute(),this.emit("bufferedamountlow")}send(W){let X=this.sctp.datachannelSend(this,W);this.messagesSent++,this.bytesSent+=X}close(){this.sctp.dataChannelClose(this)}},u2=class{label="";maxPacketLifeTime;maxRetransmits;ordered=!0;protocol="";negotiated=!1;id;constructor(W={}){Object.assign(this,W)}};var OH=()=>({type:"nack"}),QU=()=>({type:"nack",parameter:"pli"}),DH=()=>({type:"goog-remb"}),Ki=()=>({type:"transport-cc"}),EX=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}},Oi=class{id;uri;constructor(W){Object.assign(this,W)}};var Di=class{type;parameter;constructor(W={}){Object.assign(this,W)}},Ci=class{ssrc;constructor(W={}){Object.assign(this,W)}},Ti=class{ssrc;payloadType;rtx;constructor(W){Object.assign(this,W)}},h2=class{rid;direction;constructor(W){Object.assign(this,W)}},Mi=(W={})=>new EX({mimeType:"video/h264",clockRate:90000,rtcpFeedback:[OH(),QU(),DH()],parameters:"profile-level-id=42e01f;packetization-mode=1;level-asymmetry-allowed=1",...W}),b2=(W={})=>new EX({mimeType:"video/VP8",clockRate:90000,rtcpFeedback:[OH(),QU(),DH()],...W}),Pi=(W={})=>new EX({mimeType:"video/VP9",clockRate:90000,rtcpFeedback:[OH(),QU(),DH()],...W}),Ri=(W={})=>new EX({mimeType:"video/AV1X",clockRate:90000,rtcpFeedback:[OH(),QU(),DH()],...W}),m2=(W={})=>new EX({mimeType:"audio/OPUS",clockRate:48000,channels:2,...W}),f2=(W={})=>new EX({mimeType:"audio/PCMU",clockRate:8000,channels:1,payloadType:0,...W}),p2=[Ri(),Pi(),b2(),Mi(),m2(),f2()].map((W)=>W.mimeType),HA0=p2.filter((W)=>W.toLowerCase().startsWith("video/")),AA0=p2.filter((W)=>W.toLowerCase().startsWith("audio/"));var dF=2,oF=3,$i=0,_q=50,nF=51,iF=53,Fi=56,Si=57,xi="0.0.0.0",rF=9,uK={auto:"actpass",client:"active",server:"passive"},aF=Object.keys(uK).reduce((W,X)=>{let G=uK[X];return W[G]=X,W},{}),ki=["apt","max-fr","max-fs","maxplaybackrate","minptime","stereo","useinbandfec"],c2=["cname","msid","mslabel","label"],sF={SRTP_AES128_CM_HMAC_SHA1_80:KH,SRTP_AEAD_AES_128_GCM:VU},cq=["sendonly","sendrecv"],_i=["sendrecv","recvonly"],yi=class extends Map{constructor(W){super();if(W)for(let X of W)this.set(X.id,X)}};function N8(W,...X){let G=X.filter((Y)=>Y!==void 0);return`${W}_${G.join("_")}`}function $X(){return performance.now()}var vi=class{constructor(W,X,G,Y,J){if(this.kind=W,this.receiver=G,this.sender=Y,this._direction=J,X)this.setDtlsTransport(X)}id=Ei().toString();onTrack=new d0;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,cq.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((X)=>X.mimeType.toLowerCase().includes(W.toLowerCase()))?.payloadType}getCodecStats(){let W=$X(),X=[];if(!this.dtlsTransport)return X;let G=N8("transport",this.dtlsTransport.id);for(let Y of this.codecs){let J={type:"codec",id:N8("codec",Y.payloadType,G),timestamp:W,payloadType:Y.payloadType,transportId:G,mimeType:Y.mimeType,clockRate:Y.clockRate,channels:Y.channels,sdpFmtpLine:Y.parameters};X.push(J)}return X}},gi="inactive",l2="sendonly",d2="recvonly",o2="sendrecv",jK=[gi,l2,d2,o2],hK=class extends NO{uuid=n2().toString();streamId;remote=!1;label;kind;id;ssrc;rid;header;codec;enabled=!0;onReceiveRtp=new d0;onReceiveRtcp=new d0;onSourceChanged=new d0;stopped=!1;muted=!0;constructor(W){super();Object.assign(this,W),this.onReceiveRtp.subscribe((X)=>{this.muted=!1,this.header=X.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 X=Buffer.isBuffer(W)?e6.deSerialize(W):W;X.header.payloadType=this.codec?.payloadType??X.header.payloadType,this.onReceiveRtp.execute(X)}},ui=class{id;tracks=[];constructor(W){if(Array.isArray(W))this.tracks=W;else Object.assign(this,W);this.id??=n2().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")}},hi=L1("werift:packages/webrtc/src/utils.ts");function i2(W,X){let G=(Z)=>Z.toUpperCase(),Y=(Z)=>Z.match(/(.{2})/g).join(":"),J=Bi(X).update(W).digest("hex");return Y(G(J))}var bi={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 r2(W){return bi[W.trim().toLowerCase()]}function bK(W){return W.replace(/[^0-9a-f]/gi,"").toLowerCase()}function mi(W){let X=W[0];return X>19&&X<64}var a2=(W,X)=>jK[jK.indexOf(W)&jK.indexOf(X)];function fi(W){if(W==="sendonly")return"recvonly";if(W==="recvonly")return"sendonly";return W}var s2=Date.now,pi=BigInt(Date.now())*1000n-process.hrtime.bigint()/1000n,ci=()=>{return pi+process.hrtime.bigint()/1000n},NH=()=>Date.now()/1000,li=()=>{let X=(kq.timeOrigin+kq.now()-Date.UTC(1900,0,1))/1000,[G,Y]=X.toString().split(".").map(Number);return S8([4,4],[G,Y]).readBigUInt64BE()},t2=(W)=>{let X=S8([8],[W]),[,G,Y]=t9(X,[2,2,2,2]);return S8([2,2],[G,Y]).readUInt32BE()};function di(W){let X=(U)=>{if(!U)return;let[Q,N]=U.split(":");return[Q,Number.parseInt(N)]},G=X(W.find(({urls:U})=>U.includes("stun:"))?.urls.slice(5)),Y=X(W.find(({urls:U})=>U.includes("turn:"))?.urls.slice(5)),{credential:J,username:Z}=W.find(({urls:U})=>U.includes("turn:"))||{},V={stunServer:G,turnServer:Y,turnUsername:Z,turnPassword:J};return hi("iceOptions",V),V}var DA0=eq.createSelfSignedCertificateWithKey;var oi=(W,X)=>{if(!W||typeof W!=="object")if(X!==null&&typeof X==="object")return X;else return W;if(!X||typeof X!=="object"){if(X==null)return W;return X}for(let G in X)if(Object.prototype.hasOwnProperty.call(X,G)){let Y=X[G];if(Y!=null)W[G]=Y}return W},ni=L1("werift:packages/webrtc/src/media/receiver/nack.ts"),tF=150,ii=class{constructor(W){this.receiver=W}newEstSeqNum=0;_lost={};nackLoop;onPacketLost=new d0;mediaSourceSsrc;retryCount=10;closed=!1;get lostSeqNumbers(){return Object.keys(this._lost).map(Number).sort()}getLost(W){return this._lost[W]}setLost(W,X){if(this._lost[W]=X,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(G){ni("failed to send nack",G)}},5)}removeLost(W){delete this._lost[W]}addPacket(W){let{sequenceNumber:X,ssrc:G}=W.header;if(this.mediaSourceSsrc=G,this.newEstSeqNum===0){this.newEstSeqNum=X;return}if(this.getLost(X)){this.removeLost(X);return}if(X===R9(this.newEstSeqNum,1))this.newEstSeqNum=X;else if(X>R9(this.newEstSeqNum,1)){for(let Y=R9(this.newEstSeqNum,1);Y<X;Y=R9(Y,1))this.setLost(Y,1);this.newEstSeqNum=X,this.pruneLost()}}pruneLost(){if(this.lostSeqNumbers.length>tF)this._lost=Object.entries(this._lost).slice(-tF).reduce((W,[X,G])=>{return W[X]=G,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,X)=>{if(this.lostSeqNumbers.length>0&&this.mediaSourceSsrc){let G=new VH({senderSsrc:this.receiver.rtcpSsrc,mediaSourceSsrc:this.mediaSourceSsrc,lost:this.lostSeqNumbers}),Y=new bY({feedback:G});this.receiver.dtlsTransport.sendRtcp([Y]).then(W).catch(X),this.updateRetryCount(),this.onPacketLost.execute(G)}})},ai=L1("werift:packages/webrtc/media/receiver/receiverTwcc"),si=class{constructor(W,X,G){this.dtlsTransport=W,this.rtcpSsrc=X,this.mediaSourceSsrc=G,this.runTWCC()}extensionInfo={};twccRunning=!1;fbPktCount=0;lastTimestamp;handleTWCC(W){if(this.extensionInfo[W]={tsn:W,timestamp:ci()},Object.keys(this.extensionInfo).length>10)this.sendTWCC()}async runTWCC(){while(this.twccRunning)this.sendTWCC(),await ri(100)}sendTWCC(){if(Object.keys(this.extensionInfo).length===0)return;let W=Object.values(this.extensionInfo).sort((q,A)=>q.tsn-A.tsn),X=W[0].tsn,G=W.slice(-1)[0].tsn,Y=[],J=W[0].tsn,Z=R9(G-X,1),V,U,Q=[];for(let q=X;q<=G;q++){let A=this.extensionInfo[q]?.timestamp;if(A){if(!this.lastTimestamp)this.lastTimestamp=A;if(!V)V=this.lastTimestamp;let H=A-this.lastTimestamp;this.lastTimestamp=A;let I=new uq({delta:Number(H)});if(I.parseDelta(),Q.push(I),U!=null&&U.status!==I.type)Y.push(new dV({packetStatus:U.status,runLength:q-U.minTSN})),U={minTSN:q,status:I.type};if(q===G)if(U!=null)Y.push(new dV({packetStatus:U.status,runLength:q-U.minTSN+1}));else Y.push(new dV({packetStatus:I.type,runLength:1}));if(U==null)U={minTSN:q,status:I.type}}}if(!V)return;let N=new bY({feedback:new UH({senderSsrc:this.rtcpSsrc,mediaSourceSsrc:this.mediaSourceSsrc,baseSequenceNumber:J,packetStatusCount:Z,referenceTime:fd(Math.floor(Number(V/1000n/64n))),fbPktCount:this.fbPktCount,recvDeltas:Q,packetChunks:Y})});this.dtlsTransport.sendRtcp([N]).catch((q)=>{ai(q)}),this.extensionInfo={},this.fbPktCount=md(this.fbPktCount,1)}},ti=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,X=Date.now()/1000){let G=this.max_seq==null||FS(W.header.sequenceNumber,this.max_seq);if(this.packets_received++,this.base_seq==null)this.base_seq=W.header.sequenceNumber;if(G){let Y=lV(X*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 J=Math.abs(Y-(this.last_arrival??0)-(W.header.timestamp-(this.last_timestamp??0)));this.jitter_q4+=J-(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 X=this.packets_received-this.received_prior;this.received_prior=this.packets_received;let G=W-X;if(W==0||G<=0)return 0;else return Math.floor((G<<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}},W7=L1("werift:packages/webrtc/src/transport/dtls.ts"),eF=class W{constructor(X,G,Y,J=[]){this.config=X,this.iceTransport=G,this.localCertificate=Y,this.srtpProfiles=J,this.localCertificate??=W.localCertificate}id=Xr().toString();state="new";role="auto";srtpStarted=!1;transportSequenceNumber=0;bytesSent=0;bytesReceived=0;packetsSent=0;packetsReceived=0;dataReceiver=()=>{};dtls;srtp;srtcp;onStateChange=new d0;onRtcp=new d0;onRtp=new d0;static localCertificate;static localCertificatePromise;remoteParameters;get localParameters(){return new fK(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:X,keyPem:G,signatureHash:Y}=await eq.createSelfSignedCertificateWithKey({signature:d4.ecdsa_3,hash:tq.sha256_4},s6.secp256r1_23);return this.localCertificate=new e2(G,X,Y),this.localCertificate})(),this.localCertificatePromise}setRemoteParams(X){let G=Yr([...this.remoteParameters?.fingerprints??[],...X.fingerprints]),Y=X.role==="auto"&&this.remoteParameters?.role?this.remoteParameters.role:X.role;this.remoteParameters=new fK(G,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(X,G)=>{if(this.role==="server")this.dtls=new Sn({cert:this.localCertificate?.certPem,key:this.localCertificate?.privateKey,signatureHash:this.localCertificate?.signatureHash,transport:WS(this.iceTransport.connection),srtpProfiles:this.srtpProfiles,extendedMasterSecret:!0,certificateRequest:!0});else this.dtls=new RF({cert:this.localCertificate?.certPem,key:this.localCertificate?.privateKey,signatureHash:this.localCertificate?.signatureHash,transport:WS(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(X),this.dtls.onError.once((Y)=>{this.setState("failed"),W7("dtls failed",Y),G(Y)}),this.dtls instanceof RF)await Gr(100),this.dtls.connect().catch((Y)=>{this.setState("failed"),W7("dtls connect failed",Y),G(Y)})});try{this.verifyRemoteCertificateFingerprint()}catch(X){throw this.setState("failed"),this.dtls?.close(),X}if(this.srtpProfiles.length>0)this.startSrtp();this.setState("connected"),W7("dtls connected")}verifyRemoteCertificateFingerprint(){if(!this.remoteParameters||this.remoteParameters.fingerprints.length===0)throw Error("remote fingerprint not exist");let X=this.dtls?.remoteCertificate;if(!X)throw Error("remote certificate not available");let G=this.remoteParameters.fingerprints.flatMap(({algorithm:U,value:Q})=>{let N=r2(U);if(!N)return[];let q=bK(Q);if(!q)throw Error("remote fingerprint value is empty");return[{normalizedAlgorithm:N,normalizedValue:q}]});if(G.length===0)throw Error("no supported remote fingerprint algorithms");let Y=Zr(G),J=G.filter(({normalizedAlgorithm:U})=>U===Y),Z=J.reduce((U,{normalizedAlgorithm:Q})=>{if(!U.has(Q))U.set(Q,bK(i2(X,Q)));return U},new Map);if(!J.some(({normalizedAlgorithm:U,normalizedValue:Q})=>Z.get(U)===Q))throw Error("remote certificate fingerprint mismatch")}updateSrtpSession(){if(!this.dtls)throw Error();let X=this.dtls.srtp.srtpProfile;if(!X)throw Error("need srtpProfile");W7("selected SRTP Profile",X);let{localKey:G,localSalt:Y,remoteKey:J,remoteSalt:Z}=this.dtls.extractSessionKeys(_o(X),yo(X)),V={keys:{localMasterKey:G,localMasterSalt:Y,remoteMasterKey:J,remoteMasterSalt:Z},profile:X};this.srtp=new Dn(V),this.srtcp=new Kn(V)}startSrtp(){if(this.srtpStarted)return;this.srtpStarted=!0,this.updateSrtpSession(),this.iceTransport.connection.onData.subscribe((X)=>{if(this.config.debug.inboundPacketLoss&&this.config.debug.inboundPacketLoss/100<Math.random())return;if(!uo(X))return;if(this.bytesReceived+=X.length,this.packetsReceived++,no(X)){let G;try{G=this.srtcp.decrypt(X)}catch(J){if(J instanceof fY){W7("dropping invalid SRTCP packet",J);return}throw J}let Y;try{Y=oo.deSerialize(G)}catch(J){W7("dropping malformed SRTCP packet",J);return}for(let J of Y)try{this.onRtcp.execute(J)}catch(Z){W7("RTCP error",Z)}}else{let G;try{G=this.srtp.decrypt(X)}catch(J){if(J instanceof fY){W7("dropping invalid SRTP packet",J);return}throw J}let Y;try{Y=e6.deSerialize(G)}catch(J){W7("dropping malformed SRTP packet",J);return}try{this.onRtp.execute(Y)}catch(J){W7("RTP error",J)}}})}sendData=async(X)=>{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(X)};async sendRtp(X,G){try{let Y=this.srtp.encrypt(X,G);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 W7("failed to send",Y),0}}async sendRtcp(X){let G=Buffer.concat(X.map((J)=>J.serialize())),Y=this.srtcp.encrypt(G);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(X){if(X!=this.state)this.state=X,this.onStateChange.execute(X)}async stop(){this.setState("closed"),await this.iceTransport.stop()}async getStats(){let X=$X(),G=[],J={type:"transport",id:N8("transport",this.id),timestamp:X,bytesSent:this.bytesSent,bytesReceived:this.bytesReceived,packetsSent:this.packetsSent,packetsReceived:this.packetsReceived,dtlsState:this.state,iceState:this.iceTransport.state,selectedCandidatePairId:this.iceTransport.connection.nominated?N8("candidate-pair",this.iceTransport.connection.nominated.localCandidate.foundation,this.iceTransport.connection.nominated.remoteCandidate.foundation):void 0,localCertificateId:this.localCertificate?N8("certificate","local"):void 0,remoteCertificateId:this.remoteParameters?N8("certificate","remote"):void 0,dtlsRole:this.role==="auto"?void 0:this.role};if(G.push(J),this.localCertificate){let V=this.localCertificate.getFingerprints();if(V.length>0){let U={type:"certificate",id:N8("certificate","local"),timestamp:X,fingerprint:V[0].value,fingerprintAlgorithm:V[0].algorithm,base64Certificate:Buffer.from(this.localCertificate.certPem).toString("base64")};G.push(U)}}if(this.remoteParameters&&this.remoteParameters.fingerprints.length>0){let V={type:"certificate",id:N8("certificate","remote"),timestamp:X,fingerprint:this.remoteParameters.fingerprints[0].value,fingerprintAlgorithm:this.remoteParameters.fingerprints[0].algorithm,base64Certificate:""};G.push(V)}let Z=await this.iceTransport.getStats();return G.push(...Z),G}};var e2=class{constructor(W,X,G){this.certPem=X,this.signatureHash=G;let Y=tV.Certificate.fromPEM(Buffer.from(X));this.publicKey=Y.publicKey.toPEM(),this.privateKey=tV.PrivateKey.fromPEM(Buffer.from(W)).toPEM()}publicKey;privateKey;getFingerprints(){return[new mK("sha-256",i2(tV.Certificate.fromPEM(Buffer.from(this.certPem)).raw,"sha256"))]}},mK=class{constructor(W,X){this.algorithm=W,this.value=X}},fK=class{constructor(W=[],X){this.fingerprints=W,this.role=X}},Yr=(W)=>{let X=new Set;return W.filter(({algorithm:G,value:Y})=>{let J=`${r2(G)??G.trim().toLowerCase()}:${bK(Y)}`;if(X.has(J))return!1;return X.add(J),!0})},Jr=["sha512","sha384","sha256","sha224","sha1"],Zr=(W)=>{return Jr.find((X)=>W.some(({normalizedAlgorithm:G})=>G===X))??W[0].normalizedAlgorithm},Vr=class{constructor(W){this.ice=W,W.onData.subscribe((X)=>{if(mi(X)){if(this.onData)this.onData(X)}})}closed=!1;onData=()=>{};get address(){return{}}type="ice";send=(W)=>{return this.ice.send(W)};async close(){this.closed=!0,this.ice.close()}},WS=(W)=>new Vr(W),XS=L1("werift:packages/webrtc/src/transport/ice.ts"),Qr=class{constructor(W){this.iceGather=W,this.connection=this.iceGather.connection,this.connection.stateChanged.subscribe((X)=>{this.setState(X)}),this.iceGather.onIceCandidate=(X)=>{this.onIceCandidate.execute(X)}}id=Ur().toString();connection;state="new";waitStart;renominating=!1;onStateChange=new d0;onIceCandidate=new d0;onNegotiationNeeded=new d0;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(qr(W))};setRemoteParams(W,X=!1){if(X)this.renominating=!0;if(this.connection.remoteUsername&&this.connection.remotePassword&&(this.connection.remoteUsername!==W.usernameFragment||this.connection.remotePassword!==W.password))if(this.renominating)XS("renomination",W),this.connection.resetNominatedPair(),this.renominating=!1;else XS("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 d0,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=$X(),X=[];for(let Y of this.localCandidates){let J={type:"local-candidate",id:N8("local-candidate",Y.foundation),timestamp:W,transportId:N8("transport",this.id),address:Y.ip,port:Y.port,protocol:Y.protocol,candidateType:Y.type,priority:Y.priority,foundation:Y.foundation};X.push(J)}for(let Y of this.connection.remoteCandidates){let J=eV(Y),Z={type:"remote-candidate",id:N8("remote-candidate",J.foundation),timestamp:W,transportId:N8("transport",this.id),address:J.ip,port:J.port,protocol:J.protocol,candidateType:J.type,priority:J.priority,foundation:J.foundation};X.push(Z)}let G=this.connection?.candidatePairs?[...this.connection.candidatePairs.filter((Y)=>Y.nominated),...this.connection.candidatePairs.filter((Y)=>!Y.nominated)]:[];for(let Y of G){let J={type:"candidate-pair",id:N8("candidate-pair",Y.foundation),timestamp:W,transportId:N8("transport",this.id),localCandidateId:N8("local-candidate",Y.localCandidate.foundation),remoteCandidateId:N8("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};X.push(J)}return X}};var Nr=class{constructor(W={}){this.options=W,this.connection=new Ai(!1,this.options),this.connection.onIceCandidate.subscribe((X)=>{this.onIceCandidate(eV(X))})}onIceCandidate=()=>{};gatheringState="new";connection;onGatheringStateChange=new d0;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(eV)}get localParameters(){return new Xx({usernameFragment:this.connection.localUsername,password:this.connection.localPassword})}setState(W){if(W!==this.gatheringState)this.gatheringState=W,this.onGatheringStateChange.execute(W)}};function eV(W){let X=new Wx(W.component,W.foundation,W.host,W.port,W.priority,W.transport,W.type,W.generation,W.ufrag);return X.relatedAddress=W.relatedAddress,X.relatedPort=W.relatedPort,X.tcpType=W.tcptype,X}function qr(W){return new DX(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 Hr=class{candidate;sdpMid;sdpMLineIndex;usernameFragment;constructor(W){Object.assign(this,W)}static fromSdp(W){let X=DX.fromSdp(W);return eV(X).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}}},Wx=class{constructor(W,X,G,Y,J,Z,V,U,Q){this.component=W,this.foundation=X,this.ip=G,this.port=Y,this.priority=J,this.protocol=Z,this.type=V,this.generation=U,this.ufrag=Q}relatedAddress;relatedPort;sdpMid;sdpMLineIndex;tcpType;toJSON(){return new Hr({candidate:Hx(this),sdpMLineIndex:this.sdpMLineIndex,sdpMid:this.sdpMid,usernameFragment:this.ufrag})}static fromJSON(W){try{if(!W.candidate)throw Error("candidate is required");let X=Ax(W.candidate);return X.sdpMLineIndex=W.sdpMLineIndex??void 0,X.sdpMid=W.sdpMid??void 0,X}catch(X){}}},Xx=class{iceLite=!1;usernameFragment;password;constructor(W={}){Object.assign(this,W)}},o7=class W{constructor(X=0,G=Buffer.from("")){this.flags=X,this._body=G}get body(){return this._body}set body(X){this._body=X}static type=-1;get type(){return W.type}get bytes(){if(!this.body)throw Error();let X=Buffer.alloc(4);return X.writeUInt8(this.type,0),X.writeUInt8(this.flags,1),X.writeUInt16BE(this.body.length+4,2),Buffer.concat([X,this.body,...[...Array(qU(this.body.length))].map(()=>Buffer.from("\x00"))])}},qO=class extends o7{constructor(W=0,X){super(W,X);if(this.flags=W,X)this.initiateTag=X.readUInt32BE(0),this.advertisedRwnd=X.readUInt32BE(4),this.outboundStreams=X.readUInt16BE(8),this.inboundStreams=X.readUInt16BE(10),this.initialTsn=X.readUInt32BE(12),this.params=Ux(X.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,Vx(this.params)])}},lq=class W extends qO{static type=1;get type(){return W.type}},pK=class W extends qO{static type=2;get type(){return W.type}},Ir=class W extends qO{static type=130;get type(){return W.type}},dq=class W extends o7{constructor(X=0,G){super(X,G);if(this.flags=X,G){this.cumulativeTsn=G.readUInt32BE(0);let Y=4;while(Y<G.length)this.streams.push([G.readUInt16BE(Y),G.readUInt16BE(Y+2)]),Y+=4}else this.cumulativeTsn=0}static type=192;streams=[];cumulativeTsn;get type(){return W.type}set body(X){}get body(){let X=Buffer.alloc(4);return X.writeUInt32BE(this.cumulativeTsn,0),Buffer.concat([X,...this.streams.map(([G,Y])=>{let J=Buffer.alloc(4);return J.writeUInt16BE(G,0),J.writeUInt16BE(Y,2),J})])}},oq=class W extends o7{constructor(X=0,G){super(X,G);if(this.flags=X,G)this.tsn=G.readUInt32BE(0),this.streamId=G.readUInt16BE(4),this.streamSeqNum=G.readUInt16BE(6),this.protocol=G.readUInt32BE(8),this.userData=G.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 X=16+this.userData.length,G=Buffer.alloc(16);G.writeUInt8(this.type,0),G.writeUInt8(this.flags,1),G.writeUInt16BE(X,2),G.writeUInt32BE(this.tsn,4),G.writeUInt16BE(this.streamId,8),G.writeUInt16BE(this.streamSeqNum,10),G.writeUInt32BE(this.protocol,12);let Y=Buffer.concat([G,this.userData]);if(X%4)Y=Buffer.concat([Y,...[...Array(qU(X))].map(()=>Buffer.from("\x00"))]);return Y}},cK=class W extends o7{static type=10;get type(){return W.type}},lK=class W extends o7{static type=11;get type(){return W.type}},NU=class extends o7{constructor(W=0,X=void 0){super(W,X);if(this.flags=W,X)this.params=Ux(X)}params=[];get body(){return Vx(this.params)}},dK=class W extends NU{static type=6;get type(){return W.type}},nq=class W extends NU{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(([X,G])=>{return{name:(Object.entries(W.CODE).find(([,J])=>J===X)||[])[0],body:G}})}},oK=class W extends NU{static type=4;get type(){return W.type}},Gx=class W extends NU{static type=5;get type(){return W.type}},nK=class W extends NU{static type=130;get type(){return W.type}},iK=class W extends o7{constructor(X=0,G){super(X,G);if(this.flags=X,G){this.cumulativeTsn=G.readUInt32BE(0),this.advertisedRwnd=G.readUInt32BE(4);let Y=G.readUInt16BE(8),J=G.readUInt16BE(10),Z=12;[...Array(Y)].forEach(()=>{this.gaps.push([G.readUInt16BE(Z),G.readUInt16BE(Z+2)]),Z+=4}),[...Array(J)].forEach(()=>{this.duplicates.push(G.readUInt32BE(Z)),Z+=4})}}static type=3;get type(){return W.type}gaps=[];duplicates=[];cumulativeTsn=0;advertisedRwnd=0;get bytes(){let X=16+4*(this.gaps.length+this.duplicates.length),G=Buffer.alloc(16);G.writeUInt8(this.type,0),G.writeUInt8(this.flags,1),G.writeUInt16BE(X,2),G.writeUInt32BE(this.cumulativeTsn,4),G.writeUInt32BE(this.advertisedRwnd,8),G.writeUInt16BE(this.gaps.length,12),G.writeUInt16BE(this.duplicates.length,14);let Y=Buffer.concat([G,...this.gaps.map((J)=>{let Z=Buffer.alloc(4);return Z.writeUInt16BE(J[0],0),Z.writeUInt16BE(J[1],2),Z})]);return Y=Buffer.concat([Y,...this.duplicates.map((J)=>{let Z=Buffer.alloc(4);return Z.writeUInt32BE(J,0),Z})]),Y}},Yx=class W extends o7{constructor(X=0,G){super(X,G);if(this.flags=X,G)this.cumulativeTsn=G.readUInt32BE(0)}static type=7;get type(){return W.type}cumulativeTsn=0;get body(){let X=Buffer.alloc(4);return X.writeUInt32BE(this.cumulativeTsn,0),X}},Jx=class W extends o7{static type=8;get type(){return W.type}},Zx=class W extends o7{static type=14;get type(){return W.type}},wr=[oq,lq,pK,iK,oK,Gx,dK,Yx,Jx,nq,cK,lK,Zx,nK,dq],jr=wr.reduce((W,X)=>{return W[X.type]=X,W},{});function qU(W){let X=W%4;return X?4-X:0}function Vx(W){let X=Buffer.from(""),G=Buffer.from("");return W.forEach(([Y,J])=>{let Z=J.length+4,V=Buffer.alloc(4);V.writeUInt16BE(Y,0),V.writeUInt16BE(Z,2),X=Buffer.concat([X,G,V,J]),G=Buffer.concat([...Array(qU(Z))].map(()=>Buffer.from("\x00")))}),X}function Ux(W){let X=[],G=0;while(G<=W.length-4){let Y=W.readUInt16BE(G),J=W.readUInt16BE(G+2);X.push([Y,W.slice(G+4,G+J)]),G+=J+qU(J)}return X}function Kr(W){if(W.length<12)throw Error("SCTP packet length is less than 12 bytes");let X=W.readUInt16BE(0),G=W.readUInt16BE(2),Y=W.readUInt32BE(4),J=W.readUInt32LE(8),Z=$S(Buffer.concat([W.slice(0,8),Buffer.from("\x00\x00\x00\x00"),W.slice(12)]));if(J!==Z)throw Error("SCTP packet has invalid checksum");let V=[],U=12;while(U+4<=W.length){let Q=W.readUInt8(U),N=W.readUInt8(U+1),q=W.readUInt16BE(U+2),A=W.slice(U+4,U+q),H=jr[Q.toString()];if(H)V.push(new H(N,A));else throw Error("unknown");U+=q+qU(q)}return[X,G,Y,V]}function Or(W,X,G,Y){let J=Buffer.alloc(8);J.writeUInt16BE(W,0),J.writeUInt16BE(X,2),J.writeUInt32BE(G,4);let Z=Y.bytes,V=$S(Buffer.concat([J,Buffer.from("\x00\x00\x00\x00"),Z])),U=Buffer.alloc(4);return U.writeUInt32LE(V,0),Buffer.concat([J,U,Z])}function Dr(W){return W.map((X,G)=>[G,X])}function Cr(W){return W.reduce((X,G)=>{return X[G]=new d0,X},{})}var rK=class W{constructor(X,G,Y,J){this.requestSequence=X,this.responseSequence=G,this.lastTsn=Y,this.streams=J}static type=13;get type(){return W.type}get bytes(){let X=Buffer.from(X8.Pack("!LLL",[this.requestSequence,this.responseSequence,this.lastTsn]));return Buffer.concat([X,...this.streams.map((G)=>Buffer.from(X8.Pack("!H",[G])))])}static parse(X){let[G,Y,J]=X8.Unpack("!LLL",X),Z=[];for(let V=12;V<X.length;V+=2)Z.push(X8.Unpack("!H",X.slice(V))[0]);return new W(G,Y,J,Z)}},Qx=class W{constructor(X,G){this.requestSequence=X,this.newStreams=G}static type=17;get type(){return W.type}get bytes(){return Buffer.from(X8.Pack("!LHH",[this.requestSequence,this.newStreams,0]))}static parse(X){let[G,Y]=X8.Unpack("!LHH",X);return new W(G,Y)}},yq={ReconfigResultSuccessPerformed:1,BadSequenceNumber:5},iq=class W{constructor(X,G){this.responseSequence=X,this.result=G}static type=16;get type(){return W.type}get bytes(){return Buffer.from(X8.Pack("!LL",[this.responseSequence,this.result]))}static parse(X){let[G,Y]=X8.Unpack("!LL",X);return new W(G,Y)}},YS={13:rK,16:iq,17:Qx},e1=L1("werift/sctp/sctp"),Tr=24,Mr=60,JS=65535,X7=1200,fV=1,Nx=2,aK=4,ZS=10,Pr=8,VS=0.125,US=0.25,QS=3,Rr=1,Lr=60,qH=4294967296,Br=200,Er=30,NS=135,qS=7,HS=32776,AS=49152,$r=["new","closed","connected","connecting"],Fr=class W{constructor(X,G=5000){this.transport=X,this.port=G,this.localPort=this.port,this.transport.onData=(Y)=>{this.handleData(Y)}}flush=new d0;stateChanged=Cr($r);onReconfigStreams=new d0;onReceive=new d0;onSackReceived=async()=>{};associationState=1;started=!1;state="new";isServer=!0;isStopping=!1;isClosed=!1;hmacKey=zr(16);localPartialReliability=!0;localPort;localVerificationTag=TK();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=JS;lastReceivedTsn;sackDuplicates=[];sackMisOrdered=new Set;sackNeeded=!1;sackPacketCount=0;sackHasNewDataInPacket=!1;sackImmediate=!1;sackTimeout;cwnd=3*X7;fastRecoveryExit;fastRecoveryTransmit=!1;forwardTsnChunk;flightSize=0;outboundQueue=[];outboundStreamSeq={};_outboundStreamsCount=JS;localTsn=Number(TK());lastSackedTsn=KX(this.localTsn);advancedPeerAckTsn=KX(this.localTsn);partialBytesAcked=0;sentQueue=[];transmitting=!1;transmitRequested=!1;reconfigRequestSeq=this.localTsn;reconfigResponseSeq=0;reconfigRequest;reconfigQueue=[];srtt;rttvar;rto=QS;timer1Handle;timer1Chunk;timer1Failures=0;timer2Handle;timer2Chunk;timer2Failures=0;timer3Handle;timerReconfigHandle;timerReconfigFailures=0;timerHeartbeatHandle;heartbeatInterval=Er;ssthresh;get isStopped(){return this.isStopping||this.isClosed}get maxChannels(){if(this._inboundStreamsCount>0)return Math.min(this._inboundStreamsCount,this._outboundStreamsCount);return}static client(X,G=5000){let Y=new W(X,G);return Y.isServer=!1,Y}static server(X,G=5000){let Y=new W(X,G);return Y.isServer=!0,Y}async handleData(X){if(this.isStopped)return;let G,[,,Y,J]=Kr(X);if(J.filter((V)=>V.type===lq.type).length>0){if(J.length!=1)throw Error();G=0}else G=this.localVerificationTag;if(Y!==G)return;this.sackHasNewDataInPacket=!1;for(let V of J)await this.receiveChunk(V);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((X)=>{e1("send delayed sack failed",X.message)})},Br)}async sendSack(){if(this.isStopped)return;if(!this.sackNeeded)return;let X=[],G;[...this.sackMisOrdered].sort().forEach((J)=>{let Z=(J-this.lastReceivedTsn)%qH;if(J===G)X[X.length-1][1]=Z;else X.push([Z,Z]);G=vY(J)});let Y=new iK(0,void 0);Y.cumulativeTsn=this.lastReceivedTsn,Y.advertisedRwnd=Math.max(0,this.advertisedRwnd),Y.duplicates=[...this.sackDuplicates],Y.gaps=X,await this.sendChunk(Y).catch((J)=>{e1("send sack failed",J.message)}),this.sackDuplicates=[],this.sackNeeded=!1,this.sackPacketCount=0,this.sackImmediate=!1}async receiveChunk(X){switch(X.type){case oq.type:this.receiveDataChunk(X);break;case lq.type:{if(!this.isServer)return;let G=X;e1("receive init",G),this.lastReceivedTsn=KX(G.initialTsn),this.reconfigResponseSeq=KX(G.initialTsn),this.remoteVerificationTag=G.initiateTag,this.ssthresh=G.advertisedRwnd,this.peerAdvertisedRwnd=G.advertisedRwnd,this.getExtensions(G.params),this._inboundStreamsCount=Math.min(G.outboundStreams,this._inboundStreamsMax),this._outboundStreamsCount=Math.min(this._outboundStreamsCount,G.inboundStreams);let Y=new pK;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 J=Date.now()/1000,Z=Buffer.from(X8.Pack("!L",[J]));Z=Buffer.concat([Z,GS("sha1",this.hmacKey).update(Z).digest()]),Y.params.push([qS,Z]),e1("send initAck",Y),await this.sendChunk(Y).catch((V)=>{e1("send initAck failed",V.message)})}break;case pK.type:{if(this.associationState!=2)return;let G=X;this.timer1Cancel(),this.lastReceivedTsn=KX(G.initialTsn),this.reconfigResponseSeq=KX(G.initialTsn),this.remoteVerificationTag=G.initiateTag,this.ssthresh=G.advertisedRwnd,this.peerAdvertisedRwnd=G.advertisedRwnd,this.getExtensions(G.params),this._inboundStreamsCount=Math.min(G.outboundStreams,this._inboundStreamsMax),this._outboundStreamsCount=Math.min(this._outboundStreamsCount,G.inboundStreams);let Y=new cK;for(let[J,Z]of G.params)if(J===qS){Y.body=Z;break}await this.sendChunk(Y).catch((J)=>{e1("send echo failed",J.message)}),this.timer1Start(Y),this.setState(3)}break;case iK.type:await this.receiveSackChunk(X);break;case oK.type:{let G=new Gx;G.params=X.params,await this.sendChunk(G).catch((Y)=>{e1("send heartbeat ack failed",Y.message)})}break;case dK.type:this.setState(1);break;case Yx.type:{this.timer2Cancel(),this.setState(7);let G=new Jx;await this.sendChunk(G).catch((Y)=>{e1("send shutdown ack failed",Y.message)}),this.t2Start(G),this.setState(6)}break;case nq.type:e1("ErrorChunk",X.descriptions);break;case cK.type:{if(!this.isServer)return;let Y=X.body,J=GS("sha1",this.hmacKey).update(Y.slice(0,4)).digest();if(Y?.length!=Tr||!Y.slice(4).equals(J)){e1("x State cookie is invalid");return}let Z=Date.now()/1000,V=X8.Unpack("!L",Y)[0];if(V<Z-Mr||V>Z){let Q=new nq(0,void 0);Q.params.push([nq.CODE.StaleCookieError,Buffer.concat([...Array(8)].map(()=>Buffer.from("\x00")))]),await this.sendChunk(Q).catch((N)=>{e1("send errorChunk failed",N.message)});return}let U=new lK;await this.sendChunk(U).catch((Q)=>{e1("send cookieAck failed",Q.message)}),this.setState(4)}break;case lK.type:{if(this.associationState!=3)return;this.timer1Cancel(),this.setState(4)}break;case Zx.type:{if(this.associationState!=8)return;this.timer2Cancel(),this.setState(1)}break;case nK.type:{if(this.associationState!=4)return;let G=X;for(let[Y,J]of G.params){let Z=YS[Y];if(Z)await this.receiveReconfigParam(Z.parse(J))}}break;case dq.type:this.receiveForwardTsnChunk(X);break}}getExtensions(X){for(let[G,Y]of X)if(G===AS)this.remotePartialReliability=!0;else if(G===HS)this.remoteExtensions=[...Y]}async receiveReconfigParam(X){switch(e1("receiveReconfigParam",YS[X.type]),X.type){case rK.type:{let G=X,Y=new iq(G.requestSequence,yq.ReconfigResultSuccessPerformed);this.reconfigResponseSeq=G.requestSequence,await this.sendReconfigParam(Y),await Promise.all(G.streams.map(async(J)=>{if(delete this.inboundStreams[J],this.outboundStreamSeq[J]){if(!this.reconfigQueue.includes(J))this.reconfigQueue.push(J)}})),await this.transmitReconfigRequest(),this.onReconfigStreams.execute(G.streams)}break;case iq.type:{let G=X;if(G.result!==yq.ReconfigResultSuccessPerformed)e1("OutgoingSSNResetRequestParam failed",Object.keys(yq).find((Y)=>yq[Y]===G.result));else if(G.responseSequence===this.reconfigRequest?.requestSequence){let Y=this.reconfigRequest.streams.map((J)=>{return delete this.outboundStreamSeq[J],J});if(this.onReconfigStreams.execute(Y),this.reconfigRequest=void 0,this.timerReconfigCancel(),this.rto=QS,this.timerReconfigFailures=0,this.reconfigQueue.length>0)await this.transmitReconfigRequest()}}break;case Qx.type:{let G=X;this._inboundStreamsCount+=G.newStreams;let Y=new iq(G.requestSequence,1);this.reconfigResponseSeq=G.requestSequence,await this.sendReconfigParam(Y)}break}}receiveDataChunk(X){if(this.sackNeeded=!0,this.markReceived(X.tsn)){this.sackImmediate=!0;return}if(this.sackHasNewDataInPacket=!0,this.sackImmediate=!0,(X.flags&fV)===0)this.sackImmediate=!0;if(this.sackMisOrdered.size>0)this.sackImmediate=!0;let G=this.getInboundStream(X.streamId);G.addChunk(X),this.advertisedRwnd-=X.userData.length;for(let Y of G.popMessages())this.advertisedRwnd+=Y[2].length,this.receive(...Y)}async receiveSackChunk(X){if(p4(this.lastSackedTsn,X.cumulativeTsn))return;let G=Date.now()/1000;this.lastSackedTsn=X.cumulativeTsn;let Y=this.flightSize>=this.cwnd,J=0,Z=0;while(this.sentQueue.length>0&&mV(this.lastSackedTsn,this.sentQueue[0].tsn)){let U=this.sentQueue.shift();if(J++,!U?.acked)Z+=U.bookSize,this.flightSizeDecrease(U);if(J===1&&U.sentCount===1)this.updateRto(G-U.sentTime)}if(!this.sentQueue.length)this.sentQueue=[];let V=!1;if(X.gaps.length>0){let U=new Set,Q;X.gaps.forEach((q)=>{for(let A=q[0];A<q[1]+1;A++)Q=(X.cumulativeTsn+A)%qH,U.add(Q)});let N=X.cumulativeTsn;for(let q of this.sentQueue){if(p4(q.tsn,Q))break;if(U.has(q.tsn)&&!q.acked)Z+=q.bookSize,q.acked=!0,this.flightSizeDecrease(q),N=q.tsn}for(let q of this.sentQueue){if(p4(q.tsn,N))break;if(!U.has(q.tsn)){if(q.misses++,q.misses===3){if(q.misses=0,!this.maybeAbandon(q))q.retransmit=!0;q.acked=!1,this.flightSizeDecrease(q),V=!0}}}}if(this.fastRecoveryExit===void 0){if(J&&Y){if(this.cwnd<=this.ssthresh)this.cwnd+=Math.min(Z,X7);else if(this.partialBytesAcked+=Z,this.partialBytesAcked>=this.cwnd)this.partialBytesAcked-=this.cwnd,this.cwnd+=X7}if(V)this.ssthresh=Math.max(Math.floor(this.cwnd/2),4*X7),this.cwnd=this.ssthresh,this.partialBytesAcked=0,this.fastRecoveryExit=this.sentQueue[this.sentQueue.length-1].tsn,this.fastRecoveryTransmit=!0}else if(mV(X.cumulativeTsn,this.fastRecoveryExit))this.fastRecoveryExit=void 0;if(this.sentQueue.length===0)this.timer3Cancel();else if(J>0)this.timer3Restart();this.peerAdvertisedRwnd=X.advertisedRwnd,this.updateAdvancedPeerAckPoint(),await this.onSackReceived(),await this.transmit()}receiveForwardTsnChunk(X){if(this.sackNeeded=!0,this.sackImmediate=!0,mV(this.lastReceivedTsn,X.cumulativeTsn))return;let G=(Y)=>p4(Y,this.lastReceivedTsn);this.lastReceivedTsn=X.cumulativeTsn,this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(G));for(let Y of[...this.sackMisOrdered].sort())if(Y===vY(this.lastReceivedTsn))this.lastReceivedTsn=Y;else break;this.sackDuplicates=this.sackDuplicates.filter(G),this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(G));for(let[Y,J]of X.streams){let Z=this.getInboundStream(Y);Z.streamSequenceNumber=R9(J,1);for(let V of Z.popMessages())this.advertisedRwnd+=V[2].length,this.receive(...V)}Object.values(this.inboundStreams).forEach((Y)=>{this.advertisedRwnd+=Y.pruneChunks(this.lastReceivedTsn)})}updateRto(X){if(!this.srtt)this.rttvar=X/2,this.srtt=X;else this.rttvar=(1-US)*this.rttvar+US*Math.abs(this.srtt-X),this.srtt=(1-VS)*this.srtt+VS*X;this.rto=Math.max(Rr,Math.min(this.srtt+4*this.rttvar,Lr))}receive(X,G,Y){this.onReceive.execute(X,G,Y)}getInboundStream(X){if(!this.inboundStreams[X])this.inboundStreams[X]=new Sr;return this.inboundStreams[X]}markReceived(X){if(mV(this.lastReceivedTsn,X)||this.sackMisOrdered.has(X))return this.sackDuplicates.push(X),!0;this.sackMisOrdered.add(X);for(let Y of[...this.sackMisOrdered].sort())if(Y===vY(this.lastReceivedTsn))this.lastReceivedTsn=Y;else break;let G=(Y)=>p4(Y,this.lastReceivedTsn);return this.sackDuplicates=this.sackDuplicates.filter(G),this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(G)),!1}send=async(X,G,Y,{expiry:J,maxRetransmits:Z,ordered:V}={expiry:void 0,maxRetransmits:void 0,ordered:!0})=>{let U=V?this.outboundStreamSeq[X]||0:0,Q=Math.ceil(Y.length/X7),N=0,q=[];for(let A=0;A<Q;A++){let H=new oq(0,void 0);if(H.flags=0,!V)H.flags=aK;if(A===0)H.flags|=Nx;if(A===Q-1)H.flags|=fV;H.tsn=this.localTsn,H.streamId=X,H.streamSeqNum=U,H.protocol=G,H.userData=Y.slice(N,N+X7),H.bookSize=H.userData.length,H.expiry=J,H.maxRetransmits=Z,N+=X7,this.localTsn=vY(this.localTsn),q.push(H)}if(q.forEach((A)=>{this.outboundQueue.push(A)}),V)this.outboundStreamSeq[X]=R9(U,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((J)=>{e1("send forwardTsn failed",J.message)}),this.forwardTsnChunk=void 0,!this.timer3Handle)this.timer3Start()}let X=this.fastRecoveryExit!=null?2*X7:4*X7,G=Math.min(this.flightSize+X,this.cwnd),Y=!0;for(let J of this.sentQueue){if(J.retransmit){if(this.fastRecoveryTransmit)this.fastRecoveryTransmit=!1;else if(this.flightSize>=G)break;if(this.flightSizeIncrease(J),J.misses=0,J.retransmit=!1,J.sentCount++,await this.sendChunk(J).catch((Z)=>{e1("send data failed",Z.message)}),Y)this.timer3Restart()}Y=!1}while(this.outboundQueue.length>0&&this.flightSize<G&&this.peerRwnd>0){let J=this.outboundQueue.shift();if(!J)break;if(J.bookSize>this.peerRwnd&&this.flightSize>0){this.outboundQueue.unshift(J);break}if(this.sentQueue.push(J),this.flightSizeIncrease(J),J.sentCount++,J.sentTime=Date.now()/1000,await this.sendChunk(J).catch((Z)=>{e1("send data outboundQueue failed",Z.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 X=[...new Set(this.reconfigQueue)],G=X.slice(0,NS);this.reconfigQueue=X.slice(NS);let Y=new rK(this.reconfigRequestSeq,this.reconfigResponseSeq,KX(this.localTsn),G);this.reconfigRequestSeq=vY(this.reconfigRequestSeq),this.reconfigRequest=Y,await this.sendReconfigParam(Y),this.timerReconfigHandleStart()}}async sendReconfigParam(X){e1("sendReconfigParam",X);let G=new nK;G.params.push([X.type,X.bytes]),await this.sendChunk(G).catch((Y)=>{e1("send reconfig failed",Y.message)})}async sendResetRequest(X){e1("sendResetRequest",X);let G=new oq(0,void 0);if(G.streamId=X,this.outboundQueue.push(G),!this.timer3Handle)await this.transmit()}flightSizeIncrease(X){this.flightSize+=X.bookSize}flightSizeDecrease(X){this.flightSize=Math.max(0,this.flightSize-X.bookSize)}timer1Start(X){if(this.timer1Handle)throw Error();this.timer1Chunk=X,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>Pr)this.setState(1);else{if(setImmediate(()=>{if(this.isStopped)return;this.sendChunk(this.timer1Chunk).catch((X)=>{e1("send timer1 chunk failed",X.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(X){if(this.timer2Handle)throw Error();this.timer2Chunk=X,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>ZS)this.setState(1);else{if(setImmediate(()=>{if(this.isStopped)return;this.sendChunk(this.timer2Chunk).catch((X)=>{e1("send timer2Chunk failed",X.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((X)=>{if(!this.maybeAbandon(X))X.retransmit=!0}),this.updateAdvancedPeerAckPoint(),this.fastRecoveryExit=void 0,this.flightSize=0,this.partialBytesAcked=0,this.ssthresh=Math.max(Math.floor(this.cwnd/2),4*X7),this.cwnd=X7,this.transmit()};timer3Cancel(){if(this.timer3Handle)clearTimeout(this.timer3Handle),this.timer3Handle=void 0}timerReconfigHandleStart(){if(this.isStopped)return;if(this.timerReconfigHandle)return;e1("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>ZS)e1("timerReconfigFailures",this.timerReconfigFailures),this.setState(1),this.timerReconfigHandle=void 0;else if(this.reconfigRequest){if(e1("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)e1("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 X=new oK;X.params.push([1,Buffer.from(X8.Pack("!L",[Math.floor(Date.now()/1000)]))]),await this.sendChunk(X).catch((G)=>{e1("send heartbeat failed",G.message)})}this.heartbeatStart()};setHeartbeatInterval(X){if(X<=0)throw Error("heartbeat interval must be > 0");this.heartbeatInterval=X,this.heartbeatRestart()}updateAdvancedPeerAckPoint(){if(p4(this.lastSackedTsn,this.advancedPeerAckTsn))this.advancedPeerAckTsn=this.lastSackedTsn;let X=0,G={};while(this.sentQueue.length>0&&this.sentQueue[0].abandoned){let Y=this.sentQueue.shift();if(this.advancedPeerAckTsn=Y.tsn,X++,!(Y.flags&aK))G[Y.streamId]=Y.streamSeqNum}if(!this.sentQueue.length)this.sentQueue=[];if(X)this.forwardTsnChunk=new dq(0,void 0),this.forwardTsnChunk.cumulativeTsn=this.advancedPeerAckTsn,this.forwardTsnChunk.streams=Object.entries(G).map(([Y,J])=>[Number(Y),J])}maybeAbandon(X){if(X.abandoned)return!0;if(!(!!X.maxRetransmits&&X.maxRetransmits<X.sentCount||!!X.expiry&&X.expiry<Date.now()/1000))return!1;let Y=this.sentQueue.findIndex((J)=>J.type===X.type);for(let J=Y;J>=0;J--){let Z=this.sentQueue[J];if(Z.abandoned=!0,Z.retransmit=!1,Z.flags&fV)break}for(let J=Y;J<this.sentQueue.length;J++){let Z=this.sentQueue[J];if(Z.abandoned=!0,Z.retransmit=!1,Z.flags&fV)break}return!0}static getCapabilities(){return new xr(65536)}setRemotePort(X){this.remotePort=X}async start(X){if(!this.started){if(this.started=!0,this.setConnectionState("connecting"),X)this.setRemotePort(X);if(!this.isServer)await this.init()}}async init(){let X=new lq;X.initiateTag=this.localVerificationTag,X.advertisedRwnd=this.advertisedRwnd,X.outboundStreams=this._outboundStreamsCount,X.inboundStreams=this._inboundStreamsMax,X.initialTsn=this.localTsn,this.setExtensions(X.params),e1("send init",X);try{await this.sendChunk(X),this.timer1Start(X),this.setState(2)}catch(G){e1("send init failed",G.message)}}setExtensions(X){let G=[];if(this.localPartialReliability)X.push([AS,Buffer.from("")]),G.push(dq.type);G.push(Ir.type),X.push([HS,Buffer.from(G)])}async sendChunk(X){if(this.state==="closed")return;if(this.remotePort===void 0)throw Error("invalid remote port");let G=Or(this.localPort,this.remotePort,this.remoteVerificationTag,X);await this.transport.send(G)}setState(X){if(X!=this.associationState)this.associationState=X;if(X===4)this.isStopping=!1,this.isClosed=!1,this.setConnectionState("connected"),this.heartbeatStart();else if(X===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(X){this.state=X,e1("setConnectionState",X),this.stateChanged[X].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 X=new dK;await this.sendChunk(X).catch((G)=>{e1("send abort failed",G.message)})}removeAllListeners(){Object.values(this.stateChanged).forEach((X)=>X.allUnsubscribe())}},Sr=class{reassembly=[];streamSequenceNumber=0;constructor(){}addChunk(W){if(this.reassembly.length===0||p4(W.tsn,this.reassembly[this.reassembly.length-1].tsn)){this.reassembly.push(W);return}for(let[X,G]of Dr(this.reassembly)){if(G.tsn===W.tsn)throw Error("duplicate chunk in reassembly");if(p4(G.tsn,W.tsn)){this.reassembly.splice(X,0,W);break}}}*popMessages(){let W=0,X,G,Y;while(W<this.reassembly.length){let J=this.reassembly[W];if(X===void 0){if(Y=!(J.flags&aK),!(J.flags&Nx))if(Y)break;else{W++;continue}if(Y&&FS(J.streamSeqNum,this.streamSequenceNumber))break;G=J.tsn,X=W}else if(J.tsn!==G)if(Y)break;else{X=void 0,W++;continue}if(J.flags&fV){let Z=this.reassembly.slice(X,W+1).map((U)=>U.userData).reduce((U,Q)=>{return U.push(Q),U.push(Buffer.from("")),U},[]);Z.pop();let V=Buffer.concat(Z);if(this.reassembly=[...this.reassembly.slice(0,X),...this.reassembly.slice(W+1)],Y&&J.streamSeqNum===this.streamSequenceNumber)this.streamSequenceNumber=R9(this.streamSequenceNumber,1);W=X,yield[J.streamId,J.protocol,V]}else W++;G=vY(G)}}pruneChunks(W){let X=-1,G=0;for(let[Y,J]of this.reassembly.entries())if(mV(W,J.tsn))X=Y,G+=J.userData.length;else break;return this.reassembly=this.reassembly.slice(X+1),G}},xr=class{constructor(W){this.maxMessageSize=W}};function KX(W){return(W-1)%qH}function vY(W){return(W+1)%qH}var xY=L1("werift:packages/webrtc/src/transport/sctp.ts"),pV=65536,kr=class W{constructor(X=5000,G=pV){this.port=X,this.maxMessageSize=G}dtlsTransport;sctp;onDataChannel=new d0;id=Ar().toString();mid;mLineIndex;bundled=!1;dataChannels={};remoteMaxMessageSize=pV;dataChannelQueue=[];dataChannelId;eventDisposer=[];setDtlsTransport(X){if(this.dtlsTransport&&this.dtlsTransport.id===X.id)return;this.eventDisposer.forEach((G)=>G()),this.dtlsTransport=X,this.sctp=new Fr(new _r(this.dtlsTransport),this.port),this.eventDisposer=[...[this.sctp.onReceive.subscribe(this.datachannelReceive),this.sctp.onReconfigStreams.subscribe((G)=>{G.forEach((Y)=>{let J=this.dataChannels[Y];if(!J)return;J.setReadyState("closing"),J.setReadyState("closed"),delete this.dataChannels[Y]})}),this.sctp.stateChanged.connected.subscribe(()=>{Object.values(this.dataChannels).forEach((G)=>{if(G.negotiated&&G.readyState!=="open")G.setReadyState("open")}),this.dataChannelFlush()}),this.sctp.stateChanged.closed.subscribe(()=>{Object.values(this.dataChannels).forEach((G)=>{G.setReadyState("closed")}),this.dataChannels={}}),this.dtlsTransport.onStateChange.subscribe((G)=>{if(G==="closed")this.sctp.setState(1)})].map((G)=>G.unSubscribe),()=>this.sctp.onSackReceived=async()=>{}],this.sctp.onSackReceived=async()=>{await this.dataChannelFlush()}}get isServer(){return this.dtlsTransport.iceTransport.role!=="controlling"}channelByLabel(X){return Object.values(this.dataChannels).find((G)=>G.label===X)}datachannelReceive=async(X,G,Y)=>{if(G===_q&&Y.length>0)switch(xY("DCEP",X,G,Y),Y[0]){case oF:{if(Y.length<12){xY("DATA_CHANNEL_OPEN data.length not enough");return}if(!Object.keys(this.dataChannels).includes(X.toString())){let[,Z,,V,U,Q]=X8.Unpack("!BBHLHH",Y),N=12,q=Y.slice(N,N+U).toString("utf8");N+=U;let A=Y.slice(N,N+Q).toString("utf8");xY("DATA_CHANNEL_OPEN",{channelType:Z,reliability:V,streamId:X,label:q,protocol:A});let H=(Z&3)===1?V:void 0,I=(Z&3)===2?V:void 0,w=new u2({label:q,ordered:(Z&128)===0,maxPacketLifeTime:I,maxRetransmits:H,protocol:A,id:X}),O=new g2(this,w,!1);O.isCreatedByRemote=!0,this.dataChannels[X]=O,this.onDataChannel.execute(O),O.setReadyState("open")}else xY("datachannel already opened","retransmit ack");let J=this.dataChannels[X];this.dataChannelQueue.push([J,_q,Buffer.from(X8.Pack("!B",[dF]))]),await this.dataChannelFlush()}break;case dF:{xY("DATA_CHANNEL_ACK",X,G);let J=this.dataChannels[X];if(!J)throw Error("channel not found");J.setReadyState("open")}break}else{let J=this.dataChannels[X];if(J){let Z=(()=>{switch(G){case nF:return Y.toString("utf8");case Fi:return"";case iF:return Y;case Si:return Buffer.from([]);default:throw Error()}})();if(J.messagesReceived++,J.bytesReceived+=Y.length,J.onMessage.execute(Z),J.emit("message",{data:Z}),J.onmessage)J.onmessage({data:Z})}}};dataChannelAddNegotiated(X){if(X.id==null)throw Error();if(this.dataChannels[X.id])throw Error();if(this.dataChannels[X.id]=X,this.sctp.associationState===4)X.setReadyState("open")}dataChannelOpen(X){if(X.id){if(this.dataChannels[X.id])throw Error(`Data channel with ID ${X.id} already registered`);this.dataChannels[X.id]=X}let G=$i,Y=0,J=0;if(!X.ordered)G=128;if(X.maxRetransmits)G=1,J=X.maxRetransmits;else if(X.maxPacketLifeTime)G=2,J=X.maxPacketLifeTime;let Z=X8.Pack("!BBHLHH",[oF,G,Y,J,X.label.length,X.protocol.length]),V=Buffer.concat([Buffer.from(Z),Buffer.from(X.label,"utf8"),Buffer.from(X.protocol,"utf8")]);this.dataChannelQueue.push([X,_q,V]),this.dataChannelFlush()}async dataChannelFlush(){if(this.sctp.associationState!=4)return;while(this.dataChannelQueue.length>0){let[X,G,Y]=this.dataChannelQueue.shift(),J=X.id;if(J===void 0){J=this.dataChannelId;while(Object.keys(this.dataChannels).includes(J.toString()))J+=2;this.dataChannels[J]=X,X.setId(J)}if(G===_q)await this.sctp.send(J,G,Y,{ordered:!0});else{let Z=X.maxPacketLifeTime?Date.now()+X.maxPacketLifeTime/1000:void 0;await this.sctp.send(J,G,Y,{expiry:Z,maxRetransmits:X.maxRetransmits,ordered:X.ordered}),X.addBufferedAmount(-Y.length)}}this.dataChannelQueue=[]}assertSendableMessageSize(X){if(this.remoteMaxMessageSize!==0&&X>this.remoteMaxMessageSize)throw Error(`max-message-size exceeded: ${X} > ${this.remoteMaxMessageSize}`)}datachannelSend=(X,G)=>{let Y=Buffer.isBuffer(G)?G:Buffer.from(G),J=ji(G);if(this.assertSendableMessageSize(J),X.addBufferedAmount(J),this.dataChannelQueue.push(typeof G==="string"?[X,nF,Y]:[X,iF,Y]),this.sctp.associationState!==4)xY("sctp not established",this.sctp.associationState);return this.dataChannelFlush(),J};getCapabilities(){return W.getCapabilities(this.maxMessageSize)}static getCapabilities(X=pV){return new qx(X)}setRemoteMaxMessageSize(X){this.remoteMaxMessageSize=X??pV}setRemotePort(X){this.sctp.setRemotePort(X)}async start(X){if(this.isServer)this.dataChannelId=0;else this.dataChannelId=1;this.sctp.isServer=this.isServer,await this.sctp.start(X)}async stop(){this.dtlsTransport.dataReceiver=()=>{},await this.sctp.stop()}dataChannelClose(X){if(!["closing","closed"].includes(X.readyState))if(X.setReadyState("closing"),this.sctp.associationState===4){if(!this.sctp.reconfigQueue.includes(X.id))this.sctp.reconfigQueue.push(X.id);if(this.sctp.reconfigQueue.length===1)this.sctp.transmitReconfigRequest()}else{if(this.dataChannelQueue=this.dataChannelQueue.filter((G)=>G[0].id!==X.id),this.sctp.reconfigQueue=this.sctp.reconfigQueue.filter((G)=>G!==X.id),X.id)delete this.dataChannels[X.id];X.setReadyState("closed")}}},qx=class{constructor(W){this.maxMessageSize=W}},_r=class{constructor(W){this.dtls=W}set onData(W){this.dtls.dataReceiver=W}send=(W)=>{return this.dtls.sendData(W)};close(){}},rq=class W{version=0;origin;name="-";time="0 0";host;group=[];extMapAllowMixed=!0;msidSemantic=[];media=[];type;dtlsRole;iceOptions;iceLite;icePassword;iceUsernameFragment;dtlsFingerprints=[];static parse(X){let[G,Y]=yr(X),J=new W;G.forEach((V)=>{if(V.startsWith("v="))J.version=Number.parseInt(V.slice(2),10);else if(V.startsWith("o="))J.origin=V.slice(2);else if(V.startsWith("s="))J.name=V.slice(2);else if(V.startsWith("c="))J.host=KK(V.slice(2));else if(V.startsWith("t="))J.time=V.slice(2);else if(V.startsWith("a=")){let[U,Q]=OK(V);switch(U){case"fingerprint":{let[N,q]=Q?.split(" ")||[];J.dtlsFingerprints.push(new mK(N,q))}break;case"ice-lite":J.iceLite=!0;break;case"ice-options":J.iceOptions=Q;break;case"ice-pwd":J.icePassword=Q;break;case"ice-ufrag":J.iceUsernameFragment=Q;break;case"group":DK(J.group,Q);break;case"msid-semantic":DK(J.msidSemantic,Q);break;case"setup":J.dtlsRole=aF[Q];break;case"extmap-allow-mixed":J.extMapAllowMixed=!0;break}}});let Z=J.group.find((V)=>V.semantic==="BUNDLE");return Y.forEach((V)=>{let Q=V[0].match(/^m=([^ ]+) ([0-9]+) ([A-Z/]+) (.+)/);if(!Q)throw Error("m line not found");let N=Q[1],q=Q[4].split(" "),A=["audio","video"].includes(N)?q.map((w)=>Number(w)):void 0,H=new sK(N,Number.parseInt(Q[2]),Q[3],A||q);if(H.dtlsParams=new fK([...J.dtlsFingerprints],J.dtlsRole),H.iceParams=new Xx({iceLite:J.iceLite,usernameFragment:J.iceUsernameFragment,password:J.icePassword}),H.iceOptions=J.iceOptions,J.media.push(H),V.slice(1).forEach((w)=>{if(w.startsWith("c="))H.host=KK(w.slice(2));else if(w.startsWith("a=")){let[O,T]=OK(w);switch(O){case"candidate":if(!T)throw Error();H.iceCandidates.push(Ax(T));break;case"end-of-candidates":H.iceCandidatesComplete=!0;break;case"extmap":{let[x,u]=T.split(" ");if(x.includes("/"))[x]=x.split("/");H.rtp.headerExtensions.push(new Oi({id:Number.parseInt(x),uri:u}))}break;case"fingerprint":{if(!T)throw Error();let[x,u]=T.split(" ");H.dtlsParams?.fingerprints.push(new mK(x,u))}break;case"ice-options":H.iceOptions=T;break;case"ice-pwd":H.iceParams.password=T;break;case"ice-ufrag":H.iceParams.usernameFragment=T;break;case"ice-lite":H.iceParams.iceLite=!0;break;case"max-message-size":H.sctpCapabilities=new qx(Number.parseInt(T,10));break;case"mid":H.rtp.muxId=T;break;case"msid":H.msid=T;break;case"rtcp":{let[x,u]=f4(T," ");H.rtcpPort=Number.parseInt(x),H.rtcpHost=KK(u)}break;case"rtcp-mux":H.rtcpMux=!0;break;case"setup":H.dtlsParams.role=aF[T];break;case"recvonly":case"sendonly":case"sendrecv":case"inactive":H.direction=O;break;case"rtpmap":{let[x,u]=f4(T," "),[$,S,h]=u.split("/"),l;if(H.kind==="audio")l=h?Number.parseInt(h):1;let p=new EX({mimeType:H.kind+"/"+$,channels:l,clockRate:Number.parseInt(S),payloadType:Number.parseInt(x)});H.rtp.codecs.push(p)}break;case"sctpmap":{if(!T)throw Error();let[x,u]=f4(T," ");H.sctpMap[Number.parseInt(x)]=u,H.sctpPort=Number.parseInt(x)}break;case"sctp-port":if(!T)throw Error();H.sctpPort=Number.parseInt(T);break;case"ssrc":{let[x,u]=f4(T," "),$=Number.parseInt(x),[S,h]=f4(u,":"),l=H.ssrc.find((p)=>p.ssrc===$);if(!l)l=new eK({ssrc:$}),H.ssrc.push(l);if(c2.includes(S))l[S]=h}break;case"ssrc-group":DK(H.ssrcGroup,T);break;case"rid":{let[x,u]=f4(T," ");H.simulcastParameters.push(new h2({rid:x,direction:u}))}break}}}),!H.iceParams.usernameFragment||!H.iceParams.password){if(H.rtp.muxId&&Z&&Z.items.includes(H.rtp.muxId))for(let w=0;w<Z.items.length;w++){if(!Z.items.includes(w.toString()))continue;let O=J.media[w];if(O.iceParams?.usernameFragment&&O.iceParams.password){H.iceParams={...O.iceParams};break}}}if(!H.dtlsParams.role)H.dtlsParams=void 0;let I=(w)=>H.rtp.codecs.find((O)=>O.payloadType===w);V.slice(1).forEach((w)=>{if(w.startsWith("a=")){let[O,T]=OK(w);if(O==="fmtp"){let[x,u]=f4(T," "),$=I(Number(x));$.parameters=u}else if(O==="rtcp-fb"){let[x,u,$]=T.split(" ");H.rtp.codecs.forEach((S)=>{if(["*",S.payloadType.toString()].includes(x))S.rtcpFeedback.push(new Di({type:u,parameter:$}))})}}})}),J}webrtcTrackId(X){if(X.msid?.includes(" ")){let G=X.msid.split(" ");for(let Y of this.msidSemantic)if(Y.semantic==="WMS"&&(Y.items.includes(G[0])||Y.items.includes("*")))return G[1]}return}get string(){let X=[`v=${this.version}`,`o=${this.origin}`,`s=${this.name}`];if(this.host)X.push(`c=${tK(this.host)}`);if(X.push(`t=${this.time}`),this.group.forEach((J)=>X.push(`a=group:${J.str}`)),this.extMapAllowMixed)X.push("a=extmap-allow-mixed");this.msidSemantic.forEach((J)=>X.push(`a=msid-semantic:${J.str}`));let G=this.media.map((J)=>J.toString()).join("");return X.join(`\r
|
|
243
243
|
`)+`\r
|
|
244
244
|
`+G}toJSON(){return new vr(this.string,this.type)}toSdp(){return{type:this.type,sdp:this.string}}},sK=class{constructor(W,X,G,Y){this.kind=W,this.port=X,this.profile=G,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((X)=>X.toString()).join(" ")}`),this.host)W.push(`c=${tK(this.host)}`);if(this.iceCandidates.forEach((X)=>{W.push(`a=candidate:${Hx(X)}`)}),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((X)=>{W.push(`a=fingerprint:${X.algorithm} ${X.value}`)}),W.push(`a=setup:${uK[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} ${tK(this.rtcpHost)}`),this.rtcpMux)W.push("a=rtcp-mux")}if(this.ssrcGroup.forEach((X)=>{W.push(`a=ssrc-group:${X.str}`)}),this.ssrc.forEach((X)=>{c2.forEach((G)=>{let Y=X[G];if(Y!==void 0)W.push(`a=ssrc:${X.ssrc} ${G}:${Y}`)})}),this.rtp.codecs.forEach((X)=>{if(W.push(`a=rtpmap:${X.payloadType} ${X.str}`),X.rtcpFeedback.forEach((G)=>{let Y=G.type;if(G.parameter)Y+=` ${G.parameter}`;W.push(`a=rtcp-fb:${X.payloadType} ${Y}`)}),X.parameters)W.push(`a=fmtp:${X.payloadType} ${X.parameters}`)}),Object.keys(this.sctpMap).forEach((X)=>{let G=this.sctpMap[Number(X)];W.push(`a=sctpmap:${X} ${G}`)}),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((X)=>W.push(`a=extmap:${X.id} ${X.uri}`)),this.simulcastParameters.length){this.simulcastParameters.forEach((J)=>{W.push(`a=rid:${J.rid} ${J.direction}`)});let X="a=simulcast:",G=this.simulcastParameters.filter((J)=>J.direction==="recv");if(G.length)X+=`recv ${G.map((J)=>J.rid).join(";")} `;let Y=this.simulcastParameters.filter((J)=>J.direction==="send");if(Y.length)X+=`send ${Y.map((J)=>J.rid).join(";")}`;W.push(X)}return W.join(`\r
|
|
245
245
|
`)+`\r
|
|
246
246
|
`}},oV=class{constructor(W,X){this.semantic=W,this.items=X}get str(){return`${this.semantic} ${this.items.join(" ")}`}};function KK(W){let X=W.match(/^IN (IP4|IP6) ([^ ]+)$/);if(!X)throw Error("exception");return X[2]}function tK(W){return`IN IP${Wr(W)?4:6} ${W}`}function Hx(W){let X=`${W.foundation} ${W.component} ${W.protocol} ${W.priority} ${W.ip} ${W.port} typ ${W.type}`;if(W.relatedAddress!=null)X+=` raddr ${W.relatedAddress}`;if(W.relatedPort!=null)X+=` rport ${W.relatedPort}`;if(W.tcpType!=null)X+=` tcptype ${W.tcpType}`;if(W.generation!=null)X+=` generation ${W.generation}`;if(W.ufrag!=null)X+=` ufrag ${W.ufrag}`;return X}function yr(W){let X=[],G=[],Y=W.split(`\r
|
|
247
247
|
`);if(Y.length===1)Y=W.split(`
|
|
248
|
-
`);return Y.forEach((J)=>{if(J.startsWith("m="))G.push([J]);else if(G.length>0)G[G.length-1].push(J);else X.push(J)}),[X,G]}function OK(W){if(W.includes(":")){let X=f4(W.slice(2),":");return[X[0],X[1]]}else return[W.slice(2),void 0]}function DK(W,X,G=(Y)=>Y.toString()){let Y=X.split(" ");if(Y.length>0)W.push(new oV(Y[0],Y.slice(1).map(G)))}function Ax(W){let X=DX.fromSdp(W);return eV(X)}var vr=class{constructor(W,X){this.sdp=W,this.type=X}static isThis(W){if(typeof W?.sdp==="string")return!0}toSdp(){return{sdp:this.sdp,type:this.type}}};function zS(W,X){let Y=new Eq(ei(64)).toString().slice(0,8),J=0;X.origin=`- ${Y} 0 IN IP4 0.0.0.0`,X.msidSemantic.push(new oV("WMS",["*"])),X.type=W}function HH(W){let X={};return W.split(";").forEach((G)=>{if(G.includes("=")){let[Y,J]=f4(G,"=");if(ki.includes(Y))X[Y]=Number(J);else X[Y]=J}else if(G.includes(":")){let[Y,J]=G.split(":");X[Y]=Number.isNaN(Number(J))?J:Number(J)}else X[G]=void 0}),X}var eK=class{ssrc;cname;msid;msLabel;label;constructor(W){Object.assign(this,W)}},vq=L1("werift:packages/webrtc/src/media/rtpReceiver.ts"),zx=class{constructor(W,X,G){this.config=W,this.kind=X,this.rtcpSsrc=G}codecs={};get codecArray(){return Object.values(this.codecs).sort((W,X)=>W.payloadType-X.payloadType)}ssrcByRtx={};nack=new ii(this);audioRedHandler=new Qn;type="receiver";uuid=Li().toString();tracks=[];trackBySSRC={};trackByRID={};lastSRtimestamp={};receiveLastSRTimestamp={};onPacketLost=this.nack.onPacketLost;onRtcp=new d0;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 hK({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===Ki().type)}get pliEnabled(){return this.codecArray[0]?.rtcpFeedback.find((W)=>W.type===QU().type)}prepareReceive(W){W.codecs.forEach((X)=>{this.codecs[X.payloadType]=X}),W.encodings.forEach((X)=>{if(X.rtx)this.ssrcByRtx[X.rtx.ssrc]=X.ssrc})}setupTWCC(W){if(this.twccEnabled&&!this.receiverTWCC)this.receiverTWCC=new si(this.dtlsTransport,this.rtcpSsrc,W)}addTrack(W){if(this.tracks.find((G)=>{if(G.rid)return G.rid===W.rid;if(G.ssrc)return G.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 wK(500+Math.random()*1000,void 0,{signal:this.rtcpCancel.signal});let W=Object.entries(this.remoteStreams).map(([G,Y])=>{let J=0,Z=0;if(this.lastSRtimestamp[G]){J=this.lastSRtimestamp[G];let V=NH()-this.receiveLastSRTimestamp[G];if(V>0&&V<65536)Z=lV(V*65536)}return new GO({ssrc:Number(G),fractionLost:Y.fraction_lost,packetsLost:Y.packets_lost,highestSequence:Y.max_seq,jitter:Y.jitter,lsr:J,dlsr:Z})}),X=new rV({ssrc:this.rtcpSsrc,reports:W});try{if(this.config.debug.receiverReportDelay)await wK(this.config.debug.receiverReportDelay);await this.dtlsTransport.sendRtcp([X])}catch(G){vq("sendRtcp failed",G),await wK(500+Math.random()*1000)}}}catch(W){}}async getStats(){let W=$X(),X=[];if(!this.dtlsTransport)return X;let G=N8("transport",this.dtlsTransport.id);for(let Y of this.tracks){if(!Y.ssrc)continue;let J=this.remoteStreams[Y.ssrc];if(!J)continue;let Z={type:"inbound-rtp",id:N8("inbound-rtp",Y.ssrc),timestamp:W,ssrc:Y.ssrc,kind:this.kind,transportId:G,codecId:this.codecs[0]?N8("codec",this.codecs[0].payloadType,G):void 0,mid:this.sdesMid,trackIdentifier:Y.id,packetsReceived:J.packets_received,packetsLost:J.packets_lost,jitter:J.jitter};if(X.push(Z),this.lastSRtimestamp[Y.ssrc]){let V={type:"remote-outbound-rtp",id:N8("remote-outbound-rtp",Y.ssrc),timestamp:W,ssrc:Y.ssrc,kind:this.kind,transportId:G,codecId:Z.codecId,localId:Z.id,remoteTimestamp:this.receiveLastSRTimestamp[Y.ssrc]*1000};X.push(V)}}return X}async sendRtcpPLI(W){if(!this.pliEnabled){vq("pli not supported",{mediaSsrc:W});return}if(this.stopped)return;vq("sendRtcpPLI",{mediaSsrc:W});let X=new iV({feedback:new JH({senderSsrc:this.rtcpSsrc,mediaSsrc:W})});try{await this.dtlsTransport.sendRtcp([X])}catch(G){vq(G)}}handleRtcpPacket(W){switch(W.type){case mY.type:{let X=W;this.lastSRtimestamp[X.ssrc]=t2(X.senderInfo.ntpTimestamp),this.receiveLastSRTimestamp[X.ssrc]=NH();let G=this.trackBySSRC[W.ssrc];if(G)G.onReceiveRtcp.execute(W)}break}this.onRtcp.execute(W)}handleRtpBySsrc=(W,X)=>{let G=this.trackBySSRC[W.header.ssrc];this.handleRTP(W,X,G)};handleRtpByRid=(W,X,G)=>{let Y=this.trackByRID[X];if(!this.trackBySSRC[W.header.ssrc])this.trackBySSRC[W.header.ssrc]=Y;this.handleRTP(W,G,Y)};handleRTP(W,X,G){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 ti(Y.clockRate),this.remoteStreams[W.header.ssrc].add(W),this.receiverTWCC){let Z=X[P9.transportWideCC];if(!Z==null)throw Error("undefined");this.receiverTWCC.handleTWCC(Z)}else if(this.twccEnabled)this.setupTWCC(W.header.ssrc);if(Y.name.toLowerCase()==="rtx"){let Z=this.ssrcByRtx[W.header.ssrc],V=HH(Y.parameters??""),U=this.codecs[V.apt];if(W.payload.length<2)return;W=Nn(W,U.payloadType,Z),G=this.trackBySSRC[Z]}let J;if(Y.name.toLowerCase()==="red"){if(J=q2.deSerialize(W.payload),!Object.keys(this.codecs).includes(J.header.fields[0].blockPT.toString()))return}if(G?.kind==="video"&&this.nackEnabled)this.nack.addPacket(W);if(G)if(J){if(G.kind==="audio"){let Z=this.audioRedHandler.push(J,W);for(let V of Z)G.onReceiveRtp.execute(V.clone(),X)}}else G.onReceiveRtp.execute(W.clone(),X);this.runRtcp()}},hV=L1("werift:packages/webrtc/src/media/router.ts"),gr=class{ssrcTable={};ridTable={};extIdUriMap={};constructor(){}registerRtpSender(W){this.ssrcTable[W.ssrc]=W}registerRtpReceiver(W,X){hV("registerRtpReceiver",X),this.ssrcTable[X]=W}registerRtpReceiverBySsrc(W,X){hV("registerRtpReceiverBySsrc",X),X.encodings.filter((G)=>G.ssrc!=null).forEach((G,Y)=>{if(this.registerRtpReceiver(W.receiver,G.ssrc),W.addTrack(new hK({ssrc:G.ssrc,kind:W.kind,id:W.sender.trackId,remote:!0,codec:X.codecs[Y]})),G.rtx)this.registerRtpReceiver(W.receiver,G.rtx.ssrc)}),X.headerExtensions.forEach((G)=>{this.extIdUriMap[G.id]=G.uri})}registerRtpReceiverByRid(W,X,G){let[Y]=G.codecs;hV("registerRtpReceiverByRid",X),W.addTrack(new hK({rid:X.rid,kind:W.kind,id:W.sender.trackId,remote:!0,codec:Y})),this.ridTable[X.rid]=W.receiver}routeRtp=(W)=>{let X=io(W.header.extensions,this.extIdUriMap),G=this.ssrcTable[W.header.ssrc],Y=X[P9.sdesRTPStreamID];if(typeof Y==="string")G=this.ridTable[Y],G.latestRid=Y,G.handleRtpByRid(W,Y,X);else if(G)G.handleRtpBySsrc(W,X);else if(G=Object.values(this.ridTable).filter((V)=>V instanceof zx).find((V)=>V.trackBySSRC[W.header.ssrc]),G)hV("simulcast register receiver by ssrc",W.header.ssrc),this.registerRtpReceiver(G,W.header.ssrc),G.handleRtpBySsrc(W,X);if(!G){hV("ssrcReceiver not found");return}let J=X[P9.sdesMid];if(typeof J==="string")G.sdesMid=J;let Z=X[P9.repairedRtpStreamId];if(typeof Z==="string")G.latestRepairedRid=Z};routeRtcp=(W)=>{let X=[];switch(W.type){case mY.type:W=W,X.push(this.ssrcTable[W.ssrc]);break;case rV.type:W=W,W.reports.forEach((G)=>{X.push(this.ssrcTable[G.ssrc])});break;case QH.type:{let G=W}break;case bY.type:{let G=W;if(G.feedback)X.push(this.ssrcTable[G.feedback.mediaSourceSsrc])}break;case iV.type:{let G=W;switch(G.feedback.count){case ZH.count:{let Y=G.feedback;X.push(this.ssrcTable[Y.ssrcFeedbacks[0]])}break;default:X.push(this.ssrcTable[G.feedback.senderSsrc]||this.ssrcTable[G.feedback.mediaSsrc])}}break}X.filter((G)=>G).forEach((G)=>G.handleRtcpPacket(W))}},ur=class{numPackets=0;totalSize=0;firstPacketSentAtMs=0;lastPacketSentAtMs=0;firstPacketReceivedAtMs=0;lastPacketReceivedAtMs=0;addPacket(W,X,G){if(this.numPackets===0)this.firstPacketSentAtMs=X,this.firstPacketReceivedAtMs=G,this.lastPacketSentAtMs=X,this.lastPacketReceivedAtMs=G;else{if(X<this.firstPacketSentAtMs)this.firstPacketSentAtMs=X;if(G<this.firstPacketReceivedAtMs)this.firstPacketReceivedAtMs=G;if(X>this.lastPacketSentAtMs)this.lastPacketSentAtMs=X;if(G>this.lastPacketReceivedAtMs)this.lastPacketReceivedAtMs=G}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,X=this.totalSize/W*8*1000;return YH(X)}get sendBitrate(){let W=this.lastPacketSentAtMs-this.firstPacketSentAtMs,X=this.totalSize/W*8*1000;return YH(X)}},kY=20,hr=10,br=class{congestion=!1;onAvailableBitrate=new d0;onCongestion=new d0;onCongestionScore=new d0;congestionCounter=0;cumulativeResult=new ur;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 G=s2()-this.cumulativeResult.firstPacketSentAtMs;if(G>1000){if(this.cumulativeResult.reset(),this.congestionCounter<kY)this.congestionCounter++;else if(this.congestionScore<hr)this.congestionScore++;if(this.congestionCounter>=kY&&!this.congestion)this.congestion=!0,this.onCongestion.execute(this.congestion)}for(let Y of W.packetResults){if(!Y.received)continue;let J=Y.sequenceNumber,Z=this.sentInfos[J];if(!Z)continue;if(!Y.receivedAtMs)continue;this.cumulativeResult.addPacket(Z.size,Z.sendingAtMs,Y.receivedAtMs)}if(G>=100&&this.cumulativeResult.numPackets>=20){if(this.availableBitrate=Math.min(this.cumulativeResult.sendBitrate,this.cumulativeResult.receiveBitrate),this.cumulativeResult.reset(),this.congestionCounter>-kY){let Y=YH(kY/2)+1,J=YH(kY/4)+1,Z=Y-(Y-J)/10*this.congestionScore;this.congestionCounter=this.congestionCounter-Z}if(this.congestionCounter<=-kY){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((X)=>Number(X)).sort().filter((X)=>X<W.wideSeq).forEach((X)=>{delete this.sentInfos[X]}),this.sentInfos[W.wideSeq]=W}},CK=L1("werift:packages/webrtc/src/media/rtpSender.ts"),KS=128,OS=0.85,mr=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=X8.Unpack("!L",IS(4))[0];rtxSsrc=X8.Unpack("!L",IS(4))[0];streamId=wS().toString();trackId=wS().toString();onReady=new d0;onRtcp=new d0;onPictureLossIndication=new d0;onGenericNack=new d0;senderBWE=new br;cname;mid;rtpStreamId;repairedRtpStreamId;rtxPayloadType;rtxSequenceNumber=TS();redRedundantPayloadType;_redDistance=2;redEncoder=new Vn(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((X)=>X());this.dtlsTransport=W,this.dtlsDisposer=[this.dtlsTransport.onStateChange.subscribe((X)=>{if(X==="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((X)=>{let G=HH(X.parameters??"");if(X.name.toLowerCase()==="rtx"&&G.apt===this.codec?.payloadType)this.rtxPayloadType=X.payloadType;if(X.name.toLowerCase()==="red")this.redRedundantPayloadType=Number((X.parameters??"").split("/")[0])})}registerTrack(W){if(W.stopped)throw Error("track is ended");if(this.disposeTrack)this.disposeTrack();W.id=this.trackId;let{unSubscribe:X}=W.onReceiveRtp.subscribe(async(G)=>{await this.sendRtp(G)});if(this.track=W,this.disposeTrack=X,this.codec)W.codec=this.codec;W.onSourceChanged.subscribe((G)=>{this.replaceRTP(G)})}async replaceTrack(W){if(W===null)return;if(W.stopped)throw Error("track is ended");if(this.sequenceNumber!=null){let X=W.header||(await W.onReceiveRtp.asPromise())[0].header;this.replaceRTP(X)}this.registerTrack(W),CK("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 jS(500+Math.random()*1000,void 0,{signal:this.rtcpCancel.signal});let W=[new mY({ssrc:this.ssrc,senderInfo:new N2({ntpTimestamp:this.ntpTimestamp,rtpTimestamp:this.rtpTimestamp,packetCount:this.packetCount,octetCount:this.octetCount})})];if(this.lastSRtimestamp=t2(this.ntpTimestamp),this.lastSentSRTimestamp=NH(),this.cname)W.push(new QH({chunks:[new U2({source:this.ssrc,items:[new Q2({type:1,text:this.cname})]})]}));try{await this.dtlsTransport.sendRtcp(W)}catch(X){CK("sendRtcp failed",X),await jS(500+Math.random()*1000)}}}catch(W){}}replaceRTP({sequenceNumber:W,timestamp:X},G=!1){if(this.sequenceNumber!=null){if(this.seqOffset=R9(this.sequenceNumber,-W),G)this.seqOffset=R9(this.seqOffset,2)}if(this.timestamp!=null){if(this.timestampOffset=gY(this.timestamp,-X),G)this.timestampOffset=R9(this.timestampOffset,1)}this.rtpCache=[],CK("replaceRTP",this.sequenceNumber,W,this.seqOffset)}async sendRtp(W){if(this.dtlsTransport.state!=="connected"||!this.codec)return;W=Buffer.isBuffer(W)?e6.deSerialize(W):W;let{header:X,payload:G}=W;X.ssrc=this.ssrc,X.payloadType=this.codec.payloadType,X.timestamp=gY(X.timestamp,this.timestampOffset),X.sequenceNumber=R9(X.sequenceNumber,this.seqOffset),this.timestamp=X.timestamp,this.sequenceNumber=X.sequenceNumber;let Y=li(),J=[...X.extensions];X.extensions=this.headerExtensions.map((N)=>{let q=(()=>{switch(N.uri){case P9.sdesMid:if(this.mid)return ro(this.mid);return;case P9.sdesRTPStreamID:if(this.rtpStreamId)return ao(this.rtpStreamId);return;case P9.repairedRtpStreamId:if(this.repairedRtpStreamId)return so(this.repairedRtpStreamId);return;case P9.transportWideCC:return this.dtlsTransport.transportSequenceNumber=R9(this.dtlsTransport.transportSequenceNumber,1),to(this.dtlsTransport.transportSequenceNumber);case P9.absSendTime:return eo(Y)}})();if(q)return{id:N.id,payload:q}}).filter((N)=>N);for(let N of J){let q=X.extensions.find((A)=>A.id===N.id);if(q)q.payload=N.payload;else X.extensions.push(N)}X.extensions=X.extensions.sort((N,q)=>N.id-q.id),this.ntpTimestamp=Y,this.rtpTimestamp=X.timestamp,this.octetCount+=G.length,this.packetCount=gY(this.packetCount,1),this.rtpCache[X.sequenceNumber%KS]=W;let Z=G;if(this.redRedundantPayloadType)this.redEncoder.push({block:Z,timestamp:X.timestamp,blockPT:this.redRedundantPayloadType}),Z=this.redEncoder.build().serialize();let V=await this.dtlsTransport.sendRtp(Z,X);this.runRtcp();let U=s2(),Q={wideSeq:this.dtlsTransport.transportSequenceNumber,size:V,sendingAtMs:U,sentAtMs:U};this.senderBWE.rtpPacketSent(Q)}handleRtcpPacket(W){switch(W.type){case mY.type:case rV.type:W.reports.filter((G)=>G.ssrc===this.ssrc).forEach((G)=>{if(this.lastSRtimestamp===G.lsr&&G.dlsr){if(this.lastSentSRTimestamp){let Y=NH()-this.lastSentSRTimestamp-G.dlsr/65536;if(this.rtt===void 0)this.rtt=Y;else this.rtt=OS*this.rtt+(1-OS)*Y}}});break;case bY.type:{let X=W;switch(X.feedback.count){case UH.count:{let G=X.feedback;this.senderBWE.receiveTWCC(G)}break;case VH.count:{let G=X.feedback;G.lost.forEach(async(Y)=>{let J=this.rtpCache[Y%KS];if(J&&J.header.sequenceNumber!==Y)J=void 0;if(J){if(this.rtxPayloadType!=null)J=qn(J,this.rtxPayloadType,this.rtxSequenceNumber,this.rtxSsrc),this.rtxSequenceNumber=R9(this.rtxSequenceNumber,1);await this.dtlsTransport.sendRtp(J.payload,J.header)}}),this.onGenericNack.execute(G)}break}}break;case iV.type:{let X=W;switch(X.feedback.count){case ZH.count:{let G=X.feedback;this.receiverEstimatedMaxBitrate=G.bitrate}break;case JH.count:this.onPictureLossIndication.execute();break}}break}this.onRtcp.execute(W)}getParameters(){return{encodings:[]}}setParameters(W){}async getStats(){let W=$X(),X=[];if(!this.dtlsTransport)return X;let G=N8("transport",this.dtlsTransport.id),Y={type:"outbound-rtp",id:N8("outbound-rtp",this.ssrc),timestamp:W,ssrc:this.ssrc,kind:this.kind,transportId:G,codecId:this.codec?N8("codec",this.codec.payloadType,G):void 0,mid:this.mid,packetsSent:this.packetCount,bytesSent:this.octetCount,rtxSsrc:this.rtxPayloadType?this.rtxSsrc:void 0};if(X.push(Y),this.track){let J={type:"media-source",id:N8("media-source",this.trackId),timestamp:W,trackIdentifier:this.trackId,kind:this.kind};X.push(J)}if(this.rtt!==void 0){let J={type:"remote-inbound-rtp",id:N8("remote-inbound-rtp",this.ssrc),timestamp:W,ssrc:this.ssrc,kind:this.kind,transportId:G,codecId:Y.codecId,localId:Y.id,roundTripTime:this.rtt};X.push(J)}return X}},pr=L1("werift:packages/webrtc/src/transport/sctpManager.ts"),cr=class{sctpTransport;sctpRemotePort;dataChannelsOpened=0;dataChannelsClosed=0;dataChannels=[];onDataChannel=new d0;constructor(){}createSctpTransport(W){let X=new kr(5000,W);return X.mid=void 0,X.onDataChannel.subscribe((G)=>{this.dataChannelsOpened++,this.dataChannels.push(G),this.onDataChannel.execute(G)}),this.sctpTransport=X,X}createDataChannel(W,X={}){let Y={...{protocol:"",ordered:!0,negotiated:!1},...X};if(Y.maxPacketLifeTime&&Y.maxRetransmits)throw Error("can not select both");if(!this.sctpTransport)this.sctpTransport=this.createSctpTransport();let J=new u2({id:Y.id,label:W,maxPacketLifeTime:Y.maxPacketLifeTime,maxRetransmits:Y.maxRetransmits,negotiated:Y.negotiated,ordered:Y.ordered,protocol:Y.protocol}),Z=new g2(this.sctpTransport,J);return this.dataChannelsOpened++,this.dataChannels.push(Z),Z.stateChange.subscribe((V)=>{if(V==="closed"){this.dataChannelsClosed++;let U=this.dataChannels.indexOf(Z);if(U!==-1)this.dataChannels.splice(U,1)}}),Z}async connectSctp(){if(!this.sctpTransport||!this.sctpRemotePort)return;await this.sctpTransport.start(this.sctpRemotePort),await this.sctpTransport.sctp.stateChanged.connected.asPromise(),pr("sctp connected")}setRemoteSCTP(W,X){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=X,!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=$X(),X=[];for(let G of this.dataChannels){let Y={type:"data-channel",id:N8("data-channel",G.id),timestamp:W,label:G.label,protocol:G.protocol,dataChannelIdentifier:G.id,state:G.readyState,messagesSent:G.messagesSent||0,bytesSent:G.bytesSent||0,messagesReceived:G.messagesReceived||0,bytesReceived:G.bytesReceived||0};X.push(Y)}return X}},lr=class{currentLocalDescription;currentRemoteDescription;pendingLocalDescription;pendingRemoteDescription;cname;midSuffix;bundlePolicy;seenMid=new Set;constructor({cname:W,midSuffix:X,bundlePolicy:G}){this.cname=W,this.midSuffix=X??!1,this.bundlePolicy=G}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,X){let G=new sK(W.kind,9,"UDP/TLS/RTP/SAVPF",W.codecs.map((Y)=>Y.payloadType));if(G.direction=X,G.msid=W.msid,G.rtp={codecs:W.codecs,headerExtensions:W.headerExtensions,muxId:W.mid},G.rtcpHost="0.0.0.0",G.rtcpPort=9,G.rtcpMux=!0,G.ssrc=[new eK({ssrc:W.sender.ssrc,cname:this.cname})],W.options.simulcast)G.simulcastParameters=W.options.simulcast.map((Y)=>new h2(Y));if(G.rtp.codecs.find((Y)=>Y.name.toLowerCase()==="rtx"))G.ssrc.push(new eK({ssrc:W.sender.rtxSsrc,cname:this.cname})),G.ssrcGroup=[new oV("FID",[W.sender.ssrc.toString(),W.sender.rtxSsrc.toString()])];return this.addTransportDescription(G,W.dtlsTransport),G}createMediaDescriptionForSctp(W){let X=new sK("application",rF,"UDP/DTLS/SCTP",["webrtc-datachannel"]);return X.sctpPort=W.port,X.rtp.muxId=W.mid,X.sctpCapabilities=W.getCapabilities(),this.addTransportDescription(X,W.dtlsTransport),X}addTransportDescription(W,X){let G=X.iceTransport;if(W.iceCandidates=G.localCandidates,W.iceCandidatesComplete=G.gatheringState==="complete",W.iceParams=G.localParameters,W.iceOptions="trickle",W.host=xi,W.port=rF,W.direction==="inactive")W.port=0,W.msid=void 0;if(!W.dtlsParams){if(W.dtlsParams=X.localParameters,!W.dtlsParams.fingerprints)W.dtlsParams.fingerprints=X.localParameters.fingerprints}}allocateMid(W=""){let X="";for(let G=0;;)if(X=(G++).toString()+W,!this.seenMid.has(X))break;return this.seenMid.add(X),X}parseSdp({sdp:W,isLocal:X,signalingState:G,type:Y}){let J=rq.parse(W);return this.validateDescription({description:J,isLocal:X,signalingState:G}),J.type=Y,J}validateDescription({description:W,isLocal:X,signalingState:G}){if(X){if(W.type==="offer"){if(!["stable","have-local-offer"].includes(G))throw Error("Cannot handle offer in signaling state")}else if(W.type==="answer"){if(!["have-remote-offer","have-local-pranswer"].includes(G))throw Error("Cannot handle answer in signaling state")}}else if(W.type==="offer"){if(!["stable","have-remote-offer"].includes(G))throw Error("Cannot handle offer in signaling state")}else if(W.type==="answer"){if(!["have-local-offer","have-remote-pranswer"].includes(G))throw Error("Cannot handle answer in signaling state")}}buildOfferSdp(W,X){let G=new rq;zS("offer",G),(this.currentLocalDescription?.media??[]).forEach((J,Z)=>{let V=J.rtp.muxId;if(!V)return;if(J.kind==="application"){if(!X)throw Error("sctpTransport not found");X.mLineIndex=Z,G.media.push(this.createMediaDescriptionForSctp(X))}else{let U=W.find((Q)=>Q.mid===V);if(!U){if(J.direction==="inactive"){G.media.push(J);return}throw Error("transceiver not found")}U.mLineIndex=Z,G.media.push(this.createMediaDescriptionForTransceiver(U,U.direction))}});for(let J of W.filter((Z)=>!G.media.find((V)=>V.rtp.muxId===Z.mid))){if(J.mid==null)J.mid=this.allocateMid(this.midSuffix?"av":"");let Z=this.createMediaDescriptionForTransceiver(J,J.direction);if(J.mLineIndex===void 0)J.mLineIndex=G.media.length,G.media.push(Z);else G.media[J.mLineIndex]=Z}if(X&&!G.media.find((J)=>J.kind==="application")){if(X.mLineIndex=G.media.length,X.mid==null)X.mid=this.allocateMid(this.midSuffix?"dc":"");G.media.push(this.createMediaDescriptionForSctp(X))}if(this.bundlePolicy!=="disable"){let J=G.media.map((Z)=>Z.rtp.muxId).filter((Z)=>Z);if(J.length){let Z=new oV("BUNDLE",J);G.group.push(Z)}}return G}buildAnswerSdp({transceivers:W,sctpTransport:X,signalingState:G}){if(!["have-remote-offer","have-local-pranswer"].includes(G))throw Error("createAnswer failed");if(!this._remoteDescription)throw Error("wrong state");let Y=new rq;zS("answer",Y);for(let J of this._remoteDescription.media){let Z,V;if(["audio","video"].includes(J.kind)){let U=W.find((Q)=>Q.mid===J.rtp.muxId);if(!U)throw Error(`Transceiver with mid=${J.rtp.muxId} not found`);V=this.createMediaDescriptionForTransceiver(U,a2(U.direction,U.offerDirection)),Z=U.dtlsTransport}else if(J.kind==="application"){if(!X||!X.mid)throw Error("sctpTransport not found");V=this.createMediaDescriptionForSctp(X),Z=X.dtlsTransport}else throw Error("invalid kind");if(V.dtlsParams)if(Z.role==="auto")V.dtlsParams.role="client";else V.dtlsParams.role=Z.role;if(J.simulcastParameters&&J.simulcastParameters.length>0)V.simulcastParameters=J.simulcastParameters.map((U)=>({...U,direction:U.direction==="send"?"recv":"send"}));Y.media.push(V)}if(this.bundlePolicy!=="disable"){let J=new oV("BUNDLE",[]);for(let Z of Y.media)if(Z.rtp.muxId)J.items.push(Z.rtp.muxId);Y.group.push(J)}return Y}setLocalDescription(W){if(this.currentLocalDescription=W,W.type==="answer")this.pendingLocalDescription=void 0;else this.pendingLocalDescription=W}setRemoteDescription(W,X){if(!W.sdp||!W.type||W.type==="rollback"||W.type==="pranswer")throw Error("invalid sessionDescription");let G=this.parseSdp({sdp:W.sdp,isLocal:!1,signalingState:X,type:W.type});if(G.type==="answer")this.currentRemoteDescription=G,this.pendingRemoteDescription=void 0;else this.pendingRemoteDescription=G;return G}registerMid(W){this.seenMid.add(W)}get remoteIsBundled(){let W=this._remoteDescription;if(!W)return;return W.group.find((G)=>G.semantic==="BUNDLE"&&this.bundlePolicy!=="disable")}setLocal(W,X,G){let Y=new Map(X.map((V)=>[V?.mLineIndex,V])),J=X.find((V)=>V?.dtlsTransport)?.dtlsTransport??G?.dtlsTransport;W.media.filter((V)=>["audio","video"].includes(V.kind)).forEach((V,U)=>{let N=(Y.get(U)??X[U])?.dtlsTransport??J;if(!N)throw Error(`dtls transport not found for media index ${U}`);this.addTransportDescription(V,N)});let Z=W.media.find((V)=>V.kind==="application");if(G&&Z)this.addTransportDescription(Z,G.dtlsTransport);this.setLocalDescription(W)}},bV=L1("werift:packages/webrtc/src/transport/secureTransportManager.ts"),dr=class{connectionState="new";iceConnectionState="new";iceGatheringState="new";certificate;iceGatheringStateChange=new d0;iceConnectionStateChange=new d0;onIceCandidate=new d0;connectionStateChange=new d0;config;transceiverManager;sctpManager;constructor({config:W,transceiverManager:X,sctpManager:G}){if(this.config=W,this.transceiverManager=X,this.sctpManager=G,this.config.dtls){let{keys:Y}=this.config.dtls;if(Y)this.setupCertificate(Y)}}get dtlsTransports(){return[...this.transceiverManager.getTransceivers().map((X)=>X?.dtlsTransport),this.sctpManager.sctpTransport?.dtlsTransport].filter((X)=>X!=null).reduce((X,G)=>{if(!X.map((Y)=>Y.id).includes(G.id))X.push(G);return X},[])}get iceTransports(){return this.dtlsTransports.map((W)=>W.iceTransport)}setupCertificate(W){this.certificate=new e2(W.keyPem,W.certPem,W.signatureHash)}createTransport(){let W=this.iceTransports.find((J)=>J.state!=="closed"),X=new Nr({...di(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)X.connection.localUsername=W.connection.localUsername,X.connection.localPassword=W.connection.localPassword;X.onGatheringStateChange.subscribe(()=>{this.updateIceGatheringState()}),this.updateIceGatheringState();let G=new Qr(X);return G.onStateChange.subscribe(()=>{this.updateIceConnectionState()}),new eF(this.config,G,this.certificate,or)}handleNewIceCandidate({candidate:W,media:X,remoteIsBundled:G,transceiver:Y,sctpTransport:J,bundlePolicy:Z}){if(Z==="max-bundle"||G){if(W.sdpMLineIndex=0,X)W.sdpMid=X.rtp.muxId}else{if(Y)W.sdpMLineIndex=Y.mLineIndex,W.sdpMid=Y.mid;if(J)W.sdpMLineIndex=J.mLineIndex,W.sdpMid=J.mid}if(W.foundation&&!W.foundation.startsWith("candidate:"))W.foundation="candidate:"+W.foundation;return this.onIceCandidate.execute(W),W}async addIceCandidate(W,X){let G=Wx.fromJSON(X);if(!G)return;let Y;if(typeof G.sdpMid==="number")Y=this.getTransportByMid(G.sdpMid);if(!Y&&typeof G.sdpMLineIndex==="number")Y=this.getTransportByMLineIndex(W,G.sdpMLineIndex);if(!Y)Y=this.iceTransports[0];if(Y)await Y.addRemoteCandidate(G);else bV("iceTransport not found for candidate",G)}getTransportByMid(W){let X,G=this.transceiverManager.getTransceivers().find((Y)=>Y.mid===W);if(G)X=G.dtlsTransport.iceTransport;else if(!X&&this.sctpManager.sctpTransport?.mid===W)X=this.sctpManager.sctpTransport.dtlsTransport.iceTransport;return X}getTransportByMLineIndex(W,X){let G=W.media[X];if(!G)return;return this.getTransportByMid(G.rtp.muxId)}restartIce(){for(let W of this.iceTransports)W.restart()}setLocalRole({type:W,role:X}){for(let G of this.dtlsTransports){let Y=G.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(X)G.role=X}}}updateIceGatheringState(){let W=this.iceTransports;function X(...Y){return W.filter((J)=>Y.includes(J.gatheringState)).length===W.length}let G;if(W.length&&X("complete"))G="complete";else if(!W.length||X("new","complete"))G="new";else if(W.map((Y)=>Y.gatheringState).includes("gathering"))G="gathering";else G="new";if(this.iceGatheringState===G)return;this.iceGatheringState=G,this.iceGatheringStateChange.execute(G)}updateIceConnectionState(){let W=this.iceTransports,X;function G(...J){return W.filter((Z)=>J.includes(Z.state)).length===W.length}function Y(...J){return W.some((Z)=>J.includes(Z.state))}if(this.connectionState==="closed")X="closed";else if(Y("failed"))X="failed";else if(Y("disconnected"))X="disconnected";else if(G("new","closed"))X="new";else if(Y("new","checking"))X="checking";else if(G("completed","closed"))X="completed";else if(G("connected","completed","closed"))X="connected";else X="new";if(this.iceConnectionState===X)return;bV("iceConnectionStateChange",X),this.iceConnectionState=X,this.iceConnectionStateChange.execute(X)}async gatherCandidates(W){let X=this.iceTransports.find((G)=>G.state==="connected"||G.state==="completed");if(W&&X)bV("skipping ICE gathering for bundled connection");else await Promise.allSettled(this.iceTransports.map((G)=>G.gather())).catch((G)=>{bV("gatherCandidates failed",G)})}setConnectionState(W){bV("connectionStateChange",W),this.connectionState=W,this.connectionStateChange.execute(W)}async getStats(){let W=[];for(let X of this.dtlsTransports){let G=await X.getStats();if(G)W.push(...G)}return W}async ensureCerts(){if(!this.certificate)this.certificate=await eF.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()}},or=[sF.SRTP_AEAD_AES_128_GCM,sF.SRTP_AES128_CM_HMAC_SHA1_80],G7=L1("werift:packages/webrtc/src/peerConnection.ts"),Ix=class extends NO{cname=fr().toString();config=wx();signalingState="stable";negotiationneeded=!1;needRestart=!1;router=new gr;sdpManager;transceiverManager;sctpManager;secureManager;isClosed=!1;shouldNegotiationneeded=!1;remoteBundleNegotiated=!1;iceGatheringStateChange=new d0;iceConnectionStateChange=new d0;signalingStateChange=new d0;connectionStateChange=new d0;onDataChannel=new d0;onRemoteTransceiverAdded=new d0;onTransceiverAdded=new d0;onIceCandidate=new d0;onNegotiationneeded=new d0;onTrack=new d0;ondatachannel;onicecandidate;onicecandidateerror;onicegatheringstatechange;onnegotiationneeded;onsignalingstatechange;ontrack;onconnectionstatechange;oniceconnectionstatechange;constructor(W={}){super();this.setConfiguration(W),this.sdpManager=new lr({cname:this.cname,bundlePolicy:this.config.bundlePolicy}),this.transceiverManager=new ir(this.cname,this.config,this.router),this.transceiverManager.onTransceiverAdded.pipe(this.onTransceiverAdded),this.transceiverManager.onRemoteTransceiverAdded.pipe(this.onRemoteTransceiverAdded),this.transceiverManager.onTrack.subscribe(({track:X,stream:G,transceiver:Y})=>{let J={track:X,streams:[G],transceiver:Y,receiver:Y.receiver};if(this.onTrack.execute(X),this.emit("track",J),this.ontrack)this.ontrack(J)}),this.transceiverManager.onNegotiationNeeded.subscribe(()=>this.needNegotiation()),this.sctpManager=new cr,this.sctpManager.onDataChannel.subscribe((X)=>{this.onDataChannel.execute(X);let G={channel:X};this.ondatachannel?.(G),this.emit("datachannel",G)}),this.secureManager=new dr({config:this.config,sctpManager:this.sctpManager,transceiverManager:this.transceiverManager}),this.secureManager.iceGatheringStateChange.pipe(this.iceGatheringStateChange),this.secureManager.iceConnectionStateChange.subscribe((X)=>{if(X==="closed")this.close();this.iceConnectionStateChange.execute(X)}),this.secureManager.connectionStateChange.subscribe((X)=>{this.connectionStateChange.execute(X),this.onconnectionstatechange?.(),this.emit("connectionstatechange")}),this.secureManager.onIceCandidate.subscribe((X)=>{let G=X?X.toJSON():void 0;this.onIceCandidate.execute(G),this.onicecandidate?.({candidate:G}),this.emit("icecandidate",{candidate:G})})}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(oi(this.config,W),this.config.icePortRange){let[X,G]=this.config.icePortRange;if(X===G)throw Error("should not be same value");if(X>=G)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[X,G]of lF([...this.config.codecs.audio||[],...this.config.codecs.video||[]])){if(G.payloadType!=null)continue;switch(G.payloadType=96+X,G.name.toLowerCase()){case"rtx":G.parameters=`apt=${G.payloadType-1}`;break;case"red":if(G.contentType==="audio"){let Y=G.payloadType+1;G.parameters=`${Y}/${Y}`,G.payloadType=63}break}}[...this.config.headerExtensions.audio||[],...this.config.headerExtensions.video||[]].forEach((X,G)=>{X.id=1+G})}getConfiguration(){return this.config}async createOffer({iceRestart:W}={}){if(W||this.needRestart)this.needRestart=!1,this.secureManager.restartIce();await this.secureManager.ensureCerts();for(let G of this.transceiverManager.getTransceivers()){if(G.codecs.length===0)this.transceiverManager.assignTransceiverCodecs(G);if(G.headerExtensions.length===0)G.headerExtensions=this.config.headerExtensions[G.kind]??[]}return this.sdpManager.buildOfferSdp(this.transceiverManager.getTransceivers(),this.sctpTransport).toJSON()}createSctpTransport(){let W=this.sctpManager.createSctpTransport(this.config.maxMessageSize),X=this.findOrCreateTransport();return W.setDtlsTransport(X),W}createDataChannel(W,X={}){if(!this.sctpTransport)this.createSctpTransport(),this.needNegotiation();let G=this.sctpManager.createDataChannel(W,X);if(!G.sctp.dtlsTransport){let Y=this.findOrCreateTransport();G.sctp.setDtlsTransport(Y)}return G}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((J)=>J.state!=="closed"),X=W?.iceTransport;if(this.sdpManager.bundlePolicy==="max-bundle"||this.sdpManager.bundlePolicy!=="disable"&&(this.remoteIsBundled||this.remoteBundleNegotiated)){if(W)return W}let G=this.secureManager.createTransport();G.onRtp.subscribe((J)=>{this.router.routeRtp(J)}),G.onRtcp.subscribe((J)=>{this.router.routeRtcp(J)});let Y=G.iceTransport;return Y.onNegotiationNeeded.subscribe(()=>{this.needNegotiation()}),Y.onIceCandidate.subscribe((J)=>{if(!this.localDescription){G7("localDescription not found when ice candidate was gathered");return}if(!J){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){G7("localDescription not found when ice candidate was gathered");return}this.secureManager.handleNewIceCandidate({candidate:J,bundlePolicy:this.sdpManager.bundlePolicy,remoteIsBundled:!!this.sdpManager.remoteIsBundled,media:this._localDescription.media[0],transceiver:this.transceiverManager.getTransceivers().find((Z)=>Z?.dtlsTransport?.iceTransport.id===Y.id),sctpTransport:this.sctpTransport?.dtlsTransport.iceTransport.id===Y.id?this.sctpTransport:void 0})}),G}async setLocalDescription(W){W=W??(["stable","have-local-offer","have-remote-pranswer"].includes(this.signalingState)?await this.createOffer():await this.createAnswer());let G=this.sdpManager.parseSdp({sdp:W.sdp,isLocal:!0,signalingState:this.signalingState,type:W.type});if(G.type==="offer")this.setSignalingState("have-local-offer");else if(G.type==="answer")this.setSignalingState("stable");for(let[J,Z]of lF(G.media)){let V=Z.rtp.muxId;if(this.sdpManager.registerMid(V),["audio","video"].includes(Z.kind)){let U=this.transceiverManager.getTransceiverByMLineIndex(J);if(U)U.mid=V}if(Z.kind==="application"&&this.sctpTransport)this.sctpTransport.mid=V}let Y=G.media.find((J)=>J.dtlsParams)?.dtlsParams?.role;if(this.secureManager.setLocalRole({type:G.type,role:Y}),["answer","pranswer"].includes(G.type))for(let J of this.transceiverManager.getTransceivers()){let Z=a2(J.direction,J.offerDirection);J.setCurrentDirection(Z)}if(this.sdpManager.setLocal(G,this.transceiverManager.getTransceivers(),this.sctpTransport),await this.gatherCandidates().catch((J)=>{G7("gatherCandidates failed",J)}),G.type==="answer")this.connect().catch((J)=>{G7("connect failed",J),this.secureManager.setConnectionState("failed")});if(this.sdpManager.setLocal(G,this.transceiverManager.getTransceivers(),this.sctpTransport),this.shouldNegotiationneeded)this.needNegotiation();return G}async gatherCandidates(){await this.secureManager.gatherCandidates(!!this.sdpManager.remoteIsBundled)}async addIceCandidate(W){let X=this.sdpManager.buildOfferSdp(this.transceiverManager.getTransceivers(),this.sctpTransport);await this.secureManager.addIceCandidate(X,W)}async connect(){if(G7("start connect"),(await Promise.allSettled(this.dtlsTransports.map(async(X)=>{let{iceTransport:G}=X;if(G.state==="connected")return;let Y=()=>X.state==="connected";if(Y())return;if(this.secureManager.setConnectionState("connecting"),await G.start().catch((J)=>{throw G7("iceTransport.start failed",J),J}),Y())return;if(await X.start().catch((J)=>{throw G7("dtlsTransport.start failed",J),J}),this.sctpTransport&&this.sctpTransport.dtlsTransport.id===X.id)await this.sctpManager.connectSctp()}))).find((X)=>X.status==="rejected"))this.secureManager.setConnectionState("failed");else this.secureManager.setConnectionState("connected")}restartIce(){this.needRestart=!0,this.needNegotiation()}async setRemoteDescription(W){if(W instanceof rq)W=W.toSdp();let X=this.sdpManager.setRemoteDescription(W,this.signalingState);if(X.group.some((V)=>V.semantic==="BUNDLE"&&V.items.length>0))this.remoteBundleNegotiated=!0;let G,Y=(V,U)=>V.kind===U.kind&&[void 0,U.rtp.muxId].includes(V.mid),J=X.media.map((V,U)=>{let Q;if(["audio","video"].includes(V.kind)){let q=this.transceiverManager.getTransceivers().find((A)=>Y(A,V));if(!q)q=this.addTransceiver(V.kind,{direction:"recvonly"}),q.mid=V.rtp.muxId,this.onRemoteTransceiverAdded.execute(q);else if(q.direction==="inactive"&&q.stopping){if(q.stopped=!0,W.type==="answer")q.setCurrentDirection("inactive");return}if(this.sdpManager.remoteIsBundled)if(!G)G=q.dtlsTransport;else q.setDtlsTransport(G);Q=q.dtlsTransport,this.transceiverManager.setRemoteRTP(q,V,X.type,U)}else if(V.kind==="application"){let q=this.sctpTransport;if(!q)q=this.createSctpTransport(),q.mid=V.rtp.muxId;if(this.sdpManager.remoteIsBundled)if(!G)G=q.dtlsTransport;else q.setDtlsTransport(G);Q=q.dtlsTransport,this.sctpManager.setRemoteSCTP(V,U)}else throw Error("invalid media kind");let N=Q.iceTransport;if(V.iceParams){let q=!!this.sdpManager.inactiveRemoteMedia;if(N.setRemoteParams(V.iceParams,q),V.iceParams?.iceLite)N.connection.iceControlling=!0}if(V.dtlsParams)Q.setRemoteParams(V.dtlsParams);if(V.iceCandidates.forEach(N.addRemoteCandidate),V.iceCandidatesComplete)N.addRemoteCandidate(void 0);if(X.type==="answer"&&V.dtlsParams?.role)Q.role=V.dtlsParams.role==="client"?"server":"client";return N});J=J.filter((V)=>!!V);let Z=this.transceiverManager.getTransceivers().filter((V)=>X.media.find((U)=>Y(V,U))==null);if(W.type==="answer")for(let V of Z)V.stop(),V.stopped=!0;if(X.type==="offer")this.setSignalingState("have-remote-offer");else if(X.type==="answer")this.setSignalingState("stable");if(X.type==="answer")G7("caller start connect"),this.connect().catch((V)=>{G7("connect failed",V),this.secureManager.setConnectionState("failed")});if(this.negotiationneeded=!1,this.shouldNegotiationneeded)this.needNegotiation()}addTransceiver(W,X={}){let G=this.findOrCreateTransport(),Y=this.transceiverManager.addTransceiver(W,G,X);return this.secureManager.updateIceConnectionState(),this.needNegotiation(),Y}addTrack(W,X){if(this.isClosed)throw Error("is closed");let G=this.transceiverManager.addTrack(W,X);if(!G.dtlsTransport){let Y=this.findOrCreateTransport();G.setDtlsTransport(Y)}return this.needNegotiation(),G.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(G7("signalingStateChange",W),this.signalingState=W,this.signalingStateChange.execute(W),this.onsignalingstatechange)this.onsignalingstatechange({})}createPeerConnectionStats(){let W=$X();return{type:"peer-connection",id:N8("peer-connection"),timestamp:W,dataChannelsOpened:this.sctpManager.dataChannelsOpened,dataChannelsClosed:this.sctpManager.dataChannelsClosed}}async getStats(W){let X=[];X.push(this.createPeerConnectionStats());let G=await this.transceiverManager.getStats(W);X.push(...G);let Y=await this.secureManager.getStats();if(X.push(...Y),this.sctpTransport){let J=await this.sctpManager.getStats();if(J)X.push(...J)}return new yi(X)}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(),G7("peerConnection closed")}},DS=(W,X)=>W.find((G)=>G.mimeType.toLowerCase()===X.mimeType.toLowerCase())?X:void 0;function wx(){return{codecs:{audio:[m2(),f2()],video:[b2()]},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:pV}}var gA0=wx(),nr=L1("werift:packages/webrtc/src/media/rtpTransceiverManager.ts"),ir=class{constructor(W,X,G){this.cname=W,this.config=X,this.router=G}transceivers=[];onTransceiverAdded=new d0;onRemoteTransceiverAdded=new d0;onTrack=new d0;onNegotiationNeeded=new d0;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((X)=>X.mLineIndex===W)}pushTransceiver(W){this.transceivers.push(W)}replaceTransceiver(W,X){this.transceivers[X]=W}addTransceiver(W,X,G={}){let Y=typeof W==="string"?W:W.kind,J=G.direction||"sendrecv",Z=new mr(W),V=new zx(this.config,Y,Z.ssrc),U=new vi(Y,X,V,Z,J);U.options=G,this.router.registerRtpSender(U.sender);let Q=this.transceivers.findIndex((q)=>q.currentDirection==="inactive"&&!q.usedForSender),N=this.transceivers.find((q)=>q.currentDirection==="inactive"&&!q.usedForSender);if(Q>-1&&N)this.replaceTransceiver(U,Q),U.mLineIndex=N.mLineIndex,U.mid=N.mid,N.setCurrentDirection(void 0);else this.pushTransceiver(U);return this.onTransceiverAdded.execute(U),U}addTrack(W,X){if(this.getSenders().find((J)=>J.track?.uuid===W.uuid))throw Error("Track already added");let G=this.transceivers.find((J)=>J.sender.track==null&&J.kind===W.kind&&cq.includes(J.direction)===!0);if(G)return G.sender.registerTrack(W),G;let Y=this.transceivers.find((J)=>J.sender.track==null&&J.kind===W.kind&&cq.includes(J.direction)===!1&&!J.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:G})=>W.ssrc===G))throw Error("Sender does not exist");let X=this.transceivers.find(({sender:{ssrc:G}})=>W.ssrc===G);if(!X)throw Error("No matching transceiver found");if(W.stop(),X.currentDirection==="recvonly"){this.onNegotiationNeeded.execute();return}if(X.stopping||X.stopped)X.setDirection("inactive");else if(X.direction==="sendrecv")X.setDirection("recvonly");else if(X.direction==="sendonly"||X.direction==="recvonly")X.setDirection("inactive")}assignTransceiverCodecs(W){let X=this.config.codecs[W.kind].filter((G)=>{switch(G.direction){case"recvonly":{if(_i.includes(W.direction))return!0;return!1}case"sendonly":{if(cq.includes(W.direction))return!0;return!1}case"sendrecv":{if([o2,d2,l2].includes(W.direction))return!0;return!1}case"all":return!0;default:return!1}});W.codecs=X}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,X){return{muxId:W.rtp.muxId,rtcp:W.rtp.rtcp,codecs:X.codecs,headerExtensions:X.headerExtensions,encodings:Object.values(X.codecs.reduce((Y,J)=>{if(J.name.toLowerCase()==="rtx"){let Z=HH(J.parameters??""),V=Y[Z.apt];if(V&&W.ssrc.length===2)V.rtx=new Ci({ssrc:W.ssrc[1].ssrc});return Y}return Y[J.payloadType]=new Ti({ssrc:W.ssrc[0]?.ssrc,payloadType:J.payloadType}),Y},{}))}}setRemoteRTP(W,X,G,Y){if(!W.mid)W.mid=X.rtp.muxId;if(W.mLineIndex=Y,W.codecs=X.rtp.codecs.filter((U)=>{let Q=this.config.codecs[X.kind]||[],N=DS(Q,U);if(!N)return!1;if(N?.name.toLowerCase()==="rtx"){let A=HH(N.parameters??"").apt,H=X.rtp.codecs.find((I)=>I.payloadType===A);if(!H)return!1;return!!DS(Q,H)}return!0}),nr("negotiated codecs",W.codecs),W.codecs.length===0)throw Error("negotiate codecs failed.");W.headerExtensions=X.rtp.headerExtensions.filter((U)=>(this.config.headerExtensions[X.kind]||[]).find((Q)=>Q.uri===U.uri));let J=X.direction??"inactive",Z=fi(J);if(["answer","pranswer"].includes(G))W.setCurrentDirection(Z);else W.offerDirection=Z;let V=this.getLocalRtpParams(W);if(W.sender.prepareSend(V),["recvonly","sendrecv"].includes(W.direction)){let U=this.getRemoteRtpParams(X,W);for(let Q of X.simulcastParameters)this.router.registerRtpReceiverByRid(W,Q,U);W.receiver.prepareReceive(U),this.router.registerRtpReceiverBySsrc(W,U)}if(["sendonly","sendrecv"].includes(J)){if(X.msid){let[U,Q]=X.msid.split(" ");W.receiver.remoteStreamId=U,W.receiver.remoteTrackId=Q}this.onTrack.execute({track:W.receiver.track,transceiver:W,stream:new ui({id:W.receiver.remoteStreamId,tracks:[W.receiver.track]})})}if(X.ssrc[0]?.ssrc)W.receiver.setupTWCC(X.ssrc[0].ssrc)}async getStats(W){let X=[];for(let G of this.transceivers){let Y=!W||G.sender.track===W||G.receiver.track===W;if(G.sender){let J=await G.sender.getStats();if(J)for(let Z of J)if(Z.type==="outbound-rtp"||Z.type==="media-source"){if(Y)X.push(Z)}else X.push(Z)}if(G.receiver){let J=await G.receiver.getStats();if(J)for(let Z of J)if(Z.type==="inbound-rtp"||Z.type==="remote-outbound-rtp"){if(Y)X.push(Z)}else X.push(Z)}if(Y){let J=G.getCodecStats();if(J)X.push(...J)}}return X}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 HO extends Ix{toJSON(){return{}}createDataChannel(...W){let X=super.createDataChannel(...W);try{X.toJSON=()=>({})}catch{}return X}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var dY={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},rr={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},ar=BigInt(0),jx=BigInt(1),AO=BigInt(2);function sr(W){let X=dY.p,G=BigInt(3),Y=BigInt(6),J=BigInt(11),Z=BigInt(22),V=BigInt(23),U=BigInt(44),Q=BigInt(88),N=W*W*W%X,q=N*N*W%X,A=N5(q,G,X)*q%X,H=N5(A,G,X)*q%X,I=N5(H,AO,X)*N%X,w=N5(I,J,X)*I%X,O=N5(w,Z,X)*w%X,T=N5(O,U,X)*O%X,x=N5(T,Q,X)*T%X,P=N5(x,U,X)*O%X,u=N5(P,G,X)*q%X,F=N5(u,V,X)*w%X,m=N5(F,Y,X)*N%X,l=N5(m,AO,X);if(!CH.eql(CH.sqr(l),W))throw Error("Cannot find square root");return l}var CH=E5(dY.p,{sqrt:sr}),Dx=TY({...dY,Fp:CH,lowS:!0,endo:rr},OY),Kx={};function TH(W,...X){let G=Kx[W];if(G===void 0){let Y=OY(Aq(W));G=r9(Y,Y),Kx[W]=G}return OY(r9(G,...X))}var IO=(W)=>W.toBytes(!0).slice(1),oY=(()=>Dx.Point)(),wO=(W)=>W%AO===ar;function zO(W){let{Fn:X,BASE:G}=oY,Y=o6(X,W),J=G.multiply(Y);return{scalar:wO(J.y)?Y:X.neg(Y),bytes:IO(J)}}function Cx(W){let X=CH;if(!X.isValidNot0(W))throw Error("invalid x: Fail if x \u2265 p");let G=X.create(W*W),Y=X.create(G*W+BigInt(7)),J=X.sqrt(Y);if(!wO(J))J=X.neg(J);let Z=oY.fromAffine({x:W,y:J});return Z.assertValidity(),Z}var HU=E4;function Tx(...W){return oY.Fn.create(HU(TH("BIP0340/challenge",...W)))}function Ox(W){return zO(W).bytes}function tr(W,X,G=qX(32)){let{Fn:Y}=oY,J=F8("message",W),{bytes:Z,scalar:V}=zO(X),U=F8("auxRand",G,32),Q=Y.toBytes(V^HU(TH("BIP0340/aux",U))),N=TH("BIP0340/nonce",Q,Z,J),{bytes:q,scalar:A}=zO(N),H=Tx(q,Z,J),I=new Uint8Array(64);if(I.set(q,0),I.set(Y.toBytes(Y.create(A+H*V)),32),!Mx(I,J,Z))throw Error("sign: Invalid signature produced");return I}function Mx(W,X,G){let{Fn:Y,BASE:J}=oY,Z=F8("signature",W,64),V=F8("message",X),U=F8("publicKey",G,32);try{let Q=Cx(HU(U)),N=HU(Z.subarray(0,32));if(!RV(N,jx,dY.p))return!1;let q=HU(Z.subarray(32,64));if(!RV(q,jx,dY.n))return!1;let A=Tx(Y.toBytes(N),IO(Q),V),H=J.multiplyUnsafe(q).add(Q.multiplyUnsafe(Y.neg(A))),{x:I,y:w}=H.toAffine();if(H.is0()||!wO(w)||I!==N)return!1;return!0}catch(Q){return!1}}var Px=(()=>{let G=(J=qX(48))=>{return Kq(J,dY.n)};Dx.utils.randomSecretKey;function Y(J){let Z=G(J);return{secretKey:Z,publicKey:Ox(Z)}}return{keygen:Y,getPublicKey:Ox,sign:tr,verify:Mx,Point:oY,utils:{randomSecretKey:G,randomPrivateKey:G,taggedHash:TH,lift_x:Cx,pointToBytes:IO,numberToBytesBE:KY,bytesToNumberBE:E4,mod:Q5},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})();var Rx=(W)=>Uint8Array.from(W.match(/.{2}/g).map((X)=>parseInt(X,16))),er=(W)=>[...W].map((X)=>X.toString(16).padStart(2,"0")).join(""),Wa=async(W)=>{try{if(typeof W.pubkey!=="string"||typeof W.sig!=="string"||typeof W.id!=="string")return!1;let X=new TextEncoder().encode(JSON.stringify([0,W.pubkey,W.created_at,W.kind,W.tags,W.content])),G=new Uint8Array(await crypto.subtle.digest("SHA-256",X));if(er(G)!==W.id)return!1;return Px.verify(Rx(W.sig),G,Rx(W.pubkey))}catch{return!1}},Xa=(W,X)=>{if(W.kinds&&!W.kinds.includes(X.kind))return!1;if(W.since&&X.created_at<W.since-60)return!1;if(W["#x"]){let G=(X.tags??[]).filter((Y)=>Y?.[0]==="x").map((Y)=>Y[1]);if(!W["#x"].some((Y)=>G.includes(Y)))return!1}return!0};function Lx({port:W=Number(process.env.PORT)||8080}={}){let X=new Map,G=0,Y=0,J=Bun.serve({port:W,fetch(Z,V){if(V.upgrade(Z))return;return Response.json({relay:"GenosSRV embedded relay",protocol:"nostr (ephemeral subset)",connections:X.size,events:G,dropped:Y})},websocket:{open(Z){X.set(Z,new Map)},close(Z){X.delete(Z)},async message(Z,V){let U;try{U=JSON.parse(String(V))}catch{return}if(!Array.isArray(U))return;let[Q,N,q]=U;if(Q==="REQ"&&typeof N==="string"&&q&&typeof q==="object"){X.get(Z)?.set(N,q),Z.send(JSON.stringify(["EOSE",N]));return}if(Q==="CLOSE"&&typeof N==="string"){X.get(Z)?.delete(N);return}if(Q==="EVENT"&&N&&typeof N==="object"){if(!await Wa(N)){Y++,Z.send(JSON.stringify(["OK",N.id??"",!1,"invalid: bad signature"]));return}G++,Z.send(JSON.stringify(["OK",N.id,!0,""]));for(let[A,H]of X)for(let[I,w]of H)if(Xa(w,N)){try{A.send(JSON.stringify(["EVENT",I,N]))}catch{}break}}}}});return console.info(`\uD83D\uDCE1 Relay listening on :${J.port} (ephemeral, schnorr-verified)`),{port:J.port,stats:()=>({connections:X.size,events:G,dropped:Y}),stop:()=>J.stop(!0)}}var MH="6.15.0";function Ga(W,X,G){let Y=X.split("|").map((Z)=>Z.trim());for(let Z=0;Z<Y.length;Z++)switch(X){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof W===X)return}let J=Error(`invalid value for type ${X}`);throw J.code="INVALID_ARGUMENT",J.argument=`value.${G}`,J.value=W,J}async function n7(W){let X=Object.keys(W);return(await Promise.all(X.map((Y)=>Promise.resolve(W[Y])))).reduce((Y,J,Z)=>{return Y[X[Z]]=J,Y},{})}function A8(W,X,G){for(let Y in X){let J=X[Y],Z=G?G[Y]:null;if(Z)Ga(J,Z,Y);Object.defineProperty(W,Y,{enumerable:!0,value:J,writable:!1})}}function nY(W,X){if(W==null)return"null";if(X==null)X=new Set;if(typeof W==="object"){if(X.has(W))return"[Circular]";X.add(W)}if(Array.isArray(W))return"[ "+W.map((G)=>nY(G,X)).join(", ")+" ]";if(W instanceof Uint8Array){let Y="0x";for(let J=0;J<W.length;J++)Y+="0123456789abcdef"[W[J]>>4],Y+="0123456789abcdef"[W[J]&15];return Y}if(typeof W==="object"&&typeof W.toJSON==="function")return nY(W.toJSON(),X);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 G=Object.keys(W);return G.sort(),"{ "+G.map((Y)=>`${nY(Y,X)}: ${nY(W[Y],X)}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function PH(W,X){return W&&W.code===X}function AU(W,X,G){let Y=W;{let Z=[];if(G){if("message"in G||"code"in G||"name"in G)throw Error(`value will overwrite populated values: ${nY(G)}`);for(let V in G){if(V==="shortMessage")continue;let U=G[V];Z.push(V+"="+nY(U))}}if(Z.push(`code=${X}`),Z.push(`version=${MH}`),Z.length)W+=" ("+Z.join(", ")+")"}let J;switch(X){case"INVALID_ARGUMENT":J=TypeError(W);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":J=RangeError(W);break;default:J=Error(W)}if(A8(J,{code:X}),G)Object.assign(J,G);if(J.shortMessage==null)A8(J,{shortMessage:Y});return J}function Y1(W,X,G,Y){if(!W)throw AU(X,G,Y)}function a(W,X,G,Y){Y1(W,X,"INVALID_ARGUMENT",{argument:G,value:Y})}var Ya=["NFD","NFC","NFKD","NFKC"].reduce((W,X)=>{try{if("test".normalize(X)!=="test")throw Error("bad");if(X==="NFD"){let G=String.fromCharCode(233).normalize("NFD"),Y=String.fromCharCode(101,769);if(G!==Y)throw Error("broken")}W.push(X)}catch(G){}return W},[]);function iY(W){Y1(Ya.indexOf(W)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:W}})}function o4(W,X,G){if(G==null)G="";if(W!==X){let Y=G,J="new";if(G)Y+=".",J+=" "+G;Y1(!1,`private constructor; use ${Y}from* methods`,"UNSUPPORTED_OPERATION",{operation:J})}}function Ex(W,X,G){if(W instanceof Uint8Array){if(G)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),J=2;for(let Z=0;Z<Y.length;Z++)Y[Z]=parseInt(W.substring(J,J+2),16),J+=2;return Y}a(!1,"invalid BytesLike value",X||"value",W)}function E0(W,X){return Ex(W,X,!1)}function U7(W,X){return Ex(W,X,!0)}function L9(W,X){if(typeof W!=="string"||!W.match(/^0x[0-9A-Fa-f]*$/))return!1;if(typeof X==="number"&&W.length!==2+2*X)return!1;if(X===!0&&W.length%2!==0)return!1;return!0}function i7(W){return L9(W,!0)||W instanceof Uint8Array}var Bx="0123456789abcdef";function C0(W){let X=E0(W),G="0x";for(let Y=0;Y<X.length;Y++){let J=X[Y];G+=Bx[(J&240)>>4]+Bx[J&15]}return G}function G8(W){return"0x"+W.map((X)=>C0(X).substring(2)).join("")}function n4(W){if(L9(W,!0))return(W.length-2)/2;return E0(W).length}function rY(W,X,G){let Y=E0(W);if(G!=null&&G>Y.length)Y1(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:Y,length:Y.length,offset:G});return C0(Y.slice(X==null?0:X,G==null?Y.length:G))}function Ja(W,X,G){let Y=E0(W);Y1(X>=Y.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(Y),length:X,offset:X+1});let J=new Uint8Array(X);if(J.fill(0),G)J.set(Y,X-Y.length);else J.set(Y,0);return C0(J)}function z5(W,X){return Ja(W,X,!0)}var jO=BigInt(0),FX=BigInt(1),aY=9007199254740991;function RH(W,X){let G=p1(W,"value"),Y=BigInt(s8(X,"width")),J=FX<<Y-FX;if(G<jO){G=-G,Y1(G<=J,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:W});let Z=(FX<<Y)-FX;return(~G&Z)+FX}else Y1(G<J,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:W});return G}function LH(W,X){let G=zU(W,"value"),Y=BigInt(s8(X,"bits"));return G&(FX<<Y)-FX}function p1(W,X){switch(typeof W){case"bigint":return W;case"number":return a(Number.isInteger(W),"underflow",X||"value",W),a(W>=-aY&&W<=aY,"overflow",X||"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(G){a(!1,`invalid BigNumberish string: ${G.message}`,X||"value",W)}}a(!1,"invalid BigNumberish value",X||"value",W)}function zU(W,X){let G=p1(W,X);return Y1(G>=jO,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:W}),G}var $x="0123456789abcdef";function sY(W){if(W instanceof Uint8Array){let X="0x0";for(let G of W)X+=$x[G>>4],X+=$x[G&15];return BigInt(X)}return p1(W)}function s8(W,X){switch(typeof W){case"bigint":return a(W>=-aY&&W<=aY,"overflow",X||"value",W),Number(W);case"number":return a(Number.isInteger(W),"underflow",X||"value",W),a(W>=-aY&&W<=aY,"overflow",X||"value",W),W;case"string":try{if(W==="")throw Error("empty string");return s8(BigInt(W),X)}catch(G){a(!1,`invalid numeric string: ${G.message}`,X||"value",W)}}a(!1,"invalid numeric value",X||"value",W)}function Q7(W,X){let Y=zU(W,"value").toString(16);if(X==null){if(Y.length%2)Y="0"+Y}else{let J=s8(X,"width");Y1(J*2>=Y.length,`value exceeds width (${J} bytes)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:W});while(Y.length<J*2)Y="0"+Y}return"0x"+Y}function z8(W){let X=zU(W,"value");if(X===jO)return new Uint8Array([]);let G=X.toString(16);if(G.length%2)G="0"+G;let Y=new Uint8Array(G.length/2);for(let J=0;J<Y.length;J++){let Z=J*2;Y[J]=parseInt(G.substring(Z,Z+2),16)}return Y}function BH(W){let X=C0(i7(W)?W:z8(W)).substring(2);while(X.startsWith("0"))X=X.substring(1);if(X==="")X="0";return"0x"+X}var $H="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",EH=null;function Za(W){if(EH==null){EH={};for(let G=0;G<$H.length;G++)EH[$H[G]]=BigInt(G)}let X=EH[W];return a(X!=null,"invalid base58 value","letter",W),X}var Va=BigInt(0),KO=BigInt(58);function FH(W){let X=E0(W),G=sY(X),Y="";while(G)Y=$H[Number(G%KO)]+Y,G/=KO;for(let J=0;J<X.length;J++){if(X[J])break;Y=$H[0]+Y}return Y}function SH(W){let X=Va;for(let G=0;G<W.length;G++)X*=KO,X+=Za(W[G]);return X}function Ua(W,X,G,Y,J){a(!1,`invalid codepoint at offset ${X}; ${W}`,"bytes",G)}function Fx(W,X,G,Y,J){if(W==="BAD_PREFIX"||W==="UNEXPECTED_CONTINUE"){let Z=0;for(let V=X+1;V<G.length;V++){if(G[V]>>6!==2)break;Z++}return Z}if(W==="OVERRUN")return G.length-X-1;return 0}function Qa(W,X,G,Y,J){if(W==="OVERLONG")return a(typeof J==="number","invalid bad code point for replacement","badCodepoint",J),Y.push(J),0;return Y.push(65533),Fx(W,X,G,Y,J)}var Sx=Object.freeze({error:Ua,ignore:Fx,replace:Qa});function Q9(W,X){if(a(typeof W==="string","invalid string value","str",W),X!=null)iY(X),W=W.normalize(X);let G=[];for(let Y=0;Y<W.length;Y++){let J=W.charCodeAt(Y);if(J<128)G.push(J);else if(J<2048)G.push(J>>6|192),G.push(J&63|128);else if((J&64512)==55296){Y++;let Z=W.charCodeAt(Y);a(Y<W.length&&(Z&64512)===56320,"invalid surrogate pair","str",W);let V=65536+((J&1023)<<10)+(Z&1023);G.push(V>>18|240),G.push(V>>12&63|128),G.push(V>>6&63|128),G.push(V&63|128)}else G.push(J>>12|224),G.push(J>>6&63|128),G.push(J&63|128)}return new Uint8Array(G)}function Na(W){let X=W.toString(16);while(X.length<2)X="0"+X;return"0x"+X}function xx(W,X,G){let Y=0;for(let J=0;J<G;J++)Y=Y*256+W[X+J];return Y}function kx(W,X,G,Y){let J=[];while(G<X+1+Y){let Z=_x(W,G);J.push(Z.result),G+=Z.consumed,Y1(G<=X+1+Y,"child data too short","BUFFER_OVERRUN",{buffer:W,length:Y,offset:X})}return{consumed:1+Y,result:J}}function _x(W,X){Y1(W.length!==0,"data too short","BUFFER_OVERRUN",{buffer:W,length:0,offset:1});let G=(Y)=>{Y1(Y<=W.length,"data short segment too short","BUFFER_OVERRUN",{buffer:W,length:W.length,offset:Y})};if(W[X]>=248){let Y=W[X]-247;G(X+1+Y);let J=xx(W,X+1,Y);return G(X+1+Y+J),kx(W,X,X+1+Y,Y+J)}else if(W[X]>=192){let Y=W[X]-192;return G(X+1+Y),kx(W,X,X+1,Y)}else if(W[X]>=184){let Y=W[X]-183;G(X+1+Y);let J=xx(W,X+1,Y);G(X+1+Y+J);let Z=C0(W.slice(X+1+Y,X+1+Y+J));return{consumed:1+Y+J,result:Z}}else if(W[X]>=128){let Y=W[X]-128;G(X+1+Y);let J=C0(W.slice(X+1,X+1+Y));return{consumed:1+Y,result:J}}return{consumed:1,result:Na(W[X])}}function XW(W){let X=E0(W,"data"),G=_x(X,0);return a(G.consumed===X.length,"unexpected junk after rlp payload","data",W),G.result}function yx(W){let X=[];while(W)X.unshift(W&255),W>>=8;return X}function gx(W){if(Array.isArray(W)){let Y=[];if(W.forEach(function(Z){Y=Y.concat(gx(Z))}),Y.length<=55)return Y.unshift(192+Y.length),Y;let J=yx(Y.length);return J.unshift(247+J.length),J.concat(Y)}let X=Array.prototype.slice.call(E0(W,"object"));if(X.length===1&&X[0]<=127)return X;else if(X.length<=55)return X.unshift(128+X.length),X;let G=yx(X.length);return G.unshift(183+G.length),G.concat(X)}var vx="0123456789abcdef";function F5(W){let X="0x";for(let G of gx(W))X+=vx[G>>4],X+=vx[G&15];return X}function xH(W){let X=E0(W,"randomBytes");X[6]=X[6]&15|64,X[8]=X[8]&63|128;let G=C0(X);return[G.substring(2,10),G.substring(10,14),G.substring(14,18),G.substring(18,22),G.substring(22,34)].join("-")}import{createHash as OO,createHmac as ux,pbkdf2Sync as hx,randomBytes as bx}from"crypto";var mx=!1,fx=function(W,X,G){return ux(W,X).update(G).digest()},px=fx;function GW(W,X,G){let Y=E0(X,"key"),J=E0(G,"data");return C0(px(W,Y,J))}GW._=fx;GW.lock=function(){mx=!0};GW.register=function(W){if(mx)throw Error("computeHmac is locked");px=W};Object.freeze(GW);function B9(W){if(!Number.isSafeInteger(W)||W<0)throw Error(`Wrong positive integer: ${W}`)}function IU(W,...X){if(!(W instanceof Uint8Array))throw Error("Expected Uint8Array");if(X.length>0&&!X.includes(W.length))throw Error(`Expected Uint8Array of length ${X}, not of length=${W.length}`)}function kH(W){if(typeof W!=="function"||typeof W.create!=="function")throw Error("Hash should be wrapped by utils.wrapConstructor");B9(W.outputLen),B9(W.blockLen)}function i4(W,X=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(X&&W.finished)throw Error("Hash#digest() has already been called")}function _H(W,X){IU(W);let G=X.outputLen;if(W.length<G)throw Error(`digestInto() expects output buffer of length at least ${G}`)}var yH=BigInt(4294967295),cx=BigInt(32);function Oa(W,X=!1){if(X)return{h:Number(W&yH),l:Number(W>>cx&yH)};return{h:Number(W>>cx&yH)|0,l:Number(W&yH)|0}}function lx(W,X=!1){let G=new Uint32Array(W.length),Y=new Uint32Array(W.length);for(let J=0;J<W.length;J++){let{h:Z,l:V}=Oa(W[J],X);[G[J],Y[J]]=[Z,V]}return[G,Y]}var dx=(W,X,G)=>W<<G|X>>>32-G,ox=(W,X,G)=>X<<G|W>>>32-G,nx=(W,X,G)=>X<<G-32|W>>>64-G,ix=(W,X,G)=>W<<G-32|X>>>64-G;import*as wU from"crypto";var vH=wU&&typeof wU==="object"&&"webcrypto"in wU?wU.webcrypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */var rx=(W)=>W instanceof Uint8Array;var tY=(W)=>new Uint32Array(W.buffer,W.byteOffset,Math.floor(W.byteLength/4)),eY=(W)=>new DataView(W.buffer,W.byteOffset,W.byteLength),N7=(W,X)=>W<<32-X|W>>>X,Da=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!Da)throw Error("Non little-endian hardware is not supported");var Ca=async()=>{};async function gH(W,X,G){let Y=Date.now();for(let J=0;J<W;J++){G(J);let Z=Date.now()-Y;if(Z>=0&&Z<X)continue;await Ca(),Y+=Z}}function Ta(W){if(typeof W!=="string")throw Error(`utf8ToBytes expected string, got ${typeof W}`);return new Uint8Array(new TextEncoder().encode(W))}function r7(W){if(typeof W==="string")W=Ta(W);if(!rx(W))throw Error(`expected Uint8Array, got ${typeof W}`);return W}function ax(...W){let X=new Uint8Array(W.reduce((Y,J)=>Y+J.length,0)),G=0;return W.forEach((Y)=>{if(!rx(Y))throw Error("Uint8Array expected");X.set(Y,G),G+=Y.length}),X}class SX{clone(){return this._cloneInto()}}var Ma={}.toString;function uH(W,X){if(X!==void 0&&Ma.call(X)!=="[object Object]")throw Error("Options should be object or undefined");return Object.assign(W,X)}function WJ(W){let X=(Y)=>W().update(r7(Y)).digest(),G=W();return X.outputLen=G.outputLen,X.blockLen=G.blockLen,X.create=()=>W(),X}function sx(W=32){if(vH&&typeof vH.getRandomValues==="function")return vH.getRandomValues(new Uint8Array(W));throw Error("crypto.getRandomValues must be defined")}var[Wk,Xk,Gk]=[[],[],[]],Pa=BigInt(0),jU=BigInt(1),Ra=BigInt(2),La=BigInt(7),Ba=BigInt(256),Ea=BigInt(113);for(let W=0,X=jU,G=1,Y=0;W<24;W++){[G,Y]=[Y,(2*G+3*Y)%5],Wk.push(2*(5*Y+G)),Xk.push((W+1)*(W+2)/2%64);let J=Pa;for(let Z=0;Z<7;Z++)if(X=(X<<jU^(X>>La)*Ea)%Ba,X&Ra)J^=jU<<(jU<<BigInt(Z))-jU;Gk.push(J)}var[$a,Fa]=lx(Gk,!0),tx=(W,X,G)=>G>32?nx(W,X,G):dx(W,X,G),ex=(W,X,G)=>G>32?ix(W,X,G):ox(W,X,G);function Sa(W,X=24){let G=new Uint32Array(10);for(let Y=24-X;Y<24;Y++){for(let V=0;V<10;V++)G[V]=W[V]^W[V+10]^W[V+20]^W[V+30]^W[V+40];for(let V=0;V<10;V+=2){let U=(V+8)%10,Q=(V+2)%10,N=G[Q],q=G[Q+1],A=tx(N,q,1)^G[U],H=ex(N,q,1)^G[U+1];for(let I=0;I<50;I+=10)W[V+I]^=A,W[V+I+1]^=H}let J=W[2],Z=W[3];for(let V=0;V<24;V++){let U=Xk[V],Q=tx(J,Z,U),N=ex(J,Z,U),q=Wk[V];J=W[q],Z=W[q+1],W[q]=Q,W[q+1]=N}for(let V=0;V<50;V+=10){for(let U=0;U<10;U++)G[U]=W[V+U];for(let U=0;U<10;U++)W[V+U]^=~G[(U+2)%10]&G[(U+4)%10]}W[0]^=$a[Y],W[1]^=Fa[Y]}G.fill(0)}class DO extends SX{constructor(W,X,G,Y=!1,J=24){super();if(this.blockLen=W,this.suffix=X,this.outputLen=G,this.enableXOF=Y,this.rounds=J,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,B9(G),0>=this.blockLen||this.blockLen>=200)throw Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=tY(this.state)}keccak(){Sa(this.state32,this.rounds),this.posOut=0,this.pos=0}update(W){i4(this);let{blockLen:X,state:G}=this;W=r7(W);let Y=W.length;for(let J=0;J<Y;){let Z=Math.min(X-this.pos,Y-J);for(let V=0;V<Z;V++)G[this.pos++]^=W[J++];if(this.pos===X)this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:W,suffix:X,pos:G,blockLen:Y}=this;if(W[G]^=X,(X&128)!==0&&G===Y-1)this.keccak();W[Y-1]^=128,this.keccak()}writeInto(W){i4(this,!1),IU(W),this.finish();let X=this.state,{blockLen:G}=this;for(let Y=0,J=W.length;Y<J;){if(this.posOut>=G)this.keccak();let Z=Math.min(G-this.posOut,J-Y);W.set(X.subarray(this.posOut,this.posOut+Z),Y),this.posOut+=Z,Y+=Z}return W}xofInto(W){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto(W)}xof(W){return B9(W),this.xofInto(new Uint8Array(W))}digestInto(W){if(_H(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:X,suffix:G,outputLen:Y,rounds:J,enableXOF:Z}=this;return W||(W=new DO(X,G,Y,Z,J)),W.state32.set(this.state32),W.pos=this.pos,W.posOut=this.posOut,W.finished=this.finished,W.rounds=J,W.suffix=G,W.outputLen=Y,W.enableXOF=Z,W.destroyed=this.destroyed,W}}var xa=(W,X,G)=>WJ(()=>new DO(X,W,G));var Yk=xa(1,136,32);var Jk=!1,Zk=function(W){return Yk(W)},Vk=Zk;function U8(W){let X=E0(W,"data");return C0(Vk(X))}U8._=Zk;U8.lock=function(){Jk=!0};U8.register=function(W){if(Jk)throw TypeError("keccak256 is locked");Vk=W};Object.freeze(U8);function ka(W,X,G,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(X,G,Y);let J=BigInt(32),Z=BigInt(4294967295),V=Number(G>>J&Z),U=Number(G&Z),Q=Y?4:0,N=Y?0:4;W.setUint32(X+Q,V,Y),W.setUint32(X+N,U,Y)}class KU extends SX{constructor(W,X,G,Y){super();this.blockLen=W,this.outputLen=X,this.padOffset=G,this.isLE=Y,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(W),this.view=eY(this.buffer)}update(W){i4(this);let{view:X,buffer:G,blockLen:Y}=this;W=r7(W);let J=W.length;for(let Z=0;Z<J;){let V=Math.min(Y-this.pos,J-Z);if(V===Y){let U=eY(W);for(;Y<=J-Z;Z+=Y)this.process(U,Z);continue}if(G.set(W.subarray(Z,Z+V),this.pos),this.pos+=V,Z+=V,this.pos===Y)this.process(X,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){i4(this),_H(W,this),this.finished=!0;let{buffer:X,view:G,blockLen:Y,isLE:J}=this,{pos:Z}=this;if(X[Z++]=128,this.buffer.subarray(Z).fill(0),this.padOffset>Y-Z)this.process(G,0),Z=0;for(let q=Z;q<Y;q++)X[q]=0;ka(G,Y-8,BigInt(this.length*8),J),this.process(G,0);let V=eY(W),U=this.outputLen;if(U%4)throw Error("_sha2: outputLen should be aligned to 32bit");let Q=U/4,N=this.get();if(Q>N.length)throw Error("_sha2: outputLen bigger than state");for(let q=0;q<Q;q++)V.setUint32(4*q,N[q],J)}digest(){let{buffer:W,outputLen:X}=this;this.digestInto(W);let G=W.slice(0,X);return this.destroy(),G}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:X,buffer:G,length:Y,finished:J,destroyed:Z,pos:V}=this;if(W.length=Y,W.pos=V,W.finished=J,W.destroyed=Z,Y%X)W.buffer.set(G);return W}}var _a=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),Qk=Uint8Array.from({length:16},(W,X)=>X),ya=Qk.map((W)=>(9*W+5)%16),CO=[Qk],TO=[ya];for(let W=0;W<4;W++)for(let X of[CO,TO])X.push(X[W].map((G)=>_a[G]));var Nk=[[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)),va=CO.map((W,X)=>W.map((G)=>Nk[X][G])),ga=TO.map((W,X)=>W.map((G)=>Nk[X][G])),ua=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),ha=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),hH=(W,X)=>W<<X|W>>>32-X;function Uk(W,X,G,Y){if(W===0)return X^G^Y;else if(W===1)return X&G|~X&Y;else if(W===2)return(X|~G)^Y;else if(W===3)return X&Y|G&~Y;else return X^(G|~Y)}var bH=new Uint32Array(16);class qk extends KU{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:X,h2:G,h3:Y,h4:J}=this;return[W,X,G,Y,J]}set(W,X,G,Y,J){this.h0=W|0,this.h1=X|0,this.h2=G|0,this.h3=Y|0,this.h4=J|0}process(W,X){for(let H=0;H<16;H++,X+=4)bH[H]=W.getUint32(X,!0);let G=this.h0|0,Y=G,J=this.h1|0,Z=J,V=this.h2|0,U=V,Q=this.h3|0,N=Q,q=this.h4|0,A=q;for(let H=0;H<5;H++){let I=4-H,w=ua[H],O=ha[H],T=CO[H],x=TO[H],P=va[H],u=ga[H];for(let F=0;F<16;F++){let m=hH(G+Uk(H,J,V,Q)+bH[T[F]]+w,P[F])+q|0;G=q,q=Q,Q=hH(V,10)|0,V=J,J=m}for(let F=0;F<16;F++){let m=hH(Y+Uk(I,Z,U,N)+bH[x[F]]+O,u[F])+A|0;Y=A,A=N,N=hH(U,10)|0,U=Z,Z=m}}this.set(this.h1+V+N|0,this.h2+Q+A|0,this.h3+q+Y|0,this.h4+G+Z|0,this.h0+J+U|0)}roundClean(){bH.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}}var Hk=WJ(()=>new qk);var Ak=!1,zk=function(W){return Hk(W)},Ik=zk;function YW(W){let X=E0(W,"data");return C0(Ik(X))}YW._=zk;YW.lock=function(){Ak=!0};YW.register=function(W){if(Ak)throw TypeError("ripemd160 is locked");Ik=W};Object.freeze(YW);var wk=!1,jk=function(W,X,G,Y,J){return hx(W,X,G,Y,J)},Kk=jk;function S5(W,X,G,Y,J){let Z=E0(W,"password"),V=E0(X,"salt");return C0(Kk(Z,V,G,Y,J))}S5._=jk;S5.lock=function(){wk=!0};S5.register=function(W){if(wk)throw Error("pbkdf2 is locked");Kk=W};Object.freeze(S5);var Ok=!1,Dk=function(W){return new Uint8Array(bx(W))},Ck=Dk;function x5(W){return Ck(W)}x5._=Dk;x5.lock=function(){Ok=!0};x5.register=function(W){if(Ok)throw Error("randomBytes is locked");Ck=W};Object.freeze(x5);var ba=(W,X,G)=>W&X^~W&G,ma=(W,X,G)=>W&X^W&G^X&G,fa=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]),JW=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ZW=new Uint32Array(64);class Tk extends KU{constructor(){super(64,32,8,!1);this.A=JW[0]|0,this.B=JW[1]|0,this.C=JW[2]|0,this.D=JW[3]|0,this.E=JW[4]|0,this.F=JW[5]|0,this.G=JW[6]|0,this.H=JW[7]|0}get(){let{A:W,B:X,C:G,D:Y,E:J,F:Z,G:V,H:U}=this;return[W,X,G,Y,J,Z,V,U]}set(W,X,G,Y,J,Z,V,U){this.A=W|0,this.B=X|0,this.C=G|0,this.D=Y|0,this.E=J|0,this.F=Z|0,this.G=V|0,this.H=U|0}process(W,X){for(let q=0;q<16;q++,X+=4)ZW[q]=W.getUint32(X,!1);for(let q=16;q<64;q++){let A=ZW[q-15],H=ZW[q-2],I=N7(A,7)^N7(A,18)^A>>>3,w=N7(H,17)^N7(H,19)^H>>>10;ZW[q]=w+ZW[q-7]+I+ZW[q-16]|0}let{A:G,B:Y,C:J,D:Z,E:V,F:U,G:Q,H:N}=this;for(let q=0;q<64;q++){let A=N7(V,6)^N7(V,11)^N7(V,25),H=N+A+ba(V,U,Q)+fa[q]+ZW[q]|0,w=(N7(G,2)^N7(G,13)^N7(G,22))+ma(G,Y,J)|0;N=Q,Q=U,U=V,V=Z+H|0,Z=J,J=Y,Y=G,G=H+w|0}G=G+this.A|0,Y=Y+this.B|0,J=J+this.C|0,Z=Z+this.D|0,V=V+this.E|0,U=U+this.F|0,Q=Q+this.G|0,N=N+this.H|0,this.set(G,Y,J,Z,V,U,Q,N)}roundClean(){ZW.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}var OU=WJ(()=>new Tk);class MO extends SX{constructor(W,X){super();this.finished=!1,this.destroyed=!1,kH(W);let G=r7(X);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,J=new Uint8Array(Y);J.set(G.length>Y?W.create().update(G).digest():G);for(let Z=0;Z<J.length;Z++)J[Z]^=54;this.iHash.update(J),this.oHash=W.create();for(let Z=0;Z<J.length;Z++)J[Z]^=106;this.oHash.update(J),J.fill(0)}update(W){return i4(this),this.iHash.update(W),this}digestInto(W){i4(this),IU(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:X,iHash:G,finished:Y,destroyed:J,blockLen:Z,outputLen:V}=this;return W=W,W.finished=Y,W.destroyed=J,W.blockLen=Z,W.outputLen=V,W.oHash=X._cloneInto(W.oHash),W.iHash=G._cloneInto(W.iHash),W}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var DU=(W,X,G)=>new MO(W,X).update(G).digest();DU.create=(W,X)=>new MO(W,X);function pa(W,X,G,Y){kH(W);let J=uH({dkLen:32,asyncTick:10},Y),{c:Z,dkLen:V,asyncTick:U}=J;if(B9(Z),B9(V),B9(U),Z<1)throw Error("PBKDF2: iterations (c) should be >= 1");let Q=r7(X),N=r7(G),q=new Uint8Array(V),A=DU.create(W,Q),H=A._cloneInto().update(N);return{c:Z,dkLen:V,asyncTick:U,DK:q,PRF:A,PRFSalt:H}}function ca(W,X,G,Y,J){if(W.destroy(),X.destroy(),Y)Y.destroy();return J.fill(0),G}function PO(W,X,G,Y){let{c:J,dkLen:Z,DK:V,PRF:U,PRFSalt:Q}=pa(W,X,G,Y),N,q=new Uint8Array(4),A=eY(q),H=new Uint8Array(U.outputLen);for(let I=1,w=0;w<Z;I++,w+=U.outputLen){let O=V.subarray(w,w+U.outputLen);A.setInt32(0,I,!1),(N=Q._cloneInto(N)).update(q).digestInto(H),O.set(H.subarray(0,O.length));for(let T=1;T<J;T++){U._cloneInto(N).update(H).digestInto(H);for(let x=0;x<O.length;x++)O[x]^=H[x]}}return ca(U,Q,V,N,H)}var s1=(W,X)=>W<<X|W>>>32-X;function Mk(W,X,G,Y,J,Z){let V=W[X++]^G[Y++],U=W[X++]^G[Y++],Q=W[X++]^G[Y++],N=W[X++]^G[Y++],q=W[X++]^G[Y++],A=W[X++]^G[Y++],H=W[X++]^G[Y++],I=W[X++]^G[Y++],w=W[X++]^G[Y++],O=W[X++]^G[Y++],T=W[X++]^G[Y++],x=W[X++]^G[Y++],P=W[X++]^G[Y++],u=W[X++]^G[Y++],F=W[X++]^G[Y++],m=W[X++]^G[Y++],l=V,p=U,W0=Q,y=N,e=q,H0=A,g=H,d=I,R=w,$=O,f=T,r=x,o=P,E=u,S=F,_=m;for(let v=0;v<8;v+=2)e^=s1(l+o|0,7),R^=s1(e+l|0,9),o^=s1(R+e|0,13),l^=s1(o+R|0,18),$^=s1(H0+p|0,7),E^=s1($+H0|0,9),p^=s1(E+$|0,13),H0^=s1(p+E|0,18),S^=s1(f+g|0,7),W0^=s1(S+f|0,9),g^=s1(W0+S|0,13),f^=s1(g+W0|0,18),y^=s1(_+r|0,7),d^=s1(y+_|0,9),r^=s1(d+y|0,13),_^=s1(r+d|0,18),p^=s1(l+y|0,7),W0^=s1(p+l|0,9),y^=s1(W0+p|0,13),l^=s1(y+W0|0,18),g^=s1(H0+e|0,7),d^=s1(g+H0|0,9),e^=s1(d+g|0,13),H0^=s1(e+d|0,18),r^=s1(f+$|0,7),R^=s1(r+f|0,9),$^=s1(R+r|0,13),f^=s1($+R|0,18),o^=s1(_+S|0,7),E^=s1(o+_|0,9),S^=s1(E+o|0,13),_^=s1(S+E|0,18);J[Z++]=V+l|0,J[Z++]=U+p|0,J[Z++]=Q+W0|0,J[Z++]=N+y|0,J[Z++]=q+e|0,J[Z++]=A+H0|0,J[Z++]=H+g|0,J[Z++]=I+d|0,J[Z++]=w+R|0,J[Z++]=O+$|0,J[Z++]=T+f|0,J[Z++]=x+r|0,J[Z++]=P+o|0,J[Z++]=u+E|0,J[Z++]=F+S|0,J[Z++]=m+_|0}function XJ(W,X,G,Y,J){let Z=Y+0,V=Y+16*J;for(let U=0;U<16;U++)G[V+U]=W[X+(2*J-1)*16+U];for(let U=0;U<J;U++,Z+=16,X+=16){if(Mk(G,V,W,X,G,Z),U>0)V+=16;Mk(G,Z,W,X+=16,G,V)}}function Pk(W,X,G){let Y=uH({dkLen:32,asyncTick:10,maxmem:1073742848},G),{N:J,r:Z,p:V,dkLen:U,asyncTick:Q,maxmem:N,onProgress:q}=Y;if(B9(J),B9(Z),B9(V),B9(U),B9(Q),B9(N),q!==void 0&&typeof q!=="function")throw Error("progressCb should be function");let A=128*Z,H=A/4;if(J<=1||(J&J-1)!==0||J>=2**(A/8)||J>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(V<0||V>137438953440/A)throw Error("Scrypt: p must be a positive integer less than or equal to ((2^32 - 1) * 32) / (128 * r)");if(U<0||U>137438953440)throw Error("Scrypt: dkLen should be positive integer less than or equal to (2^32 - 1) * 32");let I=A*(J+V);if(I>N)throw Error(`Scrypt: parameters too large, ${I} (128 * r * (N + p)) > ${N} (maxmem)`);let w=PO(OU,W,X,{c:1,dkLen:A*V}),O=tY(w),T=tY(new Uint8Array(A*J)),x=tY(new Uint8Array(A)),P=()=>{};if(q){let u=2*J*V,F=Math.max(Math.floor(u/1e4),1),m=0;P=()=>{if(m++,q&&(!(m%F)||m===u))q(m/u)}}return{N:J,r:Z,p:V,dkLen:U,blockSize32:H,V:T,B32:O,B:w,tmp:x,blockMixCb:P,asyncTick:Q}}function Rk(W,X,G,Y,J){let Z=PO(OU,W,G,{c:1,dkLen:X});return G.fill(0),Y.fill(0),J.fill(0),Z}function Lk(W,X,G){let{N:Y,r:J,p:Z,dkLen:V,blockSize32:U,V:Q,B32:N,B:q,tmp:A,blockMixCb:H}=Pk(W,X,G);for(let I=0;I<Z;I++){let w=U*I;for(let O=0;O<U;O++)Q[O]=N[w+O];for(let O=0,T=0;O<Y-1;O++)XJ(Q,T,Q,T+=U,J),H();XJ(Q,(Y-1)*U,N,w,J),H();for(let O=0;O<Y;O++){let T=N[w+U-16]%Y;for(let x=0;x<U;x++)A[x]=N[w+x]^Q[T*U+x];XJ(A,0,N,w,J),H()}}return Rk(W,V,q,Q,A)}async function Bk(W,X,G){let{N:Y,r:J,p:Z,dkLen:V,blockSize32:U,V:Q,B32:N,B:q,tmp:A,blockMixCb:H,asyncTick:I}=Pk(W,X,G);for(let w=0;w<Z;w++){let O=U*w;for(let x=0;x<U;x++)Q[x]=N[O+x];let T=0;await gH(Y-1,I,()=>{XJ(Q,T,Q,T+=U,J),H()}),XJ(Q,(Y-1)*U,N,O,J),H(),await gH(Y,I,()=>{let x=N[O+U-16]%Y;for(let P=0;P<U;P++)A[P]=N[O+P]^Q[x*U+P];XJ(A,0,N,O,J),H()})}return Rk(W,V,q,Q,A)}var Ek=!1,$k=!1,Fk=async function(W,X,G,Y,J,Z,V){return await Bk(W,X,{N:G,r:Y,p:J,dkLen:Z,onProgress:V})},Sk=function(W,X,G,Y,J,Z){return Lk(W,X,{N:G,r:Y,p:J,dkLen:Z})},xk=Fk,kk=Sk;async function VW(W,X,G,Y,J,Z,V){let U=E0(W,"passwd"),Q=E0(X,"salt");return C0(await xk(U,Q,G,Y,J,Z,V))}VW._=Fk;VW.lock=function(){$k=!0};VW.register=function(W){if($k)throw Error("scrypt is locked");xk=W};Object.freeze(VW);function UW(W,X,G,Y,J,Z){let V=E0(W,"passwd"),U=E0(X,"salt");return C0(kk(V,U,G,Y,J,Z))}UW._=Sk;UW.lock=function(){Ek=!0};UW.register=function(W){if(Ek)throw Error("scryptSync is locked");kk=W};Object.freeze(UW);var _k=function(W){return OO("sha256").update(W).digest()},yk=function(W){return OO("sha512").update(W).digest()},vk=_k,gk=yk,uk=!1,hk=!1;function E9(W){let X=E0(W,"data");return C0(vk(X))}E9._=_k;E9.lock=function(){uk=!0};E9.register=function(W){if(uk)throw Error("sha256 is locked");vk=W};Object.freeze(E9);function mH(W){let X=E0(W,"data");return C0(gk(X))}mH._=yk;mH.lock=function(){hk=!0};mH.register=function(W){if(hk)throw Error("sha512 is locked");gk=W};Object.freeze(E9);var EO={};zA(EO,{validateObject:()=>NW,utf8ToBytes:()=>ia,numberToVarBytesBE:()=>oa,numberToHexUnpadded:()=>fk,numberToBytesLE:()=>lH,numberToBytesBE:()=>QW,hexToNumber:()=>LO,hexToBytes:()=>kX,equalBytes:()=>na,ensureBytes:()=>I5,createHmacDrbg:()=>BO,concatBytes:()=>GJ,bytesToNumberLE:()=>cH,bytesToNumberBE:()=>r4,bytesToHex:()=>xX,bitSet:()=>sa,bitMask:()=>CU,bitLen:()=>ra,bitGet:()=>aa});/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var mk=BigInt(0),fH=BigInt(1),la=BigInt(2),pH=(W)=>W instanceof Uint8Array,da=Array.from({length:256},(W,X)=>X.toString(16).padStart(2,"0"));function xX(W){if(!pH(W))throw Error("Uint8Array expected");let X="";for(let G=0;G<W.length;G++)X+=da[W[G]];return X}function fk(W){let X=W.toString(16);return X.length&1?`0${X}`:X}function LO(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return BigInt(W===""?"0":`0x${W}`)}function kX(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);let X=W.length;if(X%2)throw Error("padded hex string expected, got unpadded hex of length "+X);let G=new Uint8Array(X/2);for(let Y=0;Y<G.length;Y++){let J=Y*2,Z=W.slice(J,J+2),V=Number.parseInt(Z,16);if(Number.isNaN(V)||V<0)throw Error("Invalid byte sequence");G[Y]=V}return G}function r4(W){return LO(xX(W))}function cH(W){if(!pH(W))throw Error("Uint8Array expected");return LO(xX(Uint8Array.from(W).reverse()))}function QW(W,X){return kX(W.toString(16).padStart(X*2,"0"))}function lH(W,X){return QW(W,X).reverse()}function oa(W){return kX(fk(W))}function I5(W,X,G){let Y;if(typeof X==="string")try{Y=kX(X)}catch(Z){throw Error(`${W} must be valid hex string, got "${X}". Cause: ${Z}`)}else if(pH(X))Y=Uint8Array.from(X);else throw Error(`${W} must be hex string or Uint8Array`);let J=Y.length;if(typeof G==="number"&&J!==G)throw Error(`${W} expected ${G} bytes, got ${J}`);return Y}function GJ(...W){let X=new Uint8Array(W.reduce((Y,J)=>Y+J.length,0)),G=0;return W.forEach((Y)=>{if(!pH(Y))throw Error("Uint8Array expected");X.set(Y,G),G+=Y.length}),X}function na(W,X){if(W.length!==X.length)return!1;for(let G=0;G<W.length;G++)if(W[G]!==X[G])return!1;return!0}function ia(W){if(typeof W!=="string")throw Error(`utf8ToBytes expected string, got ${typeof W}`);return new Uint8Array(new TextEncoder().encode(W))}function ra(W){let X;for(X=0;W>mk;W>>=fH,X+=1);return X}function aa(W,X){return W>>BigInt(X)&fH}var sa=(W,X,G)=>{return W|(G?fH:mk)<<BigInt(X)},CU=(W)=>(la<<BigInt(W-1))-fH,RO=(W)=>new Uint8Array(W),bk=(W)=>Uint8Array.from(W);function BO(W,X,G){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof X!=="number"||X<2)throw Error("qByteLen must be a number");if(typeof G!=="function")throw Error("hmacFn must be a function");let Y=RO(W),J=RO(W),Z=0,V=()=>{Y.fill(1),J.fill(0),Z=0},U=(...A)=>G(J,Y,...A),Q=(A=RO())=>{if(J=U(bk([0]),A),Y=U(),A.length===0)return;J=U(bk([1]),A),Y=U()},N=()=>{if(Z++>=1000)throw Error("drbg: tried 1000 values");let A=0,H=[];while(A<X){Y=U();let I=Y.slice();H.push(I),A+=Y.length}return GJ(...H)};return(A,H)=>{V(),Q(A);let I=void 0;while(!(I=H(N())))Q();return V(),I}}var ta={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,X)=>X.Fp.isValid(W),hash:(W)=>typeof W==="function"&&Number.isSafeInteger(W.outputLen)};function NW(W,X,G={}){let Y=(J,Z,V)=>{let U=ta[Z];if(typeof U!=="function")throw Error(`Invalid validator "${Z}", expected function`);let Q=W[J];if(V&&Q===void 0)return;if(!U(Q,W))throw Error(`Invalid param ${String(J)}=${Q} (${typeof Q}), expected ${Z}`)};for(let[J,Z]of Object.entries(X))Y(J,Z,!1);for(let[J,Z]of Object.entries(G))Y(J,Z,!0);return W}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var n8=BigInt(0),x8=BigInt(1),_X=BigInt(2),ea=BigInt(3),$O=BigInt(4),pk=BigInt(5),ck=BigInt(8),Ws=BigInt(9),Xs=BigInt(16);function $9(W,X){let G=W%X;return G>=n8?G:X+G}function Gs(W,X,G){if(G<=n8||X<n8)throw Error("Expected power/modulo > 0");if(G===x8)return n8;let Y=x8;while(X>n8){if(X&x8)Y=Y*W%G;W=W*W%G,X>>=x8}return Y}function w5(W,X,G){let Y=W;while(X-- >n8)Y*=Y,Y%=G;return Y}function dH(W,X){if(W===n8||X<=n8)throw Error(`invert: expected positive integers, got n=${W} mod=${X}`);let G=$9(W,X),Y=X,J=n8,Z=x8,V=x8,U=n8;while(G!==n8){let N=Y/G,q=Y%G,A=J-V*N,H=Z-U*N;Y=G,G=q,J=V,Z=U,V=A,U=H}if(Y!==x8)throw Error("invert: does not exist");return $9(J,X)}function Ys(W){let X=(W-x8)/_X,G,Y,J;for(G=W-x8,Y=0;G%_X===n8;G/=_X,Y++);for(J=_X;J<W&&Gs(J,X,W)!==W-x8;J++);if(Y===1){let V=(W+x8)/$O;return function(Q,N){let q=Q.pow(N,V);if(!Q.eql(Q.sqr(q),N))throw Error("Cannot find square root");return q}}let Z=(G+x8)/_X;return function(U,Q){if(U.pow(Q,X)===U.neg(U.ONE))throw Error("Cannot find square root");let N=Y,q=U.pow(U.mul(U.ONE,J),G),A=U.pow(Q,Z),H=U.pow(Q,G);while(!U.eql(H,U.ONE)){if(U.eql(H,U.ZERO))return U.ZERO;let I=1;for(let O=U.sqr(H);I<N;I++){if(U.eql(O,U.ONE))break;O=U.sqr(O)}let w=U.pow(q,x8<<BigInt(N-I-1));q=U.sqr(w),A=U.mul(A,w),H=U.mul(H,q),N=I}return A}}function Js(W){if(W%$O===ea){let X=(W+x8)/$O;return function(Y,J){let Z=Y.pow(J,X);if(!Y.eql(Y.sqr(Z),J))throw Error("Cannot find square root");return Z}}if(W%ck===pk){let X=(W-pk)/ck;return function(Y,J){let Z=Y.mul(J,_X),V=Y.pow(Z,X),U=Y.mul(J,V),Q=Y.mul(Y.mul(U,_X),V),N=Y.mul(U,Y.sub(Q,Y.ONE));if(!Y.eql(Y.sqr(N),J))throw Error("Cannot find square root");return N}}if(W%Xs===Ws);return Ys(W)}var Zs=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function FO(W){let X={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},G=Zs.reduce((Y,J)=>{return Y[J]="function",Y},X);return NW(W,G)}function Vs(W,X,G){if(G<n8)throw Error("Expected power > 0");if(G===n8)return W.ONE;if(G===x8)return X;let Y=W.ONE,J=X;while(G>n8){if(G&x8)Y=W.mul(Y,J);J=W.sqr(J),G>>=x8}return Y}function Us(W,X){let G=Array(X.length),Y=X.reduce((Z,V,U)=>{if(W.is0(V))return Z;return G[U]=Z,W.mul(Z,V)},W.ONE),J=W.inv(Y);return X.reduceRight((Z,V,U)=>{if(W.is0(V))return Z;return G[U]=W.mul(Z,G[U]),W.mul(Z,V)},J),G}function SO(W,X){let G=X!==void 0?X:W.toString(2).length,Y=Math.ceil(G/8);return{nBitLength:G,nByteLength:Y}}function lk(W,X,G=!1,Y={}){if(W<=n8)throw Error(`Expected Field ORDER > 0, got ${W}`);let{nBitLength:J,nByteLength:Z}=SO(W,X);if(Z>2048)throw Error("Field lengths over 2048 bytes are not supported");let V=Js(W),U=Object.freeze({ORDER:W,BITS:J,BYTES:Z,MASK:CU(J),ZERO:n8,ONE:x8,create:(Q)=>$9(Q,W),isValid:(Q)=>{if(typeof Q!=="bigint")throw Error(`Invalid field element: expected bigint, got ${typeof Q}`);return n8<=Q&&Q<W},is0:(Q)=>Q===n8,isOdd:(Q)=>(Q&x8)===x8,neg:(Q)=>$9(-Q,W),eql:(Q,N)=>Q===N,sqr:(Q)=>$9(Q*Q,W),add:(Q,N)=>$9(Q+N,W),sub:(Q,N)=>$9(Q-N,W),mul:(Q,N)=>$9(Q*N,W),pow:(Q,N)=>Vs(U,Q,N),div:(Q,N)=>$9(Q*dH(N,W),W),sqrN:(Q)=>Q*Q,addN:(Q,N)=>Q+N,subN:(Q,N)=>Q-N,mulN:(Q,N)=>Q*N,inv:(Q)=>dH(Q,W),sqrt:Y.sqrt||((Q)=>V(U,Q)),invertBatch:(Q)=>Us(U,Q),cmov:(Q,N,q)=>q?N:Q,toBytes:(Q)=>G?lH(Q,Z):QW(Q,Z),fromBytes:(Q)=>{if(Q.length!==Z)throw Error(`Fp.fromBytes: expected ${Z}, got ${Q.length}`);return G?cH(Q):r4(Q)}});return Object.freeze(U)}function dk(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let X=W.toString(2).length;return Math.ceil(X/8)}function xO(W){let X=dk(W);return X+Math.ceil(X/2)}function ok(W,X,G=!1){let Y=W.length,J=dk(X),Z=xO(X);if(Y<16||Y<Z||Y>1024)throw Error(`expected ${Z}-1024 bytes of input, got ${Y}`);let V=G?r4(W):cH(W),U=$9(V,X-x8)+x8;return G?lH(U,J):QW(U,J)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Ns=BigInt(0),kO=BigInt(1);function nk(W,X){let G=(J,Z)=>{let V=Z.negate();return J?V:Z},Y=(J)=>{let Z=Math.ceil(X/J)+1,V=2**(J-1);return{windows:Z,windowSize:V}};return{constTimeNegate:G,unsafeLadder(J,Z){let V=W.ZERO,U=J;while(Z>Ns){if(Z&kO)V=V.add(U);U=U.double(),Z>>=kO}return V},precomputeWindow(J,Z){let{windows:V,windowSize:U}=Y(Z),Q=[],N=J,q=N;for(let A=0;A<V;A++){q=N,Q.push(q);for(let H=1;H<U;H++)q=q.add(N),Q.push(q);N=q.double()}return Q},wNAF(J,Z,V){let{windows:U,windowSize:Q}=Y(J),N=W.ZERO,q=W.BASE,A=BigInt(2**J-1),H=2**J,I=BigInt(J);for(let w=0;w<U;w++){let O=w*Q,T=Number(V&A);if(V>>=I,T>Q)T-=H,V+=kO;let x=O,P=O+Math.abs(T)-1,u=w%2!==0,F=T<0;if(T===0)q=q.add(G(u,Z[x]));else N=N.add(G(F,Z[P]))}return{p:N,f:q}},wNAFCached(J,Z,V,U){let Q=J._WINDOW_SIZE||1,N=Z.get(J);if(!N){if(N=this.precomputeWindow(J,Q),Q!==1)Z.set(J,U(N))}return this.wNAF(Q,N,V)}}}function _O(W){return FO(W.Fp),NW(W,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...SO(W.n,W.nBitLength),...W,...{p:W.Fp.ORDER}})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function qs(W){let X=_O(W);NW(X,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:G,Fp:Y,a:J}=X;if(G){if(!Y.eql(J,Y.ZERO))throw Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof G!=="object"||typeof G.beta!=="bigint"||typeof G.splitScalar!=="function")throw Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...X})}var{bytesToNumberBE:Hs,hexToBytes:As}=EO,yX={Err:class extends Error{constructor(X=""){super(X)}},_parseInt(W){let{Err:X}=yX;if(W.length<2||W[0]!==2)throw new X("Invalid signature integer tag");let G=W[1],Y=W.subarray(2,G+2);if(!G||Y.length!==G)throw new X("Invalid signature integer: wrong length");if(Y[0]&128)throw new X("Invalid signature integer: negative");if(Y[0]===0&&!(Y[1]&128))throw new X("Invalid signature integer: unnecessary leading zero");return{d:Hs(Y),l:W.subarray(G+2)}},toSig(W){let{Err:X}=yX,G=typeof W==="string"?As(W):W;if(!(G instanceof Uint8Array))throw Error("ui8a expected");let Y=G.length;if(Y<2||G[0]!=48)throw new X("Invalid signature tag");if(G[1]!==Y-2)throw new X("Invalid signature: incorrect length");let{d:J,l:Z}=yX._parseInt(G.subarray(2)),{d:V,l:U}=yX._parseInt(Z);if(U.length)throw new X("Invalid signature: left bytes after parsing");return{r:J,s:V}},hexFromSig(W){let X=(N)=>Number.parseInt(N[0],16)&8?"00"+N:N,G=(N)=>{let q=N.toString(16);return q.length&1?`0${q}`:q},Y=X(G(W.s)),J=X(G(W.r)),Z=Y.length/2,V=J.length/2,U=G(Z),Q=G(V);return`30${G(V+Z+4)}02${Q}${J}02${U}${Y}`}},a4=BigInt(0),k5=BigInt(1),Oj0=BigInt(2),ik=BigInt(3),Dj0=BigInt(4);function zs(W){let X=qs(W),{Fp:G}=X,Y=X.toBytes||((w,O,T)=>{let x=O.toAffine();return GJ(Uint8Array.from([4]),G.toBytes(x.x),G.toBytes(x.y))}),J=X.fromBytes||((w)=>{let O=w.subarray(1),T=G.fromBytes(O.subarray(0,G.BYTES)),x=G.fromBytes(O.subarray(G.BYTES,2*G.BYTES));return{x:T,y:x}});function Z(w){let{a:O,b:T}=X,x=G.sqr(w),P=G.mul(x,w);return G.add(G.add(P,G.mul(w,O)),T)}if(!G.eql(G.sqr(X.Gy),Z(X.Gx)))throw Error("bad generator point: equation left != right");function V(w){return typeof w==="bigint"&&a4<w&&w<X.n}function U(w){if(!V(w))throw Error("Expected valid bigint: 0 < bigint < curve.n")}function Q(w){let{allowedPrivateKeyLengths:O,nByteLength:T,wrapPrivateKey:x,n:P}=X;if(O&&typeof w!=="bigint"){if(w instanceof Uint8Array)w=xX(w);if(typeof w!=="string"||!O.includes(w.length))throw Error("Invalid key");w=w.padStart(T*2,"0")}let u;try{u=typeof w==="bigint"?w:r4(I5("private key",w,T))}catch(F){throw Error(`private key must be ${T} bytes, hex or bigint, not ${typeof w}`)}if(x)u=$9(u,P);return U(u),u}let N=new Map;function q(w){if(!(w instanceof A))throw Error("ProjectivePoint expected")}class A{constructor(w,O,T){if(this.px=w,this.py=O,this.pz=T,w==null||!G.isValid(w))throw Error("x required");if(O==null||!G.isValid(O))throw Error("y required");if(T==null||!G.isValid(T))throw Error("z required")}static fromAffine(w){let{x:O,y:T}=w||{};if(!w||!G.isValid(O)||!G.isValid(T))throw Error("invalid affine point");if(w instanceof A)throw Error("projective point not allowed");let x=(P)=>G.eql(P,G.ZERO);if(x(O)&&x(T))return A.ZERO;return new A(O,T,G.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(w){let O=G.invertBatch(w.map((T)=>T.pz));return w.map((T,x)=>T.toAffine(O[x])).map(A.fromAffine)}static fromHex(w){let O=A.fromAffine(J(I5("pointHex",w)));return O.assertValidity(),O}static fromPrivateKey(w){return A.BASE.multiply(Q(w))}_setWindowSize(w){this._WINDOW_SIZE=w,N.delete(this)}assertValidity(){if(this.is0()){if(X.allowInfinityPoint&&!G.is0(this.py))return;throw Error("bad point: ZERO")}let{x:w,y:O}=this.toAffine();if(!G.isValid(w)||!G.isValid(O))throw Error("bad point: x or y not FE");let T=G.sqr(O),x=Z(w);if(!G.eql(T,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(G.isOdd)return!G.isOdd(w);throw Error("Field doesn't support isOdd")}equals(w){q(w);let{px:O,py:T,pz:x}=this,{px:P,py:u,pz:F}=w,m=G.eql(G.mul(O,F),G.mul(P,x)),l=G.eql(G.mul(T,F),G.mul(u,x));return m&&l}negate(){return new A(this.px,G.neg(this.py),this.pz)}double(){let{a:w,b:O}=X,T=G.mul(O,ik),{px:x,py:P,pz:u}=this,F=G.ZERO,m=G.ZERO,l=G.ZERO,p=G.mul(x,x),W0=G.mul(P,P),y=G.mul(u,u),e=G.mul(x,P);return e=G.add(e,e),l=G.mul(x,u),l=G.add(l,l),F=G.mul(w,l),m=G.mul(T,y),m=G.add(F,m),F=G.sub(W0,m),m=G.add(W0,m),m=G.mul(F,m),F=G.mul(e,F),l=G.mul(T,l),y=G.mul(w,y),e=G.sub(p,y),e=G.mul(w,e),e=G.add(e,l),l=G.add(p,p),p=G.add(l,p),p=G.add(p,y),p=G.mul(p,e),m=G.add(m,p),y=G.mul(P,u),y=G.add(y,y),p=G.mul(y,e),F=G.sub(F,p),l=G.mul(y,W0),l=G.add(l,l),l=G.add(l,l),new A(F,m,l)}add(w){q(w);let{px:O,py:T,pz:x}=this,{px:P,py:u,pz:F}=w,m=G.ZERO,l=G.ZERO,p=G.ZERO,W0=X.a,y=G.mul(X.b,ik),e=G.mul(O,P),H0=G.mul(T,u),g=G.mul(x,F),d=G.add(O,T),R=G.add(P,u);d=G.mul(d,R),R=G.add(e,H0),d=G.sub(d,R),R=G.add(O,x);let $=G.add(P,F);return R=G.mul(R,$),$=G.add(e,g),R=G.sub(R,$),$=G.add(T,x),m=G.add(u,F),$=G.mul($,m),m=G.add(H0,g),$=G.sub($,m),p=G.mul(W0,R),m=G.mul(y,g),p=G.add(m,p),m=G.sub(H0,p),p=G.add(H0,p),l=G.mul(m,p),H0=G.add(e,e),H0=G.add(H0,e),g=G.mul(W0,g),R=G.mul(y,R),H0=G.add(H0,g),g=G.sub(e,g),g=G.mul(W0,g),R=G.add(R,g),e=G.mul(H0,R),l=G.add(l,e),e=G.mul($,R),m=G.mul(d,m),m=G.sub(m,e),e=G.mul(d,H0),p=G.mul($,p),p=G.add(p,e),new A(m,l,p)}subtract(w){return this.add(w.negate())}is0(){return this.equals(A.ZERO)}wNAF(w){return I.wNAFCached(this,N,w,(O)=>{let T=G.invertBatch(O.map((x)=>x.pz));return O.map((x,P)=>x.toAffine(T[P])).map(A.fromAffine)})}multiplyUnsafe(w){let O=A.ZERO;if(w===a4)return O;if(U(w),w===k5)return this;let{endo:T}=X;if(!T)return I.unsafeLadder(this,w);let{k1neg:x,k1:P,k2neg:u,k2:F}=T.splitScalar(w),m=O,l=O,p=this;while(P>a4||F>a4){if(P&k5)m=m.add(p);if(F&k5)l=l.add(p);p=p.double(),P>>=k5,F>>=k5}if(x)m=m.negate();if(u)l=l.negate();return l=new A(G.mul(l.px,T.beta),l.py,l.pz),m.add(l)}multiply(w){U(w);let O=w,T,x,{endo:P}=X;if(P){let{k1neg:u,k1:F,k2neg:m,k2:l}=P.splitScalar(O),{p,f:W0}=this.wNAF(F),{p:y,f:e}=this.wNAF(l);p=I.constTimeNegate(u,p),y=I.constTimeNegate(m,y),y=new A(G.mul(y.px,P.beta),y.py,y.pz),T=p.add(y),x=W0.add(e)}else{let{p:u,f:F}=this.wNAF(O);T=u,x=F}return A.normalizeZ([T,x])[0]}multiplyAndAddUnsafe(w,O,T){let x=A.BASE,P=(F,m)=>m===a4||m===k5||!F.equals(x)?F.multiplyUnsafe(m):F.multiply(m),u=P(this,O).add(P(w,T));return u.is0()?void 0:u}toAffine(w){let{px:O,py:T,pz:x}=this,P=this.is0();if(w==null)w=P?G.ONE:G.inv(x);let u=G.mul(O,w),F=G.mul(T,w),m=G.mul(x,w);if(P)return{x:G.ZERO,y:G.ZERO};if(!G.eql(m,G.ONE))throw Error("invZ was invalid");return{x:u,y:F}}isTorsionFree(){let{h:w,isTorsionFree:O}=X;if(w===k5)return!0;if(O)return O(A,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:w,clearCofactor:O}=X;if(w===k5)return this;if(O)return O(A,this);return this.multiplyUnsafe(X.h)}toRawBytes(w=!0){return this.assertValidity(),Y(A,this,w)}toHex(w=!0){return xX(this.toRawBytes(w))}}A.BASE=new A(X.Gx,X.Gy,G.ONE),A.ZERO=new A(G.ZERO,G.ONE,G.ZERO);let H=X.nBitLength,I=nk(A,X.endo?Math.ceil(H/2):H);return{CURVE:X,ProjectivePoint:A,normPrivateKeyToScalar:Q,weierstrassEquation:Z,isWithinCurveOrder:V}}function Is(W){let X=_O(W);return NW(X,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...X})}function rk(W){let X=Is(W),{Fp:G,n:Y}=X,J=G.BYTES+1,Z=2*G.BYTES+1;function V($){return a4<$&&$<G.ORDER}function U($){return $9($,Y)}function Q($){return dH($,Y)}let{ProjectivePoint:N,normPrivateKeyToScalar:q,weierstrassEquation:A,isWithinCurveOrder:H}=zs({...X,toBytes($,f,r){let o=f.toAffine(),E=G.toBytes(o.x),S=GJ;if(r)return S(Uint8Array.from([f.hasEvenY()?2:3]),E);else return S(Uint8Array.from([4]),E,G.toBytes(o.y))},fromBytes($){let f=$.length,r=$[0],o=$.subarray(1);if(f===J&&(r===2||r===3)){let E=r4(o);if(!V(E))throw Error("Point is not on curve");let S=A(E),_=G.sqrt(S),v=(_&k5)===k5;if((r&1)===1!==v)_=G.neg(_);return{x:E,y:_}}else if(f===Z&&r===4){let E=G.fromBytes(o.subarray(0,G.BYTES)),S=G.fromBytes(o.subarray(G.BYTES,2*G.BYTES));return{x:E,y:S}}else throw Error(`Point of length ${f} was invalid. Expected ${J} compressed bytes or ${Z} uncompressed bytes`)}}),I=($)=>xX(QW($,X.nByteLength));function w($){let f=Y>>k5;return $>f}function O($){return w($)?U(-$):$}let T=($,f,r)=>r4($.slice(f,r));class x{constructor($,f,r){this.r=$,this.s=f,this.recovery=r,this.assertValidity()}static fromCompact($){let f=X.nByteLength;return $=I5("compactSignature",$,f*2),new x(T($,0,f),T($,f,2*f))}static fromDER($){let{r:f,s:r}=yX.toSig(I5("DER",$));return new x(f,r)}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($){return new x(this.r,this.s,$)}recoverPublicKey($){let{r:f,s:r,recovery:o}=this,E=p(I5("msgHash",$));if(o==null||![0,1,2,3].includes(o))throw Error("recovery id invalid");let S=o===2||o===3?f+X.n:f;if(S>=G.ORDER)throw Error("recovery id 2 or 3 invalid");let _=(o&1)===0?"02":"03",v=N.fromHex(_+I(S)),L=Q(S),b=U(-E*L),J0=U(r*L),U0=N.BASE.multiplyAndAddUnsafe(v,b,J0);if(!U0)throw Error("point at infinify");return U0.assertValidity(),U0}hasHighS(){return w(this.s)}normalizeS(){return this.hasHighS()?new x(this.r,U(-this.s),this.recovery):this}toDERRawBytes(){return kX(this.toDERHex())}toDERHex(){return yX.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return kX(this.toCompactHex())}toCompactHex(){return I(this.r)+I(this.s)}}let P={isValidPrivateKey($){try{return q($),!0}catch(f){return!1}},normPrivateKeyToScalar:q,randomPrivateKey:()=>{let $=xO(X.n);return ok(X.randomBytes($),X.n)},precompute($=8,f=N.BASE){return f._setWindowSize($),f.multiply(BigInt(3)),f}};function u($,f=!0){return N.fromPrivateKey($).toRawBytes(f)}function F($){let f=$ instanceof Uint8Array,r=typeof $==="string",o=(f||r)&&$.length;if(f)return o===J||o===Z;if(r)return o===2*J||o===2*Z;if($ instanceof N)return!0;return!1}function m($,f,r=!0){if(F($))throw Error("first arg must be private key");if(!F(f))throw Error("second arg must be public key");return N.fromHex(f).multiply(q($)).toRawBytes(r)}let l=X.bits2int||function($){let f=r4($),r=$.length*8-X.nBitLength;return r>0?f>>BigInt(r):f},p=X.bits2int_modN||function($){return U(l($))},W0=CU(X.nBitLength);function y($){if(typeof $!=="bigint")throw Error("bigint expected");if(!(a4<=$&&$<W0))throw Error(`bigint expected < 2^${X.nBitLength}`);return QW($,X.nByteLength)}function e($,f,r=H0){if(["recovered","canonical"].some((u0)=>(u0 in r)))throw Error("sign() legacy options not supported");let{hash:o,randomBytes:E}=X,{lowS:S,prehash:_,extraEntropy:v}=r;if(S==null)S=!0;if($=I5("msgHash",$),_)$=I5("prehashed msgHash",o($));let L=p($),b=q(f),J0=[y(b),y(L)];if(v!=null){let u0=v===!0?E(G.BYTES):v;J0.push(I5("extraEntropy",u0))}let U0=GJ(...J0),N0=L;function $0(u0){let q1=l(u0);if(!H(q1))return;let g1=Q(q1),h0=N.BASE.multiply(q1).toAffine(),x1=U(h0.x);if(x1===a4)return;let k1=U(g1*U(N0+x1*b));if(k1===a4)return;let Q0=(h0.x===x1?0:2)|Number(h0.y&k5),S0=k1;if(S&&w(k1))S0=O(k1),Q0^=1;return new x(x1,S0,Q0)}return{seed:U0,k2sig:$0}}let H0={lowS:X.lowS,prehash:!1},g={lowS:X.lowS,prehash:!1};function d($,f,r=H0){let{seed:o,k2sig:E}=e($,f,r),S=X;return BO(S.hash.outputLen,S.nByteLength,S.hmac)(o,E)}N.BASE._setWindowSize(8);function R($,f,r,o=g){let E=$;if(f=I5("msgHash",f),r=I5("publicKey",r),"strict"in o)throw Error("options.strict was renamed to lowS");let{lowS:S,prehash:_}=o,v=void 0,L;try{if(typeof E==="string"||E instanceof Uint8Array)try{v=x.fromDER(E)}catch(h0){if(!(h0 instanceof yX.Err))throw h0;v=x.fromCompact(E)}else if(typeof E==="object"&&typeof E.r==="bigint"&&typeof E.s==="bigint"){let{r:h0,s:x1}=E;v=new x(h0,x1)}else throw Error("PARSE");L=N.fromHex(r)}catch(h0){if(h0.message==="PARSE")throw Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(S&&v.hasHighS())return!1;if(_)f=X.hash(f);let{r:b,s:J0}=v,U0=p(f),N0=Q(J0),$0=U(U0*N0),u0=U(b*N0),q1=N.BASE.multiplyAndAddUnsafe(L,$0,u0)?.toAffine();if(!q1)return!1;return U(q1.x)===b}return{CURVE:X,getPublicKey:u,getSharedSecret:m,sign:d,verify:R,ProjectivePoint:N,Signature:x,utils:P}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function ws(W){return{hash:W,hmac:(X,...G)=>DU(W,X,ax(...G)),randomBytes:sx}}function ak(W,X){let G=(Y)=>rk({...W,...ws(Y)});return Object.freeze({...G(X),create:G})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var ek=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),sk=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),js=BigInt(1),yO=BigInt(2),tk=(W,X)=>(W+X/yO)/X;function Ks(W){let X=ek,G=BigInt(3),Y=BigInt(6),J=BigInt(11),Z=BigInt(22),V=BigInt(23),U=BigInt(44),Q=BigInt(88),N=W*W*W%X,q=N*N*W%X,A=w5(q,G,X)*q%X,H=w5(A,G,X)*q%X,I=w5(H,yO,X)*N%X,w=w5(I,J,X)*I%X,O=w5(w,Z,X)*w%X,T=w5(O,U,X)*O%X,x=w5(T,Q,X)*T%X,P=w5(x,U,X)*O%X,u=w5(P,G,X)*q%X,F=w5(u,V,X)*w%X,m=w5(F,Y,X)*N%X,l=w5(m,yO,X);if(!vO.eql(vO.sqr(l),W))throw Error("Cannot find square root");return l}var vO=lk(ek,void 0,void 0,{sqrt:Ks}),s4=ak({a:BigInt(0),b:BigInt(7),Fp:vO,n:sk,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:(W)=>{let X=sk,G=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),Y=-js*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),J=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),Z=G,V=BigInt("0x100000000000000000000000000000000"),U=tk(Z*W,X),Q=tk(-Y*W,X),N=$9(W-U*G-Q*J,X),q=$9(-U*Y-Q*Z,X),A=N>V,H=q>V;if(A)N=X-N;if(H)q=X-q;if(N>V||q>V)throw Error("splitScalar: Endomorphism failed, k="+W);return{k1neg:A,k1:N,k2neg:H,k2:q}}}},OU),$j0=BigInt(0);var Fj0=s4.ProjectivePoint;var gO="0x0000000000000000000000000000000000000000";var oH="0x0000000000000000000000000000000000000000000000000000000000000000";var uO=`\x19Ethereum Signed Message:
|
|
249
|
-
`;var W_=BigInt(0),X_=BigInt(1),G_=BigInt(2),Y_=BigInt(27),J_=BigInt(28),nH=BigInt(35),YJ={};function Z_(W){return z5(z8(W),32)}class T8{#W;#X;#G;#Y;get r(){return this.#W}set r(W){a(n4(W)===32,"invalid r","value",W),this.#W=C0(W)}get s(){return a(parseInt(this.#X.substring(0,3))<8,"non-canonical s; use ._s","s",this.#X),this.#X}set s(W){a(n4(W)===32,"invalid s","value",W),this.#X=C0(W)}get _s(){return this.#X}isValid(){return parseInt(this.#X.substring(0,3))<8}get v(){return this.#G}set v(W){let X=s8(W,"value");a(X===27||X===28,"invalid v","v",W),this.#G=X}get networkV(){return this.#Y}get legacyChainId(){let W=this.networkV;if(W==null)return null;return T8.getChainId(W)}get yParity(){return this.v===27?0:1}get yParityAndS(){let W=E0(this.s);if(this.yParity)W[0]|=128;return C0(W)}get compactSerialized(){return G8([this.r,this.yParityAndS])}get serialized(){return G8([this.r,this.s,this.yParity?"0x1c":"0x1b"])}constructor(W,X,G,Y){o4(W,YJ,"Signature"),this.#W=X,this.#X=G,this.#G=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 T8(YJ,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 X=p1(W,"v");if(X==Y_||X==J_)return W_;return a(X>=nH,"invalid EIP-155 v","v",W),(X-nH)/G_}static getChainIdV(W,X){return p1(W)*G_+BigInt(35+X-27)}static getNormalizedV(W){let X=p1(W);if(X===W_||X===Y_)return 27;if(X===X_||X===J_)return 28;return a(X>=nH,"invalid v","v",W),X&X_?27:28}static from(W){function X(Q,N){a(Q,N,"signature",W)}if(W==null)return new T8(YJ,oH,oH,27);if(typeof W==="string"){let Q=E0(W,"signature");if(Q.length===64){let N=C0(Q.slice(0,32)),q=Q.slice(32,64),A=q[0]&128?28:27;return q[0]&=127,new T8(YJ,N,C0(q),A)}if(Q.length===65){let N=C0(Q.slice(0,32)),q=C0(Q.slice(32,64)),A=T8.getNormalizedV(Q[64]);return new T8(YJ,N,q,A)}X(!1,"invalid raw signature length")}if(W instanceof T8)return W.clone();let G=W.r;X(G!=null,"missing r");let Y=Z_(G),J=function(Q,N){if(Q!=null)return Z_(Q);if(N!=null){X(L9(N,32),"invalid yParityAndS");let q=E0(N);return q[0]&=127,C0(q)}X(!1,"missing s")}(W.s,W.yParityAndS),{networkV:Z,v:V}=function(Q,N,q){if(Q!=null){let A=p1(Q);return{networkV:A>=nH?A:void 0,v:T8.getNormalizedV(A)}}if(N!=null)return X(L9(N,32),"invalid yParityAndS"),{v:E0(N)[0]&128?28:27};if(q!=null){switch(s8(q,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}X(!1,"invalid yParity")}X(!1,"missing v")}(W.v,W.yParityAndS,W.yParity),U=new T8(YJ,Y,J,V);if(Z)U.#Y=Z;return X(W.yParity==null||s8(W.yParity,"sig.yParity")===U.yParity,"yParity mismatch"),X(W.yParityAndS==null||W.yParityAndS===U.yParityAndS,"yParityAndS mismatch"),U}}class i8{#W;constructor(W){a(n4(W)===32,"invalid private key","privateKey","[REDACTED]"),this.#W=C0(W)}get privateKey(){return this.#W}get publicKey(){return i8.computePublicKey(this.#W)}get compressedPublicKey(){return i8.computePublicKey(this.#W,!0)}sign(W){a(n4(W)===32,"invalid digest length","digest",W);let X=s4.sign(U7(W),U7(this.#W),{lowS:!0});return T8.from({r:Q7(X.r,32),s:Q7(X.s,32),v:X.recovery?28:27})}computeSharedSecret(W){let X=i8.computePublicKey(W);return C0(s4.getSharedSecret(U7(this.#W),E0(X),!1))}static computePublicKey(W,X){let G=E0(W,"key");if(G.length===32){let J=s4.getPublicKey(G,!!X);return C0(J)}if(G.length===64){let J=new Uint8Array(65);J[0]=4,J.set(G,1),G=J}let Y=s4.ProjectivePoint.fromHex(G);return C0(Y.toRawBytes(X))}static recoverPublicKey(W,X){a(n4(W)===32,"invalid digest length","digest",W);let G=T8.from(X),Y=s4.Signature.fromCompact(U7(G8([G.r,G.s])));Y=Y.addRecoveryBit(G.yParity);let J=Y.recoverPublicKey(U7(W));return a(J!=null,"invalid signature for digest","signature",X),"0x"+J.toHex(!1)}static addPoints(W,X,G){let Y=s4.ProjectivePoint.fromHex(i8.computePublicKey(W).substring(2)),J=s4.ProjectivePoint.fromHex(i8.computePublicKey(X).substring(2));return"0x"+Y.add(J).toHex(!!G)}}var Os=BigInt(0),Ds=BigInt(36);function V_(W){W=W.toLowerCase();let X=W.substring(2).split(""),G=new Uint8Array(40);for(let J=0;J<40;J++)G[J]=X[J].charCodeAt(0);let Y=E0(U8(G));for(let J=0;J<40;J+=2){if(Y[J>>1]>>4>=8)X[J]=X[J].toUpperCase();if((Y[J>>1]&15)>=8)X[J+1]=X[J+1].toUpperCase()}return"0x"+X.join("")}var hO={};for(let W=0;W<10;W++)hO[String(W)]=String(W);for(let W=0;W<26;W++)hO[String.fromCharCode(65+W)]=String(10+W);var U_=15;function Cs(W){W=W.toUpperCase(),W=W.substring(4)+W.substring(0,2)+"00";let X=W.split("").map((Y)=>{return hO[Y]}).join("");while(X.length>=U_){let Y=X.substring(0,U_);X=parseInt(Y,10)%97+X.substring(Y.length)}let G=String(98-parseInt(X,10)%97);while(G.length<2)G="0"+G;return G}var Ts=function(){let W={};for(let X=0;X<36;X++){let G="0123456789abcdefghijklmnopqrstuvwxyz"[X];W[G]=BigInt(X)}return W}();function Ms(W){W=W.toLowerCase();let X=Os;for(let G=0;G<W.length;G++)X=X*Ds+Ts[W[G]];return X}function b1(W){if(a(typeof W==="string","invalid address","address",W),W.match(/^(0x)?[0-9a-fA-F]{40}$/)){if(!W.startsWith("0x"))W="0x"+W;let X=V_(W);return a(!W.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||X===W,"bad address checksum","address",W),X}if(W.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){a(W.substring(2,4)===Cs(W),"bad icap checksum","address",W);let X=Ms(W.substring(4)).toString(16);while(X.length<40)X="0"+X;return V_("0x"+X)}a(!1,"invalid address","address",W)}function mO(W){return W&&typeof W.getAddress==="function"}async function bO(W,X){let G=await X;if(G==null||G==="0x0000000000000000000000000000000000000000")Y1(typeof W!=="string","unconfigured name","UNCONFIGURED_NAME",{value:W}),a(!1,"invalid AddressLike value; did not resolve to a value address","target",W);return b1(G)}function t4(W,X){if(typeof W==="string"){if(W.match(/^0x[0-9a-f]{40}$/i))return b1(W);return Y1(X!=null,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),bO(W,X.resolveName(W))}else if(mO(W))return bO(W,W.getAddress());else if(W&&typeof W.then==="function")return bO(W,W);a(!1,"unsupported addressable value","target",W)}function fO(W,X){return{address:b1(W),storageKeys:X.map((G,Y)=>{return a(L9(G,32),"invalid slot",`storageKeys[${Y}]`,G),G.toLowerCase()})}}function vX(W){if(Array.isArray(W))return W.map((G,Y)=>{if(Array.isArray(G))return a(G.length===2,"invalid slot set",`value[${Y}]`,G),fO(G[0],G[1]);return a(G!=null&&typeof G==="object","invalid address-slot set","value",W),fO(G.address,G.storageKeys)});a(W!=null&&typeof W==="object","invalid access list","value",W);let X=Object.keys(W).map((G)=>{let Y=W[G].reduce((J,Z)=>{return J[Z]=!0,J},{});return fO(G,Object.keys(Y).sort())});return X.sort((G,Y)=>G.address.localeCompare(Y.address)),X}function Q_(W){return{address:b1(W.address),nonce:p1(W.nonce!=null?W.nonce:0),chainId:p1(W.chainId!=null?W.chainId:0),signature:T8.from(W.signature)}}function e4(W){let X;if(typeof W==="string")X=i8.computePublicKey(W,!1);else X=W.publicKey;return b1(U8("0x"+X.substring(4)).substring(26))}function TU(W,X){return e4(i8.recoverPublicKey(W,X))}var t8=BigInt(0),Ls=BigInt(2),Bs=BigInt(27),Es=BigInt(28),$s=BigInt(35),Fs=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),pO=131072;function Ss(W){return{blobToKzgCommitment:(Y)=>{if("computeBlobProof"in W){if("blobToKzgCommitment"in W&&typeof W.blobToKzgCommitment==="function")return E0(W.blobToKzgCommitment(C0(Y)))}else if("blobToKzgCommitment"in W&&typeof W.blobToKzgCommitment==="function")return E0(W.blobToKzgCommitment(Y));if("blobToKZGCommitment"in W&&typeof W.blobToKZGCommitment==="function")return E0(W.blobToKZGCommitment(C0(Y)));a(!1,"unsupported KZG library","kzg",W)},computeBlobKzgProof:(Y,J)=>{if("computeBlobProof"in W&&typeof W.computeBlobProof==="function")return E0(W.computeBlobProof(C0(Y),C0(J)));if("computeBlobKzgProof"in W&&typeof W.computeBlobKzgProof==="function")return W.computeBlobKzgProof(Y,J);if("computeBlobKZGProof"in W&&typeof W.computeBlobKZGProof==="function")return E0(W.computeBlobKZGProof(C0(Y),C0(J)));a(!1,"unsupported KZG library","kzg",W)}}}function N_(W,X){let G=W.toString(16);while(G.length<2)G="0"+G;return G+=E9(X).substring(4),"0x"+G}function JJ(W){if(W==="0x")return null;return b1(W)}function iH(W,X){try{return vX(W)}catch(G){a(!1,G.message,X,W)}}function xs(W,X){try{if(!Array.isArray(W))throw Error("authorizationList: invalid array");let G=[];for(let Y=0;Y<W.length;Y++){let J=W[Y];if(!Array.isArray(J))throw Error(`authorization[${Y}]: invalid array`);if(J.length!==6)throw Error(`authorization[${Y}]: wrong length`);if(!J[1])throw Error(`authorization[${Y}]: null address`);G.push({address:JJ(J[1]),nonce:Q8(J[2],"nonce"),chainId:Q8(J[0],"chainId"),signature:T8.from({yParity:gX(J[3],"yParity"),r:z5(J[4],32),s:z5(J[5],32)})})}return G}catch(G){a(!1,G.message,X,W)}}function gX(W,X){if(W==="0x")return 0;return s8(W,X)}function Q8(W,X){if(W==="0x")return t8;let G=p1(W,X);return a(G<=Fs,"value exceeds uint size",X,G),G}function c1(W,X){let G=p1(W,"value"),Y=z8(G);return a(Y.length<=32,"value too large",`tx.${X}`,G),Y}function rH(W){return vX(W).map((X)=>[X.address,X.storageKeys])}function ks(W){return W.map((X)=>{return[c1(X.chainId,"chainId"),X.address,c1(X.nonce,"nonce"),c1(X.signature.yParity,"yParity"),z8(X.signature.r),z8(X.signature.s)]})}function _s(W,X){a(Array.isArray(W),`invalid ${X}`,"value",W);for(let G=0;G<W.length;G++)a(L9(W[G],32),"invalid ${ param } hash",`value[${G}]`,W[G]);return W}function ys(W){let X=XW(W);a(Array.isArray(X)&&(X.length===9||X.length===6),"invalid field count for legacy transaction","data",W);let G={type:0,nonce:gX(X[0],"nonce"),gasPrice:Q8(X[1],"gasPrice"),gasLimit:Q8(X[2],"gasLimit"),to:JJ(X[3]),value:Q8(X[4],"value"),data:C0(X[5]),chainId:t8};if(X.length===6)return G;let Y=Q8(X[6],"v"),J=Q8(X[7],"r"),Z=Q8(X[8],"s");if(J===t8&&Z===t8)G.chainId=Y;else{let V=(Y-$s)/Ls;if(V<t8)V=t8;G.chainId=V,a(V!==t8||(Y===Bs||Y===Es),"non-canonical legacy v","v",X[6]),G.signature=T8.from({r:z5(X[7],32),s:z5(X[8],32),v:Y})}return G}function vs(W,X){let G=[c1(W.nonce,"nonce"),c1(W.gasPrice||0,"gasPrice"),c1(W.gasLimit,"gasLimit"),W.to||"0x",c1(W.value,"value"),W.data],Y=t8;if(W.chainId!=t8)Y=p1(W.chainId,"tx.chainId"),a(!X||X.networkV==null||X.legacyChainId===Y,"tx.chainId/sig.v mismatch","sig",X);else if(W.signature){let Z=W.signature.legacyChainId;if(Z!=null)Y=Z}if(!X){if(Y!==t8)G.push(z8(Y)),G.push("0x"),G.push("0x");return F5(G)}let J=BigInt(27+X.yParity);if(Y!==t8)J=T8.getChainIdV(Y,X.v);else if(BigInt(X.v)!==J)a(!1,"tx.chainId/sig.v mismatch","sig",X);return G.push(z8(J)),G.push(z8(X.r)),G.push(z8(X.s)),F5(G)}function aH(W,X){let G;try{if(G=gX(X[0],"yParity"),G!==0&&G!==1)throw Error("bad yParity")}catch(V){a(!1,"invalid yParity","yParity",X[0])}let Y=z5(X[1],32),J=z5(X[2],32),Z=T8.from({r:Y,s:J,yParity:G});W.signature=Z}function gs(W){let X=XW(E0(W).slice(1));a(Array.isArray(X)&&(X.length===9||X.length===12),"invalid field count for transaction type: 2","data",C0(W));let G={type:2,chainId:Q8(X[0],"chainId"),nonce:gX(X[1],"nonce"),maxPriorityFeePerGas:Q8(X[2],"maxPriorityFeePerGas"),maxFeePerGas:Q8(X[3],"maxFeePerGas"),gasPrice:null,gasLimit:Q8(X[4],"gasLimit"),to:JJ(X[5]),value:Q8(X[6],"value"),data:C0(X[7]),accessList:iH(X[8],"accessList")};if(X.length===9)return G;return aH(G,X.slice(9)),G}function us(W,X){let G=[c1(W.chainId,"chainId"),c1(W.nonce,"nonce"),c1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),c1(W.maxFeePerGas||0,"maxFeePerGas"),c1(W.gasLimit,"gasLimit"),W.to||"0x",c1(W.value,"value"),W.data,rH(W.accessList||[])];if(X)G.push(c1(X.yParity,"yParity")),G.push(z8(X.r)),G.push(z8(X.s));return G8(["0x02",F5(G)])}function hs(W){let X=XW(E0(W).slice(1));a(Array.isArray(X)&&(X.length===8||X.length===11),"invalid field count for transaction type: 1","data",C0(W));let G={type:1,chainId:Q8(X[0],"chainId"),nonce:gX(X[1],"nonce"),gasPrice:Q8(X[2],"gasPrice"),gasLimit:Q8(X[3],"gasLimit"),to:JJ(X[4]),value:Q8(X[5],"value"),data:C0(X[6]),accessList:iH(X[7],"accessList")};if(X.length===8)return G;return aH(G,X.slice(8)),G}function bs(W,X){let G=[c1(W.chainId,"chainId"),c1(W.nonce,"nonce"),c1(W.gasPrice||0,"gasPrice"),c1(W.gasLimit,"gasLimit"),W.to||"0x",c1(W.value,"value"),W.data,rH(W.accessList||[])];if(X)G.push(c1(X.yParity,"recoveryParam")),G.push(z8(X.r)),G.push(z8(X.s));return G8(["0x01",F5(G)])}function ms(W){let X=XW(E0(W).slice(1)),G="3",Y=null;if(X.length===4&&Array.isArray(X[0])){G="3 (network format)";let Z=X[1],V=X[2],U=X[3];a(Array.isArray(Z),"invalid network format: blobs not an array","fields[1]",Z),a(Array.isArray(V),"invalid network format: commitments not an array","fields[2]",V),a(Array.isArray(U),"invalid network format: proofs not an array","fields[3]",U),a(Z.length===V.length,"invalid network format: blobs/commitments length mismatch","fields",X),a(Z.length===U.length,"invalid network format: blobs/proofs length mismatch","fields",X),Y=[];for(let Q=0;Q<X[1].length;Q++)Y.push({data:Z[Q],commitment:V[Q],proof:U[Q]});X=X[0]}a(Array.isArray(X)&&(X.length===11||X.length===14),`invalid field count for transaction type: ${G}`,"data",C0(W));let J={type:3,chainId:Q8(X[0],"chainId"),nonce:gX(X[1],"nonce"),maxPriorityFeePerGas:Q8(X[2],"maxPriorityFeePerGas"),maxFeePerGas:Q8(X[3],"maxFeePerGas"),gasPrice:null,gasLimit:Q8(X[4],"gasLimit"),to:JJ(X[5]),value:Q8(X[6],"value"),data:C0(X[7]),accessList:iH(X[8],"accessList"),maxFeePerBlobGas:Q8(X[9],"maxFeePerBlobGas"),blobVersionedHashes:X[10]};if(Y)J.blobs=Y;a(J.to!=null,`invalid address for transaction type: ${G}`,"data",W),a(Array.isArray(J.blobVersionedHashes),"invalid blobVersionedHashes: must be an array","data",W);for(let Z=0;Z<J.blobVersionedHashes.length;Z++)a(L9(J.blobVersionedHashes[Z],32),`invalid blobVersionedHash at index ${Z}: must be length 32`,"data",W);if(X.length===11)return J;return aH(J,X.slice(11)),J}function fs(W,X,G){let Y=[c1(W.chainId,"chainId"),c1(W.nonce,"nonce"),c1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),c1(W.maxFeePerGas||0,"maxFeePerGas"),c1(W.gasLimit,"gasLimit"),W.to||gO,c1(W.value,"value"),W.data,rH(W.accessList||[]),c1(W.maxFeePerBlobGas||0,"maxFeePerBlobGas"),_s(W.blobVersionedHashes||[],"blobVersionedHashes")];if(X){if(Y.push(c1(X.yParity,"yParity")),Y.push(z8(X.r)),Y.push(z8(X.s)),G)return G8(["0x03",F5([Y,G.map((J)=>J.data),G.map((J)=>J.commitment),G.map((J)=>J.proof)])])}return G8(["0x03",F5(Y)])}function ps(W){let X=XW(E0(W).slice(1));a(Array.isArray(X)&&(X.length===10||X.length===13),"invalid field count for transaction type: 4","data",C0(W));let G={type:4,chainId:Q8(X[0],"chainId"),nonce:gX(X[1],"nonce"),maxPriorityFeePerGas:Q8(X[2],"maxPriorityFeePerGas"),maxFeePerGas:Q8(X[3],"maxFeePerGas"),gasPrice:null,gasLimit:Q8(X[4],"gasLimit"),to:JJ(X[5]),value:Q8(X[6],"value"),data:C0(X[7]),accessList:iH(X[8],"accessList"),authorizationList:xs(X[9],"authorizationList")};if(X.length===10)return G;return aH(G,X.slice(10)),G}function cs(W,X){let G=[c1(W.chainId,"chainId"),c1(W.nonce,"nonce"),c1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),c1(W.maxFeePerGas||0,"maxFeePerGas"),c1(W.gasLimit,"gasLimit"),W.to||"0x",c1(W.value,"value"),W.data,rH(W.accessList||[]),ks(W.authorizationList||[])];if(X)G.push(c1(X.yParity,"yParity")),G.push(z8(X.r)),G.push(z8(X.s));return G8(["0x04",F5(G)])}class e9{#W;#X;#G;#Y;#Q;#N;#q;#H;#A;#z;#I;#w;#U;#Z;#J;#V;#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:a(!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.#X;if(W==null&&this.type===3)return gO;return W}set to(W){this.#X=W==null?null:b1(W)}get nonce(){return this.#Y}set nonce(W){this.#Y=s8(W,"value")}get gasLimit(){return this.#Q}set gasLimit(W){this.#Q=p1(W)}get gasPrice(){let W=this.#N;if(W==null&&(this.type===0||this.type===1))return t8;return W}set gasPrice(W){this.#N=W==null?null:p1(W,"gasPrice")}get maxPriorityFeePerGas(){let W=this.#q;if(W==null){if(this.type===2||this.type===3)return t8;return null}return W}set maxPriorityFeePerGas(W){this.#q=W==null?null:p1(W,"maxPriorityFeePerGas")}get maxFeePerGas(){let W=this.#H;if(W==null){if(this.type===2||this.type===3)return t8;return null}return W}set maxFeePerGas(W){this.#H=W==null?null:p1(W,"maxFeePerGas")}get data(){return this.#G}set data(W){this.#G=C0(W)}get value(){return this.#A}set value(W){this.#A=p1(W,"value")}get chainId(){return this.#z}set chainId(W){this.#z=p1(W)}get signature(){return this.#I||null}set signature(W){this.#I=W==null?null:T8.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:vX(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((X)=>Q_(X))}get maxFeePerBlobGas(){let W=this.#U;if(W==null&&this.type===3)return t8;return W}set maxFeePerBlobGas(W){this.#U=W==null?null:p1(W,"maxFeePerBlobGas")}get blobVersionedHashes(){let W=this.#Z;if(W==null&&this.type===3)return[];return W}set blobVersionedHashes(W){if(W!=null){a(Array.isArray(W),"blobVersionedHashes must be an Array","value",W),W=W.slice();for(let X=0;X<W.length;X++)a(L9(W[X],32),"invalid blobVersionedHash",`value[${X}]`,W[X])}this.#Z=W}get blobs(){if(this.#V==null)return null;return this.#V.map((W)=>Object.assign({},W))}set blobs(W){if(W==null){this.#V=null;return}let X=[],G=[];for(let Y=0;Y<W.length;Y++){let J=W[Y];if(i7(J)){Y1(this.#J,"adding a raw blob requires a KZG library","UNSUPPORTED_OPERATION",{operation:"set blobs()"});let Z=E0(J);if(a(Z.length<=pO,"blob is too large",`blobs[${Y}]`,J),Z.length!==pO){let Q=new Uint8Array(pO);Q.set(Z),Z=Q}let V=this.#J.blobToKzgCommitment(Z),U=C0(this.#J.computeBlobKzgProof(Z,V));X.push({data:C0(Z),commitment:C0(V),proof:U}),G.push(N_(1,V))}else{let Z=C0(J.commitment);X.push({data:C0(J.data),commitment:Z,proof:C0(J.proof)}),G.push(N_(1,Z))}}this.#V=X,this.#Z=G}get kzg(){return this.#J}set kzg(W){if(W==null)this.#J=null;else this.#J=Ss(W)}constructor(){this.#W=null,this.#X=null,this.#Y=0,this.#Q=t8,this.#N=null,this.#q=null,this.#H=null,this.#G="0x",this.#A=t8,this.#z=t8,this.#I=null,this.#w=null,this.#U=null,this.#Z=null,this.#J=null,this.#V=null,this.#j=null}get hash(){if(this.signature==null)return null;return U8(this.#K(!0,!1))}get unsignedHash(){return U8(this.unsignedSerialized)}get from(){if(this.signature==null)return null;return TU(this.unsignedHash,this.signature)}get fromPublicKey(){if(this.signature==null)return null;return i8.recoverPublicKey(this.unsignedHash,this.signature)}isSigned(){return this.signature!=null}#K(W,X){Y1(!W||this.signature!=null,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"});let G=W?this.signature:null;switch(this.inferType()){case 0:return vs(this,G);case 1:return bs(this,G);case 2:return us(this,G);case 3:return fs(this,G,X?this.blobs:null);case 4:return cs(this,G)}Y1(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})}get serialized(){return this.#K(!0,!0)}get unsignedSerialized(){return this.#K(!1,!1)}inferType(){let W=this.inferTypes();if(W.indexOf(2)>=0)return 2;return W.pop()}inferTypes(){let W=this.gasPrice!=null,X=this.maxFeePerGas!=null||this.maxPriorityFeePerGas!=null,G=this.accessList!=null,Y=this.#U!=null||this.#Z;if(this.maxFeePerGas!=null&&this.maxPriorityFeePerGas!=null)Y1(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this});Y1(!X||this.type!==0&&this.type!==1,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),Y1(this.type!==0||!G,"legacy transaction cannot have accessList","BAD_DATA",{value:this});let J=[];if(this.type!=null)J.push(this.type);else if(this.authorizationList&&this.authorizationList.length)J.push(4);else if(X)J.push(2);else if(W){if(J.push(1),!G)J.push(0)}else if(G)J.push(1),J.push(2);else if(Y&&this.to)J.push(3);else J.push(0),J.push(1),J.push(2),J.push(3);return J.sort(),J}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}clone(){return e9.from(this)}toJSON(){let W=(X)=>{if(X==null)return null;return X.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 e9;if(typeof W==="string"){let G=E0(W);if(G[0]>=127)return e9.from(ys(G));switch(G[0]){case 1:return e9.from(hs(G));case 2:return e9.from(gs(G));case 3:return e9.from(ms(G));case 4:return e9.from(ps(G))}Y1(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}let X=new e9;if(W.type!=null)X.type=W.type;if(W.to!=null)X.to=W.to;if(W.nonce!=null)X.nonce=W.nonce;if(W.gasLimit!=null)X.gasLimit=W.gasLimit;if(W.gasPrice!=null)X.gasPrice=W.gasPrice;if(W.maxPriorityFeePerGas!=null)X.maxPriorityFeePerGas=W.maxPriorityFeePerGas;if(W.maxFeePerGas!=null)X.maxFeePerGas=W.maxFeePerGas;if(W.maxFeePerBlobGas!=null)X.maxFeePerBlobGas=W.maxFeePerBlobGas;if(W.data!=null)X.data=W.data;if(W.value!=null)X.value=W.value;if(W.chainId!=null)X.chainId=W.chainId;if(W.signature!=null)X.signature=T8.from(W.signature);if(W.accessList!=null)X.accessList=W.accessList;if(W.authorizationList!=null)X.authorizationList=W.authorizationList;if(W.blobVersionedHashes!=null)X.blobVersionedHashes=W.blobVersionedHashes;if(W.kzg!=null)X.kzg=W.kzg;if(W.blobs!=null)X.blobs=W.blobs;if(W.hash!=null)a(X.isSigned(),"unsigned transaction cannot define '.hash'","tx",W),a(X.hash===W.hash,"hash mismatch","tx",W);if(W.from!=null)a(X.isSigned(),"unsigned transaction cannot define '.from'","tx",W),a(X.from.toLowerCase()===(W.from||"").toLowerCase(),"from mismatch","tx",W);return X}}function sH(W){return a(typeof W.address==="string","invalid address for hashAuthorization","auth.address",W),U8(G8(["0x05",F5([W.chainId!=null?z8(W.chainId):"0x",b1(W.address),W.nonce!=null?z8(W.nonce):"0x"])]))}function W6(W){return U8(Q9(W))}function MU(W){if(typeof W==="string")W=Q9(W);return U8(G8([Q9(uO),Q9(String(W.length)),W]))}function PU(W,X){let G=MU(W);return TU(G,X)}var z_=new Uint8Array(32);z_.fill(0);var ls=BigInt(-1),I_=BigInt(0),w_=BigInt(1),ds=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function os(W){let X=E0(W),G=X.length%32;if(G)return G8([X,z_.slice(G)]);return C0(X)}var ns=Q7(w_,32),is=Q7(I_,32),q_={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},cO=["name","version","chainId","verifyingContract","salt"];function H_(W){return function(X){return a(typeof X==="string",`invalid domain value for ${JSON.stringify(W)}`,`domain.${W}`,X),X}}var rs={name:H_("name"),version:H_("version"),chainId:function(W){let X=p1(W,"domain.chainId");if(a(X>=0,"invalid chain ID","domain.chainId",W),Number.isSafeInteger(X))return Number(X);return BH(X)},verifyingContract:function(W){try{return b1(W).toLowerCase()}catch(X){}a(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",W)},salt:function(W){let X=E0(W,"domain.salt");return a(X.length===32,'invalid domain value "salt"',"domain.salt",W),C0(X)}};function lO(W){{let X=W.match(/^(u?)int(\d+)$/);if(X){let G=X[1]==="",Y=parseInt(X[2]);a(Y%8===0&&Y!==0&&Y<=256&&X[2]===String(Y),"invalid numeric width","type",W);let J=LH(ds,G?Y-1:Y),Z=G?(J+w_)*ls:I_;return function(V){let U=p1(V,"value");return a(U>=Z&&U<=J,`value out-of-bounds for ${W}`,"value",U),Q7(G?RH(U,256):U,32)}}}{let X=W.match(/^bytes(\d+)$/);if(X){let G=parseInt(X[1]);return a(G!==0&&G<=32&&X[1]===String(G),"invalid bytes width","type",W),function(Y){let J=E0(Y);return a(J.length===G,`invalid length for ${W}`,"value",Y),os(Y)}}}switch(W){case"address":return function(X){return z5(b1(X),32)};case"bool":return function(X){return!X?is:ns};case"bytes":return function(X){return U8(X)};case"string":return function(X){return W6(X)}}return null}function A_(W,X){return`${W}(${X.map(({name:G,type:Y})=>Y+" "+G).join(",")})`}function tH(W){let X=W.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);if(X)return{base:X[1],index:X[2]+X[4],array:{base:X[1],prefix:X[1]+X[2],count:X[5]?parseInt(X[5]):-1}};return{base:W}}class F9{primaryType;#W;get types(){return JSON.parse(this.#W)}#X;#G;constructor(W){this.#X=new Map,this.#G=new Map;let X=new Map,G=new Map,Y=new Map,J={};Object.keys(W).forEach((U)=>{J[U]=W[U].map(({name:Q,type:N})=>{let{base:q,index:A}=tH(N);if(q==="int"&&!W.int)q="int256";if(q==="uint"&&!W.uint)q="uint256";return{name:Q,type:q+(A||"")}}),X.set(U,new Set),G.set(U,[]),Y.set(U,new Set)}),this.#W=JSON.stringify(J);for(let U in J){let Q=new Set;for(let N of J[U]){a(!Q.has(N.name),`duplicate variable name ${JSON.stringify(N.name)} in ${JSON.stringify(U)}`,"types",W),Q.add(N.name);let q=tH(N.type).base;if(a(q!==U,`circular type reference to ${JSON.stringify(q)}`,"types",W),lO(q))continue;a(G.has(q),`unknown type ${JSON.stringify(q)}`,"types",W),G.get(q).push(U),X.get(U).add(q)}}let Z=Array.from(G.keys()).filter((U)=>G.get(U).length===0);a(Z.length!==0,"missing primary type","types",W),a(Z.length===1,`ambiguous primary types or unused types: ${Z.map((U)=>JSON.stringify(U)).join(", ")}`,"types",W),A8(this,{primaryType:Z[0]});function V(U,Q){a(!Q.has(U),`circular type reference to ${JSON.stringify(U)}`,"types",W),Q.add(U);for(let N of X.get(U)){if(!G.has(N))continue;V(N,Q);for(let q of Q)Y.get(q).add(N)}Q.delete(U)}V(this.primaryType,new Set);for(let[U,Q]of Y){let N=Array.from(Q);N.sort(),this.#X.set(U,A_(U,J[U])+N.map((q)=>A_(q,J[q])).join(""))}}getEncoder(W){let X=this.#G.get(W);if(!X)X=this.#Y(W),this.#G.set(W,X);return X}#Y(W){{let Y=lO(W);if(Y)return Y}let X=tH(W).array;if(X){let Y=X.prefix,J=this.getEncoder(Y);return(Z)=>{a(X.count===-1||X.count===Z.length,`array length mismatch; expected length ${X.count}`,"value",Z);let V=Z.map(J);if(this.#X.has(Y))V=V.map(U8);return U8(G8(V))}}let G=this.types[W];if(G){let Y=W6(this.#X.get(W));return(J)=>{let Z=G.map(({name:V,type:U})=>{let Q=this.getEncoder(U)(J[V]);if(this.#X.has(U))return U8(Q);return Q});return Z.unshift(Y),G8(Z)}}a(!1,`unknown type: ${W}`,"type",W)}encodeType(W){let X=this.#X.get(W);return a(X,`unknown type: ${JSON.stringify(W)}`,"name",W),X}encodeData(W,X){return this.getEncoder(W)(X)}hashStruct(W,X){return U8(this.encodeData(W,X))}encode(W){return this.encodeData(this.primaryType,W)}hash(W){return this.hashStruct(this.primaryType,W)}_visit(W,X,G){if(lO(W))return G(W,X);let Y=tH(W).array;if(Y)return a(Y.count===-1||Y.count===X.length,`array length mismatch; expected length ${Y.count}`,"value",X),X.map((Z)=>this._visit(Y.prefix,Z,G));let J=this.types[W];if(J)return J.reduce((Z,{name:V,type:U})=>{return Z[V]=this._visit(U,X[V],G),Z},{});a(!1,`unknown type: ${W}`,"type",W)}visit(W,X){return this._visit(this.primaryType,W,X)}static from(W){return new F9(W)}static getPrimaryType(W){return F9.from(W).primaryType}static hashStruct(W,X,G){return F9.from(X).hashStruct(W,G)}static hashDomain(W){let X=[];for(let G in W){if(W[G]==null)continue;let Y=q_[G];a(Y,`invalid typed-data domain key: ${JSON.stringify(G)}`,"domain",W),X.push({name:G,type:Y})}return X.sort((G,Y)=>{return cO.indexOf(G.name)-cO.indexOf(Y.name)}),F9.hashStruct("EIP712Domain",{EIP712Domain:X},W)}static encode(W,X,G){return G8(["0x1901",F9.hashDomain(W),F9.from(X).hash(G)])}static hash(W,X,G){return U8(F9.encode(W,X,G))}static async resolveNames(W,X,G,Y){W=Object.assign({},W);for(let V in W)if(W[V]==null)delete W[V];let J={};if(W.verifyingContract&&!L9(W.verifyingContract,20))J[W.verifyingContract]="0x";let Z=F9.from(X);Z.visit(G,(V,U)=>{if(V==="address"&&!L9(U,20))J[U]="0x";return U});for(let V in J)J[V]=await Y(V);if(W.verifyingContract&&J[W.verifyingContract])W.verifyingContract=J[W.verifyingContract];return G=Z.visit(G,(V,U)=>{if(V==="address"&&J[U])return J[U];return U}),{domain:W,value:G}}static getPayload(W,X,G){F9.hashDomain(W);let Y={},J=[];cO.forEach((U)=>{let Q=W[U];if(Q==null)return;Y[U]=rs[U](Q),J.push({name:U,type:q_[U]})});let Z=F9.from(X);X=Z.types;let V=Object.assign({},X);return a(V.EIP712Domain==null,"types must not contain EIP712Domain type","types.EIP712Domain",X),V.EIP712Domain=J,Z.encode(G),{types:V,domain:Y,primaryType:Z.primaryType,message:Z.visit(G,(U,Q)=>{if(U.match(/^bytes(\d*)/))return C0(E0(Q));if(U.match(/^u?int/))return p1(Q).toString();switch(U){case"address":return Q.toLowerCase();case"bool":return!!Q;case"string":return a(typeof Q==="string","invalid string","value",Q),Q}a(!1,"unsupported type","type",U)})}}}var j_=BigInt(0);function dO(W){if(W==null)return null;return W}function e8(W){if(W==null)return null;return W.toString()}function RU(W){let X={};if(W.to)X.to=W.to;if(W.from)X.from=W.from;if(W.data)X.data=C0(W.data);let G="chainId,gasLimit,gasPrice,maxFeePerBlobGas,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(let J of G){if(!(J in W)||W[J]==null)continue;X[J]=p1(W[J],`request.${J}`)}let Y="type,nonce".split(/,/);for(let J of Y){if(!(J in W)||W[J]==null)continue;X[J]=s8(W[J],`request.${J}`)}if(W.accessList)X.accessList=vX(W.accessList);if(W.authorizationList)X.authorizationList=W.authorizationList.slice();if("blockTag"in W)X.blockTag=W.blockTag;if("enableCcipRead"in W)X.enableCcipRead=!!W.enableCcipRead;if("customData"in W)X.customData=W.customData;if("blobVersionedHashes"in W&&W.blobVersionedHashes)X.blobVersionedHashes=W.blobVersionedHashes.slice();if("kzg"in W)X.kzg=W.kzg;if("blobs"in W&&W.blobs)X.blobs=W.blobs.map((J)=>{if(i7(J))return C0(J);return Object.assign({},J)});return X}class K_{provider;number;hash;timestamp;parentHash;parentBeaconBlockRoot;nonce;difficulty;gasLimit;gasUsed;stateRoot;receiptsRoot;blobGasUsed;excessBlobGas;miner;prevRandao;extraData;baseFeePerGas;#W;constructor(W,X){this.#W=W.transactions.map((G)=>{if(typeof G!=="string")return new eH(G,X);return G}),A8(this,{provider:X,hash:dO(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:dO(W.prevRandao),extraData:W.extraData,baseFeePerGas:dO(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 Y1(typeof W[0]==="object","transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),W}toJSON(){let{baseFeePerGas:W,difficulty:X,extraData:G,gasLimit:Y,gasUsed:J,hash:Z,miner:V,prevRandao:U,nonce:Q,number:N,parentHash:q,parentBeaconBlockRoot:A,stateRoot:H,receiptsRoot:I,timestamp:w,transactions:O}=this;return{_type:"Block",baseFeePerGas:e8(W),difficulty:e8(X),extraData:G,gasLimit:e8(Y),gasUsed:e8(J),blobGasUsed:e8(this.blobGasUsed),excessBlobGas:e8(this.excessBlobGas),hash:Z,miner:V,prevRandao:U,nonce:Q,number:N,parentHash:q,timestamp:w,parentBeaconBlockRoot:A,stateRoot:H,receiptsRoot:I,transactions:O}}[Symbol.iterator](){let W=0,X=this.transactions;return{next:()=>{if(W<this.length)return{value:X[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 X=void 0;if(typeof W==="number")X=this.#W[W];else{let G=W.toLowerCase();for(let Y of this.#W)if(typeof Y==="string"){if(Y!==G)continue;X=Y;break}else{if(Y.hash!==G)continue;X=Y;break}}if(X==null)throw Error("no such tx");if(typeof X==="string")return await this.provider.getTransaction(X);else return X}getPrefetchedTransaction(W){let X=this.prefetchedTransactions;if(typeof W==="number")return X[W];W=W.toLowerCase();for(let G of X)if(G.hash===W)return G;a(!1,"no matching transaction","indexOrHash",W)}isMined(){return!!this.hash}isLondon(){return!!this.baseFeePerGas}orphanedEvent(){if(!this.isMined())throw Error("");return ts(this)}}class oO{provider;transactionHash;blockHash;blockNumber;removed;address;data;topics;index;transactionIndex;constructor(W,X){this.provider=X;let G=Object.freeze(W.topics.slice());A8(this,{transactionHash:W.transactionHash,blockHash:W.blockHash,blockNumber:W.blockNumber,removed:W.removed,address:W.address,data:W.data,topics:G,index:W.index,transactionIndex:W.transactionIndex})}toJSON(){let{address:W,blockHash:X,blockNumber:G,data:Y,index:J,removed:Z,topics:V,transactionHash:U,transactionIndex:Q}=this;return{_type:"log",address:W,blockHash:X,blockNumber:G,data:Y,index:J,removed:Z,topics:V,transactionHash:U,transactionIndex:Q}}async getBlock(){let W=await this.provider.getBlock(this.blockHash);return Y1(!!W,"failed to find transaction","UNKNOWN_ERROR",{}),W}async getTransaction(){let W=await this.provider.getTransaction(this.transactionHash);return Y1(!!W,"failed to find transaction","UNKNOWN_ERROR",{}),W}async getTransactionReceipt(){let W=await this.provider.getTransactionReceipt(this.transactionHash);return Y1(!!W,"failed to find transaction receipt","UNKNOWN_ERROR",{}),W}removedEvent(){return es(this)}}class O_{provider;to;from;contractAddress;hash;index;blockHash;blockNumber;logsBloom;gasUsed;blobGasUsed;cumulativeGasUsed;gasPrice;blobGasPrice;type;status;root;#W;constructor(W,X){this.#W=Object.freeze(W.logs.map((Y)=>{return new oO(Y,X)}));let G=j_;if(W.effectiveGasPrice!=null)G=W.effectiveGasPrice;else if(W.gasPrice!=null)G=W.gasPrice;A8(this,{provider:X,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:G,blobGasPrice:W.blobGasPrice,type:W.type,status:W.status,root:W.root})}get logs(){return this.#W}toJSON(){let{to:W,from:X,contractAddress:G,hash:Y,index:J,blockHash:Z,blockNumber:V,logsBloom:U,logs:Q,status:N,root:q}=this;return{_type:"TransactionReceipt",blockHash:Z,blockNumber:V,contractAddress:G,cumulativeGasUsed:e8(this.cumulativeGasUsed),from:X,gasPrice:e8(this.gasPrice),blobGasUsed:e8(this.blobGasUsed),blobGasPrice:e8(this.blobGasPrice),gasUsed:e8(this.gasUsed),hash:Y,index:J,logs:Q,logsBloom:U,root:q,status:N,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 C_(this)}reorderedEvent(W){return Y1(!W||W.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),D_(this,W)}}class eH{provider;blockNumber;blockHash;index;hash;type;to;from;nonce;gasLimit;gasPrice;maxPriorityFeePerGas;maxFeePerGas;maxFeePerBlobGas;data;value;chainId;signature;accessList;blobVersionedHashes;authorizationList;#W;constructor(W,X){this.provider=X,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:X,index:G,hash:Y,type:J,to:Z,from:V,nonce:U,data:Q,signature:N,accessList:q,blobVersionedHashes:A}=this;return{_type:"TransactionResponse",accessList:q,blockNumber:W,blockHash:X,blobVersionedHashes:A,chainId:e8(this.chainId),data:Q,from:V,gasLimit:e8(this.gasLimit),gasPrice:e8(this.gasPrice),hash:Y,maxFeePerGas:e8(this.maxFeePerGas),maxPriorityFeePerGas:e8(this.maxPriorityFeePerGas),maxFeePerBlobGas:e8(this.maxFeePerBlobGas),nonce:U,signature:N,to:Z,index:G,type:J,value:e8(this.value)}}async getBlock(){let W=this.blockNumber;if(W==null){let G=await this.getTransaction();if(G)W=G.blockNumber}if(W==null)return null;let X=this.provider.getBlock(W);if(X==null)throw Error("TODO");return X}async getTransaction(){return this.provider.getTransaction(this.hash)}async confirmations(){if(this.blockNumber==null){let{tx:X,blockNumber:G}=await n7({tx:this.getTransaction(),blockNumber:this.provider.getBlockNumber()});if(X==null||X.blockNumber==null)return 0;return G-X.blockNumber+1}return await this.provider.getBlockNumber()-this.blockNumber+1}async wait(W,X){let G=W==null?1:W,Y=X==null?0:X,J=this.#W,Z=-1,V=J===-1?!0:!1,U=async()=>{if(V)return null;let{blockNumber:A,nonce:H}=await n7({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(H<this.nonce){J=A;return}if(V)return null;let I=await this.getTransaction();if(I&&I.blockNumber!=null)return;if(Z===-1){if(Z=J-3,Z<this.#W)Z=this.#W}while(Z<=A){if(V)return null;let w=await this.provider.getBlock(Z,!0);if(w==null)return;for(let O of w)if(O===this.hash)return;for(let O=0;O<w.length;O++){let T=await w.getTransaction(O);if(T.from===this.from&&T.nonce===this.nonce){if(V)return null;let x=await this.provider.getTransactionReceipt(T.hash);if(x==null)return;if(A-x.blockNumber+1<G)return;let P="replaced";if(T.data===this.data&&T.to===this.to&&T.value===this.value)P="repriced";else if(T.data==="0x"&&T.from===T.to&&T.value===j_)P="cancelled";Y1(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:P==="replaced"||P==="cancelled",reason:P,replacement:T.replaceableTransaction(J),hash:T.hash,receipt:x})}}Z++}return},Q=(A)=>{if(A==null||A.status!==0)return A;Y1(!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})},N=await this.provider.getTransactionReceipt(this.hash);if(G===0)return Q(N);if(N){if(G===1||await N.confirmations()>=G)return Q(N)}else if(await U(),G===0)return null;return await new Promise((A,H)=>{let I=[],w=()=>{I.forEach((T)=>T())};if(I.push(()=>{V=!0}),Y>0){let T=setTimeout(()=>{w(),H(AU("wait for transaction timeout","TIMEOUT"))},Y);I.push(()=>{clearTimeout(T)})}let O=async(T)=>{if(await T.confirmations()>=G){w();try{A(Q(T))}catch(x){H(x)}}};if(I.push(()=>{this.provider.off(this.hash,O)}),this.provider.on(this.hash,O),J>=0){let T=async()=>{try{await U()}catch(x){if(PH(x,"TRANSACTION_REPLACED")){w(),H(x);return}}if(!V)this.provider.once("block",T)};I.push(()=>{this.provider.off("block",T)}),this.provider.once("block",T)}})}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 Y1(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),C_(this)}reorderedEvent(W){return Y1(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),Y1(!W||W.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),D_(this,W)}replaceableTransaction(W){a(Number.isInteger(W)&&W>=0,"invalid startBlock","startBlock",W);let X=new eH(this,this.provider);return X.#W=W,X}}function ts(W){return{orphan:"drop-block",hash:W.hash,number:W.number}}function D_(W,X){return{orphan:"reorder-transaction",tx:W,other:X}}function C_(W){return{orphan:"drop-transaction",tx:W}}function es(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 uX(W,X){if(W.provider)return W.provider;Y1(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:X})}async function T_(W,X){let G=RU(X);if(G.to!=null)G.to=t4(G.to,W);if(G.from!=null){let Y=G.from;G.from=Promise.all([W.getAddress(),t4(Y,W)]).then(([J,Z])=>{return a(J.toLowerCase()===Z.toLowerCase(),"transaction from mismatch","tx.from",Z),J})}else G.from=W.getAddress();return await n7(G)}class LU{provider;constructor(W){A8(this,{provider:W||null})}async getNonce(W){return uX(this,"getTransactionCount").getTransactionCount(await this.getAddress(),W)}async populateCall(W){return await T_(this,W)}async populateTransaction(W){let X=uX(this,"populateTransaction"),G=await T_(this,W);if(G.nonce==null)G.nonce=await this.getNonce("pending");if(G.gasLimit==null)G.gasLimit=await this.estimateGas(G);let Y=await this.provider.getNetwork();if(G.chainId!=null){let Z=p1(G.chainId);a(Z===Y.chainId,"transaction chainId mismatch","tx.chainId",W.chainId)}else G.chainId=Y.chainId;let J=G.maxFeePerGas!=null||G.maxPriorityFeePerGas!=null;if(G.gasPrice!=null&&(G.type===2||J))a(!1,"eip-1559 transaction do not support gasPrice","tx",W);else if((G.type===0||G.type===1)&&J)a(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",W);if((G.type===2||G.type==null)&&(G.maxFeePerGas!=null&&G.maxPriorityFeePerGas!=null))G.type=2;else if(G.type===0||G.type===1){let Z=await X.getFeeData();if(Y1(Z.gasPrice!=null,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),G.gasPrice==null)G.gasPrice=Z.gasPrice}else{let Z=await X.getFeeData();if(G.type==null)if(Z.maxFeePerGas!=null&&Z.maxPriorityFeePerGas!=null){if(G.authorizationList&&G.authorizationList.length)G.type=4;else G.type=2;if(G.gasPrice!=null){let V=G.gasPrice;delete G.gasPrice,G.maxFeePerGas=V,G.maxPriorityFeePerGas=V}else{if(G.maxFeePerGas==null)G.maxFeePerGas=Z.maxFeePerGas;if(G.maxPriorityFeePerGas==null)G.maxPriorityFeePerGas=Z.maxPriorityFeePerGas}}else if(Z.gasPrice!=null){if(Y1(!J,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),G.gasPrice==null)G.gasPrice=Z.gasPrice;G.type=0}else Y1(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else if(G.type===2||G.type===3||G.type===4){if(G.maxFeePerGas==null)G.maxFeePerGas=Z.maxFeePerGas;if(G.maxPriorityFeePerGas==null)G.maxPriorityFeePerGas=Z.maxPriorityFeePerGas}}return await n7(G)}async populateAuthorization(W){let X=Object.assign({},W);if(X.chainId==null)X.chainId=(await uX(this,"getNetwork").getNetwork()).chainId;if(X.nonce==null)X.nonce=await this.getNonce();return X}async estimateGas(W){return uX(this,"estimateGas").estimateGas(await this.populateCall(W))}async call(W){return uX(this,"call").call(await this.populateCall(W))}async resolveName(W){return await uX(this,"resolveName").resolveName(W)}async sendTransaction(W){let X=uX(this,"sendTransaction"),G=await this.populateTransaction(W);delete G.from;let Y=e9.from(G);return await X.broadcastTransaction(await this.signTransaction(Y))}authorize(W){Y1(!1,"authorization not implemented for this signer","UNSUPPORTED_OPERATION",{operation:"authorize"})}}class BU extends LU{address;constructor(W,X){super(X);A8(this,{address:W})}async getAddress(){return this.address}connect(W){return new BU(this.address,W)}#W(W,X){Y1(!1,`VoidSigner cannot sign ${W}`,"UNSUPPORTED_OPERATION",{operation:X})}async signTransaction(W){this.#W("transactions","signTransaction")}async signMessage(W){this.#W("messages","signMessage")}async signTypedData(W,X,G){this.#W("typed-data","signTypedData")}}class hX extends LU{address;#W;constructor(W,X){super(X);a(W&&typeof W.sign==="function","invalid private key","privateKey","[ REDACTED ]"),this.#W=W;let G=e4(this.signingKey.publicKey);A8(this,{address:G})}get signingKey(){return this.#W}get privateKey(){return this.signingKey.privateKey}async getAddress(){return this.address}connect(W){return new hX(this.#W,W)}async signTransaction(W){W=RU(W);let{to:X,from:G}=await n7({to:W.to?t4(W.to,this):void 0,from:W.from?t4(W.from,this):void 0});if(X!=null)W.to=X;if(G!=null)W.from=G;if(W.from!=null)a(b1(W.from)===this.address,"transaction from address mismatch","tx.from",W.from),delete W.from;let Y=e9.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(MU(W)).serialized}authorizeSync(W){a(typeof W.address==="string","invalid address for authorizeSync","auth.address",W);let X=this.signingKey.sign(sH(W));return Object.assign({},{address:b1(W.address),nonce:p1(W.nonce||0),chainId:p1(W.chainId||0)},{signature:X})}async authorize(W){return W=Object.assign({},W,{address:await t4(W.address,this)}),this.authorizeSync(await this.populateAuthorization(W))}async signTypedData(W,X,G){let Y=await F9.resolveNames(W,X,G,async(J)=>{Y1(this.provider!=null,"cannot resolve ENS names without a provider","UNSUPPORTED_OPERATION",{operation:"resolveName",info:{name:J}});let Z=await this.provider.resolveName(J);return Y1(Z!=null,"unconfigured ENS name","UNCONFIGURED_NAME",{value:J}),Z});return this.signingKey.sign(F9.hash(Y.domain,X,Y.value)).serialized}}var WA=" !#$%&'()*+,-./<=>?@[]^_`{|}~",Wt=/^[a-z]*$/i;function M_(W,X){let G=97;return W.reduce((Y,J)=>{if(J===X)G++;else if(J.match(Wt))Y.push(String.fromCharCode(G)+J);else G=97,Y.push(J);return Y},[])}function Xt(W,X){for(let J=WA.length-1;J>=0;J--)W=W.split(WA[J]).join(X.substring(2*J,2*J+2));let G=[],Y=W.replace(/(:|([0-9])|([A-Z][a-z]*))/g,(J,Z,V,U)=>{if(V)for(let Q=parseInt(V);Q>=0;Q--)G.push(";");else G.push(Z.toLowerCase());return""});if(Y)throw Error(`leftovers: ${JSON.stringify(Y)}`);return M_(M_(G,";"),":")}function P_(W){return a(W[0]==="0","unsupported auwl data","data",W),Xt(W.substring(1+2*WA.length),W.substring(1,1+2*WA.length))}class nO{locale;constructor(W){A8(this,{locale:W})}split(W){return W.toLowerCase().split(/\s+/g)}join(W){return W.join(" ")}}class iO extends nO{#W;#X;constructor(W,X,G){super(W);this.#W=X,this.#X=G,this.#G=null}get _data(){return this.#W}_decodeWords(){return P_(this.#W)}#G;#Y(){if(this.#G==null){let W=this._decodeWords();if(W6(W.join(`
|
|
248
|
+
`);return Y.forEach((J)=>{if(J.startsWith("m="))G.push([J]);else if(G.length>0)G[G.length-1].push(J);else X.push(J)}),[X,G]}function OK(W){if(W.includes(":")){let X=f4(W.slice(2),":");return[X[0],X[1]]}else return[W.slice(2),void 0]}function DK(W,X,G=(Y)=>Y.toString()){let Y=X.split(" ");if(Y.length>0)W.push(new oV(Y[0],Y.slice(1).map(G)))}function Ax(W){let X=DX.fromSdp(W);return eV(X)}var vr=class{constructor(W,X){this.sdp=W,this.type=X}static isThis(W){if(typeof W?.sdp==="string")return!0}toSdp(){return{sdp:this.sdp,type:this.type}}};function zS(W,X){let Y=new Eq(ei(64)).toString().slice(0,8),J=0;X.origin=`- ${Y} 0 IN IP4 0.0.0.0`,X.msidSemantic.push(new oV("WMS",["*"])),X.type=W}function HH(W){let X={};return W.split(";").forEach((G)=>{if(G.includes("=")){let[Y,J]=f4(G,"=");if(ki.includes(Y))X[Y]=Number(J);else X[Y]=J}else if(G.includes(":")){let[Y,J]=G.split(":");X[Y]=Number.isNaN(Number(J))?J:Number(J)}else X[G]=void 0}),X}var eK=class{ssrc;cname;msid;msLabel;label;constructor(W){Object.assign(this,W)}},vq=L1("werift:packages/webrtc/src/media/rtpReceiver.ts"),zx=class{constructor(W,X,G){this.config=W,this.kind=X,this.rtcpSsrc=G}codecs={};get codecArray(){return Object.values(this.codecs).sort((W,X)=>W.payloadType-X.payloadType)}ssrcByRtx={};nack=new ii(this);audioRedHandler=new Qn;type="receiver";uuid=Li().toString();tracks=[];trackBySSRC={};trackByRID={};lastSRtimestamp={};receiveLastSRTimestamp={};onPacketLost=this.nack.onPacketLost;onRtcp=new d0;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 hK({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===Ki().type)}get pliEnabled(){return this.codecArray[0]?.rtcpFeedback.find((W)=>W.type===QU().type)}prepareReceive(W){W.codecs.forEach((X)=>{this.codecs[X.payloadType]=X}),W.encodings.forEach((X)=>{if(X.rtx)this.ssrcByRtx[X.rtx.ssrc]=X.ssrc})}setupTWCC(W){if(this.twccEnabled&&!this.receiverTWCC)this.receiverTWCC=new si(this.dtlsTransport,this.rtcpSsrc,W)}addTrack(W){if(this.tracks.find((G)=>{if(G.rid)return G.rid===W.rid;if(G.ssrc)return G.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 wK(500+Math.random()*1000,void 0,{signal:this.rtcpCancel.signal});let W=Object.entries(this.remoteStreams).map(([G,Y])=>{let J=0,Z=0;if(this.lastSRtimestamp[G]){J=this.lastSRtimestamp[G];let V=NH()-this.receiveLastSRTimestamp[G];if(V>0&&V<65536)Z=lV(V*65536)}return new GO({ssrc:Number(G),fractionLost:Y.fraction_lost,packetsLost:Y.packets_lost,highestSequence:Y.max_seq,jitter:Y.jitter,lsr:J,dlsr:Z})}),X=new rV({ssrc:this.rtcpSsrc,reports:W});try{if(this.config.debug.receiverReportDelay)await wK(this.config.debug.receiverReportDelay);await this.dtlsTransport.sendRtcp([X])}catch(G){vq("sendRtcp failed",G),await wK(500+Math.random()*1000)}}}catch(W){}}async getStats(){let W=$X(),X=[];if(!this.dtlsTransport)return X;let G=N8("transport",this.dtlsTransport.id);for(let Y of this.tracks){if(!Y.ssrc)continue;let J=this.remoteStreams[Y.ssrc];if(!J)continue;let Z={type:"inbound-rtp",id:N8("inbound-rtp",Y.ssrc),timestamp:W,ssrc:Y.ssrc,kind:this.kind,transportId:G,codecId:this.codecs[0]?N8("codec",this.codecs[0].payloadType,G):void 0,mid:this.sdesMid,trackIdentifier:Y.id,packetsReceived:J.packets_received,packetsLost:J.packets_lost,jitter:J.jitter};if(X.push(Z),this.lastSRtimestamp[Y.ssrc]){let V={type:"remote-outbound-rtp",id:N8("remote-outbound-rtp",Y.ssrc),timestamp:W,ssrc:Y.ssrc,kind:this.kind,transportId:G,codecId:Z.codecId,localId:Z.id,remoteTimestamp:this.receiveLastSRTimestamp[Y.ssrc]*1000};X.push(V)}}return X}async sendRtcpPLI(W){if(!this.pliEnabled){vq("pli not supported",{mediaSsrc:W});return}if(this.stopped)return;vq("sendRtcpPLI",{mediaSsrc:W});let X=new iV({feedback:new JH({senderSsrc:this.rtcpSsrc,mediaSsrc:W})});try{await this.dtlsTransport.sendRtcp([X])}catch(G){vq(G)}}handleRtcpPacket(W){switch(W.type){case mY.type:{let X=W;this.lastSRtimestamp[X.ssrc]=t2(X.senderInfo.ntpTimestamp),this.receiveLastSRTimestamp[X.ssrc]=NH();let G=this.trackBySSRC[W.ssrc];if(G)G.onReceiveRtcp.execute(W)}break}this.onRtcp.execute(W)}handleRtpBySsrc=(W,X)=>{let G=this.trackBySSRC[W.header.ssrc];this.handleRTP(W,X,G)};handleRtpByRid=(W,X,G)=>{let Y=this.trackByRID[X];if(!this.trackBySSRC[W.header.ssrc])this.trackBySSRC[W.header.ssrc]=Y;this.handleRTP(W,G,Y)};handleRTP(W,X,G){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 ti(Y.clockRate),this.remoteStreams[W.header.ssrc].add(W),this.receiverTWCC){let Z=X[P9.transportWideCC];if(!Z==null)throw Error("undefined");this.receiverTWCC.handleTWCC(Z)}else if(this.twccEnabled)this.setupTWCC(W.header.ssrc);if(Y.name.toLowerCase()==="rtx"){let Z=this.ssrcByRtx[W.header.ssrc],V=HH(Y.parameters??""),U=this.codecs[V.apt];if(W.payload.length<2)return;W=Nn(W,U.payloadType,Z),G=this.trackBySSRC[Z]}let J;if(Y.name.toLowerCase()==="red"){if(J=q2.deSerialize(W.payload),!Object.keys(this.codecs).includes(J.header.fields[0].blockPT.toString()))return}if(G?.kind==="video"&&this.nackEnabled)this.nack.addPacket(W);if(G)if(J){if(G.kind==="audio"){let Z=this.audioRedHandler.push(J,W);for(let V of Z)G.onReceiveRtp.execute(V.clone(),X)}}else G.onReceiveRtp.execute(W.clone(),X);this.runRtcp()}},hV=L1("werift:packages/webrtc/src/media/router.ts"),gr=class{ssrcTable={};ridTable={};extIdUriMap={};constructor(){}registerRtpSender(W){this.ssrcTable[W.ssrc]=W}registerRtpReceiver(W,X){hV("registerRtpReceiver",X),this.ssrcTable[X]=W}registerRtpReceiverBySsrc(W,X){hV("registerRtpReceiverBySsrc",X),X.encodings.filter((G)=>G.ssrc!=null).forEach((G,Y)=>{if(this.registerRtpReceiver(W.receiver,G.ssrc),W.addTrack(new hK({ssrc:G.ssrc,kind:W.kind,id:W.sender.trackId,remote:!0,codec:X.codecs[Y]})),G.rtx)this.registerRtpReceiver(W.receiver,G.rtx.ssrc)}),X.headerExtensions.forEach((G)=>{this.extIdUriMap[G.id]=G.uri})}registerRtpReceiverByRid(W,X,G){let[Y]=G.codecs;hV("registerRtpReceiverByRid",X),W.addTrack(new hK({rid:X.rid,kind:W.kind,id:W.sender.trackId,remote:!0,codec:Y})),this.ridTable[X.rid]=W.receiver}routeRtp=(W)=>{let X=io(W.header.extensions,this.extIdUriMap),G=this.ssrcTable[W.header.ssrc],Y=X[P9.sdesRTPStreamID];if(typeof Y==="string")G=this.ridTable[Y],G.latestRid=Y,G.handleRtpByRid(W,Y,X);else if(G)G.handleRtpBySsrc(W,X);else if(G=Object.values(this.ridTable).filter((V)=>V instanceof zx).find((V)=>V.trackBySSRC[W.header.ssrc]),G)hV("simulcast register receiver by ssrc",W.header.ssrc),this.registerRtpReceiver(G,W.header.ssrc),G.handleRtpBySsrc(W,X);if(!G){hV("ssrcReceiver not found");return}let J=X[P9.sdesMid];if(typeof J==="string")G.sdesMid=J;let Z=X[P9.repairedRtpStreamId];if(typeof Z==="string")G.latestRepairedRid=Z};routeRtcp=(W)=>{let X=[];switch(W.type){case mY.type:W=W,X.push(this.ssrcTable[W.ssrc]);break;case rV.type:W=W,W.reports.forEach((G)=>{X.push(this.ssrcTable[G.ssrc])});break;case QH.type:{let G=W}break;case bY.type:{let G=W;if(G.feedback)X.push(this.ssrcTable[G.feedback.mediaSourceSsrc])}break;case iV.type:{let G=W;switch(G.feedback.count){case ZH.count:{let Y=G.feedback;X.push(this.ssrcTable[Y.ssrcFeedbacks[0]])}break;default:X.push(this.ssrcTable[G.feedback.senderSsrc]||this.ssrcTable[G.feedback.mediaSsrc])}}break}X.filter((G)=>G).forEach((G)=>G.handleRtcpPacket(W))}},ur=class{numPackets=0;totalSize=0;firstPacketSentAtMs=0;lastPacketSentAtMs=0;firstPacketReceivedAtMs=0;lastPacketReceivedAtMs=0;addPacket(W,X,G){if(this.numPackets===0)this.firstPacketSentAtMs=X,this.firstPacketReceivedAtMs=G,this.lastPacketSentAtMs=X,this.lastPacketReceivedAtMs=G;else{if(X<this.firstPacketSentAtMs)this.firstPacketSentAtMs=X;if(G<this.firstPacketReceivedAtMs)this.firstPacketReceivedAtMs=G;if(X>this.lastPacketSentAtMs)this.lastPacketSentAtMs=X;if(G>this.lastPacketReceivedAtMs)this.lastPacketReceivedAtMs=G}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,X=this.totalSize/W*8*1000;return YH(X)}get sendBitrate(){let W=this.lastPacketSentAtMs-this.firstPacketSentAtMs,X=this.totalSize/W*8*1000;return YH(X)}},kY=20,hr=10,br=class{congestion=!1;onAvailableBitrate=new d0;onCongestion=new d0;onCongestionScore=new d0;congestionCounter=0;cumulativeResult=new ur;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 G=s2()-this.cumulativeResult.firstPacketSentAtMs;if(G>1000){if(this.cumulativeResult.reset(),this.congestionCounter<kY)this.congestionCounter++;else if(this.congestionScore<hr)this.congestionScore++;if(this.congestionCounter>=kY&&!this.congestion)this.congestion=!0,this.onCongestion.execute(this.congestion)}for(let Y of W.packetResults){if(!Y.received)continue;let J=Y.sequenceNumber,Z=this.sentInfos[J];if(!Z)continue;if(!Y.receivedAtMs)continue;this.cumulativeResult.addPacket(Z.size,Z.sendingAtMs,Y.receivedAtMs)}if(G>=100&&this.cumulativeResult.numPackets>=20){if(this.availableBitrate=Math.min(this.cumulativeResult.sendBitrate,this.cumulativeResult.receiveBitrate),this.cumulativeResult.reset(),this.congestionCounter>-kY){let Y=YH(kY/2)+1,J=YH(kY/4)+1,Z=Y-(Y-J)/10*this.congestionScore;this.congestionCounter=this.congestionCounter-Z}if(this.congestionCounter<=-kY){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((X)=>Number(X)).sort().filter((X)=>X<W.wideSeq).forEach((X)=>{delete this.sentInfos[X]}),this.sentInfos[W.wideSeq]=W}},CK=L1("werift:packages/webrtc/src/media/rtpSender.ts"),KS=128,OS=0.85,mr=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=X8.Unpack("!L",IS(4))[0];rtxSsrc=X8.Unpack("!L",IS(4))[0];streamId=wS().toString();trackId=wS().toString();onReady=new d0;onRtcp=new d0;onPictureLossIndication=new d0;onGenericNack=new d0;senderBWE=new br;cname;mid;rtpStreamId;repairedRtpStreamId;rtxPayloadType;rtxSequenceNumber=TS();redRedundantPayloadType;_redDistance=2;redEncoder=new Vn(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((X)=>X());this.dtlsTransport=W,this.dtlsDisposer=[this.dtlsTransport.onStateChange.subscribe((X)=>{if(X==="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((X)=>{let G=HH(X.parameters??"");if(X.name.toLowerCase()==="rtx"&&G.apt===this.codec?.payloadType)this.rtxPayloadType=X.payloadType;if(X.name.toLowerCase()==="red")this.redRedundantPayloadType=Number((X.parameters??"").split("/")[0])})}registerTrack(W){if(W.stopped)throw Error("track is ended");if(this.disposeTrack)this.disposeTrack();W.id=this.trackId;let{unSubscribe:X}=W.onReceiveRtp.subscribe(async(G)=>{await this.sendRtp(G)});if(this.track=W,this.disposeTrack=X,this.codec)W.codec=this.codec;W.onSourceChanged.subscribe((G)=>{this.replaceRTP(G)})}async replaceTrack(W){if(W===null)return;if(W.stopped)throw Error("track is ended");if(this.sequenceNumber!=null){let X=W.header||(await W.onReceiveRtp.asPromise())[0].header;this.replaceRTP(X)}this.registerTrack(W),CK("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 jS(500+Math.random()*1000,void 0,{signal:this.rtcpCancel.signal});let W=[new mY({ssrc:this.ssrc,senderInfo:new N2({ntpTimestamp:this.ntpTimestamp,rtpTimestamp:this.rtpTimestamp,packetCount:this.packetCount,octetCount:this.octetCount})})];if(this.lastSRtimestamp=t2(this.ntpTimestamp),this.lastSentSRTimestamp=NH(),this.cname)W.push(new QH({chunks:[new U2({source:this.ssrc,items:[new Q2({type:1,text:this.cname})]})]}));try{await this.dtlsTransport.sendRtcp(W)}catch(X){CK("sendRtcp failed",X),await jS(500+Math.random()*1000)}}}catch(W){}}replaceRTP({sequenceNumber:W,timestamp:X},G=!1){if(this.sequenceNumber!=null){if(this.seqOffset=R9(this.sequenceNumber,-W),G)this.seqOffset=R9(this.seqOffset,2)}if(this.timestamp!=null){if(this.timestampOffset=gY(this.timestamp,-X),G)this.timestampOffset=R9(this.timestampOffset,1)}this.rtpCache=[],CK("replaceRTP",this.sequenceNumber,W,this.seqOffset)}async sendRtp(W){if(this.dtlsTransport.state!=="connected"||!this.codec)return;W=Buffer.isBuffer(W)?e6.deSerialize(W):W;let{header:X,payload:G}=W;X.ssrc=this.ssrc,X.payloadType=this.codec.payloadType,X.timestamp=gY(X.timestamp,this.timestampOffset),X.sequenceNumber=R9(X.sequenceNumber,this.seqOffset),this.timestamp=X.timestamp,this.sequenceNumber=X.sequenceNumber;let Y=li(),J=[...X.extensions];X.extensions=this.headerExtensions.map((N)=>{let q=(()=>{switch(N.uri){case P9.sdesMid:if(this.mid)return ro(this.mid);return;case P9.sdesRTPStreamID:if(this.rtpStreamId)return ao(this.rtpStreamId);return;case P9.repairedRtpStreamId:if(this.repairedRtpStreamId)return so(this.repairedRtpStreamId);return;case P9.transportWideCC:return this.dtlsTransport.transportSequenceNumber=R9(this.dtlsTransport.transportSequenceNumber,1),to(this.dtlsTransport.transportSequenceNumber);case P9.absSendTime:return eo(Y)}})();if(q)return{id:N.id,payload:q}}).filter((N)=>N);for(let N of J){let q=X.extensions.find((A)=>A.id===N.id);if(q)q.payload=N.payload;else X.extensions.push(N)}X.extensions=X.extensions.sort((N,q)=>N.id-q.id),this.ntpTimestamp=Y,this.rtpTimestamp=X.timestamp,this.octetCount+=G.length,this.packetCount=gY(this.packetCount,1),this.rtpCache[X.sequenceNumber%KS]=W;let Z=G;if(this.redRedundantPayloadType)this.redEncoder.push({block:Z,timestamp:X.timestamp,blockPT:this.redRedundantPayloadType}),Z=this.redEncoder.build().serialize();let V=await this.dtlsTransport.sendRtp(Z,X);this.runRtcp();let U=s2(),Q={wideSeq:this.dtlsTransport.transportSequenceNumber,size:V,sendingAtMs:U,sentAtMs:U};this.senderBWE.rtpPacketSent(Q)}handleRtcpPacket(W){switch(W.type){case mY.type:case rV.type:W.reports.filter((G)=>G.ssrc===this.ssrc).forEach((G)=>{if(this.lastSRtimestamp===G.lsr&&G.dlsr){if(this.lastSentSRTimestamp){let Y=NH()-this.lastSentSRTimestamp-G.dlsr/65536;if(this.rtt===void 0)this.rtt=Y;else this.rtt=OS*this.rtt+(1-OS)*Y}}});break;case bY.type:{let X=W;switch(X.feedback.count){case UH.count:{let G=X.feedback;this.senderBWE.receiveTWCC(G)}break;case VH.count:{let G=X.feedback;G.lost.forEach(async(Y)=>{let J=this.rtpCache[Y%KS];if(J&&J.header.sequenceNumber!==Y)J=void 0;if(J){if(this.rtxPayloadType!=null)J=qn(J,this.rtxPayloadType,this.rtxSequenceNumber,this.rtxSsrc),this.rtxSequenceNumber=R9(this.rtxSequenceNumber,1);await this.dtlsTransport.sendRtp(J.payload,J.header)}}),this.onGenericNack.execute(G)}break}}break;case iV.type:{let X=W;switch(X.feedback.count){case ZH.count:{let G=X.feedback;this.receiverEstimatedMaxBitrate=G.bitrate}break;case JH.count:this.onPictureLossIndication.execute();break}}break}this.onRtcp.execute(W)}getParameters(){return{encodings:[]}}setParameters(W){}async getStats(){let W=$X(),X=[];if(!this.dtlsTransport)return X;let G=N8("transport",this.dtlsTransport.id),Y={type:"outbound-rtp",id:N8("outbound-rtp",this.ssrc),timestamp:W,ssrc:this.ssrc,kind:this.kind,transportId:G,codecId:this.codec?N8("codec",this.codec.payloadType,G):void 0,mid:this.mid,packetsSent:this.packetCount,bytesSent:this.octetCount,rtxSsrc:this.rtxPayloadType?this.rtxSsrc:void 0};if(X.push(Y),this.track){let J={type:"media-source",id:N8("media-source",this.trackId),timestamp:W,trackIdentifier:this.trackId,kind:this.kind};X.push(J)}if(this.rtt!==void 0){let J={type:"remote-inbound-rtp",id:N8("remote-inbound-rtp",this.ssrc),timestamp:W,ssrc:this.ssrc,kind:this.kind,transportId:G,codecId:Y.codecId,localId:Y.id,roundTripTime:this.rtt};X.push(J)}return X}},pr=L1("werift:packages/webrtc/src/transport/sctpManager.ts"),cr=class{sctpTransport;sctpRemotePort;dataChannelsOpened=0;dataChannelsClosed=0;dataChannels=[];onDataChannel=new d0;constructor(){}createSctpTransport(W){let X=new kr(5000,W);return X.mid=void 0,X.onDataChannel.subscribe((G)=>{this.dataChannelsOpened++,this.dataChannels.push(G),this.onDataChannel.execute(G)}),this.sctpTransport=X,X}createDataChannel(W,X={}){let Y={...{protocol:"",ordered:!0,negotiated:!1},...X};if(Y.maxPacketLifeTime&&Y.maxRetransmits)throw Error("can not select both");if(!this.sctpTransport)this.sctpTransport=this.createSctpTransport();let J=new u2({id:Y.id,label:W,maxPacketLifeTime:Y.maxPacketLifeTime,maxRetransmits:Y.maxRetransmits,negotiated:Y.negotiated,ordered:Y.ordered,protocol:Y.protocol}),Z=new g2(this.sctpTransport,J);return this.dataChannelsOpened++,this.dataChannels.push(Z),Z.stateChange.subscribe((V)=>{if(V==="closed"){this.dataChannelsClosed++;let U=this.dataChannels.indexOf(Z);if(U!==-1)this.dataChannels.splice(U,1)}}),Z}async connectSctp(){if(!this.sctpTransport||!this.sctpRemotePort)return;await this.sctpTransport.start(this.sctpRemotePort),await this.sctpTransport.sctp.stateChanged.connected.asPromise(),pr("sctp connected")}setRemoteSCTP(W,X){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=X,!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=$X(),X=[];for(let G of this.dataChannels){let Y={type:"data-channel",id:N8("data-channel",G.id),timestamp:W,label:G.label,protocol:G.protocol,dataChannelIdentifier:G.id,state:G.readyState,messagesSent:G.messagesSent||0,bytesSent:G.bytesSent||0,messagesReceived:G.messagesReceived||0,bytesReceived:G.bytesReceived||0};X.push(Y)}return X}},lr=class{currentLocalDescription;currentRemoteDescription;pendingLocalDescription;pendingRemoteDescription;cname;midSuffix;bundlePolicy;seenMid=new Set;constructor({cname:W,midSuffix:X,bundlePolicy:G}){this.cname=W,this.midSuffix=X??!1,this.bundlePolicy=G}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,X){let G=new sK(W.kind,9,"UDP/TLS/RTP/SAVPF",W.codecs.map((Y)=>Y.payloadType));if(G.direction=X,G.msid=W.msid,G.rtp={codecs:W.codecs,headerExtensions:W.headerExtensions,muxId:W.mid},G.rtcpHost="0.0.0.0",G.rtcpPort=9,G.rtcpMux=!0,G.ssrc=[new eK({ssrc:W.sender.ssrc,cname:this.cname})],W.options.simulcast)G.simulcastParameters=W.options.simulcast.map((Y)=>new h2(Y));if(G.rtp.codecs.find((Y)=>Y.name.toLowerCase()==="rtx"))G.ssrc.push(new eK({ssrc:W.sender.rtxSsrc,cname:this.cname})),G.ssrcGroup=[new oV("FID",[W.sender.ssrc.toString(),W.sender.rtxSsrc.toString()])];return this.addTransportDescription(G,W.dtlsTransport),G}createMediaDescriptionForSctp(W){let X=new sK("application",rF,"UDP/DTLS/SCTP",["webrtc-datachannel"]);return X.sctpPort=W.port,X.rtp.muxId=W.mid,X.sctpCapabilities=W.getCapabilities(),this.addTransportDescription(X,W.dtlsTransport),X}addTransportDescription(W,X){let G=X.iceTransport;if(W.iceCandidates=G.localCandidates,W.iceCandidatesComplete=G.gatheringState==="complete",W.iceParams=G.localParameters,W.iceOptions="trickle",W.host=xi,W.port=rF,W.direction==="inactive")W.port=0,W.msid=void 0;if(!W.dtlsParams){if(W.dtlsParams=X.localParameters,!W.dtlsParams.fingerprints)W.dtlsParams.fingerprints=X.localParameters.fingerprints}}allocateMid(W=""){let X="";for(let G=0;;)if(X=(G++).toString()+W,!this.seenMid.has(X))break;return this.seenMid.add(X),X}parseSdp({sdp:W,isLocal:X,signalingState:G,type:Y}){let J=rq.parse(W);return this.validateDescription({description:J,isLocal:X,signalingState:G}),J.type=Y,J}validateDescription({description:W,isLocal:X,signalingState:G}){if(X){if(W.type==="offer"){if(!["stable","have-local-offer"].includes(G))throw Error("Cannot handle offer in signaling state")}else if(W.type==="answer"){if(!["have-remote-offer","have-local-pranswer"].includes(G))throw Error("Cannot handle answer in signaling state")}}else if(W.type==="offer"){if(!["stable","have-remote-offer"].includes(G))throw Error("Cannot handle offer in signaling state")}else if(W.type==="answer"){if(!["have-local-offer","have-remote-pranswer"].includes(G))throw Error("Cannot handle answer in signaling state")}}buildOfferSdp(W,X){let G=new rq;zS("offer",G),(this.currentLocalDescription?.media??[]).forEach((J,Z)=>{let V=J.rtp.muxId;if(!V)return;if(J.kind==="application"){if(!X)throw Error("sctpTransport not found");X.mLineIndex=Z,G.media.push(this.createMediaDescriptionForSctp(X))}else{let U=W.find((Q)=>Q.mid===V);if(!U){if(J.direction==="inactive"){G.media.push(J);return}throw Error("transceiver not found")}U.mLineIndex=Z,G.media.push(this.createMediaDescriptionForTransceiver(U,U.direction))}});for(let J of W.filter((Z)=>!G.media.find((V)=>V.rtp.muxId===Z.mid))){if(J.mid==null)J.mid=this.allocateMid(this.midSuffix?"av":"");let Z=this.createMediaDescriptionForTransceiver(J,J.direction);if(J.mLineIndex===void 0)J.mLineIndex=G.media.length,G.media.push(Z);else G.media[J.mLineIndex]=Z}if(X&&!G.media.find((J)=>J.kind==="application")){if(X.mLineIndex=G.media.length,X.mid==null)X.mid=this.allocateMid(this.midSuffix?"dc":"");G.media.push(this.createMediaDescriptionForSctp(X))}if(this.bundlePolicy!=="disable"){let J=G.media.map((Z)=>Z.rtp.muxId).filter((Z)=>Z);if(J.length){let Z=new oV("BUNDLE",J);G.group.push(Z)}}return G}buildAnswerSdp({transceivers:W,sctpTransport:X,signalingState:G}){if(!["have-remote-offer","have-local-pranswer"].includes(G))throw Error("createAnswer failed");if(!this._remoteDescription)throw Error("wrong state");let Y=new rq;zS("answer",Y);for(let J of this._remoteDescription.media){let Z,V;if(["audio","video"].includes(J.kind)){let U=W.find((Q)=>Q.mid===J.rtp.muxId);if(!U)throw Error(`Transceiver with mid=${J.rtp.muxId} not found`);V=this.createMediaDescriptionForTransceiver(U,a2(U.direction,U.offerDirection)),Z=U.dtlsTransport}else if(J.kind==="application"){if(!X||!X.mid)throw Error("sctpTransport not found");V=this.createMediaDescriptionForSctp(X),Z=X.dtlsTransport}else throw Error("invalid kind");if(V.dtlsParams)if(Z.role==="auto")V.dtlsParams.role="client";else V.dtlsParams.role=Z.role;if(J.simulcastParameters&&J.simulcastParameters.length>0)V.simulcastParameters=J.simulcastParameters.map((U)=>({...U,direction:U.direction==="send"?"recv":"send"}));Y.media.push(V)}if(this.bundlePolicy!=="disable"){let J=new oV("BUNDLE",[]);for(let Z of Y.media)if(Z.rtp.muxId)J.items.push(Z.rtp.muxId);Y.group.push(J)}return Y}setLocalDescription(W){if(this.currentLocalDescription=W,W.type==="answer")this.pendingLocalDescription=void 0;else this.pendingLocalDescription=W}setRemoteDescription(W,X){if(!W.sdp||!W.type||W.type==="rollback"||W.type==="pranswer")throw Error("invalid sessionDescription");let G=this.parseSdp({sdp:W.sdp,isLocal:!1,signalingState:X,type:W.type});if(G.type==="answer")this.currentRemoteDescription=G,this.pendingRemoteDescription=void 0;else this.pendingRemoteDescription=G;return G}registerMid(W){this.seenMid.add(W)}get remoteIsBundled(){let W=this._remoteDescription;if(!W)return;return W.group.find((G)=>G.semantic==="BUNDLE"&&this.bundlePolicy!=="disable")}setLocal(W,X,G){let Y=new Map(X.map((V)=>[V?.mLineIndex,V])),J=X.find((V)=>V?.dtlsTransport)?.dtlsTransport??G?.dtlsTransport;W.media.filter((V)=>["audio","video"].includes(V.kind)).forEach((V,U)=>{let N=(Y.get(U)??X[U])?.dtlsTransport??J;if(!N)throw Error(`dtls transport not found for media index ${U}`);this.addTransportDescription(V,N)});let Z=W.media.find((V)=>V.kind==="application");if(G&&Z)this.addTransportDescription(Z,G.dtlsTransport);this.setLocalDescription(W)}},bV=L1("werift:packages/webrtc/src/transport/secureTransportManager.ts"),dr=class{connectionState="new";iceConnectionState="new";iceGatheringState="new";certificate;iceGatheringStateChange=new d0;iceConnectionStateChange=new d0;onIceCandidate=new d0;connectionStateChange=new d0;config;transceiverManager;sctpManager;constructor({config:W,transceiverManager:X,sctpManager:G}){if(this.config=W,this.transceiverManager=X,this.sctpManager=G,this.config.dtls){let{keys:Y}=this.config.dtls;if(Y)this.setupCertificate(Y)}}get dtlsTransports(){return[...this.transceiverManager.getTransceivers().map((X)=>X?.dtlsTransport),this.sctpManager.sctpTransport?.dtlsTransport].filter((X)=>X!=null).reduce((X,G)=>{if(!X.map((Y)=>Y.id).includes(G.id))X.push(G);return X},[])}get iceTransports(){return this.dtlsTransports.map((W)=>W.iceTransport)}setupCertificate(W){this.certificate=new e2(W.keyPem,W.certPem,W.signatureHash)}createTransport(){let W=this.iceTransports.find((J)=>J.state!=="closed"),X=new Nr({...di(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)X.connection.localUsername=W.connection.localUsername,X.connection.localPassword=W.connection.localPassword;X.onGatheringStateChange.subscribe(()=>{this.updateIceGatheringState()}),this.updateIceGatheringState();let G=new Qr(X);return G.onStateChange.subscribe(()=>{this.updateIceConnectionState()}),new eF(this.config,G,this.certificate,or)}handleNewIceCandidate({candidate:W,media:X,remoteIsBundled:G,transceiver:Y,sctpTransport:J,bundlePolicy:Z}){if(Z==="max-bundle"||G){if(W.sdpMLineIndex=0,X)W.sdpMid=X.rtp.muxId}else{if(Y)W.sdpMLineIndex=Y.mLineIndex,W.sdpMid=Y.mid;if(J)W.sdpMLineIndex=J.mLineIndex,W.sdpMid=J.mid}if(W.foundation&&!W.foundation.startsWith("candidate:"))W.foundation="candidate:"+W.foundation;return this.onIceCandidate.execute(W),W}async addIceCandidate(W,X){let G=Wx.fromJSON(X);if(!G)return;let Y;if(typeof G.sdpMid==="number")Y=this.getTransportByMid(G.sdpMid);if(!Y&&typeof G.sdpMLineIndex==="number")Y=this.getTransportByMLineIndex(W,G.sdpMLineIndex);if(!Y)Y=this.iceTransports[0];if(Y)await Y.addRemoteCandidate(G);else bV("iceTransport not found for candidate",G)}getTransportByMid(W){let X,G=this.transceiverManager.getTransceivers().find((Y)=>Y.mid===W);if(G)X=G.dtlsTransport.iceTransport;else if(!X&&this.sctpManager.sctpTransport?.mid===W)X=this.sctpManager.sctpTransport.dtlsTransport.iceTransport;return X}getTransportByMLineIndex(W,X){let G=W.media[X];if(!G)return;return this.getTransportByMid(G.rtp.muxId)}restartIce(){for(let W of this.iceTransports)W.restart()}setLocalRole({type:W,role:X}){for(let G of this.dtlsTransports){let Y=G.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(X)G.role=X}}}updateIceGatheringState(){let W=this.iceTransports;function X(...Y){return W.filter((J)=>Y.includes(J.gatheringState)).length===W.length}let G;if(W.length&&X("complete"))G="complete";else if(!W.length||X("new","complete"))G="new";else if(W.map((Y)=>Y.gatheringState).includes("gathering"))G="gathering";else G="new";if(this.iceGatheringState===G)return;this.iceGatheringState=G,this.iceGatheringStateChange.execute(G)}updateIceConnectionState(){let W=this.iceTransports,X;function G(...J){return W.filter((Z)=>J.includes(Z.state)).length===W.length}function Y(...J){return W.some((Z)=>J.includes(Z.state))}if(this.connectionState==="closed")X="closed";else if(Y("failed"))X="failed";else if(Y("disconnected"))X="disconnected";else if(G("new","closed"))X="new";else if(Y("new","checking"))X="checking";else if(G("completed","closed"))X="completed";else if(G("connected","completed","closed"))X="connected";else X="new";if(this.iceConnectionState===X)return;bV("iceConnectionStateChange",X),this.iceConnectionState=X,this.iceConnectionStateChange.execute(X)}async gatherCandidates(W){let X=this.iceTransports.find((G)=>G.state==="connected"||G.state==="completed");if(W&&X)bV("skipping ICE gathering for bundled connection");else await Promise.allSettled(this.iceTransports.map((G)=>G.gather())).catch((G)=>{bV("gatherCandidates failed",G)})}setConnectionState(W){bV("connectionStateChange",W),this.connectionState=W,this.connectionStateChange.execute(W)}async getStats(){let W=[];for(let X of this.dtlsTransports){let G=await X.getStats();if(G)W.push(...G)}return W}async ensureCerts(){if(!this.certificate)this.certificate=await eF.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()}},or=[sF.SRTP_AEAD_AES_128_GCM,sF.SRTP_AES128_CM_HMAC_SHA1_80],G7=L1("werift:packages/webrtc/src/peerConnection.ts"),Ix=class extends NO{cname=fr().toString();config=wx();signalingState="stable";negotiationneeded=!1;needRestart=!1;router=new gr;sdpManager;transceiverManager;sctpManager;secureManager;isClosed=!1;shouldNegotiationneeded=!1;remoteBundleNegotiated=!1;iceGatheringStateChange=new d0;iceConnectionStateChange=new d0;signalingStateChange=new d0;connectionStateChange=new d0;onDataChannel=new d0;onRemoteTransceiverAdded=new d0;onTransceiverAdded=new d0;onIceCandidate=new d0;onNegotiationneeded=new d0;onTrack=new d0;ondatachannel;onicecandidate;onicecandidateerror;onicegatheringstatechange;onnegotiationneeded;onsignalingstatechange;ontrack;onconnectionstatechange;oniceconnectionstatechange;constructor(W={}){super();this.setConfiguration(W),this.sdpManager=new lr({cname:this.cname,bundlePolicy:this.config.bundlePolicy}),this.transceiverManager=new ir(this.cname,this.config,this.router),this.transceiverManager.onTransceiverAdded.pipe(this.onTransceiverAdded),this.transceiverManager.onRemoteTransceiverAdded.pipe(this.onRemoteTransceiverAdded),this.transceiverManager.onTrack.subscribe(({track:X,stream:G,transceiver:Y})=>{let J={track:X,streams:[G],transceiver:Y,receiver:Y.receiver};if(this.onTrack.execute(X),this.emit("track",J),this.ontrack)this.ontrack(J)}),this.transceiverManager.onNegotiationNeeded.subscribe(()=>this.needNegotiation()),this.sctpManager=new cr,this.sctpManager.onDataChannel.subscribe((X)=>{this.onDataChannel.execute(X);let G={channel:X};this.ondatachannel?.(G),this.emit("datachannel",G)}),this.secureManager=new dr({config:this.config,sctpManager:this.sctpManager,transceiverManager:this.transceiverManager}),this.secureManager.iceGatheringStateChange.pipe(this.iceGatheringStateChange),this.secureManager.iceConnectionStateChange.subscribe((X)=>{if(X==="closed")this.close();this.iceConnectionStateChange.execute(X)}),this.secureManager.connectionStateChange.subscribe((X)=>{this.connectionStateChange.execute(X),this.onconnectionstatechange?.(),this.emit("connectionstatechange")}),this.secureManager.onIceCandidate.subscribe((X)=>{let G=X?X.toJSON():void 0;this.onIceCandidate.execute(G),this.onicecandidate?.({candidate:G}),this.emit("icecandidate",{candidate:G})})}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(oi(this.config,W),this.config.icePortRange){let[X,G]=this.config.icePortRange;if(X===G)throw Error("should not be same value");if(X>=G)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[X,G]of lF([...this.config.codecs.audio||[],...this.config.codecs.video||[]])){if(G.payloadType!=null)continue;switch(G.payloadType=96+X,G.name.toLowerCase()){case"rtx":G.parameters=`apt=${G.payloadType-1}`;break;case"red":if(G.contentType==="audio"){let Y=G.payloadType+1;G.parameters=`${Y}/${Y}`,G.payloadType=63}break}}[...this.config.headerExtensions.audio||[],...this.config.headerExtensions.video||[]].forEach((X,G)=>{X.id=1+G})}getConfiguration(){return this.config}async createOffer({iceRestart:W}={}){if(W||this.needRestart)this.needRestart=!1,this.secureManager.restartIce();await this.secureManager.ensureCerts();for(let G of this.transceiverManager.getTransceivers()){if(G.codecs.length===0)this.transceiverManager.assignTransceiverCodecs(G);if(G.headerExtensions.length===0)G.headerExtensions=this.config.headerExtensions[G.kind]??[]}return this.sdpManager.buildOfferSdp(this.transceiverManager.getTransceivers(),this.sctpTransport).toJSON()}createSctpTransport(){let W=this.sctpManager.createSctpTransport(this.config.maxMessageSize),X=this.findOrCreateTransport();return W.setDtlsTransport(X),W}createDataChannel(W,X={}){if(!this.sctpTransport)this.createSctpTransport(),this.needNegotiation();let G=this.sctpManager.createDataChannel(W,X);if(!G.sctp.dtlsTransport){let Y=this.findOrCreateTransport();G.sctp.setDtlsTransport(Y)}return G}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((J)=>J.state!=="closed"),X=W?.iceTransport;if(this.sdpManager.bundlePolicy==="max-bundle"||this.sdpManager.bundlePolicy!=="disable"&&(this.remoteIsBundled||this.remoteBundleNegotiated)){if(W)return W}let G=this.secureManager.createTransport();G.onRtp.subscribe((J)=>{this.router.routeRtp(J)}),G.onRtcp.subscribe((J)=>{this.router.routeRtcp(J)});let Y=G.iceTransport;return Y.onNegotiationNeeded.subscribe(()=>{this.needNegotiation()}),Y.onIceCandidate.subscribe((J)=>{if(!this.localDescription){G7("localDescription not found when ice candidate was gathered");return}if(!J){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){G7("localDescription not found when ice candidate was gathered");return}this.secureManager.handleNewIceCandidate({candidate:J,bundlePolicy:this.sdpManager.bundlePolicy,remoteIsBundled:!!this.sdpManager.remoteIsBundled,media:this._localDescription.media[0],transceiver:this.transceiverManager.getTransceivers().find((Z)=>Z?.dtlsTransport?.iceTransport.id===Y.id),sctpTransport:this.sctpTransport?.dtlsTransport.iceTransport.id===Y.id?this.sctpTransport:void 0})}),G}async setLocalDescription(W){W=W??(["stable","have-local-offer","have-remote-pranswer"].includes(this.signalingState)?await this.createOffer():await this.createAnswer());let G=this.sdpManager.parseSdp({sdp:W.sdp,isLocal:!0,signalingState:this.signalingState,type:W.type});if(G.type==="offer")this.setSignalingState("have-local-offer");else if(G.type==="answer")this.setSignalingState("stable");for(let[J,Z]of lF(G.media)){let V=Z.rtp.muxId;if(this.sdpManager.registerMid(V),["audio","video"].includes(Z.kind)){let U=this.transceiverManager.getTransceiverByMLineIndex(J);if(U)U.mid=V}if(Z.kind==="application"&&this.sctpTransport)this.sctpTransport.mid=V}let Y=G.media.find((J)=>J.dtlsParams)?.dtlsParams?.role;if(this.secureManager.setLocalRole({type:G.type,role:Y}),["answer","pranswer"].includes(G.type))for(let J of this.transceiverManager.getTransceivers()){let Z=a2(J.direction,J.offerDirection);J.setCurrentDirection(Z)}if(this.sdpManager.setLocal(G,this.transceiverManager.getTransceivers(),this.sctpTransport),await this.gatherCandidates().catch((J)=>{G7("gatherCandidates failed",J)}),G.type==="answer")this.connect().catch((J)=>{G7("connect failed",J),this.secureManager.setConnectionState("failed")});if(this.sdpManager.setLocal(G,this.transceiverManager.getTransceivers(),this.sctpTransport),this.shouldNegotiationneeded)this.needNegotiation();return G}async gatherCandidates(){await this.secureManager.gatherCandidates(!!this.sdpManager.remoteIsBundled)}async addIceCandidate(W){let X=this.sdpManager.buildOfferSdp(this.transceiverManager.getTransceivers(),this.sctpTransport);await this.secureManager.addIceCandidate(X,W)}async connect(){if(G7("start connect"),(await Promise.allSettled(this.dtlsTransports.map(async(X)=>{let{iceTransport:G}=X;if(G.state==="connected")return;let Y=()=>X.state==="connected";if(Y())return;if(this.secureManager.setConnectionState("connecting"),await G.start().catch((J)=>{throw G7("iceTransport.start failed",J),J}),Y())return;if(await X.start().catch((J)=>{throw G7("dtlsTransport.start failed",J),J}),this.sctpTransport&&this.sctpTransport.dtlsTransport.id===X.id)await this.sctpManager.connectSctp()}))).find((X)=>X.status==="rejected"))this.secureManager.setConnectionState("failed");else this.secureManager.setConnectionState("connected")}restartIce(){this.needRestart=!0,this.needNegotiation()}async setRemoteDescription(W){if(W instanceof rq)W=W.toSdp();let X=this.sdpManager.setRemoteDescription(W,this.signalingState);if(X.group.some((V)=>V.semantic==="BUNDLE"&&V.items.length>0))this.remoteBundleNegotiated=!0;let G,Y=(V,U)=>V.kind===U.kind&&[void 0,U.rtp.muxId].includes(V.mid),J=X.media.map((V,U)=>{let Q;if(["audio","video"].includes(V.kind)){let q=this.transceiverManager.getTransceivers().find((A)=>Y(A,V));if(!q)q=this.addTransceiver(V.kind,{direction:"recvonly"}),q.mid=V.rtp.muxId,this.onRemoteTransceiverAdded.execute(q);else if(q.direction==="inactive"&&q.stopping){if(q.stopped=!0,W.type==="answer")q.setCurrentDirection("inactive");return}if(this.sdpManager.remoteIsBundled)if(!G)G=q.dtlsTransport;else q.setDtlsTransport(G);Q=q.dtlsTransport,this.transceiverManager.setRemoteRTP(q,V,X.type,U)}else if(V.kind==="application"){let q=this.sctpTransport;if(!q)q=this.createSctpTransport(),q.mid=V.rtp.muxId;if(this.sdpManager.remoteIsBundled)if(!G)G=q.dtlsTransport;else q.setDtlsTransport(G);Q=q.dtlsTransport,this.sctpManager.setRemoteSCTP(V,U)}else throw Error("invalid media kind");let N=Q.iceTransport;if(V.iceParams){let q=!!this.sdpManager.inactiveRemoteMedia;if(N.setRemoteParams(V.iceParams,q),V.iceParams?.iceLite)N.connection.iceControlling=!0}if(V.dtlsParams)Q.setRemoteParams(V.dtlsParams);if(V.iceCandidates.forEach(N.addRemoteCandidate),V.iceCandidatesComplete)N.addRemoteCandidate(void 0);if(X.type==="answer"&&V.dtlsParams?.role)Q.role=V.dtlsParams.role==="client"?"server":"client";return N});J=J.filter((V)=>!!V);let Z=this.transceiverManager.getTransceivers().filter((V)=>X.media.find((U)=>Y(V,U))==null);if(W.type==="answer")for(let V of Z)V.stop(),V.stopped=!0;if(X.type==="offer")this.setSignalingState("have-remote-offer");else if(X.type==="answer")this.setSignalingState("stable");if(X.type==="answer")G7("caller start connect"),this.connect().catch((V)=>{G7("connect failed",V),this.secureManager.setConnectionState("failed")});if(this.negotiationneeded=!1,this.shouldNegotiationneeded)this.needNegotiation()}addTransceiver(W,X={}){let G=this.findOrCreateTransport(),Y=this.transceiverManager.addTransceiver(W,G,X);return this.secureManager.updateIceConnectionState(),this.needNegotiation(),Y}addTrack(W,X){if(this.isClosed)throw Error("is closed");let G=this.transceiverManager.addTrack(W,X);if(!G.dtlsTransport){let Y=this.findOrCreateTransport();G.setDtlsTransport(Y)}return this.needNegotiation(),G.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(G7("signalingStateChange",W),this.signalingState=W,this.signalingStateChange.execute(W),this.onsignalingstatechange)this.onsignalingstatechange({})}createPeerConnectionStats(){let W=$X();return{type:"peer-connection",id:N8("peer-connection"),timestamp:W,dataChannelsOpened:this.sctpManager.dataChannelsOpened,dataChannelsClosed:this.sctpManager.dataChannelsClosed}}async getStats(W){let X=[];X.push(this.createPeerConnectionStats());let G=await this.transceiverManager.getStats(W);X.push(...G);let Y=await this.secureManager.getStats();if(X.push(...Y),this.sctpTransport){let J=await this.sctpManager.getStats();if(J)X.push(...J)}return new yi(X)}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(),G7("peerConnection closed")}},DS=(W,X)=>W.find((G)=>G.mimeType.toLowerCase()===X.mimeType.toLowerCase())?X:void 0;function wx(){return{codecs:{audio:[m2(),f2()],video:[b2()]},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:pV}}var gA0=wx(),nr=L1("werift:packages/webrtc/src/media/rtpTransceiverManager.ts"),ir=class{constructor(W,X,G){this.cname=W,this.config=X,this.router=G}transceivers=[];onTransceiverAdded=new d0;onRemoteTransceiverAdded=new d0;onTrack=new d0;onNegotiationNeeded=new d0;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((X)=>X.mLineIndex===W)}pushTransceiver(W){this.transceivers.push(W)}replaceTransceiver(W,X){this.transceivers[X]=W}addTransceiver(W,X,G={}){let Y=typeof W==="string"?W:W.kind,J=G.direction||"sendrecv",Z=new mr(W),V=new zx(this.config,Y,Z.ssrc),U=new vi(Y,X,V,Z,J);U.options=G,this.router.registerRtpSender(U.sender);let Q=this.transceivers.findIndex((q)=>q.currentDirection==="inactive"&&!q.usedForSender),N=this.transceivers.find((q)=>q.currentDirection==="inactive"&&!q.usedForSender);if(Q>-1&&N)this.replaceTransceiver(U,Q),U.mLineIndex=N.mLineIndex,U.mid=N.mid,N.setCurrentDirection(void 0);else this.pushTransceiver(U);return this.onTransceiverAdded.execute(U),U}addTrack(W,X){if(this.getSenders().find((J)=>J.track?.uuid===W.uuid))throw Error("Track already added");let G=this.transceivers.find((J)=>J.sender.track==null&&J.kind===W.kind&&cq.includes(J.direction)===!0);if(G)return G.sender.registerTrack(W),G;let Y=this.transceivers.find((J)=>J.sender.track==null&&J.kind===W.kind&&cq.includes(J.direction)===!1&&!J.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:G})=>W.ssrc===G))throw Error("Sender does not exist");let X=this.transceivers.find(({sender:{ssrc:G}})=>W.ssrc===G);if(!X)throw Error("No matching transceiver found");if(W.stop(),X.currentDirection==="recvonly"){this.onNegotiationNeeded.execute();return}if(X.stopping||X.stopped)X.setDirection("inactive");else if(X.direction==="sendrecv")X.setDirection("recvonly");else if(X.direction==="sendonly"||X.direction==="recvonly")X.setDirection("inactive")}assignTransceiverCodecs(W){let X=this.config.codecs[W.kind].filter((G)=>{switch(G.direction){case"recvonly":{if(_i.includes(W.direction))return!0;return!1}case"sendonly":{if(cq.includes(W.direction))return!0;return!1}case"sendrecv":{if([o2,d2,l2].includes(W.direction))return!0;return!1}case"all":return!0;default:return!1}});W.codecs=X}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,X){return{muxId:W.rtp.muxId,rtcp:W.rtp.rtcp,codecs:X.codecs,headerExtensions:X.headerExtensions,encodings:Object.values(X.codecs.reduce((Y,J)=>{if(J.name.toLowerCase()==="rtx"){let Z=HH(J.parameters??""),V=Y[Z.apt];if(V&&W.ssrc.length===2)V.rtx=new Ci({ssrc:W.ssrc[1].ssrc});return Y}return Y[J.payloadType]=new Ti({ssrc:W.ssrc[0]?.ssrc,payloadType:J.payloadType}),Y},{}))}}setRemoteRTP(W,X,G,Y){if(!W.mid)W.mid=X.rtp.muxId;if(W.mLineIndex=Y,W.codecs=X.rtp.codecs.filter((U)=>{let Q=this.config.codecs[X.kind]||[],N=DS(Q,U);if(!N)return!1;if(N?.name.toLowerCase()==="rtx"){let A=HH(N.parameters??"").apt,H=X.rtp.codecs.find((I)=>I.payloadType===A);if(!H)return!1;return!!DS(Q,H)}return!0}),nr("negotiated codecs",W.codecs),W.codecs.length===0)throw Error("negotiate codecs failed.");W.headerExtensions=X.rtp.headerExtensions.filter((U)=>(this.config.headerExtensions[X.kind]||[]).find((Q)=>Q.uri===U.uri));let J=X.direction??"inactive",Z=fi(J);if(["answer","pranswer"].includes(G))W.setCurrentDirection(Z);else W.offerDirection=Z;let V=this.getLocalRtpParams(W);if(W.sender.prepareSend(V),["recvonly","sendrecv"].includes(W.direction)){let U=this.getRemoteRtpParams(X,W);for(let Q of X.simulcastParameters)this.router.registerRtpReceiverByRid(W,Q,U);W.receiver.prepareReceive(U),this.router.registerRtpReceiverBySsrc(W,U)}if(["sendonly","sendrecv"].includes(J)){if(X.msid){let[U,Q]=X.msid.split(" ");W.receiver.remoteStreamId=U,W.receiver.remoteTrackId=Q}this.onTrack.execute({track:W.receiver.track,transceiver:W,stream:new ui({id:W.receiver.remoteStreamId,tracks:[W.receiver.track]})})}if(X.ssrc[0]?.ssrc)W.receiver.setupTWCC(X.ssrc[0].ssrc)}async getStats(W){let X=[];for(let G of this.transceivers){let Y=!W||G.sender.track===W||G.receiver.track===W;if(G.sender){let J=await G.sender.getStats();if(J)for(let Z of J)if(Z.type==="outbound-rtp"||Z.type==="media-source"){if(Y)X.push(Z)}else X.push(Z)}if(G.receiver){let J=await G.receiver.getStats();if(J)for(let Z of J)if(Z.type==="inbound-rtp"||Z.type==="remote-outbound-rtp"){if(Y)X.push(Z)}else X.push(Z)}if(Y){let J=G.getCodecStats();if(J)X.push(...J)}}return X}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 HO extends Ix{toJSON(){return{}}createDataChannel(...W){let X=super.createDataChannel(...W);try{X.toJSON=()=>({})}catch{}return X}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var dY={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},rr={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},ar=BigInt(0),jx=BigInt(1),AO=BigInt(2);function sr(W){let X=dY.p,G=BigInt(3),Y=BigInt(6),J=BigInt(11),Z=BigInt(22),V=BigInt(23),U=BigInt(44),Q=BigInt(88),N=W*W*W%X,q=N*N*W%X,A=N5(q,G,X)*q%X,H=N5(A,G,X)*q%X,I=N5(H,AO,X)*N%X,w=N5(I,J,X)*I%X,O=N5(w,Z,X)*w%X,T=N5(O,U,X)*O%X,x=N5(T,Q,X)*T%X,u=N5(x,U,X)*O%X,$=N5(u,G,X)*q%X,S=N5($,V,X)*w%X,h=N5(S,Y,X)*N%X,l=N5(h,AO,X);if(!CH.eql(CH.sqr(l),W))throw Error("Cannot find square root");return l}var CH=E5(dY.p,{sqrt:sr}),Dx=TY({...dY,Fp:CH,lowS:!0,endo:rr},OY),Kx={};function TH(W,...X){let G=Kx[W];if(G===void 0){let Y=OY(Aq(W));G=r9(Y,Y),Kx[W]=G}return OY(r9(G,...X))}var IO=(W)=>W.toBytes(!0).slice(1),oY=(()=>Dx.Point)(),wO=(W)=>W%AO===ar;function zO(W){let{Fn:X,BASE:G}=oY,Y=o6(X,W),J=G.multiply(Y);return{scalar:wO(J.y)?Y:X.neg(Y),bytes:IO(J)}}function Cx(W){let X=CH;if(!X.isValidNot0(W))throw Error("invalid x: Fail if x \u2265 p");let G=X.create(W*W),Y=X.create(G*W+BigInt(7)),J=X.sqrt(Y);if(!wO(J))J=X.neg(J);let Z=oY.fromAffine({x:W,y:J});return Z.assertValidity(),Z}var HU=E4;function Tx(...W){return oY.Fn.create(HU(TH("BIP0340/challenge",...W)))}function Ox(W){return zO(W).bytes}function tr(W,X,G=qX(32)){let{Fn:Y}=oY,J=F8("message",W),{bytes:Z,scalar:V}=zO(X),U=F8("auxRand",G,32),Q=Y.toBytes(V^HU(TH("BIP0340/aux",U))),N=TH("BIP0340/nonce",Q,Z,J),{bytes:q,scalar:A}=zO(N),H=Tx(q,Z,J),I=new Uint8Array(64);if(I.set(q,0),I.set(Y.toBytes(Y.create(A+H*V)),32),!Mx(I,J,Z))throw Error("sign: Invalid signature produced");return I}function Mx(W,X,G){let{Fn:Y,BASE:J}=oY,Z=F8("signature",W,64),V=F8("message",X),U=F8("publicKey",G,32);try{let Q=Cx(HU(U)),N=HU(Z.subarray(0,32));if(!RV(N,jx,dY.p))return!1;let q=HU(Z.subarray(32,64));if(!RV(q,jx,dY.n))return!1;let A=Tx(Y.toBytes(N),IO(Q),V),H=J.multiplyUnsafe(q).add(Q.multiplyUnsafe(Y.neg(A))),{x:I,y:w}=H.toAffine();if(H.is0()||!wO(w)||I!==N)return!1;return!0}catch(Q){return!1}}var Px=(()=>{let G=(J=qX(48))=>{return Kq(J,dY.n)};Dx.utils.randomSecretKey;function Y(J){let Z=G(J);return{secretKey:Z,publicKey:Ox(Z)}}return{keygen:Y,getPublicKey:Ox,sign:tr,verify:Mx,Point:oY,utils:{randomSecretKey:G,randomPrivateKey:G,taggedHash:TH,lift_x:Cx,pointToBytes:IO,numberToBytesBE:KY,bytesToNumberBE:E4,mod:Q5},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})();var Rx=(W)=>Uint8Array.from(W.match(/.{2}/g).map((X)=>parseInt(X,16))),er=(W)=>[...W].map((X)=>X.toString(16).padStart(2,"0")).join(""),Wa=async(W)=>{try{if(typeof W.pubkey!=="string"||typeof W.sig!=="string"||typeof W.id!=="string")return!1;let X=new TextEncoder().encode(JSON.stringify([0,W.pubkey,W.created_at,W.kind,W.tags,W.content])),G=new Uint8Array(await crypto.subtle.digest("SHA-256",X));if(er(G)!==W.id)return!1;return Px.verify(Rx(W.sig),G,Rx(W.pubkey))}catch{return!1}},Xa=(W,X)=>{if(W.kinds&&!W.kinds.includes(X.kind))return!1;if(W.since&&X.created_at<W.since-60)return!1;if(W["#x"]){let G=(X.tags??[]).filter((Y)=>Y?.[0]==="x").map((Y)=>Y[1]);if(!W["#x"].some((Y)=>G.includes(Y)))return!1}return!0};function Lx({port:W=Number(process.env.PORT)||8080}={}){let X=new Map,G=0,Y=0,J=Bun.serve({port:W,fetch(Z,V){if(V.upgrade(Z))return;return Response.json({relay:"GenosSRV embedded relay",protocol:"nostr (ephemeral subset)",connections:X.size,events:G,dropped:Y})},websocket:{open(Z){X.set(Z,new Map)},close(Z){X.delete(Z)},async message(Z,V){let U;try{U=JSON.parse(String(V))}catch{return}if(!Array.isArray(U))return;let[Q,N,q]=U;if(Q==="REQ"&&typeof N==="string"&&q&&typeof q==="object"){X.get(Z)?.set(N,q),Z.send(JSON.stringify(["EOSE",N]));return}if(Q==="CLOSE"&&typeof N==="string"){X.get(Z)?.delete(N);return}if(Q==="EVENT"&&N&&typeof N==="object"){if(!await Wa(N)){Y++,Z.send(JSON.stringify(["OK",N.id??"",!1,"invalid: bad signature"]));return}G++,Z.send(JSON.stringify(["OK",N.id,!0,""]));for(let[A,H]of X)for(let[I,w]of H)if(Xa(w,N)){try{A.send(JSON.stringify(["EVENT",I,N]))}catch{}break}}}}});return console.info(`\uD83D\uDCE1 Relay listening on :${J.port} (ephemeral, schnorr-verified)`),{port:J.port,stats:()=>({connections:X.size,events:G,dropped:Y}),stop:()=>J.stop(!0)}}var MH="6.15.0";function Ga(W,X,G){let Y=X.split("|").map((Z)=>Z.trim());for(let Z=0;Z<Y.length;Z++)switch(X){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof W===X)return}let J=Error(`invalid value for type ${X}`);throw J.code="INVALID_ARGUMENT",J.argument=`value.${G}`,J.value=W,J}async function n7(W){let X=Object.keys(W);return(await Promise.all(X.map((Y)=>Promise.resolve(W[Y])))).reduce((Y,J,Z)=>{return Y[X[Z]]=J,Y},{})}function A8(W,X,G){for(let Y in X){let J=X[Y],Z=G?G[Y]:null;if(Z)Ga(J,Z,Y);Object.defineProperty(W,Y,{enumerable:!0,value:J,writable:!1})}}function nY(W,X){if(W==null)return"null";if(X==null)X=new Set;if(typeof W==="object"){if(X.has(W))return"[Circular]";X.add(W)}if(Array.isArray(W))return"[ "+W.map((G)=>nY(G,X)).join(", ")+" ]";if(W instanceof Uint8Array){let Y="0x";for(let J=0;J<W.length;J++)Y+="0123456789abcdef"[W[J]>>4],Y+="0123456789abcdef"[W[J]&15];return Y}if(typeof W==="object"&&typeof W.toJSON==="function")return nY(W.toJSON(),X);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 G=Object.keys(W);return G.sort(),"{ "+G.map((Y)=>`${nY(Y,X)}: ${nY(W[Y],X)}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function PH(W,X){return W&&W.code===X}function AU(W,X,G){let Y=W;{let Z=[];if(G){if("message"in G||"code"in G||"name"in G)throw Error(`value will overwrite populated values: ${nY(G)}`);for(let V in G){if(V==="shortMessage")continue;let U=G[V];Z.push(V+"="+nY(U))}}if(Z.push(`code=${X}`),Z.push(`version=${MH}`),Z.length)W+=" ("+Z.join(", ")+")"}let J;switch(X){case"INVALID_ARGUMENT":J=TypeError(W);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":J=RangeError(W);break;default:J=Error(W)}if(A8(J,{code:X}),G)Object.assign(J,G);if(J.shortMessage==null)A8(J,{shortMessage:Y});return J}function Y1(W,X,G,Y){if(!W)throw AU(X,G,Y)}function a(W,X,G,Y){Y1(W,X,"INVALID_ARGUMENT",{argument:G,value:Y})}var Ya=["NFD","NFC","NFKD","NFKC"].reduce((W,X)=>{try{if("test".normalize(X)!=="test")throw Error("bad");if(X==="NFD"){let G=String.fromCharCode(233).normalize("NFD"),Y=String.fromCharCode(101,769);if(G!==Y)throw Error("broken")}W.push(X)}catch(G){}return W},[]);function iY(W){Y1(Ya.indexOf(W)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:W}})}function o4(W,X,G){if(G==null)G="";if(W!==X){let Y=G,J="new";if(G)Y+=".",J+=" "+G;Y1(!1,`private constructor; use ${Y}from* methods`,"UNSUPPORTED_OPERATION",{operation:J})}}function Ex(W,X,G){if(W instanceof Uint8Array){if(G)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),J=2;for(let Z=0;Z<Y.length;Z++)Y[Z]=parseInt(W.substring(J,J+2),16),J+=2;return Y}a(!1,"invalid BytesLike value",X||"value",W)}function E0(W,X){return Ex(W,X,!1)}function U7(W,X){return Ex(W,X,!0)}function L9(W,X){if(typeof W!=="string"||!W.match(/^0x[0-9A-Fa-f]*$/))return!1;if(typeof X==="number"&&W.length!==2+2*X)return!1;if(X===!0&&W.length%2!==0)return!1;return!0}function i7(W){return L9(W,!0)||W instanceof Uint8Array}var Bx="0123456789abcdef";function C0(W){let X=E0(W),G="0x";for(let Y=0;Y<X.length;Y++){let J=X[Y];G+=Bx[(J&240)>>4]+Bx[J&15]}return G}function G8(W){return"0x"+W.map((X)=>C0(X).substring(2)).join("")}function n4(W){if(L9(W,!0))return(W.length-2)/2;return E0(W).length}function rY(W,X,G){let Y=E0(W);if(G!=null&&G>Y.length)Y1(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:Y,length:Y.length,offset:G});return C0(Y.slice(X==null?0:X,G==null?Y.length:G))}function Ja(W,X,G){let Y=E0(W);Y1(X>=Y.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(Y),length:X,offset:X+1});let J=new Uint8Array(X);if(J.fill(0),G)J.set(Y,X-Y.length);else J.set(Y,0);return C0(J)}function z5(W,X){return Ja(W,X,!0)}var jO=BigInt(0),FX=BigInt(1),aY=9007199254740991;function RH(W,X){let G=p1(W,"value"),Y=BigInt(s8(X,"width")),J=FX<<Y-FX;if(G<jO){G=-G,Y1(G<=J,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:W});let Z=(FX<<Y)-FX;return(~G&Z)+FX}else Y1(G<J,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:W});return G}function LH(W,X){let G=zU(W,"value"),Y=BigInt(s8(X,"bits"));return G&(FX<<Y)-FX}function p1(W,X){switch(typeof W){case"bigint":return W;case"number":return a(Number.isInteger(W),"underflow",X||"value",W),a(W>=-aY&&W<=aY,"overflow",X||"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(G){a(!1,`invalid BigNumberish string: ${G.message}`,X||"value",W)}}a(!1,"invalid BigNumberish value",X||"value",W)}function zU(W,X){let G=p1(W,X);return Y1(G>=jO,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:W}),G}var $x="0123456789abcdef";function sY(W){if(W instanceof Uint8Array){let X="0x0";for(let G of W)X+=$x[G>>4],X+=$x[G&15];return BigInt(X)}return p1(W)}function s8(W,X){switch(typeof W){case"bigint":return a(W>=-aY&&W<=aY,"overflow",X||"value",W),Number(W);case"number":return a(Number.isInteger(W),"underflow",X||"value",W),a(W>=-aY&&W<=aY,"overflow",X||"value",W),W;case"string":try{if(W==="")throw Error("empty string");return s8(BigInt(W),X)}catch(G){a(!1,`invalid numeric string: ${G.message}`,X||"value",W)}}a(!1,"invalid numeric value",X||"value",W)}function Q7(W,X){let Y=zU(W,"value").toString(16);if(X==null){if(Y.length%2)Y="0"+Y}else{let J=s8(X,"width");Y1(J*2>=Y.length,`value exceeds width (${J} bytes)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:W});while(Y.length<J*2)Y="0"+Y}return"0x"+Y}function z8(W){let X=zU(W,"value");if(X===jO)return new Uint8Array([]);let G=X.toString(16);if(G.length%2)G="0"+G;let Y=new Uint8Array(G.length/2);for(let J=0;J<Y.length;J++){let Z=J*2;Y[J]=parseInt(G.substring(Z,Z+2),16)}return Y}function BH(W){let X=C0(i7(W)?W:z8(W)).substring(2);while(X.startsWith("0"))X=X.substring(1);if(X==="")X="0";return"0x"+X}var $H="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",EH=null;function Za(W){if(EH==null){EH={};for(let G=0;G<$H.length;G++)EH[$H[G]]=BigInt(G)}let X=EH[W];return a(X!=null,"invalid base58 value","letter",W),X}var Va=BigInt(0),KO=BigInt(58);function FH(W){let X=E0(W),G=sY(X),Y="";while(G)Y=$H[Number(G%KO)]+Y,G/=KO;for(let J=0;J<X.length;J++){if(X[J])break;Y=$H[0]+Y}return Y}function SH(W){let X=Va;for(let G=0;G<W.length;G++)X*=KO,X+=Za(W[G]);return X}function Ua(W,X,G,Y,J){a(!1,`invalid codepoint at offset ${X}; ${W}`,"bytes",G)}function Fx(W,X,G,Y,J){if(W==="BAD_PREFIX"||W==="UNEXPECTED_CONTINUE"){let Z=0;for(let V=X+1;V<G.length;V++){if(G[V]>>6!==2)break;Z++}return Z}if(W==="OVERRUN")return G.length-X-1;return 0}function Qa(W,X,G,Y,J){if(W==="OVERLONG")return a(typeof J==="number","invalid bad code point for replacement","badCodepoint",J),Y.push(J),0;return Y.push(65533),Fx(W,X,G,Y,J)}var Sx=Object.freeze({error:Ua,ignore:Fx,replace:Qa});function Q9(W,X){if(a(typeof W==="string","invalid string value","str",W),X!=null)iY(X),W=W.normalize(X);let G=[];for(let Y=0;Y<W.length;Y++){let J=W.charCodeAt(Y);if(J<128)G.push(J);else if(J<2048)G.push(J>>6|192),G.push(J&63|128);else if((J&64512)==55296){Y++;let Z=W.charCodeAt(Y);a(Y<W.length&&(Z&64512)===56320,"invalid surrogate pair","str",W);let V=65536+((J&1023)<<10)+(Z&1023);G.push(V>>18|240),G.push(V>>12&63|128),G.push(V>>6&63|128),G.push(V&63|128)}else G.push(J>>12|224),G.push(J>>6&63|128),G.push(J&63|128)}return new Uint8Array(G)}function Na(W){let X=W.toString(16);while(X.length<2)X="0"+X;return"0x"+X}function xx(W,X,G){let Y=0;for(let J=0;J<G;J++)Y=Y*256+W[X+J];return Y}function kx(W,X,G,Y){let J=[];while(G<X+1+Y){let Z=_x(W,G);J.push(Z.result),G+=Z.consumed,Y1(G<=X+1+Y,"child data too short","BUFFER_OVERRUN",{buffer:W,length:Y,offset:X})}return{consumed:1+Y,result:J}}function _x(W,X){Y1(W.length!==0,"data too short","BUFFER_OVERRUN",{buffer:W,length:0,offset:1});let G=(Y)=>{Y1(Y<=W.length,"data short segment too short","BUFFER_OVERRUN",{buffer:W,length:W.length,offset:Y})};if(W[X]>=248){let Y=W[X]-247;G(X+1+Y);let J=xx(W,X+1,Y);return G(X+1+Y+J),kx(W,X,X+1+Y,Y+J)}else if(W[X]>=192){let Y=W[X]-192;return G(X+1+Y),kx(W,X,X+1,Y)}else if(W[X]>=184){let Y=W[X]-183;G(X+1+Y);let J=xx(W,X+1,Y);G(X+1+Y+J);let Z=C0(W.slice(X+1+Y,X+1+Y+J));return{consumed:1+Y+J,result:Z}}else if(W[X]>=128){let Y=W[X]-128;G(X+1+Y);let J=C0(W.slice(X+1,X+1+Y));return{consumed:1+Y,result:J}}return{consumed:1,result:Na(W[X])}}function XW(W){let X=E0(W,"data"),G=_x(X,0);return a(G.consumed===X.length,"unexpected junk after rlp payload","data",W),G.result}function yx(W){let X=[];while(W)X.unshift(W&255),W>>=8;return X}function gx(W){if(Array.isArray(W)){let Y=[];if(W.forEach(function(Z){Y=Y.concat(gx(Z))}),Y.length<=55)return Y.unshift(192+Y.length),Y;let J=yx(Y.length);return J.unshift(247+J.length),J.concat(Y)}let X=Array.prototype.slice.call(E0(W,"object"));if(X.length===1&&X[0]<=127)return X;else if(X.length<=55)return X.unshift(128+X.length),X;let G=yx(X.length);return G.unshift(183+G.length),G.concat(X)}var vx="0123456789abcdef";function F5(W){let X="0x";for(let G of gx(W))X+=vx[G>>4],X+=vx[G&15];return X}function xH(W){let X=E0(W,"randomBytes");X[6]=X[6]&15|64,X[8]=X[8]&63|128;let G=C0(X);return[G.substring(2,10),G.substring(10,14),G.substring(14,18),G.substring(18,22),G.substring(22,34)].join("-")}import{createHash as OO,createHmac as ux,pbkdf2Sync as hx,randomBytes as bx}from"crypto";var mx=!1,fx=function(W,X,G){return ux(W,X).update(G).digest()},px=fx;function GW(W,X,G){let Y=E0(X,"key"),J=E0(G,"data");return C0(px(W,Y,J))}GW._=fx;GW.lock=function(){mx=!0};GW.register=function(W){if(mx)throw Error("computeHmac is locked");px=W};Object.freeze(GW);function B9(W){if(!Number.isSafeInteger(W)||W<0)throw Error(`Wrong positive integer: ${W}`)}function IU(W,...X){if(!(W instanceof Uint8Array))throw Error("Expected Uint8Array");if(X.length>0&&!X.includes(W.length))throw Error(`Expected Uint8Array of length ${X}, not of length=${W.length}`)}function kH(W){if(typeof W!=="function"||typeof W.create!=="function")throw Error("Hash should be wrapped by utils.wrapConstructor");B9(W.outputLen),B9(W.blockLen)}function i4(W,X=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(X&&W.finished)throw Error("Hash#digest() has already been called")}function _H(W,X){IU(W);let G=X.outputLen;if(W.length<G)throw Error(`digestInto() expects output buffer of length at least ${G}`)}var yH=BigInt(4294967295),cx=BigInt(32);function Oa(W,X=!1){if(X)return{h:Number(W&yH),l:Number(W>>cx&yH)};return{h:Number(W>>cx&yH)|0,l:Number(W&yH)|0}}function lx(W,X=!1){let G=new Uint32Array(W.length),Y=new Uint32Array(W.length);for(let J=0;J<W.length;J++){let{h:Z,l:V}=Oa(W[J],X);[G[J],Y[J]]=[Z,V]}return[G,Y]}var dx=(W,X,G)=>W<<G|X>>>32-G,ox=(W,X,G)=>X<<G|W>>>32-G,nx=(W,X,G)=>X<<G-32|W>>>64-G,ix=(W,X,G)=>W<<G-32|X>>>64-G;import*as wU from"crypto";var vH=wU&&typeof wU==="object"&&"webcrypto"in wU?wU.webcrypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */var rx=(W)=>W instanceof Uint8Array;var tY=(W)=>new Uint32Array(W.buffer,W.byteOffset,Math.floor(W.byteLength/4)),eY=(W)=>new DataView(W.buffer,W.byteOffset,W.byteLength),N7=(W,X)=>W<<32-X|W>>>X,Da=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!Da)throw Error("Non little-endian hardware is not supported");var Ca=async()=>{};async function gH(W,X,G){let Y=Date.now();for(let J=0;J<W;J++){G(J);let Z=Date.now()-Y;if(Z>=0&&Z<X)continue;await Ca(),Y+=Z}}function Ta(W){if(typeof W!=="string")throw Error(`utf8ToBytes expected string, got ${typeof W}`);return new Uint8Array(new TextEncoder().encode(W))}function r7(W){if(typeof W==="string")W=Ta(W);if(!rx(W))throw Error(`expected Uint8Array, got ${typeof W}`);return W}function ax(...W){let X=new Uint8Array(W.reduce((Y,J)=>Y+J.length,0)),G=0;return W.forEach((Y)=>{if(!rx(Y))throw Error("Uint8Array expected");X.set(Y,G),G+=Y.length}),X}class SX{clone(){return this._cloneInto()}}var Ma={}.toString;function uH(W,X){if(X!==void 0&&Ma.call(X)!=="[object Object]")throw Error("Options should be object or undefined");return Object.assign(W,X)}function WJ(W){let X=(Y)=>W().update(r7(Y)).digest(),G=W();return X.outputLen=G.outputLen,X.blockLen=G.blockLen,X.create=()=>W(),X}function sx(W=32){if(vH&&typeof vH.getRandomValues==="function")return vH.getRandomValues(new Uint8Array(W));throw Error("crypto.getRandomValues must be defined")}var[Wk,Xk,Gk]=[[],[],[]],Pa=BigInt(0),jU=BigInt(1),Ra=BigInt(2),La=BigInt(7),Ba=BigInt(256),Ea=BigInt(113);for(let W=0,X=jU,G=1,Y=0;W<24;W++){[G,Y]=[Y,(2*G+3*Y)%5],Wk.push(2*(5*Y+G)),Xk.push((W+1)*(W+2)/2%64);let J=Pa;for(let Z=0;Z<7;Z++)if(X=(X<<jU^(X>>La)*Ea)%Ba,X&Ra)J^=jU<<(jU<<BigInt(Z))-jU;Gk.push(J)}var[$a,Fa]=lx(Gk,!0),tx=(W,X,G)=>G>32?nx(W,X,G):dx(W,X,G),ex=(W,X,G)=>G>32?ix(W,X,G):ox(W,X,G);function Sa(W,X=24){let G=new Uint32Array(10);for(let Y=24-X;Y<24;Y++){for(let V=0;V<10;V++)G[V]=W[V]^W[V+10]^W[V+20]^W[V+30]^W[V+40];for(let V=0;V<10;V+=2){let U=(V+8)%10,Q=(V+2)%10,N=G[Q],q=G[Q+1],A=tx(N,q,1)^G[U],H=ex(N,q,1)^G[U+1];for(let I=0;I<50;I+=10)W[V+I]^=A,W[V+I+1]^=H}let J=W[2],Z=W[3];for(let V=0;V<24;V++){let U=Xk[V],Q=tx(J,Z,U),N=ex(J,Z,U),q=Wk[V];J=W[q],Z=W[q+1],W[q]=Q,W[q+1]=N}for(let V=0;V<50;V+=10){for(let U=0;U<10;U++)G[U]=W[V+U];for(let U=0;U<10;U++)W[V+U]^=~G[(U+2)%10]&G[(U+4)%10]}W[0]^=$a[Y],W[1]^=Fa[Y]}G.fill(0)}class DO extends SX{constructor(W,X,G,Y=!1,J=24){super();if(this.blockLen=W,this.suffix=X,this.outputLen=G,this.enableXOF=Y,this.rounds=J,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,B9(G),0>=this.blockLen||this.blockLen>=200)throw Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=tY(this.state)}keccak(){Sa(this.state32,this.rounds),this.posOut=0,this.pos=0}update(W){i4(this);let{blockLen:X,state:G}=this;W=r7(W);let Y=W.length;for(let J=0;J<Y;){let Z=Math.min(X-this.pos,Y-J);for(let V=0;V<Z;V++)G[this.pos++]^=W[J++];if(this.pos===X)this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:W,suffix:X,pos:G,blockLen:Y}=this;if(W[G]^=X,(X&128)!==0&&G===Y-1)this.keccak();W[Y-1]^=128,this.keccak()}writeInto(W){i4(this,!1),IU(W),this.finish();let X=this.state,{blockLen:G}=this;for(let Y=0,J=W.length;Y<J;){if(this.posOut>=G)this.keccak();let Z=Math.min(G-this.posOut,J-Y);W.set(X.subarray(this.posOut,this.posOut+Z),Y),this.posOut+=Z,Y+=Z}return W}xofInto(W){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto(W)}xof(W){return B9(W),this.xofInto(new Uint8Array(W))}digestInto(W){if(_H(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:X,suffix:G,outputLen:Y,rounds:J,enableXOF:Z}=this;return W||(W=new DO(X,G,Y,Z,J)),W.state32.set(this.state32),W.pos=this.pos,W.posOut=this.posOut,W.finished=this.finished,W.rounds=J,W.suffix=G,W.outputLen=Y,W.enableXOF=Z,W.destroyed=this.destroyed,W}}var xa=(W,X,G)=>WJ(()=>new DO(X,W,G));var Yk=xa(1,136,32);var Jk=!1,Zk=function(W){return Yk(W)},Vk=Zk;function U8(W){let X=E0(W,"data");return C0(Vk(X))}U8._=Zk;U8.lock=function(){Jk=!0};U8.register=function(W){if(Jk)throw TypeError("keccak256 is locked");Vk=W};Object.freeze(U8);function ka(W,X,G,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(X,G,Y);let J=BigInt(32),Z=BigInt(4294967295),V=Number(G>>J&Z),U=Number(G&Z),Q=Y?4:0,N=Y?0:4;W.setUint32(X+Q,V,Y),W.setUint32(X+N,U,Y)}class KU extends SX{constructor(W,X,G,Y){super();this.blockLen=W,this.outputLen=X,this.padOffset=G,this.isLE=Y,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(W),this.view=eY(this.buffer)}update(W){i4(this);let{view:X,buffer:G,blockLen:Y}=this;W=r7(W);let J=W.length;for(let Z=0;Z<J;){let V=Math.min(Y-this.pos,J-Z);if(V===Y){let U=eY(W);for(;Y<=J-Z;Z+=Y)this.process(U,Z);continue}if(G.set(W.subarray(Z,Z+V),this.pos),this.pos+=V,Z+=V,this.pos===Y)this.process(X,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){i4(this),_H(W,this),this.finished=!0;let{buffer:X,view:G,blockLen:Y,isLE:J}=this,{pos:Z}=this;if(X[Z++]=128,this.buffer.subarray(Z).fill(0),this.padOffset>Y-Z)this.process(G,0),Z=0;for(let q=Z;q<Y;q++)X[q]=0;ka(G,Y-8,BigInt(this.length*8),J),this.process(G,0);let V=eY(W),U=this.outputLen;if(U%4)throw Error("_sha2: outputLen should be aligned to 32bit");let Q=U/4,N=this.get();if(Q>N.length)throw Error("_sha2: outputLen bigger than state");for(let q=0;q<Q;q++)V.setUint32(4*q,N[q],J)}digest(){let{buffer:W,outputLen:X}=this;this.digestInto(W);let G=W.slice(0,X);return this.destroy(),G}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:X,buffer:G,length:Y,finished:J,destroyed:Z,pos:V}=this;if(W.length=Y,W.pos=V,W.finished=J,W.destroyed=Z,Y%X)W.buffer.set(G);return W}}var _a=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),Qk=Uint8Array.from({length:16},(W,X)=>X),ya=Qk.map((W)=>(9*W+5)%16),CO=[Qk],TO=[ya];for(let W=0;W<4;W++)for(let X of[CO,TO])X.push(X[W].map((G)=>_a[G]));var Nk=[[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)),va=CO.map((W,X)=>W.map((G)=>Nk[X][G])),ga=TO.map((W,X)=>W.map((G)=>Nk[X][G])),ua=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),ha=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),hH=(W,X)=>W<<X|W>>>32-X;function Uk(W,X,G,Y){if(W===0)return X^G^Y;else if(W===1)return X&G|~X&Y;else if(W===2)return(X|~G)^Y;else if(W===3)return X&Y|G&~Y;else return X^(G|~Y)}var bH=new Uint32Array(16);class qk extends KU{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:X,h2:G,h3:Y,h4:J}=this;return[W,X,G,Y,J]}set(W,X,G,Y,J){this.h0=W|0,this.h1=X|0,this.h2=G|0,this.h3=Y|0,this.h4=J|0}process(W,X){for(let H=0;H<16;H++,X+=4)bH[H]=W.getUint32(X,!0);let G=this.h0|0,Y=G,J=this.h1|0,Z=J,V=this.h2|0,U=V,Q=this.h3|0,N=Q,q=this.h4|0,A=q;for(let H=0;H<5;H++){let I=4-H,w=ua[H],O=ha[H],T=CO[H],x=TO[H],u=va[H],$=ga[H];for(let S=0;S<16;S++){let h=hH(G+Uk(H,J,V,Q)+bH[T[S]]+w,u[S])+q|0;G=q,q=Q,Q=hH(V,10)|0,V=J,J=h}for(let S=0;S<16;S++){let h=hH(Y+Uk(I,Z,U,N)+bH[x[S]]+O,$[S])+A|0;Y=A,A=N,N=hH(U,10)|0,U=Z,Z=h}}this.set(this.h1+V+N|0,this.h2+Q+A|0,this.h3+q+Y|0,this.h4+G+Z|0,this.h0+J+U|0)}roundClean(){bH.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}}var Hk=WJ(()=>new qk);var Ak=!1,zk=function(W){return Hk(W)},Ik=zk;function YW(W){let X=E0(W,"data");return C0(Ik(X))}YW._=zk;YW.lock=function(){Ak=!0};YW.register=function(W){if(Ak)throw TypeError("ripemd160 is locked");Ik=W};Object.freeze(YW);var wk=!1,jk=function(W,X,G,Y,J){return hx(W,X,G,Y,J)},Kk=jk;function S5(W,X,G,Y,J){let Z=E0(W,"password"),V=E0(X,"salt");return C0(Kk(Z,V,G,Y,J))}S5._=jk;S5.lock=function(){wk=!0};S5.register=function(W){if(wk)throw Error("pbkdf2 is locked");Kk=W};Object.freeze(S5);var Ok=!1,Dk=function(W){return new Uint8Array(bx(W))},Ck=Dk;function x5(W){return Ck(W)}x5._=Dk;x5.lock=function(){Ok=!0};x5.register=function(W){if(Ok)throw Error("randomBytes is locked");Ck=W};Object.freeze(x5);var ba=(W,X,G)=>W&X^~W&G,ma=(W,X,G)=>W&X^W&G^X&G,fa=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]),JW=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ZW=new Uint32Array(64);class Tk extends KU{constructor(){super(64,32,8,!1);this.A=JW[0]|0,this.B=JW[1]|0,this.C=JW[2]|0,this.D=JW[3]|0,this.E=JW[4]|0,this.F=JW[5]|0,this.G=JW[6]|0,this.H=JW[7]|0}get(){let{A:W,B:X,C:G,D:Y,E:J,F:Z,G:V,H:U}=this;return[W,X,G,Y,J,Z,V,U]}set(W,X,G,Y,J,Z,V,U){this.A=W|0,this.B=X|0,this.C=G|0,this.D=Y|0,this.E=J|0,this.F=Z|0,this.G=V|0,this.H=U|0}process(W,X){for(let q=0;q<16;q++,X+=4)ZW[q]=W.getUint32(X,!1);for(let q=16;q<64;q++){let A=ZW[q-15],H=ZW[q-2],I=N7(A,7)^N7(A,18)^A>>>3,w=N7(H,17)^N7(H,19)^H>>>10;ZW[q]=w+ZW[q-7]+I+ZW[q-16]|0}let{A:G,B:Y,C:J,D:Z,E:V,F:U,G:Q,H:N}=this;for(let q=0;q<64;q++){let A=N7(V,6)^N7(V,11)^N7(V,25),H=N+A+ba(V,U,Q)+fa[q]+ZW[q]|0,w=(N7(G,2)^N7(G,13)^N7(G,22))+ma(G,Y,J)|0;N=Q,Q=U,U=V,V=Z+H|0,Z=J,J=Y,Y=G,G=H+w|0}G=G+this.A|0,Y=Y+this.B|0,J=J+this.C|0,Z=Z+this.D|0,V=V+this.E|0,U=U+this.F|0,Q=Q+this.G|0,N=N+this.H|0,this.set(G,Y,J,Z,V,U,Q,N)}roundClean(){ZW.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}var OU=WJ(()=>new Tk);class MO extends SX{constructor(W,X){super();this.finished=!1,this.destroyed=!1,kH(W);let G=r7(X);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,J=new Uint8Array(Y);J.set(G.length>Y?W.create().update(G).digest():G);for(let Z=0;Z<J.length;Z++)J[Z]^=54;this.iHash.update(J),this.oHash=W.create();for(let Z=0;Z<J.length;Z++)J[Z]^=106;this.oHash.update(J),J.fill(0)}update(W){return i4(this),this.iHash.update(W),this}digestInto(W){i4(this),IU(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:X,iHash:G,finished:Y,destroyed:J,blockLen:Z,outputLen:V}=this;return W=W,W.finished=Y,W.destroyed=J,W.blockLen=Z,W.outputLen=V,W.oHash=X._cloneInto(W.oHash),W.iHash=G._cloneInto(W.iHash),W}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var DU=(W,X,G)=>new MO(W,X).update(G).digest();DU.create=(W,X)=>new MO(W,X);function pa(W,X,G,Y){kH(W);let J=uH({dkLen:32,asyncTick:10},Y),{c:Z,dkLen:V,asyncTick:U}=J;if(B9(Z),B9(V),B9(U),Z<1)throw Error("PBKDF2: iterations (c) should be >= 1");let Q=r7(X),N=r7(G),q=new Uint8Array(V),A=DU.create(W,Q),H=A._cloneInto().update(N);return{c:Z,dkLen:V,asyncTick:U,DK:q,PRF:A,PRFSalt:H}}function ca(W,X,G,Y,J){if(W.destroy(),X.destroy(),Y)Y.destroy();return J.fill(0),G}function PO(W,X,G,Y){let{c:J,dkLen:Z,DK:V,PRF:U,PRFSalt:Q}=pa(W,X,G,Y),N,q=new Uint8Array(4),A=eY(q),H=new Uint8Array(U.outputLen);for(let I=1,w=0;w<Z;I++,w+=U.outputLen){let O=V.subarray(w,w+U.outputLen);A.setInt32(0,I,!1),(N=Q._cloneInto(N)).update(q).digestInto(H),O.set(H.subarray(0,O.length));for(let T=1;T<J;T++){U._cloneInto(N).update(H).digestInto(H);for(let x=0;x<O.length;x++)O[x]^=H[x]}}return ca(U,Q,V,N,H)}var s1=(W,X)=>W<<X|W>>>32-X;function Mk(W,X,G,Y,J,Z){let V=W[X++]^G[Y++],U=W[X++]^G[Y++],Q=W[X++]^G[Y++],N=W[X++]^G[Y++],q=W[X++]^G[Y++],A=W[X++]^G[Y++],H=W[X++]^G[Y++],I=W[X++]^G[Y++],w=W[X++]^G[Y++],O=W[X++]^G[Y++],T=W[X++]^G[Y++],x=W[X++]^G[Y++],u=W[X++]^G[Y++],$=W[X++]^G[Y++],S=W[X++]^G[Y++],h=W[X++]^G[Y++],l=V,p=U,t=Q,_=N,e=q,H0=A,g=H,d=I,P=w,E=O,f=T,r=x,o=u,B=$,F=S,y=h;for(let v=0;v<8;v+=2)e^=s1(l+o|0,7),P^=s1(e+l|0,9),o^=s1(P+e|0,13),l^=s1(o+P|0,18),E^=s1(H0+p|0,7),B^=s1(E+H0|0,9),p^=s1(B+E|0,13),H0^=s1(p+B|0,18),F^=s1(f+g|0,7),t^=s1(F+f|0,9),g^=s1(t+F|0,13),f^=s1(g+t|0,18),_^=s1(y+r|0,7),d^=s1(_+y|0,9),r^=s1(d+_|0,13),y^=s1(r+d|0,18),p^=s1(l+_|0,7),t^=s1(p+l|0,9),_^=s1(t+p|0,13),l^=s1(_+t|0,18),g^=s1(H0+e|0,7),d^=s1(g+H0|0,9),e^=s1(d+g|0,13),H0^=s1(e+d|0,18),r^=s1(f+E|0,7),P^=s1(r+f|0,9),E^=s1(P+r|0,13),f^=s1(E+P|0,18),o^=s1(y+F|0,7),B^=s1(o+y|0,9),F^=s1(B+o|0,13),y^=s1(F+B|0,18);J[Z++]=V+l|0,J[Z++]=U+p|0,J[Z++]=Q+t|0,J[Z++]=N+_|0,J[Z++]=q+e|0,J[Z++]=A+H0|0,J[Z++]=H+g|0,J[Z++]=I+d|0,J[Z++]=w+P|0,J[Z++]=O+E|0,J[Z++]=T+f|0,J[Z++]=x+r|0,J[Z++]=u+o|0,J[Z++]=$+B|0,J[Z++]=S+F|0,J[Z++]=h+y|0}function XJ(W,X,G,Y,J){let Z=Y+0,V=Y+16*J;for(let U=0;U<16;U++)G[V+U]=W[X+(2*J-1)*16+U];for(let U=0;U<J;U++,Z+=16,X+=16){if(Mk(G,V,W,X,G,Z),U>0)V+=16;Mk(G,Z,W,X+=16,G,V)}}function Pk(W,X,G){let Y=uH({dkLen:32,asyncTick:10,maxmem:1073742848},G),{N:J,r:Z,p:V,dkLen:U,asyncTick:Q,maxmem:N,onProgress:q}=Y;if(B9(J),B9(Z),B9(V),B9(U),B9(Q),B9(N),q!==void 0&&typeof q!=="function")throw Error("progressCb should be function");let A=128*Z,H=A/4;if(J<=1||(J&J-1)!==0||J>=2**(A/8)||J>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(V<0||V>137438953440/A)throw Error("Scrypt: p must be a positive integer less than or equal to ((2^32 - 1) * 32) / (128 * r)");if(U<0||U>137438953440)throw Error("Scrypt: dkLen should be positive integer less than or equal to (2^32 - 1) * 32");let I=A*(J+V);if(I>N)throw Error(`Scrypt: parameters too large, ${I} (128 * r * (N + p)) > ${N} (maxmem)`);let w=PO(OU,W,X,{c:1,dkLen:A*V}),O=tY(w),T=tY(new Uint8Array(A*J)),x=tY(new Uint8Array(A)),u=()=>{};if(q){let $=2*J*V,S=Math.max(Math.floor($/1e4),1),h=0;u=()=>{if(h++,q&&(!(h%S)||h===$))q(h/$)}}return{N:J,r:Z,p:V,dkLen:U,blockSize32:H,V:T,B32:O,B:w,tmp:x,blockMixCb:u,asyncTick:Q}}function Rk(W,X,G,Y,J){let Z=PO(OU,W,G,{c:1,dkLen:X});return G.fill(0),Y.fill(0),J.fill(0),Z}function Lk(W,X,G){let{N:Y,r:J,p:Z,dkLen:V,blockSize32:U,V:Q,B32:N,B:q,tmp:A,blockMixCb:H}=Pk(W,X,G);for(let I=0;I<Z;I++){let w=U*I;for(let O=0;O<U;O++)Q[O]=N[w+O];for(let O=0,T=0;O<Y-1;O++)XJ(Q,T,Q,T+=U,J),H();XJ(Q,(Y-1)*U,N,w,J),H();for(let O=0;O<Y;O++){let T=N[w+U-16]%Y;for(let x=0;x<U;x++)A[x]=N[w+x]^Q[T*U+x];XJ(A,0,N,w,J),H()}}return Rk(W,V,q,Q,A)}async function Bk(W,X,G){let{N:Y,r:J,p:Z,dkLen:V,blockSize32:U,V:Q,B32:N,B:q,tmp:A,blockMixCb:H,asyncTick:I}=Pk(W,X,G);for(let w=0;w<Z;w++){let O=U*w;for(let x=0;x<U;x++)Q[x]=N[O+x];let T=0;await gH(Y-1,I,()=>{XJ(Q,T,Q,T+=U,J),H()}),XJ(Q,(Y-1)*U,N,O,J),H(),await gH(Y,I,()=>{let x=N[O+U-16]%Y;for(let u=0;u<U;u++)A[u]=N[O+u]^Q[x*U+u];XJ(A,0,N,O,J),H()})}return Rk(W,V,q,Q,A)}var Ek=!1,$k=!1,Fk=async function(W,X,G,Y,J,Z,V){return await Bk(W,X,{N:G,r:Y,p:J,dkLen:Z,onProgress:V})},Sk=function(W,X,G,Y,J,Z){return Lk(W,X,{N:G,r:Y,p:J,dkLen:Z})},xk=Fk,kk=Sk;async function VW(W,X,G,Y,J,Z,V){let U=E0(W,"passwd"),Q=E0(X,"salt");return C0(await xk(U,Q,G,Y,J,Z,V))}VW._=Fk;VW.lock=function(){$k=!0};VW.register=function(W){if($k)throw Error("scrypt is locked");xk=W};Object.freeze(VW);function UW(W,X,G,Y,J,Z){let V=E0(W,"passwd"),U=E0(X,"salt");return C0(kk(V,U,G,Y,J,Z))}UW._=Sk;UW.lock=function(){Ek=!0};UW.register=function(W){if(Ek)throw Error("scryptSync is locked");kk=W};Object.freeze(UW);var _k=function(W){return OO("sha256").update(W).digest()},yk=function(W){return OO("sha512").update(W).digest()},vk=_k,gk=yk,uk=!1,hk=!1;function E9(W){let X=E0(W,"data");return C0(vk(X))}E9._=_k;E9.lock=function(){uk=!0};E9.register=function(W){if(uk)throw Error("sha256 is locked");vk=W};Object.freeze(E9);function mH(W){let X=E0(W,"data");return C0(gk(X))}mH._=yk;mH.lock=function(){hk=!0};mH.register=function(W){if(hk)throw Error("sha512 is locked");gk=W};Object.freeze(E9);var EO={};zA(EO,{validateObject:()=>NW,utf8ToBytes:()=>ia,numberToVarBytesBE:()=>oa,numberToHexUnpadded:()=>fk,numberToBytesLE:()=>lH,numberToBytesBE:()=>QW,hexToNumber:()=>LO,hexToBytes:()=>kX,equalBytes:()=>na,ensureBytes:()=>I5,createHmacDrbg:()=>BO,concatBytes:()=>GJ,bytesToNumberLE:()=>cH,bytesToNumberBE:()=>r4,bytesToHex:()=>xX,bitSet:()=>sa,bitMask:()=>CU,bitLen:()=>ra,bitGet:()=>aa});/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var mk=BigInt(0),fH=BigInt(1),la=BigInt(2),pH=(W)=>W instanceof Uint8Array,da=Array.from({length:256},(W,X)=>X.toString(16).padStart(2,"0"));function xX(W){if(!pH(W))throw Error("Uint8Array expected");let X="";for(let G=0;G<W.length;G++)X+=da[W[G]];return X}function fk(W){let X=W.toString(16);return X.length&1?`0${X}`:X}function LO(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return BigInt(W===""?"0":`0x${W}`)}function kX(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);let X=W.length;if(X%2)throw Error("padded hex string expected, got unpadded hex of length "+X);let G=new Uint8Array(X/2);for(let Y=0;Y<G.length;Y++){let J=Y*2,Z=W.slice(J,J+2),V=Number.parseInt(Z,16);if(Number.isNaN(V)||V<0)throw Error("Invalid byte sequence");G[Y]=V}return G}function r4(W){return LO(xX(W))}function cH(W){if(!pH(W))throw Error("Uint8Array expected");return LO(xX(Uint8Array.from(W).reverse()))}function QW(W,X){return kX(W.toString(16).padStart(X*2,"0"))}function lH(W,X){return QW(W,X).reverse()}function oa(W){return kX(fk(W))}function I5(W,X,G){let Y;if(typeof X==="string")try{Y=kX(X)}catch(Z){throw Error(`${W} must be valid hex string, got "${X}". Cause: ${Z}`)}else if(pH(X))Y=Uint8Array.from(X);else throw Error(`${W} must be hex string or Uint8Array`);let J=Y.length;if(typeof G==="number"&&J!==G)throw Error(`${W} expected ${G} bytes, got ${J}`);return Y}function GJ(...W){let X=new Uint8Array(W.reduce((Y,J)=>Y+J.length,0)),G=0;return W.forEach((Y)=>{if(!pH(Y))throw Error("Uint8Array expected");X.set(Y,G),G+=Y.length}),X}function na(W,X){if(W.length!==X.length)return!1;for(let G=0;G<W.length;G++)if(W[G]!==X[G])return!1;return!0}function ia(W){if(typeof W!=="string")throw Error(`utf8ToBytes expected string, got ${typeof W}`);return new Uint8Array(new TextEncoder().encode(W))}function ra(W){let X;for(X=0;W>mk;W>>=fH,X+=1);return X}function aa(W,X){return W>>BigInt(X)&fH}var sa=(W,X,G)=>{return W|(G?fH:mk)<<BigInt(X)},CU=(W)=>(la<<BigInt(W-1))-fH,RO=(W)=>new Uint8Array(W),bk=(W)=>Uint8Array.from(W);function BO(W,X,G){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof X!=="number"||X<2)throw Error("qByteLen must be a number");if(typeof G!=="function")throw Error("hmacFn must be a function");let Y=RO(W),J=RO(W),Z=0,V=()=>{Y.fill(1),J.fill(0),Z=0},U=(...A)=>G(J,Y,...A),Q=(A=RO())=>{if(J=U(bk([0]),A),Y=U(),A.length===0)return;J=U(bk([1]),A),Y=U()},N=()=>{if(Z++>=1000)throw Error("drbg: tried 1000 values");let A=0,H=[];while(A<X){Y=U();let I=Y.slice();H.push(I),A+=Y.length}return GJ(...H)};return(A,H)=>{V(),Q(A);let I=void 0;while(!(I=H(N())))Q();return V(),I}}var ta={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,X)=>X.Fp.isValid(W),hash:(W)=>typeof W==="function"&&Number.isSafeInteger(W.outputLen)};function NW(W,X,G={}){let Y=(J,Z,V)=>{let U=ta[Z];if(typeof U!=="function")throw Error(`Invalid validator "${Z}", expected function`);let Q=W[J];if(V&&Q===void 0)return;if(!U(Q,W))throw Error(`Invalid param ${String(J)}=${Q} (${typeof Q}), expected ${Z}`)};for(let[J,Z]of Object.entries(X))Y(J,Z,!1);for(let[J,Z]of Object.entries(G))Y(J,Z,!0);return W}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var n8=BigInt(0),x8=BigInt(1),_X=BigInt(2),ea=BigInt(3),$O=BigInt(4),pk=BigInt(5),ck=BigInt(8),Ws=BigInt(9),Xs=BigInt(16);function $9(W,X){let G=W%X;return G>=n8?G:X+G}function Gs(W,X,G){if(G<=n8||X<n8)throw Error("Expected power/modulo > 0");if(G===x8)return n8;let Y=x8;while(X>n8){if(X&x8)Y=Y*W%G;W=W*W%G,X>>=x8}return Y}function w5(W,X,G){let Y=W;while(X-- >n8)Y*=Y,Y%=G;return Y}function dH(W,X){if(W===n8||X<=n8)throw Error(`invert: expected positive integers, got n=${W} mod=${X}`);let G=$9(W,X),Y=X,J=n8,Z=x8,V=x8,U=n8;while(G!==n8){let N=Y/G,q=Y%G,A=J-V*N,H=Z-U*N;Y=G,G=q,J=V,Z=U,V=A,U=H}if(Y!==x8)throw Error("invert: does not exist");return $9(J,X)}function Ys(W){let X=(W-x8)/_X,G,Y,J;for(G=W-x8,Y=0;G%_X===n8;G/=_X,Y++);for(J=_X;J<W&&Gs(J,X,W)!==W-x8;J++);if(Y===1){let V=(W+x8)/$O;return function(Q,N){let q=Q.pow(N,V);if(!Q.eql(Q.sqr(q),N))throw Error("Cannot find square root");return q}}let Z=(G+x8)/_X;return function(U,Q){if(U.pow(Q,X)===U.neg(U.ONE))throw Error("Cannot find square root");let N=Y,q=U.pow(U.mul(U.ONE,J),G),A=U.pow(Q,Z),H=U.pow(Q,G);while(!U.eql(H,U.ONE)){if(U.eql(H,U.ZERO))return U.ZERO;let I=1;for(let O=U.sqr(H);I<N;I++){if(U.eql(O,U.ONE))break;O=U.sqr(O)}let w=U.pow(q,x8<<BigInt(N-I-1));q=U.sqr(w),A=U.mul(A,w),H=U.mul(H,q),N=I}return A}}function Js(W){if(W%$O===ea){let X=(W+x8)/$O;return function(Y,J){let Z=Y.pow(J,X);if(!Y.eql(Y.sqr(Z),J))throw Error("Cannot find square root");return Z}}if(W%ck===pk){let X=(W-pk)/ck;return function(Y,J){let Z=Y.mul(J,_X),V=Y.pow(Z,X),U=Y.mul(J,V),Q=Y.mul(Y.mul(U,_X),V),N=Y.mul(U,Y.sub(Q,Y.ONE));if(!Y.eql(Y.sqr(N),J))throw Error("Cannot find square root");return N}}if(W%Xs===Ws);return Ys(W)}var Zs=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function FO(W){let X={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},G=Zs.reduce((Y,J)=>{return Y[J]="function",Y},X);return NW(W,G)}function Vs(W,X,G){if(G<n8)throw Error("Expected power > 0");if(G===n8)return W.ONE;if(G===x8)return X;let Y=W.ONE,J=X;while(G>n8){if(G&x8)Y=W.mul(Y,J);J=W.sqr(J),G>>=x8}return Y}function Us(W,X){let G=Array(X.length),Y=X.reduce((Z,V,U)=>{if(W.is0(V))return Z;return G[U]=Z,W.mul(Z,V)},W.ONE),J=W.inv(Y);return X.reduceRight((Z,V,U)=>{if(W.is0(V))return Z;return G[U]=W.mul(Z,G[U]),W.mul(Z,V)},J),G}function SO(W,X){let G=X!==void 0?X:W.toString(2).length,Y=Math.ceil(G/8);return{nBitLength:G,nByteLength:Y}}function lk(W,X,G=!1,Y={}){if(W<=n8)throw Error(`Expected Field ORDER > 0, got ${W}`);let{nBitLength:J,nByteLength:Z}=SO(W,X);if(Z>2048)throw Error("Field lengths over 2048 bytes are not supported");let V=Js(W),U=Object.freeze({ORDER:W,BITS:J,BYTES:Z,MASK:CU(J),ZERO:n8,ONE:x8,create:(Q)=>$9(Q,W),isValid:(Q)=>{if(typeof Q!=="bigint")throw Error(`Invalid field element: expected bigint, got ${typeof Q}`);return n8<=Q&&Q<W},is0:(Q)=>Q===n8,isOdd:(Q)=>(Q&x8)===x8,neg:(Q)=>$9(-Q,W),eql:(Q,N)=>Q===N,sqr:(Q)=>$9(Q*Q,W),add:(Q,N)=>$9(Q+N,W),sub:(Q,N)=>$9(Q-N,W),mul:(Q,N)=>$9(Q*N,W),pow:(Q,N)=>Vs(U,Q,N),div:(Q,N)=>$9(Q*dH(N,W),W),sqrN:(Q)=>Q*Q,addN:(Q,N)=>Q+N,subN:(Q,N)=>Q-N,mulN:(Q,N)=>Q*N,inv:(Q)=>dH(Q,W),sqrt:Y.sqrt||((Q)=>V(U,Q)),invertBatch:(Q)=>Us(U,Q),cmov:(Q,N,q)=>q?N:Q,toBytes:(Q)=>G?lH(Q,Z):QW(Q,Z),fromBytes:(Q)=>{if(Q.length!==Z)throw Error(`Fp.fromBytes: expected ${Z}, got ${Q.length}`);return G?cH(Q):r4(Q)}});return Object.freeze(U)}function dk(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let X=W.toString(2).length;return Math.ceil(X/8)}function xO(W){let X=dk(W);return X+Math.ceil(X/2)}function ok(W,X,G=!1){let Y=W.length,J=dk(X),Z=xO(X);if(Y<16||Y<Z||Y>1024)throw Error(`expected ${Z}-1024 bytes of input, got ${Y}`);let V=G?r4(W):cH(W),U=$9(V,X-x8)+x8;return G?lH(U,J):QW(U,J)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Ns=BigInt(0),kO=BigInt(1);function nk(W,X){let G=(J,Z)=>{let V=Z.negate();return J?V:Z},Y=(J)=>{let Z=Math.ceil(X/J)+1,V=2**(J-1);return{windows:Z,windowSize:V}};return{constTimeNegate:G,unsafeLadder(J,Z){let V=W.ZERO,U=J;while(Z>Ns){if(Z&kO)V=V.add(U);U=U.double(),Z>>=kO}return V},precomputeWindow(J,Z){let{windows:V,windowSize:U}=Y(Z),Q=[],N=J,q=N;for(let A=0;A<V;A++){q=N,Q.push(q);for(let H=1;H<U;H++)q=q.add(N),Q.push(q);N=q.double()}return Q},wNAF(J,Z,V){let{windows:U,windowSize:Q}=Y(J),N=W.ZERO,q=W.BASE,A=BigInt(2**J-1),H=2**J,I=BigInt(J);for(let w=0;w<U;w++){let O=w*Q,T=Number(V&A);if(V>>=I,T>Q)T-=H,V+=kO;let x=O,u=O+Math.abs(T)-1,$=w%2!==0,S=T<0;if(T===0)q=q.add(G($,Z[x]));else N=N.add(G(S,Z[u]))}return{p:N,f:q}},wNAFCached(J,Z,V,U){let Q=J._WINDOW_SIZE||1,N=Z.get(J);if(!N){if(N=this.precomputeWindow(J,Q),Q!==1)Z.set(J,U(N))}return this.wNAF(Q,N,V)}}}function _O(W){return FO(W.Fp),NW(W,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...SO(W.n,W.nBitLength),...W,...{p:W.Fp.ORDER}})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function qs(W){let X=_O(W);NW(X,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:G,Fp:Y,a:J}=X;if(G){if(!Y.eql(J,Y.ZERO))throw Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof G!=="object"||typeof G.beta!=="bigint"||typeof G.splitScalar!=="function")throw Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...X})}var{bytesToNumberBE:Hs,hexToBytes:As}=EO,yX={Err:class extends Error{constructor(X=""){super(X)}},_parseInt(W){let{Err:X}=yX;if(W.length<2||W[0]!==2)throw new X("Invalid signature integer tag");let G=W[1],Y=W.subarray(2,G+2);if(!G||Y.length!==G)throw new X("Invalid signature integer: wrong length");if(Y[0]&128)throw new X("Invalid signature integer: negative");if(Y[0]===0&&!(Y[1]&128))throw new X("Invalid signature integer: unnecessary leading zero");return{d:Hs(Y),l:W.subarray(G+2)}},toSig(W){let{Err:X}=yX,G=typeof W==="string"?As(W):W;if(!(G instanceof Uint8Array))throw Error("ui8a expected");let Y=G.length;if(Y<2||G[0]!=48)throw new X("Invalid signature tag");if(G[1]!==Y-2)throw new X("Invalid signature: incorrect length");let{d:J,l:Z}=yX._parseInt(G.subarray(2)),{d:V,l:U}=yX._parseInt(Z);if(U.length)throw new X("Invalid signature: left bytes after parsing");return{r:J,s:V}},hexFromSig(W){let X=(N)=>Number.parseInt(N[0],16)&8?"00"+N:N,G=(N)=>{let q=N.toString(16);return q.length&1?`0${q}`:q},Y=X(G(W.s)),J=X(G(W.r)),Z=Y.length/2,V=J.length/2,U=G(Z),Q=G(V);return`30${G(V+Z+4)}02${Q}${J}02${U}${Y}`}},a4=BigInt(0),k5=BigInt(1),Oj0=BigInt(2),ik=BigInt(3),Dj0=BigInt(4);function zs(W){let X=qs(W),{Fp:G}=X,Y=X.toBytes||((w,O,T)=>{let x=O.toAffine();return GJ(Uint8Array.from([4]),G.toBytes(x.x),G.toBytes(x.y))}),J=X.fromBytes||((w)=>{let O=w.subarray(1),T=G.fromBytes(O.subarray(0,G.BYTES)),x=G.fromBytes(O.subarray(G.BYTES,2*G.BYTES));return{x:T,y:x}});function Z(w){let{a:O,b:T}=X,x=G.sqr(w),u=G.mul(x,w);return G.add(G.add(u,G.mul(w,O)),T)}if(!G.eql(G.sqr(X.Gy),Z(X.Gx)))throw Error("bad generator point: equation left != right");function V(w){return typeof w==="bigint"&&a4<w&&w<X.n}function U(w){if(!V(w))throw Error("Expected valid bigint: 0 < bigint < curve.n")}function Q(w){let{allowedPrivateKeyLengths:O,nByteLength:T,wrapPrivateKey:x,n:u}=X;if(O&&typeof w!=="bigint"){if(w instanceof Uint8Array)w=xX(w);if(typeof w!=="string"||!O.includes(w.length))throw Error("Invalid key");w=w.padStart(T*2,"0")}let $;try{$=typeof w==="bigint"?w:r4(I5("private key",w,T))}catch(S){throw Error(`private key must be ${T} bytes, hex or bigint, not ${typeof w}`)}if(x)$=$9($,u);return U($),$}let N=new Map;function q(w){if(!(w instanceof A))throw Error("ProjectivePoint expected")}class A{constructor(w,O,T){if(this.px=w,this.py=O,this.pz=T,w==null||!G.isValid(w))throw Error("x required");if(O==null||!G.isValid(O))throw Error("y required");if(T==null||!G.isValid(T))throw Error("z required")}static fromAffine(w){let{x:O,y:T}=w||{};if(!w||!G.isValid(O)||!G.isValid(T))throw Error("invalid affine point");if(w instanceof A)throw Error("projective point not allowed");let x=(u)=>G.eql(u,G.ZERO);if(x(O)&&x(T))return A.ZERO;return new A(O,T,G.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(w){let O=G.invertBatch(w.map((T)=>T.pz));return w.map((T,x)=>T.toAffine(O[x])).map(A.fromAffine)}static fromHex(w){let O=A.fromAffine(J(I5("pointHex",w)));return O.assertValidity(),O}static fromPrivateKey(w){return A.BASE.multiply(Q(w))}_setWindowSize(w){this._WINDOW_SIZE=w,N.delete(this)}assertValidity(){if(this.is0()){if(X.allowInfinityPoint&&!G.is0(this.py))return;throw Error("bad point: ZERO")}let{x:w,y:O}=this.toAffine();if(!G.isValid(w)||!G.isValid(O))throw Error("bad point: x or y not FE");let T=G.sqr(O),x=Z(w);if(!G.eql(T,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(G.isOdd)return!G.isOdd(w);throw Error("Field doesn't support isOdd")}equals(w){q(w);let{px:O,py:T,pz:x}=this,{px:u,py:$,pz:S}=w,h=G.eql(G.mul(O,S),G.mul(u,x)),l=G.eql(G.mul(T,S),G.mul($,x));return h&&l}negate(){return new A(this.px,G.neg(this.py),this.pz)}double(){let{a:w,b:O}=X,T=G.mul(O,ik),{px:x,py:u,pz:$}=this,S=G.ZERO,h=G.ZERO,l=G.ZERO,p=G.mul(x,x),t=G.mul(u,u),_=G.mul($,$),e=G.mul(x,u);return e=G.add(e,e),l=G.mul(x,$),l=G.add(l,l),S=G.mul(w,l),h=G.mul(T,_),h=G.add(S,h),S=G.sub(t,h),h=G.add(t,h),h=G.mul(S,h),S=G.mul(e,S),l=G.mul(T,l),_=G.mul(w,_),e=G.sub(p,_),e=G.mul(w,e),e=G.add(e,l),l=G.add(p,p),p=G.add(l,p),p=G.add(p,_),p=G.mul(p,e),h=G.add(h,p),_=G.mul(u,$),_=G.add(_,_),p=G.mul(_,e),S=G.sub(S,p),l=G.mul(_,t),l=G.add(l,l),l=G.add(l,l),new A(S,h,l)}add(w){q(w);let{px:O,py:T,pz:x}=this,{px:u,py:$,pz:S}=w,h=G.ZERO,l=G.ZERO,p=G.ZERO,t=X.a,_=G.mul(X.b,ik),e=G.mul(O,u),H0=G.mul(T,$),g=G.mul(x,S),d=G.add(O,T),P=G.add(u,$);d=G.mul(d,P),P=G.add(e,H0),d=G.sub(d,P),P=G.add(O,x);let E=G.add(u,S);return P=G.mul(P,E),E=G.add(e,g),P=G.sub(P,E),E=G.add(T,x),h=G.add($,S),E=G.mul(E,h),h=G.add(H0,g),E=G.sub(E,h),p=G.mul(t,P),h=G.mul(_,g),p=G.add(h,p),h=G.sub(H0,p),p=G.add(H0,p),l=G.mul(h,p),H0=G.add(e,e),H0=G.add(H0,e),g=G.mul(t,g),P=G.mul(_,P),H0=G.add(H0,g),g=G.sub(e,g),g=G.mul(t,g),P=G.add(P,g),e=G.mul(H0,P),l=G.add(l,e),e=G.mul(E,P),h=G.mul(d,h),h=G.sub(h,e),e=G.mul(d,H0),p=G.mul(E,p),p=G.add(p,e),new A(h,l,p)}subtract(w){return this.add(w.negate())}is0(){return this.equals(A.ZERO)}wNAF(w){return I.wNAFCached(this,N,w,(O)=>{let T=G.invertBatch(O.map((x)=>x.pz));return O.map((x,u)=>x.toAffine(T[u])).map(A.fromAffine)})}multiplyUnsafe(w){let O=A.ZERO;if(w===a4)return O;if(U(w),w===k5)return this;let{endo:T}=X;if(!T)return I.unsafeLadder(this,w);let{k1neg:x,k1:u,k2neg:$,k2:S}=T.splitScalar(w),h=O,l=O,p=this;while(u>a4||S>a4){if(u&k5)h=h.add(p);if(S&k5)l=l.add(p);p=p.double(),u>>=k5,S>>=k5}if(x)h=h.negate();if($)l=l.negate();return l=new A(G.mul(l.px,T.beta),l.py,l.pz),h.add(l)}multiply(w){U(w);let O=w,T,x,{endo:u}=X;if(u){let{k1neg:$,k1:S,k2neg:h,k2:l}=u.splitScalar(O),{p,f:t}=this.wNAF(S),{p:_,f:e}=this.wNAF(l);p=I.constTimeNegate($,p),_=I.constTimeNegate(h,_),_=new A(G.mul(_.px,u.beta),_.py,_.pz),T=p.add(_),x=t.add(e)}else{let{p:$,f:S}=this.wNAF(O);T=$,x=S}return A.normalizeZ([T,x])[0]}multiplyAndAddUnsafe(w,O,T){let x=A.BASE,u=(S,h)=>h===a4||h===k5||!S.equals(x)?S.multiplyUnsafe(h):S.multiply(h),$=u(this,O).add(u(w,T));return $.is0()?void 0:$}toAffine(w){let{px:O,py:T,pz:x}=this,u=this.is0();if(w==null)w=u?G.ONE:G.inv(x);let $=G.mul(O,w),S=G.mul(T,w),h=G.mul(x,w);if(u)return{x:G.ZERO,y:G.ZERO};if(!G.eql(h,G.ONE))throw Error("invZ was invalid");return{x:$,y:S}}isTorsionFree(){let{h:w,isTorsionFree:O}=X;if(w===k5)return!0;if(O)return O(A,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:w,clearCofactor:O}=X;if(w===k5)return this;if(O)return O(A,this);return this.multiplyUnsafe(X.h)}toRawBytes(w=!0){return this.assertValidity(),Y(A,this,w)}toHex(w=!0){return xX(this.toRawBytes(w))}}A.BASE=new A(X.Gx,X.Gy,G.ONE),A.ZERO=new A(G.ZERO,G.ONE,G.ZERO);let H=X.nBitLength,I=nk(A,X.endo?Math.ceil(H/2):H);return{CURVE:X,ProjectivePoint:A,normPrivateKeyToScalar:Q,weierstrassEquation:Z,isWithinCurveOrder:V}}function Is(W){let X=_O(W);return NW(X,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...X})}function rk(W){let X=Is(W),{Fp:G,n:Y}=X,J=G.BYTES+1,Z=2*G.BYTES+1;function V(E){return a4<E&&E<G.ORDER}function U(E){return $9(E,Y)}function Q(E){return dH(E,Y)}let{ProjectivePoint:N,normPrivateKeyToScalar:q,weierstrassEquation:A,isWithinCurveOrder:H}=zs({...X,toBytes(E,f,r){let o=f.toAffine(),B=G.toBytes(o.x),F=GJ;if(r)return F(Uint8Array.from([f.hasEvenY()?2:3]),B);else return F(Uint8Array.from([4]),B,G.toBytes(o.y))},fromBytes(E){let f=E.length,r=E[0],o=E.subarray(1);if(f===J&&(r===2||r===3)){let B=r4(o);if(!V(B))throw Error("Point is not on curve");let F=A(B),y=G.sqrt(F),v=(y&k5)===k5;if((r&1)===1!==v)y=G.neg(y);return{x:B,y}}else if(f===Z&&r===4){let B=G.fromBytes(o.subarray(0,G.BYTES)),F=G.fromBytes(o.subarray(G.BYTES,2*G.BYTES));return{x:B,y:F}}else throw Error(`Point of length ${f} was invalid. Expected ${J} compressed bytes or ${Z} uncompressed bytes`)}}),I=(E)=>xX(QW(E,X.nByteLength));function w(E){let f=Y>>k5;return E>f}function O(E){return w(E)?U(-E):E}let T=(E,f,r)=>r4(E.slice(f,r));class x{constructor(E,f,r){this.r=E,this.s=f,this.recovery=r,this.assertValidity()}static fromCompact(E){let f=X.nByteLength;return E=I5("compactSignature",E,f*2),new x(T(E,0,f),T(E,f,2*f))}static fromDER(E){let{r:f,s:r}=yX.toSig(I5("DER",E));return new x(f,r)}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(E){return new x(this.r,this.s,E)}recoverPublicKey(E){let{r:f,s:r,recovery:o}=this,B=p(I5("msgHash",E));if(o==null||![0,1,2,3].includes(o))throw Error("recovery id invalid");let F=o===2||o===3?f+X.n:f;if(F>=G.ORDER)throw Error("recovery id 2 or 3 invalid");let y=(o&1)===0?"02":"03",v=N.fromHex(y+I(F)),R=Q(F),m=U(-B*R),J0=U(r*R),U0=N.BASE.multiplyAndAddUnsafe(v,m,J0);if(!U0)throw Error("point at infinify");return U0.assertValidity(),U0}hasHighS(){return w(this.s)}normalizeS(){return this.hasHighS()?new x(this.r,U(-this.s),this.recovery):this}toDERRawBytes(){return kX(this.toDERHex())}toDERHex(){return yX.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return kX(this.toCompactHex())}toCompactHex(){return I(this.r)+I(this.s)}}let u={isValidPrivateKey(E){try{return q(E),!0}catch(f){return!1}},normPrivateKeyToScalar:q,randomPrivateKey:()=>{let E=xO(X.n);return ok(X.randomBytes(E),X.n)},precompute(E=8,f=N.BASE){return f._setWindowSize(E),f.multiply(BigInt(3)),f}};function $(E,f=!0){return N.fromPrivateKey(E).toRawBytes(f)}function S(E){let f=E instanceof Uint8Array,r=typeof E==="string",o=(f||r)&&E.length;if(f)return o===J||o===Z;if(r)return o===2*J||o===2*Z;if(E instanceof N)return!0;return!1}function h(E,f,r=!0){if(S(E))throw Error("first arg must be private key");if(!S(f))throw Error("second arg must be public key");return N.fromHex(f).multiply(q(E)).toRawBytes(r)}let l=X.bits2int||function(E){let f=r4(E),r=E.length*8-X.nBitLength;return r>0?f>>BigInt(r):f},p=X.bits2int_modN||function(E){return U(l(E))},t=CU(X.nBitLength);function _(E){if(typeof E!=="bigint")throw Error("bigint expected");if(!(a4<=E&&E<t))throw Error(`bigint expected < 2^${X.nBitLength}`);return QW(E,X.nByteLength)}function e(E,f,r=H0){if(["recovered","canonical"].some((u0)=>(u0 in r)))throw Error("sign() legacy options not supported");let{hash:o,randomBytes:B}=X,{lowS:F,prehash:y,extraEntropy:v}=r;if(F==null)F=!0;if(E=I5("msgHash",E),y)E=I5("prehashed msgHash",o(E));let R=p(E),m=q(f),J0=[_(m),_(R)];if(v!=null){let u0=v===!0?B(G.BYTES):v;J0.push(I5("extraEntropy",u0))}let U0=GJ(...J0),N0=R;function $0(u0){let q1=l(u0);if(!H(q1))return;let g1=Q(q1),h0=N.BASE.multiply(q1).toAffine(),x1=U(h0.x);if(x1===a4)return;let k1=U(g1*U(N0+x1*m));if(k1===a4)return;let Q0=(h0.x===x1?0:2)|Number(h0.y&k5),S0=k1;if(F&&w(k1))S0=O(k1),Q0^=1;return new x(x1,S0,Q0)}return{seed:U0,k2sig:$0}}let H0={lowS:X.lowS,prehash:!1},g={lowS:X.lowS,prehash:!1};function d(E,f,r=H0){let{seed:o,k2sig:B}=e(E,f,r),F=X;return BO(F.hash.outputLen,F.nByteLength,F.hmac)(o,B)}N.BASE._setWindowSize(8);function P(E,f,r,o=g){let B=E;if(f=I5("msgHash",f),r=I5("publicKey",r),"strict"in o)throw Error("options.strict was renamed to lowS");let{lowS:F,prehash:y}=o,v=void 0,R;try{if(typeof B==="string"||B instanceof Uint8Array)try{v=x.fromDER(B)}catch(h0){if(!(h0 instanceof yX.Err))throw h0;v=x.fromCompact(B)}else if(typeof B==="object"&&typeof B.r==="bigint"&&typeof B.s==="bigint"){let{r:h0,s:x1}=B;v=new x(h0,x1)}else throw Error("PARSE");R=N.fromHex(r)}catch(h0){if(h0.message==="PARSE")throw Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(F&&v.hasHighS())return!1;if(y)f=X.hash(f);let{r:m,s:J0}=v,U0=p(f),N0=Q(J0),$0=U(U0*N0),u0=U(m*N0),q1=N.BASE.multiplyAndAddUnsafe(R,$0,u0)?.toAffine();if(!q1)return!1;return U(q1.x)===m}return{CURVE:X,getPublicKey:$,getSharedSecret:h,sign:d,verify:P,ProjectivePoint:N,Signature:x,utils:u}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function ws(W){return{hash:W,hmac:(X,...G)=>DU(W,X,ax(...G)),randomBytes:sx}}function ak(W,X){let G=(Y)=>rk({...W,...ws(Y)});return Object.freeze({...G(X),create:G})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var ek=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),sk=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),js=BigInt(1),yO=BigInt(2),tk=(W,X)=>(W+X/yO)/X;function Ks(W){let X=ek,G=BigInt(3),Y=BigInt(6),J=BigInt(11),Z=BigInt(22),V=BigInt(23),U=BigInt(44),Q=BigInt(88),N=W*W*W%X,q=N*N*W%X,A=w5(q,G,X)*q%X,H=w5(A,G,X)*q%X,I=w5(H,yO,X)*N%X,w=w5(I,J,X)*I%X,O=w5(w,Z,X)*w%X,T=w5(O,U,X)*O%X,x=w5(T,Q,X)*T%X,u=w5(x,U,X)*O%X,$=w5(u,G,X)*q%X,S=w5($,V,X)*w%X,h=w5(S,Y,X)*N%X,l=w5(h,yO,X);if(!vO.eql(vO.sqr(l),W))throw Error("Cannot find square root");return l}var vO=lk(ek,void 0,void 0,{sqrt:Ks}),s4=ak({a:BigInt(0),b:BigInt(7),Fp:vO,n:sk,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:(W)=>{let X=sk,G=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),Y=-js*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),J=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),Z=G,V=BigInt("0x100000000000000000000000000000000"),U=tk(Z*W,X),Q=tk(-Y*W,X),N=$9(W-U*G-Q*J,X),q=$9(-U*Y-Q*Z,X),A=N>V,H=q>V;if(A)N=X-N;if(H)q=X-q;if(N>V||q>V)throw Error("splitScalar: Endomorphism failed, k="+W);return{k1neg:A,k1:N,k2neg:H,k2:q}}}},OU),$j0=BigInt(0);var Fj0=s4.ProjectivePoint;var gO="0x0000000000000000000000000000000000000000";var oH="0x0000000000000000000000000000000000000000000000000000000000000000";var uO=`\x19Ethereum Signed Message:
|
|
249
|
+
`;var W_=BigInt(0),X_=BigInt(1),G_=BigInt(2),Y_=BigInt(27),J_=BigInt(28),nH=BigInt(35),YJ={};function Z_(W){return z5(z8(W),32)}class T8{#W;#X;#G;#Y;get r(){return this.#W}set r(W){a(n4(W)===32,"invalid r","value",W),this.#W=C0(W)}get s(){return a(parseInt(this.#X.substring(0,3))<8,"non-canonical s; use ._s","s",this.#X),this.#X}set s(W){a(n4(W)===32,"invalid s","value",W),this.#X=C0(W)}get _s(){return this.#X}isValid(){return parseInt(this.#X.substring(0,3))<8}get v(){return this.#G}set v(W){let X=s8(W,"value");a(X===27||X===28,"invalid v","v",W),this.#G=X}get networkV(){return this.#Y}get legacyChainId(){let W=this.networkV;if(W==null)return null;return T8.getChainId(W)}get yParity(){return this.v===27?0:1}get yParityAndS(){let W=E0(this.s);if(this.yParity)W[0]|=128;return C0(W)}get compactSerialized(){return G8([this.r,this.yParityAndS])}get serialized(){return G8([this.r,this.s,this.yParity?"0x1c":"0x1b"])}constructor(W,X,G,Y){o4(W,YJ,"Signature"),this.#W=X,this.#X=G,this.#G=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 T8(YJ,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 X=p1(W,"v");if(X==Y_||X==J_)return W_;return a(X>=nH,"invalid EIP-155 v","v",W),(X-nH)/G_}static getChainIdV(W,X){return p1(W)*G_+BigInt(35+X-27)}static getNormalizedV(W){let X=p1(W);if(X===W_||X===Y_)return 27;if(X===X_||X===J_)return 28;return a(X>=nH,"invalid v","v",W),X&X_?27:28}static from(W){function X(Q,N){a(Q,N,"signature",W)}if(W==null)return new T8(YJ,oH,oH,27);if(typeof W==="string"){let Q=E0(W,"signature");if(Q.length===64){let N=C0(Q.slice(0,32)),q=Q.slice(32,64),A=q[0]&128?28:27;return q[0]&=127,new T8(YJ,N,C0(q),A)}if(Q.length===65){let N=C0(Q.slice(0,32)),q=C0(Q.slice(32,64)),A=T8.getNormalizedV(Q[64]);return new T8(YJ,N,q,A)}X(!1,"invalid raw signature length")}if(W instanceof T8)return W.clone();let G=W.r;X(G!=null,"missing r");let Y=Z_(G),J=function(Q,N){if(Q!=null)return Z_(Q);if(N!=null){X(L9(N,32),"invalid yParityAndS");let q=E0(N);return q[0]&=127,C0(q)}X(!1,"missing s")}(W.s,W.yParityAndS),{networkV:Z,v:V}=function(Q,N,q){if(Q!=null){let A=p1(Q);return{networkV:A>=nH?A:void 0,v:T8.getNormalizedV(A)}}if(N!=null)return X(L9(N,32),"invalid yParityAndS"),{v:E0(N)[0]&128?28:27};if(q!=null){switch(s8(q,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}X(!1,"invalid yParity")}X(!1,"missing v")}(W.v,W.yParityAndS,W.yParity),U=new T8(YJ,Y,J,V);if(Z)U.#Y=Z;return X(W.yParity==null||s8(W.yParity,"sig.yParity")===U.yParity,"yParity mismatch"),X(W.yParityAndS==null||W.yParityAndS===U.yParityAndS,"yParityAndS mismatch"),U}}class i8{#W;constructor(W){a(n4(W)===32,"invalid private key","privateKey","[REDACTED]"),this.#W=C0(W)}get privateKey(){return this.#W}get publicKey(){return i8.computePublicKey(this.#W)}get compressedPublicKey(){return i8.computePublicKey(this.#W,!0)}sign(W){a(n4(W)===32,"invalid digest length","digest",W);let X=s4.sign(U7(W),U7(this.#W),{lowS:!0});return T8.from({r:Q7(X.r,32),s:Q7(X.s,32),v:X.recovery?28:27})}computeSharedSecret(W){let X=i8.computePublicKey(W);return C0(s4.getSharedSecret(U7(this.#W),E0(X),!1))}static computePublicKey(W,X){let G=E0(W,"key");if(G.length===32){let J=s4.getPublicKey(G,!!X);return C0(J)}if(G.length===64){let J=new Uint8Array(65);J[0]=4,J.set(G,1),G=J}let Y=s4.ProjectivePoint.fromHex(G);return C0(Y.toRawBytes(X))}static recoverPublicKey(W,X){a(n4(W)===32,"invalid digest length","digest",W);let G=T8.from(X),Y=s4.Signature.fromCompact(U7(G8([G.r,G.s])));Y=Y.addRecoveryBit(G.yParity);let J=Y.recoverPublicKey(U7(W));return a(J!=null,"invalid signature for digest","signature",X),"0x"+J.toHex(!1)}static addPoints(W,X,G){let Y=s4.ProjectivePoint.fromHex(i8.computePublicKey(W).substring(2)),J=s4.ProjectivePoint.fromHex(i8.computePublicKey(X).substring(2));return"0x"+Y.add(J).toHex(!!G)}}var Os=BigInt(0),Ds=BigInt(36);function V_(W){W=W.toLowerCase();let X=W.substring(2).split(""),G=new Uint8Array(40);for(let J=0;J<40;J++)G[J]=X[J].charCodeAt(0);let Y=E0(U8(G));for(let J=0;J<40;J+=2){if(Y[J>>1]>>4>=8)X[J]=X[J].toUpperCase();if((Y[J>>1]&15)>=8)X[J+1]=X[J+1].toUpperCase()}return"0x"+X.join("")}var hO={};for(let W=0;W<10;W++)hO[String(W)]=String(W);for(let W=0;W<26;W++)hO[String.fromCharCode(65+W)]=String(10+W);var U_=15;function Cs(W){W=W.toUpperCase(),W=W.substring(4)+W.substring(0,2)+"00";let X=W.split("").map((Y)=>{return hO[Y]}).join("");while(X.length>=U_){let Y=X.substring(0,U_);X=parseInt(Y,10)%97+X.substring(Y.length)}let G=String(98-parseInt(X,10)%97);while(G.length<2)G="0"+G;return G}var Ts=function(){let W={};for(let X=0;X<36;X++){let G="0123456789abcdefghijklmnopqrstuvwxyz"[X];W[G]=BigInt(X)}return W}();function Ms(W){W=W.toLowerCase();let X=Os;for(let G=0;G<W.length;G++)X=X*Ds+Ts[W[G]];return X}function b1(W){if(a(typeof W==="string","invalid address","address",W),W.match(/^(0x)?[0-9a-fA-F]{40}$/)){if(!W.startsWith("0x"))W="0x"+W;let X=V_(W);return a(!W.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||X===W,"bad address checksum","address",W),X}if(W.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){a(W.substring(2,4)===Cs(W),"bad icap checksum","address",W);let X=Ms(W.substring(4)).toString(16);while(X.length<40)X="0"+X;return V_("0x"+X)}a(!1,"invalid address","address",W)}function mO(W){return W&&typeof W.getAddress==="function"}async function bO(W,X){let G=await X;if(G==null||G==="0x0000000000000000000000000000000000000000")Y1(typeof W!=="string","unconfigured name","UNCONFIGURED_NAME",{value:W}),a(!1,"invalid AddressLike value; did not resolve to a value address","target",W);return b1(G)}function t4(W,X){if(typeof W==="string"){if(W.match(/^0x[0-9a-f]{40}$/i))return b1(W);return Y1(X!=null,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),bO(W,X.resolveName(W))}else if(mO(W))return bO(W,W.getAddress());else if(W&&typeof W.then==="function")return bO(W,W);a(!1,"unsupported addressable value","target",W)}function fO(W,X){return{address:b1(W),storageKeys:X.map((G,Y)=>{return a(L9(G,32),"invalid slot",`storageKeys[${Y}]`,G),G.toLowerCase()})}}function vX(W){if(Array.isArray(W))return W.map((G,Y)=>{if(Array.isArray(G))return a(G.length===2,"invalid slot set",`value[${Y}]`,G),fO(G[0],G[1]);return a(G!=null&&typeof G==="object","invalid address-slot set","value",W),fO(G.address,G.storageKeys)});a(W!=null&&typeof W==="object","invalid access list","value",W);let X=Object.keys(W).map((G)=>{let Y=W[G].reduce((J,Z)=>{return J[Z]=!0,J},{});return fO(G,Object.keys(Y).sort())});return X.sort((G,Y)=>G.address.localeCompare(Y.address)),X}function Q_(W){return{address:b1(W.address),nonce:p1(W.nonce!=null?W.nonce:0),chainId:p1(W.chainId!=null?W.chainId:0),signature:T8.from(W.signature)}}function e4(W){let X;if(typeof W==="string")X=i8.computePublicKey(W,!1);else X=W.publicKey;return b1(U8("0x"+X.substring(4)).substring(26))}function TU(W,X){return e4(i8.recoverPublicKey(W,X))}var t8=BigInt(0),Ls=BigInt(2),Bs=BigInt(27),Es=BigInt(28),$s=BigInt(35),Fs=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),pO=131072;function Ss(W){return{blobToKzgCommitment:(Y)=>{if("computeBlobProof"in W){if("blobToKzgCommitment"in W&&typeof W.blobToKzgCommitment==="function")return E0(W.blobToKzgCommitment(C0(Y)))}else if("blobToKzgCommitment"in W&&typeof W.blobToKzgCommitment==="function")return E0(W.blobToKzgCommitment(Y));if("blobToKZGCommitment"in W&&typeof W.blobToKZGCommitment==="function")return E0(W.blobToKZGCommitment(C0(Y)));a(!1,"unsupported KZG library","kzg",W)},computeBlobKzgProof:(Y,J)=>{if("computeBlobProof"in W&&typeof W.computeBlobProof==="function")return E0(W.computeBlobProof(C0(Y),C0(J)));if("computeBlobKzgProof"in W&&typeof W.computeBlobKzgProof==="function")return W.computeBlobKzgProof(Y,J);if("computeBlobKZGProof"in W&&typeof W.computeBlobKZGProof==="function")return E0(W.computeBlobKZGProof(C0(Y),C0(J)));a(!1,"unsupported KZG library","kzg",W)}}}function N_(W,X){let G=W.toString(16);while(G.length<2)G="0"+G;return G+=E9(X).substring(4),"0x"+G}function JJ(W){if(W==="0x")return null;return b1(W)}function iH(W,X){try{return vX(W)}catch(G){a(!1,G.message,X,W)}}function xs(W,X){try{if(!Array.isArray(W))throw Error("authorizationList: invalid array");let G=[];for(let Y=0;Y<W.length;Y++){let J=W[Y];if(!Array.isArray(J))throw Error(`authorization[${Y}]: invalid array`);if(J.length!==6)throw Error(`authorization[${Y}]: wrong length`);if(!J[1])throw Error(`authorization[${Y}]: null address`);G.push({address:JJ(J[1]),nonce:Q8(J[2],"nonce"),chainId:Q8(J[0],"chainId"),signature:T8.from({yParity:gX(J[3],"yParity"),r:z5(J[4],32),s:z5(J[5],32)})})}return G}catch(G){a(!1,G.message,X,W)}}function gX(W,X){if(W==="0x")return 0;return s8(W,X)}function Q8(W,X){if(W==="0x")return t8;let G=p1(W,X);return a(G<=Fs,"value exceeds uint size",X,G),G}function c1(W,X){let G=p1(W,"value"),Y=z8(G);return a(Y.length<=32,"value too large",`tx.${X}`,G),Y}function rH(W){return vX(W).map((X)=>[X.address,X.storageKeys])}function ks(W){return W.map((X)=>{return[c1(X.chainId,"chainId"),X.address,c1(X.nonce,"nonce"),c1(X.signature.yParity,"yParity"),z8(X.signature.r),z8(X.signature.s)]})}function _s(W,X){a(Array.isArray(W),`invalid ${X}`,"value",W);for(let G=0;G<W.length;G++)a(L9(W[G],32),"invalid ${ param } hash",`value[${G}]`,W[G]);return W}function ys(W){let X=XW(W);a(Array.isArray(X)&&(X.length===9||X.length===6),"invalid field count for legacy transaction","data",W);let G={type:0,nonce:gX(X[0],"nonce"),gasPrice:Q8(X[1],"gasPrice"),gasLimit:Q8(X[2],"gasLimit"),to:JJ(X[3]),value:Q8(X[4],"value"),data:C0(X[5]),chainId:t8};if(X.length===6)return G;let Y=Q8(X[6],"v"),J=Q8(X[7],"r"),Z=Q8(X[8],"s");if(J===t8&&Z===t8)G.chainId=Y;else{let V=(Y-$s)/Ls;if(V<t8)V=t8;G.chainId=V,a(V!==t8||(Y===Bs||Y===Es),"non-canonical legacy v","v",X[6]),G.signature=T8.from({r:z5(X[7],32),s:z5(X[8],32),v:Y})}return G}function vs(W,X){let G=[c1(W.nonce,"nonce"),c1(W.gasPrice||0,"gasPrice"),c1(W.gasLimit,"gasLimit"),W.to||"0x",c1(W.value,"value"),W.data],Y=t8;if(W.chainId!=t8)Y=p1(W.chainId,"tx.chainId"),a(!X||X.networkV==null||X.legacyChainId===Y,"tx.chainId/sig.v mismatch","sig",X);else if(W.signature){let Z=W.signature.legacyChainId;if(Z!=null)Y=Z}if(!X){if(Y!==t8)G.push(z8(Y)),G.push("0x"),G.push("0x");return F5(G)}let J=BigInt(27+X.yParity);if(Y!==t8)J=T8.getChainIdV(Y,X.v);else if(BigInt(X.v)!==J)a(!1,"tx.chainId/sig.v mismatch","sig",X);return G.push(z8(J)),G.push(z8(X.r)),G.push(z8(X.s)),F5(G)}function aH(W,X){let G;try{if(G=gX(X[0],"yParity"),G!==0&&G!==1)throw Error("bad yParity")}catch(V){a(!1,"invalid yParity","yParity",X[0])}let Y=z5(X[1],32),J=z5(X[2],32),Z=T8.from({r:Y,s:J,yParity:G});W.signature=Z}function gs(W){let X=XW(E0(W).slice(1));a(Array.isArray(X)&&(X.length===9||X.length===12),"invalid field count for transaction type: 2","data",C0(W));let G={type:2,chainId:Q8(X[0],"chainId"),nonce:gX(X[1],"nonce"),maxPriorityFeePerGas:Q8(X[2],"maxPriorityFeePerGas"),maxFeePerGas:Q8(X[3],"maxFeePerGas"),gasPrice:null,gasLimit:Q8(X[4],"gasLimit"),to:JJ(X[5]),value:Q8(X[6],"value"),data:C0(X[7]),accessList:iH(X[8],"accessList")};if(X.length===9)return G;return aH(G,X.slice(9)),G}function us(W,X){let G=[c1(W.chainId,"chainId"),c1(W.nonce,"nonce"),c1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),c1(W.maxFeePerGas||0,"maxFeePerGas"),c1(W.gasLimit,"gasLimit"),W.to||"0x",c1(W.value,"value"),W.data,rH(W.accessList||[])];if(X)G.push(c1(X.yParity,"yParity")),G.push(z8(X.r)),G.push(z8(X.s));return G8(["0x02",F5(G)])}function hs(W){let X=XW(E0(W).slice(1));a(Array.isArray(X)&&(X.length===8||X.length===11),"invalid field count for transaction type: 1","data",C0(W));let G={type:1,chainId:Q8(X[0],"chainId"),nonce:gX(X[1],"nonce"),gasPrice:Q8(X[2],"gasPrice"),gasLimit:Q8(X[3],"gasLimit"),to:JJ(X[4]),value:Q8(X[5],"value"),data:C0(X[6]),accessList:iH(X[7],"accessList")};if(X.length===8)return G;return aH(G,X.slice(8)),G}function bs(W,X){let G=[c1(W.chainId,"chainId"),c1(W.nonce,"nonce"),c1(W.gasPrice||0,"gasPrice"),c1(W.gasLimit,"gasLimit"),W.to||"0x",c1(W.value,"value"),W.data,rH(W.accessList||[])];if(X)G.push(c1(X.yParity,"recoveryParam")),G.push(z8(X.r)),G.push(z8(X.s));return G8(["0x01",F5(G)])}function ms(W){let X=XW(E0(W).slice(1)),G="3",Y=null;if(X.length===4&&Array.isArray(X[0])){G="3 (network format)";let Z=X[1],V=X[2],U=X[3];a(Array.isArray(Z),"invalid network format: blobs not an array","fields[1]",Z),a(Array.isArray(V),"invalid network format: commitments not an array","fields[2]",V),a(Array.isArray(U),"invalid network format: proofs not an array","fields[3]",U),a(Z.length===V.length,"invalid network format: blobs/commitments length mismatch","fields",X),a(Z.length===U.length,"invalid network format: blobs/proofs length mismatch","fields",X),Y=[];for(let Q=0;Q<X[1].length;Q++)Y.push({data:Z[Q],commitment:V[Q],proof:U[Q]});X=X[0]}a(Array.isArray(X)&&(X.length===11||X.length===14),`invalid field count for transaction type: ${G}`,"data",C0(W));let J={type:3,chainId:Q8(X[0],"chainId"),nonce:gX(X[1],"nonce"),maxPriorityFeePerGas:Q8(X[2],"maxPriorityFeePerGas"),maxFeePerGas:Q8(X[3],"maxFeePerGas"),gasPrice:null,gasLimit:Q8(X[4],"gasLimit"),to:JJ(X[5]),value:Q8(X[6],"value"),data:C0(X[7]),accessList:iH(X[8],"accessList"),maxFeePerBlobGas:Q8(X[9],"maxFeePerBlobGas"),blobVersionedHashes:X[10]};if(Y)J.blobs=Y;a(J.to!=null,`invalid address for transaction type: ${G}`,"data",W),a(Array.isArray(J.blobVersionedHashes),"invalid blobVersionedHashes: must be an array","data",W);for(let Z=0;Z<J.blobVersionedHashes.length;Z++)a(L9(J.blobVersionedHashes[Z],32),`invalid blobVersionedHash at index ${Z}: must be length 32`,"data",W);if(X.length===11)return J;return aH(J,X.slice(11)),J}function fs(W,X,G){let Y=[c1(W.chainId,"chainId"),c1(W.nonce,"nonce"),c1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),c1(W.maxFeePerGas||0,"maxFeePerGas"),c1(W.gasLimit,"gasLimit"),W.to||gO,c1(W.value,"value"),W.data,rH(W.accessList||[]),c1(W.maxFeePerBlobGas||0,"maxFeePerBlobGas"),_s(W.blobVersionedHashes||[],"blobVersionedHashes")];if(X){if(Y.push(c1(X.yParity,"yParity")),Y.push(z8(X.r)),Y.push(z8(X.s)),G)return G8(["0x03",F5([Y,G.map((J)=>J.data),G.map((J)=>J.commitment),G.map((J)=>J.proof)])])}return G8(["0x03",F5(Y)])}function ps(W){let X=XW(E0(W).slice(1));a(Array.isArray(X)&&(X.length===10||X.length===13),"invalid field count for transaction type: 4","data",C0(W));let G={type:4,chainId:Q8(X[0],"chainId"),nonce:gX(X[1],"nonce"),maxPriorityFeePerGas:Q8(X[2],"maxPriorityFeePerGas"),maxFeePerGas:Q8(X[3],"maxFeePerGas"),gasPrice:null,gasLimit:Q8(X[4],"gasLimit"),to:JJ(X[5]),value:Q8(X[6],"value"),data:C0(X[7]),accessList:iH(X[8],"accessList"),authorizationList:xs(X[9],"authorizationList")};if(X.length===10)return G;return aH(G,X.slice(10)),G}function cs(W,X){let G=[c1(W.chainId,"chainId"),c1(W.nonce,"nonce"),c1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),c1(W.maxFeePerGas||0,"maxFeePerGas"),c1(W.gasLimit,"gasLimit"),W.to||"0x",c1(W.value,"value"),W.data,rH(W.accessList||[]),ks(W.authorizationList||[])];if(X)G.push(c1(X.yParity,"yParity")),G.push(z8(X.r)),G.push(z8(X.s));return G8(["0x04",F5(G)])}class e9{#W;#X;#G;#Y;#Q;#N;#q;#H;#A;#z;#I;#w;#U;#Z;#J;#V;#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:a(!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.#X;if(W==null&&this.type===3)return gO;return W}set to(W){this.#X=W==null?null:b1(W)}get nonce(){return this.#Y}set nonce(W){this.#Y=s8(W,"value")}get gasLimit(){return this.#Q}set gasLimit(W){this.#Q=p1(W)}get gasPrice(){let W=this.#N;if(W==null&&(this.type===0||this.type===1))return t8;return W}set gasPrice(W){this.#N=W==null?null:p1(W,"gasPrice")}get maxPriorityFeePerGas(){let W=this.#q;if(W==null){if(this.type===2||this.type===3)return t8;return null}return W}set maxPriorityFeePerGas(W){this.#q=W==null?null:p1(W,"maxPriorityFeePerGas")}get maxFeePerGas(){let W=this.#H;if(W==null){if(this.type===2||this.type===3)return t8;return null}return W}set maxFeePerGas(W){this.#H=W==null?null:p1(W,"maxFeePerGas")}get data(){return this.#G}set data(W){this.#G=C0(W)}get value(){return this.#A}set value(W){this.#A=p1(W,"value")}get chainId(){return this.#z}set chainId(W){this.#z=p1(W)}get signature(){return this.#I||null}set signature(W){this.#I=W==null?null:T8.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:vX(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((X)=>Q_(X))}get maxFeePerBlobGas(){let W=this.#U;if(W==null&&this.type===3)return t8;return W}set maxFeePerBlobGas(W){this.#U=W==null?null:p1(W,"maxFeePerBlobGas")}get blobVersionedHashes(){let W=this.#Z;if(W==null&&this.type===3)return[];return W}set blobVersionedHashes(W){if(W!=null){a(Array.isArray(W),"blobVersionedHashes must be an Array","value",W),W=W.slice();for(let X=0;X<W.length;X++)a(L9(W[X],32),"invalid blobVersionedHash",`value[${X}]`,W[X])}this.#Z=W}get blobs(){if(this.#V==null)return null;return this.#V.map((W)=>Object.assign({},W))}set blobs(W){if(W==null){this.#V=null;return}let X=[],G=[];for(let Y=0;Y<W.length;Y++){let J=W[Y];if(i7(J)){Y1(this.#J,"adding a raw blob requires a KZG library","UNSUPPORTED_OPERATION",{operation:"set blobs()"});let Z=E0(J);if(a(Z.length<=pO,"blob is too large",`blobs[${Y}]`,J),Z.length!==pO){let Q=new Uint8Array(pO);Q.set(Z),Z=Q}let V=this.#J.blobToKzgCommitment(Z),U=C0(this.#J.computeBlobKzgProof(Z,V));X.push({data:C0(Z),commitment:C0(V),proof:U}),G.push(N_(1,V))}else{let Z=C0(J.commitment);X.push({data:C0(J.data),commitment:Z,proof:C0(J.proof)}),G.push(N_(1,Z))}}this.#V=X,this.#Z=G}get kzg(){return this.#J}set kzg(W){if(W==null)this.#J=null;else this.#J=Ss(W)}constructor(){this.#W=null,this.#X=null,this.#Y=0,this.#Q=t8,this.#N=null,this.#q=null,this.#H=null,this.#G="0x",this.#A=t8,this.#z=t8,this.#I=null,this.#w=null,this.#U=null,this.#Z=null,this.#J=null,this.#V=null,this.#j=null}get hash(){if(this.signature==null)return null;return U8(this.#K(!0,!1))}get unsignedHash(){return U8(this.unsignedSerialized)}get from(){if(this.signature==null)return null;return TU(this.unsignedHash,this.signature)}get fromPublicKey(){if(this.signature==null)return null;return i8.recoverPublicKey(this.unsignedHash,this.signature)}isSigned(){return this.signature!=null}#K(W,X){Y1(!W||this.signature!=null,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"});let G=W?this.signature:null;switch(this.inferType()){case 0:return vs(this,G);case 1:return bs(this,G);case 2:return us(this,G);case 3:return fs(this,G,X?this.blobs:null);case 4:return cs(this,G)}Y1(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})}get serialized(){return this.#K(!0,!0)}get unsignedSerialized(){return this.#K(!1,!1)}inferType(){let W=this.inferTypes();if(W.indexOf(2)>=0)return 2;return W.pop()}inferTypes(){let W=this.gasPrice!=null,X=this.maxFeePerGas!=null||this.maxPriorityFeePerGas!=null,G=this.accessList!=null,Y=this.#U!=null||this.#Z;if(this.maxFeePerGas!=null&&this.maxPriorityFeePerGas!=null)Y1(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this});Y1(!X||this.type!==0&&this.type!==1,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),Y1(this.type!==0||!G,"legacy transaction cannot have accessList","BAD_DATA",{value:this});let J=[];if(this.type!=null)J.push(this.type);else if(this.authorizationList&&this.authorizationList.length)J.push(4);else if(X)J.push(2);else if(W){if(J.push(1),!G)J.push(0)}else if(G)J.push(1),J.push(2);else if(Y&&this.to)J.push(3);else J.push(0),J.push(1),J.push(2),J.push(3);return J.sort(),J}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}clone(){return e9.from(this)}toJSON(){let W=(X)=>{if(X==null)return null;return X.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 e9;if(typeof W==="string"){let G=E0(W);if(G[0]>=127)return e9.from(ys(G));switch(G[0]){case 1:return e9.from(hs(G));case 2:return e9.from(gs(G));case 3:return e9.from(ms(G));case 4:return e9.from(ps(G))}Y1(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}let X=new e9;if(W.type!=null)X.type=W.type;if(W.to!=null)X.to=W.to;if(W.nonce!=null)X.nonce=W.nonce;if(W.gasLimit!=null)X.gasLimit=W.gasLimit;if(W.gasPrice!=null)X.gasPrice=W.gasPrice;if(W.maxPriorityFeePerGas!=null)X.maxPriorityFeePerGas=W.maxPriorityFeePerGas;if(W.maxFeePerGas!=null)X.maxFeePerGas=W.maxFeePerGas;if(W.maxFeePerBlobGas!=null)X.maxFeePerBlobGas=W.maxFeePerBlobGas;if(W.data!=null)X.data=W.data;if(W.value!=null)X.value=W.value;if(W.chainId!=null)X.chainId=W.chainId;if(W.signature!=null)X.signature=T8.from(W.signature);if(W.accessList!=null)X.accessList=W.accessList;if(W.authorizationList!=null)X.authorizationList=W.authorizationList;if(W.blobVersionedHashes!=null)X.blobVersionedHashes=W.blobVersionedHashes;if(W.kzg!=null)X.kzg=W.kzg;if(W.blobs!=null)X.blobs=W.blobs;if(W.hash!=null)a(X.isSigned(),"unsigned transaction cannot define '.hash'","tx",W),a(X.hash===W.hash,"hash mismatch","tx",W);if(W.from!=null)a(X.isSigned(),"unsigned transaction cannot define '.from'","tx",W),a(X.from.toLowerCase()===(W.from||"").toLowerCase(),"from mismatch","tx",W);return X}}function sH(W){return a(typeof W.address==="string","invalid address for hashAuthorization","auth.address",W),U8(G8(["0x05",F5([W.chainId!=null?z8(W.chainId):"0x",b1(W.address),W.nonce!=null?z8(W.nonce):"0x"])]))}function W6(W){return U8(Q9(W))}function MU(W){if(typeof W==="string")W=Q9(W);return U8(G8([Q9(uO),Q9(String(W.length)),W]))}function PU(W,X){let G=MU(W);return TU(G,X)}var z_=new Uint8Array(32);z_.fill(0);var ls=BigInt(-1),I_=BigInt(0),w_=BigInt(1),ds=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function os(W){let X=E0(W),G=X.length%32;if(G)return G8([X,z_.slice(G)]);return C0(X)}var ns=Q7(w_,32),is=Q7(I_,32),q_={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},cO=["name","version","chainId","verifyingContract","salt"];function H_(W){return function(X){return a(typeof X==="string",`invalid domain value for ${JSON.stringify(W)}`,`domain.${W}`,X),X}}var rs={name:H_("name"),version:H_("version"),chainId:function(W){let X=p1(W,"domain.chainId");if(a(X>=0,"invalid chain ID","domain.chainId",W),Number.isSafeInteger(X))return Number(X);return BH(X)},verifyingContract:function(W){try{return b1(W).toLowerCase()}catch(X){}a(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",W)},salt:function(W){let X=E0(W,"domain.salt");return a(X.length===32,'invalid domain value "salt"',"domain.salt",W),C0(X)}};function lO(W){{let X=W.match(/^(u?)int(\d+)$/);if(X){let G=X[1]==="",Y=parseInt(X[2]);a(Y%8===0&&Y!==0&&Y<=256&&X[2]===String(Y),"invalid numeric width","type",W);let J=LH(ds,G?Y-1:Y),Z=G?(J+w_)*ls:I_;return function(V){let U=p1(V,"value");return a(U>=Z&&U<=J,`value out-of-bounds for ${W}`,"value",U),Q7(G?RH(U,256):U,32)}}}{let X=W.match(/^bytes(\d+)$/);if(X){let G=parseInt(X[1]);return a(G!==0&&G<=32&&X[1]===String(G),"invalid bytes width","type",W),function(Y){let J=E0(Y);return a(J.length===G,`invalid length for ${W}`,"value",Y),os(Y)}}}switch(W){case"address":return function(X){return z5(b1(X),32)};case"bool":return function(X){return!X?is:ns};case"bytes":return function(X){return U8(X)};case"string":return function(X){return W6(X)}}return null}function A_(W,X){return`${W}(${X.map(({name:G,type:Y})=>Y+" "+G).join(",")})`}function tH(W){let X=W.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);if(X)return{base:X[1],index:X[2]+X[4],array:{base:X[1],prefix:X[1]+X[2],count:X[5]?parseInt(X[5]):-1}};return{base:W}}class F9{primaryType;#W;get types(){return JSON.parse(this.#W)}#X;#G;constructor(W){this.#X=new Map,this.#G=new Map;let X=new Map,G=new Map,Y=new Map,J={};Object.keys(W).forEach((U)=>{J[U]=W[U].map(({name:Q,type:N})=>{let{base:q,index:A}=tH(N);if(q==="int"&&!W.int)q="int256";if(q==="uint"&&!W.uint)q="uint256";return{name:Q,type:q+(A||"")}}),X.set(U,new Set),G.set(U,[]),Y.set(U,new Set)}),this.#W=JSON.stringify(J);for(let U in J){let Q=new Set;for(let N of J[U]){a(!Q.has(N.name),`duplicate variable name ${JSON.stringify(N.name)} in ${JSON.stringify(U)}`,"types",W),Q.add(N.name);let q=tH(N.type).base;if(a(q!==U,`circular type reference to ${JSON.stringify(q)}`,"types",W),lO(q))continue;a(G.has(q),`unknown type ${JSON.stringify(q)}`,"types",W),G.get(q).push(U),X.get(U).add(q)}}let Z=Array.from(G.keys()).filter((U)=>G.get(U).length===0);a(Z.length!==0,"missing primary type","types",W),a(Z.length===1,`ambiguous primary types or unused types: ${Z.map((U)=>JSON.stringify(U)).join(", ")}`,"types",W),A8(this,{primaryType:Z[0]});function V(U,Q){a(!Q.has(U),`circular type reference to ${JSON.stringify(U)}`,"types",W),Q.add(U);for(let N of X.get(U)){if(!G.has(N))continue;V(N,Q);for(let q of Q)Y.get(q).add(N)}Q.delete(U)}V(this.primaryType,new Set);for(let[U,Q]of Y){let N=Array.from(Q);N.sort(),this.#X.set(U,A_(U,J[U])+N.map((q)=>A_(q,J[q])).join(""))}}getEncoder(W){let X=this.#G.get(W);if(!X)X=this.#Y(W),this.#G.set(W,X);return X}#Y(W){{let Y=lO(W);if(Y)return Y}let X=tH(W).array;if(X){let Y=X.prefix,J=this.getEncoder(Y);return(Z)=>{a(X.count===-1||X.count===Z.length,`array length mismatch; expected length ${X.count}`,"value",Z);let V=Z.map(J);if(this.#X.has(Y))V=V.map(U8);return U8(G8(V))}}let G=this.types[W];if(G){let Y=W6(this.#X.get(W));return(J)=>{let Z=G.map(({name:V,type:U})=>{let Q=this.getEncoder(U)(J[V]);if(this.#X.has(U))return U8(Q);return Q});return Z.unshift(Y),G8(Z)}}a(!1,`unknown type: ${W}`,"type",W)}encodeType(W){let X=this.#X.get(W);return a(X,`unknown type: ${JSON.stringify(W)}`,"name",W),X}encodeData(W,X){return this.getEncoder(W)(X)}hashStruct(W,X){return U8(this.encodeData(W,X))}encode(W){return this.encodeData(this.primaryType,W)}hash(W){return this.hashStruct(this.primaryType,W)}_visit(W,X,G){if(lO(W))return G(W,X);let Y=tH(W).array;if(Y)return a(Y.count===-1||Y.count===X.length,`array length mismatch; expected length ${Y.count}`,"value",X),X.map((Z)=>this._visit(Y.prefix,Z,G));let J=this.types[W];if(J)return J.reduce((Z,{name:V,type:U})=>{return Z[V]=this._visit(U,X[V],G),Z},{});a(!1,`unknown type: ${W}`,"type",W)}visit(W,X){return this._visit(this.primaryType,W,X)}static from(W){return new F9(W)}static getPrimaryType(W){return F9.from(W).primaryType}static hashStruct(W,X,G){return F9.from(X).hashStruct(W,G)}static hashDomain(W){let X=[];for(let G in W){if(W[G]==null)continue;let Y=q_[G];a(Y,`invalid typed-data domain key: ${JSON.stringify(G)}`,"domain",W),X.push({name:G,type:Y})}return X.sort((G,Y)=>{return cO.indexOf(G.name)-cO.indexOf(Y.name)}),F9.hashStruct("EIP712Domain",{EIP712Domain:X},W)}static encode(W,X,G){return G8(["0x1901",F9.hashDomain(W),F9.from(X).hash(G)])}static hash(W,X,G){return U8(F9.encode(W,X,G))}static async resolveNames(W,X,G,Y){W=Object.assign({},W);for(let V in W)if(W[V]==null)delete W[V];let J={};if(W.verifyingContract&&!L9(W.verifyingContract,20))J[W.verifyingContract]="0x";let Z=F9.from(X);Z.visit(G,(V,U)=>{if(V==="address"&&!L9(U,20))J[U]="0x";return U});for(let V in J)J[V]=await Y(V);if(W.verifyingContract&&J[W.verifyingContract])W.verifyingContract=J[W.verifyingContract];return G=Z.visit(G,(V,U)=>{if(V==="address"&&J[U])return J[U];return U}),{domain:W,value:G}}static getPayload(W,X,G){F9.hashDomain(W);let Y={},J=[];cO.forEach((U)=>{let Q=W[U];if(Q==null)return;Y[U]=rs[U](Q),J.push({name:U,type:q_[U]})});let Z=F9.from(X);X=Z.types;let V=Object.assign({},X);return a(V.EIP712Domain==null,"types must not contain EIP712Domain type","types.EIP712Domain",X),V.EIP712Domain=J,Z.encode(G),{types:V,domain:Y,primaryType:Z.primaryType,message:Z.visit(G,(U,Q)=>{if(U.match(/^bytes(\d*)/))return C0(E0(Q));if(U.match(/^u?int/))return p1(Q).toString();switch(U){case"address":return Q.toLowerCase();case"bool":return!!Q;case"string":return a(typeof Q==="string","invalid string","value",Q),Q}a(!1,"unsupported type","type",U)})}}}var j_=BigInt(0);function dO(W){if(W==null)return null;return W}function e8(W){if(W==null)return null;return W.toString()}function RU(W){let X={};if(W.to)X.to=W.to;if(W.from)X.from=W.from;if(W.data)X.data=C0(W.data);let G="chainId,gasLimit,gasPrice,maxFeePerBlobGas,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(let J of G){if(!(J in W)||W[J]==null)continue;X[J]=p1(W[J],`request.${J}`)}let Y="type,nonce".split(/,/);for(let J of Y){if(!(J in W)||W[J]==null)continue;X[J]=s8(W[J],`request.${J}`)}if(W.accessList)X.accessList=vX(W.accessList);if(W.authorizationList)X.authorizationList=W.authorizationList.slice();if("blockTag"in W)X.blockTag=W.blockTag;if("enableCcipRead"in W)X.enableCcipRead=!!W.enableCcipRead;if("customData"in W)X.customData=W.customData;if("blobVersionedHashes"in W&&W.blobVersionedHashes)X.blobVersionedHashes=W.blobVersionedHashes.slice();if("kzg"in W)X.kzg=W.kzg;if("blobs"in W&&W.blobs)X.blobs=W.blobs.map((J)=>{if(i7(J))return C0(J);return Object.assign({},J)});return X}class K_{provider;number;hash;timestamp;parentHash;parentBeaconBlockRoot;nonce;difficulty;gasLimit;gasUsed;stateRoot;receiptsRoot;blobGasUsed;excessBlobGas;miner;prevRandao;extraData;baseFeePerGas;#W;constructor(W,X){this.#W=W.transactions.map((G)=>{if(typeof G!=="string")return new eH(G,X);return G}),A8(this,{provider:X,hash:dO(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:dO(W.prevRandao),extraData:W.extraData,baseFeePerGas:dO(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 Y1(typeof W[0]==="object","transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),W}toJSON(){let{baseFeePerGas:W,difficulty:X,extraData:G,gasLimit:Y,gasUsed:J,hash:Z,miner:V,prevRandao:U,nonce:Q,number:N,parentHash:q,parentBeaconBlockRoot:A,stateRoot:H,receiptsRoot:I,timestamp:w,transactions:O}=this;return{_type:"Block",baseFeePerGas:e8(W),difficulty:e8(X),extraData:G,gasLimit:e8(Y),gasUsed:e8(J),blobGasUsed:e8(this.blobGasUsed),excessBlobGas:e8(this.excessBlobGas),hash:Z,miner:V,prevRandao:U,nonce:Q,number:N,parentHash:q,timestamp:w,parentBeaconBlockRoot:A,stateRoot:H,receiptsRoot:I,transactions:O}}[Symbol.iterator](){let W=0,X=this.transactions;return{next:()=>{if(W<this.length)return{value:X[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 X=void 0;if(typeof W==="number")X=this.#W[W];else{let G=W.toLowerCase();for(let Y of this.#W)if(typeof Y==="string"){if(Y!==G)continue;X=Y;break}else{if(Y.hash!==G)continue;X=Y;break}}if(X==null)throw Error("no such tx");if(typeof X==="string")return await this.provider.getTransaction(X);else return X}getPrefetchedTransaction(W){let X=this.prefetchedTransactions;if(typeof W==="number")return X[W];W=W.toLowerCase();for(let G of X)if(G.hash===W)return G;a(!1,"no matching transaction","indexOrHash",W)}isMined(){return!!this.hash}isLondon(){return!!this.baseFeePerGas}orphanedEvent(){if(!this.isMined())throw Error("");return ts(this)}}class oO{provider;transactionHash;blockHash;blockNumber;removed;address;data;topics;index;transactionIndex;constructor(W,X){this.provider=X;let G=Object.freeze(W.topics.slice());A8(this,{transactionHash:W.transactionHash,blockHash:W.blockHash,blockNumber:W.blockNumber,removed:W.removed,address:W.address,data:W.data,topics:G,index:W.index,transactionIndex:W.transactionIndex})}toJSON(){let{address:W,blockHash:X,blockNumber:G,data:Y,index:J,removed:Z,topics:V,transactionHash:U,transactionIndex:Q}=this;return{_type:"log",address:W,blockHash:X,blockNumber:G,data:Y,index:J,removed:Z,topics:V,transactionHash:U,transactionIndex:Q}}async getBlock(){let W=await this.provider.getBlock(this.blockHash);return Y1(!!W,"failed to find transaction","UNKNOWN_ERROR",{}),W}async getTransaction(){let W=await this.provider.getTransaction(this.transactionHash);return Y1(!!W,"failed to find transaction","UNKNOWN_ERROR",{}),W}async getTransactionReceipt(){let W=await this.provider.getTransactionReceipt(this.transactionHash);return Y1(!!W,"failed to find transaction receipt","UNKNOWN_ERROR",{}),W}removedEvent(){return es(this)}}class O_{provider;to;from;contractAddress;hash;index;blockHash;blockNumber;logsBloom;gasUsed;blobGasUsed;cumulativeGasUsed;gasPrice;blobGasPrice;type;status;root;#W;constructor(W,X){this.#W=Object.freeze(W.logs.map((Y)=>{return new oO(Y,X)}));let G=j_;if(W.effectiveGasPrice!=null)G=W.effectiveGasPrice;else if(W.gasPrice!=null)G=W.gasPrice;A8(this,{provider:X,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:G,blobGasPrice:W.blobGasPrice,type:W.type,status:W.status,root:W.root})}get logs(){return this.#W}toJSON(){let{to:W,from:X,contractAddress:G,hash:Y,index:J,blockHash:Z,blockNumber:V,logsBloom:U,logs:Q,status:N,root:q}=this;return{_type:"TransactionReceipt",blockHash:Z,blockNumber:V,contractAddress:G,cumulativeGasUsed:e8(this.cumulativeGasUsed),from:X,gasPrice:e8(this.gasPrice),blobGasUsed:e8(this.blobGasUsed),blobGasPrice:e8(this.blobGasPrice),gasUsed:e8(this.gasUsed),hash:Y,index:J,logs:Q,logsBloom:U,root:q,status:N,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 C_(this)}reorderedEvent(W){return Y1(!W||W.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),D_(this,W)}}class eH{provider;blockNumber;blockHash;index;hash;type;to;from;nonce;gasLimit;gasPrice;maxPriorityFeePerGas;maxFeePerGas;maxFeePerBlobGas;data;value;chainId;signature;accessList;blobVersionedHashes;authorizationList;#W;constructor(W,X){this.provider=X,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:X,index:G,hash:Y,type:J,to:Z,from:V,nonce:U,data:Q,signature:N,accessList:q,blobVersionedHashes:A}=this;return{_type:"TransactionResponse",accessList:q,blockNumber:W,blockHash:X,blobVersionedHashes:A,chainId:e8(this.chainId),data:Q,from:V,gasLimit:e8(this.gasLimit),gasPrice:e8(this.gasPrice),hash:Y,maxFeePerGas:e8(this.maxFeePerGas),maxPriorityFeePerGas:e8(this.maxPriorityFeePerGas),maxFeePerBlobGas:e8(this.maxFeePerBlobGas),nonce:U,signature:N,to:Z,index:G,type:J,value:e8(this.value)}}async getBlock(){let W=this.blockNumber;if(W==null){let G=await this.getTransaction();if(G)W=G.blockNumber}if(W==null)return null;let X=this.provider.getBlock(W);if(X==null)throw Error("TODO");return X}async getTransaction(){return this.provider.getTransaction(this.hash)}async confirmations(){if(this.blockNumber==null){let{tx:X,blockNumber:G}=await n7({tx:this.getTransaction(),blockNumber:this.provider.getBlockNumber()});if(X==null||X.blockNumber==null)return 0;return G-X.blockNumber+1}return await this.provider.getBlockNumber()-this.blockNumber+1}async wait(W,X){let G=W==null?1:W,Y=X==null?0:X,J=this.#W,Z=-1,V=J===-1?!0:!1,U=async()=>{if(V)return null;let{blockNumber:A,nonce:H}=await n7({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(H<this.nonce){J=A;return}if(V)return null;let I=await this.getTransaction();if(I&&I.blockNumber!=null)return;if(Z===-1){if(Z=J-3,Z<this.#W)Z=this.#W}while(Z<=A){if(V)return null;let w=await this.provider.getBlock(Z,!0);if(w==null)return;for(let O of w)if(O===this.hash)return;for(let O=0;O<w.length;O++){let T=await w.getTransaction(O);if(T.from===this.from&&T.nonce===this.nonce){if(V)return null;let x=await this.provider.getTransactionReceipt(T.hash);if(x==null)return;if(A-x.blockNumber+1<G)return;let u="replaced";if(T.data===this.data&&T.to===this.to&&T.value===this.value)u="repriced";else if(T.data==="0x"&&T.from===T.to&&T.value===j_)u="cancelled";Y1(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:u==="replaced"||u==="cancelled",reason:u,replacement:T.replaceableTransaction(J),hash:T.hash,receipt:x})}}Z++}return},Q=(A)=>{if(A==null||A.status!==0)return A;Y1(!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})},N=await this.provider.getTransactionReceipt(this.hash);if(G===0)return Q(N);if(N){if(G===1||await N.confirmations()>=G)return Q(N)}else if(await U(),G===0)return null;return await new Promise((A,H)=>{let I=[],w=()=>{I.forEach((T)=>T())};if(I.push(()=>{V=!0}),Y>0){let T=setTimeout(()=>{w(),H(AU("wait for transaction timeout","TIMEOUT"))},Y);I.push(()=>{clearTimeout(T)})}let O=async(T)=>{if(await T.confirmations()>=G){w();try{A(Q(T))}catch(x){H(x)}}};if(I.push(()=>{this.provider.off(this.hash,O)}),this.provider.on(this.hash,O),J>=0){let T=async()=>{try{await U()}catch(x){if(PH(x,"TRANSACTION_REPLACED")){w(),H(x);return}}if(!V)this.provider.once("block",T)};I.push(()=>{this.provider.off("block",T)}),this.provider.once("block",T)}})}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 Y1(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),C_(this)}reorderedEvent(W){return Y1(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),Y1(!W||W.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),D_(this,W)}replaceableTransaction(W){a(Number.isInteger(W)&&W>=0,"invalid startBlock","startBlock",W);let X=new eH(this,this.provider);return X.#W=W,X}}function ts(W){return{orphan:"drop-block",hash:W.hash,number:W.number}}function D_(W,X){return{orphan:"reorder-transaction",tx:W,other:X}}function C_(W){return{orphan:"drop-transaction",tx:W}}function es(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 uX(W,X){if(W.provider)return W.provider;Y1(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:X})}async function T_(W,X){let G=RU(X);if(G.to!=null)G.to=t4(G.to,W);if(G.from!=null){let Y=G.from;G.from=Promise.all([W.getAddress(),t4(Y,W)]).then(([J,Z])=>{return a(J.toLowerCase()===Z.toLowerCase(),"transaction from mismatch","tx.from",Z),J})}else G.from=W.getAddress();return await n7(G)}class LU{provider;constructor(W){A8(this,{provider:W||null})}async getNonce(W){return uX(this,"getTransactionCount").getTransactionCount(await this.getAddress(),W)}async populateCall(W){return await T_(this,W)}async populateTransaction(W){let X=uX(this,"populateTransaction"),G=await T_(this,W);if(G.nonce==null)G.nonce=await this.getNonce("pending");if(G.gasLimit==null)G.gasLimit=await this.estimateGas(G);let Y=await this.provider.getNetwork();if(G.chainId!=null){let Z=p1(G.chainId);a(Z===Y.chainId,"transaction chainId mismatch","tx.chainId",W.chainId)}else G.chainId=Y.chainId;let J=G.maxFeePerGas!=null||G.maxPriorityFeePerGas!=null;if(G.gasPrice!=null&&(G.type===2||J))a(!1,"eip-1559 transaction do not support gasPrice","tx",W);else if((G.type===0||G.type===1)&&J)a(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",W);if((G.type===2||G.type==null)&&(G.maxFeePerGas!=null&&G.maxPriorityFeePerGas!=null))G.type=2;else if(G.type===0||G.type===1){let Z=await X.getFeeData();if(Y1(Z.gasPrice!=null,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),G.gasPrice==null)G.gasPrice=Z.gasPrice}else{let Z=await X.getFeeData();if(G.type==null)if(Z.maxFeePerGas!=null&&Z.maxPriorityFeePerGas!=null){if(G.authorizationList&&G.authorizationList.length)G.type=4;else G.type=2;if(G.gasPrice!=null){let V=G.gasPrice;delete G.gasPrice,G.maxFeePerGas=V,G.maxPriorityFeePerGas=V}else{if(G.maxFeePerGas==null)G.maxFeePerGas=Z.maxFeePerGas;if(G.maxPriorityFeePerGas==null)G.maxPriorityFeePerGas=Z.maxPriorityFeePerGas}}else if(Z.gasPrice!=null){if(Y1(!J,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),G.gasPrice==null)G.gasPrice=Z.gasPrice;G.type=0}else Y1(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else if(G.type===2||G.type===3||G.type===4){if(G.maxFeePerGas==null)G.maxFeePerGas=Z.maxFeePerGas;if(G.maxPriorityFeePerGas==null)G.maxPriorityFeePerGas=Z.maxPriorityFeePerGas}}return await n7(G)}async populateAuthorization(W){let X=Object.assign({},W);if(X.chainId==null)X.chainId=(await uX(this,"getNetwork").getNetwork()).chainId;if(X.nonce==null)X.nonce=await this.getNonce();return X}async estimateGas(W){return uX(this,"estimateGas").estimateGas(await this.populateCall(W))}async call(W){return uX(this,"call").call(await this.populateCall(W))}async resolveName(W){return await uX(this,"resolveName").resolveName(W)}async sendTransaction(W){let X=uX(this,"sendTransaction"),G=await this.populateTransaction(W);delete G.from;let Y=e9.from(G);return await X.broadcastTransaction(await this.signTransaction(Y))}authorize(W){Y1(!1,"authorization not implemented for this signer","UNSUPPORTED_OPERATION",{operation:"authorize"})}}class BU extends LU{address;constructor(W,X){super(X);A8(this,{address:W})}async getAddress(){return this.address}connect(W){return new BU(this.address,W)}#W(W,X){Y1(!1,`VoidSigner cannot sign ${W}`,"UNSUPPORTED_OPERATION",{operation:X})}async signTransaction(W){this.#W("transactions","signTransaction")}async signMessage(W){this.#W("messages","signMessage")}async signTypedData(W,X,G){this.#W("typed-data","signTypedData")}}class hX extends LU{address;#W;constructor(W,X){super(X);a(W&&typeof W.sign==="function","invalid private key","privateKey","[ REDACTED ]"),this.#W=W;let G=e4(this.signingKey.publicKey);A8(this,{address:G})}get signingKey(){return this.#W}get privateKey(){return this.signingKey.privateKey}async getAddress(){return this.address}connect(W){return new hX(this.#W,W)}async signTransaction(W){W=RU(W);let{to:X,from:G}=await n7({to:W.to?t4(W.to,this):void 0,from:W.from?t4(W.from,this):void 0});if(X!=null)W.to=X;if(G!=null)W.from=G;if(W.from!=null)a(b1(W.from)===this.address,"transaction from address mismatch","tx.from",W.from),delete W.from;let Y=e9.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(MU(W)).serialized}authorizeSync(W){a(typeof W.address==="string","invalid address for authorizeSync","auth.address",W);let X=this.signingKey.sign(sH(W));return Object.assign({},{address:b1(W.address),nonce:p1(W.nonce||0),chainId:p1(W.chainId||0)},{signature:X})}async authorize(W){return W=Object.assign({},W,{address:await t4(W.address,this)}),this.authorizeSync(await this.populateAuthorization(W))}async signTypedData(W,X,G){let Y=await F9.resolveNames(W,X,G,async(J)=>{Y1(this.provider!=null,"cannot resolve ENS names without a provider","UNSUPPORTED_OPERATION",{operation:"resolveName",info:{name:J}});let Z=await this.provider.resolveName(J);return Y1(Z!=null,"unconfigured ENS name","UNCONFIGURED_NAME",{value:J}),Z});return this.signingKey.sign(F9.hash(Y.domain,X,Y.value)).serialized}}var WA=" !#$%&'()*+,-./<=>?@[]^_`{|}~",Wt=/^[a-z]*$/i;function M_(W,X){let G=97;return W.reduce((Y,J)=>{if(J===X)G++;else if(J.match(Wt))Y.push(String.fromCharCode(G)+J);else G=97,Y.push(J);return Y},[])}function Xt(W,X){for(let J=WA.length-1;J>=0;J--)W=W.split(WA[J]).join(X.substring(2*J,2*J+2));let G=[],Y=W.replace(/(:|([0-9])|([A-Z][a-z]*))/g,(J,Z,V,U)=>{if(V)for(let Q=parseInt(V);Q>=0;Q--)G.push(";");else G.push(Z.toLowerCase());return""});if(Y)throw Error(`leftovers: ${JSON.stringify(Y)}`);return M_(M_(G,";"),":")}function P_(W){return a(W[0]==="0","unsupported auwl data","data",W),Xt(W.substring(1+2*WA.length),W.substring(1,1+2*WA.length))}class nO{locale;constructor(W){A8(this,{locale:W})}split(W){return W.toLowerCase().split(/\s+/g)}join(W){return W.join(" ")}}class iO extends nO{#W;#X;constructor(W,X,G){super(W);this.#W=X,this.#X=G,this.#G=null}get _data(){return this.#W}_decodeWords(){return P_(this.#W)}#G;#Y(){if(this.#G==null){let W=this._decodeWords();if(W6(W.join(`
|
|
250
250
|
`)+`
|
|
251
|
-
`)!==this.#X)throw Error(`BIP39 Wordlist for ${this.locale} FAILED`);this.#G=W}return this.#G}getWord(W){let X=this.#Y();return a(W>=0&&W<X.length,`invalid word index: ${W}`,"index",W),X[W]}getWordIndex(W){return this.#Y().indexOf(W)}}var Gt="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",Yt="0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60",rO=null;class X6 extends iO{constructor(){super("en",Gt,Yt)}static wordlist(){if(rO==null)rO=new X6;return rO}}function R_(W){return(1<<W)-1<<8-W&255}function Jt(W){return(1<<W)-1&255}function aO(W,X){if(iY("NFKD"),X==null)X=X6.wordlist();let G=X.split(W);a(G.length%3===0&&G.length>=12&&G.length<=24,"invalid mnemonic length","mnemonic","[ REDACTED ]");let Y=new Uint8Array(Math.ceil(11*G.length/8)),J=0;for(let N=0;N<G.length;N++){let q=X.getWordIndex(G[N].normalize("NFKD"));a(q>=0,`invalid mnemonic word at index ${N}`,"mnemonic","[ REDACTED ]");for(let A=0;A<11;A++){if(q&1<<10-A)Y[J>>3]|=1<<7-J%8;J++}}let Z=32*G.length/3,V=G.length/3,U=R_(V),Q=E0(E9(Y.slice(0,Z/8)))[0]&U;return a(Q===(Y[Y.length-1]&U),"invalid mnemonic checksum","mnemonic","[ REDACTED ]"),C0(Y.slice(0,Z/8))}function sO(W,X){if(a(W.length%4===0&&W.length>=16&&W.length<=32,"invalid entropy size","entropy","[ REDACTED ]"),X==null)X=X6.wordlist();let G=[0],Y=11;for(let V=0;V<W.length;V++)if(Y>8)G[G.length-1]<<=8,G[G.length-1]|=W[V],Y-=8;else G[G.length-1]<<=Y,G[G.length-1]|=W[V]>>8-Y,G.push(W[V]&Jt(8-Y)),Y+=3;let J=W.length/4,Z=parseInt(E9(W).substring(2,4),16)&R_(J);return G[G.length-1]<<=J,G[G.length-1]|=Z>>8-J,X.join(G.map((V)=>X.getWord(V)))}var tO={};class G6{phrase;password;wordlist;entropy;constructor(W,X,G,Y,J){if(Y==null)Y="";if(J==null)J=X6.wordlist();o4(W,tO,"Mnemonic"),A8(this,{phrase:G,password:Y,wordlist:J,entropy:X})}computeSeed(){let W=Q9("mnemonic"+this.password,"NFKD");return S5(Q9(this.phrase,"NFKD"),W,2048,64,"sha512")}static fromPhrase(W,X,G){let Y=aO(W,G);return W=sO(E0(Y),G),new G6(tO,Y,W,X,G)}static fromEntropy(W,X,G){let Y=E0(W,"entropy"),J=sO(Y,G);return new G6(tO,C0(Y),J,X,G)}static entropyToPhrase(W,X){let G=E0(W,"entropy");return sO(G,X)}static phraseToEntropy(W,X){return aO(W,X)}static isValidMnemonic(W,X){try{return aO(W,X),!0}catch(G){}return!1}}/*! MIT License. Copyright 2015-2022 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */var N9=function(W,X,G,Y){if(G==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof X==="function"?W!==X||!Y:!X.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return G==="m"?Y:G==="a"?Y.call(W):Y?Y.value:X.get(W)},eO=function(W,X,G,Y,J){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!J)throw TypeError("Private accessor was defined without a setter");if(typeof X==="function"?W!==X||!J:!X.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,G):J?J.value=G:X.set(W,G),G},GA,y5,a7,Zt={16:10,24:12,32:14},Vt=[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],XA=[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],Ut=[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],Qt=[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],Nt=[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],qt=[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],Ht=[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],At=[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],zt=[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],It=[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],wt=[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],jt=[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],Kt=[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],Ot=[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 WD(W){let X=[];for(let G=0;G<W.length;G+=4)X.push(W[G]<<24|W[G+1]<<16|W[G+2]<<8|W[G+3]);return X}class YA{get key(){return N9(this,GA,"f").slice()}constructor(W){if(GA.set(this,void 0),y5.set(this,void 0),a7.set(this,void 0),!(this instanceof YA))throw Error("AES must be instanitated with `new`");eO(this,GA,new Uint8Array(W),"f");let X=Zt[this.key.length];if(X==null)throw TypeError("invalid key size (must be 16, 24 or 32 bytes)");eO(this,a7,[],"f"),eO(this,y5,[],"f");for(let N=0;N<=X;N++)N9(this,a7,"f").push([0,0,0,0]),N9(this,y5,"f").push([0,0,0,0]);let G=(X+1)*4,Y=this.key.length/4,J=WD(this.key),Z;for(let N=0;N<Y;N++)Z=N>>2,N9(this,a7,"f")[Z][N%4]=J[N],N9(this,y5,"f")[X-Z][N%4]=J[N];let V=0,U=Y,Q;while(U<G){if(Q=J[Y-1],J[0]^=_5[Q>>16&255]<<24^_5[Q>>8&255]<<16^_5[Q&255]<<8^_5[Q>>24&255]^Vt[V]<<24,V+=1,Y!=8)for(let H=1;H<Y;H++)J[H]^=J[H-1];else{for(let H=1;H<Y/2;H++)J[H]^=J[H-1];Q=J[Y/2-1],J[Y/2]^=_5[Q&255]^_5[Q>>8&255]<<8^_5[Q>>16&255]<<16^_5[Q>>24&255]<<24;for(let H=Y/2+1;H<Y;H++)J[H]^=J[H-1]}let N=0,q,A;while(N<Y&&U<G)q=U>>2,A=U%4,N9(this,a7,"f")[q][A]=J[N],N9(this,y5,"f")[X-q][A]=J[N++],U++}for(let N=1;N<X;N++)for(let q=0;q<4;q++)Q=N9(this,y5,"f")[N][q],N9(this,y5,"f")[N][q]=wt[Q>>24&255]^jt[Q>>16&255]^Kt[Q>>8&255]^Ot[Q&255]}encrypt(W){if(W.length!=16)throw TypeError("invalid plaintext size (must be 16 bytes)");let X=N9(this,a7,"f").length-1,G=[0,0,0,0],Y=WD(W);for(let V=0;V<4;V++)Y[V]^=N9(this,a7,"f")[0][V];for(let V=1;V<X;V++){for(let U=0;U<4;U++)G[U]=Ut[Y[U]>>24&255]^Qt[Y[(U+1)%4]>>16&255]^Nt[Y[(U+2)%4]>>8&255]^qt[Y[(U+3)%4]&255]^N9(this,a7,"f")[V][U];Y=G.slice()}let J=new Uint8Array(16),Z=0;for(let V=0;V<4;V++)Z=N9(this,a7,"f")[X][V],J[4*V]=(_5[Y[V]>>24&255]^Z>>24)&255,J[4*V+1]=(_5[Y[(V+1)%4]>>16&255]^Z>>16)&255,J[4*V+2]=(_5[Y[(V+2)%4]>>8&255]^Z>>8)&255,J[4*V+3]=(_5[Y[(V+3)%4]&255]^Z)&255;return J}decrypt(W){if(W.length!=16)throw TypeError("invalid ciphertext size (must be 16 bytes)");let X=N9(this,y5,"f").length-1,G=[0,0,0,0],Y=WD(W);for(let V=0;V<4;V++)Y[V]^=N9(this,y5,"f")[0][V];for(let V=1;V<X;V++){for(let U=0;U<4;U++)G[U]=Ht[Y[U]>>24&255]^At[Y[(U+3)%4]>>16&255]^zt[Y[(U+2)%4]>>8&255]^It[Y[(U+1)%4]&255]^N9(this,y5,"f")[V][U];Y=G.slice()}let J=new Uint8Array(16),Z=0;for(let V=0;V<4;V++)Z=N9(this,y5,"f")[X][V],J[4*V]=(XA[Y[V]>>24&255]^Z>>24)&255,J[4*V+1]=(XA[Y[(V+3)%4]>>16&255]^Z>>16)&255,J[4*V+2]=(XA[Y[(V+2)%4]>>8&255]^Z>>8)&255,J[4*V+3]=(XA[Y[(V+1)%4]&255]^Z)&255;return J}}GA=new WeakMap,y5=new WeakMap,a7=new WeakMap;class EU{constructor(W,X,G){if(G&&!(this instanceof G))throw Error(`${W} must be instantiated with "new"`);Object.defineProperties(this,{aes:{enumerable:!0,value:new YA(X)},name:{enumerable:!0,value:W}})}}var JA=function(W,X,G,Y,J){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!J)throw TypeError("Private accessor was defined without a setter");if(typeof X==="function"?W!==X||!J:!X.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,G):J?J.value=G:X.set(W,G),G},ZJ=function(W,X,G,Y){if(G==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof X==="function"?W!==X||!Y:!X.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return G==="m"?Y:G==="a"?Y.call(W):Y?Y.value:X.get(W)},$U,Y6;class FU extends EU{constructor(W,X){super("ECC",W,FU);if($U.set(this,void 0),Y6.set(this,void 0),X){if(X.length%16)throw TypeError("invalid iv size (must be 16 bytes)");JA(this,$U,new Uint8Array(X),"f")}else JA(this,$U,new Uint8Array(16),"f");JA(this,Y6,this.iv,"f")}get iv(){return new Uint8Array(ZJ(this,$U,"f"))}encrypt(W){if(W.length%16)throw TypeError("invalid plaintext size (must be multiple of 16 bytes)");let X=new Uint8Array(W.length);for(let G=0;G<W.length;G+=16){for(let Y=0;Y<16;Y++)ZJ(this,Y6,"f")[Y]^=W[G+Y];JA(this,Y6,this.aes.encrypt(ZJ(this,Y6,"f")),"f"),X.set(ZJ(this,Y6,"f"),G)}return X}decrypt(W){if(W.length%16)throw TypeError("invalid ciphertext size (must be multiple of 16 bytes)");let X=new Uint8Array(W.length);for(let G=0;G<W.length;G+=16){let Y=this.aes.decrypt(W.subarray(G,G+16));for(let J=0;J<16;J++)X[G+J]=Y[J]^ZJ(this,Y6,"f")[J],ZJ(this,Y6,"f")[J]=W[G+J]}return X}}$U=new WeakMap,Y6=new WeakMap;var VJ=function(W,X,G,Y,J){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!J)throw TypeError("Private accessor was defined without a setter");if(typeof X==="function"?W!==X||!J:!X.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,G):J?J.value=G:X.set(W,G),G},v5=function(W,X,G,Y){if(G==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof X==="function"?W!==X||!Y:!X.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return G==="m"?Y:G==="a"?Y.call(W):Y?Y.value:X.get(W)},SU,bX,g5;class qW extends EU{constructor(W,X){super("CTR",W,qW);if(SU.set(this,void 0),bX.set(this,void 0),g5.set(this,void 0),VJ(this,g5,new Uint8Array(16),"f"),v5(this,g5,"f").fill(0),VJ(this,SU,v5(this,g5,"f"),"f"),VJ(this,bX,16,"f"),X==null)X=1;if(typeof X==="number")this.setCounterValue(X);else this.setCounterBytes(X)}get counter(){return new Uint8Array(v5(this,g5,"f"))}setCounterValue(W){if(!Number.isInteger(W)||W<0||W>Number.MAX_SAFE_INTEGER)throw TypeError("invalid counter initial integer value");for(let X=15;X>=0;--X)v5(this,g5,"f")[X]=W%256,W=Math.floor(W/256)}setCounterBytes(W){if(W.length!==16)throw TypeError("invalid counter initial Uint8Array value length");v5(this,g5,"f").set(W)}increment(){for(let W=15;W>=0;W--)if(v5(this,g5,"f")[W]===255)v5(this,g5,"f")[W]=0;else{v5(this,g5,"f")[W]++;break}}encrypt(W){var X,G;let Y=new Uint8Array(W);for(let J=0;J<Y.length;J++){if(v5(this,bX,"f")===16)VJ(this,SU,this.aes.encrypt(v5(this,g5,"f")),"f"),VJ(this,bX,0,"f"),this.increment();Y[J]^=v5(this,SU,"f")[VJ(this,bX,(G=v5(this,bX,"f"),X=G++,G),"f"),X]}return Y}decrypt(W){return this.encrypt(W)}}SU=new WeakMap,bX=new WeakMap,g5=new WeakMap;function XD(W){if(W.length<16)throw TypeError("PKCS#7 invalid length");let X=W[W.length-1];if(X>16)throw TypeError("PKCS#7 padding byte out of range");let G=W.length-X;for(let Y=0;Y<X;Y++)if(W[G+Y]!==X)throw TypeError("PKCS#7 invalid padding byte");return new Uint8Array(W.subarray(0,G))}function GD(W){if(typeof W==="string"&&!W.startsWith("0x"))W="0x"+W;return U7(W)}function UJ(W,X){W=String(W);while(W.length<X)W="0"+W;return W}function mX(W){if(typeof W==="string")return Q9(W,"NFKC");return U7(W)}function M8(W,X){let G=X.match(/^([a-z0-9$_.-]*)(:([a-z]+))?(!)?$/i);a(G!=null,"invalid path","path",X);let Y=G[1],J=G[3],Z=G[4]==="!",V=W;for(let U of Y.toLowerCase().split(".")){if(Array.isArray(V)){if(!U.match(/^[0-9]+$/))break;V=V[parseInt(U)]}else if(typeof V==="object"){let Q=null;for(let N in V)if(N.toLowerCase()===U){Q=V[N];break}V=Q}else V=null;if(V==null)break}if(a(!Z||V!=null,"missing required value","path",Y),J&&V!=null){if(J==="int"){if(typeof V==="string"&&V.match(/^-?[0-9]+$/))return parseInt(V);else if(Number.isSafeInteger(V))return V}if(J==="number"){if(typeof V==="string"&&V.match(/^-?[0-9.]*$/))return parseFloat(V)}if(J==="data"){if(typeof V==="string")return GD(V)}if(J==="array"&&Array.isArray(V))return V;if(J===typeof V)return V;a(!1,`wrong type found for ${J} `,"path",Y)}return V}var B_="m/44'/60'/0'/0/0";function VA(W){try{let X=JSON.parse(W);if((X.version!=null?parseInt(X.version):0)===3)return!0}catch(X){}return!1}function Dt(W,X,G){if(M8(W,"crypto.cipher:string")==="aes-128-ctr"){let J=M8(W,"crypto.cipherparams.iv:data!"),Z=new qW(X,J);return C0(Z.decrypt(G))}Y1(!1,"unsupported cipher","UNSUPPORTED_OPERATION",{operation:"decrypt"})}function ZA(W,X){let G=E0(X),Y=M8(W,"crypto.ciphertext:data!"),J=C0(U8(G8([G.slice(16,32),Y]))).substring(2);a(J===M8(W,"crypto.mac:string!").toLowerCase(),"incorrect password","password","[ REDACTED ]");let Z=Dt(W,G.slice(0,16),Y),V=e4(Z);if(W.address){let N=W.address.toLowerCase();if(!N.startsWith("0x"))N="0x"+N;a(b1(N)===V,"keystore address/privateKey mismatch","address",W.address)}let U={address:V,privateKey:Z};if(M8(W,"x-ethers.version:string")==="0.1"){let N=G.slice(32,64),q=M8(W,"x-ethers.mnemonicCiphertext:data!"),A=M8(W,"x-ethers.mnemonicCounter:data!"),H=new qW(N,A);U.mnemonic={path:M8(W,"x-ethers.path:string")||B_,locale:M8(W,"x-ethers.locale:string")||"en",entropy:C0(E0(H.decrypt(q)))}}return U}function E_(W){let X=M8(W,"crypto.kdf:string");if(X&&typeof X==="string"){if(X.toLowerCase()==="scrypt"){let G=M8(W,"crypto.kdfparams.salt:data!"),Y=M8(W,"crypto.kdfparams.n:int!"),J=M8(W,"crypto.kdfparams.r:int!"),Z=M8(W,"crypto.kdfparams.p:int!");a(Y>0&&(Y&Y-1)===0,"invalid kdf.N","kdf.N",Y),a(J>0&&Z>0,"invalid kdf","kdf",X);let V=M8(W,"crypto.kdfparams.dklen:int!");return a(V===32,"invalid kdf.dklen","kdf.dflen",V),{name:"scrypt",salt:G,N:Y,r:J,p:Z,dkLen:64}}else if(X.toLowerCase()==="pbkdf2"){let G=M8(W,"crypto.kdfparams.salt:data!"),Y=M8(W,"crypto.kdfparams.prf:string!"),J=Y.split("-").pop();a(J==="sha256"||J==="sha512","invalid kdf.pdf","kdf.pdf",Y);let Z=M8(W,"crypto.kdfparams.c:int!"),V=M8(W,"crypto.kdfparams.dklen:int!");return a(V===32,"invalid kdf.dklen","kdf.dklen",V),{name:"pbkdf2",salt:G,count:Z,dkLen:V,algorithm:J}}}a(!1,"unsupported key-derivation function","kdf",X)}function YD(W,X){let G=JSON.parse(W),Y=mX(X),J=E_(G);if(J.name==="pbkdf2"){let{salt:A,count:H,dkLen:I,algorithm:w}=J,O=S5(Y,A,H,I,w);return ZA(G,O)}Y1(J.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:J});let{salt:Z,N:V,r:U,p:Q,dkLen:N}=J,q=UW(Y,Z,V,U,Q,N);return ZA(G,q)}function L_(W){return new Promise((X)=>{setTimeout(()=>{X()},W)})}async function JD(W,X,G){let Y=JSON.parse(W),J=mX(X),Z=E_(Y);if(Z.name==="pbkdf2"){if(G)G(0),await L_(0);let{salt:H,count:I,dkLen:w,algorithm:O}=Z,T=S5(J,H,I,w,O);if(G)G(1),await L_(0);return ZA(Y,T)}Y1(Z.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:Z});let{salt:V,N:U,r:Q,p:N,dkLen:q}=Z,A=await VW(J,V,U,Q,N,q,G);return ZA(Y,A)}function $_(W){let X=W.salt!=null?E0(W.salt,"options.salt"):x5(32),G=131072,Y=8,J=1;if(W.scrypt){if(W.scrypt.N)G=W.scrypt.N;if(W.scrypt.r)Y=W.scrypt.r;if(W.scrypt.p)J=W.scrypt.p}return a(typeof G==="number"&&G>0&&Number.isSafeInteger(G)&&(BigInt(G)&BigInt(G-1))===BigInt(0),"invalid scrypt N parameter","options.N",G),a(typeof Y==="number"&&Y>0&&Number.isSafeInteger(Y),"invalid scrypt r parameter","options.r",Y),a(typeof J==="number"&&J>0&&Number.isSafeInteger(J),"invalid scrypt p parameter","options.p",J),{name:"scrypt",dkLen:32,salt:X,N:G,r:Y,p:J}}function F_(W,X,G,Y){let J=E0(G.privateKey,"privateKey"),Z=Y.iv!=null?E0(Y.iv,"options.iv"):x5(16);a(Z.length===16,"invalid options.iv length","options.iv",Y.iv);let V=Y.uuid!=null?E0(Y.uuid,"options.uuid"):x5(16);a(V.length===16,"invalid options.uuid length","options.uuid",Y.iv);let U=W.slice(0,16),Q=W.slice(16,32),N=new qW(U,Z),q=E0(N.encrypt(J)),A=U8(G8([Q,q])),H={address:G.address.substring(2).toLowerCase(),id:xH(V),version:3,Crypto:{cipher:"aes-128-ctr",cipherparams:{iv:C0(Z).substring(2)},ciphertext:C0(q).substring(2),kdf:"scrypt",kdfparams:{salt:C0(X.salt).substring(2),n:X.N,dklen:32,p:X.p,r:X.r},mac:A.substring(2)}};if(G.mnemonic){let I=Y.client!=null?Y.client:`ethers/${MH}`,w=G.mnemonic.path||B_,O=G.mnemonic.locale||"en",T=W.slice(32,64),x=E0(G.mnemonic.entropy,"account.mnemonic.entropy"),P=x5(16),u=new qW(T,P),F=E0(u.encrypt(x)),m=new Date,p="UTC--"+(m.getUTCFullYear()+"-"+UJ(m.getUTCMonth()+1,2)+"-"+UJ(m.getUTCDate(),2)+"T"+UJ(m.getUTCHours(),2)+"-"+UJ(m.getUTCMinutes(),2)+"-"+UJ(m.getUTCSeconds(),2)+".0Z")+"--"+H.address;H["x-ethers"]={client:I,gethFilename:p,path:w,locale:O,mnemonicCounter:C0(P).substring(2),mnemonicCiphertext:C0(F).substring(2),version:"0.1"}}return JSON.stringify(H)}function xU(W,X,G){if(G==null)G={};let Y=mX(X),J=$_(G),Z=UW(Y,J.salt,J.N,J.r,J.p,64);return F_(E0(Z),J,W,G)}async function kU(W,X,G){if(G==null)G={};let Y=mX(X),J=$_(G),Z=await VW(Y,J.salt,J.N,J.r,J.p,64,G.progressCallback);return F_(E0(Z),J,W,G)}var _U="m/44'/60'/0'/0/0",Ct=new Uint8Array([66,105,116,99,111,105,110,32,115,101,101,100]),HW=2147483648,Tt=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Mt="0123456789abcdef";function UA(W,X){let G="";while(W)G=Mt[W%16]+G,W=Math.trunc(W/16);while(G.length<X*2)G="0"+G;return"0x"+G}function ZD(W){let X=E0(W),G=rY(E9(E9(X)),0,4),Y=G8([X,G]);return FH(Y)}var s7={};function S_(W,X,G,Y){let J=new Uint8Array(37);if(W&HW)Y1(Y!=null,"cannot derive child of neutered node","UNSUPPORTED_OPERATION",{operation:"deriveChild"}),J.set(E0(Y),1);else J.set(E0(G));for(let V=24;V>=0;V-=8)J[33+(V>>3)]=W>>24-V&255;let Z=E0(GW("sha512",X,J));return{IL:Z.slice(0,32),IR:Z.slice(32)}}function x_(W,X){let G=X.split("/");if(a(G.length>0,"invalid path","path",X),G[0]==="m")a(W.depth===0,`cannot derive root path (i.e. path starting with "m/") for a node at non-zero depth ${W.depth}`,"path",X),G.shift();let Y=W;for(let J=0;J<G.length;J++){let Z=G[J];if(Z.match(/^[0-9]+'$/)){let V=parseInt(Z.substring(0,Z.length-1));a(V<HW,"invalid path index",`path[${J}]`,Z),Y=Y.deriveChild(HW+V)}else if(Z.match(/^[0-9]+$/)){let V=parseInt(Z);a(V<HW,"invalid path index",`path[${J}]`,Z),Y=Y.deriveChild(V)}else a(!1,"invalid path component",`path[${J}]`,Z)}return Y}class q9 extends hX{publicKey;fingerprint;parentFingerprint;mnemonic;chainCode;path;index;depth;constructor(W,X,G,Y,J,Z,V,U,Q){super(X,Q);o4(W,s7,"HDNodeWallet"),A8(this,{publicKey:X.compressedPublicKey});let N=rY(YW(E9(this.publicKey)),0,4);A8(this,{parentFingerprint:G,fingerprint:N,chainCode:Y,path:J,index:Z,depth:V}),A8(this,{mnemonic:U})}connect(W){return new q9(s7,this.signingKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.mnemonic,W)}#W(){let W={address:this.address,privateKey:this.privateKey},X=this.mnemonic;if(this.path&&X&&X.wordlist.locale==="en"&&X.password==="")W.mnemonic={path:this.path,locale:"en",entropy:X.entropy};return W}async encrypt(W,X){return await kU(this.#W(),W,{progressCallback:X})}encryptSync(W){return xU(this.#W(),W)}get extendedKey(){return Y1(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),ZD(G8(["0x0488ADE4",UA(this.depth,1),this.parentFingerprint,UA(this.index,4),this.chainCode,G8(["0x00",this.privateKey])]))}hasPath(){return this.path!=null}neuter(){return new fX(s7,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.provider)}deriveChild(W){let X=s8(W,"index");a(X<=4294967295,"invalid index","index",X);let G=this.path;if(G){if(G+="/"+(X&~HW),X&HW)G+="'"}let{IR:Y,IL:J}=S_(X,this.chainCode,this.publicKey,this.privateKey),Z=new i8(Q7((sY(J)+BigInt(this.privateKey))%Tt,32));return new q9(s7,Z,this.fingerprint,C0(Y),G,X,this.depth+1,this.mnemonic,this.provider)}derivePath(W){return x_(this,W)}static#X(W,X){a(i7(W),"invalid seed","seed","[REDACTED]");let G=E0(W,"seed");a(G.length>=16&&G.length<=64,"invalid seed","seed","[REDACTED]");let Y=E0(GW("sha512",Ct,G)),J=new i8(C0(Y.slice(0,32)));return new q9(s7,J,"0x00000000",C0(Y.slice(32)),"m",0,0,X,null)}static fromExtendedKey(W){let X=z8(SH(W));a(X.length===82||ZD(X.slice(0,78))===W,"invalid extended key","extendedKey","[ REDACTED ]");let G=X[4],Y=C0(X.slice(5,9)),J=parseInt(C0(X.slice(9,13)).substring(2),16),Z=C0(X.slice(13,45)),V=X.slice(45,78);switch(C0(X.slice(0,4))){case"0x0488b21e":case"0x043587cf":{let U=C0(V);return new fX(s7,e4(U),U,Y,Z,null,J,G,null)}case"0x0488ade4":case"0x04358394 ":if(V[0]!==0)break;return new q9(s7,new i8(V.slice(1)),Y,Z,null,J,G,null,null)}a(!1,"invalid extended key prefix","extendedKey","[ REDACTED ]")}static createRandom(W,X,G){if(W==null)W="";if(X==null)X=_U;if(G==null)G=X6.wordlist();let Y=G6.fromEntropy(x5(16),W,G);return q9.#X(Y.computeSeed(),Y).derivePath(X)}static fromMnemonic(W,X){if(!X)X=_U;return q9.#X(W.computeSeed(),W).derivePath(X)}static fromPhrase(W,X,G,Y){if(X==null)X="";if(G==null)G=_U;if(Y==null)Y=X6.wordlist();let J=G6.fromPhrase(W,X,Y);return q9.#X(J.computeSeed(),J).derivePath(G)}static fromSeed(W){return q9.#X(W,null)}}class fX extends BU{publicKey;fingerprint;parentFingerprint;chainCode;path;index;depth;constructor(W,X,G,Y,J,Z,V,U,Q){super(X,Q);o4(W,s7,"HDNodeVoidWallet"),A8(this,{publicKey:G});let N=rY(YW(E9(G)),0,4);A8(this,{publicKey:G,fingerprint:N,parentFingerprint:Y,chainCode:J,path:Z,index:V,depth:U})}connect(W){return new fX(s7,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,W)}get extendedKey(){return Y1(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),ZD(G8(["0x0488B21E",UA(this.depth,1),this.parentFingerprint,UA(this.index,4),this.chainCode,this.publicKey]))}hasPath(){return this.path!=null}deriveChild(W){let X=s8(W,"index");a(X<=4294967295,"invalid index","index",X);let G=this.path;if(G){if(G+="/"+(X&~HW),X&HW)G+="'"}let{IR:Y,IL:J}=S_(X,this.chainCode,this.publicKey,null),Z=i8.addPoints(J,this.publicKey,!0),V=e4(Z);return new fX(s7,V,Z,this.fingerprint,C0(Y),G,X,this.depth+1,this.provider)}derivePath(W){return x_(this,W)}}function QA(W){try{if(JSON.parse(W).encseed)return!0}catch(X){}return!1}function NA(W,X){let G=JSON.parse(W),Y=mX(X),J=b1(M8(G,"ethaddr:string!")),Z=GD(M8(G,"encseed:string!"));a(Z&&Z.length%16===0,"invalid encseed","json",W);let V=E0(S5(Y,Y,2000,32,"sha256")).slice(0,16),U=Z.slice(0,16),Q=Z.slice(16),N=new FU(V,U),q=XD(E0(N.decrypt(Q))),A="";for(let H=0;H<q.length;H++)A+=String.fromCharCode(q[H]);return{address:J,privateKey:W6(A)}}function k_(W){return new Promise((X)=>{setTimeout(()=>{X()},W)})}class J6 extends hX{constructor(W,X){if(typeof W==="string"&&!W.startsWith("0x"))W="0x"+W;let G=typeof W==="string"?new i8(W):W;super(G,X)}connect(W){return new J6(this.signingKey,W)}async encrypt(W,X){let G={address:this.address,privateKey:this.privateKey};return await kU(G,W,{progressCallback:X})}encryptSync(W){let X={address:this.address,privateKey:this.privateKey};return xU(X,W)}static#W(W){if(a(W,"invalid JSON wallet","json","[ REDACTED ]"),"mnemonic"in W&&W.mnemonic&&W.mnemonic.locale==="en"){let G=G6.fromEntropy(W.mnemonic.entropy),Y=q9.fromMnemonic(G,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 X=new J6(W.privateKey);return a(X.address===W.address,"address/privateKey mismatch","json","[ REDACTED ]"),X}static async fromEncryptedJson(W,X,G){let Y=null;if(VA(W))Y=await JD(W,X,G);else if(QA(W)){if(G)G(0),await k_(0);if(Y=NA(W,X),G)G(1),await k_(0)}return J6.#W(Y)}static fromEncryptedJsonSync(W,X){let G=null;if(VA(W))G=YD(W,X);else if(QA(W))G=NA(W,X);else a(!1,"invalid JSON wallet","json","[ REDACTED ]");return J6.#W(G)}static createRandom(W){let X=q9.createRandom();if(W)return X.connect(W);return X}static fromPhrase(W,X){let G=q9.fromPhrase(W);if(X)return G.connect(X);return G}}var qA=(W)=>{let X=(G)=>G&&typeof G==="object"&&!Array.isArray(G)?Object.keys(G).sort().reduce((Y,J)=>(Y[J]=X(G[J]),Y),{}):Array.isArray(G)?G.map(X):G;return JSON.stringify(X(W))},Lt=(W,X)=>{try{return b1(PU(Q9(qA(W)),X))}catch{return null}},UD=(W)=>{if(!W?.signature||!W?.originEthAddress||!W?.originUser)return{ok:!1,reason:"missing-fields"};let X;try{if(X=b1(W.originEthAddress),b1(W.originUser)!==X)return{ok:!1,reason:"address-mismatch"}}catch{return{ok:!1,reason:"invalid-address"}}let{signature:G,originEthAddress:Y,...J}=W;try{let Z=PU(Q9(qA(J)),G);if(b1(Z)!==X)return{ok:!1,reason:"invalid-signature"};let{originUser:V,...U}=J;return{ok:!0,normalizedOriginEthAddress:X,payload:U}}catch(Z){return{ok:!1,reason:"verify-error",error:Z}}},__=({constitution:W=[],customRoles:X=null,getNode:G})=>{let Y=W.map((P)=>{try{return b1(P)}catch{return null}}).filter(Boolean),J=X??QD,Z=(P,u)=>ND(J,P,u),V=new Map,U=(P,u)=>{if(V.size>4096)V.clear();let F=u+JSON.stringify(P);if(!V.has(F))V.set(F,Lt(P,u));return V.get(F)},Q=(P)=>P?.owner??P?._meta?.owner,N=(P)=>typeof P==="string"&&P.startsWith("user:"),q=(P,u,F)=>P===u||["write","delete"].includes(F?.[P]),A=(P,u,F)=>P===u||F?.[P]==="delete",H=(P,u)=>P.physical-u.physical||P.logical-u.logical,I=({type:P,id:u,sourceId:F,targetId:m,edges:l,value:p,timestamp:W0,originUser:y})=>F?{type:P,sourceId:F,targetId:m,edges:l,timestamp:W0,originUser:y}:{type:P,id:u,value:p,timestamp:W0,originUser:y},w=(P)=>{if(Y.includes(P))return"superadmin";let u=G(`user:${P}`)?.value;if(!u?.role)return"guest";return u.expiresAt&&new Date(u.expiresAt).getTime()<Date.now()?"guest":u.role},O=(P,u)=>!!P?.sig&&Y.includes(P.author)&&U({type:"upsert",id:u,value:P.value,timestamp:P.ts,originUser:P.author},P.sig)===P.author,T=(P)=>P?.meta?.role??(P?.meta&&{...P.meta,ts:P.meta.ts??P.timestamp}),x=(P,u,F)=>[P,T(u)].filter((m)=>O(m,F)).sort((m,l)=>H(l.ts,m.ts))[0];return{op(P,u){if(!P?.signature)return!1;let F=U(I(P),P.signature);if(!F||F!==P.originUser)return!1;let m=P.sourceId??P.id,l=P.type==="remove"?"delete":P.sourceId?"link":"write";if(N(m)){if(Y.includes(F))return!0;if(l!=="write"||F!==m.slice(5))return!1;if(u&&!Z(w(F),"write"))return!1;let{role:y="guest",expiresAt:e=null}=x(P.receipt,u,m)?.value??{},H0=P.value??{};return H0.role===y&&(H0.expiresAt??null)===e}if(!Z(w(F),l))return!1;let p=Q(u?.value);if(p)return(l==="delete"?A:q)(F,p,u.value.collaborators);let W0=Q(P.value);return!W0||F===W0},opOf(P,u){let F=u.meta??{};return{type:"upsert",id:P,value:F.value??u.value,timestamp:F.ts??u.timestamp,originUser:F.author,originEthAddress:F.author,signature:F.sig,...F.role&&{receipt:F.role}}},edgeOf(P,u){let F=u.meta?.edges;return F?{type:F.type,sourceId:P,targetId:F.targetId,edges:u.edges??[],timestamp:F.ts,originUser:F.author,originEthAddress:F.author,signature:F.sig}:null},edgeReceipt(P){if(!P?.signature||!Array.isArray(P.edges))return null;return{author:U(I(P),P.signature),sig:P.signature,ts:P.timestamp,type:P.type,targetId:P.targetId}},edges(P,u,F){let m=u.meta?.edges,l=F.meta?.edges;if(!m||l&&H(l.ts,m.ts)>=0)return null;let p=this.edgeOf(P,u);return this.op(p,F)?p:null},receipt(P,u,F){if(!P?.signature)return null;let m=U(I(P),P.signature),l={author:m,sig:P.signature,ts:P.timestamp};if(F.meta?.edges)l.edges=F.meta.edges;if(N(P.id)){if(l.value=P.value,!Y.includes(m)){let p=x(P.receipt,u,P.id);if(p)l.role=p}}return l}}};function y_(W,X=[]){let G=String(W??"").trim();if(!G)throw Error("sm-server: signing key required (GDB_SM_KEY)");let Y=G.includes(" ")?q9.fromPhrase(G):new J6(G),J=b1(Y.address),Z=new Set([...X,J].map((Q)=>{try{return b1(Q)}catch{return null}}).filter(Boolean));return{address:J,superAdmins:Z,canonicalize:qA,signOps:async(Q)=>{let N=[];for(let q of Q){if(q?.signature&&q?.originEthAddress&&q?.originUser){N.push(q);continue}let A={...q,originUser:J},H=await Y.signMessage(Q9(qA(A)));N.push({...q,originUser:J,originEthAddress:J,signature:H})}return N},verifyOp:UD,isSuperAdmin:(Q)=>{try{return Z.has(b1(Q))}catch{return!1}}}}var QD={superadmin:{can:["assignRole","deleteAny"],inherits:["admin"]},admin:{can:["delete"],inherits:["manager"]},manager:{can:["publish"],inherits:["user"]},user:{can:["write","link","sync"],inherits:["guest"]},guest:{can:["read","sync"]}},Bt=Object.keys(QD),ND=(W,X,G,Y=new Set)=>{if(!X||!W[X]||Y.has(X))return!1;if(Y.add(X),W[X].can?.includes(G))return!0;return(W[X].inherits??[]).some((J)=>ND(W,J,G,new Set(Y)))},Et=(W)=>W==="upsert"?"write":W==="remove"?"delete":W==="link"||W==="unlink"?"link":W==="sync"||W==="deltaSync"?"sync":"unknown",VD=(W)=>`${W.slice(0,6)}...${W.slice(-4)}`,v_=({constitution:W=[],customRoles:X=null,getNode:G})=>{let Y=W.map((U)=>{try{return b1(U)}catch{return null}}).filter(Boolean),J=X??QD,Z=(U)=>{let Q=G(`user:${U}`)?.value;if(!Q?.role)return"guest";if(Q.expiresAt&&new Date(Q.expiresAt).getTime()<Date.now())return"guest";return Q.role},V=(U)=>{try{return Y.includes(b1(U??""))}catch{return!1}};return async(U)=>{let Q=[];for(let N of U){if(N?.type==="sync"){Q.push(N);continue}if(N?.type==="fullStateSync"||N?.type==="deltaSync"){if(!(N.signature&&N.originEthAddress&&N.originUser)){Q.push(N);continue}let P=UD(N);if(P.ok)Q.push(P.payload);else console.warn(`\u26A0\uFE0F SM: ${N.type} rejected: ${P.reason}`);continue}let q=UD(N);if(!q.ok){console.warn(`\u26A0\uFE0F SM: invalid signed operation: ${q.reason}`);continue}let{normalizedOriginEthAddress:A,payload:H}=q,I=Y.includes(A)?"superadmin":Z(A),w={...H,signer:A,originUser:N.originUser,originEthAddress:N.originEthAddress,signature:N.signature};if(H.type==="upsert"&&H.id===`user:${A}`&&!G(H.id)){Q.push(w);continue}let{role:O,ethAddress:T}=H.value??{};if(O==="superadmin"&&!V(T)){console.warn(`\u26A0\uFE0F SM: [POLICY] ${VD(A)} tried to assign superadmin to ${VD(String(T??""))}. Blocked.`);continue}let x=Et(H.type);if(ND(J,I,x))Q.push(w);else console.warn(`\u26A0\uFE0F SM: ${VD(A)} (role: ${I}) DENIED ${x}`)}return Q}};function g_(W,X,G,{intervalMs:Y=4000,settleMs:J=15000,customRoles:Z=null}={}){let V=new Set([...Bt,...Object.keys(Z??{})]),U=async(A,H,I=null)=>{let w=b1(A);if(!V.has(H))throw Error(`Role '${H}' is not a defined role.`);let O=`user:${w}`,T=(await W.get(O)).result?.value||{};await W.put({...T,ethAddress:w,role:H,assignedByEthAddress:X.address,expiresAt:I?new Date(I).toISOString():null,priority:!0},O)},Q=async()=>{let A=new Map;for(let H of G){let I=H.then?.assignRole;if(!I)continue;let w=[];try{({results:w=[]}=W.map({query:H.if}))}catch(O){console.error("\u274C GOVERNANCE: rule evaluation failed:",O.message);continue}for(let O of w){if(!O.id.startsWith("user:"))continue;if(X.isSuperAdmin(O.id.slice(5)))continue;if(H.offsetTimestamp&&(O.timestamp?.physical??0)>Date.now()-H.offsetTimestamp)continue;A.set(O.id,{role:I,current:O.value?.role})}}for(let[H,{role:I,current:w}]of A){if(w===I)continue;try{await U(H.slice(5),I),console.info(`\uD83D\uDCDC GOVERNANCE: ${H.slice(5)} '${w}' -> '${I}'`)}catch(O){console.error("\u274C GOVERNANCE: assignRole failed:",O.message)}}},N=null,q=setTimeout(()=>{N=setInterval(Q,Y),console.info(`\uD83D\uDCDC GOVERNANCE ENGINE: active \u2014 ${G.length} rule(s), every ${Y} ms.`)},J);return{assignRole:U,stop:()=>{if(clearTimeout(q),N)clearInterval(N)}}}var HD=(W)=>W&&typeof W==="object"?structuredClone(W):W,qD=(W,X=16)=>{let G=null,Y=null;return(...J)=>{if(Y??=Promise.withResolvers(),G!==null)clearTimeout(G);return G=setTimeout(async()=>{G=null;try{Y.resolve(await W(...J))}catch(Z){Y.reject(Z)}finally{Y=null}},X),Y.promise}},xt=(W)=>{let X=!1;return()=>{if(X)return;X=!0,setImmediate(()=>{X=!1,W()})}};function kt(W=1000){let X=[];return{add(G){if(G?.timestamp){if(X.push(G),X.length>W)X.splice(0,X.length-W)}},getOldest:()=>X[0]??null,getDelta:(G,Y)=>G?X.filter((J)=>Y(J.timestamp,G)>0):[...X],sign({type:G,id:Y,sourceId:J,timestamp:Z,originUser:V,originEthAddress:U,signature:Q}){let N=X.find((q)=>q.type===G&&(q.id??q.sourceId)===(Y??J)&&q.timestamp?.physical===Z?.physical&&q.timestamp?.logical===Z?.logical);if(N&&Q)Object.assign(N,{originUser:V,originEthAddress:U,signature:Q})},clear(){X=[]},entries:()=>[...X],setEntries(G=[]){if(X=Array.isArray(G)?[...G]:[],X.length>W)X.splice(0,X.length-W)}}}function _t(){let W={nodes:{}};return{get nodes(){return W.nodes},set nodes(X){W.nodes=X??{}},upsert(X,G,Y){let J=W.nodes[X];W.nodes[X]={id:X,value:HD(G),edges:J?.edges?[...J.edges]:[],timestamp:Y,...J?.meta&&{meta:J.meta}}},get:(X)=>W.nodes[X]??null,link(X,G,Y){let J=W.nodes[X],Z=W.nodes[G];if(J&&Z&&!J.edges.includes(G))W.nodes[X]={...J,edges:[...J.edges,G],timestamp:Y}},unlink(X,G,Y){let J=W.nodes[X];if(J?.edges.includes(G))W.nodes[X]={...J,edges:J.edges.filter((Z)=>Z!==G),timestamp:Y}},getAllNodes:()=>Object.values(W.nodes),serialize:()=>WG.deflate(hU(W.nodes)),deserialize(X){let G=X instanceof Uint8Array?X:new Uint8Array(X);W.nodes=AW(WG.inflate(G))}}}function yt(W,X){let G=St(W);if(G&&G!==".")Ft(G,{recursive:!0});let Y=new $t(W);Y.exec("PRAGMA journal_mode = WAL"),Y.exec("PRAGMA synchronous = NORMAL"),Y.exec(`
|
|
251
|
+
`)!==this.#X)throw Error(`BIP39 Wordlist for ${this.locale} FAILED`);this.#G=W}return this.#G}getWord(W){let X=this.#Y();return a(W>=0&&W<X.length,`invalid word index: ${W}`,"index",W),X[W]}getWordIndex(W){return this.#Y().indexOf(W)}}var Gt="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",Yt="0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60",rO=null;class X6 extends iO{constructor(){super("en",Gt,Yt)}static wordlist(){if(rO==null)rO=new X6;return rO}}function R_(W){return(1<<W)-1<<8-W&255}function Jt(W){return(1<<W)-1&255}function aO(W,X){if(iY("NFKD"),X==null)X=X6.wordlist();let G=X.split(W);a(G.length%3===0&&G.length>=12&&G.length<=24,"invalid mnemonic length","mnemonic","[ REDACTED ]");let Y=new Uint8Array(Math.ceil(11*G.length/8)),J=0;for(let N=0;N<G.length;N++){let q=X.getWordIndex(G[N].normalize("NFKD"));a(q>=0,`invalid mnemonic word at index ${N}`,"mnemonic","[ REDACTED ]");for(let A=0;A<11;A++){if(q&1<<10-A)Y[J>>3]|=1<<7-J%8;J++}}let Z=32*G.length/3,V=G.length/3,U=R_(V),Q=E0(E9(Y.slice(0,Z/8)))[0]&U;return a(Q===(Y[Y.length-1]&U),"invalid mnemonic checksum","mnemonic","[ REDACTED ]"),C0(Y.slice(0,Z/8))}function sO(W,X){if(a(W.length%4===0&&W.length>=16&&W.length<=32,"invalid entropy size","entropy","[ REDACTED ]"),X==null)X=X6.wordlist();let G=[0],Y=11;for(let V=0;V<W.length;V++)if(Y>8)G[G.length-1]<<=8,G[G.length-1]|=W[V],Y-=8;else G[G.length-1]<<=Y,G[G.length-1]|=W[V]>>8-Y,G.push(W[V]&Jt(8-Y)),Y+=3;let J=W.length/4,Z=parseInt(E9(W).substring(2,4),16)&R_(J);return G[G.length-1]<<=J,G[G.length-1]|=Z>>8-J,X.join(G.map((V)=>X.getWord(V)))}var tO={};class G6{phrase;password;wordlist;entropy;constructor(W,X,G,Y,J){if(Y==null)Y="";if(J==null)J=X6.wordlist();o4(W,tO,"Mnemonic"),A8(this,{phrase:G,password:Y,wordlist:J,entropy:X})}computeSeed(){let W=Q9("mnemonic"+this.password,"NFKD");return S5(Q9(this.phrase,"NFKD"),W,2048,64,"sha512")}static fromPhrase(W,X,G){let Y=aO(W,G);return W=sO(E0(Y),G),new G6(tO,Y,W,X,G)}static fromEntropy(W,X,G){let Y=E0(W,"entropy"),J=sO(Y,G);return new G6(tO,C0(Y),J,X,G)}static entropyToPhrase(W,X){let G=E0(W,"entropy");return sO(G,X)}static phraseToEntropy(W,X){return aO(W,X)}static isValidMnemonic(W,X){try{return aO(W,X),!0}catch(G){}return!1}}/*! MIT License. Copyright 2015-2022 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */var N9=function(W,X,G,Y){if(G==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof X==="function"?W!==X||!Y:!X.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return G==="m"?Y:G==="a"?Y.call(W):Y?Y.value:X.get(W)},eO=function(W,X,G,Y,J){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!J)throw TypeError("Private accessor was defined without a setter");if(typeof X==="function"?W!==X||!J:!X.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,G):J?J.value=G:X.set(W,G),G},GA,y5,a7,Zt={16:10,24:12,32:14},Vt=[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],XA=[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],Ut=[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],Qt=[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],Nt=[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],qt=[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],Ht=[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],At=[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],zt=[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],It=[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],wt=[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],jt=[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],Kt=[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],Ot=[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 WD(W){let X=[];for(let G=0;G<W.length;G+=4)X.push(W[G]<<24|W[G+1]<<16|W[G+2]<<8|W[G+3]);return X}class YA{get key(){return N9(this,GA,"f").slice()}constructor(W){if(GA.set(this,void 0),y5.set(this,void 0),a7.set(this,void 0),!(this instanceof YA))throw Error("AES must be instanitated with `new`");eO(this,GA,new Uint8Array(W),"f");let X=Zt[this.key.length];if(X==null)throw TypeError("invalid key size (must be 16, 24 or 32 bytes)");eO(this,a7,[],"f"),eO(this,y5,[],"f");for(let N=0;N<=X;N++)N9(this,a7,"f").push([0,0,0,0]),N9(this,y5,"f").push([0,0,0,0]);let G=(X+1)*4,Y=this.key.length/4,J=WD(this.key),Z;for(let N=0;N<Y;N++)Z=N>>2,N9(this,a7,"f")[Z][N%4]=J[N],N9(this,y5,"f")[X-Z][N%4]=J[N];let V=0,U=Y,Q;while(U<G){if(Q=J[Y-1],J[0]^=_5[Q>>16&255]<<24^_5[Q>>8&255]<<16^_5[Q&255]<<8^_5[Q>>24&255]^Vt[V]<<24,V+=1,Y!=8)for(let H=1;H<Y;H++)J[H]^=J[H-1];else{for(let H=1;H<Y/2;H++)J[H]^=J[H-1];Q=J[Y/2-1],J[Y/2]^=_5[Q&255]^_5[Q>>8&255]<<8^_5[Q>>16&255]<<16^_5[Q>>24&255]<<24;for(let H=Y/2+1;H<Y;H++)J[H]^=J[H-1]}let N=0,q,A;while(N<Y&&U<G)q=U>>2,A=U%4,N9(this,a7,"f")[q][A]=J[N],N9(this,y5,"f")[X-q][A]=J[N++],U++}for(let N=1;N<X;N++)for(let q=0;q<4;q++)Q=N9(this,y5,"f")[N][q],N9(this,y5,"f")[N][q]=wt[Q>>24&255]^jt[Q>>16&255]^Kt[Q>>8&255]^Ot[Q&255]}encrypt(W){if(W.length!=16)throw TypeError("invalid plaintext size (must be 16 bytes)");let X=N9(this,a7,"f").length-1,G=[0,0,0,0],Y=WD(W);for(let V=0;V<4;V++)Y[V]^=N9(this,a7,"f")[0][V];for(let V=1;V<X;V++){for(let U=0;U<4;U++)G[U]=Ut[Y[U]>>24&255]^Qt[Y[(U+1)%4]>>16&255]^Nt[Y[(U+2)%4]>>8&255]^qt[Y[(U+3)%4]&255]^N9(this,a7,"f")[V][U];Y=G.slice()}let J=new Uint8Array(16),Z=0;for(let V=0;V<4;V++)Z=N9(this,a7,"f")[X][V],J[4*V]=(_5[Y[V]>>24&255]^Z>>24)&255,J[4*V+1]=(_5[Y[(V+1)%4]>>16&255]^Z>>16)&255,J[4*V+2]=(_5[Y[(V+2)%4]>>8&255]^Z>>8)&255,J[4*V+3]=(_5[Y[(V+3)%4]&255]^Z)&255;return J}decrypt(W){if(W.length!=16)throw TypeError("invalid ciphertext size (must be 16 bytes)");let X=N9(this,y5,"f").length-1,G=[0,0,0,0],Y=WD(W);for(let V=0;V<4;V++)Y[V]^=N9(this,y5,"f")[0][V];for(let V=1;V<X;V++){for(let U=0;U<4;U++)G[U]=Ht[Y[U]>>24&255]^At[Y[(U+3)%4]>>16&255]^zt[Y[(U+2)%4]>>8&255]^It[Y[(U+1)%4]&255]^N9(this,y5,"f")[V][U];Y=G.slice()}let J=new Uint8Array(16),Z=0;for(let V=0;V<4;V++)Z=N9(this,y5,"f")[X][V],J[4*V]=(XA[Y[V]>>24&255]^Z>>24)&255,J[4*V+1]=(XA[Y[(V+3)%4]>>16&255]^Z>>16)&255,J[4*V+2]=(XA[Y[(V+2)%4]>>8&255]^Z>>8)&255,J[4*V+3]=(XA[Y[(V+1)%4]&255]^Z)&255;return J}}GA=new WeakMap,y5=new WeakMap,a7=new WeakMap;class EU{constructor(W,X,G){if(G&&!(this instanceof G))throw Error(`${W} must be instantiated with "new"`);Object.defineProperties(this,{aes:{enumerable:!0,value:new YA(X)},name:{enumerable:!0,value:W}})}}var JA=function(W,X,G,Y,J){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!J)throw TypeError("Private accessor was defined without a setter");if(typeof X==="function"?W!==X||!J:!X.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,G):J?J.value=G:X.set(W,G),G},ZJ=function(W,X,G,Y){if(G==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof X==="function"?W!==X||!Y:!X.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return G==="m"?Y:G==="a"?Y.call(W):Y?Y.value:X.get(W)},$U,Y6;class FU extends EU{constructor(W,X){super("ECC",W,FU);if($U.set(this,void 0),Y6.set(this,void 0),X){if(X.length%16)throw TypeError("invalid iv size (must be 16 bytes)");JA(this,$U,new Uint8Array(X),"f")}else JA(this,$U,new Uint8Array(16),"f");JA(this,Y6,this.iv,"f")}get iv(){return new Uint8Array(ZJ(this,$U,"f"))}encrypt(W){if(W.length%16)throw TypeError("invalid plaintext size (must be multiple of 16 bytes)");let X=new Uint8Array(W.length);for(let G=0;G<W.length;G+=16){for(let Y=0;Y<16;Y++)ZJ(this,Y6,"f")[Y]^=W[G+Y];JA(this,Y6,this.aes.encrypt(ZJ(this,Y6,"f")),"f"),X.set(ZJ(this,Y6,"f"),G)}return X}decrypt(W){if(W.length%16)throw TypeError("invalid ciphertext size (must be multiple of 16 bytes)");let X=new Uint8Array(W.length);for(let G=0;G<W.length;G+=16){let Y=this.aes.decrypt(W.subarray(G,G+16));for(let J=0;J<16;J++)X[G+J]=Y[J]^ZJ(this,Y6,"f")[J],ZJ(this,Y6,"f")[J]=W[G+J]}return X}}$U=new WeakMap,Y6=new WeakMap;var VJ=function(W,X,G,Y,J){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!J)throw TypeError("Private accessor was defined without a setter");if(typeof X==="function"?W!==X||!J:!X.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,G):J?J.value=G:X.set(W,G),G},v5=function(W,X,G,Y){if(G==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof X==="function"?W!==X||!Y:!X.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return G==="m"?Y:G==="a"?Y.call(W):Y?Y.value:X.get(W)},SU,bX,g5;class qW extends EU{constructor(W,X){super("CTR",W,qW);if(SU.set(this,void 0),bX.set(this,void 0),g5.set(this,void 0),VJ(this,g5,new Uint8Array(16),"f"),v5(this,g5,"f").fill(0),VJ(this,SU,v5(this,g5,"f"),"f"),VJ(this,bX,16,"f"),X==null)X=1;if(typeof X==="number")this.setCounterValue(X);else this.setCounterBytes(X)}get counter(){return new Uint8Array(v5(this,g5,"f"))}setCounterValue(W){if(!Number.isInteger(W)||W<0||W>Number.MAX_SAFE_INTEGER)throw TypeError("invalid counter initial integer value");for(let X=15;X>=0;--X)v5(this,g5,"f")[X]=W%256,W=Math.floor(W/256)}setCounterBytes(W){if(W.length!==16)throw TypeError("invalid counter initial Uint8Array value length");v5(this,g5,"f").set(W)}increment(){for(let W=15;W>=0;W--)if(v5(this,g5,"f")[W]===255)v5(this,g5,"f")[W]=0;else{v5(this,g5,"f")[W]++;break}}encrypt(W){var X,G;let Y=new Uint8Array(W);for(let J=0;J<Y.length;J++){if(v5(this,bX,"f")===16)VJ(this,SU,this.aes.encrypt(v5(this,g5,"f")),"f"),VJ(this,bX,0,"f"),this.increment();Y[J]^=v5(this,SU,"f")[VJ(this,bX,(G=v5(this,bX,"f"),X=G++,G),"f"),X]}return Y}decrypt(W){return this.encrypt(W)}}SU=new WeakMap,bX=new WeakMap,g5=new WeakMap;function XD(W){if(W.length<16)throw TypeError("PKCS#7 invalid length");let X=W[W.length-1];if(X>16)throw TypeError("PKCS#7 padding byte out of range");let G=W.length-X;for(let Y=0;Y<X;Y++)if(W[G+Y]!==X)throw TypeError("PKCS#7 invalid padding byte");return new Uint8Array(W.subarray(0,G))}function GD(W){if(typeof W==="string"&&!W.startsWith("0x"))W="0x"+W;return U7(W)}function UJ(W,X){W=String(W);while(W.length<X)W="0"+W;return W}function mX(W){if(typeof W==="string")return Q9(W,"NFKC");return U7(W)}function M8(W,X){let G=X.match(/^([a-z0-9$_.-]*)(:([a-z]+))?(!)?$/i);a(G!=null,"invalid path","path",X);let Y=G[1],J=G[3],Z=G[4]==="!",V=W;for(let U of Y.toLowerCase().split(".")){if(Array.isArray(V)){if(!U.match(/^[0-9]+$/))break;V=V[parseInt(U)]}else if(typeof V==="object"){let Q=null;for(let N in V)if(N.toLowerCase()===U){Q=V[N];break}V=Q}else V=null;if(V==null)break}if(a(!Z||V!=null,"missing required value","path",Y),J&&V!=null){if(J==="int"){if(typeof V==="string"&&V.match(/^-?[0-9]+$/))return parseInt(V);else if(Number.isSafeInteger(V))return V}if(J==="number"){if(typeof V==="string"&&V.match(/^-?[0-9.]*$/))return parseFloat(V)}if(J==="data"){if(typeof V==="string")return GD(V)}if(J==="array"&&Array.isArray(V))return V;if(J===typeof V)return V;a(!1,`wrong type found for ${J} `,"path",Y)}return V}var B_="m/44'/60'/0'/0/0";function VA(W){try{let X=JSON.parse(W);if((X.version!=null?parseInt(X.version):0)===3)return!0}catch(X){}return!1}function Dt(W,X,G){if(M8(W,"crypto.cipher:string")==="aes-128-ctr"){let J=M8(W,"crypto.cipherparams.iv:data!"),Z=new qW(X,J);return C0(Z.decrypt(G))}Y1(!1,"unsupported cipher","UNSUPPORTED_OPERATION",{operation:"decrypt"})}function ZA(W,X){let G=E0(X),Y=M8(W,"crypto.ciphertext:data!"),J=C0(U8(G8([G.slice(16,32),Y]))).substring(2);a(J===M8(W,"crypto.mac:string!").toLowerCase(),"incorrect password","password","[ REDACTED ]");let Z=Dt(W,G.slice(0,16),Y),V=e4(Z);if(W.address){let N=W.address.toLowerCase();if(!N.startsWith("0x"))N="0x"+N;a(b1(N)===V,"keystore address/privateKey mismatch","address",W.address)}let U={address:V,privateKey:Z};if(M8(W,"x-ethers.version:string")==="0.1"){let N=G.slice(32,64),q=M8(W,"x-ethers.mnemonicCiphertext:data!"),A=M8(W,"x-ethers.mnemonicCounter:data!"),H=new qW(N,A);U.mnemonic={path:M8(W,"x-ethers.path:string")||B_,locale:M8(W,"x-ethers.locale:string")||"en",entropy:C0(E0(H.decrypt(q)))}}return U}function E_(W){let X=M8(W,"crypto.kdf:string");if(X&&typeof X==="string"){if(X.toLowerCase()==="scrypt"){let G=M8(W,"crypto.kdfparams.salt:data!"),Y=M8(W,"crypto.kdfparams.n:int!"),J=M8(W,"crypto.kdfparams.r:int!"),Z=M8(W,"crypto.kdfparams.p:int!");a(Y>0&&(Y&Y-1)===0,"invalid kdf.N","kdf.N",Y),a(J>0&&Z>0,"invalid kdf","kdf",X);let V=M8(W,"crypto.kdfparams.dklen:int!");return a(V===32,"invalid kdf.dklen","kdf.dflen",V),{name:"scrypt",salt:G,N:Y,r:J,p:Z,dkLen:64}}else if(X.toLowerCase()==="pbkdf2"){let G=M8(W,"crypto.kdfparams.salt:data!"),Y=M8(W,"crypto.kdfparams.prf:string!"),J=Y.split("-").pop();a(J==="sha256"||J==="sha512","invalid kdf.pdf","kdf.pdf",Y);let Z=M8(W,"crypto.kdfparams.c:int!"),V=M8(W,"crypto.kdfparams.dklen:int!");return a(V===32,"invalid kdf.dklen","kdf.dklen",V),{name:"pbkdf2",salt:G,count:Z,dkLen:V,algorithm:J}}}a(!1,"unsupported key-derivation function","kdf",X)}function YD(W,X){let G=JSON.parse(W),Y=mX(X),J=E_(G);if(J.name==="pbkdf2"){let{salt:A,count:H,dkLen:I,algorithm:w}=J,O=S5(Y,A,H,I,w);return ZA(G,O)}Y1(J.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:J});let{salt:Z,N:V,r:U,p:Q,dkLen:N}=J,q=UW(Y,Z,V,U,Q,N);return ZA(G,q)}function L_(W){return new Promise((X)=>{setTimeout(()=>{X()},W)})}async function JD(W,X,G){let Y=JSON.parse(W),J=mX(X),Z=E_(Y);if(Z.name==="pbkdf2"){if(G)G(0),await L_(0);let{salt:H,count:I,dkLen:w,algorithm:O}=Z,T=S5(J,H,I,w,O);if(G)G(1),await L_(0);return ZA(Y,T)}Y1(Z.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:Z});let{salt:V,N:U,r:Q,p:N,dkLen:q}=Z,A=await VW(J,V,U,Q,N,q,G);return ZA(Y,A)}function $_(W){let X=W.salt!=null?E0(W.salt,"options.salt"):x5(32),G=131072,Y=8,J=1;if(W.scrypt){if(W.scrypt.N)G=W.scrypt.N;if(W.scrypt.r)Y=W.scrypt.r;if(W.scrypt.p)J=W.scrypt.p}return a(typeof G==="number"&&G>0&&Number.isSafeInteger(G)&&(BigInt(G)&BigInt(G-1))===BigInt(0),"invalid scrypt N parameter","options.N",G),a(typeof Y==="number"&&Y>0&&Number.isSafeInteger(Y),"invalid scrypt r parameter","options.r",Y),a(typeof J==="number"&&J>0&&Number.isSafeInteger(J),"invalid scrypt p parameter","options.p",J),{name:"scrypt",dkLen:32,salt:X,N:G,r:Y,p:J}}function F_(W,X,G,Y){let J=E0(G.privateKey,"privateKey"),Z=Y.iv!=null?E0(Y.iv,"options.iv"):x5(16);a(Z.length===16,"invalid options.iv length","options.iv",Y.iv);let V=Y.uuid!=null?E0(Y.uuid,"options.uuid"):x5(16);a(V.length===16,"invalid options.uuid length","options.uuid",Y.iv);let U=W.slice(0,16),Q=W.slice(16,32),N=new qW(U,Z),q=E0(N.encrypt(J)),A=U8(G8([Q,q])),H={address:G.address.substring(2).toLowerCase(),id:xH(V),version:3,Crypto:{cipher:"aes-128-ctr",cipherparams:{iv:C0(Z).substring(2)},ciphertext:C0(q).substring(2),kdf:"scrypt",kdfparams:{salt:C0(X.salt).substring(2),n:X.N,dklen:32,p:X.p,r:X.r},mac:A.substring(2)}};if(G.mnemonic){let I=Y.client!=null?Y.client:`ethers/${MH}`,w=G.mnemonic.path||B_,O=G.mnemonic.locale||"en",T=W.slice(32,64),x=E0(G.mnemonic.entropy,"account.mnemonic.entropy"),u=x5(16),$=new qW(T,u),S=E0($.encrypt(x)),h=new Date,p="UTC--"+(h.getUTCFullYear()+"-"+UJ(h.getUTCMonth()+1,2)+"-"+UJ(h.getUTCDate(),2)+"T"+UJ(h.getUTCHours(),2)+"-"+UJ(h.getUTCMinutes(),2)+"-"+UJ(h.getUTCSeconds(),2)+".0Z")+"--"+H.address;H["x-ethers"]={client:I,gethFilename:p,path:w,locale:O,mnemonicCounter:C0(u).substring(2),mnemonicCiphertext:C0(S).substring(2),version:"0.1"}}return JSON.stringify(H)}function xU(W,X,G){if(G==null)G={};let Y=mX(X),J=$_(G),Z=UW(Y,J.salt,J.N,J.r,J.p,64);return F_(E0(Z),J,W,G)}async function kU(W,X,G){if(G==null)G={};let Y=mX(X),J=$_(G),Z=await VW(Y,J.salt,J.N,J.r,J.p,64,G.progressCallback);return F_(E0(Z),J,W,G)}var _U="m/44'/60'/0'/0/0",Ct=new Uint8Array([66,105,116,99,111,105,110,32,115,101,101,100]),HW=2147483648,Tt=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Mt="0123456789abcdef";function UA(W,X){let G="";while(W)G=Mt[W%16]+G,W=Math.trunc(W/16);while(G.length<X*2)G="0"+G;return"0x"+G}function ZD(W){let X=E0(W),G=rY(E9(E9(X)),0,4),Y=G8([X,G]);return FH(Y)}var s7={};function S_(W,X,G,Y){let J=new Uint8Array(37);if(W&HW)Y1(Y!=null,"cannot derive child of neutered node","UNSUPPORTED_OPERATION",{operation:"deriveChild"}),J.set(E0(Y),1);else J.set(E0(G));for(let V=24;V>=0;V-=8)J[33+(V>>3)]=W>>24-V&255;let Z=E0(GW("sha512",X,J));return{IL:Z.slice(0,32),IR:Z.slice(32)}}function x_(W,X){let G=X.split("/");if(a(G.length>0,"invalid path","path",X),G[0]==="m")a(W.depth===0,`cannot derive root path (i.e. path starting with "m/") for a node at non-zero depth ${W.depth}`,"path",X),G.shift();let Y=W;for(let J=0;J<G.length;J++){let Z=G[J];if(Z.match(/^[0-9]+'$/)){let V=parseInt(Z.substring(0,Z.length-1));a(V<HW,"invalid path index",`path[${J}]`,Z),Y=Y.deriveChild(HW+V)}else if(Z.match(/^[0-9]+$/)){let V=parseInt(Z);a(V<HW,"invalid path index",`path[${J}]`,Z),Y=Y.deriveChild(V)}else a(!1,"invalid path component",`path[${J}]`,Z)}return Y}class q9 extends hX{publicKey;fingerprint;parentFingerprint;mnemonic;chainCode;path;index;depth;constructor(W,X,G,Y,J,Z,V,U,Q){super(X,Q);o4(W,s7,"HDNodeWallet"),A8(this,{publicKey:X.compressedPublicKey});let N=rY(YW(E9(this.publicKey)),0,4);A8(this,{parentFingerprint:G,fingerprint:N,chainCode:Y,path:J,index:Z,depth:V}),A8(this,{mnemonic:U})}connect(W){return new q9(s7,this.signingKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.mnemonic,W)}#W(){let W={address:this.address,privateKey:this.privateKey},X=this.mnemonic;if(this.path&&X&&X.wordlist.locale==="en"&&X.password==="")W.mnemonic={path:this.path,locale:"en",entropy:X.entropy};return W}async encrypt(W,X){return await kU(this.#W(),W,{progressCallback:X})}encryptSync(W){return xU(this.#W(),W)}get extendedKey(){return Y1(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),ZD(G8(["0x0488ADE4",UA(this.depth,1),this.parentFingerprint,UA(this.index,4),this.chainCode,G8(["0x00",this.privateKey])]))}hasPath(){return this.path!=null}neuter(){return new fX(s7,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.provider)}deriveChild(W){let X=s8(W,"index");a(X<=4294967295,"invalid index","index",X);let G=this.path;if(G){if(G+="/"+(X&~HW),X&HW)G+="'"}let{IR:Y,IL:J}=S_(X,this.chainCode,this.publicKey,this.privateKey),Z=new i8(Q7((sY(J)+BigInt(this.privateKey))%Tt,32));return new q9(s7,Z,this.fingerprint,C0(Y),G,X,this.depth+1,this.mnemonic,this.provider)}derivePath(W){return x_(this,W)}static#X(W,X){a(i7(W),"invalid seed","seed","[REDACTED]");let G=E0(W,"seed");a(G.length>=16&&G.length<=64,"invalid seed","seed","[REDACTED]");let Y=E0(GW("sha512",Ct,G)),J=new i8(C0(Y.slice(0,32)));return new q9(s7,J,"0x00000000",C0(Y.slice(32)),"m",0,0,X,null)}static fromExtendedKey(W){let X=z8(SH(W));a(X.length===82||ZD(X.slice(0,78))===W,"invalid extended key","extendedKey","[ REDACTED ]");let G=X[4],Y=C0(X.slice(5,9)),J=parseInt(C0(X.slice(9,13)).substring(2),16),Z=C0(X.slice(13,45)),V=X.slice(45,78);switch(C0(X.slice(0,4))){case"0x0488b21e":case"0x043587cf":{let U=C0(V);return new fX(s7,e4(U),U,Y,Z,null,J,G,null)}case"0x0488ade4":case"0x04358394 ":if(V[0]!==0)break;return new q9(s7,new i8(V.slice(1)),Y,Z,null,J,G,null,null)}a(!1,"invalid extended key prefix","extendedKey","[ REDACTED ]")}static createRandom(W,X,G){if(W==null)W="";if(X==null)X=_U;if(G==null)G=X6.wordlist();let Y=G6.fromEntropy(x5(16),W,G);return q9.#X(Y.computeSeed(),Y).derivePath(X)}static fromMnemonic(W,X){if(!X)X=_U;return q9.#X(W.computeSeed(),W).derivePath(X)}static fromPhrase(W,X,G,Y){if(X==null)X="";if(G==null)G=_U;if(Y==null)Y=X6.wordlist();let J=G6.fromPhrase(W,X,Y);return q9.#X(J.computeSeed(),J).derivePath(G)}static fromSeed(W){return q9.#X(W,null)}}class fX extends BU{publicKey;fingerprint;parentFingerprint;chainCode;path;index;depth;constructor(W,X,G,Y,J,Z,V,U,Q){super(X,Q);o4(W,s7,"HDNodeVoidWallet"),A8(this,{publicKey:G});let N=rY(YW(E9(G)),0,4);A8(this,{publicKey:G,fingerprint:N,parentFingerprint:Y,chainCode:J,path:Z,index:V,depth:U})}connect(W){return new fX(s7,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,W)}get extendedKey(){return Y1(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),ZD(G8(["0x0488B21E",UA(this.depth,1),this.parentFingerprint,UA(this.index,4),this.chainCode,this.publicKey]))}hasPath(){return this.path!=null}deriveChild(W){let X=s8(W,"index");a(X<=4294967295,"invalid index","index",X);let G=this.path;if(G){if(G+="/"+(X&~HW),X&HW)G+="'"}let{IR:Y,IL:J}=S_(X,this.chainCode,this.publicKey,null),Z=i8.addPoints(J,this.publicKey,!0),V=e4(Z);return new fX(s7,V,Z,this.fingerprint,C0(Y),G,X,this.depth+1,this.provider)}derivePath(W){return x_(this,W)}}function QA(W){try{if(JSON.parse(W).encseed)return!0}catch(X){}return!1}function NA(W,X){let G=JSON.parse(W),Y=mX(X),J=b1(M8(G,"ethaddr:string!")),Z=GD(M8(G,"encseed:string!"));a(Z&&Z.length%16===0,"invalid encseed","json",W);let V=E0(S5(Y,Y,2000,32,"sha256")).slice(0,16),U=Z.slice(0,16),Q=Z.slice(16),N=new FU(V,U),q=XD(E0(N.decrypt(Q))),A="";for(let H=0;H<q.length;H++)A+=String.fromCharCode(q[H]);return{address:J,privateKey:W6(A)}}function k_(W){return new Promise((X)=>{setTimeout(()=>{X()},W)})}class J6 extends hX{constructor(W,X){if(typeof W==="string"&&!W.startsWith("0x"))W="0x"+W;let G=typeof W==="string"?new i8(W):W;super(G,X)}connect(W){return new J6(this.signingKey,W)}async encrypt(W,X){let G={address:this.address,privateKey:this.privateKey};return await kU(G,W,{progressCallback:X})}encryptSync(W){let X={address:this.address,privateKey:this.privateKey};return xU(X,W)}static#W(W){if(a(W,"invalid JSON wallet","json","[ REDACTED ]"),"mnemonic"in W&&W.mnemonic&&W.mnemonic.locale==="en"){let G=G6.fromEntropy(W.mnemonic.entropy),Y=q9.fromMnemonic(G,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 X=new J6(W.privateKey);return a(X.address===W.address,"address/privateKey mismatch","json","[ REDACTED ]"),X}static async fromEncryptedJson(W,X,G){let Y=null;if(VA(W))Y=await JD(W,X,G);else if(QA(W)){if(G)G(0),await k_(0);if(Y=NA(W,X),G)G(1),await k_(0)}return J6.#W(Y)}static fromEncryptedJsonSync(W,X){let G=null;if(VA(W))G=YD(W,X);else if(QA(W))G=NA(W,X);else a(!1,"invalid JSON wallet","json","[ REDACTED ]");return J6.#W(G)}static createRandom(W){let X=q9.createRandom();if(W)return X.connect(W);return X}static fromPhrase(W,X){let G=q9.fromPhrase(W);if(X)return G.connect(X);return G}}var qA=(W)=>{let X=(G)=>G&&typeof G==="object"&&!Array.isArray(G)?Object.keys(G).sort().reduce((Y,J)=>(Y[J]=X(G[J]),Y),{}):Array.isArray(G)?G.map(X):G;return JSON.stringify(X(W))},Lt=(W,X)=>{try{return b1(PU(Q9(qA(W)),X))}catch{return null}},UD=(W)=>{if(!W?.signature||!W?.originEthAddress||!W?.originUser)return{ok:!1,reason:"missing-fields"};let X;try{if(X=b1(W.originEthAddress),b1(W.originUser)!==X)return{ok:!1,reason:"address-mismatch"}}catch{return{ok:!1,reason:"invalid-address"}}let{signature:G,originEthAddress:Y,...J}=W;try{let Z=PU(Q9(qA(J)),G);if(b1(Z)!==X)return{ok:!1,reason:"invalid-signature"};let{originUser:V,...U}=J;return{ok:!0,normalizedOriginEthAddress:X,payload:U}}catch(Z){return{ok:!1,reason:"verify-error",error:Z}}},__=({constitution:W=[],customRoles:X=null,getNode:G})=>{let Y=W.map(($)=>{try{return b1($)}catch{return null}}).filter(Boolean),J=X??QD,Z=($,S)=>ND(J,$,S),V=new Map,U=($,S)=>{if(V.size>4096)V.clear();let h=S+JSON.stringify($);if(!V.has(h))V.set(h,Lt($,S));return V.get(h)},Q=($)=>$?.owner??$?._meta?.owner,N=($)=>/^(?:SM_ID_PREFIX_)?(0x[0-9a-fA-F]{40}):/.exec($)?.[1],q=($)=>typeof $==="string"&&$.startsWith("user:"),A=($,S,h)=>$===S||["write","delete"].includes(h?.[$]),H=($,S,h)=>$===S||h?.[$]==="delete",I=($,S)=>$.physical-S.physical||$.logical-S.logical,w=({type:$,id:S,sourceId:h,targetId:l,edges:p,value:t,timestamp:_,originUser:e})=>h?{type:$,sourceId:h,targetId:l,edges:p,timestamp:_,originUser:e}:{type:$,id:S,value:t,timestamp:_,originUser:e},O=($)=>{if(Y.includes($))return"superadmin";let S=G(`user:${$}`)?.value;if(!S?.role)return"guest";return S.expiresAt&&new Date(S.expiresAt).getTime()<Date.now()?"guest":S.role},T=($,S)=>!!$?.sig&&Y.includes($.author)&&U({type:"upsert",id:S,value:$.value,timestamp:$.ts,originUser:$.author},$.sig)===$.author,x=($)=>$?.meta?.role??($?.meta&&{...$.meta,ts:$.meta.ts??$.timestamp}),u=($,S,h)=>[$,x(S)].filter((l)=>T(l,h)).sort((l,p)=>I(p.ts,l.ts))[0];return{op($,S){if(!$?.signature)return!1;let h=U(w($),$.signature);if(!h||h!==$.originUser)return!1;let l=$.sourceId??$.id,p=$.type==="remove"?"delete":$.sourceId?"link":"write";if(q(l)){if(Y.includes(h))return!0;if(p!=="write"||h!==l.slice(5))return!1;if(S&&!Z(O(h),"write"))return!1;let{role:e="guest",expiresAt:H0=null}=u($.receipt,S,l)?.value??{},g=$.value??{};return g.role===e&&(g.expiresAt??null)===H0}if(!Z(O(h),p))return!1;let t=Q(S?.value)??N(l);if(t)return(p==="delete"?H:A)(h,t,S?.value?.collaborators);let _=Q($.value);return!_||h===_},opOf($,S){let h=S.meta??{};return{type:"upsert",id:$,value:h.value??S.value,timestamp:h.ts??S.timestamp,originUser:h.author,originEthAddress:h.author,signature:h.sig,...h.role&&{receipt:h.role}}},edgeOf($,S){let h=S.meta?.edges;return h?{type:h.type,sourceId:$,targetId:h.targetId,edges:S.edges??[],timestamp:h.ts,originUser:h.author,originEthAddress:h.author,signature:h.sig}:null},edgeReceipt($){if(!$?.signature||!Array.isArray($.edges))return null;return{author:U(w($),$.signature),sig:$.signature,ts:$.timestamp,type:$.type,targetId:$.targetId}},edges($,S,h){let l=S.meta?.edges,p=h.meta?.edges;if(!l||p&&I(p.ts,l.ts)>=0)return null;let t=this.edgeOf($,S);return this.op(t,h)?t:null},receipt($,S,h){if(!$?.signature)return null;let l=U(w($),$.signature),p={author:l,sig:$.signature,ts:$.timestamp};if(h.meta?.edges)p.edges=h.meta.edges;if(q($.id)){if(p.value=$.value,!Y.includes(l)){let t=u($.receipt,S,$.id);if(t)p.role=t}}return p}}};function y_(W,X=[]){let G=String(W??"").trim();if(!G)throw Error("sm-server: signing key required (GDB_SM_KEY)");let Y=G.includes(" ")?q9.fromPhrase(G):new J6(G),J=b1(Y.address),Z=new Set([...X,J].map((Q)=>{try{return b1(Q)}catch{return null}}).filter(Boolean));return{address:J,superAdmins:Z,canonicalize:qA,signOps:async(Q)=>{let N=[];for(let q of Q){if(q?.signature&&q?.originEthAddress&&q?.originUser){N.push(q);continue}let A={...q,originUser:J},H=await Y.signMessage(Q9(qA(A)));N.push({...q,originUser:J,originEthAddress:J,signature:H})}return N},verifyOp:UD,isSuperAdmin:(Q)=>{try{return Z.has(b1(Q))}catch{return!1}}}}var QD={superadmin:{can:["assignRole","deleteAny"],inherits:["admin"]},admin:{can:["delete"],inherits:["manager"]},manager:{can:["publish"],inherits:["user"]},user:{can:["write","link","sync"],inherits:["guest"]},guest:{can:["read","sync"]}},Bt=Object.keys(QD),ND=(W,X,G,Y=new Set)=>{if(!X||!W[X]||Y.has(X))return!1;if(Y.add(X),W[X].can?.includes(G))return!0;return(W[X].inherits??[]).some((J)=>ND(W,J,G,new Set(Y)))},Et=(W)=>W==="upsert"?"write":W==="remove"?"delete":W==="link"||W==="unlink"?"link":W==="sync"||W==="deltaSync"?"sync":"unknown",VD=(W)=>`${W.slice(0,6)}...${W.slice(-4)}`,v_=({constitution:W=[],customRoles:X=null,getNode:G})=>{let Y=W.map((U)=>{try{return b1(U)}catch{return null}}).filter(Boolean),J=X??QD,Z=(U)=>{let Q=G(`user:${U}`)?.value;if(!Q?.role)return"guest";if(Q.expiresAt&&new Date(Q.expiresAt).getTime()<Date.now())return"guest";return Q.role},V=(U)=>{try{return Y.includes(b1(U??""))}catch{return!1}};return async(U)=>{let Q=[];for(let N of U){if(N?.type==="sync"){Q.push(N);continue}if(N?.type==="fullStateSync"||N?.type==="deltaSync"){if(!(N.signature&&N.originEthAddress&&N.originUser)){Q.push(N);continue}let u=UD(N);if(u.ok)Q.push(u.payload);else console.warn(`\u26A0\uFE0F SM: ${N.type} rejected: ${u.reason}`);continue}let q=UD(N);if(!q.ok){console.warn(`\u26A0\uFE0F SM: invalid signed operation: ${q.reason}`);continue}let{normalizedOriginEthAddress:A,payload:H}=q,I=Y.includes(A)?"superadmin":Z(A),w={...H,signer:A,originUser:N.originUser,originEthAddress:N.originEthAddress,signature:N.signature};if(H.type==="upsert"&&H.id===`user:${A}`&&!G(H.id)){Q.push(w);continue}let{role:O,ethAddress:T}=H.value??{};if(O==="superadmin"&&!V(T)){console.warn(`\u26A0\uFE0F SM: [POLICY] ${VD(A)} tried to assign superadmin to ${VD(String(T??""))}. Blocked.`);continue}let x=Et(H.type);if(ND(J,I,x))Q.push(w);else console.warn(`\u26A0\uFE0F SM: ${VD(A)} (role: ${I}) DENIED ${x}`)}return Q}};function g_(W,X,G,{intervalMs:Y=4000,settleMs:J=15000,customRoles:Z=null}={}){let V=new Set([...Bt,...Object.keys(Z??{})]),U=async(A,H,I=null)=>{let w=b1(A);if(!V.has(H))throw Error(`Role '${H}' is not a defined role.`);let O=`user:${w}`,T=(await W.get(O)).result?.value||{};await W.put({...T,ethAddress:w,role:H,assignedByEthAddress:X.address,expiresAt:I?new Date(I).toISOString():null,priority:!0},O)},Q=async()=>{let A=new Map;for(let H of G){let I=H.then?.assignRole;if(!I)continue;let w=[];try{({results:w=[]}=W.map({query:H.if}))}catch(O){console.error("\u274C GOVERNANCE: rule evaluation failed:",O.message);continue}for(let O of w){if(!O.id.startsWith("user:"))continue;if(X.isSuperAdmin(O.id.slice(5)))continue;if(H.offsetTimestamp&&(O.timestamp?.physical??0)>Date.now()-H.offsetTimestamp)continue;A.set(O.id,{role:I,current:O.value?.role})}}for(let[H,{role:I,current:w}]of A){if(w===I)continue;try{await U(H.slice(5),I),console.info(`\uD83D\uDCDC GOVERNANCE: ${H.slice(5)} '${w}' -> '${I}'`)}catch(O){console.error("\u274C GOVERNANCE: assignRole failed:",O.message)}}},N=null,q=setTimeout(()=>{N=setInterval(Q,Y),console.info(`\uD83D\uDCDC GOVERNANCE ENGINE: active \u2014 ${G.length} rule(s), every ${Y} ms.`)},J);return{assignRole:U,stop:()=>{if(clearTimeout(q),N)clearInterval(N)}}}var HD=(W)=>W&&typeof W==="object"?structuredClone(W):W,qD=(W,X=16)=>{let G=null,Y=null;return(...J)=>{if(Y??=Promise.withResolvers(),G!==null)clearTimeout(G);return G=setTimeout(async()=>{G=null;try{Y.resolve(await W(...J))}catch(Z){Y.reject(Z)}finally{Y=null}},X),Y.promise}},xt=(W)=>{let X=!1;return()=>{if(X)return;X=!0,setImmediate(()=>{X=!1,W()})}};function kt(W=1000){let X=[];return{add(G){if(G?.timestamp){if(X.push(G),X.length>W)X.splice(0,X.length-W)}},getOldest:()=>X[0]??null,getDelta:(G,Y)=>G?X.filter((J)=>Y(J.timestamp,G)>0):[...X],sign({type:G,id:Y,sourceId:J,timestamp:Z,originUser:V,originEthAddress:U,signature:Q}){let N=X.find((q)=>q.type===G&&(q.id??q.sourceId)===(Y??J)&&q.timestamp?.physical===Z?.physical&&q.timestamp?.logical===Z?.logical);if(N&&Q)Object.assign(N,{originUser:V,originEthAddress:U,signature:Q})},clear(){X=[]},entries:()=>[...X],setEntries(G=[]){if(X=Array.isArray(G)?[...G]:[],X.length>W)X.splice(0,X.length-W)}}}function _t(){let W={nodes:{}};return{get nodes(){return W.nodes},set nodes(X){W.nodes=X??{}},upsert(X,G,Y){let J=W.nodes[X];W.nodes[X]={id:X,value:HD(G),edges:J?.edges?[...J.edges]:[],timestamp:Y,...J?.meta&&{meta:J.meta}}},get:(X)=>W.nodes[X]??null,link(X,G,Y){let J=W.nodes[X],Z=W.nodes[G];if(J&&Z&&!J.edges.includes(G))W.nodes[X]={...J,edges:[...J.edges,G],timestamp:Y}},unlink(X,G,Y){let J=W.nodes[X];if(J?.edges.includes(G))W.nodes[X]={...J,edges:J.edges.filter((Z)=>Z!==G),timestamp:Y}},getAllNodes:()=>Object.values(W.nodes),serialize:()=>WG.deflate(hU(W.nodes)),deserialize(X){let G=X instanceof Uint8Array?X:new Uint8Array(X);W.nodes=AW(WG.inflate(G))}}}function yt(W,X){let G=St(W);if(G&&G!==".")Ft(G,{recursive:!0});let Y=new $t(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 J=Y.prepare("SELECT value FROM kv WHERE key = ?"),Z=Y.prepare("INSERT OR REPLACE INTO kv (key, value) VALUES (?, ?)"),V=Y.prepare("DELETE FROM kv WHERE key = ?"),U=X;return{getBlob(Q){let N=J.get(`${U}:${Q}`);return N?new Uint8Array(N.value):null},getText(Q){let N=J.get(`${U}:${Q}`);return N?Buffer.from(N.value).toString("utf8"):null},putBlob(Q,N){Z.run(`${U}:${Q}`,Buffer.from(N))},putText(Q,N){Z.run(`${U}:${Q}`,Buffer.from(N,"utf8"))},del(Q){V.run(`${U}:${Q}`)},close(){Y.close()}}}async function vt(W=process.env.GDB_ROOM||process.argv.slice(2).find((Y)=>!Y.startsWith("--"))||"default",X={},G=process.env.GDB_DB_PATH||"./data.sqlite"){console.info(`\u26A1 GDBServer [${W}] initializing (bun:sqlite)`);let{password:Y,saveDelay:J=200,oplogSize:Z=1000,rtcPolyfill:V=null,rtc:U=!0,room:Q=null,sm:N=null,relay:q=null}=X,A=U?.constructor===Object?U:{},{turnConfig:H=null}=A,I=A.relayUrls??((process.env.GDB_RELAY_URLS??"").split(",").map((G0)=>G0.trim()).filter(Boolean).length?process.env.GDB_RELAY_URLS.split(",").map((G0)=>G0.trim()).filter(Boolean):null),w=q??(process.argv.includes("--relay")||["1","true"].includes(process.env.GDB_RELAY??"")),O=null;if(w)O=Lx(q?.constructor===Object?q:{}),I=[...I??[],`ws://127.0.0.1:${O.port}`];let T=A.cells??(process.argv.includes("--cells")||["1","true"].includes(process.env.GDB_CELLS??"")),x=Q??process.argv.includes("--room"),P=N?.constructor===Object?N:null,u=P?.key??process.env.GDB_SM_KEY??null,F=P?.superAdmins??(process.env.GDB_SUPERADMINS??"").split(",").map((G0)=>G0.trim()).filter(Boolean),m=null;if(u)m=y_(u,F),console.info(`\uD83D\uDEE1\uFE0F SM: signing as ${m.address}`);else if(P)console.warn("\u26A0\uFE0F SM: sm configured but no signing key (GDB_SM_KEY) \u2014 running unsigned, memory-only role.");let l=Boolean(m||P||F.length),p=m?[...m.superAdmins]:F;if(l&&!p.length)console.warn("\u26A0\uFE0F SM: no superAdmins (GDB_SUPERADMINS) \u2014 role nodes cannot be verified and will not be relayed.");let W0=l?__({constitution:p,customRoles:P?.customRoles??null,getNode:(G0)=>y.get(G0)}):null,y=_t(),e=fC(),H0=(G0)=>{let K0=y.get(G0.sourceId);if(!K0)return;if(Array.isArray(G0.edges))K0.edges=[...G0.edges];let P0=W0?.edgeReceipt(G0);if(P0)K0.meta={...K0.meta,edges:P0}},g=(G0,K0)=>JSON.stringify(G0)===JSON.stringify(K0),d=kt(Z),R=yt(G,W),$=[],f=[],r=[],o=null,E=null,S=null,_={},v=()=>{let G0=R.getBlob("graph");if(G0?.byteLength)y.deserialize(G0),console.info(`\u2705 Graph loaded: ${y.getAllNodes().length} nodes`)},L=()=>{R.putBlob("graph",y.serialize())},b=()=>{let G0=R.getText("timestamp");if(G0){let K0=JSON.parse(G0);if(K0?.physical&&K0?.logical)o=K0,e.update(o)}},J0=()=>{R.putText("timestamp",JSON.stringify(o??null))},U0=()=>{let G0=R.getBlob("oplog");if(G0?.byteLength){let K0=AW(WG.inflate(G0));if(Array.isArray(K0))d.setEntries(K0),console.info(`\u2705 Oplog loaded: ${K0.length} ops`)}},N0=()=>{R.putBlob("oplog",WG.deflate(hU(d.entries())))},$0=(G0)=>{if(!G0)return;if(!o||e.compare(G0,o)>0)o=G0,J0()},u0=()=>{let G0=0,K0=0;for(let[P0,k0]of Object.entries(y.nodes)){let C1=`${P0}\x00${k0.timestamp.physical}\x00${k0.timestamp.logical}`,Q1=2166136261,Y0=3386659096;for(let B0=0;B0<C1.length;B0++)Q1=Math.imul(Q1^C1.charCodeAt(B0),16777619),Y0=Math.imul(Y0^C1.charCodeAt(B0),16777619);G0^=Q1,K0^=Y0}return`${G0>>>0}.${K0>>>0}`},q1=qD(()=>L(),J),g1=qD(()=>N0(),J),h0=()=>{let G0={...y.nodes};$.forEach((K0)=>K0(G0))},x1=xt(()=>h0()),k1=async(G0)=>{if(!G0?.length||!E)return!1;try{return await E.send(G0),!0}catch(K0){return console.error("\u274C safeSend failed:",K0?.message),!1}},Q0=async(G0)=>{let K0=await k1(G0);return setTimeout(()=>k1(G0),2500),K0},S0=async(G0)=>{let K0=!1,P0=null,k0=(Y0)=>{if(Y0&&(!P0||e.compare(Y0,P0)>0))P0=Y0},C1=(Y0)=>{try{if(Y0 instanceof Uint8Array||Y0 instanceof ArrayBuffer){let B0=AW(Y0);return Array.isArray(B0)?B0:[B0]}if(Array.isArray(Y0))return Y0;if(Y0&&typeof Y0==="object")return AW(WG.inflate(new Uint8Array(Object.values(Y0))))}catch(B0){console.error("\u274C decode failed",B0)}return null},Q1={upsert(Y0){let B0=y.get(Y0.id);if(!B0){for(let H1 of d.getDelta(null))if(H1.type==="remove"&&H1.id===Y0.id&&e.compare(H1.timestamp,Y0.timestamp)>=0)return!1}let{resolved:F0,value:F1,timestamp:W8}=pC(B0,Y0,e);if(!F0)return!1;if(W0&&!W0.op(Y0,B0))return console.warn(`\u26A0\uFE0F [SYNC-AUTH] upsert denied: ${Y0.id}`),!1;y.upsert(Y0.id,F1,W8);let T1=W0?.receipt(Y0,B0,y.get(Y0.id));if(T1)y.get(Y0.id).meta=T1;return e.update(W8),d.add({type:"upsert",id:Y0.id,timestamp:W8}),K0=!0,k0(W8),!0},remove(Y0){let B0=y.get(Y0.id);if(!B0||e.compare(B0.timestamp,Y0.timestamp)>=0)return;if(W0&&!W0.op(Y0,B0))return console.warn(`\u26A0\uFE0F [SYNC-AUTH] remove denied: ${Y0.id}`);delete y.nodes[Y0.id],Object.values(y.nodes).forEach((F0)=>{F0.edges=(F0.edges??[]).filter((F1)=>F1!==Y0.id)}),e.update(Y0.timestamp),d.add({type:"remove",id:Y0.id,value:Y0.value,timestamp:Y0.timestamp,originUser:Y0.originUser,originEthAddress:Y0.originEthAddress,signature:Y0.signature}),K0=!0,k0(Y0.timestamp)},link(Y0){let B0=y.get(Y0.sourceId),F0=y.get(Y0.targetId);if(!B0||!F0||e.compare(B0.timestamp,Y0.timestamp)>=0)return;if(W0&&!W0.op(Y0,B0))return console.warn(`\u26A0\uFE0F [SYNC-AUTH] link denied: ${Y0.sourceId}`);y.link(Y0.sourceId,Y0.targetId,Y0.timestamp),H0(Y0),e.update(Y0.timestamp),d.add({type:"link",sourceId:Y0.sourceId,targetId:Y0.targetId,edges:Y0.edges,timestamp:Y0.timestamp,originUser:Y0.originUser,originEthAddress:Y0.originEthAddress,signature:Y0.signature}),K0=!0,k0(Y0.timestamp)},unlink(Y0){let B0=y.get(Y0.sourceId);if(!B0||e.compare(B0.timestamp,Y0.timestamp)>=0)return;if(W0&&!W0.op(Y0,B0))return console.warn(`\u26A0\uFE0F [SYNC-AUTH] unlink denied: ${Y0.sourceId}`);y.unlink(Y0.sourceId,Y0.targetId,Y0.timestamp),H0(Y0),e.update(Y0.timestamp),d.add({type:"unlink",sourceId:Y0.sourceId,targetId:Y0.targetId,edges:Y0.edges,timestamp:Y0.timestamp,originUser:Y0.originUser,originEthAddress:Y0.originEthAddress,signature:Y0.signature}),K0=!0,k0(Y0.timestamp)},async sync({timestamp:Y0,digest:B0}){if(B0&&B0===u0())return console.info("\uD83D\uDFF0 State digests match \u2014 nothing to send.");let F0=d.getOldest();if(Y0==null||F0&&e.compare(Y0,F0.timestamp)<0){console.info("\uD83D\uDCA5 Sending FULL state sync:",y.getAllNodes().length,"nodes"),await Q0([{type:"fullStateSync",graphData:y.nodes,removals:d.getDelta(null).filter((H1)=>H1.type==="remove"),timestamp:o}]);return}let W8=d.getDelta(null);if(!W8.length)return;let T1=W8.flatMap((H1)=>{if(H1.type!=="upsert")return[H1];let c=y.get(H1.id);if(!c)return[];return[W0?.opOf(H1.id,c)??{...H1,value:c.value}]});console.info("\uD83D\uDE80 Sending DELTA sync:",T1.length,"ops"),await Q0([{type:"deltaSync",operations:T1,timestamp:o}])},deltaSync({operations:Y0}){let B0=C1(Y0);if(!Array.isArray(B0))return;console.info("\uD83D\uDCE5 deltaSync:",B0.length,"ops");for(let F0 of B0)if(F0&&Q1[F0.type])Q1[F0.type](F0)},async fullStateSync({graphData:Y0,removals:B0,timestamp:F0}){if(!Y0||typeof Y0!=="object")return;let F1=Object.entries(Y0).sort(([T1],[H1])=>H1.startsWith("user:")-T1.startsWith("user:"));for(let[T1,H1]of F1){let c=Q1.upsert(W0?.opOf(T1,H1)??{type:"upsert",id:T1,value:H1.value,timestamp:H1.timestamp}),t=y.nodes[T1];if(!t)continue;if(W0)H0(W0.edges(T1,H1,t)??{});else if(c)t.edges=[...H1.edges??[]]}for(let T1 of B0??[])Q1.remove(T1);let W8=new Set(Object.keys(Y0));if(Object.keys(y.nodes).some((T1)=>!W8.has(T1)))await Q0([{type:"fullStateSync",graphData:y.nodes,removals:d.getDelta(null).filter((T1)=>T1.type==="remove"),timestamp:o}]);if(K0=!0,console.info("\u2705 fullStateSync merged:",y.getAllNodes().length,"nodes"),F0)k0(F0),e.update(F0)}};for(let Y0 of G0)if(Q1[Y0.type])await Q1[Y0.type](Y0);if(P0&&(!o||e.compare(P0,o)>0))$0(P0);if(K0)await Promise.all([q1(),g1()]),x1()},m0=qD(async()=>{let G0=r.splice(0);if(!G0.length)return!1;let K0=await k1(G0);if(!K0)r.unshift(...G0),setTimeout(()=>m0().catch(()=>{}),1000);return K0},16);if(Object.assign(_,{use(G0){if(typeof G0==="function")f.push(G0)},async put(G0,K0){let P0=e.now();$0(P0),K0??=crypto.randomUUID(),y.upsert(K0,G0,P0),d.add({type:"upsert",id:K0,timestamp:P0}),q1(),g1();try{r.push({type:"upsert",id:K0,value:G0,timestamp:P0}),m0().catch(()=>{})}finally{x1()}return K0},async get(G0){if(typeof G0!=="string")return{result:null};let K0=y.get(G0);if(!K0)return{result:null};return{result:{...K0,value:HD(K0.value)}}},map(...G0){let P0={...{realtime:!1,query:{},field:null,order:"asc",$limit:null,$after:null,$before:null}},k0=null,C1=!1;G0.forEach((B0)=>typeof B0==="function"?k0=B0:B0&&typeof B0==="object"&&(C1=C1||("realtime"in B0),Object.assign(P0,B0))),k0&&!C1&&(P0.realtime=!0);let Q1=iA(y.nodes,P0),Y0=null;if(k0){if(Q1.forEach((B0)=>k0({id:B0.id,value:B0.value,edges:B0.edges,timestamp:B0.timestamp,action:"initial"})),P0.realtime){let B0=(F0)=>`${F0.id}:${F0.timestamp?.physical??0}:${F0.timestamp?.logical??0}:${(F0.edges??[]).join(",")}`;Y0=(F0)=>{let F1=iA(F0,P0),W8=new Map(Q1.map((H1)=>[H1.id,H1])),T1=new Map(F1.map((H1)=>[H1.id,H1]));if(F1.length!==Q1.length||!F1.map(B0).every((H1,c)=>H1===Q1.map(B0)[c])){for(let[H1,c]of T1){let t=W8.get(H1);if(!t)k0({id:H1,value:c.value,edges:c.edges,timestamp:c.timestamp,action:"added"});else if(B0(c)!==B0(t))k0({id:H1,value:c.value,edges:c.edges,timestamp:c.timestamp,action:"updated"})}for(let[H1,c]of W8)if(!T1.has(H1))k0({id:H1,value:null,edges:c.edges,timestamp:c.timestamp,action:"removed"});Q1=F1}},$.push(Y0)}}return{results:Q1,...P0.realtime&&k0&&Y0&&{unsubscribe:()=>{let B0=$.indexOf(Y0);if(B0>=0)$.splice(B0,1)}}}},async link(G0,K0){if(!y.nodes[G0]||!y.nodes[K0])return;let P0=e.now();y.link(G0,K0,P0);let k0=[...y.nodes[G0].edges];d.add({type:"link",sourceId:G0,targetId:K0,edges:k0,timestamp:P0}),q1(),g1(),$0(P0);try{r.push({type:"link",sourceId:G0,targetId:K0,edges:k0,timestamp:P0}),m0().catch(()=>{})}finally{x1()}},async unlink(G0,K0){if(!y.nodes[G0]?.edges.includes(K0))return;let P0=e.now();y.unlink(G0,K0,P0);let k0=[...y.nodes[G0].edges];d.add({type:"unlink",sourceId:G0,targetId:K0,edges:k0,timestamp:P0}),q1(),g1(),$0(P0);try{r.push({type:"unlink",sourceId:G0,targetId:K0,edges:k0,timestamp:P0}),m0().catch(()=>{})}finally{x1()}},async remove(G0){let K0=y.get(G0);if(!K0)return;let P0=e.now();delete y.nodes[G0],Object.values(y.nodes).forEach((k0)=>{k0.edges=(k0.edges??[]).filter((C1)=>C1!==G0)}),d.add({type:"remove",id:G0,value:K0.value,timestamp:P0}),q1(),g1(),$0(P0);try{r.push({type:"remove",id:G0,value:K0.value,timestamp:P0}),m0().catch(()=>{})}finally{x1()}},async clear(){y.nodes={},d.clear(),R.del("graph"),R.del("oplog"),h0()},on(G0){return $.push(G0),()=>{let K0=$.indexOf(G0);if(K0>=0)$.splice(K0,1)}},close(){R.close()}}),l)_.use(v_({constitution:p,customRoles:P?.customRoles??null,getNode:(G0)=>y.get(G0)})),console.info("\uD83D\uDEE1\uFE0F SM: verifying incoming operations");try{let G0=`graph-sync-room-${W}`,K0={appId:"1234",type:"superpeer",...Y&&{password:Y},...I&&{relayUrls:I},...H&&{turnConfig:H},...T&&{cells:!0},...T&&T!==!0&&{overlay:T},rtcPolyfill:V??HO};if(S=Rz(K0,G0),E=S.channel("syncGraph"),console.info(`\u26A1 Transport: ${T?"cellular mesh":"full mesh"}`),m){let P0=E.send;E={...E,send:async(k0)=>{let C1=await m.signOps(k0),Q1=!1;for(let Y0 of C1??[]){if(!Y0?.signature)continue;if(Y0.type!=="upsert"){if(d.sign(Y0),Q1=!0,Array.isArray(Y0.edges)&&g(y.get(Y0.sourceId)?.edges,Y0.edges))H0(Y0);continue}let B0=y.get(Y0.id);if(!B0||!g(B0.value,Y0.value))continue;let F0=W0.receipt(Y0,B0,B0);if(F0)B0.meta=F0,Q1=!0}if(Q1)q1(),g1();return P0(C1)}},_.sm=m}if(!T){let P0=!1;S.channel("c0").on("message",()=>{if(P0)return;P0=!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=Rz(K0,`app-sync-${W}`),console.info("\u26A1 db.room joined \u2014 visible to monitors/presence");S.on("peer:join",(P0)=>{console.info("\u26A1 Peer connected:",P0);for(let k0 of[0,1500,4000,9000])setTimeout(()=>k1([{type:"sync",timestamp:o,digest:u0()}]),k0)}),S.on("peer:leave",(P0)=>console.info("\u26A1 Peer disconnected:",P0)),E.on("message",async(P0)=>{let k0;try{k0=P0 instanceof Uint8Array||P0 instanceof ArrayBuffer?(()=>{let Q1=AW(P0);return Array.isArray(Q1)?Q1:[Q1]})():Array.isArray(P0)?P0:[P0]}catch(Q1){return console.error("\u274C decode failed:",Q1)}let C1=new Map([...new Set(k0.flatMap((Q1)=>["id","sourceId","targetId"].map((Y0)=>Q1?.[Y0]).filter(Boolean)))].map((Q1)=>y.get(Q1)?[Q1,HD(y.get(Q1))]:null).filter(Boolean));for(let Q1 of f)try{if(k0=await Q1(k0,C1),!k0?.length)return}catch(Y0){console.error("\u274C Middleware error:",Y0);return}await S0(k0)}),console.info("\u2705 GenosRTC sync enabled")}catch(G0){console.warn("\u26A0\uFE0F GenosRTC not available:",G0.message)}if(v(),b(),U0(),m){let G0=P?.governanceRules??null;if(!G0&&process.env.GDB_SM_RULES){let K0=process.env.GDB_SM_RULES.trim();try{if(K0.startsWith("["))G0=JSON.parse(K0);else if(K0.startsWith("{"))G0=[JSON.parse(K0)];else G0=(await import(new URL(K0,`file://${process.cwd()}/`).href)).default}catch(P0){console.error("\u274C GOVERNANCE: could not load GDB_SM_RULES:",P0.message)}}if(Array.isArray(G0)&&G0.length)_.governance=g_(_,m,G0,{customRoles:P?.customRoles??null})}if(O)_.relay=O;return Object.defineProperties(_,{syncChannel:{get:()=>E},hybridClock:{get:()=>e},graph:{get:()=>({getAllNodes:()=>y.getAllNodes(),get:(G0)=>y.get(G0)})}}),console.info(`\u2705 GDBServer [${W}] ready (bun:sqlite)`),_}if(import.meta.main){let W=new Set(["ECONNREFUSED","ECONNRESET","EHOSTUNREACH","ENETUNREACH","EADDRNOTAVAIL","ETIMEDOUT","EPIPE"]),X=(Z)=>W.has(Z?.code)||W.has(Z?.errno),G=new Map,Y=null,J=(Z="UNKNOWN")=>{let V=(G.get(Z)??0)+1;if(G.set(Z,V),V===1)console.warn("\u26A0\uFE0F Transient network error (ignored):",Z);Y??=setTimeout(()=>{Y=null;let U=[...G].filter(([,Q])=>Q>1).map(([Q,N])=>`${Q} \xD7${N}`).join(", ");if(U)console.warn("\u26A0\uFE0F Transient network errors (ignored, last 60s):",U);G.clear()},60000)};process.on("uncaughtException",(Z)=>{if(X(Z))return J(Z?.code??Z?.errno);console.error("\u274C Fatal:",Z?.message??Z),process.exit(1)}),process.on("unhandledRejection",(Z)=>{if(X(Z))return J(Z?.code??Z?.errno);console.error("\u274C Fatal (rejection):",Z?.message??Z),process.exit(1)}),vt().catch((Z)=>{console.error("\u274C Fatal:",Z.message),process.exit(1)})}export{vt as gdbServer};
|
|
256
|
+
`);let J=Y.prepare("SELECT value FROM kv WHERE key = ?"),Z=Y.prepare("INSERT OR REPLACE INTO kv (key, value) VALUES (?, ?)"),V=Y.prepare("DELETE FROM kv WHERE key = ?"),U=X;return{getBlob(Q){let N=J.get(`${U}:${Q}`);return N?new Uint8Array(N.value):null},getText(Q){let N=J.get(`${U}:${Q}`);return N?Buffer.from(N.value).toString("utf8"):null},putBlob(Q,N){Z.run(`${U}:${Q}`,Buffer.from(N))},putText(Q,N){Z.run(`${U}:${Q}`,Buffer.from(N,"utf8"))},del(Q){V.run(`${U}:${Q}`)},close(){Y.close()}}}async function vt(W=process.env.GDB_ROOM||process.argv.slice(2).find((Y)=>!Y.startsWith("--"))||"default",X={},G=process.env.GDB_DB_PATH||"./data.sqlite"){console.info(`\u26A1 GDBServer [${W}] initializing (bun:sqlite)`);let{password:Y,saveDelay:J=200,oplogSize:Z=1000,rtcPolyfill:V=null,rtc:U=!0,room:Q=null,sm:N=null,relay:q=null}=X,A=U?.constructor===Object?U:{},{turnConfig:H=null}=A,I=A.relayUrls??((process.env.GDB_RELAY_URLS??"").split(",").map((G0)=>G0.trim()).filter(Boolean).length?process.env.GDB_RELAY_URLS.split(",").map((G0)=>G0.trim()).filter(Boolean):null),w=q??(process.argv.includes("--relay")||["1","true"].includes(process.env.GDB_RELAY??"")),O=null;if(w)O=Lx(q?.constructor===Object?q:{}),I=[...I??[],`ws://127.0.0.1:${O.port}`];let T=A.cells??(process.argv.includes("--cells")||["1","true"].includes(process.env.GDB_CELLS??"")),x=Q??process.argv.includes("--room"),u=N?.constructor===Object?N:null,$=u?.key??process.env.GDB_SM_KEY??null,S=u?.superAdmins??(process.env.GDB_SUPERADMINS??"").split(",").map((G0)=>G0.trim()).filter(Boolean),h=null;if($)h=y_($,S),console.info(`\uD83D\uDEE1\uFE0F SM: signing as ${h.address}`);else if(u)console.warn("\u26A0\uFE0F SM: sm configured but no signing key (GDB_SM_KEY) \u2014 running unsigned, memory-only role.");let l=Boolean(h||u||S.length),p=h?[...h.superAdmins]:S;if(l&&!p.length)console.warn("\u26A0\uFE0F SM: no superAdmins (GDB_SUPERADMINS) \u2014 role nodes cannot be verified and will not be relayed.");let t=l?__({constitution:p,customRoles:u?.customRoles??null,getNode:(G0)=>_.get(G0)}):null,_=_t(),e=fC(),H0=(G0)=>{let K0=_.get(G0.sourceId);if(!K0)return;if(Array.isArray(G0.edges))K0.edges=[...G0.edges];let P0=t?.edgeReceipt(G0);if(P0)K0.meta={...K0.meta,edges:P0}},g=(G0,K0)=>JSON.stringify(G0)===JSON.stringify(K0),d=kt(Z),P=yt(G,W),E=[],f=[],r=[],o=null,B=null,F=null,y={},v=()=>{let G0=P.getBlob("graph");if(G0?.byteLength)_.deserialize(G0),console.info(`\u2705 Graph loaded: ${_.getAllNodes().length} nodes`)},R=()=>{P.putBlob("graph",_.serialize())},m=()=>{let G0=P.getText("timestamp");if(G0){let K0=JSON.parse(G0);if(K0?.physical&&K0?.logical)o=K0,e.update(o)}},J0=()=>{P.putText("timestamp",JSON.stringify(o??null))},U0=()=>{let G0=P.getBlob("oplog");if(G0?.byteLength){let K0=AW(WG.inflate(G0));if(Array.isArray(K0))d.setEntries(K0),console.info(`\u2705 Oplog loaded: ${K0.length} ops`)}},N0=()=>{P.putBlob("oplog",WG.deflate(hU(d.entries())))},$0=(G0)=>{if(!G0)return;if(!o||e.compare(G0,o)>0)o=G0,J0()},u0=()=>{let G0=0,K0=0;for(let[P0,k0]of Object.entries(_.nodes)){let C1=`${P0}\x00${k0.timestamp.physical}\x00${k0.timestamp.logical}`,Q1=2166136261,Y0=3386659096;for(let B0=0;B0<C1.length;B0++)Q1=Math.imul(Q1^C1.charCodeAt(B0),16777619),Y0=Math.imul(Y0^C1.charCodeAt(B0),16777619);G0^=Q1,K0^=Y0}return`${G0>>>0}.${K0>>>0}`},q1=qD(()=>R(),J),g1=qD(()=>N0(),J),h0=()=>{let G0={..._.nodes};E.forEach((K0)=>K0(G0))},x1=xt(()=>h0()),k1=async(G0)=>{if(!G0?.length||!B)return!1;try{return await B.send(G0),!0}catch(K0){return console.error("\u274C safeSend failed:",K0?.message),!1}},Q0=async(G0)=>{let K0=await k1(G0);return setTimeout(()=>k1(G0),2500),K0},S0=async(G0)=>{let K0=!1,P0=null,k0=(Y0)=>{if(Y0&&(!P0||e.compare(Y0,P0)>0))P0=Y0},C1=(Y0)=>{try{if(Y0 instanceof Uint8Array||Y0 instanceof ArrayBuffer){let B0=AW(Y0);return Array.isArray(B0)?B0:[B0]}if(Array.isArray(Y0))return Y0;if(Y0&&typeof Y0==="object")return AW(WG.inflate(new Uint8Array(Object.values(Y0))))}catch(B0){console.error("\u274C decode failed",B0)}return null},Q1={upsert(Y0){let B0=_.get(Y0.id);if(!B0){for(let H1 of d.getDelta(null))if(H1.type==="remove"&&H1.id===Y0.id&&e.compare(H1.timestamp,Y0.timestamp)>=0)return!1}let{resolved:F0,value:F1,timestamp:W8}=pC(B0,Y0,e);if(!F0)return!1;if(t&&!t.op(Y0,B0))return console.warn(`\u26A0\uFE0F [SYNC-AUTH] upsert denied: ${Y0.id}`),!1;_.upsert(Y0.id,F1,W8);let T1=t?.receipt(Y0,B0,_.get(Y0.id));if(T1)_.get(Y0.id).meta=T1;return e.update(W8),d.add({type:"upsert",id:Y0.id,timestamp:W8}),K0=!0,k0(W8),!0},remove(Y0){let B0=_.get(Y0.id);if(!B0||e.compare(B0.timestamp,Y0.timestamp)>=0)return;if(t&&!t.op(Y0,B0))return console.warn(`\u26A0\uFE0F [SYNC-AUTH] remove denied: ${Y0.id}`);delete _.nodes[Y0.id],Object.values(_.nodes).forEach((F0)=>{F0.edges=(F0.edges??[]).filter((F1)=>F1!==Y0.id)}),e.update(Y0.timestamp),d.add({type:"remove",id:Y0.id,value:Y0.value,timestamp:Y0.timestamp,originUser:Y0.originUser,originEthAddress:Y0.originEthAddress,signature:Y0.signature}),K0=!0,k0(Y0.timestamp)},link(Y0){let B0=_.get(Y0.sourceId),F0=_.get(Y0.targetId);if(!B0||!F0||e.compare(B0.timestamp,Y0.timestamp)>=0)return;if(t&&!t.op(Y0,B0))return console.warn(`\u26A0\uFE0F [SYNC-AUTH] link denied: ${Y0.sourceId}`);_.link(Y0.sourceId,Y0.targetId,Y0.timestamp),H0(Y0),e.update(Y0.timestamp),d.add({type:"link",sourceId:Y0.sourceId,targetId:Y0.targetId,edges:Y0.edges,timestamp:Y0.timestamp,originUser:Y0.originUser,originEthAddress:Y0.originEthAddress,signature:Y0.signature}),K0=!0,k0(Y0.timestamp)},unlink(Y0){let B0=_.get(Y0.sourceId);if(!B0||e.compare(B0.timestamp,Y0.timestamp)>=0)return;if(t&&!t.op(Y0,B0))return console.warn(`\u26A0\uFE0F [SYNC-AUTH] unlink denied: ${Y0.sourceId}`);_.unlink(Y0.sourceId,Y0.targetId,Y0.timestamp),H0(Y0),e.update(Y0.timestamp),d.add({type:"unlink",sourceId:Y0.sourceId,targetId:Y0.targetId,edges:Y0.edges,timestamp:Y0.timestamp,originUser:Y0.originUser,originEthAddress:Y0.originEthAddress,signature:Y0.signature}),K0=!0,k0(Y0.timestamp)},async sync({timestamp:Y0,digest:B0}){if(B0&&B0===u0())return console.info("\uD83D\uDFF0 State digests match \u2014 nothing to send.");let F0=d.getOldest();if(Y0==null||F0&&e.compare(Y0,F0.timestamp)<0){console.info("\uD83D\uDCA5 Sending FULL state sync:",_.getAllNodes().length,"nodes"),await Q0([{type:"fullStateSync",graphData:_.nodes,removals:d.getDelta(null).filter((H1)=>H1.type==="remove"),timestamp:o}]);return}let W8=d.getDelta(null);if(!W8.length)return;let T1=W8.flatMap((H1)=>{if(H1.type!=="upsert")return[H1];let c=_.get(H1.id);if(!c)return[];return[t?.opOf(H1.id,c)??{...H1,value:c.value}]});console.info("\uD83D\uDE80 Sending DELTA sync:",T1.length,"ops"),await Q0([{type:"deltaSync",operations:T1,timestamp:o}])},deltaSync({operations:Y0}){let B0=C1(Y0);if(!Array.isArray(B0))return;console.info("\uD83D\uDCE5 deltaSync:",B0.length,"ops");for(let F0 of B0)if(F0&&Q1[F0.type])Q1[F0.type](F0)},async fullStateSync({graphData:Y0,removals:B0,timestamp:F0}){if(!Y0||typeof Y0!=="object")return;let F1=Object.entries(Y0).sort(([T1],[H1])=>H1.startsWith("user:")-T1.startsWith("user:"));for(let[T1,H1]of F1){let c=Q1.upsert(t?.opOf(T1,H1)??{type:"upsert",id:T1,value:H1.value,timestamp:H1.timestamp}),W0=_.nodes[T1];if(!W0)continue;if(t)H0(t.edges(T1,H1,W0)??{});else if(c)W0.edges=[...H1.edges??[]]}for(let T1 of B0??[])Q1.remove(T1);let W8=new Set(Object.keys(Y0));if(Object.keys(_.nodes).some((T1)=>!W8.has(T1)))await Q0([{type:"fullStateSync",graphData:_.nodes,removals:d.getDelta(null).filter((T1)=>T1.type==="remove"),timestamp:o}]);if(K0=!0,console.info("\u2705 fullStateSync merged:",_.getAllNodes().length,"nodes"),F0)k0(F0),e.update(F0)}};for(let Y0 of G0)if(Q1[Y0.type])await Q1[Y0.type](Y0);if(P0&&(!o||e.compare(P0,o)>0))$0(P0);if(K0)await Promise.all([q1(),g1()]),x1()},m0=qD(async()=>{let G0=r.splice(0);if(!G0.length)return!1;let K0=await k1(G0);if(!K0)r.unshift(...G0),setTimeout(()=>m0().catch(()=>{}),1000);return K0},16);if(Object.assign(y,{use(G0){if(typeof G0==="function")f.push(G0)},async put(G0,K0){let P0=e.now();$0(P0);let k0=G0?.owner??G0?._meta?.owner;K0??=k0?`${k0}:${crypto.randomUUID()}`:crypto.randomUUID(),_.upsert(K0,G0,P0),d.add({type:"upsert",id:K0,timestamp:P0}),q1(),g1();try{r.push({type:"upsert",id:K0,value:G0,timestamp:P0}),m0().catch(()=>{})}finally{x1()}return K0},async get(G0){if(typeof G0!=="string")return{result:null};let K0=_.get(G0);if(!K0)return{result:null};return{result:{...K0,value:HD(K0.value)}}},map(...G0){let P0={...{realtime:!1,query:{},field:null,order:"asc",$limit:null,$after:null,$before:null}},k0=null,C1=!1;G0.forEach((B0)=>typeof B0==="function"?k0=B0:B0&&typeof B0==="object"&&(C1=C1||("realtime"in B0),Object.assign(P0,B0))),k0&&!C1&&(P0.realtime=!0);let Q1=iA(_.nodes,P0),Y0=null;if(k0){if(Q1.forEach((B0)=>k0({id:B0.id,value:B0.value,edges:B0.edges,timestamp:B0.timestamp,action:"initial"})),P0.realtime){let B0=(F0)=>`${F0.id}:${F0.timestamp?.physical??0}:${F0.timestamp?.logical??0}:${(F0.edges??[]).join(",")}`;Y0=(F0)=>{let F1=iA(F0,P0),W8=new Map(Q1.map((H1)=>[H1.id,H1])),T1=new Map(F1.map((H1)=>[H1.id,H1]));if(F1.length!==Q1.length||!F1.map(B0).every((H1,c)=>H1===Q1.map(B0)[c])){for(let[H1,c]of T1){let W0=W8.get(H1);if(!W0)k0({id:H1,value:c.value,edges:c.edges,timestamp:c.timestamp,action:"added"});else if(B0(c)!==B0(W0))k0({id:H1,value:c.value,edges:c.edges,timestamp:c.timestamp,action:"updated"})}for(let[H1,c]of W8)if(!T1.has(H1))k0({id:H1,value:null,edges:c.edges,timestamp:c.timestamp,action:"removed"});Q1=F1}},E.push(Y0)}}return{results:Q1,...P0.realtime&&k0&&Y0&&{unsubscribe:()=>{let B0=E.indexOf(Y0);if(B0>=0)E.splice(B0,1)}}}},async link(G0,K0){if(!_.nodes[G0]||!_.nodes[K0])return;let P0=e.now();_.link(G0,K0,P0);let k0=[..._.nodes[G0].edges];d.add({type:"link",sourceId:G0,targetId:K0,edges:k0,timestamp:P0}),q1(),g1(),$0(P0);try{r.push({type:"link",sourceId:G0,targetId:K0,edges:k0,timestamp:P0}),m0().catch(()=>{})}finally{x1()}},async unlink(G0,K0){if(!_.nodes[G0]?.edges.includes(K0))return;let P0=e.now();_.unlink(G0,K0,P0);let k0=[..._.nodes[G0].edges];d.add({type:"unlink",sourceId:G0,targetId:K0,edges:k0,timestamp:P0}),q1(),g1(),$0(P0);try{r.push({type:"unlink",sourceId:G0,targetId:K0,edges:k0,timestamp:P0}),m0().catch(()=>{})}finally{x1()}},async remove(G0){let K0=_.get(G0);if(!K0)return;let P0=e.now();delete _.nodes[G0],Object.values(_.nodes).forEach((k0)=>{k0.edges=(k0.edges??[]).filter((C1)=>C1!==G0)}),d.add({type:"remove",id:G0,value:K0.value,timestamp:P0}),q1(),g1(),$0(P0);try{r.push({type:"remove",id:G0,value:K0.value,timestamp:P0}),m0().catch(()=>{})}finally{x1()}},async clear(){_.nodes={},d.clear(),P.del("graph"),P.del("oplog"),h0()},on(G0){return E.push(G0),()=>{let K0=E.indexOf(G0);if(K0>=0)E.splice(K0,1)}},close(){P.close()}}),l)y.use(v_({constitution:p,customRoles:u?.customRoles??null,getNode:(G0)=>_.get(G0)})),console.info("\uD83D\uDEE1\uFE0F SM: verifying incoming operations");try{let G0=`graph-sync-room-${W}`,K0={appId:"1234",type:"superpeer",...Y&&{password:Y},...I&&{relayUrls:I},...H&&{turnConfig:H},...T&&{cells:!0},...T&&T!==!0&&{overlay:T},rtcPolyfill:V??HO};if(F=Rz(K0,G0),B=F.channel("syncGraph"),console.info(`\u26A1 Transport: ${T?"cellular mesh":"full mesh"}`),h){let P0=B.send;B={...B,send:async(k0)=>{let C1=await h.signOps(k0),Q1=!1;for(let Y0 of C1??[]){if(!Y0?.signature)continue;if(Y0.type!=="upsert"){if(d.sign(Y0),Q1=!0,Array.isArray(Y0.edges)&&g(_.get(Y0.sourceId)?.edges,Y0.edges))H0(Y0);continue}let B0=_.get(Y0.id);if(!B0||!g(B0.value,Y0.value))continue;let F0=t.receipt(Y0,B0,B0);if(F0)B0.meta=F0,Q1=!0}if(Q1)q1(),g1();return P0(C1)}},y.sm=h}if(!T){let P0=!1;F.channel("c0").on("message",()=>{if(P0)return;P0=!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)y.room=Rz(K0,`app-sync-${W}`),console.info("\u26A1 db.room joined \u2014 visible to monitors/presence");F.on("peer:join",(P0)=>{console.info("\u26A1 Peer connected:",P0);for(let k0 of[0,1500,4000,9000])setTimeout(()=>k1([{type:"sync",timestamp:o,digest:u0()}]),k0)}),F.on("peer:leave",(P0)=>console.info("\u26A1 Peer disconnected:",P0)),B.on("message",async(P0)=>{let k0;try{k0=P0 instanceof Uint8Array||P0 instanceof ArrayBuffer?(()=>{let Q1=AW(P0);return Array.isArray(Q1)?Q1:[Q1]})():Array.isArray(P0)?P0:[P0]}catch(Q1){return console.error("\u274C decode failed:",Q1)}let C1=new Map([...new Set(k0.flatMap((Q1)=>["id","sourceId","targetId"].map((Y0)=>Q1?.[Y0]).filter(Boolean)))].map((Q1)=>_.get(Q1)?[Q1,HD(_.get(Q1))]:null).filter(Boolean));for(let Q1 of f)try{if(k0=await Q1(k0,C1),!k0?.length)return}catch(Y0){console.error("\u274C Middleware error:",Y0);return}await S0(k0)}),console.info("\u2705 GenosRTC sync enabled")}catch(G0){console.warn("\u26A0\uFE0F GenosRTC not available:",G0.message)}if(v(),m(),U0(),h){let G0=u?.governanceRules??null;if(!G0&&process.env.GDB_SM_RULES){let K0=process.env.GDB_SM_RULES.trim();try{if(K0.startsWith("["))G0=JSON.parse(K0);else if(K0.startsWith("{"))G0=[JSON.parse(K0)];else G0=(await import(new URL(K0,`file://${process.cwd()}/`).href)).default}catch(P0){console.error("\u274C GOVERNANCE: could not load GDB_SM_RULES:",P0.message)}}if(Array.isArray(G0)&&G0.length)y.governance=g_(y,h,G0,{customRoles:u?.customRoles??null})}if(O)y.relay=O;return Object.defineProperties(y,{syncChannel:{get:()=>B},hybridClock:{get:()=>e},graph:{get:()=>({getAllNodes:()=>_.getAllNodes(),get:(G0)=>_.get(G0)})}}),console.info(`\u2705 GDBServer [${W}] ready (bun:sqlite)`),y}if(import.meta.main){let W=new Set(["ECONNREFUSED","ECONNRESET","EHOSTUNREACH","ENETUNREACH","EADDRNOTAVAIL","ETIMEDOUT","EPIPE"]),X=(Z)=>W.has(Z?.code)||W.has(Z?.errno),G=new Map,Y=null,J=(Z="UNKNOWN")=>{let V=(G.get(Z)??0)+1;if(G.set(Z,V),V===1)console.warn("\u26A0\uFE0F Transient network error (ignored):",Z);Y??=setTimeout(()=>{Y=null;let U=[...G].filter(([,Q])=>Q>1).map(([Q,N])=>`${Q} \xD7${N}`).join(", ");if(U)console.warn("\u26A0\uFE0F Transient network errors (ignored, last 60s):",U);G.clear()},60000)};process.on("uncaughtException",(Z)=>{if(X(Z))return J(Z?.code??Z?.errno);console.error("\u274C Fatal:",Z?.message??Z),process.exit(1)}),process.on("unhandledRejection",(Z)=>{if(X(Z))return J(Z?.code??Z?.errno);console.error("\u274C Fatal (rejection):",Z?.message??Z),process.exit(1)}),vt().catch((Z)=>{console.error("\u274C Fatal:",Z.message),process.exit(1)})}export{vt as gdbServer};
|