genosdb 0.31.1 → 0.31.3

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.
@@ -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 k_=Object.create;var{getPrototypeOf:__,defineProperty:HA,getOwnPropertyNames:y_}=Object;var v_=Object.prototype.hasOwnProperty;function g_(W){return this[W]}var u_,h_,g1=(W,G,X)=>{var Y=W!=null&&typeof W==="object";if(Y){var J=G?u_??=new WeakMap:h_??=new WeakMap,Z=J.get(W);if(Z)return Z}X=W!=null?k_(__(W)):{};let V=G||!W||!W.__esModule?HA(X,"default",{value:W,enumerable:!0}):X;for(let U of y_(W))if(!v_.call(V,U))HA(V,U,{get:g_.bind(W,U),enumerable:!0});if(Y)J.set(W,V);return V};var Z1=(W,G)=>()=>(G||W((G={exports:{}}).exports,G),G.exports);var b_=(W)=>W;function m_(W,G){this[W]=b_.bind(null,G)}var AA=(W,G)=>{for(var X in G)HA(W,X,{get:G[X],enumerable:!0,configurable:!0,set:m_.bind(G,X)})};var k8=import.meta.require;var eT=Z1((me,tT)=>{var AX=1000,zX=AX*60,IX=zX*60,BW=IX*24,uh=BW*7,hh=BW*365.25;tT.exports=function(W,G){G=G||{};var X=typeof W;if(X==="string"&&W.length>0)return bh(W);else if(X==="number"&&isFinite(W))return G.long?fh(W):mh(W);throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(W))};function bh(W){if(W=String(W),W.length>100)return;var G=/^(-?(?:\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(!G)return;var X=parseFloat(G[1]),Y=(G[2]||"ms").toLowerCase();switch(Y){case"years":case"year":case"yrs":case"yr":case"y":return X*hh;case"weeks":case"week":case"w":return X*uh;case"days":case"day":case"d":return X*BW;case"hours":case"hour":case"hrs":case"hr":case"h":return X*IX;case"minutes":case"minute":case"mins":case"min":case"m":return X*zX;case"seconds":case"second":case"secs":case"sec":case"s":return X*AX;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return X;default:return}}function mh(W){var G=Math.abs(W);if(G>=BW)return Math.round(W/BW)+"d";if(G>=IX)return Math.round(W/IX)+"h";if(G>=zX)return Math.round(W/zX)+"m";if(G>=AX)return Math.round(W/AX)+"s";return W+"ms"}function fh(W){var G=Math.abs(W);if(G>=BW)return BQ(W,G,BW,"day");if(G>=IX)return BQ(W,G,IX,"hour");if(G>=zX)return BQ(W,G,zX,"minute");if(G>=AX)return BQ(W,G,AX,"second");return W+" ms"}function BQ(W,G,X,Y){var J=G>=X*1.5;return Math.round(W/X)+" "+Y+(J?"s":"")}});var Lz=Z1((fe,WM)=>{function ph(W){X.debug=X,X.default=X,X.coerce=Q,X.disable=V,X.enable=J,X.enabled=U,X.humanize=eT(),X.destroy=N,Object.keys(W).forEach((q)=>{X[q]=W[q]}),X.names=[],X.skips=[],X.formatters={};function G(q){let A=0;for(let H=0;H<q.length;H++)A=(A<<5)-A+q.charCodeAt(H),A|=0;return X.colors[Math.abs(A)%X.colors.length]}X.selectColor=G;function X(q){let A,H=null,I,w;function O(...M){if(!O.enabled)return;let S=O,v=Number(new Date),f=v-(A||v);if(S.diff=f,S.prev=A,S.curr=v,A=v,M[0]=X.coerce(M[0]),typeof M[0]!=="string")M.unshift("%O");let g=0;M[0]=M[0].replace(/%([a-zA-Z%])/g,(l,h)=>{if(l==="%%")return"%";g++;let e=X.formatters[h];if(typeof e==="function"){let m=M[g];l=e.call(S,m),M.splice(g,1),g--}return l}),X.formatArgs.call(S,M),(S.log||X.log).apply(S,M)}if(O.namespace=q,O.useColors=X.useColors(),O.color=X.selectColor(q),O.extend=Y,O.destroy=X.destroy,Object.defineProperty(O,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(H!==null)return H;if(I!==X.namespaces)I=X.namespaces,w=X.enabled(q);return w},set:(M)=>{H=M}}),typeof X.init==="function")X.init(O);return O}function Y(q,A){let H=X(this.namespace+(typeof A>"u"?":":A)+q);return H.log=this.log,H}function J(q){X.save(q),X.namespaces=q,X.names=[],X.skips=[];let A=(typeof q==="string"?q:"").trim().replace(" ",",").split(",").filter(Boolean);for(let H of A)if(H[0]==="-")X.skips.push(H.slice(1));else X.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=[...X.names,...X.skips.map((A)=>"-"+A)].join(",");return X.enable(""),q}function U(q){for(let A of X.skips)if(Z(q,A))return!1;for(let A of X.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 X.enable(X.load()),X}WM.exports=ph});var XM=Z1((GM,$Q)=>{GM.formatArgs=lh;GM.save=dh;GM.load=oh;GM.useColors=ch;GM.storage=nh();GM.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`.")}})();GM.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 ch(){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 lh(W){if(W[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+W[0]+(this.useColors?"%c ":" ")+"+"+$Q.exports.humanize(this.diff),!this.useColors)return;let G="color: "+this.color;W.splice(1,0,G,"color: inherit");let X=0,Y=0;W[0].replace(/%[a-zA-Z%]/g,(J)=>{if(J==="%%")return;if(X++,J==="%c")Y=X}),W.splice(Y,0,G)}GM.log=console.debug||console.log||(()=>{});function dh(W){try{if(W)GM.storage.setItem("debug",W);else GM.storage.removeItem("debug")}catch(G){}}function oh(){let W;try{W=GM.storage.getItem("debug")}catch(G){}if(!W&&typeof process<"u"&&"env"in process)W=process.env.DEBUG;return W}function nh(){try{return localStorage}catch(W){}}$Q.exports=Lz()(GM);var{formatters:ih}=$Q.exports;ih.j=function(W){try{return JSON.stringify(W)}catch(G){return"[UnexpectedJSONParseError]: "+G.message}}});var VM=Z1((JM,SQ)=>{var Xb=k8("tty"),FQ=k8("util");JM.init=Nb;JM.log=Vb;JM.formatArgs=Jb;JM.save=Ub;JM.load=Qb;JM.useColors=Yb;JM.destroy=FQ.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");JM.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)JM.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){}JM.inspectOpts=Object.keys(process.env).filter((W)=>{return/^debug_/i.test(W)}).reduce((W,G)=>{let X=G.substring(6).toLowerCase().replace(/_([a-z])/g,(J,Z)=>{return Z.toUpperCase()}),Y=process.env[G];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[X]=Y,W},{});function Yb(){return"colors"in JM.inspectOpts?Boolean(JM.inspectOpts.colors):Xb.isatty(process.stderr.fd)}function Jb(W){let{namespace:G,useColors:X}=this;if(X){let Y=this.color,J="\x1B[3"+(Y<8?Y:"8;5;"+Y),Z=` ${J};1m${G} \x1B[0m`;W[0]=Z+W[0].split(`
3
+ var k_=Object.create;var{getPrototypeOf:__,defineProperty:HA,getOwnPropertyNames:y_}=Object;var v_=Object.prototype.hasOwnProperty;function g_(W){return this[W]}var u_,h_,g1=(W,G,X)=>{var Y=W!=null&&typeof W==="object";if(Y){var J=G?u_??=new WeakMap:h_??=new WeakMap,Z=J.get(W);if(Z)return Z}X=W!=null?k_(__(W)):{};let V=G||!W||!W.__esModule?HA(X,"default",{value:W,enumerable:!0}):X;for(let U of y_(W))if(!v_.call(V,U))HA(V,U,{get:g_.bind(W,U),enumerable:!0});if(Y)J.set(W,V);return V};var Z1=(W,G)=>()=>(G||W((G={exports:{}}).exports,G),G.exports);var b_=(W)=>W;function m_(W,G){this[W]=b_.bind(null,G)}var AA=(W,G)=>{for(var X in G)HA(W,X,{get:G[X],enumerable:!0,configurable:!0,set:m_.bind(G,X)})};var k8=import.meta.require;var eT=Z1((me,tT)=>{var AX=1000,zX=AX*60,IX=zX*60,BW=IX*24,uh=BW*7,hh=BW*365.25;tT.exports=function(W,G){G=G||{};var X=typeof W;if(X==="string"&&W.length>0)return bh(W);else if(X==="number"&&isFinite(W))return G.long?fh(W):mh(W);throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(W))};function bh(W){if(W=String(W),W.length>100)return;var G=/^(-?(?:\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(!G)return;var X=parseFloat(G[1]),Y=(G[2]||"ms").toLowerCase();switch(Y){case"years":case"year":case"yrs":case"yr":case"y":return X*hh;case"weeks":case"week":case"w":return X*uh;case"days":case"day":case"d":return X*BW;case"hours":case"hour":case"hrs":case"hr":case"h":return X*IX;case"minutes":case"minute":case"mins":case"min":case"m":return X*zX;case"seconds":case"second":case"secs":case"sec":case"s":return X*AX;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return X;default:return}}function mh(W){var G=Math.abs(W);if(G>=BW)return Math.round(W/BW)+"d";if(G>=IX)return Math.round(W/IX)+"h";if(G>=zX)return Math.round(W/zX)+"m";if(G>=AX)return Math.round(W/AX)+"s";return W+"ms"}function fh(W){var G=Math.abs(W);if(G>=BW)return BQ(W,G,BW,"day");if(G>=IX)return BQ(W,G,IX,"hour");if(G>=zX)return BQ(W,G,zX,"minute");if(G>=AX)return BQ(W,G,AX,"second");return W+" ms"}function BQ(W,G,X,Y){var J=G>=X*1.5;return Math.round(W/X)+" "+Y+(J?"s":"")}});var Lz=Z1((fe,WM)=>{function ph(W){X.debug=X,X.default=X,X.coerce=Q,X.disable=V,X.enable=J,X.enabled=U,X.humanize=eT(),X.destroy=N,Object.keys(W).forEach((q)=>{X[q]=W[q]}),X.names=[],X.skips=[],X.formatters={};function G(q){let A=0;for(let H=0;H<q.length;H++)A=(A<<5)-A+q.charCodeAt(H),A|=0;return X.colors[Math.abs(A)%X.colors.length]}X.selectColor=G;function X(q){let A,H=null,I,w;function O(...M){if(!O.enabled)return;let S=O,v=Number(new Date),p=v-(A||v);if(S.diff=p,S.prev=A,S.curr=v,A=v,M[0]=X.coerce(M[0]),typeof M[0]!=="string")M.unshift("%O");let g=0;M[0]=M[0].replace(/%([a-zA-Z%])/g,(l,h)=>{if(l==="%%")return"%";g++;let e=X.formatters[h];if(typeof e==="function"){let m=M[g];l=e.call(S,m),M.splice(g,1),g--}return l}),X.formatArgs.call(S,M),(S.log||X.log).apply(S,M)}if(O.namespace=q,O.useColors=X.useColors(),O.color=X.selectColor(q),O.extend=Y,O.destroy=X.destroy,Object.defineProperty(O,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(H!==null)return H;if(I!==X.namespaces)I=X.namespaces,w=X.enabled(q);return w},set:(M)=>{H=M}}),typeof X.init==="function")X.init(O);return O}function Y(q,A){let H=X(this.namespace+(typeof A>"u"?":":A)+q);return H.log=this.log,H}function J(q){X.save(q),X.namespaces=q,X.names=[],X.skips=[];let A=(typeof q==="string"?q:"").trim().replace(" ",",").split(",").filter(Boolean);for(let H of A)if(H[0]==="-")X.skips.push(H.slice(1));else X.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=[...X.names,...X.skips.map((A)=>"-"+A)].join(",");return X.enable(""),q}function U(q){for(let A of X.skips)if(Z(q,A))return!1;for(let A of X.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 X.enable(X.load()),X}WM.exports=ph});var XM=Z1((GM,$Q)=>{GM.formatArgs=lh;GM.save=dh;GM.load=oh;GM.useColors=ch;GM.storage=nh();GM.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`.")}})();GM.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 ch(){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 lh(W){if(W[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+W[0]+(this.useColors?"%c ":" ")+"+"+$Q.exports.humanize(this.diff),!this.useColors)return;let G="color: "+this.color;W.splice(1,0,G,"color: inherit");let X=0,Y=0;W[0].replace(/%[a-zA-Z%]/g,(J)=>{if(J==="%%")return;if(X++,J==="%c")Y=X}),W.splice(Y,0,G)}GM.log=console.debug||console.log||(()=>{});function dh(W){try{if(W)GM.storage.setItem("debug",W);else GM.storage.removeItem("debug")}catch(G){}}function oh(){let W;try{W=GM.storage.getItem("debug")}catch(G){}if(!W&&typeof process<"u"&&"env"in process)W=process.env.DEBUG;return W}function nh(){try{return localStorage}catch(W){}}$Q.exports=Lz()(GM);var{formatters:ih}=$Q.exports;ih.j=function(W){try{return JSON.stringify(W)}catch(G){return"[UnexpectedJSONParseError]: "+G.message}}});var VM=Z1((JM,SQ)=>{var Xb=k8("tty"),FQ=k8("util");JM.init=Nb;JM.log=Vb;JM.formatArgs=Jb;JM.save=Ub;JM.load=Qb;JM.useColors=Yb;JM.destroy=FQ.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");JM.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)JM.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){}JM.inspectOpts=Object.keys(process.env).filter((W)=>{return/^debug_/i.test(W)}).reduce((W,G)=>{let X=G.substring(6).toLowerCase().replace(/_([a-z])/g,(J,Z)=>{return Z.toUpperCase()}),Y=process.env[G];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[X]=Y,W},{});function Yb(){return"colors"in JM.inspectOpts?Boolean(JM.inspectOpts.colors):Xb.isatty(process.stderr.fd)}function Jb(W){let{namespace:G,useColors:X}=this;if(X){let Y=this.color,J="\x1B[3"+(Y<8?Y:"8;5;"+Y),Z=` ${J};1m${G} \x1B[0m`;W[0]=Z+W[0].split(`
4
4
  `).join(`
5
5
  `+Z),W.push(J+"m+"+SQ.exports.humanize(this.diff)+"\x1B[0m")}else W[0]=Zb()+G+" "+W[0]}function Zb(){if(JM.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function Vb(...W){return process.stderr.write(FQ.formatWithOptions(JM.inspectOpts,...W)+`
6
6
  `)}function Ub(W){if(W)process.env.DEBUG=W;else delete process.env.DEBUG}function Qb(){return process.env.DEBUG}function Nb(W){W.inspectOpts={};let G=Object.keys(JM.inspectOpts);for(let X=0;X<G.length;X++)W.inspectOpts[G[X]]=JM.inspectOpts[G[X]]}SQ.exports=Lz()(JM);var{formatters:YM}=SQ.exports;YM.o=function(W){return this.inspectOpts.colors=this.useColors,FQ.inspect(W,this.inspectOpts).split(`
7
- `).map((G)=>G.trim()).join(" ")};YM.O=function(W){return this.inspectOpts.colors=this.useColors,FQ.inspect(W,this.inspectOpts)}});var UM=Z1((le,Bz)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)Bz.exports=XM();else Bz.exports=VM()});var xQ=Z1((NM)=>{Object.defineProperty(NM,"__esModule",{value:!0});var Kb=k8("net");function Ob(W){switch(Kb.isIP(W)){case 4:return Buffer.from(W.split(".").map((J)=>parseInt(J,10)));case 6:let G=W.split(":"),X=Buffer.alloc(16),Y=0;if(G[G.length-1]==="")G[G.length-1]="0";for(let J=0;J<G.length;J++){if(G[J]===""){if(J+1<G.length&&G[J+1]!=="")Y=16-(G.length-J-1)*2;continue}X.writeUInt16BE(parseInt(G[J],16),Y),Y+=2}return X;default:return null}}NM.bytesFromIP=Ob;function Db(W){switch(W.length){case 4:return[W[0],W[1],W[2],W[3]].join(".");case 16:let G=[],X=-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++,X===-1)X=G.length;if(Y>Z)Z=Y,J=X}else X=-1,Y=0;G.push(U.toString(16))}if(Z>0){let V="",U=G.slice(J+Z);if(G.length=J,G.length===0)V+=":";if(U.length===0)V+=":";G.push(V,...U)}return G.join(":");default:return""}}NM.bytesToIP=Db;var A6=Object.create(null),QM=/^[0-9.]+$/;function Cb(W){if(QM.test(W)&&A6[W]!=="")return W;return A6[W]==null?"":A6[W]}NM.getOID=Cb;function Tb(W){if(!QM.test(W)&&A6[W]!=="")return W;return A6[W]==null?W:A6[W]}NM.getOIDName=Tb;function j0(W,G){A6[W]=G,A6[G]=W}j0("1.2.840.113549.1.1.1","rsaEncryption");j0("1.2.840.113549.1.1.4","md5WithRsaEncryption");j0("1.2.840.113549.1.1.5","sha1WithRsaEncryption");j0("1.2.840.113549.1.1.8","mgf1");j0("1.2.840.113549.1.1.10","RSASSA-PSS");j0("1.2.840.113549.1.1.11","sha256WithRsaEncryption");j0("1.2.840.113549.1.1.12","sha384WithRsaEncryption");j0("1.2.840.113549.1.1.13","sha512WithRsaEncryption");j0("1.2.840.10045.2.1","ecEncryption");j0("1.2.840.10045.4.1","ecdsaWithSha1");j0("1.2.840.10045.4.3.2","ecdsaWithSha256");j0("1.2.840.10045.4.3.3","ecdsaWithSha384");j0("1.2.840.10045.4.3.4","ecdsaWithSha512");j0("1.2.840.10040.4.3","dsaWithSha1");j0("2.16.840.1.101.3.4.3.2","dsaWithSha256");j0("1.3.14.3.2.7","desCBC");j0("1.3.14.3.2.26","sha1");j0("2.16.840.1.101.3.4.2.1","sha256");j0("2.16.840.1.101.3.4.2.2","sha384");j0("2.16.840.1.101.3.4.2.3","sha512");j0("1.2.840.113549.2.5","md5");j0("1.3.101.110","X25519");j0("1.3.101.111","X448");j0("1.3.101.112","Ed25519");j0("1.3.101.113","Ed448");j0("1.2.840.113549.1.7.1","data");j0("1.2.840.113549.1.7.2","signedData");j0("1.2.840.113549.1.7.3","envelopedData");j0("1.2.840.113549.1.7.4","signedAndEnvelopedData");j0("1.2.840.113549.1.7.5","digestedData");j0("1.2.840.113549.1.7.6","encryptedData");j0("1.2.840.113549.1.9.1","emailAddress");j0("1.2.840.113549.1.9.2","unstructuredName");j0("1.2.840.113549.1.9.3","contentType");j0("1.2.840.113549.1.9.4","messageDigest");j0("1.2.840.113549.1.9.5","signingTime");j0("1.2.840.113549.1.9.6","counterSignature");j0("1.2.840.113549.1.9.7","challengePassword");j0("1.2.840.113549.1.9.8","unstructuredAddress");j0("1.2.840.113549.1.9.14","extensionRequest");j0("1.2.840.113549.1.9.20","friendlyName");j0("1.2.840.113549.1.9.21","localKeyId");j0("1.2.840.113549.1.9.22.1","x509Certificate");j0("1.2.840.113549.1.12.10.1.1","keyBag");j0("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");j0("1.2.840.113549.1.12.10.1.3","certBag");j0("1.2.840.113549.1.12.10.1.4","crlBag");j0("1.2.840.113549.1.12.10.1.5","secretBag");j0("1.2.840.113549.1.12.10.1.6","safeContentsBag");j0("1.2.840.113549.1.5.13","pkcs5PBES2");j0("1.2.840.113549.1.5.12","pkcs5PBKDF2");j0("1.2.840.113549.2.7","hmacWithSha1");j0("1.2.840.113549.2.9","hmacWithSha256");j0("1.2.840.113549.2.10","hmacWithSha384");j0("1.2.840.113549.2.11","hmacWithSha512");j0("1.2.840.113549.3.7","3desCBC");j0("2.16.840.1.101.3.4.1.2","aesCBC128");j0("2.16.840.1.101.3.4.1.42","aesCBC256");j0("2.5.4.3","commonName");j0("2.5.4.5","serialName");j0("2.5.4.6","countryName");j0("2.5.4.7","localityName");j0("2.5.4.8","stateOrProvinceName");j0("2.5.4.10","organizationName");j0("2.5.4.11","organizationalUnitName");j0("2.5.4.15","businessCategory");j0("2.16.840.1.113730.1.1","nsCertType");j0("2.5.29.2","keyAttributes");j0("2.5.29.4","keyUsageRestriction");j0("2.5.29.6","subtreesConstraint");j0("2.5.29.9","subjectDirectoryAttributes");j0("2.5.29.14","subjectKeyIdentifier");j0("2.5.29.15","keyUsage");j0("2.5.29.16","privateKeyUsagePeriod");j0("2.5.29.17","subjectAltName");j0("2.5.29.18","issuerAltName");j0("2.5.29.19","basicConstraints");j0("2.5.29.20","cRLNumber");j0("2.5.29.21","cRLReason");j0("2.5.29.22","expirationDate");j0("2.5.29.23","instructionCode");j0("2.5.29.24","invalidityDate");j0("2.5.29.27","deltaCRLIndicator");j0("2.5.29.28","issuingDistributionPoint");j0("2.5.29.29","certificateIssuer");j0("2.5.29.30","nameConstraints");j0("2.5.29.31","cRLDistributionPoints");j0("2.5.29.32","certificatePolicies");j0("2.5.29.33","policyMappings");j0("2.5.29.35","authorityKeyIdentifier");j0("2.5.29.36","policyConstraints");j0("2.5.29.37","extKeyUsage");j0("2.5.29.46","freshestCRL");j0("2.5.29.54","inhibitAnyPolicy");j0("1.3.6.1.4.1.311.60.2.1.2","jurisdictionST");j0("1.3.6.1.4.1.311.60.2.1.3","jurisdictionC");j0("1.3.6.1.4.1.11129.2.4.2","timestampList");j0("1.3.6.1.5.5.7.1.1","authorityInfoAccess");j0("1.3.6.1.5.5.7.3.1","serverAuth");j0("1.3.6.1.5.5.7.3.2","clientAuth");j0("1.3.6.1.5.5.7.3.3","codeSigning");j0("1.3.6.1.5.5.7.3.4","emailProtection");j0("1.3.6.1.5.5.7.3.8","timeStamping");j0("1.3.6.1.5.5.7.48.1","authorityInfoAccessOcsp");j0("1.3.6.1.5.5.7.48.2","authorityInfoAccessIssuers")});var _Q=Z1((oe,kQ)=>{(function(W){var G=function(K){var T,C=new Float64Array(16);if(K)for(T=0;T<K.length;T++)C[T]=K[T];return C},X=function(){throw Error("no PRNG")},Y=new Uint8Array(16),J=new Uint8Array(32);J[0]=9;var Z=G(),V=G([1]),U=G([56129,1]),Q=G([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),N=G([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),q=G([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),A=G([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),H=G([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function I(K,T,C,z){K[T]=C>>24&255,K[T+1]=C>>16&255,K[T+2]=C>>8&255,K[T+3]=C&255,K[T+4]=z>>24&255,K[T+5]=z>>16&255,K[T+6]=z>>8&255,K[T+7]=z&255}function w(K,T,C,z,P){var n,t=0;for(n=0;n<P;n++)t|=K[T+n]^C[z+n];return(1&t-1>>>8)-1}function O(K,T,C,z){return w(K,T,C,z,16)}function M(K,T,C,z){return w(K,T,C,z,32)}function S(K,T,C,z){var P=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,t=C[4]&255|(C[5]&255)<<8|(C[6]&255)<<16|(C[7]&255)<<24,I0=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,s0=z[4]&255|(z[5]&255)<<8|(z[6]&255)<<16|(z[7]&255)<<24,u0=T[0]&255|(T[1]&255)<<8|(T[2]&255)<<16|(T[3]&255)<<24,o1=T[4]&255|(T[5]&255)<<8|(T[6]&255)<<16|(T[7]&255)<<24,p0=T[8]&255|(T[9]&255)<<8|(T[10]&255)<<16|(T[11]&255)<<24,q1=T[12]&255|(T[13]&255)<<8|(T[14]&255)<<16|(T[15]&255)<<24,A1=z[8]&255|(z[9]&255)<<8|(z[10]&255)<<16|(z[11]&255)<<24,P1=C[16]&255|(C[17]&255)<<8|(C[18]&255)<<16|(C[19]&255)<<24,C1=C[20]&255|(C[21]&255)<<8|(C[22]&255)<<16|(C[23]&255)<<24,z1=C[24]&255|(C[25]&255)<<8|(C[26]&255)<<16|(C[27]&255)<<24,K1=C[28]&255|(C[29]&255)<<8|(C[30]&255)<<16|(C[31]&255)<<24,I1=z[12]&255|(z[13]&255)<<8|(z[14]&255)<<16|(z[15]&255)<<24,o0=P,W1=n,h0=t,i0=I0,a0=M0,_0=s0,Z0=u0,U0=o1,K0=p0,z0=q1,w0=A1,D0=P1,U1=C1,L1=z1,$1=K1,B1=I1,y;for(var x1=0;x1<20;x1+=2)y=o0+U1|0,a0^=y<<7|y>>>25,y=a0+o0|0,K0^=y<<9|y>>>23,y=K0+a0|0,U1^=y<<13|y>>>19,y=U1+K0|0,o0^=y<<18|y>>>14,y=_0+W1|0,z0^=y<<7|y>>>25,y=z0+_0|0,L1^=y<<9|y>>>23,y=L1+z0|0,W1^=y<<13|y>>>19,y=W1+L1|0,_0^=y<<18|y>>>14,y=w0+Z0|0,$1^=y<<7|y>>>25,y=$1+w0|0,h0^=y<<9|y>>>23,y=h0+$1|0,Z0^=y<<13|y>>>19,y=Z0+h0|0,w0^=y<<18|y>>>14,y=B1+D0|0,i0^=y<<7|y>>>25,y=i0+B1|0,U0^=y<<9|y>>>23,y=U0+i0|0,D0^=y<<13|y>>>19,y=D0+U0|0,B1^=y<<18|y>>>14,y=o0+i0|0,W1^=y<<7|y>>>25,y=W1+o0|0,h0^=y<<9|y>>>23,y=h0+W1|0,i0^=y<<13|y>>>19,y=i0+h0|0,o0^=y<<18|y>>>14,y=_0+a0|0,Z0^=y<<7|y>>>25,y=Z0+_0|0,U0^=y<<9|y>>>23,y=U0+Z0|0,a0^=y<<13|y>>>19,y=a0+U0|0,_0^=y<<18|y>>>14,y=w0+z0|0,D0^=y<<7|y>>>25,y=D0+w0|0,K0^=y<<9|y>>>23,y=K0+D0|0,z0^=y<<13|y>>>19,y=z0+K0|0,w0^=y<<18|y>>>14,y=B1+$1|0,U1^=y<<7|y>>>25,y=U1+B1|0,L1^=y<<9|y>>>23,y=L1+U1|0,$1^=y<<13|y>>>19,y=$1+L1|0,B1^=y<<18|y>>>14;o0=o0+P|0,W1=W1+n|0,h0=h0+t|0,i0=i0+I0|0,a0=a0+M0|0,_0=_0+s0|0,Z0=Z0+u0|0,U0=U0+o1|0,K0=K0+p0|0,z0=z0+q1|0,w0=w0+A1|0,D0=D0+P1|0,U1=U1+C1|0,L1=L1+z1|0,$1=$1+K1|0,B1=B1+I1|0,K[0]=o0>>>0&255,K[1]=o0>>>8&255,K[2]=o0>>>16&255,K[3]=o0>>>24&255,K[4]=W1>>>0&255,K[5]=W1>>>8&255,K[6]=W1>>>16&255,K[7]=W1>>>24&255,K[8]=h0>>>0&255,K[9]=h0>>>8&255,K[10]=h0>>>16&255,K[11]=h0>>>24&255,K[12]=i0>>>0&255,K[13]=i0>>>8&255,K[14]=i0>>>16&255,K[15]=i0>>>24&255,K[16]=a0>>>0&255,K[17]=a0>>>8&255,K[18]=a0>>>16&255,K[19]=a0>>>24&255,K[20]=_0>>>0&255,K[21]=_0>>>8&255,K[22]=_0>>>16&255,K[23]=_0>>>24&255,K[24]=Z0>>>0&255,K[25]=Z0>>>8&255,K[26]=Z0>>>16&255,K[27]=Z0>>>24&255,K[28]=U0>>>0&255,K[29]=U0>>>8&255,K[30]=U0>>>16&255,K[31]=U0>>>24&255,K[32]=K0>>>0&255,K[33]=K0>>>8&255,K[34]=K0>>>16&255,K[35]=K0>>>24&255,K[36]=z0>>>0&255,K[37]=z0>>>8&255,K[38]=z0>>>16&255,K[39]=z0>>>24&255,K[40]=w0>>>0&255,K[41]=w0>>>8&255,K[42]=w0>>>16&255,K[43]=w0>>>24&255,K[44]=D0>>>0&255,K[45]=D0>>>8&255,K[46]=D0>>>16&255,K[47]=D0>>>24&255,K[48]=U1>>>0&255,K[49]=U1>>>8&255,K[50]=U1>>>16&255,K[51]=U1>>>24&255,K[52]=L1>>>0&255,K[53]=L1>>>8&255,K[54]=L1>>>16&255,K[55]=L1>>>24&255,K[56]=$1>>>0&255,K[57]=$1>>>8&255,K[58]=$1>>>16&255,K[59]=$1>>>24&255,K[60]=B1>>>0&255,K[61]=B1>>>8&255,K[62]=B1>>>16&255,K[63]=B1>>>24&255}function v(K,T,C,z){var P=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,t=C[4]&255|(C[5]&255)<<8|(C[6]&255)<<16|(C[7]&255)<<24,I0=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,s0=z[4]&255|(z[5]&255)<<8|(z[6]&255)<<16|(z[7]&255)<<24,u0=T[0]&255|(T[1]&255)<<8|(T[2]&255)<<16|(T[3]&255)<<24,o1=T[4]&255|(T[5]&255)<<8|(T[6]&255)<<16|(T[7]&255)<<24,p0=T[8]&255|(T[9]&255)<<8|(T[10]&255)<<16|(T[11]&255)<<24,q1=T[12]&255|(T[13]&255)<<8|(T[14]&255)<<16|(T[15]&255)<<24,A1=z[8]&255|(z[9]&255)<<8|(z[10]&255)<<16|(z[11]&255)<<24,P1=C[16]&255|(C[17]&255)<<8|(C[18]&255)<<16|(C[19]&255)<<24,C1=C[20]&255|(C[21]&255)<<8|(C[22]&255)<<16|(C[23]&255)<<24,z1=C[24]&255|(C[25]&255)<<8|(C[26]&255)<<16|(C[27]&255)<<24,K1=C[28]&255|(C[29]&255)<<8|(C[30]&255)<<16|(C[31]&255)<<24,I1=z[12]&255|(z[13]&255)<<8|(z[14]&255)<<16|(z[15]&255)<<24,o0=P,W1=n,h0=t,i0=I0,a0=M0,_0=s0,Z0=u0,U0=o1,K0=p0,z0=q1,w0=A1,D0=P1,U1=C1,L1=z1,$1=K1,B1=I1,y;for(var x1=0;x1<20;x1+=2)y=o0+U1|0,a0^=y<<7|y>>>25,y=a0+o0|0,K0^=y<<9|y>>>23,y=K0+a0|0,U1^=y<<13|y>>>19,y=U1+K0|0,o0^=y<<18|y>>>14,y=_0+W1|0,z0^=y<<7|y>>>25,y=z0+_0|0,L1^=y<<9|y>>>23,y=L1+z0|0,W1^=y<<13|y>>>19,y=W1+L1|0,_0^=y<<18|y>>>14,y=w0+Z0|0,$1^=y<<7|y>>>25,y=$1+w0|0,h0^=y<<9|y>>>23,y=h0+$1|0,Z0^=y<<13|y>>>19,y=Z0+h0|0,w0^=y<<18|y>>>14,y=B1+D0|0,i0^=y<<7|y>>>25,y=i0+B1|0,U0^=y<<9|y>>>23,y=U0+i0|0,D0^=y<<13|y>>>19,y=D0+U0|0,B1^=y<<18|y>>>14,y=o0+i0|0,W1^=y<<7|y>>>25,y=W1+o0|0,h0^=y<<9|y>>>23,y=h0+W1|0,i0^=y<<13|y>>>19,y=i0+h0|0,o0^=y<<18|y>>>14,y=_0+a0|0,Z0^=y<<7|y>>>25,y=Z0+_0|0,U0^=y<<9|y>>>23,y=U0+Z0|0,a0^=y<<13|y>>>19,y=a0+U0|0,_0^=y<<18|y>>>14,y=w0+z0|0,D0^=y<<7|y>>>25,y=D0+w0|0,K0^=y<<9|y>>>23,y=K0+D0|0,z0^=y<<13|y>>>19,y=z0+K0|0,w0^=y<<18|y>>>14,y=B1+$1|0,U1^=y<<7|y>>>25,y=U1+B1|0,L1^=y<<9|y>>>23,y=L1+U1|0,$1^=y<<13|y>>>19,y=$1+L1|0,B1^=y<<18|y>>>14;K[0]=o0>>>0&255,K[1]=o0>>>8&255,K[2]=o0>>>16&255,K[3]=o0>>>24&255,K[4]=_0>>>0&255,K[5]=_0>>>8&255,K[6]=_0>>>16&255,K[7]=_0>>>24&255,K[8]=w0>>>0&255,K[9]=w0>>>8&255,K[10]=w0>>>16&255,K[11]=w0>>>24&255,K[12]=B1>>>0&255,K[13]=B1>>>8&255,K[14]=B1>>>16&255,K[15]=B1>>>24&255,K[16]=Z0>>>0&255,K[17]=Z0>>>8&255,K[18]=Z0>>>16&255,K[19]=Z0>>>24&255,K[20]=U0>>>0&255,K[21]=U0>>>8&255,K[22]=U0>>>16&255,K[23]=U0>>>24&255,K[24]=K0>>>0&255,K[25]=K0>>>8&255,K[26]=K0>>>16&255,K[27]=K0>>>24&255,K[28]=z0>>>0&255,K[29]=z0>>>8&255,K[30]=z0>>>16&255,K[31]=z0>>>24&255}function f(K,T,C,z){S(K,T,C,z)}function g(K,T,C,z){v(K,T,C,z)}var c=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function l(K,T,C,z,P,n,t){var I0=new Uint8Array(16),M0=new Uint8Array(64),s0,u0;for(u0=0;u0<16;u0++)I0[u0]=0;for(u0=0;u0<8;u0++)I0[u0]=n[u0];while(P>=64){f(M0,I0,t,c);for(u0=0;u0<64;u0++)K[T+u0]=C[z+u0]^M0[u0];s0=1;for(u0=8;u0<16;u0++)s0=s0+(I0[u0]&255)|0,I0[u0]=s0&255,s0>>>=8;P-=64,T+=64,z+=64}if(P>0){f(M0,I0,t,c);for(u0=0;u0<P;u0++)K[T+u0]=C[z+u0]^M0[u0]}return 0}function h(K,T,C,z,P){var n=new Uint8Array(16),t=new Uint8Array(64),I0,M0;for(M0=0;M0<16;M0++)n[M0]=0;for(M0=0;M0<8;M0++)n[M0]=z[M0];while(C>=64){f(t,n,P,c);for(M0=0;M0<64;M0++)K[T+M0]=t[M0];I0=1;for(M0=8;M0<16;M0++)I0=I0+(n[M0]&255)|0,n[M0]=I0&255,I0>>>=8;C-=64,T+=64}if(C>0){f(t,n,P,c);for(M0=0;M0<C;M0++)K[T+M0]=t[M0]}return 0}function e(K,T,C,z,P){var n=new Uint8Array(32);g(n,z,P,c);var t=new Uint8Array(8);for(var I0=0;I0<8;I0++)t[I0]=z[I0+16];return h(K,T,C,t,n)}function m(K,T,C,z,P,n,t){var I0=new Uint8Array(32);g(I0,n,t,c);var M0=new Uint8Array(8);for(var s0=0;s0<8;s0++)M0[s0]=n[s0+16];return l(K,T,C,z,P,M0,I0)}var W0=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 T,C,z,P,n,t,I0,M0;T=K[0]&255|(K[1]&255)<<8,this.r[0]=T&8191,C=K[2]&255|(K[3]&255)<<8,this.r[1]=(T>>>13|C<<3)&8191,z=K[4]&255|(K[5]&255)<<8,this.r[2]=(C>>>10|z<<6)&7939,P=K[6]&255|(K[7]&255)<<8,this.r[3]=(z>>>7|P<<9)&8191,n=K[8]&255|(K[9]&255)<<8,this.r[4]=(P>>>4|n<<12)&255,this.r[5]=n>>>1&8190,t=K[10]&255|(K[11]&255)<<8,this.r[6]=(n>>>14|t<<2)&8191,I0=K[12]&255|(K[13]&255)<<8,this.r[7]=(t>>>11|I0<<5)&8065,M0=K[14]&255|(K[15]&255)<<8,this.r[8]=(I0>>>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};W0.prototype.blocks=function(K,T,C){var z=this.fin?0:2048,P,n,t,I0,M0,s0,u0,o1,p0,q1,A1,P1,C1,z1,K1,I1,o0,W1,h0,i0=this.h[0],a0=this.h[1],_0=this.h[2],Z0=this.h[3],U0=this.h[4],K0=this.h[5],z0=this.h[6],w0=this.h[7],D0=this.h[8],U1=this.h[9],L1=this.r[0],$1=this.r[1],B1=this.r[2],y=this.r[3],x1=this.r[4],n1=this.r[5],i1=this.r[6],S1=this.r[7],c1=this.r[8],l1=this.r[9];while(C>=16)P=K[T+0]&255|(K[T+1]&255)<<8,i0+=P&8191,n=K[T+2]&255|(K[T+3]&255)<<8,a0+=(P>>>13|n<<3)&8191,t=K[T+4]&255|(K[T+5]&255)<<8,_0+=(n>>>10|t<<6)&8191,I0=K[T+6]&255|(K[T+7]&255)<<8,Z0+=(t>>>7|I0<<9)&8191,M0=K[T+8]&255|(K[T+9]&255)<<8,U0+=(I0>>>4|M0<<12)&8191,K0+=M0>>>1&8191,s0=K[T+10]&255|(K[T+11]&255)<<8,z0+=(M0>>>14|s0<<2)&8191,u0=K[T+12]&255|(K[T+13]&255)<<8,w0+=(s0>>>11|u0<<5)&8191,o1=K[T+14]&255|(K[T+15]&255)<<8,D0+=(u0>>>8|o1<<8)&8191,U1+=o1>>>5|z,p0=0,q1=p0,q1+=i0*L1,q1+=a0*(5*l1),q1+=_0*(5*c1),q1+=Z0*(5*S1),q1+=U0*(5*i1),p0=q1>>>13,q1&=8191,q1+=K0*(5*n1),q1+=z0*(5*x1),q1+=w0*(5*y),q1+=D0*(5*B1),q1+=U1*(5*$1),p0+=q1>>>13,q1&=8191,A1=p0,A1+=i0*$1,A1+=a0*L1,A1+=_0*(5*l1),A1+=Z0*(5*c1),A1+=U0*(5*S1),p0=A1>>>13,A1&=8191,A1+=K0*(5*i1),A1+=z0*(5*n1),A1+=w0*(5*x1),A1+=D0*(5*y),A1+=U1*(5*B1),p0+=A1>>>13,A1&=8191,P1=p0,P1+=i0*B1,P1+=a0*$1,P1+=_0*L1,P1+=Z0*(5*l1),P1+=U0*(5*c1),p0=P1>>>13,P1&=8191,P1+=K0*(5*S1),P1+=z0*(5*i1),P1+=w0*(5*n1),P1+=D0*(5*x1),P1+=U1*(5*y),p0+=P1>>>13,P1&=8191,C1=p0,C1+=i0*y,C1+=a0*B1,C1+=_0*$1,C1+=Z0*L1,C1+=U0*(5*l1),p0=C1>>>13,C1&=8191,C1+=K0*(5*c1),C1+=z0*(5*S1),C1+=w0*(5*i1),C1+=D0*(5*n1),C1+=U1*(5*x1),p0+=C1>>>13,C1&=8191,z1=p0,z1+=i0*x1,z1+=a0*y,z1+=_0*B1,z1+=Z0*$1,z1+=U0*L1,p0=z1>>>13,z1&=8191,z1+=K0*(5*l1),z1+=z0*(5*c1),z1+=w0*(5*S1),z1+=D0*(5*i1),z1+=U1*(5*n1),p0+=z1>>>13,z1&=8191,K1=p0,K1+=i0*n1,K1+=a0*x1,K1+=_0*y,K1+=Z0*B1,K1+=U0*$1,p0=K1>>>13,K1&=8191,K1+=K0*L1,K1+=z0*(5*l1),K1+=w0*(5*c1),K1+=D0*(5*S1),K1+=U1*(5*i1),p0+=K1>>>13,K1&=8191,I1=p0,I1+=i0*i1,I1+=a0*n1,I1+=_0*x1,I1+=Z0*y,I1+=U0*B1,p0=I1>>>13,I1&=8191,I1+=K0*$1,I1+=z0*L1,I1+=w0*(5*l1),I1+=D0*(5*c1),I1+=U1*(5*S1),p0+=I1>>>13,I1&=8191,o0=p0,o0+=i0*S1,o0+=a0*i1,o0+=_0*n1,o0+=Z0*x1,o0+=U0*y,p0=o0>>>13,o0&=8191,o0+=K0*B1,o0+=z0*$1,o0+=w0*L1,o0+=D0*(5*l1),o0+=U1*(5*c1),p0+=o0>>>13,o0&=8191,W1=p0,W1+=i0*c1,W1+=a0*S1,W1+=_0*i1,W1+=Z0*n1,W1+=U0*x1,p0=W1>>>13,W1&=8191,W1+=K0*y,W1+=z0*B1,W1+=w0*$1,W1+=D0*L1,W1+=U1*(5*l1),p0+=W1>>>13,W1&=8191,h0=p0,h0+=i0*l1,h0+=a0*c1,h0+=_0*S1,h0+=Z0*i1,h0+=U0*n1,p0=h0>>>13,h0&=8191,h0+=K0*x1,h0+=z0*y,h0+=w0*B1,h0+=D0*$1,h0+=U1*L1,p0+=h0>>>13,h0&=8191,p0=(p0<<2)+p0|0,p0=p0+q1|0,q1=p0&8191,p0=p0>>>13,A1+=p0,i0=q1,a0=A1,_0=P1,Z0=C1,U0=z1,K0=K1,z0=I1,w0=o0,D0=W1,U1=h0,T+=16,C-=16;this.h[0]=i0,this.h[1]=a0,this.h[2]=_0,this.h[3]=Z0,this.h[4]=U0,this.h[5]=K0,this.h[6]=z0,this.h[7]=w0,this.h[8]=D0,this.h[9]=U1},W0.prototype.finish=function(K,T){var C=new Uint16Array(10),z,P,n,t;if(this.leftover){t=this.leftover,this.buffer[t++]=1;for(;t<16;t++)this.buffer[t]=0;this.fin=1,this.blocks(this.buffer,0,16)}z=this.h[1]>>>13,this.h[1]&=8191;for(t=2;t<10;t++)this.h[t]+=z,z=this.h[t]>>>13,this.h[t]&=8191;this.h[0]+=z*5,z=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=z,z=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=z,C[0]=this.h[0]+5,z=C[0]>>>13,C[0]&=8191;for(t=1;t<10;t++)C[t]=this.h[t]+z,z=C[t]>>>13,C[t]&=8191;C[9]-=8192,P=(z^1)-1;for(t=0;t<10;t++)C[t]&=P;P=~P;for(t=0;t<10;t++)this.h[t]=this.h[t]&P|C[t];this.h[0]=(this.h[0]|this.h[1]<<13)&65535,this.h[1]=(this.h[1]>>>3|this.h[2]<<10)&65535,this.h[2]=(this.h[2]>>>6|this.h[3]<<7)&65535,this.h[3]=(this.h[3]>>>9|this.h[4]<<4)&65535,this.h[4]=(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14)&65535,this.h[5]=(this.h[6]>>>2|this.h[7]<<11)&65535,this.h[6]=(this.h[7]>>>5|this.h[8]<<8)&65535,this.h[7]=(this.h[8]>>>8|this.h[9]<<5)&65535,n=this.h[0]+this.pad[0],this.h[0]=n&65535;for(t=1;t<8;t++)n=(this.h[t]+this.pad[t]|0)+(n>>>16)|0,this.h[t]=n&65535;K[T+0]=this.h[0]>>>0&255,K[T+1]=this.h[0]>>>8&255,K[T+2]=this.h[1]>>>0&255,K[T+3]=this.h[1]>>>8&255,K[T+4]=this.h[2]>>>0&255,K[T+5]=this.h[2]>>>8&255,K[T+6]=this.h[3]>>>0&255,K[T+7]=this.h[3]>>>8&255,K[T+8]=this.h[4]>>>0&255,K[T+9]=this.h[4]>>>8&255,K[T+10]=this.h[5]>>>0&255,K[T+11]=this.h[5]>>>8&255,K[T+12]=this.h[6]>>>0&255,K[T+13]=this.h[6]>>>8&255,K[T+14]=this.h[7]>>>0&255,K[T+15]=this.h[7]>>>8&255},W0.prototype.update=function(K,T,C){var z,P;if(this.leftover){if(P=16-this.leftover,P>C)P=C;for(z=0;z<P;z++)this.buffer[this.leftover+z]=K[T+z];if(C-=P,T+=P,this.leftover+=P,this.leftover<16)return;this.blocks(this.buffer,0,16),this.leftover=0}if(C>=16)P=C-C%16,this.blocks(K,T,P),T+=P,C-=P;if(C){for(z=0;z<C;z++)this.buffer[this.leftover+z]=K[T+z];this.leftover+=C}};function H0(K,T,C,z,P,n){var t=new W0(n);return t.update(C,z,P),t.finish(K,T),0}function k(K,T,C,z,P,n){var t=new Uint8Array(16);return H0(t,0,C,z,P,n),O(K,T,t,0)}function i(K,T,C,z,P){var n;if(C<32)return-1;m(K,0,T,0,C,z,P),H0(K,16,K,32,C-32,K);for(n=0;n<16;n++)K[n]=0;return 0}function B(K,T,C,z,P){var n,t=new Uint8Array(32);if(C<32)return-1;if(e(t,0,32,z,P),k(T,16,T,32,C-32,t)!==0)return-1;m(K,0,T,0,C,z,P);for(n=0;n<32;n++)K[n]=0;return 0}function L(K,T){var C;for(C=0;C<16;C++)K[C]=T[C]|0}function b(K){var T,C,z=1;for(T=0;T<16;T++)C=K[T]+z+65535,z=Math.floor(C/65536),K[T]=C-z*65536;K[0]+=z-1+37*(z-1)}function s(K,T,C){var z,P=~(C-1);for(var n=0;n<16;n++)z=P&(K[n]^T[n]),K[n]^=z,T[n]^=z}function o(K,T){var C,z,P,n=G(),t=G();for(C=0;C<16;C++)t[C]=T[C];b(t),b(t),b(t);for(z=0;z<2;z++){n[0]=t[0]-65517;for(C=1;C<15;C++)n[C]=t[C]-65535-(n[C-1]>>16&1),n[C-1]&=65535;n[15]=t[15]-32767-(n[14]>>16&1),P=n[15]>>16&1,n[14]&=65535,s(t,n,1-P)}for(C=0;C<16;C++)K[2*C]=t[C]&255,K[2*C+1]=t[C]>>8}function E(K,T){var C=new Uint8Array(32),z=new Uint8Array(32);return o(C,K),o(z,T),M(C,0,z,0)}function $(K){var T=new Uint8Array(32);return o(T,K),T[0]&1}function _(K,T){var C;for(C=0;C<16;C++)K[C]=T[2*C]+(T[2*C+1]<<8);K[15]&=32767}function x(K,T,C){for(var z=0;z<16;z++)K[z]=T[z]+C[z]}function R(K,T,C){for(var z=0;z<16;z++)K[z]=T[z]-C[z]}function u(K,T,C){var z,P,n=0,t=0,I0=0,M0=0,s0=0,u0=0,o1=0,p0=0,q1=0,A1=0,P1=0,C1=0,z1=0,K1=0,I1=0,o0=0,W1=0,h0=0,i0=0,a0=0,_0=0,Z0=0,U0=0,K0=0,z0=0,w0=0,D0=0,U1=0,L1=0,$1=0,B1=0,y=C[0],x1=C[1],n1=C[2],i1=C[3],S1=C[4],c1=C[5],l1=C[6],x8=C[7],G8=C[8],M8=C[9],R8=C[10],P8=C[11],b8=C[12],H9=C[13],A9=C[14],z9=C[15];z=T[0],n+=z*y,t+=z*x1,I0+=z*n1,M0+=z*i1,s0+=z*S1,u0+=z*c1,o1+=z*l1,p0+=z*x8,q1+=z*G8,A1+=z*M8,P1+=z*R8,C1+=z*P8,z1+=z*b8,K1+=z*H9,I1+=z*A9,o0+=z*z9,z=T[1],t+=z*y,I0+=z*x1,M0+=z*n1,s0+=z*i1,u0+=z*S1,o1+=z*c1,p0+=z*l1,q1+=z*x8,A1+=z*G8,P1+=z*M8,C1+=z*R8,z1+=z*P8,K1+=z*b8,I1+=z*H9,o0+=z*A9,W1+=z*z9,z=T[2],I0+=z*y,M0+=z*x1,s0+=z*n1,u0+=z*i1,o1+=z*S1,p0+=z*c1,q1+=z*l1,A1+=z*x8,P1+=z*G8,C1+=z*M8,z1+=z*R8,K1+=z*P8,I1+=z*b8,o0+=z*H9,W1+=z*A9,h0+=z*z9,z=T[3],M0+=z*y,s0+=z*x1,u0+=z*n1,o1+=z*i1,p0+=z*S1,q1+=z*c1,A1+=z*l1,P1+=z*x8,C1+=z*G8,z1+=z*M8,K1+=z*R8,I1+=z*P8,o0+=z*b8,W1+=z*H9,h0+=z*A9,i0+=z*z9,z=T[4],s0+=z*y,u0+=z*x1,o1+=z*n1,p0+=z*i1,q1+=z*S1,A1+=z*c1,P1+=z*l1,C1+=z*x8,z1+=z*G8,K1+=z*M8,I1+=z*R8,o0+=z*P8,W1+=z*b8,h0+=z*H9,i0+=z*A9,a0+=z*z9,z=T[5],u0+=z*y,o1+=z*x1,p0+=z*n1,q1+=z*i1,A1+=z*S1,P1+=z*c1,C1+=z*l1,z1+=z*x8,K1+=z*G8,I1+=z*M8,o0+=z*R8,W1+=z*P8,h0+=z*b8,i0+=z*H9,a0+=z*A9,_0+=z*z9,z=T[6],o1+=z*y,p0+=z*x1,q1+=z*n1,A1+=z*i1,P1+=z*S1,C1+=z*c1,z1+=z*l1,K1+=z*x8,I1+=z*G8,o0+=z*M8,W1+=z*R8,h0+=z*P8,i0+=z*b8,a0+=z*H9,_0+=z*A9,Z0+=z*z9,z=T[7],p0+=z*y,q1+=z*x1,A1+=z*n1,P1+=z*i1,C1+=z*S1,z1+=z*c1,K1+=z*l1,I1+=z*x8,o0+=z*G8,W1+=z*M8,h0+=z*R8,i0+=z*P8,a0+=z*b8,_0+=z*H9,Z0+=z*A9,U0+=z*z9,z=T[8],q1+=z*y,A1+=z*x1,P1+=z*n1,C1+=z*i1,z1+=z*S1,K1+=z*c1,I1+=z*l1,o0+=z*x8,W1+=z*G8,h0+=z*M8,i0+=z*R8,a0+=z*P8,_0+=z*b8,Z0+=z*H9,U0+=z*A9,K0+=z*z9,z=T[9],A1+=z*y,P1+=z*x1,C1+=z*n1,z1+=z*i1,K1+=z*S1,I1+=z*c1,o0+=z*l1,W1+=z*x8,h0+=z*G8,i0+=z*M8,a0+=z*R8,_0+=z*P8,Z0+=z*b8,U0+=z*H9,K0+=z*A9,z0+=z*z9,z=T[10],P1+=z*y,C1+=z*x1,z1+=z*n1,K1+=z*i1,I1+=z*S1,o0+=z*c1,W1+=z*l1,h0+=z*x8,i0+=z*G8,a0+=z*M8,_0+=z*R8,Z0+=z*P8,U0+=z*b8,K0+=z*H9,z0+=z*A9,w0+=z*z9,z=T[11],C1+=z*y,z1+=z*x1,K1+=z*n1,I1+=z*i1,o0+=z*S1,W1+=z*c1,h0+=z*l1,i0+=z*x8,a0+=z*G8,_0+=z*M8,Z0+=z*R8,U0+=z*P8,K0+=z*b8,z0+=z*H9,w0+=z*A9,D0+=z*z9,z=T[12],z1+=z*y,K1+=z*x1,I1+=z*n1,o0+=z*i1,W1+=z*S1,h0+=z*c1,i0+=z*l1,a0+=z*x8,_0+=z*G8,Z0+=z*M8,U0+=z*R8,K0+=z*P8,z0+=z*b8,w0+=z*H9,D0+=z*A9,U1+=z*z9,z=T[13],K1+=z*y,I1+=z*x1,o0+=z*n1,W1+=z*i1,h0+=z*S1,i0+=z*c1,a0+=z*l1,_0+=z*x8,Z0+=z*G8,U0+=z*M8,K0+=z*R8,z0+=z*P8,w0+=z*b8,D0+=z*H9,U1+=z*A9,L1+=z*z9,z=T[14],I1+=z*y,o0+=z*x1,W1+=z*n1,h0+=z*i1,i0+=z*S1,a0+=z*c1,_0+=z*l1,Z0+=z*x8,U0+=z*G8,K0+=z*M8,z0+=z*R8,w0+=z*P8,D0+=z*b8,U1+=z*H9,L1+=z*A9,$1+=z*z9,z=T[15],o0+=z*y,W1+=z*x1,h0+=z*n1,i0+=z*i1,a0+=z*S1,_0+=z*c1,Z0+=z*l1,U0+=z*x8,K0+=z*G8,z0+=z*M8,w0+=z*R8,D0+=z*P8,U1+=z*b8,L1+=z*H9,$1+=z*A9,B1+=z*z9,n+=38*W1,t+=38*h0,I0+=38*i0,M0+=38*a0,s0+=38*_0,u0+=38*Z0,o1+=38*U0,p0+=38*K0,q1+=38*z0,A1+=38*w0,P1+=38*D0,C1+=38*U1,z1+=38*L1,K1+=38*$1,I1+=38*B1,P=1,z=n+P+65535,P=Math.floor(z/65536),n=z-P*65536,z=t+P+65535,P=Math.floor(z/65536),t=z-P*65536,z=I0+P+65535,P=Math.floor(z/65536),I0=z-P*65536,z=M0+P+65535,P=Math.floor(z/65536),M0=z-P*65536,z=s0+P+65535,P=Math.floor(z/65536),s0=z-P*65536,z=u0+P+65535,P=Math.floor(z/65536),u0=z-P*65536,z=o1+P+65535,P=Math.floor(z/65536),o1=z-P*65536,z=p0+P+65535,P=Math.floor(z/65536),p0=z-P*65536,z=q1+P+65535,P=Math.floor(z/65536),q1=z-P*65536,z=A1+P+65535,P=Math.floor(z/65536),A1=z-P*65536,z=P1+P+65535,P=Math.floor(z/65536),P1=z-P*65536,z=C1+P+65535,P=Math.floor(z/65536),C1=z-P*65536,z=z1+P+65535,P=Math.floor(z/65536),z1=z-P*65536,z=K1+P+65535,P=Math.floor(z/65536),K1=z-P*65536,z=I1+P+65535,P=Math.floor(z/65536),I1=z-P*65536,z=o0+P+65535,P=Math.floor(z/65536),o0=z-P*65536,n+=P-1+37*(P-1),P=1,z=n+P+65535,P=Math.floor(z/65536),n=z-P*65536,z=t+P+65535,P=Math.floor(z/65536),t=z-P*65536,z=I0+P+65535,P=Math.floor(z/65536),I0=z-P*65536,z=M0+P+65535,P=Math.floor(z/65536),M0=z-P*65536,z=s0+P+65535,P=Math.floor(z/65536),s0=z-P*65536,z=u0+P+65535,P=Math.floor(z/65536),u0=z-P*65536,z=o1+P+65535,P=Math.floor(z/65536),o1=z-P*65536,z=p0+P+65535,P=Math.floor(z/65536),p0=z-P*65536,z=q1+P+65535,P=Math.floor(z/65536),q1=z-P*65536,z=A1+P+65535,P=Math.floor(z/65536),A1=z-P*65536,z=P1+P+65535,P=Math.floor(z/65536),P1=z-P*65536,z=C1+P+65535,P=Math.floor(z/65536),C1=z-P*65536,z=z1+P+65535,P=Math.floor(z/65536),z1=z-P*65536,z=K1+P+65535,P=Math.floor(z/65536),K1=z-P*65536,z=I1+P+65535,P=Math.floor(z/65536),I1=z-P*65536,z=o0+P+65535,P=Math.floor(z/65536),o0=z-P*65536,n+=P-1+37*(P-1),K[0]=n,K[1]=t,K[2]=I0,K[3]=M0,K[4]=s0,K[5]=u0,K[6]=o1,K[7]=p0,K[8]=q1,K[9]=A1,K[10]=P1,K[11]=C1,K[12]=z1,K[13]=K1,K[14]=I1,K[15]=o0}function J0(K,T){u(K,T,T)}function V0(K,T){var C=G(),z;for(z=0;z<16;z++)C[z]=T[z];for(z=253;z>=0;z--)if(J0(C,C),z!==2&&z!==4)u(C,C,T);for(z=0;z<16;z++)K[z]=C[z]}function Q0(K,T){var C=G(),z;for(z=0;z<16;z++)C[z]=T[z];for(z=250;z>=0;z--)if(J0(C,C),z!==1)u(C,C,T);for(z=0;z<16;z++)K[z]=C[z]}function B0(K,T,C){var z=new Uint8Array(32),P=new Float64Array(80),n,t,I0=G(),M0=G(),s0=G(),u0=G(),o1=G(),p0=G();for(t=0;t<31;t++)z[t]=T[t];z[31]=T[31]&127|64,z[0]&=248,_(P,C);for(t=0;t<16;t++)M0[t]=P[t],u0[t]=I0[t]=s0[t]=0;I0[0]=u0[0]=1;for(t=254;t>=0;--t)n=z[t>>>3]>>>(t&7)&1,s(I0,M0,n),s(s0,u0,n),x(o1,I0,s0),R(I0,I0,s0),x(s0,M0,u0),R(M0,M0,u0),J0(u0,o1),J0(p0,I0),u(I0,s0,I0),u(s0,M0,o1),x(o1,I0,s0),R(I0,I0,s0),J0(M0,I0),R(s0,u0,p0),u(I0,s0,U),x(I0,I0,u0),u(s0,s0,I0),u(I0,u0,p0),u(u0,M0,P),J0(M0,o1),s(I0,M0,n),s(s0,u0,n);for(t=0;t<16;t++)P[t+16]=I0[t],P[t+32]=s0[t],P[t+48]=M0[t],P[t+64]=u0[t];var q1=P.subarray(32),A1=P.subarray(16);return V0(q1,q1),u(A1,A1,q1),o(K,A1),0}function v0(K,T){return B0(K,T,J)}function Q1(K,T){return X(T,32),v0(K,T)}function u1(K,T,C){var z=new Uint8Array(32);return B0(z,C,T),g(K,Y,z,c)}var k0=i,h1=B;function E1(K,T,C,z,P,n){var t=new Uint8Array(32);return u1(t,P,n),k0(K,T,C,z,t)}function p(K,T,C,z,P,n){var t=new Uint8Array(32);return u1(t,P,n),h1(K,T,C,z,t)}var X0=[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 A0(K,T,C,z){var P=new Int32Array(16),n=new Int32Array(16),t,I0,M0,s0,u0,o1,p0,q1,A1,P1,C1,z1,K1,I1,o0,W1,h0,i0,a0,_0,Z0,U0,K0,z0,w0,D0,U1=K[0],L1=K[1],$1=K[2],B1=K[3],y=K[4],x1=K[5],n1=K[6],i1=K[7],S1=T[0],c1=T[1],l1=T[2],x8=T[3],G8=T[4],M8=T[5],R8=T[6],P8=T[7],b8=0;while(z>=128){for(a0=0;a0<16;a0++)_0=8*a0+b8,P[a0]=C[_0+0]<<24|C[_0+1]<<16|C[_0+2]<<8|C[_0+3],n[a0]=C[_0+4]<<24|C[_0+5]<<16|C[_0+6]<<8|C[_0+7];for(a0=0;a0<80;a0++)if(t=U1,I0=L1,M0=$1,s0=B1,u0=y,o1=x1,p0=n1,q1=i1,A1=S1,P1=c1,C1=l1,z1=x8,K1=G8,I1=M8,o0=R8,W1=P8,Z0=i1,U0=P8,K0=U0&65535,z0=U0>>>16,w0=Z0&65535,D0=Z0>>>16,Z0=(y>>>14|G8<<18)^(y>>>18|G8<<14)^(G8>>>9|y<<23),U0=(G8>>>14|y<<18)^(G8>>>18|y<<14)^(y>>>9|G8<<23),K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,Z0=y&x1^~y&n1,U0=G8&M8^~G8&R8,K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,Z0=X0[a0*2],U0=X0[a0*2+1],K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,Z0=P[a0%16],U0=n[a0%16],K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,z0+=K0>>>16,w0+=z0>>>16,D0+=w0>>>16,h0=w0&65535|D0<<16,i0=K0&65535|z0<<16,Z0=h0,U0=i0,K0=U0&65535,z0=U0>>>16,w0=Z0&65535,D0=Z0>>>16,Z0=(U1>>>28|S1<<4)^(S1>>>2|U1<<30)^(S1>>>7|U1<<25),U0=(S1>>>28|U1<<4)^(U1>>>2|S1<<30)^(U1>>>7|S1<<25),K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,Z0=U1&L1^U1&$1^L1&$1,U0=S1&c1^S1&l1^c1&l1,K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,z0+=K0>>>16,w0+=z0>>>16,D0+=w0>>>16,q1=w0&65535|D0<<16,W1=K0&65535|z0<<16,Z0=s0,U0=z1,K0=U0&65535,z0=U0>>>16,w0=Z0&65535,D0=Z0>>>16,Z0=h0,U0=i0,K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,z0+=K0>>>16,w0+=z0>>>16,D0+=w0>>>16,s0=w0&65535|D0<<16,z1=K0&65535|z0<<16,L1=t,$1=I0,B1=M0,y=s0,x1=u0,n1=o1,i1=p0,U1=q1,c1=A1,l1=P1,x8=C1,G8=z1,M8=K1,R8=I1,P8=o0,S1=W1,a0%16===15)for(_0=0;_0<16;_0++)Z0=P[_0],U0=n[_0],K0=U0&65535,z0=U0>>>16,w0=Z0&65535,D0=Z0>>>16,Z0=P[(_0+9)%16],U0=n[(_0+9)%16],K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,h0=P[(_0+1)%16],i0=n[(_0+1)%16],Z0=(h0>>>1|i0<<31)^(h0>>>8|i0<<24)^h0>>>7,U0=(i0>>>1|h0<<31)^(i0>>>8|h0<<24)^(i0>>>7|h0<<25),K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,h0=P[(_0+14)%16],i0=n[(_0+14)%16],Z0=(h0>>>19|i0<<13)^(i0>>>29|h0<<3)^h0>>>6,U0=(i0>>>19|h0<<13)^(h0>>>29|i0<<3)^(i0>>>6|h0<<26),K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,z0+=K0>>>16,w0+=z0>>>16,D0+=w0>>>16,P[_0]=w0&65535|D0<<16,n[_0]=K0&65535|z0<<16;Z0=U1,U0=S1,K0=U0&65535,z0=U0>>>16,w0=Z0&65535,D0=Z0>>>16,Z0=K[0],U0=T[0],K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,z0+=K0>>>16,w0+=z0>>>16,D0+=w0>>>16,K[0]=U1=w0&65535|D0<<16,T[0]=S1=K0&65535|z0<<16,Z0=L1,U0=c1,K0=U0&65535,z0=U0>>>16,w0=Z0&65535,D0=Z0>>>16,Z0=K[1],U0=T[1],K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,z0+=K0>>>16,w0+=z0>>>16,D0+=w0>>>16,K[1]=L1=w0&65535|D0<<16,T[1]=c1=K0&65535|z0<<16,Z0=$1,U0=l1,K0=U0&65535,z0=U0>>>16,w0=Z0&65535,D0=Z0>>>16,Z0=K[2],U0=T[2],K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,z0+=K0>>>16,w0+=z0>>>16,D0+=w0>>>16,K[2]=$1=w0&65535|D0<<16,T[2]=l1=K0&65535|z0<<16,Z0=B1,U0=x8,K0=U0&65535,z0=U0>>>16,w0=Z0&65535,D0=Z0>>>16,Z0=K[3],U0=T[3],K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,z0+=K0>>>16,w0+=z0>>>16,D0+=w0>>>16,K[3]=B1=w0&65535|D0<<16,T[3]=x8=K0&65535|z0<<16,Z0=y,U0=G8,K0=U0&65535,z0=U0>>>16,w0=Z0&65535,D0=Z0>>>16,Z0=K[4],U0=T[4],K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,z0+=K0>>>16,w0+=z0>>>16,D0+=w0>>>16,K[4]=y=w0&65535|D0<<16,T[4]=G8=K0&65535|z0<<16,Z0=x1,U0=M8,K0=U0&65535,z0=U0>>>16,w0=Z0&65535,D0=Z0>>>16,Z0=K[5],U0=T[5],K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,z0+=K0>>>16,w0+=z0>>>16,D0+=w0>>>16,K[5]=x1=w0&65535|D0<<16,T[5]=M8=K0&65535|z0<<16,Z0=n1,U0=R8,K0=U0&65535,z0=U0>>>16,w0=Z0&65535,D0=Z0>>>16,Z0=K[6],U0=T[6],K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,z0+=K0>>>16,w0+=z0>>>16,D0+=w0>>>16,K[6]=n1=w0&65535|D0<<16,T[6]=R8=K0&65535|z0<<16,Z0=i1,U0=P8,K0=U0&65535,z0=U0>>>16,w0=Z0&65535,D0=Z0>>>16,Z0=K[7],U0=T[7],K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,z0+=K0>>>16,w0+=z0>>>16,D0+=w0>>>16,K[7]=i1=w0&65535|D0<<16,T[7]=P8=K0&65535|z0<<16,b8+=128,z-=128}return z}function F0(K,T,C){var z=new Int32Array(8),P=new Int32Array(8),n=new Uint8Array(256),t,I0=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,P[0]=4089235720,P[1]=2227873595,P[2]=4271175723,P[3]=1595750129,P[4]=2917565137,P[5]=725511199,P[6]=4215389547,P[7]=327033209,A0(z,P,T,C),C%=128;for(t=0;t<C;t++)n[t]=T[I0-C+t];n[C]=128,C=256-128*(C<112?1:0),n[C-9]=0,I(n,C-8,I0/536870912|0,I0<<3),A0(z,P,n,C);for(t=0;t<8;t++)I(K,8*t,z[t],P[t]);return 0}function j1(K,T){var C=G(),z=G(),P=G(),n=G(),t=G(),I0=G(),M0=G(),s0=G(),u0=G();R(C,K[1],K[0]),R(u0,T[1],T[0]),u(C,C,u0),x(z,K[0],K[1]),x(u0,T[0],T[1]),u(z,z,u0),u(P,K[3],T[3]),u(P,P,N),u(n,K[2],T[2]),x(n,n,n),R(t,z,C),R(I0,n,P),x(M0,n,P),x(s0,z,C),u(K[0],t,I0),u(K[1],s0,M0),u(K[2],M0,I0),u(K[3],t,s0)}function l0(K,T,C){var z;for(z=0;z<4;z++)s(K[z],T[z],C)}function N0(K,T){var C=G(),z=G(),P=G();V0(P,T[2]),u(C,T[0],P),u(z,T[1],P),o(K,z),K[31]^=$(C)<<7}function E0(K,T,C){var z,P;L(K[0],Z),L(K[1],V),L(K[2],V),L(K[3],Z);for(P=255;P>=0;--P)z=C[P/8|0]>>(P&7)&1,l0(K,T,z),j1(T,K),j1(K,K),l0(K,T,z)}function R1(K,T){var C=[G(),G(),G(),G()];L(C[0],q),L(C[1],A),L(C[2],V),u(C[3],q,A),E0(K,C,T)}function F1(K,T,C){var z=new Uint8Array(64),P=[G(),G(),G(),G()],n;if(!C)X(T,32);F0(z,T,32),z[0]&=248,z[31]&=127,z[31]|=64,R1(P,z),N0(K,P);for(n=0;n<32;n++)T[n+32]=K[n];return 0}var v1=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,T){var C,z,P,n;for(z=63;z>=32;--z){C=0;for(P=z-32,n=z-12;P<n;++P)T[P]+=C-16*T[z]*v1[P-(z-32)],C=Math.floor((T[P]+128)/256),T[P]-=C*256;T[P]+=C,T[z]=0}C=0;for(P=0;P<32;P++)T[P]+=C-(T[31]>>4)*v1[P],C=T[P]>>8,T[P]&=255;for(P=0;P<32;P++)T[P]-=C*v1[P];for(z=0;z<32;z++)T[z+1]+=T[z]>>8,K[z]=T[z]&255}function g0(K){var T=new Float64Array(64),C;for(C=0;C<64;C++)T[C]=K[C];for(C=0;C<64;C++)K[C]=0;f0(K,T)}function N1(K,T,C,z){var P=new Uint8Array(64),n=new Uint8Array(64),t=new Uint8Array(64),I0,M0,s0=new Float64Array(64),u0=[G(),G(),G(),G()];F0(P,z,32),P[0]&=248,P[31]&=127,P[31]|=64;var o1=C+64;for(I0=0;I0<C;I0++)K[64+I0]=T[I0];for(I0=0;I0<32;I0++)K[32+I0]=P[32+I0];F0(t,K.subarray(32),C+32),g0(t),R1(u0,t),N0(K,u0);for(I0=32;I0<64;I0++)K[I0]=z[I0];F0(n,K,C+64),g0(n);for(I0=0;I0<64;I0++)s0[I0]=0;for(I0=0;I0<32;I0++)s0[I0]=t[I0];for(I0=0;I0<32;I0++)for(M0=0;M0<32;M0++)s0[I0+M0]+=n[I0]*P[M0];return f0(K.subarray(32),s0),o1}function Y8(K,T){var C=G(),z=G(),P=G(),n=G(),t=G(),I0=G(),M0=G();if(L(K[2],V),_(K[1],T),J0(P,K[1]),u(n,P,Q),R(P,P,K[2]),x(n,K[2],n),J0(t,n),J0(I0,t),u(M0,I0,t),u(C,M0,P),u(C,C,n),Q0(C,C),u(C,C,P),u(C,C,n),u(C,C,n),u(K[0],C,n),J0(z,K[0]),u(z,z,n),E(z,P))u(K[0],K[0],H);if(J0(z,K[0]),u(z,z,n),E(z,P))return-1;if($(K[0])===T[31]>>7)R(K[0],Z,K[0]);return u(K[3],K[0],K[1]),0}function q9(K,T,C,z){var P,n=new Uint8Array(32),t=new Uint8Array(64),I0=[G(),G(),G(),G()],M0=[G(),G(),G(),G()];if(C<64)return-1;if(Y8(M0,z))return-1;for(P=0;P<C;P++)K[P]=T[P];for(P=0;P<32;P++)K[P+32]=z[P];if(F0(t,K,C),g0(t),E0(I0,M0,t),R1(M0,T.subarray(32)),j1(I0,M0),N0(n,I0),C-=64,M(T,0,n,0)){for(P=0;P<C;P++)K[P]=0;return-1}for(P=0;P<C;P++)K[P]=T[P+64];return C}var d=32,G0=24,q0=32,T0=16,t0=32,N8=32,z8=32,D1=32,S0=32,b0=G0,d0=q0,r0=T0,H1=64,d1=32,J8=64,S9=32,pG=64;W.lowlevel={crypto_core_hsalsa20:g,crypto_stream_xor:m,crypto_stream:e,crypto_stream_salsa20_xor:l,crypto_stream_salsa20:h,crypto_onetimeauth:H0,crypto_onetimeauth_verify:k,crypto_verify_16:O,crypto_verify_32:M,crypto_secretbox:i,crypto_secretbox_open:B,crypto_scalarmult:B0,crypto_scalarmult_base:v0,crypto_box_beforenm:u1,crypto_box_afternm:k0,crypto_box:E1,crypto_box_open:p,crypto_box_keypair:Q1,crypto_hash:F0,crypto_sign:N1,crypto_sign_keypair:F1,crypto_sign_open:q9,crypto_secretbox_KEYBYTES:d,crypto_secretbox_NONCEBYTES:G0,crypto_secretbox_ZEROBYTES:q0,crypto_secretbox_BOXZEROBYTES:T0,crypto_scalarmult_BYTES:t0,crypto_scalarmult_SCALARBYTES:N8,crypto_box_PUBLICKEYBYTES:z8,crypto_box_SECRETKEYBYTES:D1,crypto_box_BEFORENMBYTES:S0,crypto_box_NONCEBYTES:b0,crypto_box_ZEROBYTES:d0,crypto_box_BOXZEROBYTES:r0,crypto_sign_BYTES:H1,crypto_sign_PUBLICKEYBYTES:d1,crypto_sign_SECRETKEYBYTES:J8,crypto_sign_SEEDBYTES:S9,crypto_hash_BYTES:pG,gf:G,D:Q,L:v1,pack25519:o,unpack25519:_,M:u,A:x,S:J0,Z:R,pow2523:Q0,add:j1,set25519:L,modL:f0,scalarmult:E0,scalarbase:R1};function yU(K,T){if(K.length!==d)throw Error("bad key size");if(T.length!==G0)throw Error("bad nonce size")}function qA(K,T){if(K.length!==z8)throw Error("bad public key size");if(T.length!==D1)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 QD(K){for(var T=0;T<K.length;T++)K[T]=0}W.randomBytes=function(K){var T=new Uint8Array(K);return X(T,K),T},W.secretbox=function(K,T,C){W5(K,T,C),yU(C,T);var z=new Uint8Array(q0+K.length),P=new Uint8Array(z.length);for(var n=0;n<K.length;n++)z[n+q0]=K[n];return i(P,z,z.length,T,C),P.subarray(T0)},W.secretbox.open=function(K,T,C){W5(K,T,C),yU(C,T);var z=new Uint8Array(T0+K.length),P=new Uint8Array(z.length);for(var n=0;n<K.length;n++)z[n+T0]=K[n];if(z.length<32)return null;if(B(P,z,z.length,T,C)!==0)return null;return P.subarray(q0)},W.secretbox.keyLength=d,W.secretbox.nonceLength=G0,W.secretbox.overheadLength=T0,W.scalarMult=function(K,T){if(W5(K,T),K.length!==N8)throw Error("bad n size");if(T.length!==t0)throw Error("bad p size");var C=new Uint8Array(t0);return B0(C,K,T),C},W.scalarMult.base=function(K){if(W5(K),K.length!==N8)throw Error("bad n size");var T=new Uint8Array(t0);return v0(T,K),T},W.scalarMult.scalarLength=N8,W.scalarMult.groupElementLength=t0,W.box=function(K,T,C,z){var P=W.box.before(C,z);return W.secretbox(K,T,P)},W.box.before=function(K,T){W5(K,T),qA(K,T);var C=new Uint8Array(S0);return u1(C,K,T),C},W.box.after=W.secretbox,W.box.open=function(K,T,C,z){var P=W.box.before(C,z);return W.secretbox.open(K,T,P)},W.box.open.after=W.secretbox.open,W.box.keyPair=function(){var K=new Uint8Array(z8),T=new Uint8Array(D1);return Q1(K,T),{publicKey:K,secretKey:T}},W.box.keyPair.fromSecretKey=function(K){if(W5(K),K.length!==D1)throw Error("bad secret key size");var T=new Uint8Array(z8);return v0(T,K),{publicKey:T,secretKey:new Uint8Array(K)}},W.box.publicKeyLength=z8,W.box.secretKeyLength=D1,W.box.sharedKeyLength=S0,W.box.nonceLength=b0,W.box.overheadLength=W.secretbox.overheadLength,W.sign=function(K,T){if(W5(K,T),T.length!==J8)throw Error("bad secret key size");var C=new Uint8Array(H1+K.length);return N1(C,K,K.length,T),C},W.sign.open=function(K,T){if(W5(K,T),T.length!==d1)throw Error("bad public key size");var C=new Uint8Array(K.length),z=q9(C,K,K.length,T);if(z<0)return null;var P=new Uint8Array(z);for(var n=0;n<P.length;n++)P[n]=C[n];return P},W.sign.detached=function(K,T){var C=W.sign(K,T),z=new Uint8Array(H1);for(var P=0;P<z.length;P++)z[P]=C[P];return z},W.sign.detached.verify=function(K,T,C){if(W5(K,T,C),T.length!==H1)throw Error("bad signature size");if(C.length!==d1)throw Error("bad public key size");var z=new Uint8Array(H1+K.length),P=new Uint8Array(H1+K.length),n;for(n=0;n<H1;n++)z[n]=T[n];for(n=0;n<K.length;n++)z[n+H1]=K[n];return q9(P,z,z.length,C)>=0},W.sign.keyPair=function(){var K=new Uint8Array(d1),T=new Uint8Array(J8);return F1(K,T),{publicKey:K,secretKey:T}},W.sign.keyPair.fromSecretKey=function(K){if(W5(K),K.length!==J8)throw Error("bad secret key size");var T=new Uint8Array(d1);for(var C=0;C<T.length;C++)T[C]=K[32+C];return{publicKey:T,secretKey:new Uint8Array(K)}},W.sign.keyPair.fromSeed=function(K){if(W5(K),K.length!==S9)throw Error("bad seed size");var T=new Uint8Array(d1),C=new Uint8Array(J8);for(var z=0;z<32;z++)C[z]=K[z];return F1(T,C,!0),{publicKey:T,secretKey:C}},W.sign.publicKeyLength=d1,W.sign.secretKeyLength=J8,W.sign.seedLength=S9,W.sign.signatureLength=H1,W.hash=function(K){W5(K);var T=new Uint8Array(pG);return F0(T,K,K.length),T},W.hash.hashLength=pG,W.verify=function(K,T){if(W5(K,T),K.length===0||T.length===0)return!1;if(K.length!==T.length)return!1;return w(K,0,T,0,K.length)===0?!0:!1},W.setPRNG=function(K){X=K},function(){var K=typeof self<"u"?self.crypto||self.msCrypto:null;if(K&&K.getRandomValues){var T=65536;W.setPRNG(function(C,z){var P,n=new Uint8Array(z);for(P=0;P<z;P+=T)K.getRandomValues(n.subarray(P,P+Math.min(z-P,T)));for(P=0;P<z;P++)C[P]=n[P];QD(n)})}else if(K=k8("crypto"),K&&K.randomBytes)W.setPRNG(function(C,z){var P,n=K.randomBytes(z);for(P=0;P<z;P++)C[P]=n[P];QD(n)})}()})(typeof kQ<"u"&&oe?oe:self.nacl=self.nacl||{})});var Ez=Z1((HM)=>{Object.defineProperty(HM,"__esModule",{value:!0});class qM{constructor(W,G=0,X=0){this.start=G,this.end=X>G?X:G,this.buf=W}get length(){return this.buf.length}reset(W=0,G=0){if(this.start=W,G>=this.start)this.end=G;else if(this.end<this.start)this.end=this.start;return this}walk(W){return this.start=this.end,this.end+=W,this}mustHas(W,G="Too few bytes to parse."){let X=this.end+W;if(X>this.buf.length){let Y=Error(G);throw Y.available=this.buf.length,Y.requested=X,Y}return this.walk(0),this}mustWalk(W,G){return this.mustHas(W,G),this.walk(W),this}}HM.BufferVisitor=qM});var wM=Z1((IM)=>{Object.defineProperty(IM,"__esModule",{value:!0});var AM=k8("util"),zM=64,Fz="-----BEGIN ",Sz="-----END ",mJ="-----",$z="Proc-Type";class xz{static parse(W){let G=[],X=W.toString("utf8").split(`
7
+ `).map((G)=>G.trim()).join(" ")};YM.O=function(W){return this.inspectOpts.colors=this.useColors,FQ.inspect(W,this.inspectOpts)}});var UM=Z1((le,Bz)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)Bz.exports=XM();else Bz.exports=VM()});var xQ=Z1((NM)=>{Object.defineProperty(NM,"__esModule",{value:!0});var Kb=k8("net");function Ob(W){switch(Kb.isIP(W)){case 4:return Buffer.from(W.split(".").map((J)=>parseInt(J,10)));case 6:let G=W.split(":"),X=Buffer.alloc(16),Y=0;if(G[G.length-1]==="")G[G.length-1]="0";for(let J=0;J<G.length;J++){if(G[J]===""){if(J+1<G.length&&G[J+1]!=="")Y=16-(G.length-J-1)*2;continue}X.writeUInt16BE(parseInt(G[J],16),Y),Y+=2}return X;default:return null}}NM.bytesFromIP=Ob;function Db(W){switch(W.length){case 4:return[W[0],W[1],W[2],W[3]].join(".");case 16:let G=[],X=-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++,X===-1)X=G.length;if(Y>Z)Z=Y,J=X}else X=-1,Y=0;G.push(U.toString(16))}if(Z>0){let V="",U=G.slice(J+Z);if(G.length=J,G.length===0)V+=":";if(U.length===0)V+=":";G.push(V,...U)}return G.join(":");default:return""}}NM.bytesToIP=Db;var A6=Object.create(null),QM=/^[0-9.]+$/;function Cb(W){if(QM.test(W)&&A6[W]!=="")return W;return A6[W]==null?"":A6[W]}NM.getOID=Cb;function Tb(W){if(!QM.test(W)&&A6[W]!=="")return W;return A6[W]==null?W:A6[W]}NM.getOIDName=Tb;function j0(W,G){A6[W]=G,A6[G]=W}j0("1.2.840.113549.1.1.1","rsaEncryption");j0("1.2.840.113549.1.1.4","md5WithRsaEncryption");j0("1.2.840.113549.1.1.5","sha1WithRsaEncryption");j0("1.2.840.113549.1.1.8","mgf1");j0("1.2.840.113549.1.1.10","RSASSA-PSS");j0("1.2.840.113549.1.1.11","sha256WithRsaEncryption");j0("1.2.840.113549.1.1.12","sha384WithRsaEncryption");j0("1.2.840.113549.1.1.13","sha512WithRsaEncryption");j0("1.2.840.10045.2.1","ecEncryption");j0("1.2.840.10045.4.1","ecdsaWithSha1");j0("1.2.840.10045.4.3.2","ecdsaWithSha256");j0("1.2.840.10045.4.3.3","ecdsaWithSha384");j0("1.2.840.10045.4.3.4","ecdsaWithSha512");j0("1.2.840.10040.4.3","dsaWithSha1");j0("2.16.840.1.101.3.4.3.2","dsaWithSha256");j0("1.3.14.3.2.7","desCBC");j0("1.3.14.3.2.26","sha1");j0("2.16.840.1.101.3.4.2.1","sha256");j0("2.16.840.1.101.3.4.2.2","sha384");j0("2.16.840.1.101.3.4.2.3","sha512");j0("1.2.840.113549.2.5","md5");j0("1.3.101.110","X25519");j0("1.3.101.111","X448");j0("1.3.101.112","Ed25519");j0("1.3.101.113","Ed448");j0("1.2.840.113549.1.7.1","data");j0("1.2.840.113549.1.7.2","signedData");j0("1.2.840.113549.1.7.3","envelopedData");j0("1.2.840.113549.1.7.4","signedAndEnvelopedData");j0("1.2.840.113549.1.7.5","digestedData");j0("1.2.840.113549.1.7.6","encryptedData");j0("1.2.840.113549.1.9.1","emailAddress");j0("1.2.840.113549.1.9.2","unstructuredName");j0("1.2.840.113549.1.9.3","contentType");j0("1.2.840.113549.1.9.4","messageDigest");j0("1.2.840.113549.1.9.5","signingTime");j0("1.2.840.113549.1.9.6","counterSignature");j0("1.2.840.113549.1.9.7","challengePassword");j0("1.2.840.113549.1.9.8","unstructuredAddress");j0("1.2.840.113549.1.9.14","extensionRequest");j0("1.2.840.113549.1.9.20","friendlyName");j0("1.2.840.113549.1.9.21","localKeyId");j0("1.2.840.113549.1.9.22.1","x509Certificate");j0("1.2.840.113549.1.12.10.1.1","keyBag");j0("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");j0("1.2.840.113549.1.12.10.1.3","certBag");j0("1.2.840.113549.1.12.10.1.4","crlBag");j0("1.2.840.113549.1.12.10.1.5","secretBag");j0("1.2.840.113549.1.12.10.1.6","safeContentsBag");j0("1.2.840.113549.1.5.13","pkcs5PBES2");j0("1.2.840.113549.1.5.12","pkcs5PBKDF2");j0("1.2.840.113549.2.7","hmacWithSha1");j0("1.2.840.113549.2.9","hmacWithSha256");j0("1.2.840.113549.2.10","hmacWithSha384");j0("1.2.840.113549.2.11","hmacWithSha512");j0("1.2.840.113549.3.7","3desCBC");j0("2.16.840.1.101.3.4.1.2","aesCBC128");j0("2.16.840.1.101.3.4.1.42","aesCBC256");j0("2.5.4.3","commonName");j0("2.5.4.5","serialName");j0("2.5.4.6","countryName");j0("2.5.4.7","localityName");j0("2.5.4.8","stateOrProvinceName");j0("2.5.4.10","organizationName");j0("2.5.4.11","organizationalUnitName");j0("2.5.4.15","businessCategory");j0("2.16.840.1.113730.1.1","nsCertType");j0("2.5.29.2","keyAttributes");j0("2.5.29.4","keyUsageRestriction");j0("2.5.29.6","subtreesConstraint");j0("2.5.29.9","subjectDirectoryAttributes");j0("2.5.29.14","subjectKeyIdentifier");j0("2.5.29.15","keyUsage");j0("2.5.29.16","privateKeyUsagePeriod");j0("2.5.29.17","subjectAltName");j0("2.5.29.18","issuerAltName");j0("2.5.29.19","basicConstraints");j0("2.5.29.20","cRLNumber");j0("2.5.29.21","cRLReason");j0("2.5.29.22","expirationDate");j0("2.5.29.23","instructionCode");j0("2.5.29.24","invalidityDate");j0("2.5.29.27","deltaCRLIndicator");j0("2.5.29.28","issuingDistributionPoint");j0("2.5.29.29","certificateIssuer");j0("2.5.29.30","nameConstraints");j0("2.5.29.31","cRLDistributionPoints");j0("2.5.29.32","certificatePolicies");j0("2.5.29.33","policyMappings");j0("2.5.29.35","authorityKeyIdentifier");j0("2.5.29.36","policyConstraints");j0("2.5.29.37","extKeyUsage");j0("2.5.29.46","freshestCRL");j0("2.5.29.54","inhibitAnyPolicy");j0("1.3.6.1.4.1.311.60.2.1.2","jurisdictionST");j0("1.3.6.1.4.1.311.60.2.1.3","jurisdictionC");j0("1.3.6.1.4.1.11129.2.4.2","timestampList");j0("1.3.6.1.5.5.7.1.1","authorityInfoAccess");j0("1.3.6.1.5.5.7.3.1","serverAuth");j0("1.3.6.1.5.5.7.3.2","clientAuth");j0("1.3.6.1.5.5.7.3.3","codeSigning");j0("1.3.6.1.5.5.7.3.4","emailProtection");j0("1.3.6.1.5.5.7.3.8","timeStamping");j0("1.3.6.1.5.5.7.48.1","authorityInfoAccessOcsp");j0("1.3.6.1.5.5.7.48.2","authorityInfoAccessIssuers")});var _Q=Z1((oe,kQ)=>{(function(W){var G=function(K){var T,C=new Float64Array(16);if(K)for(T=0;T<K.length;T++)C[T]=K[T];return C},X=function(){throw Error("no PRNG")},Y=new Uint8Array(16),J=new Uint8Array(32);J[0]=9;var Z=G(),V=G([1]),U=G([56129,1]),Q=G([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),N=G([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),q=G([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),A=G([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),H=G([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function I(K,T,C,z){K[T]=C>>24&255,K[T+1]=C>>16&255,K[T+2]=C>>8&255,K[T+3]=C&255,K[T+4]=z>>24&255,K[T+5]=z>>16&255,K[T+6]=z>>8&255,K[T+7]=z&255}function w(K,T,C,z,P){var n,t=0;for(n=0;n<P;n++)t|=K[T+n]^C[z+n];return(1&t-1>>>8)-1}function O(K,T,C,z){return w(K,T,C,z,16)}function M(K,T,C,z){return w(K,T,C,z,32)}function S(K,T,C,z){var P=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,t=C[4]&255|(C[5]&255)<<8|(C[6]&255)<<16|(C[7]&255)<<24,I0=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,s0=z[4]&255|(z[5]&255)<<8|(z[6]&255)<<16|(z[7]&255)<<24,u0=T[0]&255|(T[1]&255)<<8|(T[2]&255)<<16|(T[3]&255)<<24,o1=T[4]&255|(T[5]&255)<<8|(T[6]&255)<<16|(T[7]&255)<<24,p0=T[8]&255|(T[9]&255)<<8|(T[10]&255)<<16|(T[11]&255)<<24,q1=T[12]&255|(T[13]&255)<<8|(T[14]&255)<<16|(T[15]&255)<<24,A1=z[8]&255|(z[9]&255)<<8|(z[10]&255)<<16|(z[11]&255)<<24,L1=C[16]&255|(C[17]&255)<<8|(C[18]&255)<<16|(C[19]&255)<<24,C1=C[20]&255|(C[21]&255)<<8|(C[22]&255)<<16|(C[23]&255)<<24,z1=C[24]&255|(C[25]&255)<<8|(C[26]&255)<<16|(C[27]&255)<<24,K1=C[28]&255|(C[29]&255)<<8|(C[30]&255)<<16|(C[31]&255)<<24,I1=z[12]&255|(z[13]&255)<<8|(z[14]&255)<<16|(z[15]&255)<<24,o0=P,W1=n,h0=t,i0=I0,a0=M0,_0=s0,Z0=u0,U0=o1,K0=p0,z0=q1,w0=A1,D0=L1,Q1=C1,B1=z1,$1=K1,E1=I1,y;for(var x1=0;x1<20;x1+=2)y=o0+Q1|0,a0^=y<<7|y>>>25,y=a0+o0|0,K0^=y<<9|y>>>23,y=K0+a0|0,Q1^=y<<13|y>>>19,y=Q1+K0|0,o0^=y<<18|y>>>14,y=_0+W1|0,z0^=y<<7|y>>>25,y=z0+_0|0,B1^=y<<9|y>>>23,y=B1+z0|0,W1^=y<<13|y>>>19,y=W1+B1|0,_0^=y<<18|y>>>14,y=w0+Z0|0,$1^=y<<7|y>>>25,y=$1+w0|0,h0^=y<<9|y>>>23,y=h0+$1|0,Z0^=y<<13|y>>>19,y=Z0+h0|0,w0^=y<<18|y>>>14,y=E1+D0|0,i0^=y<<7|y>>>25,y=i0+E1|0,U0^=y<<9|y>>>23,y=U0+i0|0,D0^=y<<13|y>>>19,y=D0+U0|0,E1^=y<<18|y>>>14,y=o0+i0|0,W1^=y<<7|y>>>25,y=W1+o0|0,h0^=y<<9|y>>>23,y=h0+W1|0,i0^=y<<13|y>>>19,y=i0+h0|0,o0^=y<<18|y>>>14,y=_0+a0|0,Z0^=y<<7|y>>>25,y=Z0+_0|0,U0^=y<<9|y>>>23,y=U0+Z0|0,a0^=y<<13|y>>>19,y=a0+U0|0,_0^=y<<18|y>>>14,y=w0+z0|0,D0^=y<<7|y>>>25,y=D0+w0|0,K0^=y<<9|y>>>23,y=K0+D0|0,z0^=y<<13|y>>>19,y=z0+K0|0,w0^=y<<18|y>>>14,y=E1+$1|0,Q1^=y<<7|y>>>25,y=Q1+E1|0,B1^=y<<9|y>>>23,y=B1+Q1|0,$1^=y<<13|y>>>19,y=$1+B1|0,E1^=y<<18|y>>>14;o0=o0+P|0,W1=W1+n|0,h0=h0+t|0,i0=i0+I0|0,a0=a0+M0|0,_0=_0+s0|0,Z0=Z0+u0|0,U0=U0+o1|0,K0=K0+p0|0,z0=z0+q1|0,w0=w0+A1|0,D0=D0+L1|0,Q1=Q1+C1|0,B1=B1+z1|0,$1=$1+K1|0,E1=E1+I1|0,K[0]=o0>>>0&255,K[1]=o0>>>8&255,K[2]=o0>>>16&255,K[3]=o0>>>24&255,K[4]=W1>>>0&255,K[5]=W1>>>8&255,K[6]=W1>>>16&255,K[7]=W1>>>24&255,K[8]=h0>>>0&255,K[9]=h0>>>8&255,K[10]=h0>>>16&255,K[11]=h0>>>24&255,K[12]=i0>>>0&255,K[13]=i0>>>8&255,K[14]=i0>>>16&255,K[15]=i0>>>24&255,K[16]=a0>>>0&255,K[17]=a0>>>8&255,K[18]=a0>>>16&255,K[19]=a0>>>24&255,K[20]=_0>>>0&255,K[21]=_0>>>8&255,K[22]=_0>>>16&255,K[23]=_0>>>24&255,K[24]=Z0>>>0&255,K[25]=Z0>>>8&255,K[26]=Z0>>>16&255,K[27]=Z0>>>24&255,K[28]=U0>>>0&255,K[29]=U0>>>8&255,K[30]=U0>>>16&255,K[31]=U0>>>24&255,K[32]=K0>>>0&255,K[33]=K0>>>8&255,K[34]=K0>>>16&255,K[35]=K0>>>24&255,K[36]=z0>>>0&255,K[37]=z0>>>8&255,K[38]=z0>>>16&255,K[39]=z0>>>24&255,K[40]=w0>>>0&255,K[41]=w0>>>8&255,K[42]=w0>>>16&255,K[43]=w0>>>24&255,K[44]=D0>>>0&255,K[45]=D0>>>8&255,K[46]=D0>>>16&255,K[47]=D0>>>24&255,K[48]=Q1>>>0&255,K[49]=Q1>>>8&255,K[50]=Q1>>>16&255,K[51]=Q1>>>24&255,K[52]=B1>>>0&255,K[53]=B1>>>8&255,K[54]=B1>>>16&255,K[55]=B1>>>24&255,K[56]=$1>>>0&255,K[57]=$1>>>8&255,K[58]=$1>>>16&255,K[59]=$1>>>24&255,K[60]=E1>>>0&255,K[61]=E1>>>8&255,K[62]=E1>>>16&255,K[63]=E1>>>24&255}function v(K,T,C,z){var P=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,t=C[4]&255|(C[5]&255)<<8|(C[6]&255)<<16|(C[7]&255)<<24,I0=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,s0=z[4]&255|(z[5]&255)<<8|(z[6]&255)<<16|(z[7]&255)<<24,u0=T[0]&255|(T[1]&255)<<8|(T[2]&255)<<16|(T[3]&255)<<24,o1=T[4]&255|(T[5]&255)<<8|(T[6]&255)<<16|(T[7]&255)<<24,p0=T[8]&255|(T[9]&255)<<8|(T[10]&255)<<16|(T[11]&255)<<24,q1=T[12]&255|(T[13]&255)<<8|(T[14]&255)<<16|(T[15]&255)<<24,A1=z[8]&255|(z[9]&255)<<8|(z[10]&255)<<16|(z[11]&255)<<24,L1=C[16]&255|(C[17]&255)<<8|(C[18]&255)<<16|(C[19]&255)<<24,C1=C[20]&255|(C[21]&255)<<8|(C[22]&255)<<16|(C[23]&255)<<24,z1=C[24]&255|(C[25]&255)<<8|(C[26]&255)<<16|(C[27]&255)<<24,K1=C[28]&255|(C[29]&255)<<8|(C[30]&255)<<16|(C[31]&255)<<24,I1=z[12]&255|(z[13]&255)<<8|(z[14]&255)<<16|(z[15]&255)<<24,o0=P,W1=n,h0=t,i0=I0,a0=M0,_0=s0,Z0=u0,U0=o1,K0=p0,z0=q1,w0=A1,D0=L1,Q1=C1,B1=z1,$1=K1,E1=I1,y;for(var x1=0;x1<20;x1+=2)y=o0+Q1|0,a0^=y<<7|y>>>25,y=a0+o0|0,K0^=y<<9|y>>>23,y=K0+a0|0,Q1^=y<<13|y>>>19,y=Q1+K0|0,o0^=y<<18|y>>>14,y=_0+W1|0,z0^=y<<7|y>>>25,y=z0+_0|0,B1^=y<<9|y>>>23,y=B1+z0|0,W1^=y<<13|y>>>19,y=W1+B1|0,_0^=y<<18|y>>>14,y=w0+Z0|0,$1^=y<<7|y>>>25,y=$1+w0|0,h0^=y<<9|y>>>23,y=h0+$1|0,Z0^=y<<13|y>>>19,y=Z0+h0|0,w0^=y<<18|y>>>14,y=E1+D0|0,i0^=y<<7|y>>>25,y=i0+E1|0,U0^=y<<9|y>>>23,y=U0+i0|0,D0^=y<<13|y>>>19,y=D0+U0|0,E1^=y<<18|y>>>14,y=o0+i0|0,W1^=y<<7|y>>>25,y=W1+o0|0,h0^=y<<9|y>>>23,y=h0+W1|0,i0^=y<<13|y>>>19,y=i0+h0|0,o0^=y<<18|y>>>14,y=_0+a0|0,Z0^=y<<7|y>>>25,y=Z0+_0|0,U0^=y<<9|y>>>23,y=U0+Z0|0,a0^=y<<13|y>>>19,y=a0+U0|0,_0^=y<<18|y>>>14,y=w0+z0|0,D0^=y<<7|y>>>25,y=D0+w0|0,K0^=y<<9|y>>>23,y=K0+D0|0,z0^=y<<13|y>>>19,y=z0+K0|0,w0^=y<<18|y>>>14,y=E1+$1|0,Q1^=y<<7|y>>>25,y=Q1+E1|0,B1^=y<<9|y>>>23,y=B1+Q1|0,$1^=y<<13|y>>>19,y=$1+B1|0,E1^=y<<18|y>>>14;K[0]=o0>>>0&255,K[1]=o0>>>8&255,K[2]=o0>>>16&255,K[3]=o0>>>24&255,K[4]=_0>>>0&255,K[5]=_0>>>8&255,K[6]=_0>>>16&255,K[7]=_0>>>24&255,K[8]=w0>>>0&255,K[9]=w0>>>8&255,K[10]=w0>>>16&255,K[11]=w0>>>24&255,K[12]=E1>>>0&255,K[13]=E1>>>8&255,K[14]=E1>>>16&255,K[15]=E1>>>24&255,K[16]=Z0>>>0&255,K[17]=Z0>>>8&255,K[18]=Z0>>>16&255,K[19]=Z0>>>24&255,K[20]=U0>>>0&255,K[21]=U0>>>8&255,K[22]=U0>>>16&255,K[23]=U0>>>24&255,K[24]=K0>>>0&255,K[25]=K0>>>8&255,K[26]=K0>>>16&255,K[27]=K0>>>24&255,K[28]=z0>>>0&255,K[29]=z0>>>8&255,K[30]=z0>>>16&255,K[31]=z0>>>24&255}function p(K,T,C,z){S(K,T,C,z)}function g(K,T,C,z){v(K,T,C,z)}var c=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function l(K,T,C,z,P,n,t){var I0=new Uint8Array(16),M0=new Uint8Array(64),s0,u0;for(u0=0;u0<16;u0++)I0[u0]=0;for(u0=0;u0<8;u0++)I0[u0]=n[u0];while(P>=64){p(M0,I0,t,c);for(u0=0;u0<64;u0++)K[T+u0]=C[z+u0]^M0[u0];s0=1;for(u0=8;u0<16;u0++)s0=s0+(I0[u0]&255)|0,I0[u0]=s0&255,s0>>>=8;P-=64,T+=64,z+=64}if(P>0){p(M0,I0,t,c);for(u0=0;u0<P;u0++)K[T+u0]=C[z+u0]^M0[u0]}return 0}function h(K,T,C,z,P){var n=new Uint8Array(16),t=new Uint8Array(64),I0,M0;for(M0=0;M0<16;M0++)n[M0]=0;for(M0=0;M0<8;M0++)n[M0]=z[M0];while(C>=64){p(t,n,P,c);for(M0=0;M0<64;M0++)K[T+M0]=t[M0];I0=1;for(M0=8;M0<16;M0++)I0=I0+(n[M0]&255)|0,n[M0]=I0&255,I0>>>=8;C-=64,T+=64}if(C>0){p(t,n,P,c);for(M0=0;M0<C;M0++)K[T+M0]=t[M0]}return 0}function e(K,T,C,z,P){var n=new Uint8Array(32);g(n,z,P,c);var t=new Uint8Array(8);for(var I0=0;I0<8;I0++)t[I0]=z[I0+16];return h(K,T,C,t,n)}function m(K,T,C,z,P,n,t){var I0=new Uint8Array(32);g(I0,n,t,c);var M0=new Uint8Array(8);for(var s0=0;s0<8;s0++)M0[s0]=n[s0+16];return l(K,T,C,z,P,M0,I0)}var G0=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 T,C,z,P,n,t,I0,M0;T=K[0]&255|(K[1]&255)<<8,this.r[0]=T&8191,C=K[2]&255|(K[3]&255)<<8,this.r[1]=(T>>>13|C<<3)&8191,z=K[4]&255|(K[5]&255)<<8,this.r[2]=(C>>>10|z<<6)&7939,P=K[6]&255|(K[7]&255)<<8,this.r[3]=(z>>>7|P<<9)&8191,n=K[8]&255|(K[9]&255)<<8,this.r[4]=(P>>>4|n<<12)&255,this.r[5]=n>>>1&8190,t=K[10]&255|(K[11]&255)<<8,this.r[6]=(n>>>14|t<<2)&8191,I0=K[12]&255|(K[13]&255)<<8,this.r[7]=(t>>>11|I0<<5)&8065,M0=K[14]&255|(K[15]&255)<<8,this.r[8]=(I0>>>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};G0.prototype.blocks=function(K,T,C){var z=this.fin?0:2048,P,n,t,I0,M0,s0,u0,o1,p0,q1,A1,L1,C1,z1,K1,I1,o0,W1,h0,i0=this.h[0],a0=this.h[1],_0=this.h[2],Z0=this.h[3],U0=this.h[4],K0=this.h[5],z0=this.h[6],w0=this.h[7],D0=this.h[8],Q1=this.h[9],B1=this.r[0],$1=this.r[1],E1=this.r[2],y=this.r[3],x1=this.r[4],n1=this.r[5],i1=this.r[6],S1=this.r[7],c1=this.r[8],l1=this.r[9];while(C>=16)P=K[T+0]&255|(K[T+1]&255)<<8,i0+=P&8191,n=K[T+2]&255|(K[T+3]&255)<<8,a0+=(P>>>13|n<<3)&8191,t=K[T+4]&255|(K[T+5]&255)<<8,_0+=(n>>>10|t<<6)&8191,I0=K[T+6]&255|(K[T+7]&255)<<8,Z0+=(t>>>7|I0<<9)&8191,M0=K[T+8]&255|(K[T+9]&255)<<8,U0+=(I0>>>4|M0<<12)&8191,K0+=M0>>>1&8191,s0=K[T+10]&255|(K[T+11]&255)<<8,z0+=(M0>>>14|s0<<2)&8191,u0=K[T+12]&255|(K[T+13]&255)<<8,w0+=(s0>>>11|u0<<5)&8191,o1=K[T+14]&255|(K[T+15]&255)<<8,D0+=(u0>>>8|o1<<8)&8191,Q1+=o1>>>5|z,p0=0,q1=p0,q1+=i0*B1,q1+=a0*(5*l1),q1+=_0*(5*c1),q1+=Z0*(5*S1),q1+=U0*(5*i1),p0=q1>>>13,q1&=8191,q1+=K0*(5*n1),q1+=z0*(5*x1),q1+=w0*(5*y),q1+=D0*(5*E1),q1+=Q1*(5*$1),p0+=q1>>>13,q1&=8191,A1=p0,A1+=i0*$1,A1+=a0*B1,A1+=_0*(5*l1),A1+=Z0*(5*c1),A1+=U0*(5*S1),p0=A1>>>13,A1&=8191,A1+=K0*(5*i1),A1+=z0*(5*n1),A1+=w0*(5*x1),A1+=D0*(5*y),A1+=Q1*(5*E1),p0+=A1>>>13,A1&=8191,L1=p0,L1+=i0*E1,L1+=a0*$1,L1+=_0*B1,L1+=Z0*(5*l1),L1+=U0*(5*c1),p0=L1>>>13,L1&=8191,L1+=K0*(5*S1),L1+=z0*(5*i1),L1+=w0*(5*n1),L1+=D0*(5*x1),L1+=Q1*(5*y),p0+=L1>>>13,L1&=8191,C1=p0,C1+=i0*y,C1+=a0*E1,C1+=_0*$1,C1+=Z0*B1,C1+=U0*(5*l1),p0=C1>>>13,C1&=8191,C1+=K0*(5*c1),C1+=z0*(5*S1),C1+=w0*(5*i1),C1+=D0*(5*n1),C1+=Q1*(5*x1),p0+=C1>>>13,C1&=8191,z1=p0,z1+=i0*x1,z1+=a0*y,z1+=_0*E1,z1+=Z0*$1,z1+=U0*B1,p0=z1>>>13,z1&=8191,z1+=K0*(5*l1),z1+=z0*(5*c1),z1+=w0*(5*S1),z1+=D0*(5*i1),z1+=Q1*(5*n1),p0+=z1>>>13,z1&=8191,K1=p0,K1+=i0*n1,K1+=a0*x1,K1+=_0*y,K1+=Z0*E1,K1+=U0*$1,p0=K1>>>13,K1&=8191,K1+=K0*B1,K1+=z0*(5*l1),K1+=w0*(5*c1),K1+=D0*(5*S1),K1+=Q1*(5*i1),p0+=K1>>>13,K1&=8191,I1=p0,I1+=i0*i1,I1+=a0*n1,I1+=_0*x1,I1+=Z0*y,I1+=U0*E1,p0=I1>>>13,I1&=8191,I1+=K0*$1,I1+=z0*B1,I1+=w0*(5*l1),I1+=D0*(5*c1),I1+=Q1*(5*S1),p0+=I1>>>13,I1&=8191,o0=p0,o0+=i0*S1,o0+=a0*i1,o0+=_0*n1,o0+=Z0*x1,o0+=U0*y,p0=o0>>>13,o0&=8191,o0+=K0*E1,o0+=z0*$1,o0+=w0*B1,o0+=D0*(5*l1),o0+=Q1*(5*c1),p0+=o0>>>13,o0&=8191,W1=p0,W1+=i0*c1,W1+=a0*S1,W1+=_0*i1,W1+=Z0*n1,W1+=U0*x1,p0=W1>>>13,W1&=8191,W1+=K0*y,W1+=z0*E1,W1+=w0*$1,W1+=D0*B1,W1+=Q1*(5*l1),p0+=W1>>>13,W1&=8191,h0=p0,h0+=i0*l1,h0+=a0*c1,h0+=_0*S1,h0+=Z0*i1,h0+=U0*n1,p0=h0>>>13,h0&=8191,h0+=K0*x1,h0+=z0*y,h0+=w0*E1,h0+=D0*$1,h0+=Q1*B1,p0+=h0>>>13,h0&=8191,p0=(p0<<2)+p0|0,p0=p0+q1|0,q1=p0&8191,p0=p0>>>13,A1+=p0,i0=q1,a0=A1,_0=L1,Z0=C1,U0=z1,K0=K1,z0=I1,w0=o0,D0=W1,Q1=h0,T+=16,C-=16;this.h[0]=i0,this.h[1]=a0,this.h[2]=_0,this.h[3]=Z0,this.h[4]=U0,this.h[5]=K0,this.h[6]=z0,this.h[7]=w0,this.h[8]=D0,this.h[9]=Q1},G0.prototype.finish=function(K,T){var C=new Uint16Array(10),z,P,n,t;if(this.leftover){t=this.leftover,this.buffer[t++]=1;for(;t<16;t++)this.buffer[t]=0;this.fin=1,this.blocks(this.buffer,0,16)}z=this.h[1]>>>13,this.h[1]&=8191;for(t=2;t<10;t++)this.h[t]+=z,z=this.h[t]>>>13,this.h[t]&=8191;this.h[0]+=z*5,z=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=z,z=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=z,C[0]=this.h[0]+5,z=C[0]>>>13,C[0]&=8191;for(t=1;t<10;t++)C[t]=this.h[t]+z,z=C[t]>>>13,C[t]&=8191;C[9]-=8192,P=(z^1)-1;for(t=0;t<10;t++)C[t]&=P;P=~P;for(t=0;t<10;t++)this.h[t]=this.h[t]&P|C[t];this.h[0]=(this.h[0]|this.h[1]<<13)&65535,this.h[1]=(this.h[1]>>>3|this.h[2]<<10)&65535,this.h[2]=(this.h[2]>>>6|this.h[3]<<7)&65535,this.h[3]=(this.h[3]>>>9|this.h[4]<<4)&65535,this.h[4]=(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14)&65535,this.h[5]=(this.h[6]>>>2|this.h[7]<<11)&65535,this.h[6]=(this.h[7]>>>5|this.h[8]<<8)&65535,this.h[7]=(this.h[8]>>>8|this.h[9]<<5)&65535,n=this.h[0]+this.pad[0],this.h[0]=n&65535;for(t=1;t<8;t++)n=(this.h[t]+this.pad[t]|0)+(n>>>16)|0,this.h[t]=n&65535;K[T+0]=this.h[0]>>>0&255,K[T+1]=this.h[0]>>>8&255,K[T+2]=this.h[1]>>>0&255,K[T+3]=this.h[1]>>>8&255,K[T+4]=this.h[2]>>>0&255,K[T+5]=this.h[2]>>>8&255,K[T+6]=this.h[3]>>>0&255,K[T+7]=this.h[3]>>>8&255,K[T+8]=this.h[4]>>>0&255,K[T+9]=this.h[4]>>>8&255,K[T+10]=this.h[5]>>>0&255,K[T+11]=this.h[5]>>>8&255,K[T+12]=this.h[6]>>>0&255,K[T+13]=this.h[6]>>>8&255,K[T+14]=this.h[7]>>>0&255,K[T+15]=this.h[7]>>>8&255},G0.prototype.update=function(K,T,C){var z,P;if(this.leftover){if(P=16-this.leftover,P>C)P=C;for(z=0;z<P;z++)this.buffer[this.leftover+z]=K[T+z];if(C-=P,T+=P,this.leftover+=P,this.leftover<16)return;this.blocks(this.buffer,0,16),this.leftover=0}if(C>=16)P=C-C%16,this.blocks(K,T,P),T+=P,C-=P;if(C){for(z=0;z<C;z++)this.buffer[this.leftover+z]=K[T+z];this.leftover+=C}};function H0(K,T,C,z,P,n){var t=new G0(n);return t.update(C,z,P),t.finish(K,T),0}function k(K,T,C,z,P,n){var t=new Uint8Array(16);return H0(t,0,C,z,P,n),O(K,T,t,0)}function i(K,T,C,z,P){var n;if(C<32)return-1;m(K,0,T,0,C,z,P),H0(K,16,K,32,C-32,K);for(n=0;n<16;n++)K[n]=0;return 0}function L(K,T,C,z,P){var n,t=new Uint8Array(32);if(C<32)return-1;if(e(t,0,32,z,P),k(T,16,T,32,C-32,t)!==0)return-1;m(K,0,T,0,C,z,P);for(n=0;n<32;n++)K[n]=0;return 0}function B(K,T){var C;for(C=0;C<16;C++)K[C]=T[C]|0}function b(K){var T,C,z=1;for(T=0;T<16;T++)C=K[T]+z+65535,z=Math.floor(C/65536),K[T]=C-z*65536;K[0]+=z-1+37*(z-1)}function s(K,T,C){var z,P=~(C-1);for(var n=0;n<16;n++)z=P&(K[n]^T[n]),K[n]^=z,T[n]^=z}function o(K,T){var C,z,P,n=G(),t=G();for(C=0;C<16;C++)t[C]=T[C];b(t),b(t),b(t);for(z=0;z<2;z++){n[0]=t[0]-65517;for(C=1;C<15;C++)n[C]=t[C]-65535-(n[C-1]>>16&1),n[C-1]&=65535;n[15]=t[15]-32767-(n[14]>>16&1),P=n[15]>>16&1,n[14]&=65535,s(t,n,1-P)}for(C=0;C<16;C++)K[2*C]=t[C]&255,K[2*C+1]=t[C]>>8}function E(K,T){var C=new Uint8Array(32),z=new Uint8Array(32);return o(C,K),o(z,T),M(C,0,z,0)}function $(K){var T=new Uint8Array(32);return o(T,K),T[0]&1}function _(K,T){var C;for(C=0;C<16;C++)K[C]=T[2*C]+(T[2*C+1]<<8);K[15]&=32767}function x(K,T,C){for(var z=0;z<16;z++)K[z]=T[z]+C[z]}function R(K,T,C){for(var z=0;z<16;z++)K[z]=T[z]-C[z]}function u(K,T,C){var z,P,n=0,t=0,I0=0,M0=0,s0=0,u0=0,o1=0,p0=0,q1=0,A1=0,L1=0,C1=0,z1=0,K1=0,I1=0,o0=0,W1=0,h0=0,i0=0,a0=0,_0=0,Z0=0,U0=0,K0=0,z0=0,w0=0,D0=0,Q1=0,B1=0,$1=0,E1=0,y=C[0],x1=C[1],n1=C[2],i1=C[3],S1=C[4],c1=C[5],l1=C[6],x8=C[7],X8=C[8],M8=C[9],R8=C[10],P8=C[11],b8=C[12],H9=C[13],A9=C[14],z9=C[15];z=T[0],n+=z*y,t+=z*x1,I0+=z*n1,M0+=z*i1,s0+=z*S1,u0+=z*c1,o1+=z*l1,p0+=z*x8,q1+=z*X8,A1+=z*M8,L1+=z*R8,C1+=z*P8,z1+=z*b8,K1+=z*H9,I1+=z*A9,o0+=z*z9,z=T[1],t+=z*y,I0+=z*x1,M0+=z*n1,s0+=z*i1,u0+=z*S1,o1+=z*c1,p0+=z*l1,q1+=z*x8,A1+=z*X8,L1+=z*M8,C1+=z*R8,z1+=z*P8,K1+=z*b8,I1+=z*H9,o0+=z*A9,W1+=z*z9,z=T[2],I0+=z*y,M0+=z*x1,s0+=z*n1,u0+=z*i1,o1+=z*S1,p0+=z*c1,q1+=z*l1,A1+=z*x8,L1+=z*X8,C1+=z*M8,z1+=z*R8,K1+=z*P8,I1+=z*b8,o0+=z*H9,W1+=z*A9,h0+=z*z9,z=T[3],M0+=z*y,s0+=z*x1,u0+=z*n1,o1+=z*i1,p0+=z*S1,q1+=z*c1,A1+=z*l1,L1+=z*x8,C1+=z*X8,z1+=z*M8,K1+=z*R8,I1+=z*P8,o0+=z*b8,W1+=z*H9,h0+=z*A9,i0+=z*z9,z=T[4],s0+=z*y,u0+=z*x1,o1+=z*n1,p0+=z*i1,q1+=z*S1,A1+=z*c1,L1+=z*l1,C1+=z*x8,z1+=z*X8,K1+=z*M8,I1+=z*R8,o0+=z*P8,W1+=z*b8,h0+=z*H9,i0+=z*A9,a0+=z*z9,z=T[5],u0+=z*y,o1+=z*x1,p0+=z*n1,q1+=z*i1,A1+=z*S1,L1+=z*c1,C1+=z*l1,z1+=z*x8,K1+=z*X8,I1+=z*M8,o0+=z*R8,W1+=z*P8,h0+=z*b8,i0+=z*H9,a0+=z*A9,_0+=z*z9,z=T[6],o1+=z*y,p0+=z*x1,q1+=z*n1,A1+=z*i1,L1+=z*S1,C1+=z*c1,z1+=z*l1,K1+=z*x8,I1+=z*X8,o0+=z*M8,W1+=z*R8,h0+=z*P8,i0+=z*b8,a0+=z*H9,_0+=z*A9,Z0+=z*z9,z=T[7],p0+=z*y,q1+=z*x1,A1+=z*n1,L1+=z*i1,C1+=z*S1,z1+=z*c1,K1+=z*l1,I1+=z*x8,o0+=z*X8,W1+=z*M8,h0+=z*R8,i0+=z*P8,a0+=z*b8,_0+=z*H9,Z0+=z*A9,U0+=z*z9,z=T[8],q1+=z*y,A1+=z*x1,L1+=z*n1,C1+=z*i1,z1+=z*S1,K1+=z*c1,I1+=z*l1,o0+=z*x8,W1+=z*X8,h0+=z*M8,i0+=z*R8,a0+=z*P8,_0+=z*b8,Z0+=z*H9,U0+=z*A9,K0+=z*z9,z=T[9],A1+=z*y,L1+=z*x1,C1+=z*n1,z1+=z*i1,K1+=z*S1,I1+=z*c1,o0+=z*l1,W1+=z*x8,h0+=z*X8,i0+=z*M8,a0+=z*R8,_0+=z*P8,Z0+=z*b8,U0+=z*H9,K0+=z*A9,z0+=z*z9,z=T[10],L1+=z*y,C1+=z*x1,z1+=z*n1,K1+=z*i1,I1+=z*S1,o0+=z*c1,W1+=z*l1,h0+=z*x8,i0+=z*X8,a0+=z*M8,_0+=z*R8,Z0+=z*P8,U0+=z*b8,K0+=z*H9,z0+=z*A9,w0+=z*z9,z=T[11],C1+=z*y,z1+=z*x1,K1+=z*n1,I1+=z*i1,o0+=z*S1,W1+=z*c1,h0+=z*l1,i0+=z*x8,a0+=z*X8,_0+=z*M8,Z0+=z*R8,U0+=z*P8,K0+=z*b8,z0+=z*H9,w0+=z*A9,D0+=z*z9,z=T[12],z1+=z*y,K1+=z*x1,I1+=z*n1,o0+=z*i1,W1+=z*S1,h0+=z*c1,i0+=z*l1,a0+=z*x8,_0+=z*X8,Z0+=z*M8,U0+=z*R8,K0+=z*P8,z0+=z*b8,w0+=z*H9,D0+=z*A9,Q1+=z*z9,z=T[13],K1+=z*y,I1+=z*x1,o0+=z*n1,W1+=z*i1,h0+=z*S1,i0+=z*c1,a0+=z*l1,_0+=z*x8,Z0+=z*X8,U0+=z*M8,K0+=z*R8,z0+=z*P8,w0+=z*b8,D0+=z*H9,Q1+=z*A9,B1+=z*z9,z=T[14],I1+=z*y,o0+=z*x1,W1+=z*n1,h0+=z*i1,i0+=z*S1,a0+=z*c1,_0+=z*l1,Z0+=z*x8,U0+=z*X8,K0+=z*M8,z0+=z*R8,w0+=z*P8,D0+=z*b8,Q1+=z*H9,B1+=z*A9,$1+=z*z9,z=T[15],o0+=z*y,W1+=z*x1,h0+=z*n1,i0+=z*i1,a0+=z*S1,_0+=z*c1,Z0+=z*l1,U0+=z*x8,K0+=z*X8,z0+=z*M8,w0+=z*R8,D0+=z*P8,Q1+=z*b8,B1+=z*H9,$1+=z*A9,E1+=z*z9,n+=38*W1,t+=38*h0,I0+=38*i0,M0+=38*a0,s0+=38*_0,u0+=38*Z0,o1+=38*U0,p0+=38*K0,q1+=38*z0,A1+=38*w0,L1+=38*D0,C1+=38*Q1,z1+=38*B1,K1+=38*$1,I1+=38*E1,P=1,z=n+P+65535,P=Math.floor(z/65536),n=z-P*65536,z=t+P+65535,P=Math.floor(z/65536),t=z-P*65536,z=I0+P+65535,P=Math.floor(z/65536),I0=z-P*65536,z=M0+P+65535,P=Math.floor(z/65536),M0=z-P*65536,z=s0+P+65535,P=Math.floor(z/65536),s0=z-P*65536,z=u0+P+65535,P=Math.floor(z/65536),u0=z-P*65536,z=o1+P+65535,P=Math.floor(z/65536),o1=z-P*65536,z=p0+P+65535,P=Math.floor(z/65536),p0=z-P*65536,z=q1+P+65535,P=Math.floor(z/65536),q1=z-P*65536,z=A1+P+65535,P=Math.floor(z/65536),A1=z-P*65536,z=L1+P+65535,P=Math.floor(z/65536),L1=z-P*65536,z=C1+P+65535,P=Math.floor(z/65536),C1=z-P*65536,z=z1+P+65535,P=Math.floor(z/65536),z1=z-P*65536,z=K1+P+65535,P=Math.floor(z/65536),K1=z-P*65536,z=I1+P+65535,P=Math.floor(z/65536),I1=z-P*65536,z=o0+P+65535,P=Math.floor(z/65536),o0=z-P*65536,n+=P-1+37*(P-1),P=1,z=n+P+65535,P=Math.floor(z/65536),n=z-P*65536,z=t+P+65535,P=Math.floor(z/65536),t=z-P*65536,z=I0+P+65535,P=Math.floor(z/65536),I0=z-P*65536,z=M0+P+65535,P=Math.floor(z/65536),M0=z-P*65536,z=s0+P+65535,P=Math.floor(z/65536),s0=z-P*65536,z=u0+P+65535,P=Math.floor(z/65536),u0=z-P*65536,z=o1+P+65535,P=Math.floor(z/65536),o1=z-P*65536,z=p0+P+65535,P=Math.floor(z/65536),p0=z-P*65536,z=q1+P+65535,P=Math.floor(z/65536),q1=z-P*65536,z=A1+P+65535,P=Math.floor(z/65536),A1=z-P*65536,z=L1+P+65535,P=Math.floor(z/65536),L1=z-P*65536,z=C1+P+65535,P=Math.floor(z/65536),C1=z-P*65536,z=z1+P+65535,P=Math.floor(z/65536),z1=z-P*65536,z=K1+P+65535,P=Math.floor(z/65536),K1=z-P*65536,z=I1+P+65535,P=Math.floor(z/65536),I1=z-P*65536,z=o0+P+65535,P=Math.floor(z/65536),o0=z-P*65536,n+=P-1+37*(P-1),K[0]=n,K[1]=t,K[2]=I0,K[3]=M0,K[4]=s0,K[5]=u0,K[6]=o1,K[7]=p0,K[8]=q1,K[9]=A1,K[10]=L1,K[11]=C1,K[12]=z1,K[13]=K1,K[14]=I1,K[15]=o0}function J0(K,T){u(K,T,T)}function V0(K,T){var C=G(),z;for(z=0;z<16;z++)C[z]=T[z];for(z=253;z>=0;z--)if(J0(C,C),z!==2&&z!==4)u(C,C,T);for(z=0;z<16;z++)K[z]=C[z]}function Q0(K,T){var C=G(),z;for(z=0;z<16;z++)C[z]=T[z];for(z=250;z>=0;z--)if(J0(C,C),z!==1)u(C,C,T);for(z=0;z<16;z++)K[z]=C[z]}function B0(K,T,C){var z=new Uint8Array(32),P=new Float64Array(80),n,t,I0=G(),M0=G(),s0=G(),u0=G(),o1=G(),p0=G();for(t=0;t<31;t++)z[t]=T[t];z[31]=T[31]&127|64,z[0]&=248,_(P,C);for(t=0;t<16;t++)M0[t]=P[t],u0[t]=I0[t]=s0[t]=0;I0[0]=u0[0]=1;for(t=254;t>=0;--t)n=z[t>>>3]>>>(t&7)&1,s(I0,M0,n),s(s0,u0,n),x(o1,I0,s0),R(I0,I0,s0),x(s0,M0,u0),R(M0,M0,u0),J0(u0,o1),J0(p0,I0),u(I0,s0,I0),u(s0,M0,o1),x(o1,I0,s0),R(I0,I0,s0),J0(M0,I0),R(s0,u0,p0),u(I0,s0,U),x(I0,I0,u0),u(s0,s0,I0),u(I0,u0,p0),u(u0,M0,P),J0(M0,o1),s(I0,M0,n),s(s0,u0,n);for(t=0;t<16;t++)P[t+16]=I0[t],P[t+32]=s0[t],P[t+48]=M0[t],P[t+64]=u0[t];var q1=P.subarray(32),A1=P.subarray(16);return V0(q1,q1),u(A1,A1,q1),o(K,A1),0}function v0(K,T){return B0(K,T,J)}function N1(K,T){return X(T,32),v0(K,T)}function u1(K,T,C){var z=new Uint8Array(32);return B0(z,C,T),g(K,Y,z,c)}var k0=i,h1=L;function R1(K,T,C,z,P,n){var t=new Uint8Array(32);return u1(t,P,n),k0(K,T,C,z,t)}function f(K,T,C,z,P,n){var t=new Uint8Array(32);return u1(t,P,n),h1(K,T,C,z,t)}var X0=[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 A0(K,T,C,z){var P=new Int32Array(16),n=new Int32Array(16),t,I0,M0,s0,u0,o1,p0,q1,A1,L1,C1,z1,K1,I1,o0,W1,h0,i0,a0,_0,Z0,U0,K0,z0,w0,D0,Q1=K[0],B1=K[1],$1=K[2],E1=K[3],y=K[4],x1=K[5],n1=K[6],i1=K[7],S1=T[0],c1=T[1],l1=T[2],x8=T[3],X8=T[4],M8=T[5],R8=T[6],P8=T[7],b8=0;while(z>=128){for(a0=0;a0<16;a0++)_0=8*a0+b8,P[a0]=C[_0+0]<<24|C[_0+1]<<16|C[_0+2]<<8|C[_0+3],n[a0]=C[_0+4]<<24|C[_0+5]<<16|C[_0+6]<<8|C[_0+7];for(a0=0;a0<80;a0++)if(t=Q1,I0=B1,M0=$1,s0=E1,u0=y,o1=x1,p0=n1,q1=i1,A1=S1,L1=c1,C1=l1,z1=x8,K1=X8,I1=M8,o0=R8,W1=P8,Z0=i1,U0=P8,K0=U0&65535,z0=U0>>>16,w0=Z0&65535,D0=Z0>>>16,Z0=(y>>>14|X8<<18)^(y>>>18|X8<<14)^(X8>>>9|y<<23),U0=(X8>>>14|y<<18)^(X8>>>18|y<<14)^(y>>>9|X8<<23),K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,Z0=y&x1^~y&n1,U0=X8&M8^~X8&R8,K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,Z0=X0[a0*2],U0=X0[a0*2+1],K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,Z0=P[a0%16],U0=n[a0%16],K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,z0+=K0>>>16,w0+=z0>>>16,D0+=w0>>>16,h0=w0&65535|D0<<16,i0=K0&65535|z0<<16,Z0=h0,U0=i0,K0=U0&65535,z0=U0>>>16,w0=Z0&65535,D0=Z0>>>16,Z0=(Q1>>>28|S1<<4)^(S1>>>2|Q1<<30)^(S1>>>7|Q1<<25),U0=(S1>>>28|Q1<<4)^(Q1>>>2|S1<<30)^(Q1>>>7|S1<<25),K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,Z0=Q1&B1^Q1&$1^B1&$1,U0=S1&c1^S1&l1^c1&l1,K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,z0+=K0>>>16,w0+=z0>>>16,D0+=w0>>>16,q1=w0&65535|D0<<16,W1=K0&65535|z0<<16,Z0=s0,U0=z1,K0=U0&65535,z0=U0>>>16,w0=Z0&65535,D0=Z0>>>16,Z0=h0,U0=i0,K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,z0+=K0>>>16,w0+=z0>>>16,D0+=w0>>>16,s0=w0&65535|D0<<16,z1=K0&65535|z0<<16,B1=t,$1=I0,E1=M0,y=s0,x1=u0,n1=o1,i1=p0,Q1=q1,c1=A1,l1=L1,x8=C1,X8=z1,M8=K1,R8=I1,P8=o0,S1=W1,a0%16===15)for(_0=0;_0<16;_0++)Z0=P[_0],U0=n[_0],K0=U0&65535,z0=U0>>>16,w0=Z0&65535,D0=Z0>>>16,Z0=P[(_0+9)%16],U0=n[(_0+9)%16],K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,h0=P[(_0+1)%16],i0=n[(_0+1)%16],Z0=(h0>>>1|i0<<31)^(h0>>>8|i0<<24)^h0>>>7,U0=(i0>>>1|h0<<31)^(i0>>>8|h0<<24)^(i0>>>7|h0<<25),K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,h0=P[(_0+14)%16],i0=n[(_0+14)%16],Z0=(h0>>>19|i0<<13)^(i0>>>29|h0<<3)^h0>>>6,U0=(i0>>>19|h0<<13)^(h0>>>29|i0<<3)^(i0>>>6|h0<<26),K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,z0+=K0>>>16,w0+=z0>>>16,D0+=w0>>>16,P[_0]=w0&65535|D0<<16,n[_0]=K0&65535|z0<<16;Z0=Q1,U0=S1,K0=U0&65535,z0=U0>>>16,w0=Z0&65535,D0=Z0>>>16,Z0=K[0],U0=T[0],K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,z0+=K0>>>16,w0+=z0>>>16,D0+=w0>>>16,K[0]=Q1=w0&65535|D0<<16,T[0]=S1=K0&65535|z0<<16,Z0=B1,U0=c1,K0=U0&65535,z0=U0>>>16,w0=Z0&65535,D0=Z0>>>16,Z0=K[1],U0=T[1],K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,z0+=K0>>>16,w0+=z0>>>16,D0+=w0>>>16,K[1]=B1=w0&65535|D0<<16,T[1]=c1=K0&65535|z0<<16,Z0=$1,U0=l1,K0=U0&65535,z0=U0>>>16,w0=Z0&65535,D0=Z0>>>16,Z0=K[2],U0=T[2],K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,z0+=K0>>>16,w0+=z0>>>16,D0+=w0>>>16,K[2]=$1=w0&65535|D0<<16,T[2]=l1=K0&65535|z0<<16,Z0=E1,U0=x8,K0=U0&65535,z0=U0>>>16,w0=Z0&65535,D0=Z0>>>16,Z0=K[3],U0=T[3],K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,z0+=K0>>>16,w0+=z0>>>16,D0+=w0>>>16,K[3]=E1=w0&65535|D0<<16,T[3]=x8=K0&65535|z0<<16,Z0=y,U0=X8,K0=U0&65535,z0=U0>>>16,w0=Z0&65535,D0=Z0>>>16,Z0=K[4],U0=T[4],K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,z0+=K0>>>16,w0+=z0>>>16,D0+=w0>>>16,K[4]=y=w0&65535|D0<<16,T[4]=X8=K0&65535|z0<<16,Z0=x1,U0=M8,K0=U0&65535,z0=U0>>>16,w0=Z0&65535,D0=Z0>>>16,Z0=K[5],U0=T[5],K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,z0+=K0>>>16,w0+=z0>>>16,D0+=w0>>>16,K[5]=x1=w0&65535|D0<<16,T[5]=M8=K0&65535|z0<<16,Z0=n1,U0=R8,K0=U0&65535,z0=U0>>>16,w0=Z0&65535,D0=Z0>>>16,Z0=K[6],U0=T[6],K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,z0+=K0>>>16,w0+=z0>>>16,D0+=w0>>>16,K[6]=n1=w0&65535|D0<<16,T[6]=R8=K0&65535|z0<<16,Z0=i1,U0=P8,K0=U0&65535,z0=U0>>>16,w0=Z0&65535,D0=Z0>>>16,Z0=K[7],U0=T[7],K0+=U0&65535,z0+=U0>>>16,w0+=Z0&65535,D0+=Z0>>>16,z0+=K0>>>16,w0+=z0>>>16,D0+=w0>>>16,K[7]=i1=w0&65535|D0<<16,T[7]=P8=K0&65535|z0<<16,b8+=128,z-=128}return z}function F0(K,T,C){var z=new Int32Array(8),P=new Int32Array(8),n=new Uint8Array(256),t,I0=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,P[0]=4089235720,P[1]=2227873595,P[2]=4271175723,P[3]=1595750129,P[4]=2917565137,P[5]=725511199,P[6]=4215389547,P[7]=327033209,A0(z,P,T,C),C%=128;for(t=0;t<C;t++)n[t]=T[I0-C+t];n[C]=128,C=256-128*(C<112?1:0),n[C-9]=0,I(n,C-8,I0/536870912|0,I0<<3),A0(z,P,n,C);for(t=0;t<8;t++)I(K,8*t,z[t],P[t]);return 0}function j1(K,T){var C=G(),z=G(),P=G(),n=G(),t=G(),I0=G(),M0=G(),s0=G(),u0=G();R(C,K[1],K[0]),R(u0,T[1],T[0]),u(C,C,u0),x(z,K[0],K[1]),x(u0,T[0],T[1]),u(z,z,u0),u(P,K[3],T[3]),u(P,P,N),u(n,K[2],T[2]),x(n,n,n),R(t,z,C),R(I0,n,P),x(M0,n,P),x(s0,z,C),u(K[0],t,I0),u(K[1],s0,M0),u(K[2],M0,I0),u(K[3],t,s0)}function l0(K,T,C){var z;for(z=0;z<4;z++)s(K[z],T[z],C)}function N0(K,T){var C=G(),z=G(),P=G();V0(P,T[2]),u(C,T[0],P),u(z,T[1],P),o(K,z),K[31]^=$(C)<<7}function E0(K,T,C){var z,P;B(K[0],Z),B(K[1],V),B(K[2],V),B(K[3],Z);for(P=255;P>=0;--P)z=C[P/8|0]>>(P&7)&1,l0(K,T,z),j1(T,K),j1(K,K),l0(K,T,z)}function P1(K,T){var C=[G(),G(),G(),G()];B(C[0],q),B(C[1],A),B(C[2],V),u(C[3],q,A),E0(K,C,T)}function F1(K,T,C){var z=new Uint8Array(64),P=[G(),G(),G(),G()],n;if(!C)X(T,32);F0(z,T,32),z[0]&=248,z[31]&=127,z[31]|=64,P1(P,z),N0(K,P);for(n=0;n<32;n++)T[n+32]=K[n];return 0}var v1=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,T){var C,z,P,n;for(z=63;z>=32;--z){C=0;for(P=z-32,n=z-12;P<n;++P)T[P]+=C-16*T[z]*v1[P-(z-32)],C=Math.floor((T[P]+128)/256),T[P]-=C*256;T[P]+=C,T[z]=0}C=0;for(P=0;P<32;P++)T[P]+=C-(T[31]>>4)*v1[P],C=T[P]>>8,T[P]&=255;for(P=0;P<32;P++)T[P]-=C*v1[P];for(z=0;z<32;z++)T[z+1]+=T[z]>>8,K[z]=T[z]&255}function g0(K){var T=new Float64Array(64),C;for(C=0;C<64;C++)T[C]=K[C];for(C=0;C<64;C++)K[C]=0;f0(K,T)}function U1(K,T,C,z){var P=new Uint8Array(64),n=new Uint8Array(64),t=new Uint8Array(64),I0,M0,s0=new Float64Array(64),u0=[G(),G(),G(),G()];F0(P,z,32),P[0]&=248,P[31]&=127,P[31]|=64;var o1=C+64;for(I0=0;I0<C;I0++)K[64+I0]=T[I0];for(I0=0;I0<32;I0++)K[32+I0]=P[32+I0];F0(t,K.subarray(32),C+32),g0(t),P1(u0,t),N0(K,u0);for(I0=32;I0<64;I0++)K[I0]=z[I0];F0(n,K,C+64),g0(n);for(I0=0;I0<64;I0++)s0[I0]=0;for(I0=0;I0<32;I0++)s0[I0]=t[I0];for(I0=0;I0<32;I0++)for(M0=0;M0<32;M0++)s0[I0+M0]+=n[I0]*P[M0];return f0(K.subarray(32),s0),o1}function e1(K,T){var C=G(),z=G(),P=G(),n=G(),t=G(),I0=G(),M0=G();if(B(K[2],V),_(K[1],T),J0(P,K[1]),u(n,P,Q),R(P,P,K[2]),x(n,K[2],n),J0(t,n),J0(I0,t),u(M0,I0,t),u(C,M0,P),u(C,C,n),Q0(C,C),u(C,C,P),u(C,C,n),u(C,C,n),u(K[0],C,n),J0(z,K[0]),u(z,z,n),E(z,P))u(K[0],K[0],H);if(J0(z,K[0]),u(z,z,n),E(z,P))return-1;if($(K[0])===T[31]>>7)R(K[0],Z,K[0]);return u(K[3],K[0],K[1]),0}function q9(K,T,C,z){var P,n=new Uint8Array(32),t=new Uint8Array(64),I0=[G(),G(),G(),G()],M0=[G(),G(),G(),G()];if(C<64)return-1;if(e1(M0,z))return-1;for(P=0;P<C;P++)K[P]=T[P];for(P=0;P<32;P++)K[P+32]=z[P];if(F0(t,K,C),g0(t),E0(I0,M0,t),P1(M0,T.subarray(32)),j1(I0,M0),N0(n,I0),C-=64,M(T,0,n,0)){for(P=0;P<C;P++)K[P]=0;return-1}for(P=0;P<C;P++)K[P]=T[P+64];return C}var d=32,W0=24,q0=32,T0=16,t0=32,N8=32,z8=32,D1=32,S0=32,b0=W0,d0=q0,r0=T0,H1=64,d1=32,J8=64,S9=32,pG=64;W.lowlevel={crypto_core_hsalsa20:g,crypto_stream_xor:m,crypto_stream:e,crypto_stream_salsa20_xor:l,crypto_stream_salsa20:h,crypto_onetimeauth:H0,crypto_onetimeauth_verify:k,crypto_verify_16:O,crypto_verify_32:M,crypto_secretbox:i,crypto_secretbox_open:L,crypto_scalarmult:B0,crypto_scalarmult_base:v0,crypto_box_beforenm:u1,crypto_box_afternm:k0,crypto_box:R1,crypto_box_open:f,crypto_box_keypair:N1,crypto_hash:F0,crypto_sign:U1,crypto_sign_keypair:F1,crypto_sign_open:q9,crypto_secretbox_KEYBYTES:d,crypto_secretbox_NONCEBYTES:W0,crypto_secretbox_ZEROBYTES:q0,crypto_secretbox_BOXZEROBYTES:T0,crypto_scalarmult_BYTES:t0,crypto_scalarmult_SCALARBYTES:N8,crypto_box_PUBLICKEYBYTES:z8,crypto_box_SECRETKEYBYTES:D1,crypto_box_BEFORENMBYTES:S0,crypto_box_NONCEBYTES:b0,crypto_box_ZEROBYTES:d0,crypto_box_BOXZEROBYTES:r0,crypto_sign_BYTES:H1,crypto_sign_PUBLICKEYBYTES:d1,crypto_sign_SECRETKEYBYTES:J8,crypto_sign_SEEDBYTES:S9,crypto_hash_BYTES:pG,gf:G,D:Q,L:v1,pack25519:o,unpack25519:_,M:u,A:x,S:J0,Z:R,pow2523:Q0,add:j1,set25519:B,modL:f0,scalarmult:E0,scalarbase:P1};function yU(K,T){if(K.length!==d)throw Error("bad key size");if(T.length!==W0)throw Error("bad nonce size")}function qA(K,T){if(K.length!==z8)throw Error("bad public key size");if(T.length!==D1)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 QD(K){for(var T=0;T<K.length;T++)K[T]=0}W.randomBytes=function(K){var T=new Uint8Array(K);return X(T,K),T},W.secretbox=function(K,T,C){W5(K,T,C),yU(C,T);var z=new Uint8Array(q0+K.length),P=new Uint8Array(z.length);for(var n=0;n<K.length;n++)z[n+q0]=K[n];return i(P,z,z.length,T,C),P.subarray(T0)},W.secretbox.open=function(K,T,C){W5(K,T,C),yU(C,T);var z=new Uint8Array(T0+K.length),P=new Uint8Array(z.length);for(var n=0;n<K.length;n++)z[n+T0]=K[n];if(z.length<32)return null;if(L(P,z,z.length,T,C)!==0)return null;return P.subarray(q0)},W.secretbox.keyLength=d,W.secretbox.nonceLength=W0,W.secretbox.overheadLength=T0,W.scalarMult=function(K,T){if(W5(K,T),K.length!==N8)throw Error("bad n size");if(T.length!==t0)throw Error("bad p size");var C=new Uint8Array(t0);return B0(C,K,T),C},W.scalarMult.base=function(K){if(W5(K),K.length!==N8)throw Error("bad n size");var T=new Uint8Array(t0);return v0(T,K),T},W.scalarMult.scalarLength=N8,W.scalarMult.groupElementLength=t0,W.box=function(K,T,C,z){var P=W.box.before(C,z);return W.secretbox(K,T,P)},W.box.before=function(K,T){W5(K,T),qA(K,T);var C=new Uint8Array(S0);return u1(C,K,T),C},W.box.after=W.secretbox,W.box.open=function(K,T,C,z){var P=W.box.before(C,z);return W.secretbox.open(K,T,P)},W.box.open.after=W.secretbox.open,W.box.keyPair=function(){var K=new Uint8Array(z8),T=new Uint8Array(D1);return N1(K,T),{publicKey:K,secretKey:T}},W.box.keyPair.fromSecretKey=function(K){if(W5(K),K.length!==D1)throw Error("bad secret key size");var T=new Uint8Array(z8);return v0(T,K),{publicKey:T,secretKey:new Uint8Array(K)}},W.box.publicKeyLength=z8,W.box.secretKeyLength=D1,W.box.sharedKeyLength=S0,W.box.nonceLength=b0,W.box.overheadLength=W.secretbox.overheadLength,W.sign=function(K,T){if(W5(K,T),T.length!==J8)throw Error("bad secret key size");var C=new Uint8Array(H1+K.length);return U1(C,K,K.length,T),C},W.sign.open=function(K,T){if(W5(K,T),T.length!==d1)throw Error("bad public key size");var C=new Uint8Array(K.length),z=q9(C,K,K.length,T);if(z<0)return null;var P=new Uint8Array(z);for(var n=0;n<P.length;n++)P[n]=C[n];return P},W.sign.detached=function(K,T){var C=W.sign(K,T),z=new Uint8Array(H1);for(var P=0;P<z.length;P++)z[P]=C[P];return z},W.sign.detached.verify=function(K,T,C){if(W5(K,T,C),T.length!==H1)throw Error("bad signature size");if(C.length!==d1)throw Error("bad public key size");var z=new Uint8Array(H1+K.length),P=new Uint8Array(H1+K.length),n;for(n=0;n<H1;n++)z[n]=T[n];for(n=0;n<K.length;n++)z[n+H1]=K[n];return q9(P,z,z.length,C)>=0},W.sign.keyPair=function(){var K=new Uint8Array(d1),T=new Uint8Array(J8);return F1(K,T),{publicKey:K,secretKey:T}},W.sign.keyPair.fromSecretKey=function(K){if(W5(K),K.length!==J8)throw Error("bad secret key size");var T=new Uint8Array(d1);for(var C=0;C<T.length;C++)T[C]=K[32+C];return{publicKey:T,secretKey:new Uint8Array(K)}},W.sign.keyPair.fromSeed=function(K){if(W5(K),K.length!==S9)throw Error("bad seed size");var T=new Uint8Array(d1),C=new Uint8Array(J8);for(var z=0;z<32;z++)C[z]=K[z];return F1(T,C,!0),{publicKey:T,secretKey:C}},W.sign.publicKeyLength=d1,W.sign.secretKeyLength=J8,W.sign.seedLength=S9,W.sign.signatureLength=H1,W.hash=function(K){W5(K);var T=new Uint8Array(pG);return F0(T,K,K.length),T},W.hash.hashLength=pG,W.verify=function(K,T){if(W5(K,T),K.length===0||T.length===0)return!1;if(K.length!==T.length)return!1;return w(K,0,T,0,K.length)===0?!0:!1},W.setPRNG=function(K){X=K},function(){var K=typeof self<"u"?self.crypto||self.msCrypto:null;if(K&&K.getRandomValues){var T=65536;W.setPRNG(function(C,z){var P,n=new Uint8Array(z);for(P=0;P<z;P+=T)K.getRandomValues(n.subarray(P,P+Math.min(z-P,T)));for(P=0;P<z;P++)C[P]=n[P];QD(n)})}else if(K=k8("crypto"),K&&K.randomBytes)W.setPRNG(function(C,z){var P,n=K.randomBytes(z);for(P=0;P<z;P++)C[P]=n[P];QD(n)})}()})(typeof kQ<"u"&&oe?oe:self.nacl=self.nacl||{})});var Ez=Z1((HM)=>{Object.defineProperty(HM,"__esModule",{value:!0});class qM{constructor(W,G=0,X=0){this.start=G,this.end=X>G?X:G,this.buf=W}get length(){return this.buf.length}reset(W=0,G=0){if(this.start=W,G>=this.start)this.end=G;else if(this.end<this.start)this.end=this.start;return this}walk(W){return this.start=this.end,this.end+=W,this}mustHas(W,G="Too few bytes to parse."){let X=this.end+W;if(X>this.buf.length){let Y=Error(G);throw Y.available=this.buf.length,Y.requested=X,Y}return this.walk(0),this}mustWalk(W,G){return this.mustHas(W,G),this.walk(W),this}}HM.BufferVisitor=qM});var wM=Z1((IM)=>{Object.defineProperty(IM,"__esModule",{value:!0});var AM=k8("util"),zM=64,Fz="-----BEGIN ",Sz="-----END ",mJ="-----",$z="Proc-Type";class xz{static parse(W){let G=[],X=W.toString("utf8").split(`
8
8
  `).map((Y)=>Y.trim()).filter((Y)=>Y!==""&&!Y.startsWith("#"));while(X.length>0)G.push(Eb(X));if(G.length===0)throw Error("PEM: no block");return G}constructor(W,G){this.type=W,this.body=G,this.headers=Object.create(null)}get procType(){return this.getHeader($z)}getHeader(W){let G=this.headers[W];return G==null?"":G}setHeader(W,G){if(W.includes(":"))throw Error("pem: cannot encode a header key that contains a colon");if(W===""||G==="")throw Error("pem: invalid header key or value");this.headers[W]=G}toString(){let W=Fz+this.type+mJ+`
9
9
  `,G=Object.keys(this.headers);if(G.length>0){let J=this.procType;if(J!=="")W+=`${$z}: ${J}
10
10
  `;G.sort();for(let Z of G)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 yM;(function(W){(function(G){var X=typeof globalThis==="object"?globalThis:typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:U(),Y=J(W);if(typeof X.Reflect<"u")Y=J(X.Reflect,Y);if(G(Y,X),typeof X.Reflect>"u")X.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(G,X){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 q9(Object.create(null))}:Q?function(){return q9({__proto__:null})}:function(){return q9({})},has:N?function(d,G0){return Y.call(d,G0)}:function(d,G0){return G0 in d},get:N?function(d,G0){return Y.call(d,G0)?d[G0]:void 0}:function(d,G0){return d[G0]}},A=Object.getPrototypeOf(Function),H=typeof Map==="function"&&typeof Map.prototype.entries==="function"?Map:g0(),I=typeof Set==="function"&&typeof Set.prototype.entries==="function"?Set:N1(),w=typeof WeakMap==="function"?WeakMap:Y8(),O=J?Symbol.for("@reflect-metadata:registry"):void 0,M=R1(),S=F1(M);function v(d,G0,q0,T0){if(!x(q0)){if(!u1(d))throw TypeError();if(!J0(G0))throw TypeError();if(!J0(T0)&&!x(T0)&&!R(T0))throw TypeError();if(R(T0))T0=void 0;return q0=Q1(q0),i(d,G0,q0,T0)}else{if(!u1(d))throw TypeError();if(!h1(G0))throw TypeError();return k(d,G0)}}G("decorate",v);function f(d,G0){function q0(T0,t0){if(!J0(T0))throw TypeError();if(!x(t0)&&!E1(t0))throw TypeError();o(d,G0,T0,t0)}return q0}G("metadata",f);function g(d,G0,q0,T0){if(!J0(q0))throw TypeError();if(!x(T0))T0=Q1(T0);return o(d,G0,q0,T0)}G("defineMetadata",g);function c(d,G0,q0){if(!J0(G0))throw TypeError();if(!x(q0))q0=Q1(q0);return B(d,G0,q0)}G("hasMetadata",c);function l(d,G0,q0){if(!J0(G0))throw TypeError();if(!x(q0))q0=Q1(q0);return L(d,G0,q0)}G("hasOwnMetadata",l);function h(d,G0,q0){if(!J0(G0))throw TypeError();if(!x(q0))q0=Q1(q0);return b(d,G0,q0)}G("getMetadata",h);function e(d,G0,q0){if(!J0(G0))throw TypeError();if(!x(q0))q0=Q1(q0);return s(d,G0,q0)}G("getOwnMetadata",e);function m(d,G0){if(!J0(d))throw TypeError();if(!x(G0))G0=Q1(G0);return E(d,G0)}G("getMetadataKeys",m);function W0(d,G0){if(!J0(d))throw TypeError();if(!x(G0))G0=Q1(G0);return $(d,G0)}G("getOwnMetadataKeys",W0);function H0(d,G0,q0){if(!J0(G0))throw TypeError();if(!x(q0))q0=Q1(q0);if(!J0(G0))throw TypeError();if(!x(q0))q0=Q1(q0);var T0=f0(G0,q0,!1);if(x(T0))return!1;return T0.OrdinaryDeleteMetadata(d,G0,q0)}G("deleteMetadata",H0);function k(d,G0){for(var q0=d.length-1;q0>=0;--q0){var T0=d[q0],t0=T0(G0);if(!x(t0)&&!R(t0)){if(!h1(t0))throw TypeError();G0=t0}}return G0}function i(d,G0,q0,T0){for(var t0=d.length-1;t0>=0;--t0){var N8=d[t0],z8=N8(G0,q0,T0);if(!x(z8)&&!R(z8)){if(!J0(z8))throw TypeError();T0=z8}}return T0}function B(d,G0,q0){var T0=L(d,G0,q0);if(T0)return!0;var t0=N0(G0);if(!R(t0))return B(d,t0,q0);return!1}function L(d,G0,q0){var T0=f0(G0,q0,!1);if(x(T0))return!1;return B0(T0.OrdinaryHasOwnMetadata(d,G0,q0))}function b(d,G0,q0){var T0=L(d,G0,q0);if(T0)return s(d,G0,q0);var t0=N0(G0);if(!R(t0))return b(d,t0,q0);return}function s(d,G0,q0){var T0=f0(G0,q0,!1);if(x(T0))return;return T0.OrdinaryGetOwnMetadata(d,G0,q0)}function o(d,G0,q0,T0){var t0=f0(q0,T0,!0);t0.OrdinaryDefineOwnMetadata(d,G0,q0,T0)}function E(d,G0){var q0=$(d,G0),T0=N0(d);if(T0===null)return q0;var t0=E(T0,G0);if(t0.length<=0)return q0;if(q0.length<=0)return t0;var N8=new I,z8=[];for(var D1=0,S0=q0;D1<S0.length;D1++){var b0=S0[D1],d0=N8.has(b0);if(!d0)N8.add(b0),z8.push(b0)}for(var r0=0,H1=t0;r0<H1.length;r0++){var b0=H1[r0],d0=N8.has(b0);if(!d0)N8.add(b0),z8.push(b0)}return z8}function $(d,G0){var q0=f0(d,G0,!1);if(!q0)return[];return q0.OrdinaryOwnMetadataKeys(d,G0)}function _(d){if(d===null)return 1;switch(typeof d){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return d===null?1:6;default:return 6}}function x(d){return d===void 0}function R(d){return d===null}function u(d){return typeof d==="symbol"}function J0(d){return typeof d==="object"?d!==null:typeof d==="function"}function V0(d,G0){switch(_(d)){case 0:return d;case 1:return d;case 2:return d;case 3:return d;case 4:return d;case 5:return d}var q0=G0===3?"string":G0===5?"number":"default",T0=X0(d,Z);if(T0!==void 0){var t0=T0.call(d,q0);if(J0(t0))throw TypeError();return t0}return Q0(d,q0==="default"?"number":q0)}function Q0(d,G0){if(G0==="string"){var q0=d.toString;if(k0(q0)){var T0=q0.call(d);if(!J0(T0))return T0}var t0=d.valueOf;if(k0(t0)){var T0=t0.call(d);if(!J0(T0))return T0}}else{var t0=d.valueOf;if(k0(t0)){var T0=t0.call(d);if(!J0(T0))return T0}var N8=d.toString;if(k0(N8)){var T0=N8.call(d);if(!J0(T0))return T0}}throw TypeError()}function B0(d){return!!d}function v0(d){return""+d}function Q1(d){var G0=V0(d,3);if(u(G0))return G0;return v0(G0)}function u1(d){return Array.isArray?Array.isArray(d):d instanceof Object?d instanceof Array:Object.prototype.toString.call(d)==="[object Array]"}function k0(d){return typeof d==="function"}function h1(d){return typeof d==="function"}function E1(d){switch(_(d)){case 3:return!0;case 4:return!0;default:return!1}}function p(d,G0){return d===G0||d!==d&&G0!==G0}function X0(d,G0){var q0=d[G0];if(q0===void 0||q0===null)return;if(!k0(q0))throw TypeError();return q0}function A0(d){var G0=X0(d,V);if(!k0(G0))throw TypeError();var q0=G0.call(d);if(!J0(q0))throw TypeError();return q0}function F0(d){return d.value}function j1(d){var G0=d.next();return G0.done?!1:G0}function l0(d){var G0=d.return;if(G0)G0.call(d)}function N0(d){var G0=Object.getPrototypeOf(d);if(typeof d!=="function"||d===A)return G0;if(G0!==A)return G0;var q0=d.prototype,T0=q0&&Object.getPrototypeOf(q0);if(T0==null||T0===Object.prototype)return G0;var t0=T0.constructor;if(typeof t0!=="function")return G0;if(t0===d)return G0;return t0}function E0(){var d;if(!x(O)&&typeof X.Reflect<"u"&&!(O in X.Reflect)&&typeof X.Reflect.defineMetadata==="function")d=v1(X.Reflect);var G0,q0,T0,t0=new w,N8={registerProvider:z8,getProvider:S0,setProvider:d0};return N8;function z8(r0){if(!Object.isExtensible(N8))throw Error("Cannot add provider to a frozen registry.");switch(!0){case d===r0:break;case x(G0):G0=r0;break;case G0===r0:break;case x(q0):q0=r0;break;case q0===r0:break;default:if(T0===void 0)T0=new I;T0.add(r0);break}}function D1(r0,H1){if(!x(G0)){if(G0.isProviderFor(r0,H1))return G0;if(!x(q0)){if(q0.isProviderFor(r0,H1))return G0;if(!x(T0)){var d1=A0(T0);while(!0){var J8=j1(d1);if(!J8)return;var S9=F0(J8);if(S9.isProviderFor(r0,H1))return l0(d1),S9}}}}if(!x(d)&&d.isProviderFor(r0,H1))return d;return}function S0(r0,H1){var d1=t0.get(r0),J8;if(!x(d1))J8=d1.get(H1);if(!x(J8))return J8;if(J8=D1(r0,H1),!x(J8)){if(x(d1))d1=new H,t0.set(r0,d1);d1.set(H1,J8)}return J8}function b0(r0){if(x(r0))throw TypeError();return G0===r0||q0===r0||!x(T0)&&T0.has(r0)}function d0(r0,H1,d1){if(!b0(d1))throw Error("Metadata provider not registered.");var J8=S0(r0,H1);if(J8!==d1){if(!x(J8))return!1;var S9=t0.get(r0);if(x(S9))S9=new H,t0.set(r0,S9);S9.set(H1,d1)}return!0}}function R1(){var d;if(!x(O)&&J0(X.Reflect)&&Object.isExtensible(X.Reflect))d=X.Reflect[O];if(x(d))d=E0();if(!x(O)&&J0(X.Reflect)&&Object.isExtensible(X.Reflect))Object.defineProperty(X.Reflect,O,{enumerable:!1,configurable:!1,writable:!1,value:d});return d}function F1(d){var G0=new w,q0={isProviderFor:function(b0,d0){var r0=G0.get(b0);if(x(r0))return!1;return r0.has(d0)},OrdinaryDefineOwnMetadata:z8,OrdinaryHasOwnMetadata:t0,OrdinaryGetOwnMetadata:N8,OrdinaryOwnMetadataKeys:D1,OrdinaryDeleteMetadata:S0};return M.registerProvider(q0),q0;function T0(b0,d0,r0){var H1=G0.get(b0),d1=!1;if(x(H1)){if(!r0)return;H1=new H,G0.set(b0,H1),d1=!0}var J8=H1.get(d0);if(x(J8)){if(!r0)return;if(J8=new H,H1.set(d0,J8),!d.setProvider(b0,d0,q0)){if(H1.delete(d0),d1)G0.delete(b0);throw Error("Wrong provider for target.")}}return J8}function t0(b0,d0,r0){var H1=T0(d0,r0,!1);if(x(H1))return!1;return B0(H1.has(b0))}function N8(b0,d0,r0){var H1=T0(d0,r0,!1);if(x(H1))return;return H1.get(b0)}function z8(b0,d0,r0,H1){var d1=T0(r0,H1,!0);d1.set(b0,d0)}function D1(b0,d0){var r0=[],H1=T0(b0,d0,!1);if(x(H1))return r0;var d1=H1.keys(),J8=A0(d1),S9=0;while(!0){var pG=j1(J8);if(!pG)return r0.length=S9,r0;var yU=F0(pG);try{r0[S9]=yU}catch(qA){try{l0(J8)}finally{throw qA}}S9++}}function S0(b0,d0,r0){var H1=T0(d0,r0,!1);if(x(H1))return!1;if(!H1.delete(b0))return!1;if(H1.size===0){var d1=G0.get(d0);if(!x(d1)){if(d1.delete(r0),d1.size===0)G0.delete(d1)}}return!0}}function v1(d){var{defineMetadata:G0,hasOwnMetadata:q0,getOwnMetadata:T0,getOwnMetadataKeys:t0,deleteMetadata:N8}=d,z8=new w,D1={isProviderFor:function(S0,b0){var d0=z8.get(S0);if(!x(d0)&&d0.has(b0))return!0;if(t0(S0,b0).length){if(x(d0))d0=new I,z8.set(S0,d0);return d0.add(b0),!0}return!1},OrdinaryDefineOwnMetadata:G0,OrdinaryHasOwnMetadata:q0,OrdinaryGetOwnMetadata:T0,OrdinaryOwnMetadataKeys:t0,OrdinaryDeleteMetadata:N8};return D1}function f0(d,G0,q0){var T0=M.getProvider(d,G0);if(!x(T0))return T0;if(q0){if(M.setProvider(d,G0,S))return S;throw Error("Illegal state.")}return}function g0(){var d={},G0=[],q0=function(){function D1(S0,b0,d0){this._index=0,this._keys=S0,this._values=b0,this._selector=d0}return D1.prototype["@@iterator"]=function(){return this},D1.prototype[V]=function(){return this},D1.prototype.next=function(){var S0=this._index;if(S0>=0&&S0<this._keys.length){var b0=this._selector(this._keys[S0],this._values[S0]);if(S0+1>=this._keys.length)this._index=-1,this._keys=G0,this._values=G0;else this._index++;return{value:b0,done:!1}}return{value:void 0,done:!0}},D1.prototype.throw=function(S0){if(this._index>=0)this._index=-1,this._keys=G0,this._values=G0;throw S0},D1.prototype.return=function(S0){if(this._index>=0)this._index=-1,this._keys=G0,this._values=G0;return{value:S0,done:!0}},D1}(),T0=function(){function D1(){this._keys=[],this._values=[],this._cacheKey=d,this._cacheIndex=-2}return Object.defineProperty(D1.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),D1.prototype.has=function(S0){return this._find(S0,!1)>=0},D1.prototype.get=function(S0){var b0=this._find(S0,!1);return b0>=0?this._values[b0]:void 0},D1.prototype.set=function(S0,b0){var d0=this._find(S0,!0);return this._values[d0]=b0,this},D1.prototype.delete=function(S0){var b0=this._find(S0,!1);if(b0>=0){var d0=this._keys.length;for(var r0=b0+1;r0<d0;r0++)this._keys[r0-1]=this._keys[r0],this._values[r0-1]=this._values[r0];if(this._keys.length--,this._values.length--,p(S0,this._cacheKey))this._cacheKey=d,this._cacheIndex=-2;return!0}return!1},D1.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=d,this._cacheIndex=-2},D1.prototype.keys=function(){return new q0(this._keys,this._values,t0)},D1.prototype.values=function(){return new q0(this._keys,this._values,N8)},D1.prototype.entries=function(){return new q0(this._keys,this._values,z8)},D1.prototype["@@iterator"]=function(){return this.entries()},D1.prototype[V]=function(){return this.entries()},D1.prototype._find=function(S0,b0){if(!p(this._cacheKey,S0)){this._cacheIndex=-1;for(var d0=0;d0<this._keys.length;d0++)if(p(this._keys[d0],S0)){this._cacheIndex=d0;break}}if(this._cacheIndex<0&&b0)this._cacheIndex=this._keys.length,this._keys.push(S0),this._values.push(void 0);return this._cacheIndex},D1}();return T0;function t0(D1,S0){return D1}function N8(D1,S0){return S0}function z8(D1,S0){return[D1,S0]}}function N1(){var d=function(){function G0(){this._map=new H}return Object.defineProperty(G0.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),G0.prototype.has=function(q0){return this._map.has(q0)},G0.prototype.add=function(q0){return this._map.set(q0,q0),this},G0.prototype.delete=function(q0){return this._map.delete(q0)},G0.prototype.clear=function(){this._map.clear()},G0.prototype.keys=function(){return this._map.keys()},G0.prototype.values=function(){return this._map.keys()},G0.prototype.entries=function(){return this._map.entries()},G0.prototype["@@iterator"]=function(){return this.keys()},G0.prototype[V]=function(){return this.keys()},G0}();return d}function Y8(){var d=16,G0=q.create(),q0=T0();return function(){function S0(){this._key=T0()}return S0.prototype.has=function(b0){var d0=t0(b0,!1);return d0!==void 0?q.has(d0,this._key):!1},S0.prototype.get=function(b0){var d0=t0(b0,!1);return d0!==void 0?q.get(d0,this._key):void 0},S0.prototype.set=function(b0,d0){var r0=t0(b0,!0);return r0[this._key]=d0,this},S0.prototype.delete=function(b0){var d0=t0(b0,!1);return d0!==void 0?delete d0[this._key]:!1},S0.prototype.clear=function(){this._key=T0()},S0}();function T0(){var S0;do S0="@@WeakMap@@"+D1();while(q.has(G0,S0));return G0[S0]=!0,S0}function t0(S0,b0){if(!Y.call(S0,q0)){if(!b0)return;Object.defineProperty(S0,q0,{value:q.create()})}return S0[q0]}function N8(S0,b0){for(var d0=0;d0<b0;++d0)S0[d0]=Math.random()*255|0;return S0}function z8(S0){if(typeof Uint8Array==="function"){var b0=new Uint8Array(S0);if(typeof crypto<"u")crypto.getRandomValues(b0);else if(typeof msCrypto<"u")msCrypto.getRandomValues(b0);else N8(b0,S0);return b0}return N8(Array(S0),S0)}function D1(){var S0=z8(d);S0[6]=S0[6]&79|64,S0[8]=S0[8]&191|128;var b0="";for(var d0=0;d0<d;++d0){var r0=S0[d0];if(d0===4||d0===6||d0===8)b0+="-";if(r0<16)b0+="0";b0+=r0.toString(16).toLowerCase()}return b0}}function q9(d){return d.__=void 0,delete d.__,d}})})(yM||(yM={}))});var VP=Z1((E10,VN)=>{var kR,_R,yR,vR,gR,uR,hR,bR,mR,fR,pR,cR,lR,JN,AI,dR,oR,nR,xX,iR,rR,aR,sR,tR,eR,WP,GP,XP,ZN,YP,JP,ZP;(function(W){var G=typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:{};if(typeof define==="function"&&define.amd)define("tslib",["exports"],function(Y){W(X(G,X(Y)))});else if(typeof VN==="object"&&typeof E10==="object")W(X(G,X(E10)));else W(X(G));function X(Y,J){if(Y!==G)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 G=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]};kR=function(Z,V){if(typeof V!=="function"&&V!==null)throw TypeError("Class extends value "+String(V)+" is not a constructor or null");G(Z,V);function U(){this.constructor=Z}Z.prototype=V===null?Object.create(V):(U.prototype=V.prototype,new U)},_R=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},yR=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},vR=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},gR=function(Z,V){return function(U,Q){V(U,Q,Z)}},uR=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):{}),M,S=!1;for(var v=U.length-1;v>=0;v--){var f={};for(var g in Q)f[g]=g==="access"?{}:Q[g];for(var g in Q.access)f.access[g]=Q.access[g];f.addInitializer=function(l){if(S)throw TypeError("Cannot add initializers after decoration has completed");q.push(A(l||null))};var c=(0,U[v])(H==="accessor"?{get:O.get,set:O.set}:O[I],f);if(H==="accessor"){if(c===void 0)continue;if(c===null||typeof c!=="object")throw TypeError("Object expected");if(M=A(c.get))O.get=M;if(M=A(c.set))O.set=M;if(M=A(c.init))N.unshift(M)}else if(M=A(c))if(H==="field")N.unshift(M);else O[I]=M}if(w)Object.defineProperty(w,Q.name,O);S=!0},hR=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},bR=function(Z){return typeof Z==="symbol"?Z:"".concat(Z)},mR=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})},fR=function(Z,V){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(Z,V)},pR=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(M){A(M)}}function I(O){try{w(Q.throw(O))}catch(M){A(M)}}function w(O){O.done?q(O.value):N(O.value).then(H,I)}w((Q=Q.apply(Z,V||[])).next())})},cR=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}}},lR=function(Z,V){for(var U in Z)if(U!=="default"&&!Object.prototype.hasOwnProperty.call(V,U))ZN(V,Z,U)},ZN=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]},JN=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},dR=function(){for(var Z=[],V=0;V<arguments.length;V++)Z=Z.concat(AI(arguments[V]));return Z},oR=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},nR=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))},xX=function(Z){return this instanceof xX?(this.v=Z,this):new xX(Z)},iR=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(v){return function(f){return Promise.resolve(f).then(v,M)}}function H(v,f){if(Q[v]){if(N[v]=function(g){return new Promise(function(c,l){q.push([v,g,c,l])>1||I(v,g)})},f)N[v]=f(N[v])}}function I(v,f){try{w(Q[v](f))}catch(g){S(q[0][3],g)}}function w(v){v.value instanceof xX?Promise.resolve(v.value.v).then(O,M):S(q[0][2],v)}function O(v){I("next",v)}function M(v){I("throw",v)}function S(v,f){if(v(f),q.shift(),q.length)I(q[0][0],q[0][1])}},rR=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:xX(Z[N](A)),done:!1}:q?q(A):A}:q}},aR=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 JN==="function"?JN(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)}},sR=function(Z,V){if(Object.defineProperty)Object.defineProperty(Z,"raw",{value:V});else Z.raw=V;return Z};var X=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)};tR=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")ZN(V,Z,U[Q])}return X(V,Z),V},eR=function(Z){return Z&&Z.__esModule?Z:{default:Z}},WP=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)},GP=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},XP=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)},YP=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};JP=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()},ZP=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",kR),W("__assign",_R),W("__rest",yR),W("__decorate",vR),W("__param",gR),W("__esDecorate",uR),W("__runInitializers",hR),W("__propKey",bR),W("__setFunctionName",mR),W("__metadata",fR),W("__awaiter",pR),W("__generator",cR),W("__exportStar",lR),W("__createBinding",ZN),W("__values",JN),W("__read",AI),W("__spread",dR),W("__spreadArrays",oR),W("__spreadArray",nR),W("__await",xX),W("__asyncGenerator",iR),W("__asyncDelegator",rR),W("__asyncValues",aR),W("__makeTemplateObject",sR),W("__importStar",tR),W("__importDefault",eR),W("__classPrivateFieldGet",WP),W("__classPrivateFieldSet",GP),W("__classPrivateFieldIn",XP),W("__addDisposableResource",YP),W("__disposeResources",JP),W("__rewriteRelativeImportExtension",ZP)})});var KL=Z1((mJ0,cN)=>{/*! *****************************************************************************
27
+ ***************************************************************************** */var yM;(function(W){(function(G){var X=typeof globalThis==="object"?globalThis:typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:U(),Y=J(W);if(typeof X.Reflect<"u")Y=J(X.Reflect,Y);if(G(Y,X),typeof X.Reflect>"u")X.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(G,X){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 q9(Object.create(null))}:Q?function(){return q9({__proto__:null})}:function(){return q9({})},has:N?function(d,W0){return Y.call(d,W0)}:function(d,W0){return W0 in d},get:N?function(d,W0){return Y.call(d,W0)?d[W0]:void 0}:function(d,W0){return d[W0]}},A=Object.getPrototypeOf(Function),H=typeof Map==="function"&&typeof Map.prototype.entries==="function"?Map:g0(),I=typeof Set==="function"&&typeof Set.prototype.entries==="function"?Set:U1(),w=typeof WeakMap==="function"?WeakMap:e1(),O=J?Symbol.for("@reflect-metadata:registry"):void 0,M=P1(),S=F1(M);function v(d,W0,q0,T0){if(!x(q0)){if(!u1(d))throw TypeError();if(!J0(W0))throw TypeError();if(!J0(T0)&&!x(T0)&&!R(T0))throw TypeError();if(R(T0))T0=void 0;return q0=N1(q0),i(d,W0,q0,T0)}else{if(!u1(d))throw TypeError();if(!h1(W0))throw TypeError();return k(d,W0)}}G("decorate",v);function p(d,W0){function q0(T0,t0){if(!J0(T0))throw TypeError();if(!x(t0)&&!R1(t0))throw TypeError();o(d,W0,T0,t0)}return q0}G("metadata",p);function g(d,W0,q0,T0){if(!J0(q0))throw TypeError();if(!x(T0))T0=N1(T0);return o(d,W0,q0,T0)}G("defineMetadata",g);function c(d,W0,q0){if(!J0(W0))throw TypeError();if(!x(q0))q0=N1(q0);return L(d,W0,q0)}G("hasMetadata",c);function l(d,W0,q0){if(!J0(W0))throw TypeError();if(!x(q0))q0=N1(q0);return B(d,W0,q0)}G("hasOwnMetadata",l);function h(d,W0,q0){if(!J0(W0))throw TypeError();if(!x(q0))q0=N1(q0);return b(d,W0,q0)}G("getMetadata",h);function e(d,W0,q0){if(!J0(W0))throw TypeError();if(!x(q0))q0=N1(q0);return s(d,W0,q0)}G("getOwnMetadata",e);function m(d,W0){if(!J0(d))throw TypeError();if(!x(W0))W0=N1(W0);return E(d,W0)}G("getMetadataKeys",m);function G0(d,W0){if(!J0(d))throw TypeError();if(!x(W0))W0=N1(W0);return $(d,W0)}G("getOwnMetadataKeys",G0);function H0(d,W0,q0){if(!J0(W0))throw TypeError();if(!x(q0))q0=N1(q0);if(!J0(W0))throw TypeError();if(!x(q0))q0=N1(q0);var T0=f0(W0,q0,!1);if(x(T0))return!1;return T0.OrdinaryDeleteMetadata(d,W0,q0)}G("deleteMetadata",H0);function k(d,W0){for(var q0=d.length-1;q0>=0;--q0){var T0=d[q0],t0=T0(W0);if(!x(t0)&&!R(t0)){if(!h1(t0))throw TypeError();W0=t0}}return W0}function i(d,W0,q0,T0){for(var t0=d.length-1;t0>=0;--t0){var N8=d[t0],z8=N8(W0,q0,T0);if(!x(z8)&&!R(z8)){if(!J0(z8))throw TypeError();T0=z8}}return T0}function L(d,W0,q0){var T0=B(d,W0,q0);if(T0)return!0;var t0=N0(W0);if(!R(t0))return L(d,t0,q0);return!1}function B(d,W0,q0){var T0=f0(W0,q0,!1);if(x(T0))return!1;return B0(T0.OrdinaryHasOwnMetadata(d,W0,q0))}function b(d,W0,q0){var T0=B(d,W0,q0);if(T0)return s(d,W0,q0);var t0=N0(W0);if(!R(t0))return b(d,t0,q0);return}function s(d,W0,q0){var T0=f0(W0,q0,!1);if(x(T0))return;return T0.OrdinaryGetOwnMetadata(d,W0,q0)}function o(d,W0,q0,T0){var t0=f0(q0,T0,!0);t0.OrdinaryDefineOwnMetadata(d,W0,q0,T0)}function E(d,W0){var q0=$(d,W0),T0=N0(d);if(T0===null)return q0;var t0=E(T0,W0);if(t0.length<=0)return q0;if(q0.length<=0)return t0;var N8=new I,z8=[];for(var D1=0,S0=q0;D1<S0.length;D1++){var b0=S0[D1],d0=N8.has(b0);if(!d0)N8.add(b0),z8.push(b0)}for(var r0=0,H1=t0;r0<H1.length;r0++){var b0=H1[r0],d0=N8.has(b0);if(!d0)N8.add(b0),z8.push(b0)}return z8}function $(d,W0){var q0=f0(d,W0,!1);if(!q0)return[];return q0.OrdinaryOwnMetadataKeys(d,W0)}function _(d){if(d===null)return 1;switch(typeof d){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return d===null?1:6;default:return 6}}function x(d){return d===void 0}function R(d){return d===null}function u(d){return typeof d==="symbol"}function J0(d){return typeof d==="object"?d!==null:typeof d==="function"}function V0(d,W0){switch(_(d)){case 0:return d;case 1:return d;case 2:return d;case 3:return d;case 4:return d;case 5:return d}var q0=W0===3?"string":W0===5?"number":"default",T0=X0(d,Z);if(T0!==void 0){var t0=T0.call(d,q0);if(J0(t0))throw TypeError();return t0}return Q0(d,q0==="default"?"number":q0)}function Q0(d,W0){if(W0==="string"){var q0=d.toString;if(k0(q0)){var T0=q0.call(d);if(!J0(T0))return T0}var t0=d.valueOf;if(k0(t0)){var T0=t0.call(d);if(!J0(T0))return T0}}else{var t0=d.valueOf;if(k0(t0)){var T0=t0.call(d);if(!J0(T0))return T0}var N8=d.toString;if(k0(N8)){var T0=N8.call(d);if(!J0(T0))return T0}}throw TypeError()}function B0(d){return!!d}function v0(d){return""+d}function N1(d){var W0=V0(d,3);if(u(W0))return W0;return v0(W0)}function u1(d){return Array.isArray?Array.isArray(d):d instanceof Object?d instanceof Array:Object.prototype.toString.call(d)==="[object Array]"}function k0(d){return typeof d==="function"}function h1(d){return typeof d==="function"}function R1(d){switch(_(d)){case 3:return!0;case 4:return!0;default:return!1}}function f(d,W0){return d===W0||d!==d&&W0!==W0}function X0(d,W0){var q0=d[W0];if(q0===void 0||q0===null)return;if(!k0(q0))throw TypeError();return q0}function A0(d){var W0=X0(d,V);if(!k0(W0))throw TypeError();var q0=W0.call(d);if(!J0(q0))throw TypeError();return q0}function F0(d){return d.value}function j1(d){var W0=d.next();return W0.done?!1:W0}function l0(d){var W0=d.return;if(W0)W0.call(d)}function N0(d){var W0=Object.getPrototypeOf(d);if(typeof d!=="function"||d===A)return W0;if(W0!==A)return W0;var q0=d.prototype,T0=q0&&Object.getPrototypeOf(q0);if(T0==null||T0===Object.prototype)return W0;var t0=T0.constructor;if(typeof t0!=="function")return W0;if(t0===d)return W0;return t0}function E0(){var d;if(!x(O)&&typeof X.Reflect<"u"&&!(O in X.Reflect)&&typeof X.Reflect.defineMetadata==="function")d=v1(X.Reflect);var W0,q0,T0,t0=new w,N8={registerProvider:z8,getProvider:S0,setProvider:d0};return N8;function z8(r0){if(!Object.isExtensible(N8))throw Error("Cannot add provider to a frozen registry.");switch(!0){case d===r0:break;case x(W0):W0=r0;break;case W0===r0:break;case x(q0):q0=r0;break;case q0===r0:break;default:if(T0===void 0)T0=new I;T0.add(r0);break}}function D1(r0,H1){if(!x(W0)){if(W0.isProviderFor(r0,H1))return W0;if(!x(q0)){if(q0.isProviderFor(r0,H1))return W0;if(!x(T0)){var d1=A0(T0);while(!0){var J8=j1(d1);if(!J8)return;var S9=F0(J8);if(S9.isProviderFor(r0,H1))return l0(d1),S9}}}}if(!x(d)&&d.isProviderFor(r0,H1))return d;return}function S0(r0,H1){var d1=t0.get(r0),J8;if(!x(d1))J8=d1.get(H1);if(!x(J8))return J8;if(J8=D1(r0,H1),!x(J8)){if(x(d1))d1=new H,t0.set(r0,d1);d1.set(H1,J8)}return J8}function b0(r0){if(x(r0))throw TypeError();return W0===r0||q0===r0||!x(T0)&&T0.has(r0)}function d0(r0,H1,d1){if(!b0(d1))throw Error("Metadata provider not registered.");var J8=S0(r0,H1);if(J8!==d1){if(!x(J8))return!1;var S9=t0.get(r0);if(x(S9))S9=new H,t0.set(r0,S9);S9.set(H1,d1)}return!0}}function P1(){var d;if(!x(O)&&J0(X.Reflect)&&Object.isExtensible(X.Reflect))d=X.Reflect[O];if(x(d))d=E0();if(!x(O)&&J0(X.Reflect)&&Object.isExtensible(X.Reflect))Object.defineProperty(X.Reflect,O,{enumerable:!1,configurable:!1,writable:!1,value:d});return d}function F1(d){var W0=new w,q0={isProviderFor:function(b0,d0){var r0=W0.get(b0);if(x(r0))return!1;return r0.has(d0)},OrdinaryDefineOwnMetadata:z8,OrdinaryHasOwnMetadata:t0,OrdinaryGetOwnMetadata:N8,OrdinaryOwnMetadataKeys:D1,OrdinaryDeleteMetadata:S0};return M.registerProvider(q0),q0;function T0(b0,d0,r0){var H1=W0.get(b0),d1=!1;if(x(H1)){if(!r0)return;H1=new H,W0.set(b0,H1),d1=!0}var J8=H1.get(d0);if(x(J8)){if(!r0)return;if(J8=new H,H1.set(d0,J8),!d.setProvider(b0,d0,q0)){if(H1.delete(d0),d1)W0.delete(b0);throw Error("Wrong provider for target.")}}return J8}function t0(b0,d0,r0){var H1=T0(d0,r0,!1);if(x(H1))return!1;return B0(H1.has(b0))}function N8(b0,d0,r0){var H1=T0(d0,r0,!1);if(x(H1))return;return H1.get(b0)}function z8(b0,d0,r0,H1){var d1=T0(r0,H1,!0);d1.set(b0,d0)}function D1(b0,d0){var r0=[],H1=T0(b0,d0,!1);if(x(H1))return r0;var d1=H1.keys(),J8=A0(d1),S9=0;while(!0){var pG=j1(J8);if(!pG)return r0.length=S9,r0;var yU=F0(pG);try{r0[S9]=yU}catch(qA){try{l0(J8)}finally{throw qA}}S9++}}function S0(b0,d0,r0){var H1=T0(d0,r0,!1);if(x(H1))return!1;if(!H1.delete(b0))return!1;if(H1.size===0){var d1=W0.get(d0);if(!x(d1)){if(d1.delete(r0),d1.size===0)W0.delete(d1)}}return!0}}function v1(d){var{defineMetadata:W0,hasOwnMetadata:q0,getOwnMetadata:T0,getOwnMetadataKeys:t0,deleteMetadata:N8}=d,z8=new w,D1={isProviderFor:function(S0,b0){var d0=z8.get(S0);if(!x(d0)&&d0.has(b0))return!0;if(t0(S0,b0).length){if(x(d0))d0=new I,z8.set(S0,d0);return d0.add(b0),!0}return!1},OrdinaryDefineOwnMetadata:W0,OrdinaryHasOwnMetadata:q0,OrdinaryGetOwnMetadata:T0,OrdinaryOwnMetadataKeys:t0,OrdinaryDeleteMetadata:N8};return D1}function f0(d,W0,q0){var T0=M.getProvider(d,W0);if(!x(T0))return T0;if(q0){if(M.setProvider(d,W0,S))return S;throw Error("Illegal state.")}return}function g0(){var d={},W0=[],q0=function(){function D1(S0,b0,d0){this._index=0,this._keys=S0,this._values=b0,this._selector=d0}return D1.prototype["@@iterator"]=function(){return this},D1.prototype[V]=function(){return this},D1.prototype.next=function(){var S0=this._index;if(S0>=0&&S0<this._keys.length){var b0=this._selector(this._keys[S0],this._values[S0]);if(S0+1>=this._keys.length)this._index=-1,this._keys=W0,this._values=W0;else this._index++;return{value:b0,done:!1}}return{value:void 0,done:!0}},D1.prototype.throw=function(S0){if(this._index>=0)this._index=-1,this._keys=W0,this._values=W0;throw S0},D1.prototype.return=function(S0){if(this._index>=0)this._index=-1,this._keys=W0,this._values=W0;return{value:S0,done:!0}},D1}(),T0=function(){function D1(){this._keys=[],this._values=[],this._cacheKey=d,this._cacheIndex=-2}return Object.defineProperty(D1.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),D1.prototype.has=function(S0){return this._find(S0,!1)>=0},D1.prototype.get=function(S0){var b0=this._find(S0,!1);return b0>=0?this._values[b0]:void 0},D1.prototype.set=function(S0,b0){var d0=this._find(S0,!0);return this._values[d0]=b0,this},D1.prototype.delete=function(S0){var b0=this._find(S0,!1);if(b0>=0){var d0=this._keys.length;for(var r0=b0+1;r0<d0;r0++)this._keys[r0-1]=this._keys[r0],this._values[r0-1]=this._values[r0];if(this._keys.length--,this._values.length--,f(S0,this._cacheKey))this._cacheKey=d,this._cacheIndex=-2;return!0}return!1},D1.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=d,this._cacheIndex=-2},D1.prototype.keys=function(){return new q0(this._keys,this._values,t0)},D1.prototype.values=function(){return new q0(this._keys,this._values,N8)},D1.prototype.entries=function(){return new q0(this._keys,this._values,z8)},D1.prototype["@@iterator"]=function(){return this.entries()},D1.prototype[V]=function(){return this.entries()},D1.prototype._find=function(S0,b0){if(!f(this._cacheKey,S0)){this._cacheIndex=-1;for(var d0=0;d0<this._keys.length;d0++)if(f(this._keys[d0],S0)){this._cacheIndex=d0;break}}if(this._cacheIndex<0&&b0)this._cacheIndex=this._keys.length,this._keys.push(S0),this._values.push(void 0);return this._cacheIndex},D1}();return T0;function t0(D1,S0){return D1}function N8(D1,S0){return S0}function z8(D1,S0){return[D1,S0]}}function U1(){var d=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 d}function e1(){var d=16,W0=q.create(),q0=T0();return function(){function S0(){this._key=T0()}return S0.prototype.has=function(b0){var d0=t0(b0,!1);return d0!==void 0?q.has(d0,this._key):!1},S0.prototype.get=function(b0){var d0=t0(b0,!1);return d0!==void 0?q.get(d0,this._key):void 0},S0.prototype.set=function(b0,d0){var r0=t0(b0,!0);return r0[this._key]=d0,this},S0.prototype.delete=function(b0){var d0=t0(b0,!1);return d0!==void 0?delete d0[this._key]:!1},S0.prototype.clear=function(){this._key=T0()},S0}();function T0(){var S0;do S0="@@WeakMap@@"+D1();while(q.has(W0,S0));return W0[S0]=!0,S0}function t0(S0,b0){if(!Y.call(S0,q0)){if(!b0)return;Object.defineProperty(S0,q0,{value:q.create()})}return S0[q0]}function N8(S0,b0){for(var d0=0;d0<b0;++d0)S0[d0]=Math.random()*255|0;return S0}function z8(S0){if(typeof Uint8Array==="function"){var b0=new Uint8Array(S0);if(typeof crypto<"u")crypto.getRandomValues(b0);else if(typeof msCrypto<"u")msCrypto.getRandomValues(b0);else N8(b0,S0);return b0}return N8(Array(S0),S0)}function D1(){var S0=z8(d);S0[6]=S0[6]&79|64,S0[8]=S0[8]&191|128;var b0="";for(var d0=0;d0<d;++d0){var r0=S0[d0];if(d0===4||d0===6||d0===8)b0+="-";if(r0<16)b0+="0";b0+=r0.toString(16).toLowerCase()}return b0}}function q9(d){return d.__=void 0,delete d.__,d}})})(yM||(yM={}))});var VP=Z1((E10,VN)=>{var kR,_R,yR,vR,gR,uR,hR,bR,mR,fR,pR,cR,lR,JN,AI,dR,oR,nR,xX,iR,rR,aR,sR,tR,eR,WP,GP,XP,ZN,YP,JP,ZP;(function(W){var G=typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:{};if(typeof define==="function"&&define.amd)define("tslib",["exports"],function(Y){W(X(G,X(Y)))});else if(typeof VN==="object"&&typeof E10==="object")W(X(G,X(E10)));else W(X(G));function X(Y,J){if(Y!==G)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 G=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]};kR=function(Z,V){if(typeof V!=="function"&&V!==null)throw TypeError("Class extends value "+String(V)+" is not a constructor or null");G(Z,V);function U(){this.constructor=Z}Z.prototype=V===null?Object.create(V):(U.prototype=V.prototype,new U)},_R=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},yR=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},vR=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},gR=function(Z,V){return function(U,Q){V(U,Q,Z)}},uR=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):{}),M,S=!1;for(var v=U.length-1;v>=0;v--){var p={};for(var g in Q)p[g]=g==="access"?{}:Q[g];for(var g in Q.access)p.access[g]=Q.access[g];p.addInitializer=function(l){if(S)throw TypeError("Cannot add initializers after decoration has completed");q.push(A(l||null))};var c=(0,U[v])(H==="accessor"?{get:O.get,set:O.set}:O[I],p);if(H==="accessor"){if(c===void 0)continue;if(c===null||typeof c!=="object")throw TypeError("Object expected");if(M=A(c.get))O.get=M;if(M=A(c.set))O.set=M;if(M=A(c.init))N.unshift(M)}else if(M=A(c))if(H==="field")N.unshift(M);else O[I]=M}if(w)Object.defineProperty(w,Q.name,O);S=!0},hR=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},bR=function(Z){return typeof Z==="symbol"?Z:"".concat(Z)},mR=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})},fR=function(Z,V){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(Z,V)},pR=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(M){A(M)}}function I(O){try{w(Q.throw(O))}catch(M){A(M)}}function w(O){O.done?q(O.value):N(O.value).then(H,I)}w((Q=Q.apply(Z,V||[])).next())})},cR=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}}},lR=function(Z,V){for(var U in Z)if(U!=="default"&&!Object.prototype.hasOwnProperty.call(V,U))ZN(V,Z,U)},ZN=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]},JN=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},dR=function(){for(var Z=[],V=0;V<arguments.length;V++)Z=Z.concat(AI(arguments[V]));return Z},oR=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},nR=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))},xX=function(Z){return this instanceof xX?(this.v=Z,this):new xX(Z)},iR=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(v){return function(p){return Promise.resolve(p).then(v,M)}}function H(v,p){if(Q[v]){if(N[v]=function(g){return new Promise(function(c,l){q.push([v,g,c,l])>1||I(v,g)})},p)N[v]=p(N[v])}}function I(v,p){try{w(Q[v](p))}catch(g){S(q[0][3],g)}}function w(v){v.value instanceof xX?Promise.resolve(v.value.v).then(O,M):S(q[0][2],v)}function O(v){I("next",v)}function M(v){I("throw",v)}function S(v,p){if(v(p),q.shift(),q.length)I(q[0][0],q[0][1])}},rR=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:xX(Z[N](A)),done:!1}:q?q(A):A}:q}},aR=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 JN==="function"?JN(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)}},sR=function(Z,V){if(Object.defineProperty)Object.defineProperty(Z,"raw",{value:V});else Z.raw=V;return Z};var X=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)};tR=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")ZN(V,Z,U[Q])}return X(V,Z),V},eR=function(Z){return Z&&Z.__esModule?Z:{default:Z}},WP=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)},GP=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},XP=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)},YP=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};JP=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()},ZP=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",kR),W("__assign",_R),W("__rest",yR),W("__decorate",vR),W("__param",gR),W("__esDecorate",uR),W("__runInitializers",hR),W("__propKey",bR),W("__setFunctionName",mR),W("__metadata",fR),W("__awaiter",pR),W("__generator",cR),W("__exportStar",lR),W("__createBinding",ZN),W("__values",JN),W("__read",AI),W("__spread",dR),W("__spreadArrays",oR),W("__spreadArray",nR),W("__await",xX),W("__asyncGenerator",iR),W("__asyncDelegator",rR),W("__asyncValues",aR),W("__makeTemplateObject",sR),W("__importStar",tR),W("__importDefault",eR),W("__classPrivateFieldGet",WP),W("__classPrivateFieldSet",GP),W("__classPrivateFieldIn",XP),W("__addDisposableResource",YP),W("__disposeResources",JP),W("__rewriteRelativeImportExtension",ZP)})});var KL=Z1((mJ0,cN)=>{/*! *****************************************************************************
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
- `),Uq.prototype[W]=G.toFunction({assertSize:Pj})});UE.exports=Uq;function Pj(W,G){if(W>G)throw new dc(W,G)}});var O8=Z1((Gq0,jE)=>{var Lj=wV(),oc=mB(),nc=lB(),ic=oB(),rc=iB(),ac=sB(),NE=eB(),sc=GE(),tc=JE(),{encode:AE}=KV(),{decode:zE}=wY(),{encodingLength:ec}=OV(),Wl=QE(),IE=zY(),wE={array:oc,bool:ic,buffer:nc,reserved:rc,string:ac,when:sc,select:tc};for(let W of Object.keys(NE))wE[W]=NE[W];var Qq=Symbol("schema");function qE(W){let G=new Lj({readableObjectMode:!1,writableObjectMode:!0,transform:Gl});return G[Qq]=W,G}function HE(W){let G=null,X=Buffer.isBuffer(W);if(!X)G=W;let Y=new Lj({transform:Xl,readableObjectMode:!0,writableObjectMode:!1});if(Y[Qq]=G,X)Y.append(W);return Y}function Gl(W,G,X){try{AE(W,this[Qq],this);let Y=this.slice();this.consume(Y.length),X(null,Y)}catch(Y){X(Y)}}function Xl(W,G,X){this.append(W);try{while(this.length>0){let Y=new Wl(this),J=zE(Y,this[Qq]);Y.commit(),this.push(J)}X()}catch(Y){if(Y instanceof IE)X();else X(Y)}}jE.exports={createEncodeStream:qE,createDecodeStream:HE,encode:AE,decode:zE,encodingLength:ec,createEncode:qE,createDecode:HE,types:wE,BinaryStream:Lj,NotEnoughDataError:IE}});var w$=Z1((z$)=>{Object.defineProperty(z$,"__esModule",{value:!0});z$.LEB128=z$.SignedLEB128=z$.UnsignedLEB128=void 0;var MY;(function(W){W[W.LOWER_7=127]="LOWER_7",W[W.UPPER_1=128]="UPPER_1"})(MY||(MY={}));var A$=(W)=>Number.isSafeInteger(W);class RY{static decode(W,G=0){let X=this.$scanForNullBytes(W,G),Y=0,J=0;for(let Z=0;Z<=X-G;Z++){let V=W[G+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 G=[],X=W;do{let Y=X&MY.LOWER_7;if(X>>=7,X)Y=Y|MY.UPPER_1;G.push(Y)}while(X);return Uint8Array.from(G)}static check(W){if(!A$(W))throw Error(`${W} is not a safe integer!`)}static $scanForNullBytes(W,G=0){let X=G,Y=0;do{if(X>=W.byteLength)throw Error("This is not a LEB128-encoded Uint8Array, no ending found!");Y=W.slice(X,X+1)[0],X++}while(Y&MY.UPPER_1);return X-1}static getLength(W,G=0){return this.$scanForNullBytes(W,G)-G}}z$.UnsignedLEB128=RY;class Mq{static $ceil7mul(W){let G=W;while(G%7)G++;return G}static check(W){if(!A$(W))throw Error(`${W} is not a safe integer!`)}static encode(W){if(this.check(W),W>=0)throw Error(`A signed number must be negative, ${W} isn't!`);let G=Math.ceil(Math.log2(-W));return RY.encode((1<<this.$ceil7mul(G))+W)}static decode(W,G=0){let X=RY.decode(W,G);return-((1<<Math.ceil(Math.log2(X)))-X)}}z$.SignedLEB128=Mq;class Rq{}z$.LEB128=Rq;Rq.encode=(W)=>(W>=0?RY:Mq).encode(W);Rq.decode=(W,G=0,X=!1)=>(X?Mq:RY).decode(W,G)});var K$=Z1((oj,j$)=>{/*! MIT License. Copyright 2015-2018 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */(function(W){function G(E){return parseInt(E)===E}function X(E){if(!G(E.length))return!1;for(var $=0;$<E.length;$++)if(!G(E[$])||E[$]<0||E[$]>255)return!1;return!0}function Y(E,$){if(E.buffer&&E.name==="Uint8Array"){if($)if(E.slice)E=E.slice();else E=Array.prototype.slice.call(E);return E}if(Array.isArray(E)){if(!X(E))throw Error("Array contains invalid value: "+E);return new Uint8Array(E)}if(G(E.length)&&X(E))return new Uint8Array(E);throw Error("unsupported array-like object")}function J(E){return new Uint8Array(E)}function Z(E,$,_,x,R){if(x!=null||R!=null)if(E.slice)E=E.slice(x,R);else E=Array.prototype.slice.call(E,x,R);$.set(E,_)}var V=function(){function E(_){var x=[],R=0;_=encodeURI(_);while(R<_.length){var u=_.charCodeAt(R++);if(u===37)x.push(parseInt(_.substr(R,2),16)),R+=2;else x.push(u)}return Y(x)}function $(_){var x=[],R=0;while(R<_.length){var u=_[R];if(u<128)x.push(String.fromCharCode(u)),R++;else if(u>191&&u<224)x.push(String.fromCharCode((u&31)<<6|_[R+1]&63)),R+=2;else x.push(String.fromCharCode((u&15)<<12|(_[R+1]&63)<<6|_[R+2]&63)),R+=3}return x.join("")}return{toBytes:E,fromBytes:$}}(),U=function(){function E(x){var R=[];for(var u=0;u<x.length;u+=2)R.push(parseInt(x.substr(u,2),16));return R}var $="0123456789abcdef";function _(x){var R=[];for(var u=0;u<x.length;u++){var J0=x[u];R.push($[(J0&240)>>4]+$[J0&15])}return R.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],M=[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],S=[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],v=[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],f=[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],g=[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],c=[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],h=[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 e(E){var $=[];for(var _=0;_<E.length;_+=4)$.push(E[_]<<24|E[_+1]<<16|E[_+2]<<8|E[_+3]);return $}var m=function(E){if(!(this instanceof m))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:Y(E,!0)}),this._prepare()};m.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 $=0;$<=E;$++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var _=(E+1)*4,x=this.key.length/4,R=e(this.key),u;for(var $=0;$<x;$++)u=$>>2,this._Ke[u][$%4]=R[$],this._Kd[E-u][$%4]=R[$];var J0=0,V0=x,Q0;while(V0<_){if(Q0=R[x-1],R[0]^=q[Q0>>16&255]<<24^q[Q0>>8&255]<<16^q[Q0&255]<<8^q[Q0>>24&255]^N[J0]<<24,J0+=1,x!=8)for(var $=1;$<x;$++)R[$]^=R[$-1];else{for(var $=1;$<x/2;$++)R[$]^=R[$-1];Q0=R[x/2-1],R[x/2]^=q[Q0&255]^q[Q0>>8&255]<<8^q[Q0>>16&255]<<16^q[Q0>>24&255]<<24;for(var $=x/2+1;$<x;$++)R[$]^=R[$-1]}var $=0,B0,v0;while($<x&&V0<_)B0=V0>>2,v0=V0%4,this._Ke[B0][v0]=R[$],this._Kd[E-B0][v0]=R[$++],V0++}for(var B0=1;B0<E;B0++)for(var v0=0;v0<4;v0++)Q0=this._Kd[B0][v0],this._Kd[B0][v0]=g[Q0>>24&255]^c[Q0>>16&255]^l[Q0>>8&255]^h[Q0&255]},m.prototype.encrypt=function(E){if(E.length!=16)throw Error("invalid plaintext size (must be 16 bytes)");var $=this._Ke.length-1,_=[0,0,0,0],x=e(E);for(var R=0;R<4;R++)x[R]^=this._Ke[0][R];for(var u=1;u<$;u++){for(var R=0;R<4;R++)_[R]=H[x[R]>>24&255]^I[x[(R+1)%4]>>16&255]^w[x[(R+2)%4]>>8&255]^O[x[(R+3)%4]&255]^this._Ke[u][R];x=_.slice()}var J0=J(16),V0;for(var R=0;R<4;R++)V0=this._Ke[$][R],J0[4*R]=(q[x[R]>>24&255]^V0>>24)&255,J0[4*R+1]=(q[x[(R+1)%4]>>16&255]^V0>>16)&255,J0[4*R+2]=(q[x[(R+2)%4]>>8&255]^V0>>8)&255,J0[4*R+3]=(q[x[(R+3)%4]&255]^V0)&255;return J0},m.prototype.decrypt=function(E){if(E.length!=16)throw Error("invalid ciphertext size (must be 16 bytes)");var $=this._Kd.length-1,_=[0,0,0,0],x=e(E);for(var R=0;R<4;R++)x[R]^=this._Kd[0][R];for(var u=1;u<$;u++){for(var R=0;R<4;R++)_[R]=M[x[R]>>24&255]^S[x[(R+3)%4]>>16&255]^v[x[(R+2)%4]>>8&255]^f[x[(R+1)%4]&255]^this._Kd[u][R];x=_.slice()}var J0=J(16),V0;for(var R=0;R<4;R++)V0=this._Kd[$][R],J0[4*R]=(A[x[R]>>24&255]^V0>>24)&255,J0[4*R+1]=(A[x[(R+3)%4]>>16&255]^V0>>16)&255,J0[4*R+2]=(A[x[(R+2)%4]>>8&255]^V0>>8)&255,J0[4*R+3]=(A[x[(R+1)%4]&255]^V0)&255;return J0};var W0=function(E){if(!(this instanceof W0))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new m(E)};W0.prototype.encrypt=function(E){if(E=Y(E),E.length%16!==0)throw Error("invalid plaintext size (must be multiple of 16 bytes)");var $=J(E.length),_=J(16);for(var x=0;x<E.length;x+=16)Z(E,_,0,x,x+16),_=this._aes.encrypt(_),Z(_,$,x);return $},W0.prototype.decrypt=function(E){if(E=Y(E),E.length%16!==0)throw Error("invalid ciphertext size (must be multiple of 16 bytes)");var $=J(E.length),_=J(16);for(var x=0;x<E.length;x+=16)Z(E,_,0,x,x+16),_=this._aes.decrypt(_),Z(_,$,x);return $};var H0=function(E,$){if(!(this instanceof H0))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",!$)$=J(16);else if($.length!=16)throw Error("invalid initialation vector size (must be 16 bytes)");this._lastCipherblock=Y($,!0),this._aes=new m(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 $=J(E.length),_=J(16);for(var x=0;x<E.length;x+=16){Z(E,_,0,x,x+16);for(var R=0;R<16;R++)_[R]^=this._lastCipherblock[R];this._lastCipherblock=this._aes.encrypt(_),Z(this._lastCipherblock,$,x)}return $},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 $=J(E.length),_=J(16);for(var x=0;x<E.length;x+=16){Z(E,_,0,x,x+16),_=this._aes.decrypt(_);for(var R=0;R<16;R++)$[x+R]=_[R]^this._lastCipherblock[R];Z(E,this._lastCipherblock,0,x,x+16)}return $};var k=function(E,$,_){if(!(this instanceof k))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",!$)$=J(16);else if($.length!=16)throw Error("invalid initialation vector size (must be 16 size)");if(!_)_=1;this.segmentSize=_,this._shiftRegister=Y($,!0),this._aes=new m(E)};k.prototype.encrypt=function(E){if(E.length%this.segmentSize!=0)throw Error("invalid plaintext size (must be segmentSize bytes)");var $=Y(E,!0),_;for(var x=0;x<$.length;x+=this.segmentSize){_=this._aes.encrypt(this._shiftRegister);for(var R=0;R<this.segmentSize;R++)$[x+R]^=_[R];Z(this._shiftRegister,this._shiftRegister,0,this.segmentSize),Z($,this._shiftRegister,16-this.segmentSize,x,x+this.segmentSize)}return $},k.prototype.decrypt=function(E){if(E.length%this.segmentSize!=0)throw Error("invalid ciphertext size (must be segmentSize bytes)");var $=Y(E,!0),_;for(var x=0;x<$.length;x+=this.segmentSize){_=this._aes.encrypt(this._shiftRegister);for(var R=0;R<this.segmentSize;R++)$[x+R]^=_[R];Z(this._shiftRegister,this._shiftRegister,0,this.segmentSize),Z(E,this._shiftRegister,16-this.segmentSize,x,x+this.segmentSize)}return $};var i=function(E,$){if(!(this instanceof i))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",!$)$=J(16);else if($.length!=16)throw Error("invalid initialation vector size (must be 16 bytes)");this._lastPrecipher=Y($,!0),this._lastPrecipherIndex=16,this._aes=new m(E)};i.prototype.encrypt=function(E){var $=Y(E,!0);for(var _=0;_<$.length;_++){if(this._lastPrecipherIndex===16)this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0;$[_]^=this._lastPrecipher[this._lastPrecipherIndex++]}return $},i.prototype.decrypt=i.prototype.encrypt;var B=function(E){if(!(this instanceof B))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)};B.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 $=15;$>=0;--$)this._counter[$]=E%256,E=parseInt(E/256)},B.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},B.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 L=function(E,$){if(!(this instanceof L))throw Error("AES must be instanitated with `new`");if(this.description="Counter",this.name="ctr",!($ instanceof B))$=new B($);this._counter=$,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new m(E)};L.prototype.encrypt=function(E){var $=Y(E,!0);for(var _=0;_<$.length;_++){if(this._remainingCounterIndex===16)this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment();$[_]^=this._remainingCounter[this._remainingCounterIndex++]}return $},L.prototype.decrypt=L.prototype.encrypt;function b(E){E=Y(E,!0);var $=16-E.length%16,_=J(E.length+$);Z(E,_);for(var x=E.length;x<_.length;x++)_[x]=$;return _}function s(E){if(E=Y(E,!0),E.length<16)throw Error("PKCS#7 invalid length");var $=E[E.length-1];if($>16)throw Error("PKCS#7 padding byte out of range");var _=E.length-$;for(var x=0;x<$;x++)if(E[_+x]!==$)throw Error("PKCS#7 invalid padding byte");var R=J(_);return Z(E,R,0,0,_),R}var o={AES:m,Counter:B,ModeOfOperation:{ecb:W0,cbc:H0,cfb:k,ofb:i,ctr:L},utils:{hex:U,utf8:V},padding:{pkcs7:{pad:b,strip:s}},_arrayTest:{coerceArray:Y,createArray:J,copyArray:Z}};if(typeof oj<"u")j$.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=Z1((R$)=>{var G1=R$,{Buffer:Eq}=k8("buffer"),fl=k8("os");G1.toBuffer=function(W,G,X){X=~~X;let Y;if(this.isV4Format(W))Y=G||Eq.alloc(X+4),W.split(/\./g).map((J)=>{Y[X++]=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=G||Eq.alloc(X+16);for(Z=0;Z<J.length;Z++){let V=parseInt(J[Z],16);Y[X++]=V>>8&255,Y[X++]=V&255}}if(!Y)throw Error(`Invalid ip address: ${W}`);return Y};G1.toString=function(W,G,X){G=~~G,X=X||W.length-G;let Y=[];if(X===4){for(let J=0;J<X;J++)Y.push(W[G+J]);Y=Y.join(".")}else if(X===16){for(let J=0;J<X;J+=2)Y.push(W.readUInt16BE(G+J).toString(16));Y=Y.join(":"),Y=Y.replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3"),Y=Y.replace(/:{3,4}/,"::")}return Y};var pl=/^(\d{1,3}\.){3,3}\d{1,3}$/,cl=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i;G1.isV4Format=function(W){return pl.test(W)};G1.isV6Format=function(W){return cl.test(W)};function FV(W){if(W===4)return"ipv4";if(W===6)return"ipv6";return W?W.toLowerCase():"ipv4"}G1.fromPrefixLen=function(W,G){if(W>32)G="ipv6";else G=FV(G);let X=4;if(G==="ipv6")X=16;let Y=Eq.alloc(X);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,G){W=G1.toBuffer(W),G=G1.toBuffer(G);let X=Eq.alloc(Math.max(W.length,G.length)),Y;if(W.length===G.length)for(Y=0;Y<W.length;Y++)X[Y]=W[Y]&G[Y];else if(G.length===4)for(Y=0;Y<G.length;Y++)X[Y]=W[W.length-4+Y]&G[Y];else{for(Y=0;Y<X.length-6;Y++)X[Y]=0;X[10]=255,X[11]=255;for(Y=0;Y<W.length;Y++)X[Y+12]=W[Y]&G[Y+12];Y+=12}for(;Y<X.length;Y++)X[Y]=0;return G1.toString(X)};G1.cidr=function(W){let G=W.split("/"),X=G[0];if(G.length!==2)throw Error(`invalid CIDR subnet: ${X}`);let Y=G1.fromPrefixLen(parseInt(G[1],10));return G1.mask(X,Y)};G1.subnet=function(W,G){let X=G1.toLong(G1.mask(W,G)),Y=G1.toBuffer(G),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(X),firstAddress:Z<=2?G1.fromLong(X):G1.fromLong(X+1),lastAddress:Z<=2?G1.fromLong(X+Z-1):G1.fromLong(X+Z-2),broadcastAddress:G1.fromLong(X+Z-1),subnetMask:G,subnetMaskLength:J,numHosts:Z<=2?Z:Z-2,length:Z,contains(V){return X===G1.toLong(G1.mask(V,G))}}};G1.cidrSubnet=function(W){let G=W.split("/"),X=G[0];if(G.length!==2)throw Error(`invalid CIDR subnet: ${X}`);let Y=G1.fromPrefixLen(parseInt(G[1],10));return G1.subnet(X,Y)};G1.not=function(W){let G=G1.toBuffer(W);for(let X=0;X<G.length;X++)G[X]=255^G[X];return G1.toString(G)};G1.or=function(W,G){if(W=G1.toBuffer(W),G=G1.toBuffer(G),W.length===G.length){for(let Z=0;Z<W.length;++Z)W[Z]|=G[Z];return G1.toString(W)}let X=W,Y=G;if(G.length>W.length)X=G,Y=W;let J=X.length-Y.length;for(let Z=J;Z<X.length;++Z)X[Z]|=Y[Z-J];return G1.toString(X)};G1.isEqual=function(W,G){if(W=G1.toBuffer(W),G=G1.toBuffer(G),W.length===G.length){for(let Y=0;Y<W.length;Y++)if(W[Y]!==G[Y])return!1;return!0}if(G.length===4){let Y=G;G=W,W=Y}for(let Y=0;Y<10;Y++)if(G[Y]!==0)return!1;let X=G.readUInt16BE(10);if(X!==0&&X!==65535)return!1;for(let Y=0;Y<4;Y++)if(W[Y]!==G[Y+12])return!1;return!0};G1.isPrivate=function(W){if(G1.isLoopback(W))return!0;if(!G1.isV6Format(W)){let G=G1.normalizeToLong(W);if(G<0)throw Error("invalid ipv4 address");W=G1.fromLong(G)}return/^(::f{4}:)?10\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^(::f{4}:)?192\.168\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^(::f{4}:)?172\.(1[6-9]|2\d|30|31)\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^(::f{4}:)?169\.254\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^f[cd][0-9a-f]{2}:/i.test(W)||/^fe80:/i.test(W)||/^::1$/.test(W)||/^::$/.test(W)};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,G){let X=fl.networkInterfaces();if(G=FV(G),W&&W!=="private"&&W!=="public"){let J=X[W].filter((Z)=>{return FV(Z.family)===G});if(J.length===0)return;return J[0].address}let Y=Object.keys(X).map((J)=>{let Z=X[J].filter((V)=>{if(V.family=FV(V.family),V.family!==G||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(G):Y[0]};G1.toLong=function(W){let G=0;return W.split(".").forEach((X)=>{G<<=8,G+=parseInt(X)}),G>>>0};G1.fromLong=function(W){return`${W>>>24}.${W>>16&255}.${W>>8&255}.${W&255}`};G1.normalizeToLong=function(W){let G=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(G.some(isNaN))return-1;let X=0;switch(G.length){case 1:X=G[0];break;case 2:if(G[0]>255||G[1]>16777215)return-1;X=G[0]<<24|G[1]&16777215;break;case 3:if(G[0]>255||G[1]>255||G[2]>65535)return-1;X=G[0]<<24|G[1]<<16|G[2]&65535;break;case 4:if(G.some((J)=>J>255))return-1;X=G[0]<<24|G[1]<<16|G[2]<<8|G[3];break;default:return-1}return X>>>0}});var L$=Z1((pq0,P$)=>{P$.exports=function W(G,X){if(G===X)return!0;if(G&&X&&typeof G=="object"&&typeof X=="object"){if(G.constructor!==X.constructor)return!1;var Y,J,Z;if(Array.isArray(G)){if(Y=G.length,Y!=X.length)return!1;for(J=Y;J--!==0;)if(!W(G[J],X[J]))return!1;return!0}if(G.constructor===RegExp)return G.source===X.source&&G.flags===X.flags;if(G.valueOf!==Object.prototype.valueOf)return G.valueOf()===X.valueOf();if(G.toString!==Object.prototype.toString)return G.toString()===X.toString();if(Z=Object.keys(G),Y=Z.length,Y!==Object.keys(X).length)return!1;for(J=Y;J--!==0;)if(!Object.prototype.hasOwnProperty.call(X,Z[J]))return!1;for(J=Y;J--!==0;){var V=Z[J];if(!W(G[V],X[V]))return!1}return!0}return G!==G&&X!==X}});var B$=Z1((ll)=>{ll.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};ll.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 E$=Z1((nl)=>{nl.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};nl.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 $$=Z1((al)=>{al.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};al.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 F$=Z1((el)=>{el.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};el.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 S$=Z1((Xd)=>{Xd.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}`};Xd.toCode=function(W){if(typeof W==="number")return W;if(!W)return-1;switch(W.toUpperCase()){case"OPTION_0":return 0;case"LLQ":return 1;case"UL":return 2;case"NSID":return 3;case"OPTION_4":return 4;case"DAU":return 5;case"DHU":return 6;case"N3U":return 7;case"CLIENT_SUBNET":return 8;case"EXPIRE":return 9;case"COOKIE":return 10;case"TCP_KEEPALIVE":return 11;case"PADDING":return 12;case"CHAIN":return 13;case"KEY_TAG":return 14;case"DEVICEID":return 26946;case"OPTION_65535":return 65535}let G=W.match(/_(\d+)$/);if(G)return parseInt(G[1],10);return-1}});var _$=Z1((k$,sj)=>{var x$=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 G=/^(\d{1,3}\.){3,3}\d{1,3}$/,X=4,Y=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i,J=16,Z={name:"v4",size:X,isFormat:(H)=>G.test(H),encode(H,I,w){w=~~w,I=I||new Uint8Array(w+X);let O=H.length,M=0;for(let S=0;S<O;){let v=H.charCodeAt(S++);if(v===46)I[w++]=M,M=0;else M=M*10+(v-48)}return I[w]=M,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,M=-1,S=0,v=0,f=!0,g=!1;I=I||new Uint8Array(w+J);for(let c=0;c<H.length;c++){let l=H.charCodeAt(c);if(l===58){if(f){if(M!==-1){if(w<O)I[w]=0;if(w<O-1)I[w+1]=0;w+=2}else if(w<O)M=w}else{if(g===!0){if(w<O)I[w]=v;w++}else{if(w<O)I[w]=S>>8;if(w<O-1)I[w+1]=S&255;w+=2}S=0,v=0}f=!0,g=!1}else if(l===46){if(w<O)I[w]=v;w++,v=0,S=0,f=!1,g=!0}else{if(f=!1,l>=97)l-=87;else if(l>=65)l-=55;else l-=48,v=v*10+l;S=(S<<4)+l}}if(f===!1)if(g===!0){if(w<O)I[w]=v;w++}else{if(w<O)I[w]=S>>8;if(w<O-1)I[w+1]=S&255;w+=2}else if(M===0){if(w<O)I[w]=0;if(w<O-1)I[w+1]=0;w+=2}else if(M!==-1){w+=2;for(let c=Math.min(w-1,O-1);c>=M+2;c--)I[c]=I[c-2];I[M]=0,I[M+1]=0,M=w}if(M!==w&&M!==-1){if(w>O-2)w=O-2;while(O>M)I[--O]=w<O&&w>M?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 x$});else if(typeof sj==="object"&&typeof k$==="object")sj.exports=x$});var y$=Z1((Nd)=>{var J1=k8("buffer").Buffer,b4=B$(),Zd=E$(),Vd=$$(),Fq=F$(),WK=S$(),wG=_$(),y0=Nd.name={};y0.encode=function(W,G,X,{mail:Y=!1}={}){if(!G)G=J1.alloc(y0.encodingLength(W));if(!X)X=0;let J=X,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=G.write(V[U],X+1);G[X]=Q,X+=Q+1}}return G[X++]=0,y0.encode.bytes=X-J,G};y0.encode.bytes=0;y0.decode=function(W,G,{mail:X=!1}={}){if(!G)G=0;let Y=[],J=G,Z=0,V=0,U=!1;while(!0){if(G>=W.length)throw Error("Cannot decode name (buffer overflow)");let Q=W[G++];if(V+=U?0:1,Q===0)break;else if((Q&192)===0){if(G+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",G,G+Q);if(X)N=N.replace(/\./g,"\\.");Y.push(N),G+=Q,V+=U?0:Q}else if((Q&192)===192){if(G+1>W.length)throw Error("Cannot decode name (buffer overflow)");let N=W.readUInt16BE(G-1)-49152;if(N>=J)throw Error("Cannot decode name (bad pointer)");G=N,J=N,V+=U?0:1,U=!0}else throw Error("Cannot decode name (bad label)")}return y0.decode.bytes=V,Y.length===0?".":Y.join(".")};y0.decode.bytes=0;y0.encodingLength=function(W){if(W==="."||W==="..")return 1;return J1.byteLength(W.replace(/^\.|\.$/gm,""))+2};var k1={};k1.encode=function(W,G,X){if(!G)G=J1.alloc(k1.encodingLength(W));if(!X)X=0;let Y=G.write(W,X+1);return G[X]=Y,k1.encode.bytes=Y+1,G};k1.encode.bytes=0;k1.decode=function(W,G){if(!G)G=0;let X=W[G],Y=W.toString("utf-8",G+1,G+1+X);return k1.decode.bytes=X+1,Y};k1.decode.bytes=0;k1.encodingLength=function(W){return J1.byteLength(W)+1};var t5={};t5.encode=function(W,G,X){if(!G)G=t5.encodingLength(W);if(!X)X=0;let Y=(W.flags||0)&32767,J=W.type==="response"?32768:0;return G.writeUInt16BE(W.id||0,X),G.writeUInt16BE(Y|J,X+2),G.writeUInt16BE(W.questions.length,X+4),G.writeUInt16BE(W.answers.length,X+6),G.writeUInt16BE(W.authorities.length,X+8),G.writeUInt16BE(W.additionals.length,X+10),G};t5.encode.bytes=12;t5.decode=function(W,G){if(!G)G=0;if(W.length<12)throw Error("Header must be 12 bytes");let X=W.readUInt16BE(G+2);return{id:W.readUInt16BE(G),type:X&32768?"response":"query",flags:X&32767,flag_qr:(X>>15&1)===1,opcode:Vd.toString(X>>11&15),flag_aa:(X>>10&1)===1,flag_tc:(X>>9&1)===1,flag_rd:(X>>8&1)===1,flag_ra:(X>>7&1)===1,flag_z:(X>>6&1)===1,flag_ad:(X>>5&1)===1,flag_cd:(X>>4&1)===1,rcode:Zd.toString(X&15),questions:Array(W.readUInt16BE(G+4)),answers:Array(W.readUInt16BE(G+6)),authorities:Array(W.readUInt16BE(G+8)),additionals:Array(W.readUInt16BE(G+10))}};t5.decode.bytes=12;t5.encodingLength=function(){return 12};var S4=Nd.unknown={};S4.encode=function(W,G,X){if(!G)G=J1.alloc(S4.encodingLength(W));if(!X)X=0;return G.writeUInt16BE(W.length,X),W.copy(G,X+2),S4.encode.bytes=W.length+2,G};S4.encode.bytes=0;S4.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G),Y=W.slice(G+2,G+2+X);return S4.decode.bytes=X+2,Y};S4.decode.bytes=0;S4.encodingLength=function(W){return W.length+2};var x4=Nd.ns={};x4.encode=function(W,G,X){if(!G)G=J1.alloc(x4.encodingLength(W));if(!X)X=0;return y0.encode(W,G,X+2),G.writeUInt16BE(y0.encode.bytes,X),x4.encode.bytes=y0.encode.bytes+2,G};x4.encode.bytes=0;x4.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G),Y=y0.decode(W,G+2);return x4.decode.bytes=X+2,Y};x4.decode.bytes=0;x4.encodingLength=function(W){return y0.encodingLength(W)+2};var k4=Nd.soa={};k4.encode=function(W,G,X){if(!G)G=J1.alloc(k4.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,y0.encode(W.mname,G,X),X+=y0.encode.bytes,y0.encode(W.rname,G,X,{mail:!0}),X+=y0.encode.bytes,G.writeUInt32BE(W.serial||0,X),X+=4,G.writeUInt32BE(W.refresh||0,X),X+=4,G.writeUInt32BE(W.retry||0,X),X+=4,G.writeUInt32BE(W.expire||0,X),X+=4,G.writeUInt32BE(W.minimum||0,X),X+=4,G.writeUInt16BE(X-Y-2,Y),k4.encode.bytes=X-Y,G};k4.encode.bytes=0;k4.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.mname=y0.decode(W,G),G+=y0.decode.bytes,Y.rname=y0.decode(W,G,{mail:!0}),G+=y0.decode.bytes,Y.serial=W.readUInt32BE(G),G+=4,Y.refresh=W.readUInt32BE(G),G+=4,Y.retry=W.readUInt32BE(G),G+=4,Y.expire=W.readUInt32BE(G),G+=4,Y.minimum=W.readUInt32BE(G),G+=4,k4.decode.bytes=G-X,Y};k4.decode.bytes=0;k4.encodingLength=function(W){return 22+y0.encodingLength(W.mname)+y0.encodingLength(W.rname)};var _4=Nd.txt={};_4.encode=function(W,G,X){if(!Array.isArray(W))W=[W];for(let J=0;J<W.length;J++){if(typeof W[J]==="string")W[J]=J1.from(W[J]);if(!J1.isBuffer(W[J]))throw Error("Must be a Buffer")}if(!G)G=J1.alloc(_4.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,W.forEach(function(J){G[X++]=J.length,J.copy(G,X,0,J.length),X+=J.length}),G.writeUInt16BE(X-Y-2,Y),_4.encode.bytes=X-Y,G};_4.encode.bytes=0;_4.decode=function(W,G){if(!G)G=0;let X=G,Y=W.readUInt16BE(G);G+=2;let J=[];while(Y>0){let Z=W[G++];if(--Y,Y<Z)throw Error("Buffer overflow");J.push(W.slice(G,G+Z)),G+=Z,Y-=Z}return _4.decode.bytes=G-X,J};_4.decode.bytes=0;_4.encodingLength=function(W){if(!Array.isArray(W))W=[W];let G=2;return W.forEach(function(X){if(typeof X==="string")G+=J1.byteLength(X)+1;else G+=X.length+1}),G};var y4=Nd.null={};y4.encode=function(W,G,X){if(!G)G=J1.alloc(y4.encodingLength(W));if(!X)X=0;if(typeof W==="string")W=J1.from(W);if(!W)W=J1.alloc(0);let Y=X;X+=2;let J=W.length;return W.copy(G,X,0,J),X+=J,G.writeUInt16BE(X-Y-2,Y),y4.encode.bytes=X-Y,G};y4.encode.bytes=0;y4.decode=function(W,G){if(!G)G=0;let X=G,Y=W.readUInt16BE(G);G+=2;let J=W.slice(G,G+Y);return G+=Y,y4.decode.bytes=G-X,J};y4.decode.bytes=0;y4.encodingLength=function(W){if(!W)return 2;return(J1.isBuffer(W)?W.length:J1.byteLength(W))+2};var v4=Nd.hinfo={};v4.encode=function(W,G,X){if(!G)G=J1.alloc(v4.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,k1.encode(W.cpu,G,X),X+=k1.encode.bytes,k1.encode(W.os,G,X),X+=k1.encode.bytes,G.writeUInt16BE(X-Y-2,Y),v4.encode.bytes=X-Y,G};v4.encode.bytes=0;v4.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.cpu=k1.decode(W,G),G+=k1.decode.bytes,Y.os=k1.decode(W,G),G+=k1.decode.bytes,v4.decode.bytes=G-X,Y};v4.decode.bytes=0;v4.encodingLength=function(W){return k1.encodingLength(W.cpu)+k1.encodingLength(W.os)+2};var a5=Nd.ptr={},Ud=Nd.cname=a5,Qd=Nd.dname=a5;a5.encode=function(W,G,X){if(!G)G=J1.alloc(a5.encodingLength(W));if(!X)X=0;return y0.encode(W,G,X+2),G.writeUInt16BE(y0.encode.bytes,X),a5.encode.bytes=y0.encode.bytes+2,G};a5.encode.bytes=0;a5.decode=function(W,G){if(!G)G=0;let X=y0.decode(W,G+2);return a5.decode.bytes=y0.decode.bytes+2,X};a5.decode.bytes=0;a5.encodingLength=function(W){return y0.encodingLength(W)+2};var g4=Nd.srv={};g4.encode=function(W,G,X){if(!G)G=J1.alloc(g4.encodingLength(W));if(!X)X=0;G.writeUInt16BE(W.priority||0,X+2),G.writeUInt16BE(W.weight||0,X+4),G.writeUInt16BE(W.port||0,X+6),y0.encode(W.target,G,X+8);let Y=y0.encode.bytes+6;return G.writeUInt16BE(Y,X),g4.encode.bytes=Y+2,G};g4.encode.bytes=0;g4.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G),Y={};return Y.priority=W.readUInt16BE(G+2),Y.weight=W.readUInt16BE(G+4),Y.port=W.readUInt16BE(G+6),Y.target=y0.decode(W,G+8),g4.decode.bytes=X+2,Y};g4.decode.bytes=0;g4.encodingLength=function(W){return 8+y0.encodingLength(W.target)};var q5=Nd.caa={};q5.ISSUER_CRITICAL=128;q5.encode=function(W,G,X){let Y=q5.encodingLength(W);if(!G)G=J1.alloc(q5.encodingLength(W));if(!X)X=0;if(W.issuerCritical)W.flags=q5.ISSUER_CRITICAL;return G.writeUInt16BE(Y-2,X),X+=2,G.writeUInt8(W.flags||0,X),X+=1,k1.encode(W.tag,G,X),X+=k1.encode.bytes,G.write(W.value,X),X+=J1.byteLength(W.value),q5.encode.bytes=Y,G};q5.encode.bytes=0;q5.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G);G+=2;let Y=G,J={};return J.flags=W.readUInt8(G),G+=1,J.tag=k1.decode(W,G),G+=k1.decode.bytes,J.value=W.toString("utf-8",G,Y+X),J.issuerCritical=!!(J.flags&q5.ISSUER_CRITICAL),q5.decode.bytes=X+2,J};q5.decode.bytes=0;q5.encodingLength=function(W){return k1.encodingLength(W.tag)+k1.encodingLength(W.value)+2};var o6=Nd.mx={};o6.encode=function(W,G,X){if(!G)G=J1.alloc(o6.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,G.writeUInt16BE(W.preference||0,X),X+=2,y0.encode(W.exchange,G,X),X+=y0.encode.bytes,G.writeUInt16BE(X-Y-2,Y),o6.encode.bytes=X-Y,G};o6.encode.bytes=0;o6.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.preference=W.readUInt16BE(G),G+=2,Y.exchange=y0.decode(W,G),G+=y0.decode.bytes,o6.decode.bytes=G-X,Y};o6.encodingLength=function(W){return 4+y0.encodingLength(W.exchange)};var u4=Nd.a={};u4.encode=function(W,G,X){if(!G)G=J1.alloc(u4.encodingLength(W));if(!X)X=0;return G.writeUInt16BE(4,X),X+=2,wG.v4.encode(W,G,X),u4.encode.bytes=6,G};u4.encode.bytes=0;u4.decode=function(W,G){if(!G)G=0;G+=2;let X=wG.v4.decode(W,G);return u4.decode.bytes=6,X};u4.decode.bytes=0;u4.encodingLength=function(){return 6};var h4=Nd.aaaa={};h4.encode=function(W,G,X){if(!G)G=J1.alloc(h4.encodingLength(W));if(!X)X=0;return G.writeUInt16BE(16,X),X+=2,wG.v6.encode(W,G,X),h4.encode.bytes=18,G};h4.encode.bytes=0;h4.decode=function(W,G){if(!G)G=0;G+=2;let X=wG.v6.decode(W,G);return h4.decode.bytes=18,X};h4.decode.bytes=0;h4.encodingLength=function(){return 18};var a9=Nd.option={};a9.encode=function(W,G,X){if(!G)G=J1.alloc(a9.encodingLength(W));if(!X)X=0;let Y=X,J=WK.toCode(W.code);if(G.writeUInt16BE(J,X),X+=2,W.data)G.writeUInt16BE(W.data.length,X),X+=2,W.data.copy(G,X),X+=W.data.length;else switch(J){case 8:let Z=W.sourcePrefixLength||0,V=W.family||wG.familyOf(W.ip),U=wG.encode(W.ip,J1.alloc),Q=Math.ceil(Z/8);G.writeUInt16BE(Q+4,X),X+=2,G.writeUInt16BE(V,X),X+=2,G.writeUInt8(Z,X++),G.writeUInt8(W.scopePrefixLength||0,X++),U.copy(G,X,0,Q),X+=Q;break;case 11:if(W.timeout)G.writeUInt16BE(2,X),X+=2,G.writeUInt16BE(W.timeout,X),X+=2;else G.writeUInt16BE(0,X),X+=2;break;case 12:let N=W.length||0;G.writeUInt16BE(N,X),X+=2,G.fill(0,X,X+N),X+=N;break;case 14:let q=W.tags.length*2;G.writeUInt16BE(q,X),X+=2;for(let A of W.tags)G.writeUInt16BE(A,X),X+=2;break;default:throw Error(`Unknown roption code: ${W.code}`)}return a9.encode.bytes=X-Y,G};a9.encode.bytes=0;a9.decode=function(W,G){if(!G)G=0;let X={};X.code=W.readUInt16BE(G),X.type=WK.toString(X.code),G+=2;let Y=W.readUInt16BE(G);switch(G+=2,X.data=W.slice(G,G+Y),X.code){case 8:X.family=W.readUInt16BE(G),G+=2,X.sourcePrefixLength=W.readUInt8(G++),X.scopePrefixLength=W.readUInt8(G++);let J=J1.alloc(X.family===1?4:16);W.copy(J,0,G,G+Y-4),X.ip=wG.decode(J);break;case 11:if(Y>0)X.timeout=W.readUInt16BE(G),G+=2;break;case 14:X.tags=[];for(let Z=0;Z<Y;Z+=2)X.tags.push(W.readUInt16BE(G)),G+=2}return a9.decode.bytes=Y+4,X};a9.decode.bytes=0;a9.encodingLength=function(W){if(W.data)return W.data.length+4;switch(WK.toCode(W.code)){case 8:let X=W.sourcePrefixLength||0;return Math.ceil(X/8)+8;case 11:return typeof W.timeout==="number"?6:4;case 12:return W.length+4;case 14:return 4+W.tags.length*2}throw Error(`Unknown roption code: ${W.code}`)};var A5=Nd.opt={};A5.encode=function(W,G,X){if(!G)G=J1.alloc(A5.encodingLength(W));if(!X)X=0;let Y=X,J=$Y(W,a9);return G.writeUInt16BE(J,X),X=SV(W,a9,G,X+2),A5.encode.bytes=X-Y,G};A5.encode.bytes=0;A5.decode=function(W,G){if(!G)G=0;let X=G,Y=[],J=W.readUInt16BE(G);G+=2;let Z=0;while(J>0)Y[Z++]=a9.decode(W,G),G+=a9.decode.bytes,J-=a9.decode.bytes;return A5.decode.bytes=G-X,Y};A5.decode.bytes=0;A5.encodingLength=function(W){return 2+$Y(W||[],a9)};var u9=Nd.dnskey={};u9.PROTOCOL_DNSSEC=3;u9.ZONE_KEY=128;u9.SECURE_ENTRYPOINT=32768;u9.encode=function(W,G,X){if(!G)G=J1.alloc(u9.encodingLength(W));if(!X)X=0;let Y=X,J=W.key;if(!J1.isBuffer(J))throw Error("Key must be a Buffer");return X+=2,G.writeUInt16BE(W.flags,X),X+=2,G.writeUInt8(u9.PROTOCOL_DNSSEC,X),X+=1,G.writeUInt8(W.algorithm,X),X+=1,J.copy(G,X,0,J.length),X+=J.length,u9.encode.bytes=X-Y,G.writeUInt16BE(u9.encode.bytes-2,Y),G};u9.encode.bytes=0;u9.decode=function(W,G){if(!G)G=0;let X=G;var Y={},J=W.readUInt16BE(G);if(G+=2,Y.flags=W.readUInt16BE(G),G+=2,W.readUInt8(G)!==u9.PROTOCOL_DNSSEC)throw Error("Protocol must be 3");return G+=1,Y.algorithm=W.readUInt8(G),G+=1,Y.key=W.slice(G,X+J+2),G+=Y.key.length,u9.decode.bytes=G-X,Y};u9.decode.bytes=0;u9.encodingLength=function(W){return 6+J1.byteLength(W.key)};var y7=Nd.rrsig={};y7.encode=function(W,G,X){if(!G)G=J1.alloc(y7.encodingLength(W));if(!X)X=0;let Y=X,J=W.signature;if(!J1.isBuffer(J))throw Error("Signature must be a Buffer");return X+=2,G.writeUInt16BE(b4.toType(W.typeCovered),X),X+=2,G.writeUInt8(W.algorithm,X),X+=1,G.writeUInt8(W.labels,X),X+=1,G.writeUInt32BE(W.originalTTL,X),X+=4,G.writeUInt32BE(W.expiration,X),X+=4,G.writeUInt32BE(W.inception,X),X+=4,G.writeUInt16BE(W.keyTag,X),X+=2,y0.encode(W.signersName,G,X),X+=y0.encode.bytes,J.copy(G,X,0,J.length),X+=J.length,y7.encode.bytes=X-Y,G.writeUInt16BE(y7.encode.bytes-2,Y),G};y7.encode.bytes=0;y7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},J=W.readUInt16BE(G);return G+=2,Y.typeCovered=b4.toString(W.readUInt16BE(G)),G+=2,Y.algorithm=W.readUInt8(G),G+=1,Y.labels=W.readUInt8(G),G+=1,Y.originalTTL=W.readUInt32BE(G),G+=4,Y.expiration=W.readUInt32BE(G),G+=4,Y.inception=W.readUInt32BE(G),G+=4,Y.keyTag=W.readUInt16BE(G),G+=2,Y.signersName=y0.decode(W,G),G+=y0.decode.bytes,Y.signature=W.slice(G,X+J+2),G+=Y.signature.length,y7.decode.bytes=G-X,Y};y7.decode.bytes=0;y7.encodingLength=function(W){return 20+y0.encodingLength(W.signersName)+J1.byteLength(W.signature)};var v7=Nd.rp={};v7.encode=function(W,G,X){if(!G)G=J1.alloc(v7.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,y0.encode(W.mbox||".",G,X,{mail:!0}),X+=y0.encode.bytes,y0.encode(W.txt||".",G,X),X+=y0.encode.bytes,v7.encode.bytes=X-Y,G.writeUInt16BE(v7.encode.bytes-2,Y),G};v7.encode.bytes=0;v7.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.mbox=y0.decode(W,G,{mail:!0})||".",G+=y0.decode.bytes,Y.txt=y0.decode(W,G)||".",G+=y0.decode.bytes,v7.decode.bytes=G-X,Y};v7.decode.bytes=0;v7.encodingLength=function(W){return 2+y0.encodingLength(W.mbox||".")+y0.encodingLength(W.txt||".")};var r8={};r8.encode=function(W,G,X){if(!G)G=J1.alloc(r8.encodingLength(W));if(!X)X=0;let Y=X;var J=[];for(var Z=0;Z<W.length;Z++){var V=b4.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=J1.from(J[Z]);G.writeUInt8(Z,X),X+=1,G.writeUInt8(U.length,X),X+=1,U.copy(G,X),X+=U.length}return r8.encode.bytes=X-Y,G};r8.encode.bytes=0;r8.decode=function(W,G,X){if(!G)G=0;let Y=G;var J=[];while(G-Y<X){var Z=W.readUInt8(G);G+=1;var V=W.readUInt8(G);G+=1;for(var U=0;U<V;U++){var Q=W.readUInt8(G+U);for(var N=0;N<8;N++)if(Q&1<<7-N){var q=b4.toString(Z<<8|U<<3|N);J.push(q)}}G+=V}return r8.decode.bytes=G-Y,J};r8.decode.bytes=0;r8.encodingLength=function(W){var G=[];for(var X=0;X<W.length;X++){var Y=b4.toType(W[X]);G[Y>>8]=Math.max(G[Y>>8]||0,Y&255)}var J=0;for(X=0;X<G.length;X++)if(G[X]!==void 0)J+=2+Math.ceil((G[X]+1)/8);return J};var g7=Nd.nsec={};g7.encode=function(W,G,X){if(!G)G=J1.alloc(g7.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,y0.encode(W.nextDomain,G,X),X+=y0.encode.bytes,r8.encode(W.rrtypes,G,X),X+=r8.encode.bytes,g7.encode.bytes=X-Y,G.writeUInt16BE(g7.encode.bytes-2,Y),G};g7.encode.bytes=0;g7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},J=W.readUInt16BE(G);return G+=2,Y.nextDomain=y0.decode(W,G),G+=y0.decode.bytes,Y.rrtypes=r8.decode(W,G,J-(G-X)),G+=r8.decode.bytes,g7.decode.bytes=G-X,Y};g7.decode.bytes=0;g7.encodingLength=function(W){return 2+y0.encodingLength(W.nextDomain)+r8.encodingLength(W.rrtypes)};var u7=Nd.nsec3={};u7.encode=function(W,G,X){if(!G)G=J1.alloc(u7.encodingLength(W));if(!X)X=0;let Y=X,J=W.salt;if(!J1.isBuffer(J))throw Error("salt must be a Buffer");let Z=W.nextDomain;if(!J1.isBuffer(Z))throw Error("nextDomain must be a Buffer");return X+=2,G.writeUInt8(W.algorithm,X),X+=1,G.writeUInt8(W.flags,X),X+=1,G.writeUInt16BE(W.iterations,X),X+=2,G.writeUInt8(J.length,X),X+=1,J.copy(G,X,0,J.length),X+=J.length,G.writeUInt8(Z.length,X),X+=1,Z.copy(G,X,0,Z.length),X+=Z.length,r8.encode(W.rrtypes,G,X),X+=r8.encode.bytes,u7.encode.bytes=X-Y,G.writeUInt16BE(u7.encode.bytes-2,Y),G};u7.encode.bytes=0;u7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},J=W.readUInt16BE(G);G+=2,Y.algorithm=W.readUInt8(G),G+=1,Y.flags=W.readUInt8(G),G+=1,Y.iterations=W.readUInt16BE(G),G+=2;let Z=W.readUInt8(G);G+=1,Y.salt=W.slice(G,G+Z),G+=Z;let V=W.readUInt8(G);return G+=1,Y.nextDomain=W.slice(G,G+V),G+=V,Y.rrtypes=r8.decode(W,G,J-(G-X)),G+=r8.decode.bytes,u7.decode.bytes=G-X,Y};u7.decode.bytes=0;u7.encodingLength=function(W){return 8+W.salt.length+W.nextDomain.length+r8.encodingLength(W.rrtypes)};var h7=Nd.ds={};h7.encode=function(W,G,X){if(!G)G=J1.alloc(h7.encodingLength(W));if(!X)X=0;let Y=X,J=W.digest;if(!J1.isBuffer(J))throw Error("Digest must be a Buffer");return X+=2,G.writeUInt16BE(W.keyTag,X),X+=2,G.writeUInt8(W.algorithm,X),X+=1,G.writeUInt8(W.digestType,X),X+=1,J.copy(G,X,0,J.length),X+=J.length,h7.encode.bytes=X-Y,G.writeUInt16BE(h7.encode.bytes-2,Y),G};h7.encode.bytes=0;h7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},J=W.readUInt16BE(G);return G+=2,Y.keyTag=W.readUInt16BE(G),G+=2,Y.algorithm=W.readUInt8(G),G+=1,Y.digestType=W.readUInt8(G),G+=1,Y.digest=W.slice(G,X+J+2),G+=Y.digest.length,h7.decode.bytes=G-X,Y};h7.decode.bytes=0;h7.encodingLength=function(W){return 6+J1.byteLength(W.digest)};var H5=Nd.sshfp={};H5.getFingerprintLengthForHashType=function(G){switch(G){case 1:return 20;case 2:return 32}};H5.encode=function(G,X,Y){if(!X)X=J1.alloc(H5.encodingLength(G));if(!Y)Y=0;let J=Y;Y+=2,X[Y]=G.algorithm,Y+=1,X[Y]=G.hash,Y+=1;let Z=J1.from(G.fingerprint.toUpperCase(),"hex");if(Z.length!==H5.getFingerprintLengthForHashType(G.hash))throw Error("Invalid fingerprint length");return Z.copy(X,Y),Y+=Z.byteLength,H5.encode.bytes=Y-J,X.writeUInt16BE(H5.encode.bytes-2,J),X};H5.encode.bytes=0;H5.decode=function(G,X){if(!X)X=0;let Y=X,J={};X+=2,J.algorithm=G[X],X+=1,J.hash=G[X],X+=1;let Z=H5.getFingerprintLengthForHashType(J.hash);return J.fingerprint=G.slice(X,X+Z).toString("hex").toUpperCase(),X+=Z,H5.decode.bytes=X-Y,J};H5.decode.bytes=0;H5.encodingLength=function(W){return 4+J1.from(W.fingerprint,"hex").byteLength};var b7=Nd.naptr={};b7.encode=function(W,G,X){if(!G)G=J1.alloc(b7.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,G.writeUInt16BE(W.order||0,X),X+=2,G.writeUInt16BE(W.preference||0,X),X+=2,k1.encode(W.flags,G,X),X+=k1.encode.bytes,k1.encode(W.services,G,X),X+=k1.encode.bytes,k1.encode(W.regexp,G,X),X+=k1.encode.bytes,y0.encode(W.replacement,G,X),X+=y0.encode.bytes,b7.encode.bytes=X-Y,G.writeUInt16BE(b7.encode.bytes-2,Y),G};b7.encode.bytes=0;b7.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.order=W.readUInt16BE(G),G+=2,Y.preference=W.readUInt16BE(G),G+=2,Y.flags=k1.decode(W,G),G+=k1.decode.bytes,Y.services=k1.decode(W,G),G+=k1.decode.bytes,Y.regexp=k1.decode(W,G),G+=k1.decode.bytes,Y.replacement=y0.decode(W,G),G+=y0.decode.bytes,b7.decode.bytes=G-X,Y};b7.decode.bytes=0;b7.encodingLength=function(W){return k1.encodingLength(W.flags)+k1.encodingLength(W.services)+k1.encodingLength(W.regexp)+y0.encodingLength(W.replacement)+6};var m7=Nd.tlsa={};m7.encode=function(W,G,X){if(!G)G=J1.alloc(m7.encodingLength(W));if(!X)X=0;let Y=X,J=W.certificate;if(!J1.isBuffer(J))throw Error("Certificate must be a Buffer");return X+=2,G.writeUInt8(W.usage,X),X+=1,G.writeUInt8(W.selector,X),X+=1,G.writeUInt8(W.matchingType,X),X+=1,J.copy(G,X,0,J.length),X+=J.length,m7.encode.bytes=X-Y,G.writeUInt16BE(m7.encode.bytes-2,Y),G};m7.encode.bytes=0;m7.decode=function(W,G){if(!G)G=0;let X=G,Y={},J=W.readUInt16BE(G);return G+=2,Y.usage=W.readUInt8(G),G+=1,Y.selector=W.readUInt8(G),G+=1,Y.matchingType=W.readUInt8(G),G+=1,Y.certificate=W.slice(G,X+J+2),G+=Y.certificate.length,m7.decode.bytes=G-X,Y};m7.decode.bytes=0;m7.encodingLength=function(W){return 5+J1.byteLength(W.certificate)};var GK=Nd.record=function(W){switch(W.toUpperCase()){case"A":return u4;case"PTR":return a5;case"CNAME":return Ud;case"DNAME":return Qd;case"TXT":return _4;case"NULL":return y4;case"AAAA":return h4;case"SRV":return g4;case"HINFO":return v4;case"CAA":return q5;case"NS":return x4;case"SOA":return k4;case"MX":return o6;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 S4},Z9=Nd.answer={};Z9.encode=function(W,G,X){if(!G)G=J1.alloc(Z9.encodingLength(W));if(!X)X=0;let Y=X;if(y0.encode(W.name,G,X),X+=y0.encode.bytes,G.writeUInt16BE(b4.toType(W.type),X),W.type.toUpperCase()==="OPT"){if(W.name!==".")throw Error("OPT name must be root.");G.writeUInt16BE(W.udpPayloadSize||4096,X+2),G.writeUInt8(W.extendedRcode||0,X+4),G.writeUInt8(W.ednsVersion||0,X+5),G.writeUInt16BE(W.flags||0,X+6),X+=8,A5.encode(W.options||[],G,X),X+=A5.encode.bytes}else{let J=Fq.toClass(W.class===void 0?"IN":W.class);if(W.flush)J|=32768;G.writeUInt16BE(J,X+2),G.writeUInt32BE(W.ttl||0,X+4),X+=8;let Z=GK(W.type);Z.encode(W.data,G,X),X+=Z.encode.bytes}return Z9.encode.bytes=X-Y,G};Z9.encode.bytes=0;Z9.decode=function(W,G){if(!G)G=0;let X={},Y=G;if(X.name=y0.decode(W,G),G+=y0.decode.bytes,X.type=b4.toString(W.readUInt16BE(G)),X.type==="OPT")X.udpPayloadSize=W.readUInt16BE(G+2),X.extendedRcode=W.readUInt8(G+4),X.ednsVersion=W.readUInt8(G+5),X.flags=W.readUInt16BE(G+6),X.flag_do=(X.flags>>15&1)===1,X.options=A5.decode(W,G+8),G+=8+A5.decode.bytes;else{let J=W.readUInt16BE(G+2);X.ttl=W.readUInt32BE(G+4),X.class=Fq.toString(J&-32769),X.flush=!!(J&32768);let Z=GK(X.type);X.data=Z.decode(W,G+8),G+=8+Z.decode.bytes}return Z9.decode.bytes=G-Y,X};Z9.decode.bytes=0;Z9.encodingLength=function(W){let G=W.data!==null&&W.data!==void 0?W.data:W.options;return y0.encodingLength(W.name)+8+GK(W.type).encodingLength(G)};var s5=Nd.question={};s5.encode=function(W,G,X){if(!G)G=J1.alloc(s5.encodingLength(W));if(!X)X=0;let Y=X;return y0.encode(W.name,G,X),X+=y0.encode.bytes,G.writeUInt16BE(b4.toType(W.type),X),X+=2,G.writeUInt16BE(Fq.toClass(W.class===void 0?"IN":W.class),X),X+=2,s5.encode.bytes=X-Y,W};s5.encode.bytes=0;s5.decode=function(W,G){if(!G)G=0;let X=G,Y={};if(Y.name=y0.decode(W,G),G+=y0.decode.bytes,Y.type=b4.toString(W.readUInt16BE(G)),G+=2,Y.class=Fq.toString(W.readUInt16BE(G)),G+=2,!!(Y.class&32768))Y.class&=-32769;return s5.decode.bytes=G-X,Y};s5.decode.bytes=0;s5.encodingLength=function(W){return y0.encodingLength(W.name)+4};Nd.AUTHORITATIVE_ANSWER=1024;Nd.TRUNCATED_RESPONSE=512;Nd.RECURSION_DESIRED=256;Nd.RECURSION_AVAILABLE=128;Nd.AUTHENTIC_DATA=32;Nd.CHECKING_DISABLED=16;Nd.DNSSEC_OK=32768;Nd.encode=function(W,G,X){let Y=!G;if(Y)G=J1.alloc(Nd.encodingLength(W));if(!X)X=0;let J=X;if(!W.questions)W.questions=[];if(!W.answers)W.answers=[];if(!W.authorities)W.authorities=[];if(!W.additionals)W.additionals=[];if(t5.encode(W,G,X),X+=t5.encode.bytes,X=SV(W.questions,s5,G,X),X=SV(W.answers,Z9,G,X),X=SV(W.authorities,Z9,G,X),X=SV(W.additionals,Z9,G,X),Nd.encode.bytes=X-J,Y&&Nd.encode.bytes!==G.length)return G.slice(0,Nd.encode.bytes);return G};Nd.encode.bytes=0;Nd.decode=function(W,G){if(!G)G=0;let X=G,Y=t5.decode(W,G);return G+=t5.decode.bytes,G=$q(Y.questions,s5,W,G),G=$q(Y.answers,Z9,W,G),G=$q(Y.authorities,Z9,W,G),G=$q(Y.additionals,Z9,W,G),Nd.decode.bytes=G-X,Y};Nd.decode.bytes=0;Nd.encodingLength=function(W){return t5.encodingLength(W)+$Y(W.questions||[],s5)+$Y(W.answers||[],Z9)+$Y(W.authorities||[],Z9)+$Y(W.additionals||[],Z9)};Nd.streamEncode=function(W){let G=Nd.encode(W),X=J1.alloc(2);X.writeUInt16BE(G.byteLength);let Y=J1.concat([X,G]);return Nd.streamEncode.bytes=Y.byteLength,Y};Nd.streamEncode.bytes=0;Nd.streamDecode=function(W){let G=W.readUInt16BE(0);if(W.byteLength<G+2)return null;let X=Nd.decode(W.slice(2));return Nd.streamDecode.bytes=Nd.decode.bytes,X};Nd.streamDecode.bytes=0;function $Y(W,G){let X=0;for(let Y=0;Y<W.length;Y++)X+=G.encodingLength(W[Y]);return X}function SV(W,G,X,Y){for(let J=0;J<W.length;J++)G.encode(W[J],X,Y),Y+=G.encode.bytes;return Y}function $q(W,G,X,Y){for(let J=0;J<W.length;J++)W[J]=G.decode(X,Y),Y+=G.decode.bytes;return Y}});var u$=Z1((PH0,g$)=>{var v$=Rd;process.nextTick(Md,42);g$.exports=Od;function Od(W){var G=Y;return X;function X(J){G(J||Cd)}function Y(J){var Z=[J];G=V,W(U);function V(Q){Z.push(Q)}function U(Q){var N=arguments;G=Dd(Q)?Y:q;while(Z.length)q(Z.shift());function q(A){v$(Td,A,N)}}}}function Dd(W){return Object.prototype.toString.call(W)==="[object Error]"}function Cd(){}function Td(W,G){W.apply(null,G)}function Md(W){if(W===42)v$=process.nextTick}function Rd(W,G,X){process.nextTick(function(){W(G,X)})}});var m$=Z1((LH0,b$)=>{var XK=y$(),Pd=k8("dgram"),Ld=u$(),Bd=k8("events"),JK=k8("os"),YK=function(){};b$.exports=function(W){if(!W)W={};var G=new Bd.EventEmitter,X=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:X},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||Pd.createSocket({type:Y,reuseAddr:W.reuseAddr!==!1,toString:function(){return Y}});N.on("error",function(A){if(A.code==="EACCES"||A.code==="EADDRINUSE")G.emit("error",A);else G.emit("warning",A)}),N.on("message",function(A,H){try{A=XK.decode(A)}catch(I){G.emit("warning",I);return}if(G.emit("packet",A,H),A.type==="query")G.emit("query",A,H);if(A.type==="response")G.emit("response",A,H)}),N.on("listening",function(){if(!X)X=Z.port=N.address().port;if(W.multicast!==!1)G.update(),Q=setInterval(G.update,5000),N.setMulticastTTL(W.ttl||255),N.setMulticastLoopback(W.loopback!==!1)});var q=Ld(function(A){if(!X||W.bind===!1)return A(null);N.once("error",A),N.bind(X,W.bind||W.interface,function(){N.removeListener("error",A),A(null)})});return q(function(A){if(A)return G.emit("error",A);G.emit("ready")}),G.send=function(A,H,I){if(typeof H==="function")return G.send(A,null,H);if(!I)I=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 M=XK.encode(A);N.send(M,0,M.length,H.port,H.address||H.host,I)}},G.response=G.respond=function(A,H,I){if(Array.isArray(A))A={answers:A};A.type="response",A.flags=(A.flags||0)|XK.AUTHORITATIVE_ANSWER,G.send(A,H,I)},G.query=function(A,H,I,w){if(typeof H==="function")return G.query(A,null,null,H);if(typeof H==="object"&&H&&H.port)return G.query(A,null,H,I);if(typeof I==="function")return G.query(A,H,null,I);if(!w)w=YK;if(typeof A==="string")A=[{name:A,type:H||"ANY"}];if(Array.isArray(A))A={type:"query",questions:A};A.type="query",G.send(A,I,w)},G.destroy=function(A){if(!A)A=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)},G.update=function(){var A=W.interface?[].concat(W.interface):$d(),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){G.emit("warning",O)}}if(H){if(N.setMulticastInterface)try{N.setMulticastInterface(W.interface||Ed())}catch(O){G.emit("warning",O)}G.emit("networkInterface")}},G};function Ed(){var W=JK.networkInterfaces(),G=Object.keys(W);for(var X=0;X<G.length;X++){var Y=W[G[X]];for(var J=0;J<Y.length;J++){var Z=Y[J];if(h$(Z.family)&&!Z.internal){if(JK.platform()==="darwin"&&G[X]==="en0")return Z.address;return"0.0.0.0"}}}return"127.0.0.1"}function $d(){var W=JK.networkInterfaces(),G=Object.keys(W),X=[];for(var Y=0;Y<G.length;Y++){var J=W[G[Y]];for(var Z=0;Z<J.length;Z++){var V=J[Z];if(h$(V.family)){X.push(V.address);break}}}return X}function h$(W){return W===4||W==="IPv4"}});import{Database as Tt}from"bun:sqlite";import{mkdirSync as Mt}from"fs";import{dirname as Rt}from"path";function ND(W){let G=W.length,X=0,Y=0;while(Y<G){let J=W.charCodeAt(Y++);if((J&4294967168)===0){X++;continue}else if((J&4294965248)===0)X+=2;else{if(J>=55296&&J<=56319){if(Y<G){let Z=W.charCodeAt(Y);if((Z&64512)===56320)++Y,J=((J&1023)<<10)+(Z&1023)+65536}}if((J&4294901760)===0)X+=3;else X+=4}}return X}function f_(W,G,X){let Y=W.length,J=X,Z=0;while(Z<Y){let V=W.charCodeAt(Z++);if((V&4294967168)===0){G[J++]=V;continue}else if((V&4294965248)===0)G[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)G[J++]=V>>12&15|224,G[J++]=V>>6&63|128;else G[J++]=V>>18&7|240,G[J++]=V>>12&63|128,G[J++]=V>>6&63|128}G[J++]=V&63|128}}var p_=new TextEncoder,c_=50;function l_(W,G,X){p_.encodeInto(W,G.subarray(X))}function qD(W,G,X){if(W.length>c_)l_(W,G,X);else f_(W,G,X)}var d_=4096;function zA(W,G,X){let Y=G,J=Y+X,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>=d_)V+=String.fromCharCode(...Z),Z.length=0}if(Z.length>0)V+=String.fromCharCode(...Z);return V}var o_=new TextDecoder,n_=200;function i_(W,G,X){let Y=W.subarray(G,G+X);return o_.decode(Y)}function HD(W,G,X){if(X>n_)return i_(W,G,X);else return zA(W,G,X)}class cG{type;data;constructor(W,G){this.type=W,this.data=G}}class x9 extends Error{constructor(W){super(W);let G=Object.create(x9.prototype);Object.setPrototypeOf(this,G),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:x9.name})}}var lG=4294967295;function AD(W,G,X){let Y=X/4294967296,J=X;W.setUint32(G,Y),W.setUint32(G+4,J)}function vU(W,G,X){let Y=Math.floor(X/4294967296),J=X;W.setUint32(G,Y),W.setUint32(G+4,J)}function gU(W,G){let X=W.getInt32(G),Y=W.getUint32(G+4);return X*4294967296+Y}function zD(W,G){let X=W.getUint32(G),Y=W.getUint32(G+4);return X*4294967296+Y}var r_=-1,a_=4294967295,s_=17179869183;function t_({sec:W,nsec:G}){if(W>=0&&G>=0&&W<=s_)if(G===0&&W<=a_){let X=new Uint8Array(4);return new DataView(X.buffer).setUint32(0,W),X}else{let X=W/4294967296,Y=W&4294967295,J=new Uint8Array(8),Z=new DataView(J.buffer);return Z.setUint32(0,G<<2|X&3),Z.setUint32(4,Y),J}else{let X=new Uint8Array(12),Y=new DataView(X.buffer);return Y.setUint32(0,G),vU(Y,4,W),X}}function e_(W){let G=W.getTime(),X=Math.floor(G/1000),Y=(G-X*1000)*1e6,J=Math.floor(Y/1e9);return{sec:X+J,nsec:Y-J*1e9}}function Wy(W){if(W instanceof Date){let G=e_(W);return t_(G)}else return null}function Gy(W){let G=new DataView(W.buffer,W.byteOffset,W.byteLength);switch(W.byteLength){case 4:{let X=G.getUint32(0),Y=0;return{sec:X,nsec:0}}case 8:{let X=G.getUint32(0),Y=G.getUint32(4),J=(X&3)*4294967296+Y,Z=X>>>2;return{sec:J,nsec:Z}}case 12:{let X=gU(G,4),Y=G.getUint32(0);return{sec:X,nsec:Y}}default:throw new x9(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${W.length}`)}}function Xy(W){let G=Gy(W);return new Date(G.sec*1000+G.nsec/1e6)}var ID={type:r_,encode:Wy,decode:Xy};class dG{static defaultCodec=new dG;__brand;builtInEncoders=[];builtInDecoders=[];encoders=[];decoders=[];constructor(){this.register(ID)}register({type:W,encode:G,decode:X}){if(W>=0)this.encoders[W]=G,this.decoders[W]=X;else{let Y=-1-W;this.builtInEncoders[Y]=G,this.builtInDecoders[Y]=X}}tryToEncode(W,G){for(let X=0;X<this.builtInEncoders.length;X++){let Y=this.builtInEncoders[X];if(Y!=null){let J=Y(W,G);if(J!=null){let Z=-1-X;return new cG(Z,J)}}}for(let X=0;X<this.encoders.length;X++){let Y=this.encoders[X];if(Y!=null){let J=Y(W,G);if(J!=null)return new cG(X,J)}}if(W instanceof cG)return W;return null}decode(W,G,X){let Y=G<0?this.builtInDecoders[-1-G]:this.decoders[G];if(Y)return Y(W,G,X);else return new cG(G,W)}}function Yy(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(Yy(W))return new Uint8Array(W);else return Uint8Array.from(W)}var Jy=100,Zy=2048;class uU{extensionCodec;context;useBigInt64;maxDepth;initialBufferSize;sortKeys;forceFloat32;ignoreUndefined;forceIntegerToFloat;pos;view;bytes;entered=!1;constructor(W){this.extensionCodec=W?.extensionCodec??dG.defaultCodec,this.context=W?.context,this.useBigInt64=W?.useBigInt64??!1,this.maxDepth=W?.maxDepth??Jy,this.initialBufferSize=W?.initialBufferSize??Zy,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,G){if(G>this.maxDepth)throw Error(`Too deep objects in depth ${G}`);if(W==null)this.encodeNil();else if(typeof W==="boolean")this.encodeBoolean(W);else if(typeof W==="number")if(!this.forceIntegerToFloat)this.encodeNumber(W);else this.encodeNumberAsFloat(W);else if(typeof W==="string")this.encodeString(W);else if(this.useBigInt64&&typeof W==="bigint")this.encodeBigInt64(W);else this.encodeObject(W,G)}ensureBufferSizeToWrite(W){let G=this.pos+W;if(this.view.byteLength<G)this.resizeBuffer(G*2)}resizeBuffer(W){let G=new ArrayBuffer(W),X=new Uint8Array(G),Y=new DataView(G);X.set(this.bytes),this.view=Y,this.bytes=X}encodeNil(){this.writeU8(192)}encodeBoolean(W){if(W===!1)this.writeU8(194);else this.writeU8(195)}encodeNumber(W){if(!this.forceIntegerToFloat&&Number.isSafeInteger(W))if(W>=0)if(W<128)this.writeU8(W);else if(W<256)this.writeU8(204),this.writeU8(W);else if(W<65536)this.writeU8(205),this.writeU16(W);else if(W<4294967296)this.writeU8(206),this.writeU32(W);else if(!this.useBigInt64)this.writeU8(207),this.writeU64(W);else this.encodeNumberAsFloat(W);else if(W>=-32)this.writeU8(224|W+32);else if(W>=-128)this.writeU8(208),this.writeI8(W);else if(W>=-32768)this.writeU8(209),this.writeI16(W);else if(W>=-2147483648)this.writeU8(210),this.writeI32(W);else if(!this.useBigInt64)this.writeU8(211),this.writeI64(W);else this.encodeNumberAsFloat(W);else this.encodeNumberAsFloat(W)}encodeNumberAsFloat(W){if(this.forceFloat32)this.writeU8(202),this.writeF32(W);else this.writeU8(203),this.writeF64(W)}encodeBigInt64(W){if(W>=BigInt(0))this.writeU8(207),this.writeBigUint64(W);else this.writeU8(211),this.writeBigInt64(W)}writeStringHeader(W){if(W<32)this.writeU8(160+W);else if(W<256)this.writeU8(217),this.writeU8(W);else if(W<65536)this.writeU8(218),this.writeU16(W);else if(W<4294967296)this.writeU8(219),this.writeU32(W);else throw Error(`Too long string: ${W} bytes in UTF-8`)}encodeString(W){let X=ND(W);this.ensureBufferSizeToWrite(5+X),this.writeStringHeader(X),qD(W,this.bytes,this.pos),this.pos+=X}encodeObject(W,G){let X=this.extensionCodec.tryToEncode(W,this.context);if(X!=null)this.encodeExtension(X);else if(Array.isArray(W))this.encodeArray(W,G);else if(ArrayBuffer.isView(W))this.encodeBinary(W);else if(typeof W==="object")this.encodeMap(W,G);else throw Error(`Unrecognized object: ${Object.prototype.toString.apply(W)}`)}encodeBinary(W){let G=W.byteLength;if(G<256)this.writeU8(196),this.writeU8(G);else if(G<65536)this.writeU8(197),this.writeU16(G);else if(G<4294967296)this.writeU8(198),this.writeU32(G);else throw Error(`Too large binary: ${G}`);let X=QJ(W);this.writeU8a(X)}encodeArray(W,G){let X=W.length;if(X<16)this.writeU8(144+X);else if(X<65536)this.writeU8(220),this.writeU16(X);else if(X<4294967296)this.writeU8(221),this.writeU32(X);else throw Error(`Too large array: ${X}`);for(let Y of W)this.doEncode(Y,G+1)}countWithoutUndefined(W,G){let X=0;for(let Y of G)if(W[Y]!==void 0)X++;return X}encodeMap(W,G){let X=Object.keys(W);if(this.sortKeys)X.sort();let Y=this.ignoreUndefined?this.countWithoutUndefined(W,X):X.length;if(Y<16)this.writeU8(128+Y);else if(Y<65536)this.writeU8(222),this.writeU16(Y);else if(Y<4294967296)this.writeU8(223),this.writeU32(Y);else throw Error(`Too large map object: ${Y}`);for(let J of X){let Z=W[J];if(!(this.ignoreUndefined&&Z===void 0))this.encodeString(J),this.doEncode(Z,G+1)}}encodeExtension(W){if(typeof W.data==="function"){let X=W.data(this.pos+6),Y=X.length;if(Y>=4294967296)throw Error(`Too large extension object: ${Y}`);this.writeU8(201),this.writeU32(Y),this.writeI8(W.type),this.writeU8a(X);return}let G=W.data.length;if(G===1)this.writeU8(212);else if(G===2)this.writeU8(213);else if(G===4)this.writeU8(214);else if(G===8)this.writeU8(215);else if(G===16)this.writeU8(216);else if(G<256)this.writeU8(199),this.writeU8(G);else if(G<65536)this.writeU8(200),this.writeU16(G);else if(G<4294967296)this.writeU8(201),this.writeU32(G);else throw Error(`Too large extension object: ${G}`);this.writeI8(W.type),this.writeU8a(W.data)}writeU8(W){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,W),this.pos++}writeU8a(W){let G=W.length;this.ensureBufferSizeToWrite(G),this.bytes.set(W,this.pos),this.pos+=G}writeI8(W){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,W),this.pos++}writeU16(W){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,W),this.pos+=2}writeI16(W){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,W),this.pos+=2}writeU32(W){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,W),this.pos+=4}writeI32(W){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,W),this.pos+=4}writeF32(W){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,W),this.pos+=4}writeF64(W){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,W),this.pos+=8}writeU64(W){this.ensureBufferSizeToWrite(8),AD(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,G){return new uU(G).encodeSharedRef(W)}function bU(W){return`${W<0?"-":""}0x${Math.abs(W).toString(16).padStart(2,"0")}`}var Vy=16,Uy=16;class IA{hit=0;miss=0;caches;maxKeyLength;maxLengthPerKey;constructor(W=Vy,G=Uy){this.maxKeyLength=W,this.maxLengthPerKey=G,this.caches=[];for(let X=0;X<this.maxKeyLength;X++)this.caches.push([])}canBeCached(W){return W>0&&W<=this.maxKeyLength}find(W,G,X){let Y=this.caches[X-1];W:for(let J of Y){let Z=J.bytes;for(let V=0;V<X;V++)if(Z[V]!==W[G+V])continue W;return J.str}return null}store(W,G){let X=this.caches[W.length-1],Y={bytes:W,str:G};if(X.length>=this.maxLengthPerKey)X[Math.random()*X.length|0]=Y;else X.push(Y)}decode(W,G,X){let Y=this.find(W,G,X);if(Y!=null)return this.hit++,Y;this.miss++;let J=zA(W,G,X),Z=Uint8Array.prototype.slice.call(W,G,G+X);return this.store(Z,J),J}}var wA="array",qJ="map_key",jD="map_value",Qy=(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 KD{stack=[];stackHeadPosition=-1;get length(){return this.stackHeadPosition+1}top(){return this.stack[this.stackHeadPosition]}pushArrayState(W){let G=this.getUninitializedStateFromPool();G.type=wA,G.position=0,G.size=W,G.array=Array(W)}pushMapState(W){let G=this.getUninitializedStateFromPool();G.type=qJ,G.readCount=0,G.size=W,G.map={}}getUninitializedStateFromPool(){if(this.stackHeadPosition++,this.stackHeadPosition===this.stack.length){let W={type:void 0,size:0,array:void 0,position:0,readCount:0,map:void 0,key:null};this.stack.push(W)}return this.stack[this.stackHeadPosition]}release(W){if(this.stack[this.stackHeadPosition]!==W)throw Error("Invalid stack state. Released state is not on top of the stack.");if(W.type===wA){let X=W;X.size=0,X.array=void 0,X.position=0,X.type=void 0}if(W.type===qJ||W.type===jD){let X=W;X.size=0,X.map=void 0,X.readCount=0,X.type=void 0}this.stackHeadPosition--}reset(){this.stack.length=0,this.stackHeadPosition=-1}}var NJ=-1,jA=new DataView(new ArrayBuffer(0)),Ny=new Uint8Array(jA.buffer);try{jA.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 wD=RangeError("Insufficient data"),qy=new IA;class mU{extensionCodec;context;useBigInt64;rawStrings;maxStrLength;maxBinLength;maxArrayLength;maxMapLength;maxExtLength;keyDecoder;mapKeyConverter;totalPos=0;pos=0;view=jA;bytes=Ny;headByte=NJ;stack=new KD;entered=!1;constructor(W){this.extensionCodec=W?.extensionCodec??dG.defaultCodec,this.context=W?.context,this.useBigInt64=W?.useBigInt64??!1,this.rawStrings=W?.rawStrings??!1,this.maxStrLength=W?.maxStrLength??lG,this.maxBinLength=W?.maxBinLength??lG,this.maxArrayLength=W?.maxArrayLength??lG,this.maxMapLength=W?.maxMapLength??lG,this.maxExtLength=W?.maxExtLength??lG,this.keyDecoder=W?.keyDecoder!==void 0?W.keyDecoder:qy,this.mapKeyConverter=W?.mapKeyConverter??Qy}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 G=QJ(W);this.bytes=G,this.view=new DataView(G.buffer,G.byteOffset,G.byteLength),this.pos=0}appendBuffer(W){if(this.headByte===NJ&&!this.hasRemaining(1))this.setBuffer(W);else{let G=this.bytes.subarray(this.pos),X=QJ(W),Y=new Uint8Array(G.length+X.length);Y.set(G),Y.set(X,G.length),this.setBuffer(Y)}}hasRemaining(W){return this.view.byteLength-this.pos>=W}createExtraByteError(W){let{view:G,pos:X}=this;return RangeError(`Extra ${G.byteLength-X} of ${G.byteLength} byte(s) found at buffer[${W}]`)}decode(W){if(this.entered)return this.clone().decode(W);try{this.entered=!0,this.reinitializeState(),this.setBuffer(W);let G=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return G}finally{this.entered=!1}}*decodeMulti(W){if(this.entered){yield*this.clone().decodeMulti(W);return}try{this.entered=!0,this.reinitializeState(),this.setBuffer(W);while(this.hasRemaining(1))yield this.doDecodeSync()}finally{this.entered=!1}}async decodeAsync(W){if(this.entered)return this.clone().decodeAsync(W);try{this.entered=!0;let G=!1,X;for await(let V of W){if(G)throw this.entered=!1,this.createExtraByteError(this.totalPos);this.appendBuffer(V);try{X=this.doDecodeSync(),G=!0}catch(U){if(!(U instanceof RangeError))throw U}this.totalPos+=this.pos}if(G){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return X}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,G){if(this.entered){yield*this.clone().decodeMultiAsync(W,G);return}try{this.entered=!0;let X=G,Y=-1;for await(let J of W){if(G&&Y===0)throw this.createExtraByteError(this.totalPos);if(this.appendBuffer(J),X)Y=this.readArraySize(),X=!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(),G;if(W>=224)G=W-256;else if(W<192)if(W<128)G=W;else if(W<144){let Y=W-128;if(Y!==0){this.pushMapState(Y),this.complete();continue W}else G={}}else if(W<160){let Y=W-144;if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else G=[]}else{let Y=W-160;G=this.decodeString(Y,0)}else if(W===192)G=null;else if(W===194)G=!1;else if(W===195)G=!0;else if(W===202)G=this.readF32();else if(W===203)G=this.readF64();else if(W===204)G=this.readU8();else if(W===205)G=this.readU16();else if(W===206)G=this.readU32();else if(W===207)if(this.useBigInt64)G=this.readU64AsBigInt();else G=this.readU64();else if(W===208)G=this.readI8();else if(W===209)G=this.readI16();else if(W===210)G=this.readI32();else if(W===211)if(this.useBigInt64)G=this.readI64AsBigInt();else G=this.readI64();else if(W===217){let Y=this.lookU8();G=this.decodeString(Y,1)}else if(W===218){let Y=this.lookU16();G=this.decodeString(Y,2)}else if(W===219){let Y=this.lookU32();G=this.decodeString(Y,4)}else if(W===220){let Y=this.readU16();if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else G=[]}else if(W===221){let Y=this.readU32();if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else G=[]}else if(W===222){let Y=this.readU16();if(Y!==0){this.pushMapState(Y),this.complete();continue W}else G={}}else if(W===223){let Y=this.readU32();if(Y!==0){this.pushMapState(Y),this.complete();continue W}else G={}}else if(W===196){let Y=this.lookU8();G=this.decodeBinary(Y,1)}else if(W===197){let Y=this.lookU16();G=this.decodeBinary(Y,2)}else if(W===198){let Y=this.lookU32();G=this.decodeBinary(Y,4)}else if(W===212)G=this.decodeExtension(1,0);else if(W===213)G=this.decodeExtension(2,0);else if(W===214)G=this.decodeExtension(4,0);else if(W===215)G=this.decodeExtension(8,0);else if(W===216)G=this.decodeExtension(16,0);else if(W===199){let Y=this.lookU8();G=this.decodeExtension(Y,1)}else if(W===200){let Y=this.lookU16();G=this.decodeExtension(Y,2)}else if(W===201){let Y=this.lookU32();G=this.decodeExtension(Y,4)}else throw new x9(`Unrecognized type byte: ${bU(W)}`);this.complete();let X=this.stack;while(X.length>0){let Y=X.top();if(Y.type===wA)if(Y.array[Y.position]=G,Y.position++,Y.position===Y.size)G=Y.array,X.release(Y);else continue W;else if(Y.type===qJ){if(G==="__proto__")throw new x9("The key __proto__ is not allowed");Y.key=this.mapKeyConverter(G),Y.type=jD;continue W}else if(Y.map[Y.key]=G,Y.readCount++,Y.readCount===Y.size)G=Y.map,X.release(Y);else{Y.key=null,Y.type=qJ;continue W}}return G}}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,G){if(!this.rawStrings||this.stateIsMapKey())return this.decodeUtf8String(W,G);return this.decodeBinary(W,G)}decodeUtf8String(W,G){if(W>this.maxStrLength)throw new x9(`Max length exceeded: UTF-8 byte length (${W}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+G+W)throw wD;let X=this.pos+G,Y;if(this.stateIsMapKey()&&this.keyDecoder?.canBeCached(W))Y=this.keyDecoder.decode(this.bytes,X,W);else Y=HD(this.bytes,X,W);return this.pos+=G+W,Y}stateIsMapKey(){if(this.stack.length>0)return this.stack.top().type===qJ;return!1}decodeBinary(W,G){if(W>this.maxBinLength)throw new x9(`Max length exceeded: bin length (${W}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(W+G))throw wD;let X=this.pos+G,Y=this.bytes.subarray(X,X+W);return this.pos+=G+W,Y}decodeExtension(W,G){if(W>this.maxExtLength)throw new x9(`Max length exceeded: ext length (${W}) > maxExtLength (${this.maxExtLength})`);let X=this.view.getInt8(this.pos+G),Y=this.decodeBinary(W,G+1);return this.extensionCodec.decode(Y,X,this.context)}lookU8(){return this.view.getUint8(this.pos)}lookU16(){return this.view.getUint16(this.pos)}lookU32(){return this.view.getUint32(this.pos)}readU8(){let W=this.view.getUint8(this.pos);return this.pos++,W}readI8(){let W=this.view.getInt8(this.pos);return this.pos++,W}readU16(){let W=this.view.getUint16(this.pos);return this.pos+=2,W}readI16(){let W=this.view.getInt16(this.pos);return this.pos+=2,W}readU32(){let W=this.view.getUint32(this.pos);return this.pos+=4,W}readI32(){let W=this.view.getInt32(this.pos);return this.pos+=4,W}readU64(){let W=zD(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 HW(W,G){return new mU(G).decode(W)}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */function sG(W){let G=W.length;while(--G>=0)W[G]=0}var Hy=0,XC=1,Ay=2,zy=3,Iy=258,mA=29,LJ=256,KJ=LJ+1+mA,iG=30,fA=19,YC=2*KJ+1,AW=15,KA=16,wy=7,pA=256,JC=16,ZC=17,VC=18,xA=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]),jy=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),UC=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Ky=512,e7=Array((KJ+2)*2);sG(e7);var IJ=Array(iG*2);sG(IJ);var OJ=Array(Ky);sG(OJ);var DJ=Array(Iy-zy+1);sG(DJ);var cA=Array(mA);sG(cA);var nU=Array(iG);sG(nU);function OA(W,G,X,Y,J){this.static_tree=W,this.extra_bits=G,this.extra_base=X,this.elems=Y,this.max_length=J,this.has_stree=W&&W.length}var QC,NC,qC;function DA(W,G){this.dyn_tree=W,this.max_code=0,this.stat_desc=G}var HC=(W)=>{return W<256?OJ[W]:OJ[256+(W>>>7)]},CJ=(W,G)=>{W.pending_buf[W.pending++]=G&255,W.pending_buf[W.pending++]=G>>>8&255},b9=(W,G,X)=>{if(W.bi_valid>KA-X)W.bi_buf|=G<<W.bi_valid&65535,CJ(W,W.bi_buf),W.bi_buf=G>>KA-W.bi_valid,W.bi_valid+=X-KA;else W.bi_buf|=G<<W.bi_valid&65535,W.bi_valid+=X},q7=(W,G,X)=>{b9(W,X[G*2],X[G*2+1])},AC=(W,G)=>{let X=0;do X|=W&1,W>>>=1,X<<=1;while(--G>0);return X>>>1},Oy=(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},Dy=(W,G)=>{let{dyn_tree:X,max_code:Y}=G,J=G.stat_desc.static_tree,Z=G.stat_desc.has_stree,V=G.stat_desc.extra_bits,U=G.stat_desc.extra_base,Q=G.stat_desc.max_length,N,q,A,H,I,w,O=0;for(H=0;H<=AW;H++)W.bl_count[H]=0;X[W.heap[W.heap_max]*2+1]=0;for(N=W.heap_max+1;N<YC;N++){if(q=W.heap[N],H=X[X[q*2+1]*2+1]+1,H>Q)H=Q,O++;if(X[q*2+1]=H,q>Y)continue;if(W.bl_count[H]++,I=0,q>=U)I=V[q-U];if(w=X[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(X[A*2+1]!==H)W.opt_len+=(H-X[A*2+1])*X[A*2],X[A*2+1]=H;q--}}},zC=(W,G,X)=>{let Y=Array(AW+1),J=0,Z,V;for(Z=1;Z<=AW;Z++)J=J+X[Z-1]<<1,Y[Z]=J;for(V=0;V<=G;V++){let U=W[V*2+1];if(U===0)continue;W[V*2]=AC(Y[U]++,U)}},Cy=()=>{let W,G,X,Y,J,Z=Array(AW+1);X=0;for(Y=0;Y<mA-1;Y++){cA[Y]=X;for(W=0;W<1<<xA[Y];W++)DJ[X++]=Y}DJ[X-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<iG;Y++){nU[Y]=J<<7;for(W=0;W<1<<oU[Y]-7;W++)OJ[256+J++]=Y}for(G=0;G<=AW;G++)Z[G]=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]++;zC(e7,KJ+1,Z);for(W=0;W<iG;W++)IJ[W*2+1]=5,IJ[W*2]=AC(W,5);QC=new OA(e7,xA,LJ+1,KJ,AW),NC=new OA(IJ,oU,0,iG,AW),qC=new OA([],jy,0,fA,wy)},IC=(W)=>{let G;for(G=0;G<KJ;G++)W.dyn_ltree[G*2]=0;for(G=0;G<iG;G++)W.dyn_dtree[G*2]=0;for(G=0;G<fA;G++)W.bl_tree[G*2]=0;W.dyn_ltree[pA*2]=1,W.opt_len=W.static_len=0,W.sym_next=W.matches=0},wC=(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},OD=(W,G,X,Y)=>{let J=G*2,Z=X*2;return W[J]<W[Z]||W[J]===W[Z]&&Y[G]<=Y[X]},CA=(W,G,X)=>{let Y=W.heap[X],J=X<<1;while(J<=W.heap_len){if(J<W.heap_len&&OD(G,W.heap[J+1],W.heap[J],W.depth))J++;if(OD(G,Y,W.heap[J],W.depth))break;W.heap[X]=W.heap[J],X=J,J<<=1}W.heap[X]=Y},DD=(W,G,X)=>{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)q7(W,J,G);else{if(V=DJ[J],q7(W,V+LJ+1,G),U=xA[V],U!==0)J-=cA[V],b9(W,J,U);if(Y--,V=HC(Y),q7(W,V,X),U=oU[V],U!==0)Y-=nU[V],b9(W,Y,U)}while(Z<W.sym_next);q7(W,pA,G)},kA=(W,G)=>{let X=G.dyn_tree,Y=G.stat_desc.static_tree,J=G.stat_desc.has_stree,Z=G.stat_desc.elems,V,U,Q=-1,N;W.heap_len=0,W.heap_max=YC;for(V=0;V<Z;V++)if(X[V*2]!==0)W.heap[++W.heap_len]=Q=V,W.depth[V]=0;else X[V*2+1]=0;while(W.heap_len<2)if(N=W.heap[++W.heap_len]=Q<2?++Q:0,X[N*2]=1,W.depth[N]=0,W.opt_len--,J)W.static_len-=Y[N*2+1];G.max_code=Q;for(V=W.heap_len>>1;V>=1;V--)CA(W,X,V);N=Z;do V=W.heap[1],W.heap[1]=W.heap[W.heap_len--],CA(W,X,1),U=W.heap[1],W.heap[--W.heap_max]=V,W.heap[--W.heap_max]=U,X[N*2]=X[V*2]+X[U*2],W.depth[N]=(W.depth[V]>=W.depth[U]?W.depth[V]:W.depth[U])+1,X[V*2+1]=X[U*2+1]=N,W.heap[1]=N++,CA(W,X,1);while(W.heap_len>=2);W.heap[--W.heap_max]=W.heap[1],Dy(W,G),zC(X,Q,W.bl_count)},CD=(W,G,X)=>{let Y,J=-1,Z,V=G[1],U=0,Q=7,N=4;if(V===0)Q=138,N=3;G[(X+1)*2+1]=65535;for(Y=0;Y<=X;Y++){if(Z=V,V=G[(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[JC*2]++}else if(U<=10)W.bl_tree[ZC*2]++;else W.bl_tree[VC*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}},TD=(W,G,X)=>{let Y,J=-1,Z,V=G[1],U=0,Q=7,N=4;if(V===0)Q=138,N=3;for(Y=0;Y<=X;Y++){if(Z=V,V=G[(Y+1)*2+1],++U<Q&&Z===V)continue;else if(U<N)do q7(W,Z,W.bl_tree);while(--U!==0);else if(Z!==0){if(Z!==J)q7(W,Z,W.bl_tree),U--;q7(W,JC,W.bl_tree),b9(W,U-3,2)}else if(U<=10)q7(W,ZC,W.bl_tree),b9(W,U-3,3);else q7(W,VC,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}},Ty=(W)=>{let G;CD(W,W.dyn_ltree,W.l_desc.max_code),CD(W,W.dyn_dtree,W.d_desc.max_code),kA(W,W.bl_desc);for(G=fA-1;G>=3;G--)if(W.bl_tree[UC[G]*2+1]!==0)break;return W.opt_len+=3*(G+1)+5+5+4,G},My=(W,G,X,Y)=>{let J;b9(W,G-257,5),b9(W,X-1,5),b9(W,Y-4,4);for(J=0;J<Y;J++)b9(W,W.bl_tree[UC[J]*2+1],3);TD(W,W.dyn_ltree,G-1),TD(W,W.dyn_dtree,X-1)},Ry=(W)=>{let G=4093624447,X;for(X=0;X<=31;X++,G>>>=1)if(G&1&&W.dyn_ltree[X*2]!==0)return 0;if(W.dyn_ltree[18]!==0||W.dyn_ltree[20]!==0||W.dyn_ltree[26]!==0)return 1;for(X=32;X<LJ;X++)if(W.dyn_ltree[X*2]!==0)return 1;return 0},MD=!1,Py=(W)=>{if(!MD)Cy(),MD=!0;W.l_desc=new DA(W.dyn_ltree,QC),W.d_desc=new DA(W.dyn_dtree,NC),W.bl_desc=new DA(W.bl_tree,qC),W.bi_buf=0,W.bi_valid=0,IC(W)},jC=(W,G,X,Y)=>{if(b9(W,(Hy<<1)+(Y?1:0),3),wC(W),CJ(W,X),CJ(W,~X),X)W.pending_buf.set(W.window.subarray(G,G+X),W.pending);W.pending+=X},Ly=(W)=>{b9(W,XC<<1,3),q7(W,pA,e7),Oy(W)},By=(W,G,X,Y)=>{let J,Z,V=0;if(W.level>0){if(W.strm.data_type===2)W.strm.data_type=Ry(W);if(kA(W,W.l_desc),kA(W,W.d_desc),V=Ty(W),J=W.opt_len+3+7>>>3,Z=W.static_len+3+7>>>3,Z<=J)J=Z}else J=Z=X+5;if(X+4<=J&&G!==-1)jC(W,G,X,Y);else if(W.strategy===4||Z===J)b9(W,(XC<<1)+(Y?1:0),3),DD(W,e7,IJ);else b9(W,(Ay<<1)+(Y?1:0),3),My(W,W.l_desc.max_code+1,W.d_desc.max_code+1,V+1),DD(W,W.dyn_ltree,W.dyn_dtree);if(IC(W),Y)wC(W)},Ey=(W,G,X)=>{if(W.pending_buf[W.sym_buf+W.sym_next++]=G,W.pending_buf[W.sym_buf+W.sym_next++]=G>>8,W.pending_buf[W.sym_buf+W.sym_next++]=X,G===0)W.dyn_ltree[X*2]++;else W.matches++,G--,W.dyn_ltree[(DJ[X]+LJ+1)*2]++,W.dyn_dtree[HC(G)*2]++;return W.sym_next===W.sym_end},$y=Py,Fy=jC,Sy=By,xy=Ey,ky=Ly,_y={_tr_init:$y,_tr_stored_block:Fy,_tr_flush_block:Sy,_tr_tally:xy,_tr_align:ky},yy=(W,G,X,Y)=>{let J=W&65535|0,Z=W>>>16&65535|0,V=0;while(X!==0){V=X>2000?2000:X,X-=V;do J=J+G[Y++]|0,Z=Z+J|0;while(--V);J%=65521,Z%=65521}return J|Z<<16|0},TJ=yy,vy=()=>{let W,G=[];for(var X=0;X<256;X++){W=X;for(var Y=0;Y<8;Y++)W=W&1?3988292384^W>>>1:W>>>1;G[X]=W}return G},gy=new Uint32Array(vy()),uy=(W,G,X,Y)=>{let J=gy,Z=Y+X;W^=-1;for(let V=Y;V<Z;V++)W=W>>>8^J[(W^G[V])&255];return W^-1},i8=uy,wW={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"},OW={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:hy,_tr_stored_block:_A,_tr_flush_block:by,_tr_tally:V6,_tr_align:my}=_y,{Z_NO_FLUSH:U6,Z_PARTIAL_FLUSH:fy,Z_FULL_FLUSH:py,Z_FINISH:j5,Z_BLOCK:RD,Z_OK:e8,Z_STREAM_END:PD,Z_STREAM_ERROR:H7,Z_DATA_ERROR:cy,Z_BUF_ERROR:TA,Z_DEFAULT_COMPRESSION:ly,Z_FILTERED:dy,Z_HUFFMAN_ONLY:fU,Z_RLE:oy,Z_FIXED:ny,Z_DEFAULT_STRATEGY:iy,Z_UNKNOWN:ry,Z_DEFLATED:aU}=OW,ay=9,sy=15,ty=8,ey=29,Wv=256,yA=Wv+1+ey,Gv=30,Xv=19,Yv=2*yA+1,Jv=15,b1=3,Z6=258,A7=Z6+b1+1,Zv=32,rG=42,lA=57,vA=69,gA=73,uA=91,hA=103,zW=113,AJ=666,k9=1,tG=2,jW=3,eG=4,Vv=3,IW=(W,G)=>{return W.msg=wW[G],G},LD=(W)=>{return W*2-(W>4?9:0)},J6=(W)=>{let G=W.length;while(--G>=0)W[G]=0},Uv=(W)=>{let G,X,Y,J=W.w_size;G=W.hash_size,Y=G;do X=W.head[--Y],W.head[Y]=X>=J?X-J:0;while(--G);G=J,Y=G;do X=W.prev[--Y],W.prev[Y]=X>=J?X-J:0;while(--G)},Qv=(W,G,X)=>(G<<W.hash_shift^X)&W.hash_mask,Q6=Qv,G5=(W)=>{let G=W.state,X=G.pending;if(X>W.avail_out)X=W.avail_out;if(X===0)return;if(W.output.set(G.pending_buf.subarray(G.pending_out,G.pending_out+X),W.next_out),W.next_out+=X,G.pending_out+=X,W.total_out+=X,W.avail_out-=X,G.pending-=X,G.pending===0)G.pending_out=0},X5=(W,G)=>{by(W,W.block_start>=0?W.block_start:-1,W.strstart-W.block_start,G),W.block_start=W.strstart,G5(W.strm)},s1=(W,G)=>{W.pending_buf[W.pending++]=G},HJ=(W,G)=>{W.pending_buf[W.pending++]=G>>>8&255,W.pending_buf[W.pending++]=G&255},bA=(W,G,X,Y)=>{let J=W.avail_in;if(J>Y)J=Y;if(J===0)return 0;if(W.avail_in-=J,G.set(W.input.subarray(W.next_in,W.next_in+J),X),W.state.wrap===1)W.adler=TJ(W.adler,G,J,X);else if(W.state.wrap===2)W.adler=i8(W.adler,G,J,X);return W.next_in+=J,W.total_in+=J,J},KC=(W,G)=>{let{max_chain_length:X,strstart:Y}=W,J,Z,V=W.prev_length,U=W.nice_match,Q=W.strstart>W.w_size-A7?W.strstart-(W.w_size-A7):0,N=W.window,q=W.w_mask,A=W.prev,H=W.strstart+Z6,I=N[Y+V-1],w=N[Y+V];if(W.prev_length>=W.good_match)X>>=2;if(U>W.lookahead)U=W.lookahead;do{if(J=G,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=Z6-(H-Y),Y=H-Z6,Z>V){if(W.match_start=G,V=Z,Z>=U)break;I=N[Y+V-1],w=N[Y+V]}}while((G=A[G&q])>Q&&--X!==0);if(V<=W.lookahead)return V;return W.lookahead},aG=(W)=>{let G=W.w_size,X,Y,J;do{if(Y=W.window_size-W.lookahead-W.strstart,W.strstart>=G+(G-A7)){if(W.window.set(W.window.subarray(G,G+G-Y),0),W.match_start-=G,W.strstart-=G,W.block_start-=G,W.insert>W.strstart)W.insert=W.strstart;Uv(W),Y+=G}if(W.strm.avail_in===0)break;if(X=bA(W.strm,W.window,W.strstart+W.lookahead,Y),W.lookahead+=X,W.lookahead+W.insert>=b1){J=W.strstart-W.insert,W.ins_h=W.window[J],W.ins_h=Q6(W,W.ins_h,W.window[J+1]);while(W.insert)if(W.ins_h=Q6(W,W.ins_h,W.window[J+b1-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<b1)break}}while(W.lookahead<A7&&W.strm.avail_in!==0)},OC=(W,G)=>{let X=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<X&&(Y===0&&G!==j5||G===U6||Y!==J+W.strm.avail_in))break;if(V=G===j5&&Y===J+W.strm.avail_in?1:0,_A(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,G5(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)bA(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 eG;if(G!==U6&&G!==j5&&W.strm.avail_in===0&&W.strstart===W.block_start)return tG;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)bA(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,X=Z>W.w_size?W.w_size:Z,J=W.strstart-W.block_start,J>=X||(J||G===j5)&&G!==U6&&W.strm.avail_in===0&&J<=Z)Y=J>Z?Z:J,V=G===j5&&W.strm.avail_in===0&&Y===J?1:0,_A(W,W.block_start,Y,V),W.block_start+=Y,G5(W.strm);return V?jW:k9},MA=(W,G)=>{let X,Y;for(;;){if(W.lookahead<A7){if(aG(W),W.lookahead<A7&&G===U6)return k9;if(W.lookahead===0)break}if(X=0,W.lookahead>=b1)W.ins_h=Q6(W,W.ins_h,W.window[W.strstart+b1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;if(X!==0&&W.strstart-X<=W.w_size-A7)W.match_length=KC(W,X);if(W.match_length>=b1)if(Y=V6(W,W.strstart-W.match_start,W.match_length-b1),W.lookahead-=W.match_length,W.match_length<=W.max_lazy_match&&W.lookahead>=b1){W.match_length--;do W.strstart++,W.ins_h=Q6(W,W.ins_h,W.window[W.strstart+b1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;while(--W.match_length!==0);W.strstart++}else W.strstart+=W.match_length,W.match_length=0,W.ins_h=W.window[W.strstart],W.ins_h=Q6(W,W.ins_h,W.window[W.strstart+1]);else Y=V6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++;if(Y){if(X5(W,!1),W.strm.avail_out===0)return k9}}if(W.insert=W.strstart<b1-1?W.strstart:b1-1,G===j5){if(X5(W,!0),W.strm.avail_out===0)return jW;return eG}if(W.sym_next){if(X5(W,!1),W.strm.avail_out===0)return k9}return tG},oG=(W,G)=>{let X,Y,J;for(;;){if(W.lookahead<A7){if(aG(W),W.lookahead<A7&&G===U6)return k9;if(W.lookahead===0)break}if(X=0,W.lookahead>=b1)W.ins_h=Q6(W,W.ins_h,W.window[W.strstart+b1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;if(W.prev_length=W.match_length,W.prev_match=W.match_start,W.match_length=b1-1,X!==0&&W.prev_length<W.max_lazy_match&&W.strstart-X<=W.w_size-A7){if(W.match_length=KC(W,X),W.match_length<=5&&(W.strategy===dy||W.match_length===b1&&W.strstart-W.match_start>4096))W.match_length=b1-1}if(W.prev_length>=b1&&W.match_length<=W.prev_length){J=W.strstart+W.lookahead-b1,Y=V6(W,W.strstart-1-W.prev_match,W.prev_length-b1),W.lookahead-=W.prev_length-1,W.prev_length-=2;do if(++W.strstart<=J)W.ins_h=Q6(W,W.ins_h,W.window[W.strstart+b1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;while(--W.prev_length!==0);if(W.match_available=0,W.match_length=b1-1,W.strstart++,Y){if(X5(W,!1),W.strm.avail_out===0)return k9}}else if(W.match_available){if(Y=V6(W,0,W.window[W.strstart-1]),Y)X5(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=V6(W,0,W.window[W.strstart-1]),W.match_available=0;if(W.insert=W.strstart<b1-1?W.strstart:b1-1,G===j5){if(X5(W,!0),W.strm.avail_out===0)return jW;return eG}if(W.sym_next){if(X5(W,!1),W.strm.avail_out===0)return k9}return tG},Nv=(W,G)=>{let X,Y,J,Z,V=W.window;for(;;){if(W.lookahead<=Z6){if(aG(W),W.lookahead<=Z6&&G===U6)return k9;if(W.lookahead===0)break}if(W.match_length=0,W.lookahead>=b1&&W.strstart>0){if(J=W.strstart-1,Y=V[J],Y===V[++J]&&Y===V[++J]&&Y===V[++J]){Z=W.strstart+Z6;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=Z6-(Z-J),W.match_length>W.lookahead)W.match_length=W.lookahead}}if(W.match_length>=b1)X=V6(W,1,W.match_length-b1),W.lookahead-=W.match_length,W.strstart+=W.match_length,W.match_length=0;else X=V6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++;if(X){if(X5(W,!1),W.strm.avail_out===0)return k9}}if(W.insert=0,G===j5){if(X5(W,!0),W.strm.avail_out===0)return jW;return eG}if(W.sym_next){if(X5(W,!1),W.strm.avail_out===0)return k9}return tG},qv=(W,G)=>{let X;for(;;){if(W.lookahead===0){if(aG(W),W.lookahead===0){if(G===U6)return k9;break}}if(W.match_length=0,X=V6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++,X){if(X5(W,!1),W.strm.avail_out===0)return k9}}if(W.insert=0,G===j5){if(X5(W,!0),W.strm.avail_out===0)return jW;return eG}if(W.sym_next){if(X5(W,!1),W.strm.avail_out===0)return k9}return tG};function N7(W,G,X,Y,J){this.good_length=W,this.max_lazy=G,this.nice_length=X,this.max_chain=Y,this.func=J}var zJ=[new N7(0,0,0,0,OC),new N7(4,4,8,4,MA),new N7(4,5,16,8,MA),new N7(4,6,32,32,MA),new N7(4,4,16,16,oG),new N7(8,16,32,32,oG),new N7(8,16,128,128,oG),new N7(8,32,128,256,oG),new N7(32,128,258,1024,oG),new N7(32,258,258,4096,oG)],Hv=(W)=>{W.window_size=2*W.w_size,J6(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=b1-1,W.match_available=0,W.ins_h=0};function Av(){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(Yv*2),this.dyn_dtree=new Uint16Array((2*Gv+1)*2),this.bl_tree=new Uint16Array((2*Xv+1)*2),J6(this.dyn_ltree),J6(this.dyn_dtree),J6(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(Jv+1),this.heap=new Uint16Array(2*yA+1),J6(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*yA+1),J6(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 G=W.state;if(!G||G.strm!==W||G.status!==rG&&G.status!==lA&&G.status!==vA&&G.status!==gA&&G.status!==uA&&G.status!==hA&&G.status!==zW&&G.status!==AJ)return 1;return 0},DC=(W)=>{if(BJ(W))return IW(W,H7);W.total_in=W.total_out=0,W.data_type=ry;let G=W.state;if(G.pending=0,G.pending_out=0,G.wrap<0)G.wrap=-G.wrap;return G.status=G.wrap===2?lA:G.wrap?rG:zW,W.adler=G.wrap===2?0:1,G.last_flush=-2,hy(G),e8},CC=(W)=>{let G=DC(W);if(G===e8)Hv(W.state);return G},zv=(W,G)=>{if(BJ(W)||W.state.wrap!==2)return H7;return W.state.gzhead=G,e8},TC=(W,G,X,Y,J,Z)=>{if(!W)return H7;let V=1;if(G===ly)G=6;if(Y<0)V=0,Y=-Y;else if(Y>15)V=2,Y-=16;if(J<1||J>ay||X!==aU||Y<8||Y>15||G<0||G>9||Z<0||Z>ny||Y===8&&V!==1)return IW(W,H7);if(Y===8)Y=9;let U=new Av;return W.state=U,U.strm=W,U.status=rG,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+b1-1)/b1),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=G,U.strategy=Z,U.method=X,CC(W)},Iv=(W,G)=>{return TC(W,G,aU,sy,ty,iy)},wv=(W,G)=>{if(BJ(W)||G>RD||G<0)return W?IW(W,H7):H7;let X=W.state;if(!W.output||W.avail_in!==0&&!W.input||X.status===AJ&&G!==j5)return IW(W,W.avail_out===0?TA:H7);let Y=X.last_flush;if(X.last_flush=G,X.pending!==0){if(G5(W),W.avail_out===0)return X.last_flush=-1,e8}else if(W.avail_in===0&&LD(G)<=LD(Y)&&G!==j5)return IW(W,TA);if(X.status===AJ&&W.avail_in!==0)return IW(W,TA);if(X.status===rG&&X.wrap===0)X.status=zW;if(X.status===rG){let J=aU+(X.w_bits-8<<4)<<8,Z=-1;if(X.strategy>=fU||X.level<2)Z=0;else if(X.level<6)Z=1;else if(X.level===6)Z=2;else Z=3;if(J|=Z<<6,X.strstart!==0)J|=Zv;if(J+=31-J%31,HJ(X,J),X.strstart!==0)HJ(X,W.adler>>>16),HJ(X,W.adler&65535);if(W.adler=1,X.status=zW,G5(W),X.pending!==0)return X.last_flush=-1,e8}if(X.status===lA)if(W.adler=0,s1(X,31),s1(X,139),s1(X,8),!X.gzhead){if(s1(X,0),s1(X,0),s1(X,0),s1(X,0),s1(X,0),s1(X,X.level===9?2:X.strategy>=fU||X.level<2?4:0),s1(X,Vv),X.status=zW,G5(W),X.pending!==0)return X.last_flush=-1,e8}else{if(s1(X,(X.gzhead.text?1:0)+(X.gzhead.hcrc?2:0)+(!X.gzhead.extra?0:4)+(!X.gzhead.name?0:8)+(!X.gzhead.comment?0:16)),s1(X,X.gzhead.time&255),s1(X,X.gzhead.time>>8&255),s1(X,X.gzhead.time>>16&255),s1(X,X.gzhead.time>>24&255),s1(X,X.level===9?2:X.strategy>=fU||X.level<2?4:0),s1(X,X.gzhead.os&255),X.gzhead.extra&&X.gzhead.extra.length)s1(X,X.gzhead.extra.length&255),s1(X,X.gzhead.extra.length>>8&255);if(X.gzhead.hcrc)W.adler=i8(W.adler,X.pending_buf,X.pending,0);X.gzindex=0,X.status=vA}if(X.status===vA){if(X.gzhead.extra){let J=X.pending,Z=(X.gzhead.extra.length&65535)-X.gzindex;while(X.pending+Z>X.pending_buf_size){let U=X.pending_buf_size-X.pending;if(X.pending_buf.set(X.gzhead.extra.subarray(X.gzindex,X.gzindex+U),X.pending),X.pending=X.pending_buf_size,X.gzhead.hcrc&&X.pending>J)W.adler=i8(W.adler,X.pending_buf,X.pending-J,J);if(X.gzindex+=U,G5(W),X.pending!==0)return X.last_flush=-1,e8;J=0,Z-=U}let V=new Uint8Array(X.gzhead.extra);if(X.pending_buf.set(V.subarray(X.gzindex,X.gzindex+Z),X.pending),X.pending+=Z,X.gzhead.hcrc&&X.pending>J)W.adler=i8(W.adler,X.pending_buf,X.pending-J,J);X.gzindex=0}X.status=gA}if(X.status===gA){if(X.gzhead.name){let J=X.pending,Z;do{if(X.pending===X.pending_buf_size){if(X.gzhead.hcrc&&X.pending>J)W.adler=i8(W.adler,X.pending_buf,X.pending-J,J);if(G5(W),X.pending!==0)return X.last_flush=-1,e8;J=0}if(X.gzindex<X.gzhead.name.length)Z=X.gzhead.name.charCodeAt(X.gzindex++)&255;else Z=0;s1(X,Z)}while(Z!==0);if(X.gzhead.hcrc&&X.pending>J)W.adler=i8(W.adler,X.pending_buf,X.pending-J,J);X.gzindex=0}X.status=uA}if(X.status===uA){if(X.gzhead.comment){let J=X.pending,Z;do{if(X.pending===X.pending_buf_size){if(X.gzhead.hcrc&&X.pending>J)W.adler=i8(W.adler,X.pending_buf,X.pending-J,J);if(G5(W),X.pending!==0)return X.last_flush=-1,e8;J=0}if(X.gzindex<X.gzhead.comment.length)Z=X.gzhead.comment.charCodeAt(X.gzindex++)&255;else Z=0;s1(X,Z)}while(Z!==0);if(X.gzhead.hcrc&&X.pending>J)W.adler=i8(W.adler,X.pending_buf,X.pending-J,J)}X.status=hA}if(X.status===hA){if(X.gzhead.hcrc){if(X.pending+2>X.pending_buf_size){if(G5(W),X.pending!==0)return X.last_flush=-1,e8}s1(X,W.adler&255),s1(X,W.adler>>8&255),W.adler=0}if(X.status=zW,G5(W),X.pending!==0)return X.last_flush=-1,e8}if(W.avail_in!==0||X.lookahead!==0||G!==U6&&X.status!==AJ){let J=X.level===0?OC(X,G):X.strategy===fU?qv(X,G):X.strategy===oy?Nv(X,G):zJ[X.level].func(X,G);if(J===jW||J===eG)X.status=AJ;if(J===k9||J===jW){if(W.avail_out===0)X.last_flush=-1;return e8}if(J===tG){if(G===fy)my(X);else if(G!==RD){if(_A(X,0,0,!1),G===py){if(J6(X.head),X.lookahead===0)X.strstart=0,X.block_start=0,X.insert=0}}if(G5(W),W.avail_out===0)return X.last_flush=-1,e8}}if(G!==j5)return e8;if(X.wrap<=0)return PD;if(X.wrap===2)s1(X,W.adler&255),s1(X,W.adler>>8&255),s1(X,W.adler>>16&255),s1(X,W.adler>>24&255),s1(X,W.total_in&255),s1(X,W.total_in>>8&255),s1(X,W.total_in>>16&255),s1(X,W.total_in>>24&255);else HJ(X,W.adler>>>16),HJ(X,W.adler&65535);if(G5(W),X.wrap>0)X.wrap=-X.wrap;return X.pending!==0?e8:PD},jv=(W)=>{if(BJ(W))return H7;let G=W.state.status;return W.state=null,G===zW?IW(W,cy):e8},Kv=(W,G)=>{let X=G.length;if(BJ(W))return H7;let Y=W.state,J=Y.wrap;if(J===2||J===1&&Y.status!==rG||Y.lookahead)return H7;if(J===1)W.adler=TJ(W.adler,G,X,0);if(Y.wrap=0,X>=Y.w_size){if(J===0)J6(Y.head),Y.strstart=0,Y.block_start=0,Y.insert=0;let Q=new Uint8Array(Y.w_size);Q.set(G.subarray(X-Y.w_size,X),0),G=Q,X=Y.w_size}let{avail_in:Z,next_in:V,input:U}=W;W.avail_in=X,W.next_in=0,W.input=G,aG(Y);while(Y.lookahead>=b1){let Q=Y.strstart,N=Y.lookahead-(b1-1);do Y.ins_h=Q6(Y,Y.ins_h,Y.window[Q+b1-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=b1-1,aG(Y)}return Y.strstart+=Y.lookahead,Y.block_start=Y.strstart,Y.insert=Y.lookahead,Y.lookahead=0,Y.match_length=Y.prev_length=b1-1,Y.match_available=0,W.next_in=V,W.input=U,W.avail_in=Z,Y.wrap=J,e8},Ov=Iv,Dv=TC,Cv=CC,Tv=DC,Mv=zv,Rv=wv,Pv=jv,Lv=Kv,Bv="pako deflate (from Nodeca project)",wJ={deflateInit:Ov,deflateInit2:Dv,deflateReset:Cv,deflateResetKeep:Tv,deflateSetHeader:Mv,deflate:Rv,deflateEnd:Pv,deflateSetDictionary:Lv,deflateInfo:Bv},Ev=(W,G)=>{return Object.prototype.hasOwnProperty.call(W,G)},$v=function(W){let G=Array.prototype.slice.call(arguments,1);while(G.length){let X=G.shift();if(!X)continue;if(typeof X!=="object")throw TypeError(X+"must be non-object");for(let Y in X)if(Ev(X,Y))W[Y]=X[Y]}return W},Fv=(W)=>{let G=0;for(let Y=0,J=W.length;Y<J;Y++)G+=W[Y].length;let X=new Uint8Array(G);for(let Y=0,J=0,Z=W.length;Y<Z;Y++){let V=W[Y];X.set(V,J),J+=V.length}return X},sU={assign:$v,flattenChunks:Fv},MC=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(W){MC=!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 Sv=(W)=>{if(typeof TextEncoder==="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(W);let G,X,Y,J,Z,V=W.length,U=0;for(J=0;J<V;J++){if(X=W.charCodeAt(J),(X&64512)===55296&&J+1<V){if(Y=W.charCodeAt(J+1),(Y&64512)===56320)X=65536+(X-55296<<10)+(Y-56320),J++}U+=X<128?1:X<2048?2:X<65536?3:4}G=new Uint8Array(U);for(Z=0,J=0;Z<U;J++){if(X=W.charCodeAt(J),(X&64512)===55296&&J+1<V){if(Y=W.charCodeAt(J+1),(Y&64512)===56320)X=65536+(X-55296<<10)+(Y-56320),J++}if(X<128)G[Z++]=X;else if(X<2048)G[Z++]=192|X>>>6,G[Z++]=128|X&63;else if(X<65536)G[Z++]=224|X>>>12,G[Z++]=128|X>>>6&63,G[Z++]=128|X&63;else G[Z++]=240|X>>>18,G[Z++]=128|X>>>12&63,G[Z++]=128|X>>>6&63,G[Z++]=128|X&63}return G},xv=(W,G)=>{if(G<65534){if(W.subarray&&MC)return String.fromCharCode.apply(null,W.length===G?W:W.subarray(0,G))}let X="";for(let Y=0;Y<G;Y++)X+=String.fromCharCode(W[Y]);return X},kv=(W,G)=>{let X=G||W.length;if(typeof TextDecoder==="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(W.subarray(0,G));let Y,J,Z=Array(X*2);for(J=0,Y=0;Y<X;){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<X)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 xv(Z,J)},_v=(W,G)=>{if(G=G||W.length,G>W.length)G=W.length;let X=G-1;while(X>=0&&(W[X]&192)===128)X--;if(X<0)return G;if(X===0)return G;return X+MJ[W[X]]>G?X:G},RJ={string2buf:Sv,buf2string:kv,utf8border:_v};function yv(){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 RC=yv,PC=Object.prototype.toString,{Z_NO_FLUSH:vv,Z_SYNC_FLUSH:gv,Z_FULL_FLUSH:uv,Z_FINISH:hv,Z_OK:iU,Z_STREAM_END:bv,Z_DEFAULT_COMPRESSION:mv,Z_DEFAULT_STRATEGY:fv,Z_DEFLATED:pv}=OW;function EJ(W){this.options=sU.assign({level:mv,method:pv,chunkSize:16384,windowBits:15,memLevel:8,strategy:fv},W||{});let G=this.options;if(G.raw&&G.windowBits>0)G.windowBits=-G.windowBits;else if(G.gzip&&G.windowBits>0&&G.windowBits<16)G.windowBits+=16;this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new RC,this.strm.avail_out=0;let X=wJ.deflateInit2(this.strm,G.level,G.method,G.windowBits,G.memLevel,G.strategy);if(X!==iU)throw Error(wW[X]);if(G.header)wJ.deflateSetHeader(this.strm,G.header);if(G.dictionary){let Y;if(typeof G.dictionary==="string")Y=RJ.string2buf(G.dictionary);else if(PC.call(G.dictionary)==="[object ArrayBuffer]")Y=new Uint8Array(G.dictionary);else Y=G.dictionary;if(X=wJ.deflateSetDictionary(this.strm,Y),X!==iU)throw Error(wW[X]);this._dict_set=!0}}EJ.prototype.push=function(W,G){let X=this.strm,Y=this.options.chunkSize,J,Z;if(this.ended)return!1;if(G===~~G)Z=G;else Z=G===!0?hv:vv;if(typeof W==="string")X.input=RJ.string2buf(W);else if(PC.call(W)==="[object ArrayBuffer]")X.input=new Uint8Array(W);else X.input=W;X.next_in=0,X.avail_in=X.input.length;for(;;){if(X.avail_out===0)X.output=new Uint8Array(Y),X.next_out=0,X.avail_out=Y;if((Z===gv||Z===uv)&&X.avail_out<=6){this.onData(X.output.subarray(0,X.next_out)),X.avail_out=0;continue}if(J=wJ.deflate(X,Z),J===bv){if(X.next_out>0)this.onData(X.output.subarray(0,X.next_out));return J=wJ.deflateEnd(this.strm),this.onEnd(J),this.ended=!0,J===iU}if(X.avail_out===0){this.onData(X.output);continue}if(Z>0&&X.next_out>0){this.onData(X.output.subarray(0,X.next_out)),X.avail_out=0;continue}if(X.avail_in===0)break}return!0};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 dA(W,G){let X=new EJ(G);if(X.push(W,!0),X.err)throw X.msg||wW[X.err];return X.result}function cv(W,G){return G=G||{},G.raw=!0,dA(W,G)}function lv(W,G){return G=G||{},G.gzip=!0,dA(W,G)}var dv=EJ,ov=dA,nv=cv,iv=lv,rv=OW,av={Deflate:dv,deflate:ov,deflateRaw:nv,gzip:iv,constants:rv},pU=16209,sv=16191,tv=function(G,X){let Y,J,Z,V,U,Q,N,q,A,H,I,w,O,M,S,v,f,g,c,l,h,e,m,W0,H0=G.state;Y=G.next_in,m=G.input,J=Y+(G.avail_in-5),Z=G.next_out,W0=G.output,V=Z-(X-G.avail_out),U=Z+(G.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,M=H0.distcode,S=(1<<H0.lenbits)-1,v=(1<<H0.distbits)-1;W:do{if(w<15)I+=m[Y++]<<w,w+=8,I+=m[Y++]<<w,w+=8;f=O[I&S];G:for(;;){if(g=f>>>24,I>>>=g,w-=g,g=f>>>16&255,g===0)W0[Z++]=f&65535;else if(g&16){if(c=f&65535,g&=15,g){if(w<g)I+=m[Y++]<<w,w+=8;c+=I&(1<<g)-1,I>>>=g,w-=g}if(w<15)I+=m[Y++]<<w,w+=8,I+=m[Y++]<<w,w+=8;f=M[I&v];X:for(;;){if(g=f>>>24,I>>>=g,w-=g,g=f>>>16&255,g&16){if(l=f&65535,g&=15,w<g){if(I+=m[Y++]<<w,w+=8,w<g)I+=m[Y++]<<w,w+=8}if(l+=I&(1<<g)-1,l>Q){G.msg="invalid distance too far back",H0.mode=pU;break W}if(I>>>=g,w-=g,g=Z-V,l>g){if(g=l-g,g>q){if(H0.sane){G.msg="invalid distance too far back",H0.mode=pU;break W}}if(h=0,e=H,A===0){if(h+=N-g,g<c){c-=g;do W0[Z++]=H[h++];while(--g);h=Z-l,e=W0}}else if(A<g){if(h+=N+A-g,g-=A,g<c){c-=g;do W0[Z++]=H[h++];while(--g);if(h=0,A<c){g=A,c-=g;do W0[Z++]=H[h++];while(--g);h=Z-l,e=W0}}}else if(h+=A-g,g<c){c-=g;do W0[Z++]=H[h++];while(--g);h=Z-l,e=W0}while(c>2)W0[Z++]=e[h++],W0[Z++]=e[h++],W0[Z++]=e[h++],c-=3;if(c){if(W0[Z++]=e[h++],c>1)W0[Z++]=e[h++]}}else{h=Z-l;do W0[Z++]=W0[h++],W0[Z++]=W0[h++],W0[Z++]=W0[h++],c-=3;while(c>2);if(c){if(W0[Z++]=W0[h++],c>1)W0[Z++]=W0[h++]}}}else if((g&64)===0){f=M[(f&65535)+(I&(1<<g)-1)];continue X}else{G.msg="invalid distance code",H0.mode=pU;break W}break}}else if((g&64)===0){f=O[(f&65535)+(I&(1<<g)-1)];continue G}else if(g&32){H0.mode=sv;break W}else{G.msg="invalid literal/length code",H0.mode=pU;break W}break}}while(Y<J&&Z<U);c=w>>3,Y-=c,w-=c<<3,I&=(1<<w)-1,G.next_in=Y,G.next_out=Z,G.avail_in=Y<J?5+(J-Y):5-(Y-J),G.avail_out=Z<U?257+(U-Z):257-(Z-U),H0.hold=I,H0.bits=w;return},nG=15,BD=852,ED=592,$D=0,RA=1,FD=2,ev=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]),Wg=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]),Gg=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]),Xg=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]),Yg=(W,G,X,Y,J,Z,V,U)=>{let Q=U.bits,N=0,q=0,A=0,H=0,I=0,w=0,O=0,M=0,S=0,v=0,f,g,c,l,h,e=null,m,W0=new Uint16Array(nG+1),H0=new Uint16Array(nG+1),k=null,i,B,L;for(N=0;N<=nG;N++)W0[N]=0;for(q=0;q<Y;q++)W0[G[X+q]]++;I=Q;for(H=nG;H>=1;H--)if(W0[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(W0[A]!==0)break;if(I<A)I=A;M=1;for(N=1;N<=nG;N++)if(M<<=1,M-=W0[N],M<0)return-1;if(M>0&&(W===$D||H!==1))return-1;H0[1]=0;for(N=1;N<nG;N++)H0[N+1]=H0[N]+W0[N];for(q=0;q<Y;q++)if(G[X+q]!==0)V[H0[G[X+q]]++]=q;if(W===$D)e=k=V,m=20;else if(W===RA)e=ev,k=Wg,m=257;else e=Gg,k=Xg,m=0;if(v=0,q=0,N=A,h=Z,w=I,O=0,c=-1,S=1<<I,l=S-1,W===RA&&S>BD||W===FD&&S>ED)return 1;for(;;){if(i=N-O,V[q]+1<m)B=0,L=V[q];else if(V[q]>=m)B=k[V[q]-m],L=e[V[q]-m];else B=96,L=0;f=1<<N-O,g=1<<w,A=g;do g-=f,J[h+(v>>O)+g]=i<<24|B<<16|L|0;while(g!==0);f=1<<N-1;while(v&f)f>>=1;if(f!==0)v&=f-1,v+=f;else v=0;if(q++,--W0[N]===0){if(N===H)break;N=G[X+V[q]]}if(N>I&&(v&l)!==c){if(O===0)O=I;h+=A,w=N-O,M=1<<w;while(w+O<H){if(M-=W0[w+O],M<=0)break;w++,M<<=1}if(S+=1<<w,W===RA&&S>BD||W===FD&&S>ED)return 1;c=v&l,J[c]=I<<24|w<<16|h-Z|0}}if(v!==0)J[h+v]=N-O<<24|4194304|0;return U.bits=I,0},jJ=Yg,Jg=0,LC=1,BC=2,{Z_FINISH:SD,Z_BLOCK:Zg,Z_TREES:cU,Z_OK:KW,Z_STREAM_END:Vg,Z_NEED_DICT:Ug,Z_STREAM_ERROR:K5,Z_DATA_ERROR:EC,Z_MEM_ERROR:$C,Z_BUF_ERROR:Qg,Z_DEFLATED:xD}=OW,tU=16180,kD=16181,_D=16182,yD=16183,vD=16184,gD=16185,uD=16186,hD=16187,bD=16188,mD=16189,rU=16190,t7=16191,PA=16192,fD=16193,LA=16194,pD=16195,cD=16196,lD=16197,dD=16198,lU=16199,dU=16200,oD=16201,nD=16202,iD=16203,rD=16204,aD=16205,BA=16206,sD=16207,tD=16208,K8=16209,FC=16210,SC=16211,Ng=852,qg=592,Hg=15,Ag=Hg,eD=(W)=>{return(W>>>24&255)+(W>>>8&65280)+((W&65280)<<8)+((W&255)<<24)};function zg(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var DW=(W)=>{if(!W)return 1;let G=W.state;if(!G||G.strm!==W||G.mode<tU||G.mode>SC)return 1;return 0},xC=(W)=>{if(DW(W))return K5;let G=W.state;if(W.total_in=W.total_out=G.total=0,W.msg="",G.wrap)W.adler=G.wrap&1;return G.mode=tU,G.last=0,G.havedict=0,G.flags=-1,G.dmax=32768,G.head=null,G.hold=0,G.bits=0,G.lencode=G.lendyn=new Int32Array(Ng),G.distcode=G.distdyn=new Int32Array(qg),G.sane=1,G.back=-1,KW},kC=(W)=>{if(DW(W))return K5;let G=W.state;return G.wsize=0,G.whave=0,G.wnext=0,xC(W)},_C=(W,G)=>{let X;if(DW(W))return K5;let Y=W.state;if(G<0)X=0,G=-G;else if(X=(G>>4)+5,G<48)G&=15;if(G&&(G<8||G>15))return K5;if(Y.window!==null&&Y.wbits!==G)Y.window=null;return Y.wrap=X,Y.wbits=G,kC(W)},yC=(W,G)=>{if(!W)return K5;let X=new zg;W.state=X,X.strm=W,X.window=null,X.mode=tU;let Y=_C(W,G);if(Y!==KW)W.state=null;return Y},Ig=(W)=>{return yC(W,Ag)},WC=!0,EA,$A,wg=(W)=>{if(WC){EA=new Int32Array(512),$A=new Int32Array(32);let G=0;while(G<144)W.lens[G++]=8;while(G<256)W.lens[G++]=9;while(G<280)W.lens[G++]=7;while(G<288)W.lens[G++]=8;jJ(LC,W.lens,0,288,EA,0,W.work,{bits:9}),G=0;while(G<32)W.lens[G++]=5;jJ(BC,W.lens,0,32,$A,0,W.work,{bits:5}),WC=!1}W.lencode=EA,W.lenbits=9,W.distcode=$A,W.distbits=5},vC=(W,G,X,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(G.subarray(X-Z.wsize,X),0),Z.wnext=0,Z.whave=Z.wsize;else{if(J=Z.wsize-Z.wnext,J>Y)J=Y;if(Z.window.set(G.subarray(X-Y,X-Y+J),Z.wnext),Y-=J,Y)Z.window.set(G.subarray(X-Y,X),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},jg=(W,G)=>{let X,Y,J,Z,V,U,Q,N,q,A,H,I,w,O,M=0,S,v,f,g,c,l,h,e,m=new Uint8Array(4),W0,H0,k=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(DW(W)||!W.output||!W.input&&W.avail_in!==0)return K5;if(X=W.state,X.mode===t7)X.mode=PA;V=W.next_out,J=W.output,Q=W.avail_out,Z=W.next_in,Y=W.input,U=W.avail_in,N=X.hold,q=X.bits,A=U,H=Q,e=KW;W:for(;;)switch(X.mode){case tU:if(X.wrap===0){X.mode=PA;break}while(q<16){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(X.wrap&2&&N===35615){if(X.wbits===0)X.wbits=15;X.check=0,m[0]=N&255,m[1]=N>>>8&255,X.check=i8(X.check,m,2,0),N=0,q=0,X.mode=kD;break}if(X.head)X.head.done=!1;if(!(X.wrap&1)||(((N&255)<<8)+(N>>8))%31){W.msg="incorrect header check",X.mode=K8;break}if((N&15)!==xD){W.msg="unknown compression method",X.mode=K8;break}if(N>>>=4,q-=4,h=(N&15)+8,X.wbits===0)X.wbits=h;if(h>15||h>X.wbits){W.msg="invalid window size",X.mode=K8;break}X.dmax=1<<X.wbits,X.flags=0,W.adler=X.check=1,X.mode=N&512?mD:t7,N=0,q=0;break;case kD:while(q<16){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(X.flags=N,(X.flags&255)!==xD){W.msg="unknown compression method",X.mode=K8;break}if(X.flags&57344){W.msg="unknown header flags set",X.mode=K8;break}if(X.head)X.head.text=N>>8&1;if(X.flags&512&&X.wrap&4)m[0]=N&255,m[1]=N>>>8&255,X.check=i8(X.check,m,2,0);N=0,q=0,X.mode=_D;case _D:while(q<32){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(X.head)X.head.time=N;if(X.flags&512&&X.wrap&4)m[0]=N&255,m[1]=N>>>8&255,m[2]=N>>>16&255,m[3]=N>>>24&255,X.check=i8(X.check,m,4,0);N=0,q=0,X.mode=yD;case yD:while(q<16){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(X.head)X.head.xflags=N&255,X.head.os=N>>8;if(X.flags&512&&X.wrap&4)m[0]=N&255,m[1]=N>>>8&255,X.check=i8(X.check,m,2,0);N=0,q=0,X.mode=vD;case vD:if(X.flags&1024){while(q<16){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(X.length=N,X.head)X.head.extra_len=N;if(X.flags&512&&X.wrap&4)m[0]=N&255,m[1]=N>>>8&255,X.check=i8(X.check,m,2,0);N=0,q=0}else if(X.head)X.head.extra=null;X.mode=gD;case gD:if(X.flags&1024){if(I=X.length,I>U)I=U;if(I){if(X.head){if(h=X.head.extra_len-X.length,!X.head.extra)X.head.extra=new Uint8Array(X.head.extra_len);X.head.extra.set(Y.subarray(Z,Z+I),h)}if(X.flags&512&&X.wrap&4)X.check=i8(X.check,Y,I,Z);U-=I,Z+=I,X.length-=I}if(X.length)break W}X.length=0,X.mode=uD;case uD:if(X.flags&2048){if(U===0)break W;I=0;do if(h=Y[Z+I++],X.head&&h&&X.length<65536)X.head.name+=String.fromCharCode(h);while(h&&I<U);if(X.flags&512&&X.wrap&4)X.check=i8(X.check,Y,I,Z);if(U-=I,Z+=I,h)break W}else if(X.head)X.head.name=null;X.length=0,X.mode=hD;case hD:if(X.flags&4096){if(U===0)break W;I=0;do if(h=Y[Z+I++],X.head&&h&&X.length<65536)X.head.comment+=String.fromCharCode(h);while(h&&I<U);if(X.flags&512&&X.wrap&4)X.check=i8(X.check,Y,I,Z);if(U-=I,Z+=I,h)break W}else if(X.head)X.head.comment=null;X.mode=bD;case bD:if(X.flags&512){while(q<16){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(X.wrap&4&&N!==(X.check&65535)){W.msg="header crc mismatch",X.mode=K8;break}N=0,q=0}if(X.head)X.head.hcrc=X.flags>>9&1,X.head.done=!0;W.adler=X.check=0,X.mode=t7;break;case mD:while(q<32){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}W.adler=X.check=eD(N),N=0,q=0,X.mode=rU;case rU:if(X.havedict===0)return W.next_out=V,W.avail_out=Q,W.next_in=Z,W.avail_in=U,X.hold=N,X.bits=q,Ug;W.adler=X.check=1,X.mode=t7;case t7:if(G===Zg||G===cU)break W;case PA:if(X.last){N>>>=q&7,q-=q&7,X.mode=BA;break}while(q<3){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}switch(X.last=N&1,N>>>=1,q-=1,N&3){case 0:X.mode=fD;break;case 1:if(wg(X),X.mode=lU,G===cU){N>>>=2,q-=2;break W}break;case 2:X.mode=cD;break;case 3:W.msg="invalid block type",X.mode=K8}N>>>=2,q-=2;break;case fD: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",X.mode=K8;break}if(X.length=N&65535,N=0,q=0,X.mode=LA,G===cU)break W;case LA:X.mode=pD;case pD:if(I=X.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,X.length-=I;break}X.mode=t7;break;case cD:while(q<14){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(X.nlen=(N&31)+257,N>>>=5,q-=5,X.ndist=(N&31)+1,N>>>=5,q-=5,X.ncode=(N&15)+4,N>>>=4,q-=4,X.nlen>286||X.ndist>30){W.msg="too many length or distance symbols",X.mode=K8;break}X.have=0,X.mode=lD;case lD:while(X.have<X.ncode){while(q<3){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}X.lens[k[X.have++]]=N&7,N>>>=3,q-=3}while(X.have<19)X.lens[k[X.have++]]=0;if(X.lencode=X.lendyn,X.lenbits=7,W0={bits:X.lenbits},e=jJ(Jg,X.lens,0,19,X.lencode,0,X.work,W0),X.lenbits=W0.bits,e){W.msg="invalid code lengths set",X.mode=K8;break}X.have=0,X.mode=dD;case dD:while(X.have<X.nlen+X.ndist){for(;;){if(M=X.lencode[N&(1<<X.lenbits)-1],S=M>>>24,v=M>>>16&255,f=M&65535,S<=q)break;if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(f<16)N>>>=S,q-=S,X.lens[X.have++]=f;else{if(f===16){H0=S+2;while(q<H0){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(N>>>=S,q-=S,X.have===0){W.msg="invalid bit length repeat",X.mode=K8;break}h=X.lens[X.have-1],I=3+(N&3),N>>>=2,q-=2}else if(f===17){H0=S+3;while(q<H0){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}N>>>=S,q-=S,h=0,I=3+(N&7),N>>>=3,q-=3}else{H0=S+7;while(q<H0){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}N>>>=S,q-=S,h=0,I=11+(N&127),N>>>=7,q-=7}if(X.have+I>X.nlen+X.ndist){W.msg="invalid bit length repeat",X.mode=K8;break}while(I--)X.lens[X.have++]=h}}if(X.mode===K8)break;if(X.lens[256]===0){W.msg="invalid code -- missing end-of-block",X.mode=K8;break}if(X.lenbits=9,W0={bits:X.lenbits},e=jJ(LC,X.lens,0,X.nlen,X.lencode,0,X.work,W0),X.lenbits=W0.bits,e){W.msg="invalid literal/lengths set",X.mode=K8;break}if(X.distbits=6,X.distcode=X.distdyn,W0={bits:X.distbits},e=jJ(BC,X.lens,X.nlen,X.ndist,X.distcode,0,X.work,W0),X.distbits=W0.bits,e){W.msg="invalid distances set",X.mode=K8;break}if(X.mode=lU,G===cU)break W;case lU:X.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,X.hold=N,X.bits=q,tv(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=X.hold,q=X.bits,X.mode===t7)X.back=-1;break}X.back=0;for(;;){if(M=X.lencode[N&(1<<X.lenbits)-1],S=M>>>24,v=M>>>16&255,f=M&65535,S<=q)break;if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(v&&(v&240)===0){g=S,c=v,l=f;for(;;){if(M=X.lencode[l+((N&(1<<g+c)-1)>>g)],S=M>>>24,v=M>>>16&255,f=M&65535,g+S<=q)break;if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}N>>>=g,q-=g,X.back+=g}if(N>>>=S,q-=S,X.back+=S,X.length=f,v===0){X.mode=aD;break}if(v&32){X.back=-1,X.mode=t7;break}if(v&64){W.msg="invalid literal/length code",X.mode=K8;break}X.extra=v&15,X.mode=oD;case oD:if(X.extra){H0=X.extra;while(q<H0){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}X.length+=N&(1<<X.extra)-1,N>>>=X.extra,q-=X.extra,X.back+=X.extra}X.was=X.length,X.mode=nD;case nD:for(;;){if(M=X.distcode[N&(1<<X.distbits)-1],S=M>>>24,v=M>>>16&255,f=M&65535,S<=q)break;if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if((v&240)===0){g=S,c=v,l=f;for(;;){if(M=X.distcode[l+((N&(1<<g+c)-1)>>g)],S=M>>>24,v=M>>>16&255,f=M&65535,g+S<=q)break;if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}N>>>=g,q-=g,X.back+=g}if(N>>>=S,q-=S,X.back+=S,v&64){W.msg="invalid distance code",X.mode=K8;break}X.offset=f,X.extra=v&15,X.mode=iD;case iD:if(X.extra){H0=X.extra;while(q<H0){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}X.offset+=N&(1<<X.extra)-1,N>>>=X.extra,q-=X.extra,X.back+=X.extra}if(X.offset>X.dmax){W.msg="invalid distance too far back",X.mode=K8;break}X.mode=rD;case rD:if(Q===0)break W;if(I=H-Q,X.offset>I){if(I=X.offset-I,I>X.whave){if(X.sane){W.msg="invalid distance too far back",X.mode=K8;break}}if(I>X.wnext)I-=X.wnext,w=X.wsize-I;else w=X.wnext-I;if(I>X.length)I=X.length;O=X.window}else O=J,w=V-X.offset,I=X.length;if(I>Q)I=Q;Q-=I,X.length-=I;do J[V++]=O[w++];while(--I);if(X.length===0)X.mode=dU;break;case aD:if(Q===0)break W;J[V++]=X.length,Q--,X.mode=dU;break;case BA:if(X.wrap){while(q<32){if(U===0)break W;U--,N|=Y[Z++]<<q,q+=8}if(H-=Q,W.total_out+=H,X.total+=H,X.wrap&4&&H)W.adler=X.check=X.flags?i8(X.check,J,H,V-H):TJ(X.check,J,H,V-H);if(H=Q,X.wrap&4&&(X.flags?N:eD(N))!==X.check){W.msg="incorrect data check",X.mode=K8;break}N=0,q=0}X.mode=sD;case sD:if(X.wrap&&X.flags){while(q<32){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(X.wrap&4&&N!==(X.total&4294967295)){W.msg="incorrect length check",X.mode=K8;break}N=0,q=0}X.mode=tD;case tD:e=Vg;break W;case K8:e=EC;break W;case FC:return $C;case SC:default:return K5}if(W.next_out=V,W.avail_out=Q,W.next_in=Z,W.avail_in=U,X.hold=N,X.bits=q,X.wsize||H!==W.avail_out&&X.mode<K8&&(X.mode<BA||G!==SD)){if(vC(W,W.output,W.next_out,H-W.avail_out));}if(A-=W.avail_in,H-=W.avail_out,W.total_in+=A,W.total_out+=H,X.total+=H,X.wrap&4&&H)W.adler=X.check=X.flags?i8(X.check,J,H,W.next_out-H):TJ(X.check,J,H,W.next_out-H);if(W.data_type=X.bits+(X.last?64:0)+(X.mode===t7?128:0)+(X.mode===lU||X.mode===LA?256:0),(A===0&&H===0||G===SD)&&e===KW)e=Qg;return e},Kg=(W)=>{if(DW(W))return K5;let G=W.state;if(G.window)G.window=null;return W.state=null,KW},Og=(W,G)=>{if(DW(W))return K5;let X=W.state;if((X.wrap&2)===0)return K5;return X.head=G,G.done=!1,KW},Dg=(W,G)=>{let X=G.length,Y,J,Z;if(DW(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,G,X,0),J!==Y.check)return EC}if(Z=vC(W,G,X,X),Z)return Y.mode=FC,$C;return Y.havedict=1,KW},Cg=kC,Tg=_C,Mg=xC,Rg=Ig,Pg=yC,Lg=jg,Bg=Kg,Eg=Og,$g=Dg,Fg="pako inflate (from Nodeca project)",W4={inflateReset:Cg,inflateReset2:Tg,inflateResetKeep:Mg,inflateInit:Rg,inflateInit2:Pg,inflate:Lg,inflateEnd:Bg,inflateGetHeader:Eg,inflateSetDictionary:$g,inflateInfo:Fg};function Sg(){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 xg=Sg,gC=Object.prototype.toString,{Z_NO_FLUSH:kg,Z_FINISH:_g,Z_OK:PJ,Z_STREAM_END:FA,Z_NEED_DICT:SA,Z_STREAM_ERROR:yg,Z_DATA_ERROR:GC,Z_MEM_ERROR:vg}=OW;function $J(W){this.options=sU.assign({chunkSize:65536,windowBits:15,to:""},W||{});let G=this.options;if(G.raw&&G.windowBits>=0&&G.windowBits<16){if(G.windowBits=-G.windowBits,G.windowBits===0)G.windowBits=-15}if(G.windowBits>=0&&G.windowBits<16&&!(W&&W.windowBits))G.windowBits+=32;if(G.windowBits>15&&G.windowBits<48){if((G.windowBits&15)===0)G.windowBits|=15}this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new RC,this.strm.avail_out=0;let X=W4.inflateInit2(this.strm,G.windowBits);if(X!==PJ)throw Error(wW[X]);if(this.header=new xg,W4.inflateGetHeader(this.strm,this.header),G.dictionary){if(typeof G.dictionary==="string")G.dictionary=RJ.string2buf(G.dictionary);else if(gC.call(G.dictionary)==="[object ArrayBuffer]")G.dictionary=new Uint8Array(G.dictionary);if(G.raw){if(X=W4.inflateSetDictionary(this.strm,G.dictionary),X!==PJ)throw Error(wW[X])}}}$J.prototype.push=function(W,G){let X=this.strm,Y=this.options.chunkSize,J=this.options.dictionary,Z,V,U;if(this.ended)return!1;if(G===~~G)V=G;else V=G===!0?_g:kg;if(gC.call(W)==="[object ArrayBuffer]")X.input=new Uint8Array(W);else X.input=W;X.next_in=0,X.avail_in=X.input.length;for(;;){if(X.avail_out===0)X.output=new Uint8Array(Y),X.next_out=0,X.avail_out=Y;if(Z=W4.inflate(X,V),Z===SA&&J){if(Z=W4.inflateSetDictionary(X,J),Z===PJ)Z=W4.inflate(X,V);else if(Z===GC)Z=SA}while(X.avail_in>0&&Z===FA&&X.state.wrap>0&&W[X.next_in]!==0)W4.inflateReset(X),Z=W4.inflate(X,V);switch(Z){case yg:case GC:case SA:case vg:return this.onEnd(Z),this.ended=!0,!1}if(U=X.avail_out,X.next_out){if(X.avail_out===0||Z===FA)if(this.options.to==="string"){let Q=RJ.utf8border(X.output,X.next_out),N=X.next_out-Q,q=RJ.buf2string(X.output,Q);if(X.next_out=N,X.avail_out=Y-N,N)X.output.set(X.output.subarray(Q,Q+N),0);this.onData(q)}else this.onData(X.output.length===X.next_out?X.output:X.output.subarray(0,X.next_out))}if(Z===PJ&&U===0)continue;if(Z===FA)return Z=W4.inflateEnd(this.strm),this.onEnd(Z),this.ended=!0,!0;if(X.avail_in===0)break}return!0};$J.prototype.onData=function(W){this.chunks.push(W)};$J.prototype.onEnd=function(W){if(W===PJ)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 oA(W,G){let X=new $J(G);if(X.push(W),X.err)throw X.msg||wW[X.err];return X.result}function gg(W,G){return G=G||{},G.raw=!0,oA(W,G)}var ug=$J,hg=oA,bg=gg,mg=oA,fg=OW,pg={Inflate:ug,inflate:hg,inflateRaw:bg,ungzip:mg,constants:fg},{Deflate:cg,deflate:lg,deflateRaw:dg,gzip:og}=av,{Inflate:ng,inflate:ig,inflateRaw:rg,ungzip:ag}=pg,sg=cg,tg=lg,eg=dg,Wu=og,Gu=ng,Xu=ig,Yu=rg,Ju=ag,Zu=OW,WX={Deflate:sg,deflate:tg,deflateRaw:eg,gzip:Wu,Inflate:Gu,inflate:Xu,inflateRaw:Yu,ungzip:Ju,constants:Zu};function uC(){let W=Date.now(),G=0;return{now(){return W=Math.max(W,Date.now()),G++,{physical:W,logical:G}},update(X){if(!X||typeof X.physical!=="number"||typeof X.logical!=="number")return;W=Math.max(W,X.physical),G=Math.max(G,X.logical)+1},compare(X,Y){if(!X&&!Y)return 0;if(!X)return-1;if(!Y)return 1;if(X.physical!==Y.physical)return X.physical>Y.physical?1:-1;if(X.logical!==Y.logical)return X.logical>Y.logical?1:-1;return 0}}}function hC(W,G,X){let Y=G.timestamp;if(Y?.physical>Date.now()+7200000)Y={physical:Date.now()+7200000,logical:Y.logical};if(G?.value?.priority===!0&&typeof G.id==="string"&&G.id.startsWith("user:")&&"role"in G.value){let{priority:J,...Z}=G.value;return{resolved:!0,value:Z,timestamp:Y}}if(G?.value?.priority!==void 0){let{priority:J,...Z}=G.value;G={...G,value:Z}}if(!W?.timestamp)return{resolved:!0,value:G.value,timestamp:Y};if(X.compare(Y,W.timestamp)<=0)return{resolved:!1};return{resolved:!0,value:G.value,timestamp:Y}}var FJ={$eq:(W,G)=>W===G,$ne:(W,G)=>W!==G,$gt:(W,G)=>W>G,$gte:(W,G)=>W>=G,$lt:(W,G)=>W<G,$lte:(W,G)=>W<=G,$in:(W,G)=>Array.isArray(G)&&(Array.isArray(W)?W.some((X)=>G.includes(X)):G.includes(W)),$between:(W,[G,X])=>W>=G&&W<=X,$exists:(W,G)=>G?W!==void 0:W===void 0,$startsWith:(W,G)=>typeof W==="string"&&W.startsWith(G),$endsWith:(W,G)=>typeof W==="string"&&W.endsWith(G),$contains:(W,G)=>typeof W==="string"&&W.includes(G),$text:{global:(W,G)=>{let X=(J)=>String(J).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),Y=X(G);return Object.values(W).some((J)=>typeof J==="object"?null.fieldSearch(J,Y):X(J).includes(Y))},field:(W,G)=>{let X=(J)=>String(J).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),Y=X(G);return Array.isArray(W)?W.some((J)=>X(J).includes(Y)):X(W).includes(Y)}},$like:(W,G)=>typeof W==="string"&&typeof G==="string"&&new RegExp(`^${G.replace(/%/g,".*").replace(/_/g,".")}$`,"i").test(W),$regex:(W,G)=>typeof W==="string"&&new RegExp(G.$regex||G,"i").test(W),$and:(W,G,X)=>G.every((Y)=>X.createFilter(Y,X.allNodes)(W)),$or:(W,G,X)=>G.some((Y)=>X.createFilter(Y,X.allNodes)(W)),$not:(W,G,X)=>!X.createFilter(G,X.allNodes)(W),$edge:(W,G,X)=>{if(!W.edges?.length||typeof G!=="object"||G===null)return!1;let Y=X.createFilter(G,X.allNodes),J=[...W.edges],Z=new Set(J).add(W.id),V=[];while(J.length){let U=J.shift(),Q=X.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,G)=>G.split(".").reduce((X,Y)=>X&&typeof X==="object"&&(Y in X)?X[Y]:void 0,W),WQ=(W,G)=>{if(Object.keys(W).length===0)return()=>!0;return(X)=>Object.entries(W).every(([Y,J])=>{if(Y.startsWith("$"))return FJ[Y](X,J,{createFilter:WQ,allNodes:G});let Z=eU(X.value,Y);if(Z===void 0)Z=eU(X,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:G})??!1})})},nA=(W,G)=>{let{$edge:X,...Y}=G.query||{},J=WQ(Y,W),Z=Object.values(W).filter(J),U=[...X?(()=>{let Q=WQ({$edge:X},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(G.field){let Q=G.order==="asc"?1:-1;U.sort((N,q)=>{let A=eU(N.value,G.field),H=eU(q.value,G.field);if(typeof A==="string"&&typeof H==="string")return A.localeCompare(H)*Q;return((A??0)-(H??0))*Q})}if(G.$after){let Q=U.findIndex((N)=>N.id===G.$after);U=Q>=0?U.slice(Q+1):[]}if(G.$before){let Q=U.findIndex((N)=>N.id===G.$before);U=Q>=0?U.slice(0,Q):[]}if(G.$limit)U=U.slice(0,G.$limit);return U};var JX=(()=>{let W=()=>{};return new Proxy(console,{get:(G,X)=>globalThis.__gdbDebug?G[X].bind(G):W})})(),GX=typeof globalThis==="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function MQ(W){return W instanceof Uint8Array||ArrayBuffer.isView(W)&&W.constructor.name==="Uint8Array"}function Zz(W){if(!Number.isSafeInteger(W)||W<0)throw Error("positive integer expected, got "+W)}function LW(W,...G){if(!MQ(W))throw Error("Uint8Array expected");if(G.length>0&&!G.includes(W.length))throw Error("Uint8Array expected of length "+G+", got length="+W.length)}function ZT(W){if(typeof W!=="function"||typeof W.create!=="function")throw Error("Hash should be wrapped by utils.createHasher");Zz(W.outputLen),Zz(W.blockLen)}function AQ(W,G=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(G&&W.finished)throw Error("Hash#digest() has already been called")}function Vu(W,G){LW(W);let X=G.outputLen;if(W.length<X)throw Error("digestInto() expects output buffer of length at least "+X)}function zQ(...W){for(let G=0;G<W.length;G++)W[G].fill(0)}function iA(W){return new DataView(W.buffer,W.byteOffset,W.byteLength)}function z7(W,G){return W<<32-G|W>>>G}var VT=(()=>typeof Uint8Array.from([]).toHex==="function"&&typeof Uint8Array.fromHex==="function")(),Uu=Array.from({length:256},(W,G)=>G.toString(16).padStart(2,"0"));function ZX(W){if(LW(W),VT)return W.toHex();let G="";for(let X=0;X<W.length;X++)G+=Uu[W[X]];return G}var G4={_0:48,_9:57,A:65,F:70,a:97,f:102};function bC(W){if(W>=G4._0&&W<=G4._9)return W-G4._0;if(W>=G4.A&&W<=G4.F)return W-(G4.A-10);if(W>=G4.a&&W<=G4.f)return W-(G4.a-10);return}function IQ(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);if(VT)return Uint8Array.fromHex(W);let G=W.length,X=G/2;if(G%2)throw Error("hex string expected, got unpadded hex of length "+G);let Y=new Uint8Array(X);for(let J=0,Z=0;J<X;J++,Z+=2){let V=bC(W.charCodeAt(Z)),U=bC(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 UT(W){if(typeof W!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(W))}function zz(W){if(typeof W==="string")W=UT(W);return LW(W),W}function w7(...W){let G=0;for(let Y=0;Y<W.length;Y++){let J=W[Y];LW(J),G+=J.length}let X=new Uint8Array(G);for(let Y=0,J=0;Y<W.length;Y++){let Z=W[Y];X.set(Z,J),J+=Z.length}return X}class Iz{}function Qu(W){let G=(Y)=>W().update(zz(Y)).digest(),X=W();return G.outputLen=X.outputLen,G.blockLen=X.blockLen,G.create=()=>W(),G}function RQ(W=32){if(GX&&typeof GX.getRandomValues==="function")return GX.getRandomValues(new Uint8Array(W));if(GX&&typeof GX.randomBytes==="function")return Uint8Array.from(GX.randomBytes(W));throw Error("crypto.getRandomValues must be defined")}function Nu(W,G,X,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(G,X,Y);let J=BigInt(32),Z=BigInt(4294967295),V=Number(X>>J&Z),U=Number(X&Z),Q=Y?4:0,N=Y?0:4;W.setUint32(G+Q,V,Y),W.setUint32(G+N,U,Y)}function qu(W,G,X){return W&G^~W&X}function Hu(W,G,X){return W&G^W&X^G&X}class QT extends Iz{constructor(W,G,X,Y){super();this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=W,this.outputLen=G,this.padOffset=X,this.isLE=Y,this.buffer=new Uint8Array(W),this.view=iA(this.buffer)}update(W){AQ(this),W=zz(W),LW(W);let{view:G,buffer:X,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=iA(W);for(;Y<=J-Z;Z+=Y)this.process(U,Z);continue}if(X.set(W.subarray(Z,Z+V),this.pos),this.pos+=V,Z+=V,this.pos===Y)this.process(G,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){AQ(this),Vu(W,this),this.finished=!0;let{buffer:G,view:X,blockLen:Y,isLE:J}=this,{pos:Z}=this;if(G[Z++]=128,zQ(this.buffer.subarray(Z)),this.padOffset>Y-Z)this.process(X,0),Z=0;for(let q=Z;q<Y;q++)G[q]=0;Nu(X,Y-8,BigInt(this.length*8),J),this.process(X,0);let V=iA(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:G}=this;this.digestInto(W);let X=W.slice(0,G);return this.destroy(),X}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:G,buffer:X,length:Y,finished:J,destroyed:Z,pos:V}=this;if(W.destroyed=Z,W.finished=J,W.length=Y,W.pos=V,Y%G)W.buffer.set(X);return W}clone(){return this._cloneInto()}}var N6=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Au=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]),q6=new Uint32Array(64);class NT extends QT{constructor(W=32){super(64,W,8,!1);this.A=N6[0]|0,this.B=N6[1]|0,this.C=N6[2]|0,this.D=N6[3]|0,this.E=N6[4]|0,this.F=N6[5]|0,this.G=N6[6]|0,this.H=N6[7]|0}get(){let{A:W,B:G,C:X,D:Y,E:J,F:Z,G:V,H:U}=this;return[W,G,X,Y,J,Z,V,U]}set(W,G,X,Y,J,Z,V,U){this.A=W|0,this.B=G|0,this.C=X|0,this.D=Y|0,this.E=J|0,this.F=Z|0,this.G=V|0,this.H=U|0}process(W,G){for(let q=0;q<16;q++,G+=4)q6[q]=W.getUint32(G,!1);for(let q=16;q<64;q++){let A=q6[q-15],H=q6[q-2],I=z7(A,7)^z7(A,18)^A>>>3,w=z7(H,17)^z7(H,19)^H>>>10;q6[q]=w+q6[q-7]+I+q6[q-16]|0}let{A:X,B:Y,C:J,D:Z,E:V,F:U,G:Q,H:N}=this;for(let q=0;q<64;q++){let A=z7(V,6)^z7(V,11)^z7(V,25),H=N+A+qu(V,U,Q)+Au[q]+q6[q]|0,I=(z7(X,2)^z7(X,13)^z7(X,22))+Hu(X,Y,J)|0;N=Q,Q=U,U=V,V=Z+H|0,Z=J,J=Y,Y=X,X=H+I|0}X=X+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(X,Y,J,Z,V,U,Q,N)}roundClean(){zQ(q6)}destroy(){this.set(0,0,0,0,0,0,0,0),zQ(this.buffer)}}var Vz=Qu(()=>new NT);class wz extends Iz{constructor(W,G){super();this.finished=!1,this.destroyed=!1,ZT(W);let X=zz(G);if(this.iHash=W.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let Y=this.blockLen,J=new Uint8Array(Y);J.set(X.length>Y?W.create().update(X).digest():X);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:G,iHash:X,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=G._cloneInto(W.oHash),W.iHash=X._cloneInto(W.iHash),W}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var qT=(W,G,X)=>new wz(W,G).update(X).digest();qT.create=(W,G)=>new wz(W,G);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var jz=BigInt(0),Uz=BigInt(1);function wQ(W,G=""){if(typeof W!=="boolean"){let X=G&&`"${G}"`;throw Error(X+"expected boolean, got type="+typeof W)}return W}function CW(W,G,X=""){let Y=MQ(W),J=W?.length,Z=G!==void 0;if(!Y||Z&&J!==G){let V=X&&`"${X}" `,U=Z?` of length ${G}`:"",Q=Y?`length=${J}`:`type=${typeof W}`;throw Error(V+"expected Uint8Array"+U+", got "+Q)}return W}function GQ(W){let G=W.toString(16);return G.length&1?"0"+G:G}function HT(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return W===""?jz:BigInt("0x"+W)}function qX(W){return HT(ZX(W))}function AT(W){return LW(W),HT(ZX(Uint8Array.from(W).reverse()))}function PQ(W,G){return IQ(W.toString(16).padStart(G*2,"0"))}function zT(W,G){return PQ(W,G).reverse()}function m8(W,G,X){let Y;if(typeof G==="string")try{Y=IQ(G)}catch(Z){throw Error(W+" must be hex string or Uint8Array, cause: "+Z)}else if(MQ(G))Y=Uint8Array.from(G);else throw Error(W+" must be hex string or Uint8Array");let J=Y.length;if(typeof X==="number"&&J!==X)throw Error(W+" of length "+X+" expected, got "+J);return Y}var rA=(W)=>typeof W==="bigint"&&jz<=W;function Qz(W,G,X){return rA(W)&&rA(G)&&rA(X)&&G<=W&&W<X}function zu(W,G,X,Y){if(!Qz(G,X,Y))throw Error("expected valid "+W+": "+X+" <= n < "+Y+", got "+G)}function IT(W){let G;for(G=0;W>jz;W>>=Uz,G+=1);return G}var hJ=(W)=>(Uz<<BigInt(W))-Uz;function Iu(W,G,X){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof G!=="number"||G<2)throw Error("qByteLen must be a number");if(typeof X!=="function")throw Error("hmacFn must be a function");let Y=(H)=>new Uint8Array(H),J=(H)=>Uint8Array.of(H),Z=Y(W),V=Y(W),U=0,Q=()=>{Z.fill(1),V.fill(0),U=0},N=(...H)=>X(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<G){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 Kz(W,G,X={}){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(G).forEach(([J,Z])=>Y(J,Z,!1)),Object.entries(X).forEach(([J,Z])=>Y(J,Z,!0))}function mC(W){let G=new WeakMap;return(X,...Y)=>{let J=G.get(X);if(J!==void 0)return J;let Z=W(X,...Y);return G.set(X,Z),Z}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var _9=BigInt(0),I9=BigInt(1),TW=BigInt(2),wT=BigInt(3),jT=BigInt(4),KT=BigInt(5),wu=BigInt(7),OT=BigInt(8),ju=BigInt(9),DT=BigInt(16);function C5(W,G){let X=W%G;return X>=_9?X:G+X}function O5(W,G,X){let Y=W;while(G-- >_9)Y*=Y,Y%=X;return Y}function fC(W,G){if(W===_9)throw Error("invert: expected non-zero number");if(G<=_9)throw Error("invert: expected positive modulus, got "+G);let X=C5(W,G),Y=G,J=_9,Z=I9,V=I9,U=_9;while(X!==_9){let Q=Y/X,N=Y%X,q=J-V*Q,A=Z-U*Q;Y=X,X=N,J=V,Z=U,V=q,U=A}if(Y!==I9)throw Error("invert: does not exist");return C5(J,G)}function Oz(W,G,X){if(!W.eql(W.sqr(G),X))throw Error("Cannot find square root")}function CT(W,G){let X=(W.ORDER+I9)/jT,Y=W.pow(G,X);return Oz(W,Y,G),Y}function Ku(W,G){let X=(W.ORDER-KT)/OT,Y=W.mul(G,TW),J=W.pow(Y,X),Z=W.mul(G,J),V=W.mul(W.mul(Z,TW),J),U=W.mul(Z,W.sub(V,W.ONE));return Oz(W,U,G),U}function Ou(W){let G=bJ(W),X=TT(W),Y=X(G,G.neg(G.ONE)),J=X(G,Y),Z=X(G,G.neg(Y)),V=(W+wu)/DT;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),M=U.cmov(N,q,O);return Oz(U,M,Q),M}}function TT(W){if(W<wT)throw Error("sqrt is not defined for small field");let G=W-I9,X=0;while(G%TW===_9)G/=TW,X++;let Y=TW,J=bJ(W);while(pC(J,Y)===1)if(Y++>1000)throw Error("Cannot find square root: probably non-prime P");if(X===1)return CT;let Z=J.pow(Y,G),V=(G+I9)/TW;return function(U,Q){if(U.is0(Q))return Q;if(pC(U,Q)!==1)throw Error("Cannot find square root");let N=X,q=U.mul(U.ONE,Z),A=U.pow(Q,G),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),M=U.pow(q,O);N=I,q=U.sqr(M),A=U.mul(A,q),H=U.mul(H,M)}return H}}function Du(W){if(W%jT===wT)return CT;if(W%OT===KT)return Ku;if(W%DT===ju)return Ou(W);return TT(W)}var Cu=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Tu(W){let G={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},X=Cu.reduce((Y,J)=>{return Y[J]="function",Y},G);return Kz(W,X),W}function Mu(W,G,X){if(X<_9)throw Error("invalid exponent, negatives unsupported");if(X===_9)return W.ONE;if(X===I9)return G;let Y=W.ONE,J=G;while(X>_9){if(X&I9)Y=W.mul(Y,J);J=W.sqr(J),X>>=I9}return Y}function MT(W,G,X=!1){let Y=Array(G.length).fill(X?W.ZERO:void 0),J=G.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 G.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 pC(W,G){let X=(W.ORDER-I9)/TW,Y=W.pow(G,X),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 RT(W,G){if(G!==void 0)Zz(G);let X=G!==void 0?G:W.toString(2).length,Y=Math.ceil(X/8);return{nBitLength:X,nByteLength:Y}}function bJ(W,G,X=!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 G==="object"&&G!=null){if(Y.sqrt||X)throw Error("cannot specify opts in two arguments");let H=G;if(H.BITS)J=H.BITS;if(H.sqrt)Z=H.sqrt;if(typeof H.isLE==="boolean")X=H.isLE;if(typeof H.modFromBytes==="boolean")V=H.modFromBytes;U=H.allowedLengths}else{if(typeof G==="number")J=G;if(Y.sqrt)Z=Y.sqrt}let{nBitLength:Q,nByteLength:N}=RT(W,J);if(N>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let q,A=Object.freeze({ORDER:W,isLE:X,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)=>Mu(A,H,I),div:(H,I)=>C5(H*fC(I,W),W),sqrN:(H)=>H*H,addN:(H,I)=>H+I,subN:(H,I)=>H-I,mulN:(H,I)=>H*I,inv:(H)=>fC(H,W),sqrt:Z||((H)=>{if(!q)q=Du(W);return q(A,H)}),toBytes:(H)=>X?zT(H,N):PQ(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,X?0:O.length-H.length),H=O}if(H.length!==N)throw Error("Field.fromBytes: expected "+N+" bytes, got "+H.length);let w=X?AT(H):qX(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)=>MT(A,H),cmov:(H,I,w)=>w?I:H});return Object.freeze(A)}function PT(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let G=W.toString(2).length;return Math.ceil(G/8)}function LT(W){let G=PT(W);return G+Math.ceil(G/2)}function BT(W,G,X=!1){let Y=W.length,J=PT(G),Z=LT(G);if(Y<16||Y<Z||Y>1024)throw Error("expected "+Z+"-1024 bytes of input, got "+Y);let V=X?AT(W):qX(W),U=C5(V,G-I9)+I9;return X?zT(U,J):PQ(U,J)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var QX=BigInt(0),MW=BigInt(1);function jQ(W,G){let X=G.negate();return W?X:G}function aA(W,G){let X=MT(W.Fp,G.map((Y)=>Y.Z));return G.map((Y,J)=>W.fromAffine(Y.toAffine(X[J])))}function ET(W,G){if(!Number.isSafeInteger(W)||W<=0||W>G)throw Error("invalid window size, expected [1.."+G+"], got W="+W)}function sA(W,G){ET(W,G);let X=Math.ceil(G/W)+1,Y=2**(W-1),J=2**W,Z=hJ(W),V=BigInt(W);return{windows:X,windowSize:Y,mask:Z,maxNumber:J,shiftBy:V}}function cC(W,G,X){let{windowSize:Y,mask:J,maxNumber:Z,shiftBy:V}=X,U=Number(W&J),Q=W>>V;if(U>Y)U-=Z,Q+=MW;let N=G*Y,q=N+Math.abs(U)-1,A=U===0,H=U<0,I=G%2!==0;return{nextN:Q,offset:q,isZero:A,isNeg:H,isNegF:I,offsetF:N}}function Ru(W,G){if(!Array.isArray(W))throw Error("array expected");W.forEach((X,Y)=>{if(!(X instanceof G))throw Error("invalid point at index "+Y)})}function Pu(W,G){if(!Array.isArray(W))throw Error("array of scalars expected");W.forEach((X,Y)=>{if(!G.isValid(X))throw Error("invalid scalar at index "+Y)})}var tA=new WeakMap,$T=new WeakMap;function eA(W){return $T.get(W)||1}function lC(W){if(W!==QX)throw Error("invalid wNAF")}class FT{constructor(W,G){this.BASE=W.BASE,this.ZERO=W.ZERO,this.Fn=W.Fn,this.bits=G}_unsafeLadder(W,G,X=this.ZERO){let Y=W;while(G>QX){if(G&MW)X=X.add(Y);Y=Y.double(),G>>=MW}return X}precomputeWindow(W,G){let{windows:X,windowSize:Y}=sA(G,this.bits),J=[],Z=W,V=Z;for(let U=0;U<X;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,G,X){if(!this.Fn.isValid(X))throw Error("invalid scalar");let Y=this.ZERO,J=this.BASE,Z=sA(W,this.bits);for(let V=0;V<Z.windows;V++){let{nextN:U,offset:Q,isZero:N,isNeg:q,isNegF:A,offsetF:H}=cC(X,V,Z);if(X=U,N)J=J.add(jQ(A,G[H]));else Y=Y.add(jQ(q,G[Q]))}return lC(X),{p:Y,f:J}}wNAFUnsafe(W,G,X,Y=this.ZERO){let J=sA(W,this.bits);for(let Z=0;Z<J.windows;Z++){if(X===QX)break;let{nextN:V,offset:U,isZero:Q,isNeg:N}=cC(X,Z,J);if(X=V,Q)continue;else{let q=G[U];Y=Y.add(N?q.negate():q)}}return lC(X),Y}getPrecomputes(W,G,X){let Y=tA.get(G);if(!Y){if(Y=this.precomputeWindow(G,W),W!==1){if(typeof X==="function")Y=X(Y);tA.set(G,Y)}}return Y}cached(W,G,X){let Y=eA(W);return this.wNAF(Y,this.getPrecomputes(Y,W,X),G)}unsafe(W,G,X,Y){let J=eA(W);if(J===1)return this._unsafeLadder(W,G,Y);return this.wNAFUnsafe(J,this.getPrecomputes(J,W,X),G,Y)}createCache(W,G){ET(G,this.bits),$T.set(W,G),tA.delete(W)}hasCache(W){return eA(W)!==1}}function Lu(W,G,X,Y){let J=G,Z=W.ZERO,V=W.ZERO;while(X>QX||Y>QX){if(X&MW)Z=Z.add(J);if(Y&MW)V=V.add(J);J=J.double(),X>>=MW,Y>>=MW}return{p1:Z,p2:V}}function Bu(W,G,X,Y){Ru(X,W),Pu(Y,G);let J=X.length,Z=Y.length;if(J!==Z)throw Error("arrays of points and scalars must have equal length");let V=W.ZERO,U=IT(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((G.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 M=Y[O],S=Number(M>>BigInt(I)&N);q[S]=q[S].add(X[O])}let w=V;for(let O=q.length-1,M=V;O>0;O--)M=M.add(q[O]),w=w.add(M);if(H=H.add(w),I!==0)for(let O=0;O<Q;O++)H=H.double()}return H}function dC(W,G,X){if(G){if(G.ORDER!==W)throw Error("Field.ORDER must match order: Fp == p, Fn == n");return Tu(G),G}else return bJ(W,{isLE:X})}function Eu(W,G,X={},Y){if(Y===void 0)Y=W==="edwards";if(!G||typeof G!=="object")throw Error(`expected valid ${W} CURVE object`);for(let U of["p","n","h"]){let Q=G[U];if(!(typeof Q==="bigint"&&Q>QX))throw Error(`CURVE.${U} must be positive bigint`)}let J=dC(G.p,X.Fp,Y),Z=dC(G.n,X.Fn,Y),V=["Gx","Gy","a",W==="weierstrass"?"b":"d"];for(let U of V)if(!J.isValid(G[U]))throw Error(`CURVE.${U} must be valid field element of CURVE.Fp`);return G=Object.freeze(Object.assign({},G)),{CURVE:G,Fp:J,Fn:Z}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var oC=(W,G)=>(W+(W>=0?G:-G)/xT)/G;function $u(W,G,X){let[[Y,J],[Z,V]]=G,U=oC(V*W,X),Q=oC(-J*W,X),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(IT(X)/2))+VX;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 Nz(W){if(!["compact","recovered","der"].includes(W))throw Error('Signature format must be "compact", "recovered", or "der"');return W}function Wz(W,G){let X={};for(let Y of Object.keys(G))X[Y]=W[Y]===void 0?G[Y]:W[Y];if(wQ(X.lowS,"lowS"),wQ(X.prehash,"prehash"),X.format!==void 0)Nz(X.format);return X}class ST extends Error{constructor(W=""){super(W)}}var X4={Err:ST,_tlv:{encode:(W,G)=>{let{Err:X}=X4;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length&1)throw new X("tlv.encode: unpadded data");let Y=G.length/2,J=GQ(Y);if(J.length/2&128)throw new X("tlv.encode: long form length too big");let Z=Y>127?GQ(J.length/2|128):"";return GQ(W)+Z+J+G},decode(W,G){let{Err:X}=X4,Y=0;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length<2||G[Y++]!==W)throw new X("tlv.decode: wrong tlv");let J=G[Y++],Z=!!(J&128),V=0;if(!Z)V=J;else{let Q=J&127;if(!Q)throw new X("tlv.decode(long): indefinite length not supported");if(Q>4)throw new X("tlv.decode(long): byte length is too big");let N=G.subarray(Y,Y+Q);if(N.length!==Q)throw new X("tlv.decode: length bytes not complete");if(N[0]===0)throw new X("tlv.decode(long): zero leftmost byte");for(let q of N)V=V<<8|q;if(Y+=Q,V<128)throw new X("tlv.decode(long): not minimal encoding")}let U=G.subarray(Y,Y+V);if(U.length!==V)throw new X("tlv.decode: wrong value length");return{v:U,l:G.subarray(Y+V)}}},_int:{encode(W){let{Err:G}=X4;if(W<Y4)throw new G("integer: negative integers are not allowed");let X=GQ(W);if(Number.parseInt(X[0],16)&8)X="00"+X;if(X.length&1)throw new G("unexpected DER parsing assertion: unpadded hex");return X},decode(W){let{Err:G}=X4;if(W[0]&128)throw new G("invalid signature integer: negative");if(W[0]===0&&!(W[1]&128))throw new G("invalid signature integer: unnecessary leading zero");return qX(W)}},toSig(W){let{Err:G,_int:X,_tlv:Y}=X4,J=m8("signature",W),{v:Z,l:V}=Y.decode(48,J);if(V.length)throw new G("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 G("invalid signature: left bytes after parsing");return{r:X.decode(U),s:X.decode(N)}},hexFromSig(W){let{_tlv:G,_int:X}=X4,Y=G.encode(2,X.encode(W.r)),J=G.encode(2,X.encode(W.s)),Z=Y+J;return G.encode(48,Z)}},Y4=BigInt(0),VX=BigInt(1),xT=BigInt(2),XQ=BigInt(3),Fu=BigInt(4);function RW(W,G){let{BYTES:X}=W,Y;if(typeof G==="bigint")Y=G;else{let J=m8("private key",G);try{Y=W.fromBytes(J)}catch(Z){throw Error(`invalid private key: expected ui8a of size ${X}, got ${typeof G}`)}}if(!W.isValidNot0(Y))throw Error("invalid private key: out of range [1..N-1]");return Y}function Su(W,G={}){let X=Eu("weierstrass",W,G),{Fp:Y,Fn:J}=X,Z=X.CURVE,{h:V,n:U}=Z;Kz(G,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:Q}=G;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=_T(Y,J);function q(){if(!Y.isOdd)throw Error("compression is not supported: Field does not have .isOdd()")}function A(k,i,B){let{x:L,y:b}=i.toAffine(),s=Y.toBytes(L);if(wQ(B,"isCompressed"),B){q();let o=!Y.isOdd(b);return w7(kT(o),s)}else return w7(Uint8Array.of(4),s,Y.toBytes(b))}function H(k){CW(k,void 0,"Point");let{publicKey:i,publicKeyUncompressed:B}=N,L=k.length,b=k[0],s=k.subarray(1);if(L===i&&(b===2||b===3)){let o=Y.fromBytes(s);if(!Y.isValid(o))throw Error("bad point: is not on curve, wrong x");let E=O(o),$;try{$=Y.sqrt(E)}catch(x){let R=x instanceof Error?": "+x.message:"";throw Error("bad point: is not on curve, sqrt error"+R)}q();let _=Y.isOdd($);if((b&1)===1!==_)$=Y.neg($);return{x:o,y:$}}else if(L===B&&b===4){let o=Y.BYTES,E=Y.fromBytes(s.subarray(0,o)),$=Y.fromBytes(s.subarray(o,o*2));if(!M(E,$))throw Error("bad point: is not on curve");return{x:E,y:$}}else throw Error(`bad point: got length ${L}, expected compressed=${i} or uncompressed=${B}`)}let I=G.toBytes||A,w=G.fromBytes||H;function O(k){let i=Y.sqr(k),B=Y.mul(i,k);return Y.add(Y.add(B,Y.mul(k,Z.a)),Z.b)}function M(k,i){let B=Y.sqr(i),L=O(k);return Y.eql(B,L)}if(!M(Z.Gx,Z.Gy))throw Error("bad curve params: generator point");let S=Y.mul(Y.pow(Z.a,XQ),Fu),v=Y.mul(Y.sqr(Z.b),BigInt(27));if(Y.is0(Y.add(S,v)))throw Error("bad curve params: a or b");function f(k,i,B=!1){if(!Y.isValid(i)||B&&Y.is0(i))throw Error(`bad point coordinate ${k}`);return i}function g(k){if(!(k instanceof m))throw Error("ProjectivePoint expected")}function c(k){if(!Q||!Q.basises)throw Error("no endo");return $u(k,Q.basises,J.ORDER)}let l=mC((k,i)=>{let{X:B,Y:L,Z:b}=k;if(Y.eql(b,Y.ONE))return{x:B,y:L};let s=k.is0();if(i==null)i=s?Y.ONE:Y.inv(b);let o=Y.mul(B,i),E=Y.mul(L,i),$=Y.mul(b,i);if(s)return{x:Y.ZERO,y:Y.ZERO};if(!Y.eql($,Y.ONE))throw Error("invZ was invalid");return{x:o,y:E}}),h=mC((k)=>{if(k.is0()){if(G.allowInfinityPoint&&!Y.is0(k.Y))return;throw Error("bad point: ZERO")}let{x:i,y:B}=k.toAffine();if(!Y.isValid(i)||!Y.isValid(B))throw Error("bad point: x or y not field elements");if(!M(i,B))throw Error("bad point: equation left != right");if(!k.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});function e(k,i,B,L,b){return B=new m(Y.mul(B.X,k),B.Y,B.Z),i=jQ(L,i),B=jQ(b,B),i.add(B)}class m{constructor(k,i,B){this.X=f("x",k),this.Y=f("y",i,!0),this.Z=f("z",B),Object.freeze(this)}static CURVE(){return Z}static fromAffine(k){let{x:i,y:B}=k||{};if(!k||!Y.isValid(i)||!Y.isValid(B))throw Error("invalid affine point");if(k instanceof m)throw Error("projective point not allowed");if(Y.is0(i)&&Y.is0(B))return m.ZERO;return new m(i,B,Y.ONE)}static fromBytes(k){let i=m.fromAffine(w(CW(k,void 0,"point")));return i.assertValidity(),i}static fromHex(k){return m.fromBytes(m8("pointHex",k))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(k=8,i=!0){if(H0.createCache(this,k),!i)this.multiply(XQ);return this}assertValidity(){h(this)}hasEvenY(){let{y:k}=this.toAffine();if(!Y.isOdd)throw Error("Field doesn't support isOdd");return!Y.isOdd(k)}equals(k){g(k);let{X:i,Y:B,Z:L}=this,{X:b,Y:s,Z:o}=k,E=Y.eql(Y.mul(i,o),Y.mul(b,L)),$=Y.eql(Y.mul(B,o),Y.mul(s,L));return E&&$}negate(){return new m(this.X,Y.neg(this.Y),this.Z)}double(){let{a:k,b:i}=Z,B=Y.mul(i,XQ),{X:L,Y:b,Z:s}=this,o=Y.ZERO,E=Y.ZERO,$=Y.ZERO,_=Y.mul(L,L),x=Y.mul(b,b),R=Y.mul(s,s),u=Y.mul(L,b);return u=Y.add(u,u),$=Y.mul(L,s),$=Y.add($,$),o=Y.mul(k,$),E=Y.mul(B,R),E=Y.add(o,E),o=Y.sub(x,E),E=Y.add(x,E),E=Y.mul(o,E),o=Y.mul(u,o),$=Y.mul(B,$),R=Y.mul(k,R),u=Y.sub(_,R),u=Y.mul(k,u),u=Y.add(u,$),$=Y.add(_,_),_=Y.add($,_),_=Y.add(_,R),_=Y.mul(_,u),E=Y.add(E,_),R=Y.mul(b,s),R=Y.add(R,R),_=Y.mul(R,u),o=Y.sub(o,_),$=Y.mul(R,x),$=Y.add($,$),$=Y.add($,$),new m(o,E,$)}add(k){g(k);let{X:i,Y:B,Z:L}=this,{X:b,Y:s,Z:o}=k,E=Y.ZERO,$=Y.ZERO,_=Y.ZERO,x=Z.a,R=Y.mul(Z.b,XQ),u=Y.mul(i,b),J0=Y.mul(B,s),V0=Y.mul(L,o),Q0=Y.add(i,B),B0=Y.add(b,s);Q0=Y.mul(Q0,B0),B0=Y.add(u,J0),Q0=Y.sub(Q0,B0),B0=Y.add(i,L);let v0=Y.add(b,o);return B0=Y.mul(B0,v0),v0=Y.add(u,V0),B0=Y.sub(B0,v0),v0=Y.add(B,L),E=Y.add(s,o),v0=Y.mul(v0,E),E=Y.add(J0,V0),v0=Y.sub(v0,E),_=Y.mul(x,B0),E=Y.mul(R,V0),_=Y.add(E,_),E=Y.sub(J0,_),_=Y.add(J0,_),$=Y.mul(E,_),J0=Y.add(u,u),J0=Y.add(J0,u),V0=Y.mul(x,V0),B0=Y.mul(R,B0),J0=Y.add(J0,V0),V0=Y.sub(u,V0),V0=Y.mul(x,V0),B0=Y.add(B0,V0),u=Y.mul(J0,B0),$=Y.add($,u),u=Y.mul(v0,B0),E=Y.mul(Q0,E),E=Y.sub(E,u),u=Y.mul(Q0,J0),_=Y.mul(v0,_),_=Y.add(_,u),new m(E,$,_)}subtract(k){return this.add(k.negate())}is0(){return this.equals(m.ZERO)}multiply(k){let{endo:i}=G;if(!J.isValidNot0(k))throw Error("invalid scalar: out of range");let B,L,b=(s)=>H0.cached(this,s,(o)=>aA(m,o));if(i){let{k1neg:s,k1:o,k2neg:E,k2:$}=c(k),{p:_,f:x}=b(o),{p:R,f:u}=b($);L=x.add(u),B=e(i.beta,_,R,s,E)}else{let{p:s,f:o}=b(k);B=s,L=o}return aA(m,[B,L])[0]}multiplyUnsafe(k){let{endo:i}=G,B=this;if(!J.isValid(k))throw Error("invalid scalar: out of range");if(k===Y4||B.is0())return m.ZERO;if(k===VX)return B;if(H0.hasCache(this))return this.multiply(k);if(i){let{k1neg:L,k1:b,k2neg:s,k2:o}=c(k),{p1:E,p2:$}=Lu(m,B,b,o);return e(i.beta,E,$,L,s)}else return H0.unsafe(B,k)}multiplyAndAddUnsafe(k,i,B){let L=this.multiplyUnsafe(i).add(k.multiplyUnsafe(B));return L.is0()?void 0:L}toAffine(k){return l(this,k)}isTorsionFree(){let{isTorsionFree:k}=G;if(V===VX)return!0;if(k)return k(m,this);return H0.unsafe(this,U).is0()}clearCofactor(){let{clearCofactor:k}=G;if(V===VX)return this;if(k)return k(m,this);return this.multiplyUnsafe(V)}isSmallOrder(){return this.multiplyUnsafe(V).is0()}toBytes(k=!0){return wQ(k,"isCompressed"),this.assertValidity(),I(m,this,k)}toHex(k=!0){return ZX(this.toBytes(k))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(k=!0){return this.toBytes(k)}_setWindowSize(k){this.precompute(k)}static normalizeZ(k){return aA(m,k)}static msm(k,i){return Bu(m,J,k,i)}static fromPrivateKey(k){return m.BASE.multiply(RW(J,k))}}m.BASE=new m(Z.Gx,Z.Gy,Y.ONE),m.ZERO=new m(Y.ZERO,Y.ONE,Y.ZERO),m.Fp=Y,m.Fn=J;let W0=J.BITS,H0=new FT(m,G.endo?Math.ceil(W0/2):W0);return m.BASE.precompute(8),m}function kT(W){return Uint8Array.of(W?2:3)}function _T(W,G){return{secretKey:G.BYTES,publicKey:1+W.BYTES,publicKeyUncompressed:1+2*W.BYTES,publicKeyHasPrefix:!0,signature:2*G.BYTES}}function xu(W,G={}){let{Fn:X}=W,Y=G.randomBytes||RQ,J=Object.assign(_T(W.Fp,X),{seed:LT(X.ORDER)});function Z(H){try{return!!RW(X,H)}catch(I){return!1}}function V(H,I){let{publicKey:w,publicKeyUncompressed:O}=J;try{let M=H.length;if(I===!0&&M!==w)return!1;if(I===!1&&M!==O)return!1;return!!W.fromBytes(H)}catch(M){return!1}}function U(H=Y(J.seed)){return BT(CW(H,J.seed,"seed"),X.ORDER)}function Q(H,I=!0){return W.BASE.multiply(RW(X,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(X.allowedLengths||I===w)return;let M=m8("key",H).length;return M===w||M===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(X,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(X,H),precompute(H=8,I=W.BASE){return I.precompute(H,!1)}},lengths:J})}function ku(W,G,X={}){ZT(G),Kz(X,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let Y=X.randomBytes||RQ,J=X.hmac||((B,...L)=>qT(G,B,w7(...L))),{Fp:Z,Fn:V}=W,{ORDER:U,BITS:Q}=V,{keygen:N,getPublicKey:q,getSharedSecret:A,utils:H,lengths:I}=xu(W,X),w={prehash:!1,lowS:typeof X.lowS==="boolean"?X.lowS:!1,format:void 0,extraEntropy:!1},O="compact";function M(B){let L=U>>VX;return B>L}function S(B,L){if(!V.isValidNot0(L))throw Error(`invalid signature ${B}: out of range 1..Point.Fn.ORDER`);return L}function v(B,L){Nz(L);let b=I.signature,s=L==="compact"?b:L==="recovered"?b+1:void 0;return CW(B,s,`${L} signature`)}class f{constructor(B,L,b){if(this.r=S("r",B),this.s=S("s",L),b!=null)this.recovery=b;Object.freeze(this)}static fromBytes(B,L=O){v(B,L);let b;if(L==="der"){let{r:$,s:_}=X4.toSig(CW(B));return new f($,_)}if(L==="recovered")b=B[0],L="compact",B=B.subarray(1);let s=V.BYTES,o=B.subarray(0,s),E=B.subarray(s,s*2);return new f(V.fromBytes(o),V.fromBytes(E),b)}static fromHex(B,L){return this.fromBytes(IQ(B),L)}addRecoveryBit(B){return new f(this.r,this.s,B)}recoverPublicKey(B){let L=Z.ORDER,{r:b,s,recovery:o}=this;if(o==null||![0,1,2,3].includes(o))throw Error("recovery id invalid");if(U*xT<L&&o>1)throw Error("recovery id is ambiguous for h>1 curve");let E=o===2||o===3?b+U:b;if(!Z.isValid(E))throw Error("recovery id 2 or 3 invalid");let $=Z.toBytes(E),_=W.fromBytes(w7(kT((o&1)===0),$)),x=V.inv(E),R=c(m8("msgHash",B)),u=V.create(-R*x),J0=V.create(s*x),V0=W.BASE.multiplyUnsafe(u).add(_.multiplyUnsafe(J0));if(V0.is0())throw Error("point at infinify");return V0.assertValidity(),V0}hasHighS(){return M(this.s)}toBytes(B=O){if(Nz(B),B==="der")return IQ(X4.hexFromSig(this));let L=V.toBytes(this.r),b=V.toBytes(this.s);if(B==="recovered"){if(this.recovery==null)throw Error("recovery bit must be present");return w7(Uint8Array.of(this.recovery),L,b)}return w7(L,b)}toHex(B){return ZX(this.toBytes(B))}assertValidity(){}static fromCompact(B){return f.fromBytes(m8("sig",B),"compact")}static fromDER(B){return f.fromBytes(m8("sig",B),"der")}normalizeS(){return this.hasHighS()?new f(this.r,V.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return ZX(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return ZX(this.toBytes("compact"))}}let g=X.bits2int||function(B){if(B.length>8192)throw Error("input is too large");let L=qX(B),b=B.length*8-Q;return b>0?L>>BigInt(b):L},c=X.bits2int_modN||function(B){return V.create(g(B))},l=hJ(Q);function h(B){return zu("num < 2^"+Q,B,Y4,l),V.toBytes(B)}function e(B,L){return CW(B,void 0,"message"),L?CW(G(B),void 0,"prehashed message"):B}function m(B,L,b){if(["recovered","canonical"].some((V0)=>(V0 in b)))throw Error("sign() legacy options not supported");let{lowS:s,prehash:o,extraEntropy:E}=Wz(b,w);B=e(B,o);let $=c(B),_=RW(V,L),x=[h(_),h($)];if(E!=null&&E!==!1){let V0=E===!0?Y(I.secretKey):E;x.push(m8("extraEntropy",V0))}let R=w7(...x),u=$;function J0(V0){let Q0=g(V0);if(!V.isValidNot0(Q0))return;let B0=V.inv(Q0),v0=W.BASE.multiply(Q0).toAffine(),Q1=V.create(v0.x);if(Q1===Y4)return;let u1=V.create(B0*V.create(u+Q1*_));if(u1===Y4)return;let k0=(v0.x===Q1?0:2)|Number(v0.y&VX),h1=u1;if(s&&M(u1))h1=V.neg(u1),k0^=1;return new f(Q1,h1,k0)}return{seed:R,k2sig:J0}}function W0(B,L,b={}){B=m8("message",B);let{seed:s,k2sig:o}=m(B,L,b);return Iu(G.outputLen,V.BYTES,J)(s,o)}function H0(B){let L=void 0,b=typeof B==="string"||MQ(B),s=!b&&B!==null&&typeof B==="object"&&typeof B.r==="bigint"&&typeof B.s==="bigint";if(!b&&!s)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(s)L=new f(B.r,B.s);else if(b){try{L=f.fromBytes(m8("sig",B),"der")}catch(o){if(!(o instanceof X4.Err))throw o}if(!L)try{L=f.fromBytes(m8("sig",B),"compact")}catch(o){return!1}}if(!L)return!1;return L}function k(B,L,b,s={}){let{lowS:o,prehash:E,format:$}=Wz(s,w);if(b=m8("publicKey",b),L=e(m8("message",L),E),"strict"in s)throw Error("options.strict was renamed to lowS");let _=$===void 0?H0(B):f.fromBytes(m8("sig",B),$);if(_===!1)return!1;try{let x=W.fromBytes(b);if(o&&_.hasHighS())return!1;let{r:R,s:u}=_,J0=c(L),V0=V.inv(u),Q0=V.create(J0*V0),B0=V.create(R*V0),v0=W.BASE.multiplyUnsafe(Q0).add(x.multiplyUnsafe(B0));if(v0.is0())return!1;return V.create(v0.x)===R}catch(x){return!1}}function i(B,L,b={}){let{prehash:s}=Wz(b,w);return L=e(L,s),f.fromBytes(B,"recovered").recoverPublicKey(L).toBytes()}return Object.freeze({keygen:N,getPublicKey:q,getSharedSecret:A,utils:H,lengths:I,Point:W,sign:W0,verify:k,recoverPublicKey:i,Signature:f,hash:G})}function _u(W){let G={a:W.a,b:W.b,p:W.Fp.ORDER,n:W.n,h:W.h,Gx:W.Gx,Gy:W.Gy},X=W.Fp,Y=W.allowedPrivateKeyLengths?Array.from(new Set(W.allowedPrivateKeyLengths.map((V)=>Math.ceil(V/2)))):void 0,J=bJ(G.n,{BITS:W.nBitLength,allowedLengths:Y,modFromBytes:W.wrapPrivateKey}),Z={Fp:X,Fn:J,allowInfinityPoint:W.allowInfinityPoint,endo:W.endo,isTorsionFree:W.isTorsionFree,clearCofactor:W.clearCofactor,fromBytes:W.fromBytes,toBytes:W.toBytes};return{CURVE:G,curveOpts:Z}}function yu(W){let{CURVE:G,curveOpts:X}=_u(W),Y={hmac:W.hmac,randomBytes:W.randomBytes,lowS:W.lowS,bits2int:W.bits2int,bits2int_modN:W.bits2int_modN};return{CURVE:G,curveOpts:X,hash:W.hash,ecdsaOpts:Y}}function vu(W,G){let X=G.Point;return Object.assign({},G,{ProjectivePoint:X,CURVE:Object.assign({},W,RT(X.Fn.ORDER,X.Fn.BITS))})}function gu(W){let{CURVE:G,curveOpts:X,hash:Y,ecdsaOpts:J}=yu(W),Z=Su(G,X),V=ku(Z,Y,J);return vu(W,V)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function uu(W,G){let X=(Y)=>gu({...W,hash:Y});return{...X(G),create:X}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var NX={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},hu={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},bu=BigInt(0),nC=BigInt(1),qz=BigInt(2);function mu(W){let G=NX.p,X=BigInt(3),Y=BigInt(6),J=BigInt(11),Z=BigInt(22),V=BigInt(23),U=BigInt(44),Q=BigInt(88),N=W*W*W%G,q=N*N*W%G,A=O5(q,X,G)*q%G,H=O5(A,X,G)*q%G,I=O5(H,qz,G)*N%G,w=O5(I,J,G)*I%G,O=O5(w,Z,G)*w%G,M=O5(O,U,G)*O%G,S=O5(M,Q,G)*M%G,v=O5(S,U,G)*O%G,f=O5(v,X,G)*q%G,g=O5(f,V,G)*w%G,c=O5(g,Y,G)*N%G,l=O5(c,qz,G);if(!KQ.eql(KQ.sqr(l),W))throw Error("Cannot find square root");return l}var KQ=bJ(NX.p,{sqrt:mu}),yT=uu({...NX,Fp:KQ,lowS:!0,endo:hu},Vz),iC={};function OQ(W,...G){let X=iC[W];if(X===void 0){let Y=Vz(UT(W));X=w7(Y,Y),iC[W]=X}return Vz(w7(X,...G))}var Dz=(W)=>W.toBytes(!0).slice(1),HX=(()=>yT.Point)(),Cz=(W)=>W%qz===bu;function Hz(W){let{Fn:G,BASE:X}=HX,Y=RW(G,W),J=X.multiply(Y);return{scalar:Cz(J.y)?Y:G.neg(Y),bytes:Dz(J)}}function vT(W){let G=KQ;if(!G.isValidNot0(W))throw Error("invalid x: Fail if x \u2265 p");let X=G.create(W*W),Y=G.create(X*W+BigInt(7)),J=G.sqrt(Y);if(!Cz(J))J=G.neg(J);let Z=HX.fromAffine({x:W,y:J});return Z.assertValidity(),Z}var gJ=qX;function gT(...W){return HX.Fn.create(gJ(OQ("BIP0340/challenge",...W)))}function rC(W){return Hz(W).bytes}function fu(W,G,X=RQ(32)){let{Fn:Y}=HX,J=m8("message",W),{bytes:Z,scalar:V}=Hz(G),U=m8("auxRand",X,32),Q=Y.toBytes(V^gJ(OQ("BIP0340/aux",U))),N=OQ("BIP0340/nonce",Q,Z,J),{bytes:q,scalar:A}=Hz(N),H=gT(q,Z,J),I=new Uint8Array(64);if(I.set(q,0),I.set(Y.toBytes(Y.create(A+H*V)),32),!uT(I,J,Z))throw Error("sign: Invalid signature produced");return I}function uT(W,G,X){let{Fn:Y,BASE:J}=HX,Z=m8("signature",W,64),V=m8("message",G),U=m8("publicKey",X,32);try{let Q=vT(gJ(U)),N=gJ(Z.subarray(0,32));if(!Qz(N,nC,NX.p))return!1;let q=gJ(Z.subarray(32,64));if(!Qz(q,nC,NX.n))return!1;let A=gT(Y.toBytes(N),Dz(Q),V),H=J.multiplyUnsafe(q).add(Q.multiplyUnsafe(Y.neg(A))),{x:I,y:w}=H.toAffine();if(H.is0()||!Cz(w)||I!==N)return!1;return!0}catch(Q){return!1}}var Tz=(()=>{let W=(X=RQ(48))=>{return BT(X,NX.n)};yT.utils.randomSecretKey;function G(X){let Y=W(X);return{secretKey:Y,publicKey:rC(Y)}}return{keygen:G,getPublicKey:rC,sign:fu,verify:uT,Point:HX,utils:{randomSecretKey:W,randomPrivateKey:W,taggedHash:OQ,lift_x:vT,pointToBytes:Dz,numberToBytesBE:PQ,bytesToNumberBE:qX,mod:C5},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})(),pu=new TextEncoder,cu=new TextDecoder,PW=(W)=>pu.encode(W),kJ=(W)=>cu.decode(W),Az=(W)=>Array.from(W,(G)=>G.toString(16).padStart(2,"0")).join(""),j7=JSON.stringify,DQ=JSON.parse,lu=(W,G=Number.MAX_SAFE_INTEGER)=>W.split("").reduce((X,Y)=>X+Y.charCodeAt(0),0)%G,Mz="AES-GCM",du={},hT="$",bT=",",ou=(W)=>{let G=new Uint8Array(W),X=32768,Y="";for(let J=0;J<G.length;J+=32768)Y+=String.fromCharCode(...G.subarray(J,J+32768));return btoa(Y)},nu=(W)=>Uint8Array.from(atob(W),(G)=>G.charCodeAt(0)).buffer,YQ=(W)=>du[W]??=crypto.subtle.digest("SHA-1",PW(W)).then((G)=>{let X=new Uint8Array(G),Y="";for(let J of X)Y+=J.toString(36);return Y}),iu=async(W,G,X)=>{let Y=await crypto.subtle.digest("SHA-256",PW(`${W}:${G}:${X}`));return crypto.subtle.importKey("raw",Y,{name:Mz},!1,["encrypt","decrypt"])},ru=async(W,G)=>{let X=crypto.getRandomValues(new Uint8Array(12)),Y=await W,J=await crypto.subtle.encrypt({name:Mz,iv:X},Y,PW(G));return`${X.join(bT)}${hT}${ou(J)}`},au=async(W,G)=>{let[X,Y]=G.split(hT);if(!X||!Y)throw Error("Invalid encrypted payload format");let J=Uint8Array.from(X.split(bT),Number),Z=await W,V=await crypto.subtle.decrypt({name:Mz,iv:J},Z,nu(Y));return kJ(V)},D5="GenosRTC",LQ=(W,G)=>Array.from({length:W},G),CQ=(W)=>Array.from(crypto.getRandomValues(new Uint8Array(W)),(G)=>"0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"[G%62]).join(""),I8=typeof sessionStorage<"u"?sessionStorage.__genosrtcId??=CQ(20):CQ(20),YX=Promise.all.bind(Promise),su=typeof window<"u",{entries:tu,fromEntries:mT,keys:ge}=Object,aC=()=>{},I7=(W)=>Error(`GenosRTC: ${W}`),JQ=(...W)=>W.join("@"),eu=5000,sC="icegatheringstatechange",tC="offer",Wh="answer",Gh=[...LQ(3,(W,G)=>`stun:stun${G||""}.l.google.com:19302`),"stun:stun.cloudflare.com:3478"].map((W)=>({urls:W})),eC=(W,{rtcConfig:G,rtcPolyfill:X,turnConfig:Y})=>{let J=new(X||RTCPeerConnection)({iceServers:[...Gh,...Y||[]],...G}),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(sC,I),H()};J.addEventListener(sC,I),I()}),new Promise((H)=>setTimeout(H,eu))]).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===tC){if(V||J.signalingState!=="stable"&&!U){if(W)return;await YX([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===Wh){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===tC&&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)}},Xh=Object.getPrototypeOf(Uint8Array),QQ=12,fT=0,NQ=fT+QQ,qQ=NQ+1,_J=qQ+1,yJ=_J+1,SJ=16384-yJ,ZQ=255,Gz="bufferedamountlow",XX=(W)=>`@_${W}`,WT=XX("ping"),Xz=100,Yh=3,Jh=200,Zh=512,GT=(W,G)=>new Response(new Blob([W]).stream().pipeThrough(new G("deflate"))).arrayBuffer().then((X)=>new Uint8Array(X)),Vh=(W,G,X,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,u)=>{if(!H.has(R))H.set(R,new Set);H.get(R).add(u)},M=(R,u)=>H.get(R)?.delete(u),S=(R,...u)=>H.get(R)?.forEach((J0)=>J0(...u)),v=(R,u)=>{let J0=R?Array.isArray(R)?R:[R]:Z.keys();return Array.from(J0,(V0)=>{let Q0=Z.get(V0);if(!Q0)return console.warn(`${D5}: no peer with id ${V0}`),null;return u(V0,Q0)}).filter(Boolean)},f=(R)=>{if(!Z.has(R))return;Z.delete(R),I.delete(R),_.delete(R),delete Q[R],delete N[R],delete q[R],delete A[R],S("peer:leave",R),G(R)},g=(R)=>new Promise((u,J0)=>{let V0=setTimeout(()=>{R.removeEventListener(Gz,Q0),J0(Error(`${D5}: bufferLow timeout`))},5000);function Q0(){clearTimeout(V0),R.removeEventListener(Gz,Q0),u()}R.addEventListener(Gz,Q0)}),c=(R)=>{if(U.has(R))return U.get(R);if(!R)throw I7("action type is required");let u=PW(R);if(u.byteLength>QQ)throw I7(`\u274C "${R}" exceeds ${QQ} bytes. Use a shorter name.`);let J0=new Uint8Array(QQ).map((k0,h1)=>u[h1]||0),V0=0,Q0=new Map([["message",new Set],["progress",new Set]]),B0=(k0,h1)=>Q0.get(k0)?.add(h1),v0=(k0,h1)=>Q0.get(k0)?.delete(h1),Q1=async(k0,h1,E1,p)=>{if(E1&&typeof E1!=="object")throw I7("meta must be object");if(k0===void 0)throw I7("data cannot be undefined");let X0=k0 instanceof Blob,A0=X0||k0 instanceof ArrayBuffer||k0 instanceof Xh,F0=typeof k0!=="string";if(E1&&!A0)throw I7("meta only allowed with binary");let j1=A0?new Uint8Array(X0?await k0.arrayBuffer():k0):PW(F0?j7(k0):k0),l0=0;if(!A0&&j1.byteLength>=Zh){let F1=await GT(j1,CompressionStream);if(F1.byteLength<j1.byteLength)j1=F1,l0=1}let N0=E1?PW(j7(E1)):null,E0=Math.ceil(j1.byteLength/SJ)+(E1?1:0)||1;if(E0>Xz)throw I7(`Message too large, exceeds max chunks ${Xz}`);let R1=LQ(E0,(F1,v1)=>{let f0=v1===E0-1,g0=E1&&v1===0,N1=g0?N0:j1.subarray(E1?(v1-1)*SJ:v1*SJ,E1?v1*SJ:(v1+1)*SJ),Y8=new Uint8Array(yJ+N1.byteLength);return Y8.set(J0),Y8.set([V0],NQ),Y8.set([f0|g0<<1|A0<<2|F0<<3|l0<<4],qQ),Y8.set([Math.round((v1+1)/E0*ZQ)],_J),Y8.set(N1,yJ),Y8});return V0=V0+1&ZQ,YX(v(h1,async(F1,v1)=>{let{channel:f0}=v1;for(let g0=0;g0<E0;g0++){let N1=0;while(f0.bufferedAmount>f0.bufferedAmountLowThreshold){if(N1++>Yh)throw I7(`${D5}: send buffer full, max retries reached for peer ${F1}`);try{await g(f0)}catch(Y8){console.warn(Y8.message),await new Promise((q9)=>setTimeout(q9,Jh))}}if(!Z.has(F1))break;if(!v1.sendData(R1[g0]))throw I7(`channel not open for peer ${F1}`);p?.(R1[g0][_J]/ZQ,F1,E1)}}))};V.set(R,{listeners:Q0,send:Q1});let u1={send:Q1,on:B0,off:v0};return U.set(R,u1),u1},l=(R,u)=>{try{I.set(R,Date.now()),_.delete(R);let J0=new Uint8Array(u),V0=kJ(J0.subarray(fT,NQ)).replace(/\x00/g,"");if(!V.has(V0))return console.warn(`${D5}: unregistered type (${V0})`);if(V0===WT){m("",R).catch(()=>{});return}let[Q0]=J0.subarray(NQ,qQ),[B0]=J0.subarray(qQ,_J),[v0]=J0.subarray(_J,yJ),Q1=J0.subarray(yJ),u1=Boolean(B0&1),k0=Boolean(B0&2),h1=Boolean(B0&4),E1=Boolean(B0&8),p=Boolean(B0&16),X0=V.get(V0),A0=(Q[R]||={})[V0]||={};if(A0[Q0]?.chunks?.length>Xz){console.warn(`${D5}: peer ${R} sent too many chunks for nonce ${Q0}, ignoring.`);return}let F0=A0[Q0]||={chunks:[]};if(k0)try{F0.meta=DQ(kJ(Q1))}catch{console.warn(`${D5}: failed to parse meta from peer ${R} for type ${V0}`);return}else F0.chunks.push(Q1);if(X0.listeners.get("progress").forEach((l0)=>{try{l0(v0/ZQ,R,F0.meta)}catch(N0){console.error(N0)}}),!u1)return;let j1=new Uint8Array(F0.chunks.reduce((l0,N0)=>l0+N0.byteLength,0));F0.chunks.reduce((l0,N0)=>(j1.set(N0,l0),l0+N0.byteLength),0),delete A0[Q0],w=w.then(async()=>{let l0=p?await GT(j1,DecompressionStream):j1,N0;if(h1)N0=l0;else if(E1)try{N0=DQ(kJ(l0))}catch{console.warn(`${D5}: failed to parse JSON message data from peer ${R} for type ${V0}`);return}else N0=kJ(l0);X0.listeners.get("message").forEach((E0)=>{try{E0(N0,R,F0.meta)}catch(R1){console.error(R1)}})}).catch((l0)=>console.error(`${D5}: dispatch error from peer ${R}:`,l0))}catch(J0){console.error(`${D5}: error handling data from peer ${R}:`,J0)}},h=async()=>{try{await s(""),await new Promise((R)=>setTimeout(R,99))}catch(R){console.warn(`${D5}: error sending leave`,R)}for(let[R,u]of Z){try{u.destroy()}catch{}Z.delete(R)}clearInterval(x),X()},{send:e}=c(WT),{send:m,on:W0}=c(XX("pong")),{send:H0,on:k}=c(XX("signal")),{send:i,on:B}=c(XX("stream")),{send:L,on:b}=c(XX("track")),{send:s,on:o}=c(XX("leave"));W((R,u)=>{let J0=Z.get(u);if(J0===R)return;if(J0){let V0=()=>{};J0.setHandlers({data:V0,stream:V0,track:V0,signal:V0,close:V0,error:V0})}Z.set(u,R),I.set(u,Date.now()),_.delete(u),R.setHandlers({data:(V0)=>l(u,V0),stream:(V0)=>{S("stream:add",V0,u,q[u]),delete q[u]},track:(V0,Q0)=>{S("track:add",V0,Q0,u,A[u]),delete A[u]},signal:(V0)=>H0(V0,u),close:()=>f(u),error:(V0)=>{console.error(`${D5}: peer error for ${u}`,V0),f(u)}}),S("peer:join",u,Y?.(u))}),J?.((R,u,J0)=>S(J0?"peer:seen":"peer:lost",R,u)),W0("message",(R,u)=>{N[u]?.(),delete N[u]}),k("message",(R,u)=>Z.get(u)?.signal(R)),B("message",(R,u)=>q[u]=R),b("message",(R,u)=>A[u]=R),o("message",(R,u)=>f(u));let E=1e4,$=20000,_=new Map,x=setInterval(()=>{let R=Date.now();for(let[u,J0]of Z){if(R-(I.get(u)??R)<=E)continue;let V0=_.get(u);if(V0===void 0)_.set(u,R),e("",u).catch(()=>{});else if(R-V0>$){_.delete(u);try{J0.destroy()}catch{}f(u)}}},5000);if(su)addEventListener("beforeunload",h);return{on:O,off:M,channel:c,leave:h,ping:async(R)=>{if(!R)throw I7("ping() requires target peer ID");let u=Date.now();return e("",R),await new Promise((J0)=>N[R]=J0),Date.now()-u},getPeers:()=>mT(Array.from(Z,([R,u])=>[R,u.connection])),addStream:(R,u,J0)=>v(u,async(V0,Q0)=>{if(J0)await i(J0,V0);Q0.addStream(R)}),removeStream:(R,u)=>v(u,(J0,V0)=>V0.removeStream(R)),addTrack:(R,u,J0,V0)=>v(J0,async(Q0,B0)=>{if(V0)await L(V0,Q0);B0.addTrack(R,u)}),removeTrack:(R,u)=>v(u,(J0,V0)=>V0.removeTrack(R)),replaceTrack:(R,u,J0,V0)=>v(J0,async(Q0,B0)=>{if(V0)await L(V0,Q0);B0.replaceTrack(R,u)})}},Uh=5,Qh=10,Nh=2500,VQ=57333,qh=({init:W,subscribe:G,announce:X,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 I7(!Q?"config required":!N?"roomId required":"appId missing");let H=aC,I=aC;if(!Z){let _=W(Q);U=LQ(Uh,()=>{try{return eC(!0,Q)}catch{return null}}).filter(Boolean),V=Array.isArray(_)?_:[_];let x=setInterval(()=>{U=U.filter((R)=>{let u=Date.now()-R.created<VQ;if(!u)R.destroy();return u})},VQ);J.offerCleanupTimer||=x,Z=!0}let w={},O={},M=new Map,S=new Map,v=new Map,f={},g=JQ(D5,A,N),c=YQ(g),l=YQ(JQ(g,I8)),h=iu(Q.password||"",A,N),e=(_)=>async(x)=>({type:x.type,sdp:await _(h,x.sdp)}),m=e(au),W0=e(ru),H0=(_)=>{return setTimeout(()=>{if(!_.isDead&&!Object.values(O).includes(_))_.destroy()},VQ),_},k=(_)=>{try{return H0(eC(_,Q))}catch{return null}},i=(_,x)=>{if(O[x]===_)return;_.connectedAt=Date.now(),O[x]?.destroy(),O[x]=_,H(_,x),w[x]?.forEach((R)=>R!==_&&R.destroy()),delete w[x]},B=(_,x)=>{if(O[x]===_)delete O[x]},L=(_)=>async(x,R,u)=>{let[J0,V0]=await YX([c,l]);if(x!==J0&&x!==V0)return;let{peerId:Q0,offer:B0,answer:v0,type:Q1,bye:u1}=typeof R==="string"?DQ(R):R;if(u1){if(Q0&&Q0!==I8)S.delete(Q0),I(Q0,null,!1),v.set(Q0,Date.now()),delete f[Q0];return}if(Q0&&Q0!==I8)I(Q0,Q1,!0),S.set(Q0,Date.now()),v.delete(Q0);if(Q1&&Q0)f[Q0]=Q1;if(Q0===I8)return;if(O[Q0]){let k0=O[Q0].channel?.readyState==="open";if(!B0||k0||Date.now()-O[Q0].connectedAt<2000)return;O[Q0].destroy(),delete O[Q0]}if(Q.admit&&!Q.admit(Q0))return;if(B0){if(w[Q0]?.[_]&&I8>Q0)return;let k0=k(!1);if(!k0)return;k0.setHandlers({connect:()=>i(k0,Q0),close:()=>B(k0,Q0)});try{let h1=await m(B0);if(k0.isDead)return;let[E1,p]=await YX([YQ(JQ(g,Q0)),k0.signal(h1).then(W0)]);u(E1,j7({peerId:I8,answer:p,...Q.type&&{type:Q.type}}))}catch{q?.({error:"decryption failed (offer)",appId:A,peerId:Q0,roomId:N})}}else if(v0){let k0=w[Q0]?.[_];if(!k0||k0.isDead)return;k0.setHandlers({connect:()=>i(k0,Q0),close:()=>B(k0,Q0)});try{k0.signal(await m(v0))}catch{q?.({error:"decryption failed (answer)",appId:A,peerId:Q0,roomId:N})}}else{let k0=w[Q0]||=[];if(k0.forEach((p,X0)=>{if(p&&(p.isDead||Date.now()-(p.dialedAt??p.created)>VQ)){if(p.isDead)M.set(Q0,Date.now()+30000);p.destroy(),delete k0[X0]}}),k0[_]||k0.filter(Boolean).length>=2||M.get(Q0)>Date.now())return;if(Object.values(w).reduce((p,X0)=>p+X0.filter((A0)=>A0&&!A0.isDead).length,0)>=Qh)return;let h1=U.pop(),E1=h1?H0(h1):k(!0);if(!E1){M.set(Q0,Date.now()+30000);return}E1.dialedAt=Date.now(),k0[_]=E1;try{let[p,{offer:X0}]=await YX([YQ(JQ(g,Q0)),E1.offerPromise.then(W0).then((A0)=>({offer:A0}))]);E1.setHandlers({connect:()=>i(E1,Q0),close:()=>B(E1,Q0)}),u(p,j7({peerId:I8,offer:X0,peer:E1,...Q.type&&{type:Q.type}}))}catch{if(k0[_]===E1)delete k0[_];E1.destroy()}}},b=[],s=[],o=[],E=()=>o.forEach(({relay:_,rootTopic:x})=>Y?.(_,x));V.forEach(async(_,x)=>{let R=await _;if(!R)return;let[u,J0]=await YX([c,l]);s[x]=G(R,u,J0,L(x)),o.push({relay:R,rootTopic:u});let V0=async()=>{let Q0=await X(R,u,J0);b[x]=setTimeout(V0,typeof Q0==="number"?Q0:Nh)};V0()}),J[A]||={};let $=Vh((_)=>H=_,(_)=>delete O[_],()=>$.onCleanup?.(),(_)=>f[_],(_)=>I=_);if(typeof window<"u")window.addEventListener("pagehide",E);return $.onCleanup=()=>{if(E(),typeof window<"u")window.removeEventListener("pagehide",E);if(delete J[A][N],b.forEach(clearTimeout),s.forEach((_)=>_?.()),Object.keys(J).length===0)clearInterval(J.offerCleanupTimer),delete J.offerCleanupTimer},$._census=()=>{for(let x of Object.keys(O))S.set(x,Date.now());let _=Date.now()-120000;for(let[x,R]of S)if(R<_)S.delete(x);return[...S.keys()]},$._gone=()=>{let _=Date.now()-60000;for(let[x,R]of v)if(R<_)v.delete(x);return[...v.keys()]},J[A][N]=$}},XT=3333,Hh=30000,xJ={},pT={},Ah=(W,G)=>{let X={},Y=null;X.reopenHandlers=new Set;let J=()=>{if(Y)clearTimeout(Y),Y=null;if(X.socket)X.socket.onclose=null,X.socket.close();let Z=new WebSocket(W);Z.onclose=()=>{xJ[W]??=XT,Y=setTimeout(J,xJ[W]),xJ[W]=Math.min(xJ[W]*2,Hh)},Z.onmessage=(V)=>G(V.data),X.socket=Z,X.url=Z.url,X.ready=new Promise((V)=>{Z.onopen=()=>{xJ[W]=XT,V(X),X.reopenHandlers.forEach((U)=>U())}}),X.send=(V)=>{if(Z.readyState===1)Z.send(V)}};return X.forceReconnect=J,J(),pT[W]=X,X};if(typeof window<"u"){let W=(G)=>{JX.info("\u26A1 [GenosRTC] Network event detected. Forcing reconnection\u2026"),Object.values(pT).forEach((X)=>{if(X.socket&&X.socket.readyState!==WebSocket.OPEN&&(G||X.socket.readyState!==WebSocket.CONNECTING))X.forceReconnect()})};window.addEventListener("online",()=>{JX.info("\u2705 Reconnected to the network."),W(!0)}),window.addEventListener("offline",async()=>{JX.info("\u274C Disconnected from the network.")}),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="visible")W()})}var zh=(W)=>()=>mT(tu(W).map(([G,X])=>[G,X.socket])),UX={},Ih=10,cT="x",lT="EVENT",wh=/pow:\s*(\d+)\s*bits needed\.?/i,HQ=new Set,dT=Tz.utils.randomSecretKey(),jh=Az(Tz.getPublicKey(dT)),Rz={},vJ={},Kh={},oT=()=>Math.floor(Date.now()/1000),nT=(W)=>Kh[W]??=lu(W,1e4)+20000,uJ=(W)=>W.replace(/\/$/,""),Oh="https://relays.genosdb.com/relays.json",iT=(W)=>Array.isArray(W)?[...new Set(W.filter((G)=>G?.startsWith?.("wss://")))]:[],rT="genosrtc_relays",Dh=()=>{try{return iT(JSON.parse(globalThis.localStorage?.getItem(rT)))}catch{return[]}},Ch=()=>fetch(`${Oh}?r=${Math.random().toString(36).slice(2)}`,{signal:AbortSignal.timeout(5000)}).then((W)=>W.json()).then(iT).then((W)=>(W.length&&globalThis.localStorage?.setItem(rT,JSON.stringify(W)),W)).catch(()=>[]).then((W)=>(W=W.length?W:Dh(),W.length||JX.warn("\u26A0\uFE0F [GenosRTC] Relay list unreachable - Pass rtc.relayUrls to override."),W)),Th=(W,G)=>{let[X,Y,J,Z]=DQ(G);if(X===lT)return vJ[Y]?.(Rz[Y],J.content);if(X==="NOTICE"||X==="OK"&&!J){if(+((X==="NOTICE"?Y:Z).match(wh)?.[1]??0)>0){let V=uJ(W);HQ.add(V),UX[V]?.close?.(),delete UX[V]}}},Mh=(W)=>{let G=uJ(W);if(UX[G])return UX[G];let X=Ah(G,(Y)=>Th(G,Y));return UX[G]=X},Yz=async(W,G)=>{let X={kind:nT(W),content:G,pubkey:jh,created_at:oT(),tags:[[cT,W]]},Y=PW(j7([0,X.pubkey,X.created_at,X.kind,X.tags,X.content])),J=new Uint8Array(await crypto.subtle.digest("SHA-256",Y)),Z=Tz.sign(J,dT);return j7([lT,{...X,id:Az(J),sig:Az(Z)}])},YT=(W,G)=>{return Rz[W]=G,j7(["REQ",W,{kinds:[nT(G)],since:oT(),["#"+cT]:[G]}])},JT=(W)=>{return delete Rz[W],j7(["CLOSE",W])},aT=qh({init:(W)=>{let G=W?.relayUrls?.length?W.relayUrls:null,X=G?Promise.resolve(G):Ch(),Y=G?.length??W.relayRedundancy??Ih;return LQ(Y,(J,Z)=>X.then((V)=>{let U=V[Z]&&Mh(V[Z]);return U?U.ready.then(()=>U).catch(()=>null):null}))},subscribe:(W,G,X,Y)=>{let J=CQ(64),Z=CQ(64);vJ[J]=vJ[Z]=(U,Q)=>Y(U,Q,async(N,q)=>{if(HQ.has(uJ(W.url)))return;W.send(await Yz(N,q))});let V=()=>{W.send(YT(J,G)),W.send(YT(Z,X))};return V(),W.reopenHandlers.add(V),()=>{W.reopenHandlers.delete(V),W.send(JT(J)),W.send(JT(Z)),delete vJ[J],delete vJ[Z]}},announce:async(W,G)=>{if(HQ.has(uJ(W.url)))return;W.send(await Yz(G,j7({peerId:I8})))},bye:async(W,G)=>{if(HQ.has(uJ(W.url)))return;W.send(await Yz(G,j7({peerId:I8,bye:1})))}}),ue=zh(UX),Rh={cellSize:10},Ph=5000,Lh=3000,Bh=2000,Eh=2000,$h=1e4,Fh=30000,Sh=5000,xh=30000,TQ=(W)=>{let G=String(W||"").match(/cell-(\d+)/);return G?Number(G[1]):null},Jz=(W,G)=>{let X=TQ(W);if(X==null)return[];let Y=[];for(let J=1;J<G;J*=2){if(X-J>=0)Y.push(`cell-${X-J}`);if(X+J<G)Y.push(`cell-${X+J}`)}return Y},UQ=(W)=>`c${(TQ(W)||0).toString(36)}`,kh=10,_h=(W,G)=>{let X=+G.cellSize>=2?G.cellSize|0:kh;return Math.max(1,Math.ceil(W/X))},sT=(W)=>{let G=0;for(let X=0;X<W.length;X++)G=Math.imul(G^W.charCodeAt(X),2654435761);return G>>>0},H6=(W,G)=>{let X=0,Y=-1;for(let J=0;J<G;J++){let Z=sT(`${W}:${J}`);if(Z>Y)Y=Z,X=J}return X};function yh(W,G={},X={}){let Y={...Rh,...G},J=1,Z={epoch:0,roster:[I8],set:new Set([I8]),key:I8,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,M=new Map,S=new Set,v=new Map,f=new Set,g=0,c=new Set,l=new Map,h=()=>Math.min(150,Math.ceil(Math.log2(Z.C+1))*2+3),e=(p)=>Jz(p,Z.C),m=W.on?.bind(W),W0=W.off?.bind(W);if(m)W.on=(p,X0)=>String(p).startsWith("mesh:")?i(p,X0):m(p,X0);if(W0)W.off=(p,X0)=>String(p).startsWith("mesh:")?v.get(p)?.delete(X0):W0(p,X0);let H0=(p)=>(S.add(p),()=>S.delete(p)),k=(p,X0)=>{for(let A0 of S)try{A0(p,X0)}catch(F0){JX.error("\uD83D\uDD78\uFE0F [Cells] Error in deliver handler:",F0)}},i=(p,X0)=>{if(!v.has(p))v.set(p,new Set);return v.get(p).add(X0),()=>v.get(p)?.delete(X0)},B=(p,...X0)=>{let A0=v.get(p);if(A0)for(let F0 of A0)try{F0(...X0)}catch{}},L=(p)=>{try{return typeof p==="string"?JSON.parse(p):p}catch{return null}},b=()=>`${I8}:${Date.now().toString(36)}:${(g++&65535).toString(36)}`,s=()=>{if(f.size>Ph)f.delete(f.values().next().value)},o=()=>[...new Set([...W._census(),I8])].sort(),E=(p,X0,A0)=>X0.filter((F0)=>H6(F0,A0)===p),$=(p,X0,A0)=>{if(p==null)return null;let F0=(N0)=>sT(`${N0}@${p}`),j1=null,l0=-1;for(let N0 of E(p,X0,A0)){let E0=F0(N0);if(E0>l0)l0=E0,j1=N0}return j1},_=(p)=>{let X0=Z.audience?.get(p);if(!X0)return[];return Object.keys(W.getPeers?.()||{}).filter((A0)=>X0.has(A0))},x=(p,X0)=>{if(p!==w&&!(Z.isBridge&&Z.bridges.some((f0)=>UQ(f0)===p)))return;let A0=L(X0);if(!A0?.id||!A0?.t)return;if(f.has(A0.id))return;f.add(A0.id),s();let{t:F0,id:j1,ttl:l0,data:N0,origin:E0,originCell:R1}=A0,F1=Z.cellId;if(F0==="ping"&&N0?.pingId&&N0.target===I8&&E0!==I8){let f0={t:"pong",id:b(),ttl:h(),data:{pingId:N0.pingId,receivedAt:Date.now()},origin:I8,originCell:F1},g0=W.getPeers?.()?.[E0]?[E0]:_(F1);I?.send(JSON.stringify(f0),g0)}if(F0==="pong"&&N0?.pingId){let f0=l.get(N0.pingId);if(f0)clearTimeout(f0.timeout),f0.resolve(Date.now()-f0.start),l.delete(N0.pingId)}if(F0==="msg"&&E0!==I8)k(N0,E0);if(!Z.isBridge)return;if((l0??0)<=0)return;let v1=(f0,g0,N1=null)=>{if(!f0||!g0.length)return;let Y8={t:F0,id:j1,ttl:N1??(l0??h())-1,data:N0,origin:E0||I8,originCell:R1||F1};f0.send(JSON.stringify(Y8),g0)};if(p===w){for(let f0 of e(F1))v1(R(f0),_(f0));return}v1(I,_(F1));for(let f0 of e(F1))if(UQ(f0)!==p)v1(R(f0),_(f0))},R=(p)=>{let X0=UQ(p),A0=W.channel(X0);if(!c.has(X0))c.add(X0),A0.on("message",(F0)=>x(X0,F0));return A0},u=()=>{if(!Z.cellId)return;if(w=UQ(Z.cellId),I=W.channel(w),!c.has(w))c.add(w),I.on("message",(p)=>x(w,p));if(Z.isBridge)for(let p of e(Z.cellId))R(p)},J0=(p,X0)=>{if(!p.cellId||!p.set.has(X0))return!1;let A0=`cell-${H6(X0,p.C)}`;return A0===p.cellId||p.bridges.includes(A0)||Jz(A0,p.C).includes(p.cellId)&&$(H6(X0,p.C),p.roster,p.C)===X0},V0=(p)=>Z.set.size<2&&(V.set?.size??0)<2||J0(Z,p)||Date.now()<U&&J0(V,p),Q0=()=>{let p=W.getPeers?.()||{};for(let X0 of Object.keys(p))if(!V0(X0))p[X0].close?.()};X.admit=V0;let B0=()=>({epoch:Z.epoch,cellId:Z.cellId,isBridge:Z.isBridge,bridges:Z.bridges,roster:[...Z.roster],cellSize:J,dynamicTTL:h(),totalCells:Z.C}),v0=()=>{A=Date.now();for(let[p,X0]of M){if(p===I8)continue;B("mesh:peer-state",{id:p,cell:X0.cell,bridges:X0.bridges,timestamp:A})}},Q1=(p)=>{let X0=_h(p.length,Y);J=Math.ceil(p.length/X0);let A0=`cell-${H6(I8,X0)}`,F0=new Map,j1=new Set,l0=new Map,N0=(f0)=>l0.get(f0)??l0.set(f0,new Set).get(f0);for(let f0 of p)N0(`cell-${H6(f0,X0)}`).add(f0);let E0=new Map,R1=(f0)=>E0.has(f0)?E0.get(f0):E0.set(f0,$(f0,p,X0)).get(f0);for(let f0 of new Set(p.map((g0)=>H6(g0,X0)))){let g0=`cell-${f0}`;for(let N1 of Jz(g0,X0)){if(TQ(N1)<f0)continue;for(let Y8 of[R1(f0),R1(TQ(N1))]){if(!Y8)continue;let q9=`cell-${H6(Y8,X0)}`===g0?N1:g0,d=F0.get(Y8)??[];if(!d.includes(q9))d.push(q9);if(F0.set(Y8,d),N0(g0).add(Y8),N0(N1).add(Y8),g0===A0||N1===A0)j1.add(Y8)}}}let F1=F0.get(I8)??[],v1=Z.cellId!==A0||String(Z.bridges)!==String(F1);V=Z,Z={epoch:Z.epoch+1,roster:p,set:new Set(p),key:p.join("|"),C:X0,cellId:A0,isBridge:F1.length>0,bridges:F1,edgeBridges:[...j1],audience:l0},H=Date.now(),M.clear();for(let f0 of p){let g0=F0.get(f0)??[];M.set(f0,{cell:`cell-${H6(f0,X0)}`,isBridge:g0.length>0,bridges:g0})}if(U=Date.now()+Sh,v1)u();JX.info("\uD83D\uDD78\uFE0F [Cells] seal",{epoch:Z.epoch,myCell:A0,bridges:F1,C:X0,roster:p.length}),v0(),B("mesh:state",B0())},u1=()=>{let p=o(),X0=p.join("|");if(X0===Z.key)Q=0;else{let A0=Date.now();if(Q||=A0,X0!==N)N=X0,q=A0;if(p.some((F0)=>!Z.set.has(F0))||Z.edgeBridges.some((F0)=>!p.includes(F0))||(W._gone?.()??[]).some((F0)=>Z.set.has(F0))?A0-q>=Eh||A0-Q>=$h:A0-Q>=Fh)Q=0,Q1(p)}if(U&&Date.now()>=U)U=0,Q0()},k0=()=>{if(O)return;O=setInterval(()=>{if(u1(),Date.now()-A>=xh)v0()},Bh)},h1=()=>{if(O)clearInterval(O),O=null},E1=(p)=>{return new Promise((X0,A0)=>{let F0=`${Date.now()}-${Math.random().toString(36).slice(2,8)}`,j1=Date.now(),l0=setTimeout(()=>{l.delete(F0),A0(Error("Ping timeout"))},Lh);l.set(F0,{start:j1,resolve:X0,reject:A0,timeout:l0,peerId:p});let N0={t:"ping",id:b(),ttl:h(),data:{pingId:F0,target:p},origin:I8,originCell:Z.cellId};I?.send(JSON.stringify(N0),_(Z.cellId))})};return W.on?.("peer:join",()=>u1()),W.on?.("peer:leave",()=>u1()),Q1(o()),k0(),{send:(p)=>{let X0={t:"msg",id:b(),ttl:h(),data:p,origin:I8,originCell:Z.cellId},A0=JSON.stringify(X0);I.send(A0,_(Z.cellId)),x(w,A0)},on:(p,X0)=>p==="message"?H0(X0):void 0,ping:E1,getState:()=>({...B0(),knownCells:new Set([...M.values()].map((p)=>p.cell)).size}),getPeerInfo:()=>new Map(M),getStableRoster:()=>[...Z.roster],getKnownCells:()=>{let p=new Map;for(let[X0,{cell:A0}]of M)if(!p.has(A0))p.set(A0,{lastSeen:H,peerId:X0});return p},getCellSize:()=>J,destroy:()=>{h1(),l.forEach((p)=>clearTimeout(p.timeout)),l.clear()}}}function vh(W,G,X){let Y={},J=aT({...W,admit:(Q)=>Y.admit?.(Q)??!0},G,X),Z=W.overlay||{},V=yh(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(I8))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 Pz=(W,G,X)=>W?.cells||W?.overlay?vh(W,G,X):aT(W,G,X);import{randomBytes as jS}from"crypto";function gh(){var W,G=!1,X=this;X._DeArray=function(Y,J,Z){return[Y.slice(J,J+Z)]},X._EnArray=function(Y,J,Z,V){for(var U=0;U<Z;Y[J+U]=V[U]?V[U]:0,U++);},X._DeChar=function(Y,J){return String.fromCharCode(Y[J])},X._EnChar=function(Y,J,Z){Y[J]=Z.charCodeAt(0)},X._DeInt=function(Y,J){var Z=G?W.len-1:0,V=G?-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},X._EnInt=function(Y,J,Z){var V=G?W.len-1:0,U=G?-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);},X._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("")},X._EnString=function(Y,J,Z,V){for(var U,Q=0;Q<Z;Y[J+Q]=(U=V.charCodeAt(Q))?U:0,Q++);},X._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=G?0:W.len-1,N=G?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)},X._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=G?W.len-1:0,q=G?-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},X._DeInt64=function(Y,J){var Z=G?0:7,V=G?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},X._EnInt64=function(Y,J,Z){var V=G?0:7,U=G?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));},X._sPattern="(\\d + )?([AxcbBhHsfdiIlLqQ])",X._lenLut={A:1,x:1,c:1,b:1,B:1,h:2,H:2,s:1,f:4,d:8,i:4,I:4,l:4,L:4,q:8,Q:8},X._elLut={A:{en:X._EnArray,de:X._DeArray},s:{en:X._EnString,de:X._DeString},c:{en:X._EnChar,de:X._DeChar},b:{en:X._EnInt,de:X._DeInt,len:1,bSigned:!0,min:-Math.pow(2,7),max:Math.pow(2,7)-1},B:{en:X._EnInt,de:X._DeInt,len:1,bSigned:!1,min:0,max:Math.pow(2,8)-1},h:{en:X._EnInt,de:X._DeInt,len:2,bSigned:!0,min:-Math.pow(2,15),max:Math.pow(2,15)-1},H:{en:X._EnInt,de:X._DeInt,len:2,bSigned:!1,min:0,max:Math.pow(2,16)-1},i:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!0,min:-Math.pow(2,31),max:Math.pow(2,31)-1},I:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!1,min:0,max:Math.pow(2,32)-1},l:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!0,min:-Math.pow(2,31),max:Math.pow(2,31)-1},L:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!1,min:0,max:Math.pow(2,32)-1},f:{en:X._En754,de:X._De754,len:4,mLen:23,rt:Math.pow(2,-24)-Math.pow(2,-77)},d:{en:X._En754,de:X._De754,len:8,mLen:52,rt:0},q:{en:X._EnInt64,de:X._DeInt64,bSigned:!0},Q:{en:X._EnInt64,de:X._DeInt64,bSigned:!1}},X._UnpackSeries=function(Y,J,Z,V){for(var U=W.de,Q=[],N=0;N<Y;Q.push(U(Z,V+N*J)),N++);return Q},X._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++);},X.Unpack=function(Y,J,Z){G=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)},X.PackTo=function(Y,J,Z,V){G=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},X.Pack=function(Y,J){return this.PackTo(Y,Array(this.CalcLength(Y)),0,J)},X.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 e1=new gh;var ES=g1(UM(),1),HH=g1(uz(),1);import{createSocket as gd}from"dgram";import{createSocket as bd}from"dgram";import*as $S from"net";import{connect as md}from"net";import{createSign as pd,randomBytes as cd,webcrypto as ld}from"crypto";var MN0=g1(vM(),1);var P7={};AA(P7,{verifySchema:()=>im,fromBER:()=>Q4,compareSchema:()=>J4,VisibleString:()=>FW,ViewWriter:()=>dJ,VideotexString:()=>PX,ValueBlock:()=>W9,Utf8String:()=>h5,UniversalString:()=>CX,UTCTime:()=>SW,TimeOfDay:()=>tQ,TeletexString:()=>RX,TIME:()=>GN,Set:()=>p9,Sequence:()=>y9,Repeated:()=>wX,RelativeObjectIdentifier:()=>aQ,RawData:()=>BR,PrintableString:()=>MX,Primitive:()=>K6,OctetString:()=>M7,ObjectIdentifier:()=>OX,NumericString:()=>TX,Null:()=>T7,Integer:()=>O6,IA5String:()=>LX,HexBlock:()=>C7,GraphicString:()=>BX,GeneralizedTime:()=>FX,GeneralString:()=>EX,Enumerated:()=>KX,EndOfContent:()=>iQ,Duration:()=>WN,DateTime:()=>eQ,DEFAULT_MAX_NODES:()=>iM,DEFAULT_MAX_DEPTH:()=>nM,DEFAULT_MAX_CONTENT_LENGTH:()=>rM,DATE:()=>sQ,Constructed:()=>c8,Choice:()=>nJ,CharacterString:()=>$X,Boolean:()=>jX,BmpString:()=>DX,BitString:()=>R7,BaseStringBlock:()=>oQ,BaseBlock:()=>_8,Any:()=>V4});/*!
147
+ `),Uq.prototype[W]=G.toFunction({assertSize:Pj})});UE.exports=Uq;function Pj(W,G){if(W>G)throw new dc(W,G)}});var O8=Z1((Gq0,jE)=>{var Lj=wV(),oc=mB(),nc=lB(),ic=oB(),rc=iB(),ac=sB(),NE=eB(),sc=GE(),tc=JE(),{encode:AE}=KV(),{decode:zE}=wY(),{encodingLength:ec}=OV(),Wl=QE(),IE=zY(),wE={array:oc,bool:ic,buffer:nc,reserved:rc,string:ac,when:sc,select:tc};for(let W of Object.keys(NE))wE[W]=NE[W];var Qq=Symbol("schema");function qE(W){let G=new Lj({readableObjectMode:!1,writableObjectMode:!0,transform:Gl});return G[Qq]=W,G}function HE(W){let G=null,X=Buffer.isBuffer(W);if(!X)G=W;let Y=new Lj({transform:Xl,readableObjectMode:!0,writableObjectMode:!1});if(Y[Qq]=G,X)Y.append(W);return Y}function Gl(W,G,X){try{AE(W,this[Qq],this);let Y=this.slice();this.consume(Y.length),X(null,Y)}catch(Y){X(Y)}}function Xl(W,G,X){this.append(W);try{while(this.length>0){let Y=new Wl(this),J=zE(Y,this[Qq]);Y.commit(),this.push(J)}X()}catch(Y){if(Y instanceof IE)X();else X(Y)}}jE.exports={createEncodeStream:qE,createDecodeStream:HE,encode:AE,decode:zE,encodingLength:ec,createEncode:qE,createDecode:HE,types:wE,BinaryStream:Lj,NotEnoughDataError:IE}});var w$=Z1((z$)=>{Object.defineProperty(z$,"__esModule",{value:!0});z$.LEB128=z$.SignedLEB128=z$.UnsignedLEB128=void 0;var MY;(function(W){W[W.LOWER_7=127]="LOWER_7",W[W.UPPER_1=128]="UPPER_1"})(MY||(MY={}));var A$=(W)=>Number.isSafeInteger(W);class RY{static decode(W,G=0){let X=this.$scanForNullBytes(W,G),Y=0,J=0;for(let Z=0;Z<=X-G;Z++){let V=W[G+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 G=[],X=W;do{let Y=X&MY.LOWER_7;if(X>>=7,X)Y=Y|MY.UPPER_1;G.push(Y)}while(X);return Uint8Array.from(G)}static check(W){if(!A$(W))throw Error(`${W} is not a safe integer!`)}static $scanForNullBytes(W,G=0){let X=G,Y=0;do{if(X>=W.byteLength)throw Error("This is not a LEB128-encoded Uint8Array, no ending found!");Y=W.slice(X,X+1)[0],X++}while(Y&MY.UPPER_1);return X-1}static getLength(W,G=0){return this.$scanForNullBytes(W,G)-G}}z$.UnsignedLEB128=RY;class Mq{static $ceil7mul(W){let G=W;while(G%7)G++;return G}static check(W){if(!A$(W))throw Error(`${W} is not a safe integer!`)}static encode(W){if(this.check(W),W>=0)throw Error(`A signed number must be negative, ${W} isn't!`);let G=Math.ceil(Math.log2(-W));return RY.encode((1<<this.$ceil7mul(G))+W)}static decode(W,G=0){let X=RY.decode(W,G);return-((1<<Math.ceil(Math.log2(X)))-X)}}z$.SignedLEB128=Mq;class Rq{}z$.LEB128=Rq;Rq.encode=(W)=>(W>=0?RY:Mq).encode(W);Rq.decode=(W,G=0,X=!1)=>(X?Mq:RY).decode(W,G)});var K$=Z1((oj,j$)=>{/*! MIT License. Copyright 2015-2018 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */(function(W){function G(E){return parseInt(E)===E}function X(E){if(!G(E.length))return!1;for(var $=0;$<E.length;$++)if(!G(E[$])||E[$]<0||E[$]>255)return!1;return!0}function Y(E,$){if(E.buffer&&E.name==="Uint8Array"){if($)if(E.slice)E=E.slice();else E=Array.prototype.slice.call(E);return E}if(Array.isArray(E)){if(!X(E))throw Error("Array contains invalid value: "+E);return new Uint8Array(E)}if(G(E.length)&&X(E))return new Uint8Array(E);throw Error("unsupported array-like object")}function J(E){return new Uint8Array(E)}function Z(E,$,_,x,R){if(x!=null||R!=null)if(E.slice)E=E.slice(x,R);else E=Array.prototype.slice.call(E,x,R);$.set(E,_)}var V=function(){function E(_){var x=[],R=0;_=encodeURI(_);while(R<_.length){var u=_.charCodeAt(R++);if(u===37)x.push(parseInt(_.substr(R,2),16)),R+=2;else x.push(u)}return Y(x)}function $(_){var x=[],R=0;while(R<_.length){var u=_[R];if(u<128)x.push(String.fromCharCode(u)),R++;else if(u>191&&u<224)x.push(String.fromCharCode((u&31)<<6|_[R+1]&63)),R+=2;else x.push(String.fromCharCode((u&15)<<12|(_[R+1]&63)<<6|_[R+2]&63)),R+=3}return x.join("")}return{toBytes:E,fromBytes:$}}(),U=function(){function E(x){var R=[];for(var u=0;u<x.length;u+=2)R.push(parseInt(x.substr(u,2),16));return R}var $="0123456789abcdef";function _(x){var R=[];for(var u=0;u<x.length;u++){var J0=x[u];R.push($[(J0&240)>>4]+$[J0&15])}return R.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],M=[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],S=[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],v=[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],p=[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],g=[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],c=[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],h=[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 e(E){var $=[];for(var _=0;_<E.length;_+=4)$.push(E[_]<<24|E[_+1]<<16|E[_+2]<<8|E[_+3]);return $}var m=function(E){if(!(this instanceof m))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:Y(E,!0)}),this._prepare()};m.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 $=0;$<=E;$++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var _=(E+1)*4,x=this.key.length/4,R=e(this.key),u;for(var $=0;$<x;$++)u=$>>2,this._Ke[u][$%4]=R[$],this._Kd[E-u][$%4]=R[$];var J0=0,V0=x,Q0;while(V0<_){if(Q0=R[x-1],R[0]^=q[Q0>>16&255]<<24^q[Q0>>8&255]<<16^q[Q0&255]<<8^q[Q0>>24&255]^N[J0]<<24,J0+=1,x!=8)for(var $=1;$<x;$++)R[$]^=R[$-1];else{for(var $=1;$<x/2;$++)R[$]^=R[$-1];Q0=R[x/2-1],R[x/2]^=q[Q0&255]^q[Q0>>8&255]<<8^q[Q0>>16&255]<<16^q[Q0>>24&255]<<24;for(var $=x/2+1;$<x;$++)R[$]^=R[$-1]}var $=0,B0,v0;while($<x&&V0<_)B0=V0>>2,v0=V0%4,this._Ke[B0][v0]=R[$],this._Kd[E-B0][v0]=R[$++],V0++}for(var B0=1;B0<E;B0++)for(var v0=0;v0<4;v0++)Q0=this._Kd[B0][v0],this._Kd[B0][v0]=g[Q0>>24&255]^c[Q0>>16&255]^l[Q0>>8&255]^h[Q0&255]},m.prototype.encrypt=function(E){if(E.length!=16)throw Error("invalid plaintext size (must be 16 bytes)");var $=this._Ke.length-1,_=[0,0,0,0],x=e(E);for(var R=0;R<4;R++)x[R]^=this._Ke[0][R];for(var u=1;u<$;u++){for(var R=0;R<4;R++)_[R]=H[x[R]>>24&255]^I[x[(R+1)%4]>>16&255]^w[x[(R+2)%4]>>8&255]^O[x[(R+3)%4]&255]^this._Ke[u][R];x=_.slice()}var J0=J(16),V0;for(var R=0;R<4;R++)V0=this._Ke[$][R],J0[4*R]=(q[x[R]>>24&255]^V0>>24)&255,J0[4*R+1]=(q[x[(R+1)%4]>>16&255]^V0>>16)&255,J0[4*R+2]=(q[x[(R+2)%4]>>8&255]^V0>>8)&255,J0[4*R+3]=(q[x[(R+3)%4]&255]^V0)&255;return J0},m.prototype.decrypt=function(E){if(E.length!=16)throw Error("invalid ciphertext size (must be 16 bytes)");var $=this._Kd.length-1,_=[0,0,0,0],x=e(E);for(var R=0;R<4;R++)x[R]^=this._Kd[0][R];for(var u=1;u<$;u++){for(var R=0;R<4;R++)_[R]=M[x[R]>>24&255]^S[x[(R+3)%4]>>16&255]^v[x[(R+2)%4]>>8&255]^p[x[(R+1)%4]&255]^this._Kd[u][R];x=_.slice()}var J0=J(16),V0;for(var R=0;R<4;R++)V0=this._Kd[$][R],J0[4*R]=(A[x[R]>>24&255]^V0>>24)&255,J0[4*R+1]=(A[x[(R+3)%4]>>16&255]^V0>>16)&255,J0[4*R+2]=(A[x[(R+2)%4]>>8&255]^V0>>8)&255,J0[4*R+3]=(A[x[(R+1)%4]&255]^V0)&255;return J0};var G0=function(E){if(!(this instanceof G0))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new m(E)};G0.prototype.encrypt=function(E){if(E=Y(E),E.length%16!==0)throw Error("invalid plaintext size (must be multiple of 16 bytes)");var $=J(E.length),_=J(16);for(var x=0;x<E.length;x+=16)Z(E,_,0,x,x+16),_=this._aes.encrypt(_),Z(_,$,x);return $},G0.prototype.decrypt=function(E){if(E=Y(E),E.length%16!==0)throw Error("invalid ciphertext size (must be multiple of 16 bytes)");var $=J(E.length),_=J(16);for(var x=0;x<E.length;x+=16)Z(E,_,0,x,x+16),_=this._aes.decrypt(_),Z(_,$,x);return $};var H0=function(E,$){if(!(this instanceof H0))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",!$)$=J(16);else if($.length!=16)throw Error("invalid initialation vector size (must be 16 bytes)");this._lastCipherblock=Y($,!0),this._aes=new m(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 $=J(E.length),_=J(16);for(var x=0;x<E.length;x+=16){Z(E,_,0,x,x+16);for(var R=0;R<16;R++)_[R]^=this._lastCipherblock[R];this._lastCipherblock=this._aes.encrypt(_),Z(this._lastCipherblock,$,x)}return $},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 $=J(E.length),_=J(16);for(var x=0;x<E.length;x+=16){Z(E,_,0,x,x+16),_=this._aes.decrypt(_);for(var R=0;R<16;R++)$[x+R]=_[R]^this._lastCipherblock[R];Z(E,this._lastCipherblock,0,x,x+16)}return $};var k=function(E,$,_){if(!(this instanceof k))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",!$)$=J(16);else if($.length!=16)throw Error("invalid initialation vector size (must be 16 size)");if(!_)_=1;this.segmentSize=_,this._shiftRegister=Y($,!0),this._aes=new m(E)};k.prototype.encrypt=function(E){if(E.length%this.segmentSize!=0)throw Error("invalid plaintext size (must be segmentSize bytes)");var $=Y(E,!0),_;for(var x=0;x<$.length;x+=this.segmentSize){_=this._aes.encrypt(this._shiftRegister);for(var R=0;R<this.segmentSize;R++)$[x+R]^=_[R];Z(this._shiftRegister,this._shiftRegister,0,this.segmentSize),Z($,this._shiftRegister,16-this.segmentSize,x,x+this.segmentSize)}return $},k.prototype.decrypt=function(E){if(E.length%this.segmentSize!=0)throw Error("invalid ciphertext size (must be segmentSize bytes)");var $=Y(E,!0),_;for(var x=0;x<$.length;x+=this.segmentSize){_=this._aes.encrypt(this._shiftRegister);for(var R=0;R<this.segmentSize;R++)$[x+R]^=_[R];Z(this._shiftRegister,this._shiftRegister,0,this.segmentSize),Z(E,this._shiftRegister,16-this.segmentSize,x,x+this.segmentSize)}return $};var i=function(E,$){if(!(this instanceof i))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",!$)$=J(16);else if($.length!=16)throw Error("invalid initialation vector size (must be 16 bytes)");this._lastPrecipher=Y($,!0),this._lastPrecipherIndex=16,this._aes=new m(E)};i.prototype.encrypt=function(E){var $=Y(E,!0);for(var _=0;_<$.length;_++){if(this._lastPrecipherIndex===16)this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0;$[_]^=this._lastPrecipher[this._lastPrecipherIndex++]}return $},i.prototype.decrypt=i.prototype.encrypt;var L=function(E){if(!(this instanceof L))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)};L.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 $=15;$>=0;--$)this._counter[$]=E%256,E=parseInt(E/256)},L.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},L.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 B=function(E,$){if(!(this instanceof B))throw Error("AES must be instanitated with `new`");if(this.description="Counter",this.name="ctr",!($ instanceof L))$=new L($);this._counter=$,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new m(E)};B.prototype.encrypt=function(E){var $=Y(E,!0);for(var _=0;_<$.length;_++){if(this._remainingCounterIndex===16)this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment();$[_]^=this._remainingCounter[this._remainingCounterIndex++]}return $},B.prototype.decrypt=B.prototype.encrypt;function b(E){E=Y(E,!0);var $=16-E.length%16,_=J(E.length+$);Z(E,_);for(var x=E.length;x<_.length;x++)_[x]=$;return _}function s(E){if(E=Y(E,!0),E.length<16)throw Error("PKCS#7 invalid length");var $=E[E.length-1];if($>16)throw Error("PKCS#7 padding byte out of range");var _=E.length-$;for(var x=0;x<$;x++)if(E[_+x]!==$)throw Error("PKCS#7 invalid padding byte");var R=J(_);return Z(E,R,0,0,_),R}var o={AES:m,Counter:L,ModeOfOperation:{ecb:G0,cbc:H0,cfb:k,ofb:i,ctr:B},utils:{hex:U,utf8:V},padding:{pkcs7:{pad:b,strip:s}},_arrayTest:{coerceArray:Y,createArray:J,copyArray:Z}};if(typeof oj<"u")j$.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=Z1((R$)=>{var G1=R$,{Buffer:Eq}=k8("buffer"),fl=k8("os");G1.toBuffer=function(W,G,X){X=~~X;let Y;if(this.isV4Format(W))Y=G||Eq.alloc(X+4),W.split(/\./g).map((J)=>{Y[X++]=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=G||Eq.alloc(X+16);for(Z=0;Z<J.length;Z++){let V=parseInt(J[Z],16);Y[X++]=V>>8&255,Y[X++]=V&255}}if(!Y)throw Error(`Invalid ip address: ${W}`);return Y};G1.toString=function(W,G,X){G=~~G,X=X||W.length-G;let Y=[];if(X===4){for(let J=0;J<X;J++)Y.push(W[G+J]);Y=Y.join(".")}else if(X===16){for(let J=0;J<X;J+=2)Y.push(W.readUInt16BE(G+J).toString(16));Y=Y.join(":"),Y=Y.replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3"),Y=Y.replace(/:{3,4}/,"::")}return Y};var pl=/^(\d{1,3}\.){3,3}\d{1,3}$/,cl=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i;G1.isV4Format=function(W){return pl.test(W)};G1.isV6Format=function(W){return cl.test(W)};function FV(W){if(W===4)return"ipv4";if(W===6)return"ipv6";return W?W.toLowerCase():"ipv4"}G1.fromPrefixLen=function(W,G){if(W>32)G="ipv6";else G=FV(G);let X=4;if(G==="ipv6")X=16;let Y=Eq.alloc(X);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,G){W=G1.toBuffer(W),G=G1.toBuffer(G);let X=Eq.alloc(Math.max(W.length,G.length)),Y;if(W.length===G.length)for(Y=0;Y<W.length;Y++)X[Y]=W[Y]&G[Y];else if(G.length===4)for(Y=0;Y<G.length;Y++)X[Y]=W[W.length-4+Y]&G[Y];else{for(Y=0;Y<X.length-6;Y++)X[Y]=0;X[10]=255,X[11]=255;for(Y=0;Y<W.length;Y++)X[Y+12]=W[Y]&G[Y+12];Y+=12}for(;Y<X.length;Y++)X[Y]=0;return G1.toString(X)};G1.cidr=function(W){let G=W.split("/"),X=G[0];if(G.length!==2)throw Error(`invalid CIDR subnet: ${X}`);let Y=G1.fromPrefixLen(parseInt(G[1],10));return G1.mask(X,Y)};G1.subnet=function(W,G){let X=G1.toLong(G1.mask(W,G)),Y=G1.toBuffer(G),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(X),firstAddress:Z<=2?G1.fromLong(X):G1.fromLong(X+1),lastAddress:Z<=2?G1.fromLong(X+Z-1):G1.fromLong(X+Z-2),broadcastAddress:G1.fromLong(X+Z-1),subnetMask:G,subnetMaskLength:J,numHosts:Z<=2?Z:Z-2,length:Z,contains(V){return X===G1.toLong(G1.mask(V,G))}}};G1.cidrSubnet=function(W){let G=W.split("/"),X=G[0];if(G.length!==2)throw Error(`invalid CIDR subnet: ${X}`);let Y=G1.fromPrefixLen(parseInt(G[1],10));return G1.subnet(X,Y)};G1.not=function(W){let G=G1.toBuffer(W);for(let X=0;X<G.length;X++)G[X]=255^G[X];return G1.toString(G)};G1.or=function(W,G){if(W=G1.toBuffer(W),G=G1.toBuffer(G),W.length===G.length){for(let Z=0;Z<W.length;++Z)W[Z]|=G[Z];return G1.toString(W)}let X=W,Y=G;if(G.length>W.length)X=G,Y=W;let J=X.length-Y.length;for(let Z=J;Z<X.length;++Z)X[Z]|=Y[Z-J];return G1.toString(X)};G1.isEqual=function(W,G){if(W=G1.toBuffer(W),G=G1.toBuffer(G),W.length===G.length){for(let Y=0;Y<W.length;Y++)if(W[Y]!==G[Y])return!1;return!0}if(G.length===4){let Y=G;G=W,W=Y}for(let Y=0;Y<10;Y++)if(G[Y]!==0)return!1;let X=G.readUInt16BE(10);if(X!==0&&X!==65535)return!1;for(let Y=0;Y<4;Y++)if(W[Y]!==G[Y+12])return!1;return!0};G1.isPrivate=function(W){if(G1.isLoopback(W))return!0;if(!G1.isV6Format(W)){let G=G1.normalizeToLong(W);if(G<0)throw Error("invalid ipv4 address");W=G1.fromLong(G)}return/^(::f{4}:)?10\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^(::f{4}:)?192\.168\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^(::f{4}:)?172\.(1[6-9]|2\d|30|31)\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^(::f{4}:)?169\.254\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^f[cd][0-9a-f]{2}:/i.test(W)||/^fe80:/i.test(W)||/^::1$/.test(W)||/^::$/.test(W)};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,G){let X=fl.networkInterfaces();if(G=FV(G),W&&W!=="private"&&W!=="public"){let J=X[W].filter((Z)=>{return FV(Z.family)===G});if(J.length===0)return;return J[0].address}let Y=Object.keys(X).map((J)=>{let Z=X[J].filter((V)=>{if(V.family=FV(V.family),V.family!==G||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(G):Y[0]};G1.toLong=function(W){let G=0;return W.split(".").forEach((X)=>{G<<=8,G+=parseInt(X)}),G>>>0};G1.fromLong=function(W){return`${W>>>24}.${W>>16&255}.${W>>8&255}.${W&255}`};G1.normalizeToLong=function(W){let G=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(G.some(isNaN))return-1;let X=0;switch(G.length){case 1:X=G[0];break;case 2:if(G[0]>255||G[1]>16777215)return-1;X=G[0]<<24|G[1]&16777215;break;case 3:if(G[0]>255||G[1]>255||G[2]>65535)return-1;X=G[0]<<24|G[1]<<16|G[2]&65535;break;case 4:if(G.some((J)=>J>255))return-1;X=G[0]<<24|G[1]<<16|G[2]<<8|G[3];break;default:return-1}return X>>>0}});var L$=Z1((pq0,P$)=>{P$.exports=function W(G,X){if(G===X)return!0;if(G&&X&&typeof G=="object"&&typeof X=="object"){if(G.constructor!==X.constructor)return!1;var Y,J,Z;if(Array.isArray(G)){if(Y=G.length,Y!=X.length)return!1;for(J=Y;J--!==0;)if(!W(G[J],X[J]))return!1;return!0}if(G.constructor===RegExp)return G.source===X.source&&G.flags===X.flags;if(G.valueOf!==Object.prototype.valueOf)return G.valueOf()===X.valueOf();if(G.toString!==Object.prototype.toString)return G.toString()===X.toString();if(Z=Object.keys(G),Y=Z.length,Y!==Object.keys(X).length)return!1;for(J=Y;J--!==0;)if(!Object.prototype.hasOwnProperty.call(X,Z[J]))return!1;for(J=Y;J--!==0;){var V=Z[J];if(!W(G[V],X[V]))return!1}return!0}return G!==G&&X!==X}});var B$=Z1((ll)=>{ll.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};ll.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 E$=Z1((nl)=>{nl.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};nl.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 $$=Z1((al)=>{al.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};al.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 F$=Z1((el)=>{el.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};el.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 S$=Z1((Xd)=>{Xd.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}`};Xd.toCode=function(W){if(typeof W==="number")return W;if(!W)return-1;switch(W.toUpperCase()){case"OPTION_0":return 0;case"LLQ":return 1;case"UL":return 2;case"NSID":return 3;case"OPTION_4":return 4;case"DAU":return 5;case"DHU":return 6;case"N3U":return 7;case"CLIENT_SUBNET":return 8;case"EXPIRE":return 9;case"COOKIE":return 10;case"TCP_KEEPALIVE":return 11;case"PADDING":return 12;case"CHAIN":return 13;case"KEY_TAG":return 14;case"DEVICEID":return 26946;case"OPTION_65535":return 65535}let G=W.match(/_(\d+)$/);if(G)return parseInt(G[1],10);return-1}});var _$=Z1((k$,sj)=>{var x$=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 G=/^(\d{1,3}\.){3,3}\d{1,3}$/,X=4,Y=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i,J=16,Z={name:"v4",size:X,isFormat:(H)=>G.test(H),encode(H,I,w){w=~~w,I=I||new Uint8Array(w+X);let O=H.length,M=0;for(let S=0;S<O;){let v=H.charCodeAt(S++);if(v===46)I[w++]=M,M=0;else M=M*10+(v-48)}return I[w]=M,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,M=-1,S=0,v=0,p=!0,g=!1;I=I||new Uint8Array(w+J);for(let c=0;c<H.length;c++){let l=H.charCodeAt(c);if(l===58){if(p){if(M!==-1){if(w<O)I[w]=0;if(w<O-1)I[w+1]=0;w+=2}else if(w<O)M=w}else{if(g===!0){if(w<O)I[w]=v;w++}else{if(w<O)I[w]=S>>8;if(w<O-1)I[w+1]=S&255;w+=2}S=0,v=0}p=!0,g=!1}else if(l===46){if(w<O)I[w]=v;w++,v=0,S=0,p=!1,g=!0}else{if(p=!1,l>=97)l-=87;else if(l>=65)l-=55;else l-=48,v=v*10+l;S=(S<<4)+l}}if(p===!1)if(g===!0){if(w<O)I[w]=v;w++}else{if(w<O)I[w]=S>>8;if(w<O-1)I[w+1]=S&255;w+=2}else if(M===0){if(w<O)I[w]=0;if(w<O-1)I[w+1]=0;w+=2}else if(M!==-1){w+=2;for(let c=Math.min(w-1,O-1);c>=M+2;c--)I[c]=I[c-2];I[M]=0,I[M+1]=0,M=w}if(M!==w&&M!==-1){if(w>O-2)w=O-2;while(O>M)I[--O]=w<O&&w>M?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 x$});else if(typeof sj==="object"&&typeof k$==="object")sj.exports=x$});var y$=Z1((Nd)=>{var J1=k8("buffer").Buffer,b4=B$(),Zd=E$(),Vd=$$(),Fq=F$(),WK=S$(),wG=_$(),y0=Nd.name={};y0.encode=function(W,G,X,{mail:Y=!1}={}){if(!G)G=J1.alloc(y0.encodingLength(W));if(!X)X=0;let J=X,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=G.write(V[U],X+1);G[X]=Q,X+=Q+1}}return G[X++]=0,y0.encode.bytes=X-J,G};y0.encode.bytes=0;y0.decode=function(W,G,{mail:X=!1}={}){if(!G)G=0;let Y=[],J=G,Z=0,V=0,U=!1;while(!0){if(G>=W.length)throw Error("Cannot decode name (buffer overflow)");let Q=W[G++];if(V+=U?0:1,Q===0)break;else if((Q&192)===0){if(G+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",G,G+Q);if(X)N=N.replace(/\./g,"\\.");Y.push(N),G+=Q,V+=U?0:Q}else if((Q&192)===192){if(G+1>W.length)throw Error("Cannot decode name (buffer overflow)");let N=W.readUInt16BE(G-1)-49152;if(N>=J)throw Error("Cannot decode name (bad pointer)");G=N,J=N,V+=U?0:1,U=!0}else throw Error("Cannot decode name (bad label)")}return y0.decode.bytes=V,Y.length===0?".":Y.join(".")};y0.decode.bytes=0;y0.encodingLength=function(W){if(W==="."||W==="..")return 1;return J1.byteLength(W.replace(/^\.|\.$/gm,""))+2};var k1={};k1.encode=function(W,G,X){if(!G)G=J1.alloc(k1.encodingLength(W));if(!X)X=0;let Y=G.write(W,X+1);return G[X]=Y,k1.encode.bytes=Y+1,G};k1.encode.bytes=0;k1.decode=function(W,G){if(!G)G=0;let X=W[G],Y=W.toString("utf-8",G+1,G+1+X);return k1.decode.bytes=X+1,Y};k1.decode.bytes=0;k1.encodingLength=function(W){return J1.byteLength(W)+1};var t5={};t5.encode=function(W,G,X){if(!G)G=t5.encodingLength(W);if(!X)X=0;let Y=(W.flags||0)&32767,J=W.type==="response"?32768:0;return G.writeUInt16BE(W.id||0,X),G.writeUInt16BE(Y|J,X+2),G.writeUInt16BE(W.questions.length,X+4),G.writeUInt16BE(W.answers.length,X+6),G.writeUInt16BE(W.authorities.length,X+8),G.writeUInt16BE(W.additionals.length,X+10),G};t5.encode.bytes=12;t5.decode=function(W,G){if(!G)G=0;if(W.length<12)throw Error("Header must be 12 bytes");let X=W.readUInt16BE(G+2);return{id:W.readUInt16BE(G),type:X&32768?"response":"query",flags:X&32767,flag_qr:(X>>15&1)===1,opcode:Vd.toString(X>>11&15),flag_aa:(X>>10&1)===1,flag_tc:(X>>9&1)===1,flag_rd:(X>>8&1)===1,flag_ra:(X>>7&1)===1,flag_z:(X>>6&1)===1,flag_ad:(X>>5&1)===1,flag_cd:(X>>4&1)===1,rcode:Zd.toString(X&15),questions:Array(W.readUInt16BE(G+4)),answers:Array(W.readUInt16BE(G+6)),authorities:Array(W.readUInt16BE(G+8)),additionals:Array(W.readUInt16BE(G+10))}};t5.decode.bytes=12;t5.encodingLength=function(){return 12};var S4=Nd.unknown={};S4.encode=function(W,G,X){if(!G)G=J1.alloc(S4.encodingLength(W));if(!X)X=0;return G.writeUInt16BE(W.length,X),W.copy(G,X+2),S4.encode.bytes=W.length+2,G};S4.encode.bytes=0;S4.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G),Y=W.slice(G+2,G+2+X);return S4.decode.bytes=X+2,Y};S4.decode.bytes=0;S4.encodingLength=function(W){return W.length+2};var x4=Nd.ns={};x4.encode=function(W,G,X){if(!G)G=J1.alloc(x4.encodingLength(W));if(!X)X=0;return y0.encode(W,G,X+2),G.writeUInt16BE(y0.encode.bytes,X),x4.encode.bytes=y0.encode.bytes+2,G};x4.encode.bytes=0;x4.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G),Y=y0.decode(W,G+2);return x4.decode.bytes=X+2,Y};x4.decode.bytes=0;x4.encodingLength=function(W){return y0.encodingLength(W)+2};var k4=Nd.soa={};k4.encode=function(W,G,X){if(!G)G=J1.alloc(k4.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,y0.encode(W.mname,G,X),X+=y0.encode.bytes,y0.encode(W.rname,G,X,{mail:!0}),X+=y0.encode.bytes,G.writeUInt32BE(W.serial||0,X),X+=4,G.writeUInt32BE(W.refresh||0,X),X+=4,G.writeUInt32BE(W.retry||0,X),X+=4,G.writeUInt32BE(W.expire||0,X),X+=4,G.writeUInt32BE(W.minimum||0,X),X+=4,G.writeUInt16BE(X-Y-2,Y),k4.encode.bytes=X-Y,G};k4.encode.bytes=0;k4.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.mname=y0.decode(W,G),G+=y0.decode.bytes,Y.rname=y0.decode(W,G,{mail:!0}),G+=y0.decode.bytes,Y.serial=W.readUInt32BE(G),G+=4,Y.refresh=W.readUInt32BE(G),G+=4,Y.retry=W.readUInt32BE(G),G+=4,Y.expire=W.readUInt32BE(G),G+=4,Y.minimum=W.readUInt32BE(G),G+=4,k4.decode.bytes=G-X,Y};k4.decode.bytes=0;k4.encodingLength=function(W){return 22+y0.encodingLength(W.mname)+y0.encodingLength(W.rname)};var _4=Nd.txt={};_4.encode=function(W,G,X){if(!Array.isArray(W))W=[W];for(let J=0;J<W.length;J++){if(typeof W[J]==="string")W[J]=J1.from(W[J]);if(!J1.isBuffer(W[J]))throw Error("Must be a Buffer")}if(!G)G=J1.alloc(_4.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,W.forEach(function(J){G[X++]=J.length,J.copy(G,X,0,J.length),X+=J.length}),G.writeUInt16BE(X-Y-2,Y),_4.encode.bytes=X-Y,G};_4.encode.bytes=0;_4.decode=function(W,G){if(!G)G=0;let X=G,Y=W.readUInt16BE(G);G+=2;let J=[];while(Y>0){let Z=W[G++];if(--Y,Y<Z)throw Error("Buffer overflow");J.push(W.slice(G,G+Z)),G+=Z,Y-=Z}return _4.decode.bytes=G-X,J};_4.decode.bytes=0;_4.encodingLength=function(W){if(!Array.isArray(W))W=[W];let G=2;return W.forEach(function(X){if(typeof X==="string")G+=J1.byteLength(X)+1;else G+=X.length+1}),G};var y4=Nd.null={};y4.encode=function(W,G,X){if(!G)G=J1.alloc(y4.encodingLength(W));if(!X)X=0;if(typeof W==="string")W=J1.from(W);if(!W)W=J1.alloc(0);let Y=X;X+=2;let J=W.length;return W.copy(G,X,0,J),X+=J,G.writeUInt16BE(X-Y-2,Y),y4.encode.bytes=X-Y,G};y4.encode.bytes=0;y4.decode=function(W,G){if(!G)G=0;let X=G,Y=W.readUInt16BE(G);G+=2;let J=W.slice(G,G+Y);return G+=Y,y4.decode.bytes=G-X,J};y4.decode.bytes=0;y4.encodingLength=function(W){if(!W)return 2;return(J1.isBuffer(W)?W.length:J1.byteLength(W))+2};var v4=Nd.hinfo={};v4.encode=function(W,G,X){if(!G)G=J1.alloc(v4.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,k1.encode(W.cpu,G,X),X+=k1.encode.bytes,k1.encode(W.os,G,X),X+=k1.encode.bytes,G.writeUInt16BE(X-Y-2,Y),v4.encode.bytes=X-Y,G};v4.encode.bytes=0;v4.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.cpu=k1.decode(W,G),G+=k1.decode.bytes,Y.os=k1.decode(W,G),G+=k1.decode.bytes,v4.decode.bytes=G-X,Y};v4.decode.bytes=0;v4.encodingLength=function(W){return k1.encodingLength(W.cpu)+k1.encodingLength(W.os)+2};var a5=Nd.ptr={},Ud=Nd.cname=a5,Qd=Nd.dname=a5;a5.encode=function(W,G,X){if(!G)G=J1.alloc(a5.encodingLength(W));if(!X)X=0;return y0.encode(W,G,X+2),G.writeUInt16BE(y0.encode.bytes,X),a5.encode.bytes=y0.encode.bytes+2,G};a5.encode.bytes=0;a5.decode=function(W,G){if(!G)G=0;let X=y0.decode(W,G+2);return a5.decode.bytes=y0.decode.bytes+2,X};a5.decode.bytes=0;a5.encodingLength=function(W){return y0.encodingLength(W)+2};var g4=Nd.srv={};g4.encode=function(W,G,X){if(!G)G=J1.alloc(g4.encodingLength(W));if(!X)X=0;G.writeUInt16BE(W.priority||0,X+2),G.writeUInt16BE(W.weight||0,X+4),G.writeUInt16BE(W.port||0,X+6),y0.encode(W.target,G,X+8);let Y=y0.encode.bytes+6;return G.writeUInt16BE(Y,X),g4.encode.bytes=Y+2,G};g4.encode.bytes=0;g4.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G),Y={};return Y.priority=W.readUInt16BE(G+2),Y.weight=W.readUInt16BE(G+4),Y.port=W.readUInt16BE(G+6),Y.target=y0.decode(W,G+8),g4.decode.bytes=X+2,Y};g4.decode.bytes=0;g4.encodingLength=function(W){return 8+y0.encodingLength(W.target)};var q5=Nd.caa={};q5.ISSUER_CRITICAL=128;q5.encode=function(W,G,X){let Y=q5.encodingLength(W);if(!G)G=J1.alloc(q5.encodingLength(W));if(!X)X=0;if(W.issuerCritical)W.flags=q5.ISSUER_CRITICAL;return G.writeUInt16BE(Y-2,X),X+=2,G.writeUInt8(W.flags||0,X),X+=1,k1.encode(W.tag,G,X),X+=k1.encode.bytes,G.write(W.value,X),X+=J1.byteLength(W.value),q5.encode.bytes=Y,G};q5.encode.bytes=0;q5.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G);G+=2;let Y=G,J={};return J.flags=W.readUInt8(G),G+=1,J.tag=k1.decode(W,G),G+=k1.decode.bytes,J.value=W.toString("utf-8",G,Y+X),J.issuerCritical=!!(J.flags&q5.ISSUER_CRITICAL),q5.decode.bytes=X+2,J};q5.decode.bytes=0;q5.encodingLength=function(W){return k1.encodingLength(W.tag)+k1.encodingLength(W.value)+2};var o6=Nd.mx={};o6.encode=function(W,G,X){if(!G)G=J1.alloc(o6.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,G.writeUInt16BE(W.preference||0,X),X+=2,y0.encode(W.exchange,G,X),X+=y0.encode.bytes,G.writeUInt16BE(X-Y-2,Y),o6.encode.bytes=X-Y,G};o6.encode.bytes=0;o6.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.preference=W.readUInt16BE(G),G+=2,Y.exchange=y0.decode(W,G),G+=y0.decode.bytes,o6.decode.bytes=G-X,Y};o6.encodingLength=function(W){return 4+y0.encodingLength(W.exchange)};var u4=Nd.a={};u4.encode=function(W,G,X){if(!G)G=J1.alloc(u4.encodingLength(W));if(!X)X=0;return G.writeUInt16BE(4,X),X+=2,wG.v4.encode(W,G,X),u4.encode.bytes=6,G};u4.encode.bytes=0;u4.decode=function(W,G){if(!G)G=0;G+=2;let X=wG.v4.decode(W,G);return u4.decode.bytes=6,X};u4.decode.bytes=0;u4.encodingLength=function(){return 6};var h4=Nd.aaaa={};h4.encode=function(W,G,X){if(!G)G=J1.alloc(h4.encodingLength(W));if(!X)X=0;return G.writeUInt16BE(16,X),X+=2,wG.v6.encode(W,G,X),h4.encode.bytes=18,G};h4.encode.bytes=0;h4.decode=function(W,G){if(!G)G=0;G+=2;let X=wG.v6.decode(W,G);return h4.decode.bytes=18,X};h4.decode.bytes=0;h4.encodingLength=function(){return 18};var a9=Nd.option={};a9.encode=function(W,G,X){if(!G)G=J1.alloc(a9.encodingLength(W));if(!X)X=0;let Y=X,J=WK.toCode(W.code);if(G.writeUInt16BE(J,X),X+=2,W.data)G.writeUInt16BE(W.data.length,X),X+=2,W.data.copy(G,X),X+=W.data.length;else switch(J){case 8:let Z=W.sourcePrefixLength||0,V=W.family||wG.familyOf(W.ip),U=wG.encode(W.ip,J1.alloc),Q=Math.ceil(Z/8);G.writeUInt16BE(Q+4,X),X+=2,G.writeUInt16BE(V,X),X+=2,G.writeUInt8(Z,X++),G.writeUInt8(W.scopePrefixLength||0,X++),U.copy(G,X,0,Q),X+=Q;break;case 11:if(W.timeout)G.writeUInt16BE(2,X),X+=2,G.writeUInt16BE(W.timeout,X),X+=2;else G.writeUInt16BE(0,X),X+=2;break;case 12:let N=W.length||0;G.writeUInt16BE(N,X),X+=2,G.fill(0,X,X+N),X+=N;break;case 14:let q=W.tags.length*2;G.writeUInt16BE(q,X),X+=2;for(let A of W.tags)G.writeUInt16BE(A,X),X+=2;break;default:throw Error(`Unknown roption code: ${W.code}`)}return a9.encode.bytes=X-Y,G};a9.encode.bytes=0;a9.decode=function(W,G){if(!G)G=0;let X={};X.code=W.readUInt16BE(G),X.type=WK.toString(X.code),G+=2;let Y=W.readUInt16BE(G);switch(G+=2,X.data=W.slice(G,G+Y),X.code){case 8:X.family=W.readUInt16BE(G),G+=2,X.sourcePrefixLength=W.readUInt8(G++),X.scopePrefixLength=W.readUInt8(G++);let J=J1.alloc(X.family===1?4:16);W.copy(J,0,G,G+Y-4),X.ip=wG.decode(J);break;case 11:if(Y>0)X.timeout=W.readUInt16BE(G),G+=2;break;case 14:X.tags=[];for(let Z=0;Z<Y;Z+=2)X.tags.push(W.readUInt16BE(G)),G+=2}return a9.decode.bytes=Y+4,X};a9.decode.bytes=0;a9.encodingLength=function(W){if(W.data)return W.data.length+4;switch(WK.toCode(W.code)){case 8:let X=W.sourcePrefixLength||0;return Math.ceil(X/8)+8;case 11:return typeof W.timeout==="number"?6:4;case 12:return W.length+4;case 14:return 4+W.tags.length*2}throw Error(`Unknown roption code: ${W.code}`)};var A5=Nd.opt={};A5.encode=function(W,G,X){if(!G)G=J1.alloc(A5.encodingLength(W));if(!X)X=0;let Y=X,J=$Y(W,a9);return G.writeUInt16BE(J,X),X=SV(W,a9,G,X+2),A5.encode.bytes=X-Y,G};A5.encode.bytes=0;A5.decode=function(W,G){if(!G)G=0;let X=G,Y=[],J=W.readUInt16BE(G);G+=2;let Z=0;while(J>0)Y[Z++]=a9.decode(W,G),G+=a9.decode.bytes,J-=a9.decode.bytes;return A5.decode.bytes=G-X,Y};A5.decode.bytes=0;A5.encodingLength=function(W){return 2+$Y(W||[],a9)};var u9=Nd.dnskey={};u9.PROTOCOL_DNSSEC=3;u9.ZONE_KEY=128;u9.SECURE_ENTRYPOINT=32768;u9.encode=function(W,G,X){if(!G)G=J1.alloc(u9.encodingLength(W));if(!X)X=0;let Y=X,J=W.key;if(!J1.isBuffer(J))throw Error("Key must be a Buffer");return X+=2,G.writeUInt16BE(W.flags,X),X+=2,G.writeUInt8(u9.PROTOCOL_DNSSEC,X),X+=1,G.writeUInt8(W.algorithm,X),X+=1,J.copy(G,X,0,J.length),X+=J.length,u9.encode.bytes=X-Y,G.writeUInt16BE(u9.encode.bytes-2,Y),G};u9.encode.bytes=0;u9.decode=function(W,G){if(!G)G=0;let X=G;var Y={},J=W.readUInt16BE(G);if(G+=2,Y.flags=W.readUInt16BE(G),G+=2,W.readUInt8(G)!==u9.PROTOCOL_DNSSEC)throw Error("Protocol must be 3");return G+=1,Y.algorithm=W.readUInt8(G),G+=1,Y.key=W.slice(G,X+J+2),G+=Y.key.length,u9.decode.bytes=G-X,Y};u9.decode.bytes=0;u9.encodingLength=function(W){return 6+J1.byteLength(W.key)};var y7=Nd.rrsig={};y7.encode=function(W,G,X){if(!G)G=J1.alloc(y7.encodingLength(W));if(!X)X=0;let Y=X,J=W.signature;if(!J1.isBuffer(J))throw Error("Signature must be a Buffer");return X+=2,G.writeUInt16BE(b4.toType(W.typeCovered),X),X+=2,G.writeUInt8(W.algorithm,X),X+=1,G.writeUInt8(W.labels,X),X+=1,G.writeUInt32BE(W.originalTTL,X),X+=4,G.writeUInt32BE(W.expiration,X),X+=4,G.writeUInt32BE(W.inception,X),X+=4,G.writeUInt16BE(W.keyTag,X),X+=2,y0.encode(W.signersName,G,X),X+=y0.encode.bytes,J.copy(G,X,0,J.length),X+=J.length,y7.encode.bytes=X-Y,G.writeUInt16BE(y7.encode.bytes-2,Y),G};y7.encode.bytes=0;y7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},J=W.readUInt16BE(G);return G+=2,Y.typeCovered=b4.toString(W.readUInt16BE(G)),G+=2,Y.algorithm=W.readUInt8(G),G+=1,Y.labels=W.readUInt8(G),G+=1,Y.originalTTL=W.readUInt32BE(G),G+=4,Y.expiration=W.readUInt32BE(G),G+=4,Y.inception=W.readUInt32BE(G),G+=4,Y.keyTag=W.readUInt16BE(G),G+=2,Y.signersName=y0.decode(W,G),G+=y0.decode.bytes,Y.signature=W.slice(G,X+J+2),G+=Y.signature.length,y7.decode.bytes=G-X,Y};y7.decode.bytes=0;y7.encodingLength=function(W){return 20+y0.encodingLength(W.signersName)+J1.byteLength(W.signature)};var v7=Nd.rp={};v7.encode=function(W,G,X){if(!G)G=J1.alloc(v7.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,y0.encode(W.mbox||".",G,X,{mail:!0}),X+=y0.encode.bytes,y0.encode(W.txt||".",G,X),X+=y0.encode.bytes,v7.encode.bytes=X-Y,G.writeUInt16BE(v7.encode.bytes-2,Y),G};v7.encode.bytes=0;v7.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.mbox=y0.decode(W,G,{mail:!0})||".",G+=y0.decode.bytes,Y.txt=y0.decode(W,G)||".",G+=y0.decode.bytes,v7.decode.bytes=G-X,Y};v7.decode.bytes=0;v7.encodingLength=function(W){return 2+y0.encodingLength(W.mbox||".")+y0.encodingLength(W.txt||".")};var r8={};r8.encode=function(W,G,X){if(!G)G=J1.alloc(r8.encodingLength(W));if(!X)X=0;let Y=X;var J=[];for(var Z=0;Z<W.length;Z++){var V=b4.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=J1.from(J[Z]);G.writeUInt8(Z,X),X+=1,G.writeUInt8(U.length,X),X+=1,U.copy(G,X),X+=U.length}return r8.encode.bytes=X-Y,G};r8.encode.bytes=0;r8.decode=function(W,G,X){if(!G)G=0;let Y=G;var J=[];while(G-Y<X){var Z=W.readUInt8(G);G+=1;var V=W.readUInt8(G);G+=1;for(var U=0;U<V;U++){var Q=W.readUInt8(G+U);for(var N=0;N<8;N++)if(Q&1<<7-N){var q=b4.toString(Z<<8|U<<3|N);J.push(q)}}G+=V}return r8.decode.bytes=G-Y,J};r8.decode.bytes=0;r8.encodingLength=function(W){var G=[];for(var X=0;X<W.length;X++){var Y=b4.toType(W[X]);G[Y>>8]=Math.max(G[Y>>8]||0,Y&255)}var J=0;for(X=0;X<G.length;X++)if(G[X]!==void 0)J+=2+Math.ceil((G[X]+1)/8);return J};var g7=Nd.nsec={};g7.encode=function(W,G,X){if(!G)G=J1.alloc(g7.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,y0.encode(W.nextDomain,G,X),X+=y0.encode.bytes,r8.encode(W.rrtypes,G,X),X+=r8.encode.bytes,g7.encode.bytes=X-Y,G.writeUInt16BE(g7.encode.bytes-2,Y),G};g7.encode.bytes=0;g7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},J=W.readUInt16BE(G);return G+=2,Y.nextDomain=y0.decode(W,G),G+=y0.decode.bytes,Y.rrtypes=r8.decode(W,G,J-(G-X)),G+=r8.decode.bytes,g7.decode.bytes=G-X,Y};g7.decode.bytes=0;g7.encodingLength=function(W){return 2+y0.encodingLength(W.nextDomain)+r8.encodingLength(W.rrtypes)};var u7=Nd.nsec3={};u7.encode=function(W,G,X){if(!G)G=J1.alloc(u7.encodingLength(W));if(!X)X=0;let Y=X,J=W.salt;if(!J1.isBuffer(J))throw Error("salt must be a Buffer");let Z=W.nextDomain;if(!J1.isBuffer(Z))throw Error("nextDomain must be a Buffer");return X+=2,G.writeUInt8(W.algorithm,X),X+=1,G.writeUInt8(W.flags,X),X+=1,G.writeUInt16BE(W.iterations,X),X+=2,G.writeUInt8(J.length,X),X+=1,J.copy(G,X,0,J.length),X+=J.length,G.writeUInt8(Z.length,X),X+=1,Z.copy(G,X,0,Z.length),X+=Z.length,r8.encode(W.rrtypes,G,X),X+=r8.encode.bytes,u7.encode.bytes=X-Y,G.writeUInt16BE(u7.encode.bytes-2,Y),G};u7.encode.bytes=0;u7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},J=W.readUInt16BE(G);G+=2,Y.algorithm=W.readUInt8(G),G+=1,Y.flags=W.readUInt8(G),G+=1,Y.iterations=W.readUInt16BE(G),G+=2;let Z=W.readUInt8(G);G+=1,Y.salt=W.slice(G,G+Z),G+=Z;let V=W.readUInt8(G);return G+=1,Y.nextDomain=W.slice(G,G+V),G+=V,Y.rrtypes=r8.decode(W,G,J-(G-X)),G+=r8.decode.bytes,u7.decode.bytes=G-X,Y};u7.decode.bytes=0;u7.encodingLength=function(W){return 8+W.salt.length+W.nextDomain.length+r8.encodingLength(W.rrtypes)};var h7=Nd.ds={};h7.encode=function(W,G,X){if(!G)G=J1.alloc(h7.encodingLength(W));if(!X)X=0;let Y=X,J=W.digest;if(!J1.isBuffer(J))throw Error("Digest must be a Buffer");return X+=2,G.writeUInt16BE(W.keyTag,X),X+=2,G.writeUInt8(W.algorithm,X),X+=1,G.writeUInt8(W.digestType,X),X+=1,J.copy(G,X,0,J.length),X+=J.length,h7.encode.bytes=X-Y,G.writeUInt16BE(h7.encode.bytes-2,Y),G};h7.encode.bytes=0;h7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},J=W.readUInt16BE(G);return G+=2,Y.keyTag=W.readUInt16BE(G),G+=2,Y.algorithm=W.readUInt8(G),G+=1,Y.digestType=W.readUInt8(G),G+=1,Y.digest=W.slice(G,X+J+2),G+=Y.digest.length,h7.decode.bytes=G-X,Y};h7.decode.bytes=0;h7.encodingLength=function(W){return 6+J1.byteLength(W.digest)};var H5=Nd.sshfp={};H5.getFingerprintLengthForHashType=function(G){switch(G){case 1:return 20;case 2:return 32}};H5.encode=function(G,X,Y){if(!X)X=J1.alloc(H5.encodingLength(G));if(!Y)Y=0;let J=Y;Y+=2,X[Y]=G.algorithm,Y+=1,X[Y]=G.hash,Y+=1;let Z=J1.from(G.fingerprint.toUpperCase(),"hex");if(Z.length!==H5.getFingerprintLengthForHashType(G.hash))throw Error("Invalid fingerprint length");return Z.copy(X,Y),Y+=Z.byteLength,H5.encode.bytes=Y-J,X.writeUInt16BE(H5.encode.bytes-2,J),X};H5.encode.bytes=0;H5.decode=function(G,X){if(!X)X=0;let Y=X,J={};X+=2,J.algorithm=G[X],X+=1,J.hash=G[X],X+=1;let Z=H5.getFingerprintLengthForHashType(J.hash);return J.fingerprint=G.slice(X,X+Z).toString("hex").toUpperCase(),X+=Z,H5.decode.bytes=X-Y,J};H5.decode.bytes=0;H5.encodingLength=function(W){return 4+J1.from(W.fingerprint,"hex").byteLength};var b7=Nd.naptr={};b7.encode=function(W,G,X){if(!G)G=J1.alloc(b7.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,G.writeUInt16BE(W.order||0,X),X+=2,G.writeUInt16BE(W.preference||0,X),X+=2,k1.encode(W.flags,G,X),X+=k1.encode.bytes,k1.encode(W.services,G,X),X+=k1.encode.bytes,k1.encode(W.regexp,G,X),X+=k1.encode.bytes,y0.encode(W.replacement,G,X),X+=y0.encode.bytes,b7.encode.bytes=X-Y,G.writeUInt16BE(b7.encode.bytes-2,Y),G};b7.encode.bytes=0;b7.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.order=W.readUInt16BE(G),G+=2,Y.preference=W.readUInt16BE(G),G+=2,Y.flags=k1.decode(W,G),G+=k1.decode.bytes,Y.services=k1.decode(W,G),G+=k1.decode.bytes,Y.regexp=k1.decode(W,G),G+=k1.decode.bytes,Y.replacement=y0.decode(W,G),G+=y0.decode.bytes,b7.decode.bytes=G-X,Y};b7.decode.bytes=0;b7.encodingLength=function(W){return k1.encodingLength(W.flags)+k1.encodingLength(W.services)+k1.encodingLength(W.regexp)+y0.encodingLength(W.replacement)+6};var m7=Nd.tlsa={};m7.encode=function(W,G,X){if(!G)G=J1.alloc(m7.encodingLength(W));if(!X)X=0;let Y=X,J=W.certificate;if(!J1.isBuffer(J))throw Error("Certificate must be a Buffer");return X+=2,G.writeUInt8(W.usage,X),X+=1,G.writeUInt8(W.selector,X),X+=1,G.writeUInt8(W.matchingType,X),X+=1,J.copy(G,X,0,J.length),X+=J.length,m7.encode.bytes=X-Y,G.writeUInt16BE(m7.encode.bytes-2,Y),G};m7.encode.bytes=0;m7.decode=function(W,G){if(!G)G=0;let X=G,Y={},J=W.readUInt16BE(G);return G+=2,Y.usage=W.readUInt8(G),G+=1,Y.selector=W.readUInt8(G),G+=1,Y.matchingType=W.readUInt8(G),G+=1,Y.certificate=W.slice(G,X+J+2),G+=Y.certificate.length,m7.decode.bytes=G-X,Y};m7.decode.bytes=0;m7.encodingLength=function(W){return 5+J1.byteLength(W.certificate)};var GK=Nd.record=function(W){switch(W.toUpperCase()){case"A":return u4;case"PTR":return a5;case"CNAME":return Ud;case"DNAME":return Qd;case"TXT":return _4;case"NULL":return y4;case"AAAA":return h4;case"SRV":return g4;case"HINFO":return v4;case"CAA":return q5;case"NS":return x4;case"SOA":return k4;case"MX":return o6;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 S4},Z9=Nd.answer={};Z9.encode=function(W,G,X){if(!G)G=J1.alloc(Z9.encodingLength(W));if(!X)X=0;let Y=X;if(y0.encode(W.name,G,X),X+=y0.encode.bytes,G.writeUInt16BE(b4.toType(W.type),X),W.type.toUpperCase()==="OPT"){if(W.name!==".")throw Error("OPT name must be root.");G.writeUInt16BE(W.udpPayloadSize||4096,X+2),G.writeUInt8(W.extendedRcode||0,X+4),G.writeUInt8(W.ednsVersion||0,X+5),G.writeUInt16BE(W.flags||0,X+6),X+=8,A5.encode(W.options||[],G,X),X+=A5.encode.bytes}else{let J=Fq.toClass(W.class===void 0?"IN":W.class);if(W.flush)J|=32768;G.writeUInt16BE(J,X+2),G.writeUInt32BE(W.ttl||0,X+4),X+=8;let Z=GK(W.type);Z.encode(W.data,G,X),X+=Z.encode.bytes}return Z9.encode.bytes=X-Y,G};Z9.encode.bytes=0;Z9.decode=function(W,G){if(!G)G=0;let X={},Y=G;if(X.name=y0.decode(W,G),G+=y0.decode.bytes,X.type=b4.toString(W.readUInt16BE(G)),X.type==="OPT")X.udpPayloadSize=W.readUInt16BE(G+2),X.extendedRcode=W.readUInt8(G+4),X.ednsVersion=W.readUInt8(G+5),X.flags=W.readUInt16BE(G+6),X.flag_do=(X.flags>>15&1)===1,X.options=A5.decode(W,G+8),G+=8+A5.decode.bytes;else{let J=W.readUInt16BE(G+2);X.ttl=W.readUInt32BE(G+4),X.class=Fq.toString(J&-32769),X.flush=!!(J&32768);let Z=GK(X.type);X.data=Z.decode(W,G+8),G+=8+Z.decode.bytes}return Z9.decode.bytes=G-Y,X};Z9.decode.bytes=0;Z9.encodingLength=function(W){let G=W.data!==null&&W.data!==void 0?W.data:W.options;return y0.encodingLength(W.name)+8+GK(W.type).encodingLength(G)};var s5=Nd.question={};s5.encode=function(W,G,X){if(!G)G=J1.alloc(s5.encodingLength(W));if(!X)X=0;let Y=X;return y0.encode(W.name,G,X),X+=y0.encode.bytes,G.writeUInt16BE(b4.toType(W.type),X),X+=2,G.writeUInt16BE(Fq.toClass(W.class===void 0?"IN":W.class),X),X+=2,s5.encode.bytes=X-Y,W};s5.encode.bytes=0;s5.decode=function(W,G){if(!G)G=0;let X=G,Y={};if(Y.name=y0.decode(W,G),G+=y0.decode.bytes,Y.type=b4.toString(W.readUInt16BE(G)),G+=2,Y.class=Fq.toString(W.readUInt16BE(G)),G+=2,!!(Y.class&32768))Y.class&=-32769;return s5.decode.bytes=G-X,Y};s5.decode.bytes=0;s5.encodingLength=function(W){return y0.encodingLength(W.name)+4};Nd.AUTHORITATIVE_ANSWER=1024;Nd.TRUNCATED_RESPONSE=512;Nd.RECURSION_DESIRED=256;Nd.RECURSION_AVAILABLE=128;Nd.AUTHENTIC_DATA=32;Nd.CHECKING_DISABLED=16;Nd.DNSSEC_OK=32768;Nd.encode=function(W,G,X){let Y=!G;if(Y)G=J1.alloc(Nd.encodingLength(W));if(!X)X=0;let J=X;if(!W.questions)W.questions=[];if(!W.answers)W.answers=[];if(!W.authorities)W.authorities=[];if(!W.additionals)W.additionals=[];if(t5.encode(W,G,X),X+=t5.encode.bytes,X=SV(W.questions,s5,G,X),X=SV(W.answers,Z9,G,X),X=SV(W.authorities,Z9,G,X),X=SV(W.additionals,Z9,G,X),Nd.encode.bytes=X-J,Y&&Nd.encode.bytes!==G.length)return G.slice(0,Nd.encode.bytes);return G};Nd.encode.bytes=0;Nd.decode=function(W,G){if(!G)G=0;let X=G,Y=t5.decode(W,G);return G+=t5.decode.bytes,G=$q(Y.questions,s5,W,G),G=$q(Y.answers,Z9,W,G),G=$q(Y.authorities,Z9,W,G),G=$q(Y.additionals,Z9,W,G),Nd.decode.bytes=G-X,Y};Nd.decode.bytes=0;Nd.encodingLength=function(W){return t5.encodingLength(W)+$Y(W.questions||[],s5)+$Y(W.answers||[],Z9)+$Y(W.authorities||[],Z9)+$Y(W.additionals||[],Z9)};Nd.streamEncode=function(W){let G=Nd.encode(W),X=J1.alloc(2);X.writeUInt16BE(G.byteLength);let Y=J1.concat([X,G]);return Nd.streamEncode.bytes=Y.byteLength,Y};Nd.streamEncode.bytes=0;Nd.streamDecode=function(W){let G=W.readUInt16BE(0);if(W.byteLength<G+2)return null;let X=Nd.decode(W.slice(2));return Nd.streamDecode.bytes=Nd.decode.bytes,X};Nd.streamDecode.bytes=0;function $Y(W,G){let X=0;for(let Y=0;Y<W.length;Y++)X+=G.encodingLength(W[Y]);return X}function SV(W,G,X,Y){for(let J=0;J<W.length;J++)G.encode(W[J],X,Y),Y+=G.encode.bytes;return Y}function $q(W,G,X,Y){for(let J=0;J<W.length;J++)W[J]=G.decode(X,Y),Y+=G.decode.bytes;return Y}});var u$=Z1((PH0,g$)=>{var v$=Rd;process.nextTick(Md,42);g$.exports=Od;function Od(W){var G=Y;return X;function X(J){G(J||Cd)}function Y(J){var Z=[J];G=V,W(U);function V(Q){Z.push(Q)}function U(Q){var N=arguments;G=Dd(Q)?Y:q;while(Z.length)q(Z.shift());function q(A){v$(Td,A,N)}}}}function Dd(W){return Object.prototype.toString.call(W)==="[object Error]"}function Cd(){}function Td(W,G){W.apply(null,G)}function Md(W){if(W===42)v$=process.nextTick}function Rd(W,G,X){process.nextTick(function(){W(G,X)})}});var m$=Z1((LH0,b$)=>{var XK=y$(),Pd=k8("dgram"),Ld=u$(),Bd=k8("events"),JK=k8("os"),YK=function(){};b$.exports=function(W){if(!W)W={};var G=new Bd.EventEmitter,X=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:X},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||Pd.createSocket({type:Y,reuseAddr:W.reuseAddr!==!1,toString:function(){return Y}});N.on("error",function(A){if(A.code==="EACCES"||A.code==="EADDRINUSE")G.emit("error",A);else G.emit("warning",A)}),N.on("message",function(A,H){try{A=XK.decode(A)}catch(I){G.emit("warning",I);return}if(G.emit("packet",A,H),A.type==="query")G.emit("query",A,H);if(A.type==="response")G.emit("response",A,H)}),N.on("listening",function(){if(!X)X=Z.port=N.address().port;if(W.multicast!==!1)G.update(),Q=setInterval(G.update,5000),N.setMulticastTTL(W.ttl||255),N.setMulticastLoopback(W.loopback!==!1)});var q=Ld(function(A){if(!X||W.bind===!1)return A(null);N.once("error",A),N.bind(X,W.bind||W.interface,function(){N.removeListener("error",A),A(null)})});return q(function(A){if(A)return G.emit("error",A);G.emit("ready")}),G.send=function(A,H,I){if(typeof H==="function")return G.send(A,null,H);if(!I)I=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 M=XK.encode(A);N.send(M,0,M.length,H.port,H.address||H.host,I)}},G.response=G.respond=function(A,H,I){if(Array.isArray(A))A={answers:A};A.type="response",A.flags=(A.flags||0)|XK.AUTHORITATIVE_ANSWER,G.send(A,H,I)},G.query=function(A,H,I,w){if(typeof H==="function")return G.query(A,null,null,H);if(typeof H==="object"&&H&&H.port)return G.query(A,null,H,I);if(typeof I==="function")return G.query(A,H,null,I);if(!w)w=YK;if(typeof A==="string")A=[{name:A,type:H||"ANY"}];if(Array.isArray(A))A={type:"query",questions:A};A.type="query",G.send(A,I,w)},G.destroy=function(A){if(!A)A=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)},G.update=function(){var A=W.interface?[].concat(W.interface):$d(),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){G.emit("warning",O)}}if(H){if(N.setMulticastInterface)try{N.setMulticastInterface(W.interface||Ed())}catch(O){G.emit("warning",O)}G.emit("networkInterface")}},G};function Ed(){var W=JK.networkInterfaces(),G=Object.keys(W);for(var X=0;X<G.length;X++){var Y=W[G[X]];for(var J=0;J<Y.length;J++){var Z=Y[J];if(h$(Z.family)&&!Z.internal){if(JK.platform()==="darwin"&&G[X]==="en0")return Z.address;return"0.0.0.0"}}}return"127.0.0.1"}function $d(){var W=JK.networkInterfaces(),G=Object.keys(W),X=[];for(var Y=0;Y<G.length;Y++){var J=W[G[Y]];for(var Z=0;Z<J.length;Z++){var V=J[Z];if(h$(V.family)){X.push(V.address);break}}}return X}function h$(W){return W===4||W==="IPv4"}});import{Database as Tt}from"bun:sqlite";import{mkdirSync as Mt}from"fs";import{dirname as Rt}from"path";function ND(W){let G=W.length,X=0,Y=0;while(Y<G){let J=W.charCodeAt(Y++);if((J&4294967168)===0){X++;continue}else if((J&4294965248)===0)X+=2;else{if(J>=55296&&J<=56319){if(Y<G){let Z=W.charCodeAt(Y);if((Z&64512)===56320)++Y,J=((J&1023)<<10)+(Z&1023)+65536}}if((J&4294901760)===0)X+=3;else X+=4}}return X}function f_(W,G,X){let Y=W.length,J=X,Z=0;while(Z<Y){let V=W.charCodeAt(Z++);if((V&4294967168)===0){G[J++]=V;continue}else if((V&4294965248)===0)G[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)G[J++]=V>>12&15|224,G[J++]=V>>6&63|128;else G[J++]=V>>18&7|240,G[J++]=V>>12&63|128,G[J++]=V>>6&63|128}G[J++]=V&63|128}}var p_=new TextEncoder,c_=50;function l_(W,G,X){p_.encodeInto(W,G.subarray(X))}function qD(W,G,X){if(W.length>c_)l_(W,G,X);else f_(W,G,X)}var d_=4096;function zA(W,G,X){let Y=G,J=Y+X,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>=d_)V+=String.fromCharCode(...Z),Z.length=0}if(Z.length>0)V+=String.fromCharCode(...Z);return V}var o_=new TextDecoder,n_=200;function i_(W,G,X){let Y=W.subarray(G,G+X);return o_.decode(Y)}function HD(W,G,X){if(X>n_)return i_(W,G,X);else return zA(W,G,X)}class cG{type;data;constructor(W,G){this.type=W,this.data=G}}class x9 extends Error{constructor(W){super(W);let G=Object.create(x9.prototype);Object.setPrototypeOf(this,G),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:x9.name})}}var lG=4294967295;function AD(W,G,X){let Y=X/4294967296,J=X;W.setUint32(G,Y),W.setUint32(G+4,J)}function vU(W,G,X){let Y=Math.floor(X/4294967296),J=X;W.setUint32(G,Y),W.setUint32(G+4,J)}function gU(W,G){let X=W.getInt32(G),Y=W.getUint32(G+4);return X*4294967296+Y}function zD(W,G){let X=W.getUint32(G),Y=W.getUint32(G+4);return X*4294967296+Y}var r_=-1,a_=4294967295,s_=17179869183;function t_({sec:W,nsec:G}){if(W>=0&&G>=0&&W<=s_)if(G===0&&W<=a_){let X=new Uint8Array(4);return new DataView(X.buffer).setUint32(0,W),X}else{let X=W/4294967296,Y=W&4294967295,J=new Uint8Array(8),Z=new DataView(J.buffer);return Z.setUint32(0,G<<2|X&3),Z.setUint32(4,Y),J}else{let X=new Uint8Array(12),Y=new DataView(X.buffer);return Y.setUint32(0,G),vU(Y,4,W),X}}function e_(W){let G=W.getTime(),X=Math.floor(G/1000),Y=(G-X*1000)*1e6,J=Math.floor(Y/1e9);return{sec:X+J,nsec:Y-J*1e9}}function Wy(W){if(W instanceof Date){let G=e_(W);return t_(G)}else return null}function Gy(W){let G=new DataView(W.buffer,W.byteOffset,W.byteLength);switch(W.byteLength){case 4:{let X=G.getUint32(0),Y=0;return{sec:X,nsec:0}}case 8:{let X=G.getUint32(0),Y=G.getUint32(4),J=(X&3)*4294967296+Y,Z=X>>>2;return{sec:J,nsec:Z}}case 12:{let X=gU(G,4),Y=G.getUint32(0);return{sec:X,nsec:Y}}default:throw new x9(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${W.length}`)}}function Xy(W){let G=Gy(W);return new Date(G.sec*1000+G.nsec/1e6)}var ID={type:r_,encode:Wy,decode:Xy};class dG{static defaultCodec=new dG;__brand;builtInEncoders=[];builtInDecoders=[];encoders=[];decoders=[];constructor(){this.register(ID)}register({type:W,encode:G,decode:X}){if(W>=0)this.encoders[W]=G,this.decoders[W]=X;else{let Y=-1-W;this.builtInEncoders[Y]=G,this.builtInDecoders[Y]=X}}tryToEncode(W,G){for(let X=0;X<this.builtInEncoders.length;X++){let Y=this.builtInEncoders[X];if(Y!=null){let J=Y(W,G);if(J!=null){let Z=-1-X;return new cG(Z,J)}}}for(let X=0;X<this.encoders.length;X++){let Y=this.encoders[X];if(Y!=null){let J=Y(W,G);if(J!=null)return new cG(X,J)}}if(W instanceof cG)return W;return null}decode(W,G,X){let Y=G<0?this.builtInDecoders[-1-G]:this.decoders[G];if(Y)return Y(W,G,X);else return new cG(G,W)}}function Yy(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(Yy(W))return new Uint8Array(W);else return Uint8Array.from(W)}var Jy=100,Zy=2048;class uU{extensionCodec;context;useBigInt64;maxDepth;initialBufferSize;sortKeys;forceFloat32;ignoreUndefined;forceIntegerToFloat;pos;view;bytes;entered=!1;constructor(W){this.extensionCodec=W?.extensionCodec??dG.defaultCodec,this.context=W?.context,this.useBigInt64=W?.useBigInt64??!1,this.maxDepth=W?.maxDepth??Jy,this.initialBufferSize=W?.initialBufferSize??Zy,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,G){if(G>this.maxDepth)throw Error(`Too deep objects in depth ${G}`);if(W==null)this.encodeNil();else if(typeof W==="boolean")this.encodeBoolean(W);else if(typeof W==="number")if(!this.forceIntegerToFloat)this.encodeNumber(W);else this.encodeNumberAsFloat(W);else if(typeof W==="string")this.encodeString(W);else if(this.useBigInt64&&typeof W==="bigint")this.encodeBigInt64(W);else this.encodeObject(W,G)}ensureBufferSizeToWrite(W){let G=this.pos+W;if(this.view.byteLength<G)this.resizeBuffer(G*2)}resizeBuffer(W){let G=new ArrayBuffer(W),X=new Uint8Array(G),Y=new DataView(G);X.set(this.bytes),this.view=Y,this.bytes=X}encodeNil(){this.writeU8(192)}encodeBoolean(W){if(W===!1)this.writeU8(194);else this.writeU8(195)}encodeNumber(W){if(!this.forceIntegerToFloat&&Number.isSafeInteger(W))if(W>=0)if(W<128)this.writeU8(W);else if(W<256)this.writeU8(204),this.writeU8(W);else if(W<65536)this.writeU8(205),this.writeU16(W);else if(W<4294967296)this.writeU8(206),this.writeU32(W);else if(!this.useBigInt64)this.writeU8(207),this.writeU64(W);else this.encodeNumberAsFloat(W);else if(W>=-32)this.writeU8(224|W+32);else if(W>=-128)this.writeU8(208),this.writeI8(W);else if(W>=-32768)this.writeU8(209),this.writeI16(W);else if(W>=-2147483648)this.writeU8(210),this.writeI32(W);else if(!this.useBigInt64)this.writeU8(211),this.writeI64(W);else this.encodeNumberAsFloat(W);else this.encodeNumberAsFloat(W)}encodeNumberAsFloat(W){if(this.forceFloat32)this.writeU8(202),this.writeF32(W);else this.writeU8(203),this.writeF64(W)}encodeBigInt64(W){if(W>=BigInt(0))this.writeU8(207),this.writeBigUint64(W);else this.writeU8(211),this.writeBigInt64(W)}writeStringHeader(W){if(W<32)this.writeU8(160+W);else if(W<256)this.writeU8(217),this.writeU8(W);else if(W<65536)this.writeU8(218),this.writeU16(W);else if(W<4294967296)this.writeU8(219),this.writeU32(W);else throw Error(`Too long string: ${W} bytes in UTF-8`)}encodeString(W){let X=ND(W);this.ensureBufferSizeToWrite(5+X),this.writeStringHeader(X),qD(W,this.bytes,this.pos),this.pos+=X}encodeObject(W,G){let X=this.extensionCodec.tryToEncode(W,this.context);if(X!=null)this.encodeExtension(X);else if(Array.isArray(W))this.encodeArray(W,G);else if(ArrayBuffer.isView(W))this.encodeBinary(W);else if(typeof W==="object")this.encodeMap(W,G);else throw Error(`Unrecognized object: ${Object.prototype.toString.apply(W)}`)}encodeBinary(W){let G=W.byteLength;if(G<256)this.writeU8(196),this.writeU8(G);else if(G<65536)this.writeU8(197),this.writeU16(G);else if(G<4294967296)this.writeU8(198),this.writeU32(G);else throw Error(`Too large binary: ${G}`);let X=QJ(W);this.writeU8a(X)}encodeArray(W,G){let X=W.length;if(X<16)this.writeU8(144+X);else if(X<65536)this.writeU8(220),this.writeU16(X);else if(X<4294967296)this.writeU8(221),this.writeU32(X);else throw Error(`Too large array: ${X}`);for(let Y of W)this.doEncode(Y,G+1)}countWithoutUndefined(W,G){let X=0;for(let Y of G)if(W[Y]!==void 0)X++;return X}encodeMap(W,G){let X=Object.keys(W);if(this.sortKeys)X.sort();let Y=this.ignoreUndefined?this.countWithoutUndefined(W,X):X.length;if(Y<16)this.writeU8(128+Y);else if(Y<65536)this.writeU8(222),this.writeU16(Y);else if(Y<4294967296)this.writeU8(223),this.writeU32(Y);else throw Error(`Too large map object: ${Y}`);for(let J of X){let Z=W[J];if(!(this.ignoreUndefined&&Z===void 0))this.encodeString(J),this.doEncode(Z,G+1)}}encodeExtension(W){if(typeof W.data==="function"){let X=W.data(this.pos+6),Y=X.length;if(Y>=4294967296)throw Error(`Too large extension object: ${Y}`);this.writeU8(201),this.writeU32(Y),this.writeI8(W.type),this.writeU8a(X);return}let G=W.data.length;if(G===1)this.writeU8(212);else if(G===2)this.writeU8(213);else if(G===4)this.writeU8(214);else if(G===8)this.writeU8(215);else if(G===16)this.writeU8(216);else if(G<256)this.writeU8(199),this.writeU8(G);else if(G<65536)this.writeU8(200),this.writeU16(G);else if(G<4294967296)this.writeU8(201),this.writeU32(G);else throw Error(`Too large extension object: ${G}`);this.writeI8(W.type),this.writeU8a(W.data)}writeU8(W){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,W),this.pos++}writeU8a(W){let G=W.length;this.ensureBufferSizeToWrite(G),this.bytes.set(W,this.pos),this.pos+=G}writeI8(W){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,W),this.pos++}writeU16(W){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,W),this.pos+=2}writeI16(W){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,W),this.pos+=2}writeU32(W){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,W),this.pos+=4}writeI32(W){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,W),this.pos+=4}writeF32(W){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,W),this.pos+=4}writeF64(W){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,W),this.pos+=8}writeU64(W){this.ensureBufferSizeToWrite(8),AD(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,G){return new uU(G).encodeSharedRef(W)}function bU(W){return`${W<0?"-":""}0x${Math.abs(W).toString(16).padStart(2,"0")}`}var Vy=16,Uy=16;class IA{hit=0;miss=0;caches;maxKeyLength;maxLengthPerKey;constructor(W=Vy,G=Uy){this.maxKeyLength=W,this.maxLengthPerKey=G,this.caches=[];for(let X=0;X<this.maxKeyLength;X++)this.caches.push([])}canBeCached(W){return W>0&&W<=this.maxKeyLength}find(W,G,X){let Y=this.caches[X-1];W:for(let J of Y){let Z=J.bytes;for(let V=0;V<X;V++)if(Z[V]!==W[G+V])continue W;return J.str}return null}store(W,G){let X=this.caches[W.length-1],Y={bytes:W,str:G};if(X.length>=this.maxLengthPerKey)X[Math.random()*X.length|0]=Y;else X.push(Y)}decode(W,G,X){let Y=this.find(W,G,X);if(Y!=null)return this.hit++,Y;this.miss++;let J=zA(W,G,X),Z=Uint8Array.prototype.slice.call(W,G,G+X);return this.store(Z,J),J}}var wA="array",qJ="map_key",jD="map_value",Qy=(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 KD{stack=[];stackHeadPosition=-1;get length(){return this.stackHeadPosition+1}top(){return this.stack[this.stackHeadPosition]}pushArrayState(W){let G=this.getUninitializedStateFromPool();G.type=wA,G.position=0,G.size=W,G.array=Array(W)}pushMapState(W){let G=this.getUninitializedStateFromPool();G.type=qJ,G.readCount=0,G.size=W,G.map={}}getUninitializedStateFromPool(){if(this.stackHeadPosition++,this.stackHeadPosition===this.stack.length){let W={type:void 0,size:0,array:void 0,position:0,readCount:0,map:void 0,key:null};this.stack.push(W)}return this.stack[this.stackHeadPosition]}release(W){if(this.stack[this.stackHeadPosition]!==W)throw Error("Invalid stack state. Released state is not on top of the stack.");if(W.type===wA){let X=W;X.size=0,X.array=void 0,X.position=0,X.type=void 0}if(W.type===qJ||W.type===jD){let X=W;X.size=0,X.map=void 0,X.readCount=0,X.type=void 0}this.stackHeadPosition--}reset(){this.stack.length=0,this.stackHeadPosition=-1}}var NJ=-1,jA=new DataView(new ArrayBuffer(0)),Ny=new Uint8Array(jA.buffer);try{jA.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 wD=RangeError("Insufficient data"),qy=new IA;class mU{extensionCodec;context;useBigInt64;rawStrings;maxStrLength;maxBinLength;maxArrayLength;maxMapLength;maxExtLength;keyDecoder;mapKeyConverter;totalPos=0;pos=0;view=jA;bytes=Ny;headByte=NJ;stack=new KD;entered=!1;constructor(W){this.extensionCodec=W?.extensionCodec??dG.defaultCodec,this.context=W?.context,this.useBigInt64=W?.useBigInt64??!1,this.rawStrings=W?.rawStrings??!1,this.maxStrLength=W?.maxStrLength??lG,this.maxBinLength=W?.maxBinLength??lG,this.maxArrayLength=W?.maxArrayLength??lG,this.maxMapLength=W?.maxMapLength??lG,this.maxExtLength=W?.maxExtLength??lG,this.keyDecoder=W?.keyDecoder!==void 0?W.keyDecoder:qy,this.mapKeyConverter=W?.mapKeyConverter??Qy}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 G=QJ(W);this.bytes=G,this.view=new DataView(G.buffer,G.byteOffset,G.byteLength),this.pos=0}appendBuffer(W){if(this.headByte===NJ&&!this.hasRemaining(1))this.setBuffer(W);else{let G=this.bytes.subarray(this.pos),X=QJ(W),Y=new Uint8Array(G.length+X.length);Y.set(G),Y.set(X,G.length),this.setBuffer(Y)}}hasRemaining(W){return this.view.byteLength-this.pos>=W}createExtraByteError(W){let{view:G,pos:X}=this;return RangeError(`Extra ${G.byteLength-X} of ${G.byteLength} byte(s) found at buffer[${W}]`)}decode(W){if(this.entered)return this.clone().decode(W);try{this.entered=!0,this.reinitializeState(),this.setBuffer(W);let G=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return G}finally{this.entered=!1}}*decodeMulti(W){if(this.entered){yield*this.clone().decodeMulti(W);return}try{this.entered=!0,this.reinitializeState(),this.setBuffer(W);while(this.hasRemaining(1))yield this.doDecodeSync()}finally{this.entered=!1}}async decodeAsync(W){if(this.entered)return this.clone().decodeAsync(W);try{this.entered=!0;let G=!1,X;for await(let V of W){if(G)throw this.entered=!1,this.createExtraByteError(this.totalPos);this.appendBuffer(V);try{X=this.doDecodeSync(),G=!0}catch(U){if(!(U instanceof RangeError))throw U}this.totalPos+=this.pos}if(G){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return X}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,G){if(this.entered){yield*this.clone().decodeMultiAsync(W,G);return}try{this.entered=!0;let X=G,Y=-1;for await(let J of W){if(G&&Y===0)throw this.createExtraByteError(this.totalPos);if(this.appendBuffer(J),X)Y=this.readArraySize(),X=!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(),G;if(W>=224)G=W-256;else if(W<192)if(W<128)G=W;else if(W<144){let Y=W-128;if(Y!==0){this.pushMapState(Y),this.complete();continue W}else G={}}else if(W<160){let Y=W-144;if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else G=[]}else{let Y=W-160;G=this.decodeString(Y,0)}else if(W===192)G=null;else if(W===194)G=!1;else if(W===195)G=!0;else if(W===202)G=this.readF32();else if(W===203)G=this.readF64();else if(W===204)G=this.readU8();else if(W===205)G=this.readU16();else if(W===206)G=this.readU32();else if(W===207)if(this.useBigInt64)G=this.readU64AsBigInt();else G=this.readU64();else if(W===208)G=this.readI8();else if(W===209)G=this.readI16();else if(W===210)G=this.readI32();else if(W===211)if(this.useBigInt64)G=this.readI64AsBigInt();else G=this.readI64();else if(W===217){let Y=this.lookU8();G=this.decodeString(Y,1)}else if(W===218){let Y=this.lookU16();G=this.decodeString(Y,2)}else if(W===219){let Y=this.lookU32();G=this.decodeString(Y,4)}else if(W===220){let Y=this.readU16();if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else G=[]}else if(W===221){let Y=this.readU32();if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else G=[]}else if(W===222){let Y=this.readU16();if(Y!==0){this.pushMapState(Y),this.complete();continue W}else G={}}else if(W===223){let Y=this.readU32();if(Y!==0){this.pushMapState(Y),this.complete();continue W}else G={}}else if(W===196){let Y=this.lookU8();G=this.decodeBinary(Y,1)}else if(W===197){let Y=this.lookU16();G=this.decodeBinary(Y,2)}else if(W===198){let Y=this.lookU32();G=this.decodeBinary(Y,4)}else if(W===212)G=this.decodeExtension(1,0);else if(W===213)G=this.decodeExtension(2,0);else if(W===214)G=this.decodeExtension(4,0);else if(W===215)G=this.decodeExtension(8,0);else if(W===216)G=this.decodeExtension(16,0);else if(W===199){let Y=this.lookU8();G=this.decodeExtension(Y,1)}else if(W===200){let Y=this.lookU16();G=this.decodeExtension(Y,2)}else if(W===201){let Y=this.lookU32();G=this.decodeExtension(Y,4)}else throw new x9(`Unrecognized type byte: ${bU(W)}`);this.complete();let X=this.stack;while(X.length>0){let Y=X.top();if(Y.type===wA)if(Y.array[Y.position]=G,Y.position++,Y.position===Y.size)G=Y.array,X.release(Y);else continue W;else if(Y.type===qJ){if(G==="__proto__")throw new x9("The key __proto__ is not allowed");Y.key=this.mapKeyConverter(G),Y.type=jD;continue W}else if(Y.map[Y.key]=G,Y.readCount++,Y.readCount===Y.size)G=Y.map,X.release(Y);else{Y.key=null,Y.type=qJ;continue W}}return G}}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,G){if(!this.rawStrings||this.stateIsMapKey())return this.decodeUtf8String(W,G);return this.decodeBinary(W,G)}decodeUtf8String(W,G){if(W>this.maxStrLength)throw new x9(`Max length exceeded: UTF-8 byte length (${W}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+G+W)throw wD;let X=this.pos+G,Y;if(this.stateIsMapKey()&&this.keyDecoder?.canBeCached(W))Y=this.keyDecoder.decode(this.bytes,X,W);else Y=HD(this.bytes,X,W);return this.pos+=G+W,Y}stateIsMapKey(){if(this.stack.length>0)return this.stack.top().type===qJ;return!1}decodeBinary(W,G){if(W>this.maxBinLength)throw new x9(`Max length exceeded: bin length (${W}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(W+G))throw wD;let X=this.pos+G,Y=this.bytes.subarray(X,X+W);return this.pos+=G+W,Y}decodeExtension(W,G){if(W>this.maxExtLength)throw new x9(`Max length exceeded: ext length (${W}) > maxExtLength (${this.maxExtLength})`);let X=this.view.getInt8(this.pos+G),Y=this.decodeBinary(W,G+1);return this.extensionCodec.decode(Y,X,this.context)}lookU8(){return this.view.getUint8(this.pos)}lookU16(){return this.view.getUint16(this.pos)}lookU32(){return this.view.getUint32(this.pos)}readU8(){let W=this.view.getUint8(this.pos);return this.pos++,W}readI8(){let W=this.view.getInt8(this.pos);return this.pos++,W}readU16(){let W=this.view.getUint16(this.pos);return this.pos+=2,W}readI16(){let W=this.view.getInt16(this.pos);return this.pos+=2,W}readU32(){let W=this.view.getUint32(this.pos);return this.pos+=4,W}readI32(){let W=this.view.getInt32(this.pos);return this.pos+=4,W}readU64(){let W=zD(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 HW(W,G){return new mU(G).decode(W)}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */function sG(W){let G=W.length;while(--G>=0)W[G]=0}var Hy=0,XC=1,Ay=2,zy=3,Iy=258,mA=29,LJ=256,KJ=LJ+1+mA,iG=30,fA=19,YC=2*KJ+1,AW=15,KA=16,wy=7,pA=256,JC=16,ZC=17,VC=18,xA=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]),jy=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),UC=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Ky=512,e7=Array((KJ+2)*2);sG(e7);var IJ=Array(iG*2);sG(IJ);var OJ=Array(Ky);sG(OJ);var DJ=Array(Iy-zy+1);sG(DJ);var cA=Array(mA);sG(cA);var nU=Array(iG);sG(nU);function OA(W,G,X,Y,J){this.static_tree=W,this.extra_bits=G,this.extra_base=X,this.elems=Y,this.max_length=J,this.has_stree=W&&W.length}var QC,NC,qC;function DA(W,G){this.dyn_tree=W,this.max_code=0,this.stat_desc=G}var HC=(W)=>{return W<256?OJ[W]:OJ[256+(W>>>7)]},CJ=(W,G)=>{W.pending_buf[W.pending++]=G&255,W.pending_buf[W.pending++]=G>>>8&255},b9=(W,G,X)=>{if(W.bi_valid>KA-X)W.bi_buf|=G<<W.bi_valid&65535,CJ(W,W.bi_buf),W.bi_buf=G>>KA-W.bi_valid,W.bi_valid+=X-KA;else W.bi_buf|=G<<W.bi_valid&65535,W.bi_valid+=X},q7=(W,G,X)=>{b9(W,X[G*2],X[G*2+1])},AC=(W,G)=>{let X=0;do X|=W&1,W>>>=1,X<<=1;while(--G>0);return X>>>1},Oy=(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},Dy=(W,G)=>{let{dyn_tree:X,max_code:Y}=G,J=G.stat_desc.static_tree,Z=G.stat_desc.has_stree,V=G.stat_desc.extra_bits,U=G.stat_desc.extra_base,Q=G.stat_desc.max_length,N,q,A,H,I,w,O=0;for(H=0;H<=AW;H++)W.bl_count[H]=0;X[W.heap[W.heap_max]*2+1]=0;for(N=W.heap_max+1;N<YC;N++){if(q=W.heap[N],H=X[X[q*2+1]*2+1]+1,H>Q)H=Q,O++;if(X[q*2+1]=H,q>Y)continue;if(W.bl_count[H]++,I=0,q>=U)I=V[q-U];if(w=X[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(X[A*2+1]!==H)W.opt_len+=(H-X[A*2+1])*X[A*2],X[A*2+1]=H;q--}}},zC=(W,G,X)=>{let Y=Array(AW+1),J=0,Z,V;for(Z=1;Z<=AW;Z++)J=J+X[Z-1]<<1,Y[Z]=J;for(V=0;V<=G;V++){let U=W[V*2+1];if(U===0)continue;W[V*2]=AC(Y[U]++,U)}},Cy=()=>{let W,G,X,Y,J,Z=Array(AW+1);X=0;for(Y=0;Y<mA-1;Y++){cA[Y]=X;for(W=0;W<1<<xA[Y];W++)DJ[X++]=Y}DJ[X-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<iG;Y++){nU[Y]=J<<7;for(W=0;W<1<<oU[Y]-7;W++)OJ[256+J++]=Y}for(G=0;G<=AW;G++)Z[G]=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]++;zC(e7,KJ+1,Z);for(W=0;W<iG;W++)IJ[W*2+1]=5,IJ[W*2]=AC(W,5);QC=new OA(e7,xA,LJ+1,KJ,AW),NC=new OA(IJ,oU,0,iG,AW),qC=new OA([],jy,0,fA,wy)},IC=(W)=>{let G;for(G=0;G<KJ;G++)W.dyn_ltree[G*2]=0;for(G=0;G<iG;G++)W.dyn_dtree[G*2]=0;for(G=0;G<fA;G++)W.bl_tree[G*2]=0;W.dyn_ltree[pA*2]=1,W.opt_len=W.static_len=0,W.sym_next=W.matches=0},wC=(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},OD=(W,G,X,Y)=>{let J=G*2,Z=X*2;return W[J]<W[Z]||W[J]===W[Z]&&Y[G]<=Y[X]},CA=(W,G,X)=>{let Y=W.heap[X],J=X<<1;while(J<=W.heap_len){if(J<W.heap_len&&OD(G,W.heap[J+1],W.heap[J],W.depth))J++;if(OD(G,Y,W.heap[J],W.depth))break;W.heap[X]=W.heap[J],X=J,J<<=1}W.heap[X]=Y},DD=(W,G,X)=>{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)q7(W,J,G);else{if(V=DJ[J],q7(W,V+LJ+1,G),U=xA[V],U!==0)J-=cA[V],b9(W,J,U);if(Y--,V=HC(Y),q7(W,V,X),U=oU[V],U!==0)Y-=nU[V],b9(W,Y,U)}while(Z<W.sym_next);q7(W,pA,G)},kA=(W,G)=>{let X=G.dyn_tree,Y=G.stat_desc.static_tree,J=G.stat_desc.has_stree,Z=G.stat_desc.elems,V,U,Q=-1,N;W.heap_len=0,W.heap_max=YC;for(V=0;V<Z;V++)if(X[V*2]!==0)W.heap[++W.heap_len]=Q=V,W.depth[V]=0;else X[V*2+1]=0;while(W.heap_len<2)if(N=W.heap[++W.heap_len]=Q<2?++Q:0,X[N*2]=1,W.depth[N]=0,W.opt_len--,J)W.static_len-=Y[N*2+1];G.max_code=Q;for(V=W.heap_len>>1;V>=1;V--)CA(W,X,V);N=Z;do V=W.heap[1],W.heap[1]=W.heap[W.heap_len--],CA(W,X,1),U=W.heap[1],W.heap[--W.heap_max]=V,W.heap[--W.heap_max]=U,X[N*2]=X[V*2]+X[U*2],W.depth[N]=(W.depth[V]>=W.depth[U]?W.depth[V]:W.depth[U])+1,X[V*2+1]=X[U*2+1]=N,W.heap[1]=N++,CA(W,X,1);while(W.heap_len>=2);W.heap[--W.heap_max]=W.heap[1],Dy(W,G),zC(X,Q,W.bl_count)},CD=(W,G,X)=>{let Y,J=-1,Z,V=G[1],U=0,Q=7,N=4;if(V===0)Q=138,N=3;G[(X+1)*2+1]=65535;for(Y=0;Y<=X;Y++){if(Z=V,V=G[(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[JC*2]++}else if(U<=10)W.bl_tree[ZC*2]++;else W.bl_tree[VC*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}},TD=(W,G,X)=>{let Y,J=-1,Z,V=G[1],U=0,Q=7,N=4;if(V===0)Q=138,N=3;for(Y=0;Y<=X;Y++){if(Z=V,V=G[(Y+1)*2+1],++U<Q&&Z===V)continue;else if(U<N)do q7(W,Z,W.bl_tree);while(--U!==0);else if(Z!==0){if(Z!==J)q7(W,Z,W.bl_tree),U--;q7(W,JC,W.bl_tree),b9(W,U-3,2)}else if(U<=10)q7(W,ZC,W.bl_tree),b9(W,U-3,3);else q7(W,VC,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}},Ty=(W)=>{let G;CD(W,W.dyn_ltree,W.l_desc.max_code),CD(W,W.dyn_dtree,W.d_desc.max_code),kA(W,W.bl_desc);for(G=fA-1;G>=3;G--)if(W.bl_tree[UC[G]*2+1]!==0)break;return W.opt_len+=3*(G+1)+5+5+4,G},My=(W,G,X,Y)=>{let J;b9(W,G-257,5),b9(W,X-1,5),b9(W,Y-4,4);for(J=0;J<Y;J++)b9(W,W.bl_tree[UC[J]*2+1],3);TD(W,W.dyn_ltree,G-1),TD(W,W.dyn_dtree,X-1)},Ry=(W)=>{let G=4093624447,X;for(X=0;X<=31;X++,G>>>=1)if(G&1&&W.dyn_ltree[X*2]!==0)return 0;if(W.dyn_ltree[18]!==0||W.dyn_ltree[20]!==0||W.dyn_ltree[26]!==0)return 1;for(X=32;X<LJ;X++)if(W.dyn_ltree[X*2]!==0)return 1;return 0},MD=!1,Py=(W)=>{if(!MD)Cy(),MD=!0;W.l_desc=new DA(W.dyn_ltree,QC),W.d_desc=new DA(W.dyn_dtree,NC),W.bl_desc=new DA(W.bl_tree,qC),W.bi_buf=0,W.bi_valid=0,IC(W)},jC=(W,G,X,Y)=>{if(b9(W,(Hy<<1)+(Y?1:0),3),wC(W),CJ(W,X),CJ(W,~X),X)W.pending_buf.set(W.window.subarray(G,G+X),W.pending);W.pending+=X},Ly=(W)=>{b9(W,XC<<1,3),q7(W,pA,e7),Oy(W)},By=(W,G,X,Y)=>{let J,Z,V=0;if(W.level>0){if(W.strm.data_type===2)W.strm.data_type=Ry(W);if(kA(W,W.l_desc),kA(W,W.d_desc),V=Ty(W),J=W.opt_len+3+7>>>3,Z=W.static_len+3+7>>>3,Z<=J)J=Z}else J=Z=X+5;if(X+4<=J&&G!==-1)jC(W,G,X,Y);else if(W.strategy===4||Z===J)b9(W,(XC<<1)+(Y?1:0),3),DD(W,e7,IJ);else b9(W,(Ay<<1)+(Y?1:0),3),My(W,W.l_desc.max_code+1,W.d_desc.max_code+1,V+1),DD(W,W.dyn_ltree,W.dyn_dtree);if(IC(W),Y)wC(W)},Ey=(W,G,X)=>{if(W.pending_buf[W.sym_buf+W.sym_next++]=G,W.pending_buf[W.sym_buf+W.sym_next++]=G>>8,W.pending_buf[W.sym_buf+W.sym_next++]=X,G===0)W.dyn_ltree[X*2]++;else W.matches++,G--,W.dyn_ltree[(DJ[X]+LJ+1)*2]++,W.dyn_dtree[HC(G)*2]++;return W.sym_next===W.sym_end},$y=Py,Fy=jC,Sy=By,xy=Ey,ky=Ly,_y={_tr_init:$y,_tr_stored_block:Fy,_tr_flush_block:Sy,_tr_tally:xy,_tr_align:ky},yy=(W,G,X,Y)=>{let J=W&65535|0,Z=W>>>16&65535|0,V=0;while(X!==0){V=X>2000?2000:X,X-=V;do J=J+G[Y++]|0,Z=Z+J|0;while(--V);J%=65521,Z%=65521}return J|Z<<16|0},TJ=yy,vy=()=>{let W,G=[];for(var X=0;X<256;X++){W=X;for(var Y=0;Y<8;Y++)W=W&1?3988292384^W>>>1:W>>>1;G[X]=W}return G},gy=new Uint32Array(vy()),uy=(W,G,X,Y)=>{let J=gy,Z=Y+X;W^=-1;for(let V=Y;V<Z;V++)W=W>>>8^J[(W^G[V])&255];return W^-1},i8=uy,wW={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"},OW={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:hy,_tr_stored_block:_A,_tr_flush_block:by,_tr_tally:V6,_tr_align:my}=_y,{Z_NO_FLUSH:U6,Z_PARTIAL_FLUSH:fy,Z_FULL_FLUSH:py,Z_FINISH:j5,Z_BLOCK:RD,Z_OK:e8,Z_STREAM_END:PD,Z_STREAM_ERROR:H7,Z_DATA_ERROR:cy,Z_BUF_ERROR:TA,Z_DEFAULT_COMPRESSION:ly,Z_FILTERED:dy,Z_HUFFMAN_ONLY:fU,Z_RLE:oy,Z_FIXED:ny,Z_DEFAULT_STRATEGY:iy,Z_UNKNOWN:ry,Z_DEFLATED:aU}=OW,ay=9,sy=15,ty=8,ey=29,Wv=256,yA=Wv+1+ey,Gv=30,Xv=19,Yv=2*yA+1,Jv=15,b1=3,Z6=258,A7=Z6+b1+1,Zv=32,rG=42,lA=57,vA=69,gA=73,uA=91,hA=103,zW=113,AJ=666,k9=1,tG=2,jW=3,eG=4,Vv=3,IW=(W,G)=>{return W.msg=wW[G],G},LD=(W)=>{return W*2-(W>4?9:0)},J6=(W)=>{let G=W.length;while(--G>=0)W[G]=0},Uv=(W)=>{let G,X,Y,J=W.w_size;G=W.hash_size,Y=G;do X=W.head[--Y],W.head[Y]=X>=J?X-J:0;while(--G);G=J,Y=G;do X=W.prev[--Y],W.prev[Y]=X>=J?X-J:0;while(--G)},Qv=(W,G,X)=>(G<<W.hash_shift^X)&W.hash_mask,Q6=Qv,G5=(W)=>{let G=W.state,X=G.pending;if(X>W.avail_out)X=W.avail_out;if(X===0)return;if(W.output.set(G.pending_buf.subarray(G.pending_out,G.pending_out+X),W.next_out),W.next_out+=X,G.pending_out+=X,W.total_out+=X,W.avail_out-=X,G.pending-=X,G.pending===0)G.pending_out=0},X5=(W,G)=>{by(W,W.block_start>=0?W.block_start:-1,W.strstart-W.block_start,G),W.block_start=W.strstart,G5(W.strm)},s1=(W,G)=>{W.pending_buf[W.pending++]=G},HJ=(W,G)=>{W.pending_buf[W.pending++]=G>>>8&255,W.pending_buf[W.pending++]=G&255},bA=(W,G,X,Y)=>{let J=W.avail_in;if(J>Y)J=Y;if(J===0)return 0;if(W.avail_in-=J,G.set(W.input.subarray(W.next_in,W.next_in+J),X),W.state.wrap===1)W.adler=TJ(W.adler,G,J,X);else if(W.state.wrap===2)W.adler=i8(W.adler,G,J,X);return W.next_in+=J,W.total_in+=J,J},KC=(W,G)=>{let{max_chain_length:X,strstart:Y}=W,J,Z,V=W.prev_length,U=W.nice_match,Q=W.strstart>W.w_size-A7?W.strstart-(W.w_size-A7):0,N=W.window,q=W.w_mask,A=W.prev,H=W.strstart+Z6,I=N[Y+V-1],w=N[Y+V];if(W.prev_length>=W.good_match)X>>=2;if(U>W.lookahead)U=W.lookahead;do{if(J=G,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=Z6-(H-Y),Y=H-Z6,Z>V){if(W.match_start=G,V=Z,Z>=U)break;I=N[Y+V-1],w=N[Y+V]}}while((G=A[G&q])>Q&&--X!==0);if(V<=W.lookahead)return V;return W.lookahead},aG=(W)=>{let G=W.w_size,X,Y,J;do{if(Y=W.window_size-W.lookahead-W.strstart,W.strstart>=G+(G-A7)){if(W.window.set(W.window.subarray(G,G+G-Y),0),W.match_start-=G,W.strstart-=G,W.block_start-=G,W.insert>W.strstart)W.insert=W.strstart;Uv(W),Y+=G}if(W.strm.avail_in===0)break;if(X=bA(W.strm,W.window,W.strstart+W.lookahead,Y),W.lookahead+=X,W.lookahead+W.insert>=b1){J=W.strstart-W.insert,W.ins_h=W.window[J],W.ins_h=Q6(W,W.ins_h,W.window[J+1]);while(W.insert)if(W.ins_h=Q6(W,W.ins_h,W.window[J+b1-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<b1)break}}while(W.lookahead<A7&&W.strm.avail_in!==0)},OC=(W,G)=>{let X=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<X&&(Y===0&&G!==j5||G===U6||Y!==J+W.strm.avail_in))break;if(V=G===j5&&Y===J+W.strm.avail_in?1:0,_A(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,G5(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)bA(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 eG;if(G!==U6&&G!==j5&&W.strm.avail_in===0&&W.strstart===W.block_start)return tG;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)bA(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,X=Z>W.w_size?W.w_size:Z,J=W.strstart-W.block_start,J>=X||(J||G===j5)&&G!==U6&&W.strm.avail_in===0&&J<=Z)Y=J>Z?Z:J,V=G===j5&&W.strm.avail_in===0&&Y===J?1:0,_A(W,W.block_start,Y,V),W.block_start+=Y,G5(W.strm);return V?jW:k9},MA=(W,G)=>{let X,Y;for(;;){if(W.lookahead<A7){if(aG(W),W.lookahead<A7&&G===U6)return k9;if(W.lookahead===0)break}if(X=0,W.lookahead>=b1)W.ins_h=Q6(W,W.ins_h,W.window[W.strstart+b1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;if(X!==0&&W.strstart-X<=W.w_size-A7)W.match_length=KC(W,X);if(W.match_length>=b1)if(Y=V6(W,W.strstart-W.match_start,W.match_length-b1),W.lookahead-=W.match_length,W.match_length<=W.max_lazy_match&&W.lookahead>=b1){W.match_length--;do W.strstart++,W.ins_h=Q6(W,W.ins_h,W.window[W.strstart+b1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;while(--W.match_length!==0);W.strstart++}else W.strstart+=W.match_length,W.match_length=0,W.ins_h=W.window[W.strstart],W.ins_h=Q6(W,W.ins_h,W.window[W.strstart+1]);else Y=V6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++;if(Y){if(X5(W,!1),W.strm.avail_out===0)return k9}}if(W.insert=W.strstart<b1-1?W.strstart:b1-1,G===j5){if(X5(W,!0),W.strm.avail_out===0)return jW;return eG}if(W.sym_next){if(X5(W,!1),W.strm.avail_out===0)return k9}return tG},oG=(W,G)=>{let X,Y,J;for(;;){if(W.lookahead<A7){if(aG(W),W.lookahead<A7&&G===U6)return k9;if(W.lookahead===0)break}if(X=0,W.lookahead>=b1)W.ins_h=Q6(W,W.ins_h,W.window[W.strstart+b1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;if(W.prev_length=W.match_length,W.prev_match=W.match_start,W.match_length=b1-1,X!==0&&W.prev_length<W.max_lazy_match&&W.strstart-X<=W.w_size-A7){if(W.match_length=KC(W,X),W.match_length<=5&&(W.strategy===dy||W.match_length===b1&&W.strstart-W.match_start>4096))W.match_length=b1-1}if(W.prev_length>=b1&&W.match_length<=W.prev_length){J=W.strstart+W.lookahead-b1,Y=V6(W,W.strstart-1-W.prev_match,W.prev_length-b1),W.lookahead-=W.prev_length-1,W.prev_length-=2;do if(++W.strstart<=J)W.ins_h=Q6(W,W.ins_h,W.window[W.strstart+b1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;while(--W.prev_length!==0);if(W.match_available=0,W.match_length=b1-1,W.strstart++,Y){if(X5(W,!1),W.strm.avail_out===0)return k9}}else if(W.match_available){if(Y=V6(W,0,W.window[W.strstart-1]),Y)X5(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=V6(W,0,W.window[W.strstart-1]),W.match_available=0;if(W.insert=W.strstart<b1-1?W.strstart:b1-1,G===j5){if(X5(W,!0),W.strm.avail_out===0)return jW;return eG}if(W.sym_next){if(X5(W,!1),W.strm.avail_out===0)return k9}return tG},Nv=(W,G)=>{let X,Y,J,Z,V=W.window;for(;;){if(W.lookahead<=Z6){if(aG(W),W.lookahead<=Z6&&G===U6)return k9;if(W.lookahead===0)break}if(W.match_length=0,W.lookahead>=b1&&W.strstart>0){if(J=W.strstart-1,Y=V[J],Y===V[++J]&&Y===V[++J]&&Y===V[++J]){Z=W.strstart+Z6;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=Z6-(Z-J),W.match_length>W.lookahead)W.match_length=W.lookahead}}if(W.match_length>=b1)X=V6(W,1,W.match_length-b1),W.lookahead-=W.match_length,W.strstart+=W.match_length,W.match_length=0;else X=V6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++;if(X){if(X5(W,!1),W.strm.avail_out===0)return k9}}if(W.insert=0,G===j5){if(X5(W,!0),W.strm.avail_out===0)return jW;return eG}if(W.sym_next){if(X5(W,!1),W.strm.avail_out===0)return k9}return tG},qv=(W,G)=>{let X;for(;;){if(W.lookahead===0){if(aG(W),W.lookahead===0){if(G===U6)return k9;break}}if(W.match_length=0,X=V6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++,X){if(X5(W,!1),W.strm.avail_out===0)return k9}}if(W.insert=0,G===j5){if(X5(W,!0),W.strm.avail_out===0)return jW;return eG}if(W.sym_next){if(X5(W,!1),W.strm.avail_out===0)return k9}return tG};function N7(W,G,X,Y,J){this.good_length=W,this.max_lazy=G,this.nice_length=X,this.max_chain=Y,this.func=J}var zJ=[new N7(0,0,0,0,OC),new N7(4,4,8,4,MA),new N7(4,5,16,8,MA),new N7(4,6,32,32,MA),new N7(4,4,16,16,oG),new N7(8,16,32,32,oG),new N7(8,16,128,128,oG),new N7(8,32,128,256,oG),new N7(32,128,258,1024,oG),new N7(32,258,258,4096,oG)],Hv=(W)=>{W.window_size=2*W.w_size,J6(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=b1-1,W.match_available=0,W.ins_h=0};function Av(){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(Yv*2),this.dyn_dtree=new Uint16Array((2*Gv+1)*2),this.bl_tree=new Uint16Array((2*Xv+1)*2),J6(this.dyn_ltree),J6(this.dyn_dtree),J6(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(Jv+1),this.heap=new Uint16Array(2*yA+1),J6(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*yA+1),J6(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 G=W.state;if(!G||G.strm!==W||G.status!==rG&&G.status!==lA&&G.status!==vA&&G.status!==gA&&G.status!==uA&&G.status!==hA&&G.status!==zW&&G.status!==AJ)return 1;return 0},DC=(W)=>{if(BJ(W))return IW(W,H7);W.total_in=W.total_out=0,W.data_type=ry;let G=W.state;if(G.pending=0,G.pending_out=0,G.wrap<0)G.wrap=-G.wrap;return G.status=G.wrap===2?lA:G.wrap?rG:zW,W.adler=G.wrap===2?0:1,G.last_flush=-2,hy(G),e8},CC=(W)=>{let G=DC(W);if(G===e8)Hv(W.state);return G},zv=(W,G)=>{if(BJ(W)||W.state.wrap!==2)return H7;return W.state.gzhead=G,e8},TC=(W,G,X,Y,J,Z)=>{if(!W)return H7;let V=1;if(G===ly)G=6;if(Y<0)V=0,Y=-Y;else if(Y>15)V=2,Y-=16;if(J<1||J>ay||X!==aU||Y<8||Y>15||G<0||G>9||Z<0||Z>ny||Y===8&&V!==1)return IW(W,H7);if(Y===8)Y=9;let U=new Av;return W.state=U,U.strm=W,U.status=rG,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+b1-1)/b1),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=G,U.strategy=Z,U.method=X,CC(W)},Iv=(W,G)=>{return TC(W,G,aU,sy,ty,iy)},wv=(W,G)=>{if(BJ(W)||G>RD||G<0)return W?IW(W,H7):H7;let X=W.state;if(!W.output||W.avail_in!==0&&!W.input||X.status===AJ&&G!==j5)return IW(W,W.avail_out===0?TA:H7);let Y=X.last_flush;if(X.last_flush=G,X.pending!==0){if(G5(W),W.avail_out===0)return X.last_flush=-1,e8}else if(W.avail_in===0&&LD(G)<=LD(Y)&&G!==j5)return IW(W,TA);if(X.status===AJ&&W.avail_in!==0)return IW(W,TA);if(X.status===rG&&X.wrap===0)X.status=zW;if(X.status===rG){let J=aU+(X.w_bits-8<<4)<<8,Z=-1;if(X.strategy>=fU||X.level<2)Z=0;else if(X.level<6)Z=1;else if(X.level===6)Z=2;else Z=3;if(J|=Z<<6,X.strstart!==0)J|=Zv;if(J+=31-J%31,HJ(X,J),X.strstart!==0)HJ(X,W.adler>>>16),HJ(X,W.adler&65535);if(W.adler=1,X.status=zW,G5(W),X.pending!==0)return X.last_flush=-1,e8}if(X.status===lA)if(W.adler=0,s1(X,31),s1(X,139),s1(X,8),!X.gzhead){if(s1(X,0),s1(X,0),s1(X,0),s1(X,0),s1(X,0),s1(X,X.level===9?2:X.strategy>=fU||X.level<2?4:0),s1(X,Vv),X.status=zW,G5(W),X.pending!==0)return X.last_flush=-1,e8}else{if(s1(X,(X.gzhead.text?1:0)+(X.gzhead.hcrc?2:0)+(!X.gzhead.extra?0:4)+(!X.gzhead.name?0:8)+(!X.gzhead.comment?0:16)),s1(X,X.gzhead.time&255),s1(X,X.gzhead.time>>8&255),s1(X,X.gzhead.time>>16&255),s1(X,X.gzhead.time>>24&255),s1(X,X.level===9?2:X.strategy>=fU||X.level<2?4:0),s1(X,X.gzhead.os&255),X.gzhead.extra&&X.gzhead.extra.length)s1(X,X.gzhead.extra.length&255),s1(X,X.gzhead.extra.length>>8&255);if(X.gzhead.hcrc)W.adler=i8(W.adler,X.pending_buf,X.pending,0);X.gzindex=0,X.status=vA}if(X.status===vA){if(X.gzhead.extra){let J=X.pending,Z=(X.gzhead.extra.length&65535)-X.gzindex;while(X.pending+Z>X.pending_buf_size){let U=X.pending_buf_size-X.pending;if(X.pending_buf.set(X.gzhead.extra.subarray(X.gzindex,X.gzindex+U),X.pending),X.pending=X.pending_buf_size,X.gzhead.hcrc&&X.pending>J)W.adler=i8(W.adler,X.pending_buf,X.pending-J,J);if(X.gzindex+=U,G5(W),X.pending!==0)return X.last_flush=-1,e8;J=0,Z-=U}let V=new Uint8Array(X.gzhead.extra);if(X.pending_buf.set(V.subarray(X.gzindex,X.gzindex+Z),X.pending),X.pending+=Z,X.gzhead.hcrc&&X.pending>J)W.adler=i8(W.adler,X.pending_buf,X.pending-J,J);X.gzindex=0}X.status=gA}if(X.status===gA){if(X.gzhead.name){let J=X.pending,Z;do{if(X.pending===X.pending_buf_size){if(X.gzhead.hcrc&&X.pending>J)W.adler=i8(W.adler,X.pending_buf,X.pending-J,J);if(G5(W),X.pending!==0)return X.last_flush=-1,e8;J=0}if(X.gzindex<X.gzhead.name.length)Z=X.gzhead.name.charCodeAt(X.gzindex++)&255;else Z=0;s1(X,Z)}while(Z!==0);if(X.gzhead.hcrc&&X.pending>J)W.adler=i8(W.adler,X.pending_buf,X.pending-J,J);X.gzindex=0}X.status=uA}if(X.status===uA){if(X.gzhead.comment){let J=X.pending,Z;do{if(X.pending===X.pending_buf_size){if(X.gzhead.hcrc&&X.pending>J)W.adler=i8(W.adler,X.pending_buf,X.pending-J,J);if(G5(W),X.pending!==0)return X.last_flush=-1,e8;J=0}if(X.gzindex<X.gzhead.comment.length)Z=X.gzhead.comment.charCodeAt(X.gzindex++)&255;else Z=0;s1(X,Z)}while(Z!==0);if(X.gzhead.hcrc&&X.pending>J)W.adler=i8(W.adler,X.pending_buf,X.pending-J,J)}X.status=hA}if(X.status===hA){if(X.gzhead.hcrc){if(X.pending+2>X.pending_buf_size){if(G5(W),X.pending!==0)return X.last_flush=-1,e8}s1(X,W.adler&255),s1(X,W.adler>>8&255),W.adler=0}if(X.status=zW,G5(W),X.pending!==0)return X.last_flush=-1,e8}if(W.avail_in!==0||X.lookahead!==0||G!==U6&&X.status!==AJ){let J=X.level===0?OC(X,G):X.strategy===fU?qv(X,G):X.strategy===oy?Nv(X,G):zJ[X.level].func(X,G);if(J===jW||J===eG)X.status=AJ;if(J===k9||J===jW){if(W.avail_out===0)X.last_flush=-1;return e8}if(J===tG){if(G===fy)my(X);else if(G!==RD){if(_A(X,0,0,!1),G===py){if(J6(X.head),X.lookahead===0)X.strstart=0,X.block_start=0,X.insert=0}}if(G5(W),W.avail_out===0)return X.last_flush=-1,e8}}if(G!==j5)return e8;if(X.wrap<=0)return PD;if(X.wrap===2)s1(X,W.adler&255),s1(X,W.adler>>8&255),s1(X,W.adler>>16&255),s1(X,W.adler>>24&255),s1(X,W.total_in&255),s1(X,W.total_in>>8&255),s1(X,W.total_in>>16&255),s1(X,W.total_in>>24&255);else HJ(X,W.adler>>>16),HJ(X,W.adler&65535);if(G5(W),X.wrap>0)X.wrap=-X.wrap;return X.pending!==0?e8:PD},jv=(W)=>{if(BJ(W))return H7;let G=W.state.status;return W.state=null,G===zW?IW(W,cy):e8},Kv=(W,G)=>{let X=G.length;if(BJ(W))return H7;let Y=W.state,J=Y.wrap;if(J===2||J===1&&Y.status!==rG||Y.lookahead)return H7;if(J===1)W.adler=TJ(W.adler,G,X,0);if(Y.wrap=0,X>=Y.w_size){if(J===0)J6(Y.head),Y.strstart=0,Y.block_start=0,Y.insert=0;let Q=new Uint8Array(Y.w_size);Q.set(G.subarray(X-Y.w_size,X),0),G=Q,X=Y.w_size}let{avail_in:Z,next_in:V,input:U}=W;W.avail_in=X,W.next_in=0,W.input=G,aG(Y);while(Y.lookahead>=b1){let Q=Y.strstart,N=Y.lookahead-(b1-1);do Y.ins_h=Q6(Y,Y.ins_h,Y.window[Q+b1-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=b1-1,aG(Y)}return Y.strstart+=Y.lookahead,Y.block_start=Y.strstart,Y.insert=Y.lookahead,Y.lookahead=0,Y.match_length=Y.prev_length=b1-1,Y.match_available=0,W.next_in=V,W.input=U,W.avail_in=Z,Y.wrap=J,e8},Ov=Iv,Dv=TC,Cv=CC,Tv=DC,Mv=zv,Rv=wv,Pv=jv,Lv=Kv,Bv="pako deflate (from Nodeca project)",wJ={deflateInit:Ov,deflateInit2:Dv,deflateReset:Cv,deflateResetKeep:Tv,deflateSetHeader:Mv,deflate:Rv,deflateEnd:Pv,deflateSetDictionary:Lv,deflateInfo:Bv},Ev=(W,G)=>{return Object.prototype.hasOwnProperty.call(W,G)},$v=function(W){let G=Array.prototype.slice.call(arguments,1);while(G.length){let X=G.shift();if(!X)continue;if(typeof X!=="object")throw TypeError(X+"must be non-object");for(let Y in X)if(Ev(X,Y))W[Y]=X[Y]}return W},Fv=(W)=>{let G=0;for(let Y=0,J=W.length;Y<J;Y++)G+=W[Y].length;let X=new Uint8Array(G);for(let Y=0,J=0,Z=W.length;Y<Z;Y++){let V=W[Y];X.set(V,J),J+=V.length}return X},sU={assign:$v,flattenChunks:Fv},MC=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(W){MC=!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 Sv=(W)=>{if(typeof TextEncoder==="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(W);let G,X,Y,J,Z,V=W.length,U=0;for(J=0;J<V;J++){if(X=W.charCodeAt(J),(X&64512)===55296&&J+1<V){if(Y=W.charCodeAt(J+1),(Y&64512)===56320)X=65536+(X-55296<<10)+(Y-56320),J++}U+=X<128?1:X<2048?2:X<65536?3:4}G=new Uint8Array(U);for(Z=0,J=0;Z<U;J++){if(X=W.charCodeAt(J),(X&64512)===55296&&J+1<V){if(Y=W.charCodeAt(J+1),(Y&64512)===56320)X=65536+(X-55296<<10)+(Y-56320),J++}if(X<128)G[Z++]=X;else if(X<2048)G[Z++]=192|X>>>6,G[Z++]=128|X&63;else if(X<65536)G[Z++]=224|X>>>12,G[Z++]=128|X>>>6&63,G[Z++]=128|X&63;else G[Z++]=240|X>>>18,G[Z++]=128|X>>>12&63,G[Z++]=128|X>>>6&63,G[Z++]=128|X&63}return G},xv=(W,G)=>{if(G<65534){if(W.subarray&&MC)return String.fromCharCode.apply(null,W.length===G?W:W.subarray(0,G))}let X="";for(let Y=0;Y<G;Y++)X+=String.fromCharCode(W[Y]);return X},kv=(W,G)=>{let X=G||W.length;if(typeof TextDecoder==="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(W.subarray(0,G));let Y,J,Z=Array(X*2);for(J=0,Y=0;Y<X;){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<X)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 xv(Z,J)},_v=(W,G)=>{if(G=G||W.length,G>W.length)G=W.length;let X=G-1;while(X>=0&&(W[X]&192)===128)X--;if(X<0)return G;if(X===0)return G;return X+MJ[W[X]]>G?X:G},RJ={string2buf:Sv,buf2string:kv,utf8border:_v};function yv(){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 RC=yv,PC=Object.prototype.toString,{Z_NO_FLUSH:vv,Z_SYNC_FLUSH:gv,Z_FULL_FLUSH:uv,Z_FINISH:hv,Z_OK:iU,Z_STREAM_END:bv,Z_DEFAULT_COMPRESSION:mv,Z_DEFAULT_STRATEGY:fv,Z_DEFLATED:pv}=OW;function EJ(W){this.options=sU.assign({level:mv,method:pv,chunkSize:16384,windowBits:15,memLevel:8,strategy:fv},W||{});let G=this.options;if(G.raw&&G.windowBits>0)G.windowBits=-G.windowBits;else if(G.gzip&&G.windowBits>0&&G.windowBits<16)G.windowBits+=16;this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new RC,this.strm.avail_out=0;let X=wJ.deflateInit2(this.strm,G.level,G.method,G.windowBits,G.memLevel,G.strategy);if(X!==iU)throw Error(wW[X]);if(G.header)wJ.deflateSetHeader(this.strm,G.header);if(G.dictionary){let Y;if(typeof G.dictionary==="string")Y=RJ.string2buf(G.dictionary);else if(PC.call(G.dictionary)==="[object ArrayBuffer]")Y=new Uint8Array(G.dictionary);else Y=G.dictionary;if(X=wJ.deflateSetDictionary(this.strm,Y),X!==iU)throw Error(wW[X]);this._dict_set=!0}}EJ.prototype.push=function(W,G){let X=this.strm,Y=this.options.chunkSize,J,Z;if(this.ended)return!1;if(G===~~G)Z=G;else Z=G===!0?hv:vv;if(typeof W==="string")X.input=RJ.string2buf(W);else if(PC.call(W)==="[object ArrayBuffer]")X.input=new Uint8Array(W);else X.input=W;X.next_in=0,X.avail_in=X.input.length;for(;;){if(X.avail_out===0)X.output=new Uint8Array(Y),X.next_out=0,X.avail_out=Y;if((Z===gv||Z===uv)&&X.avail_out<=6){this.onData(X.output.subarray(0,X.next_out)),X.avail_out=0;continue}if(J=wJ.deflate(X,Z),J===bv){if(X.next_out>0)this.onData(X.output.subarray(0,X.next_out));return J=wJ.deflateEnd(this.strm),this.onEnd(J),this.ended=!0,J===iU}if(X.avail_out===0){this.onData(X.output);continue}if(Z>0&&X.next_out>0){this.onData(X.output.subarray(0,X.next_out)),X.avail_out=0;continue}if(X.avail_in===0)break}return!0};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 dA(W,G){let X=new EJ(G);if(X.push(W,!0),X.err)throw X.msg||wW[X.err];return X.result}function cv(W,G){return G=G||{},G.raw=!0,dA(W,G)}function lv(W,G){return G=G||{},G.gzip=!0,dA(W,G)}var dv=EJ,ov=dA,nv=cv,iv=lv,rv=OW,av={Deflate:dv,deflate:ov,deflateRaw:nv,gzip:iv,constants:rv},pU=16209,sv=16191,tv=function(G,X){let Y,J,Z,V,U,Q,N,q,A,H,I,w,O,M,S,v,p,g,c,l,h,e,m,G0,H0=G.state;Y=G.next_in,m=G.input,J=Y+(G.avail_in-5),Z=G.next_out,G0=G.output,V=Z-(X-G.avail_out),U=Z+(G.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,M=H0.distcode,S=(1<<H0.lenbits)-1,v=(1<<H0.distbits)-1;W:do{if(w<15)I+=m[Y++]<<w,w+=8,I+=m[Y++]<<w,w+=8;p=O[I&S];G:for(;;){if(g=p>>>24,I>>>=g,w-=g,g=p>>>16&255,g===0)G0[Z++]=p&65535;else if(g&16){if(c=p&65535,g&=15,g){if(w<g)I+=m[Y++]<<w,w+=8;c+=I&(1<<g)-1,I>>>=g,w-=g}if(w<15)I+=m[Y++]<<w,w+=8,I+=m[Y++]<<w,w+=8;p=M[I&v];X:for(;;){if(g=p>>>24,I>>>=g,w-=g,g=p>>>16&255,g&16){if(l=p&65535,g&=15,w<g){if(I+=m[Y++]<<w,w+=8,w<g)I+=m[Y++]<<w,w+=8}if(l+=I&(1<<g)-1,l>Q){G.msg="invalid distance too far back",H0.mode=pU;break W}if(I>>>=g,w-=g,g=Z-V,l>g){if(g=l-g,g>q){if(H0.sane){G.msg="invalid distance too far back",H0.mode=pU;break W}}if(h=0,e=H,A===0){if(h+=N-g,g<c){c-=g;do G0[Z++]=H[h++];while(--g);h=Z-l,e=G0}}else if(A<g){if(h+=N+A-g,g-=A,g<c){c-=g;do G0[Z++]=H[h++];while(--g);if(h=0,A<c){g=A,c-=g;do G0[Z++]=H[h++];while(--g);h=Z-l,e=G0}}}else if(h+=A-g,g<c){c-=g;do G0[Z++]=H[h++];while(--g);h=Z-l,e=G0}while(c>2)G0[Z++]=e[h++],G0[Z++]=e[h++],G0[Z++]=e[h++],c-=3;if(c){if(G0[Z++]=e[h++],c>1)G0[Z++]=e[h++]}}else{h=Z-l;do G0[Z++]=G0[h++],G0[Z++]=G0[h++],G0[Z++]=G0[h++],c-=3;while(c>2);if(c){if(G0[Z++]=G0[h++],c>1)G0[Z++]=G0[h++]}}}else if((g&64)===0){p=M[(p&65535)+(I&(1<<g)-1)];continue X}else{G.msg="invalid distance code",H0.mode=pU;break W}break}}else if((g&64)===0){p=O[(p&65535)+(I&(1<<g)-1)];continue G}else if(g&32){H0.mode=sv;break W}else{G.msg="invalid literal/length code",H0.mode=pU;break W}break}}while(Y<J&&Z<U);c=w>>3,Y-=c,w-=c<<3,I&=(1<<w)-1,G.next_in=Y,G.next_out=Z,G.avail_in=Y<J?5+(J-Y):5-(Y-J),G.avail_out=Z<U?257+(U-Z):257-(Z-U),H0.hold=I,H0.bits=w;return},nG=15,BD=852,ED=592,$D=0,RA=1,FD=2,ev=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]),Wg=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]),Gg=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]),Xg=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]),Yg=(W,G,X,Y,J,Z,V,U)=>{let Q=U.bits,N=0,q=0,A=0,H=0,I=0,w=0,O=0,M=0,S=0,v=0,p,g,c,l,h,e=null,m,G0=new Uint16Array(nG+1),H0=new Uint16Array(nG+1),k=null,i,L,B;for(N=0;N<=nG;N++)G0[N]=0;for(q=0;q<Y;q++)G0[G[X+q]]++;I=Q;for(H=nG;H>=1;H--)if(G0[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(G0[A]!==0)break;if(I<A)I=A;M=1;for(N=1;N<=nG;N++)if(M<<=1,M-=G0[N],M<0)return-1;if(M>0&&(W===$D||H!==1))return-1;H0[1]=0;for(N=1;N<nG;N++)H0[N+1]=H0[N]+G0[N];for(q=0;q<Y;q++)if(G[X+q]!==0)V[H0[G[X+q]]++]=q;if(W===$D)e=k=V,m=20;else if(W===RA)e=ev,k=Wg,m=257;else e=Gg,k=Xg,m=0;if(v=0,q=0,N=A,h=Z,w=I,O=0,c=-1,S=1<<I,l=S-1,W===RA&&S>BD||W===FD&&S>ED)return 1;for(;;){if(i=N-O,V[q]+1<m)L=0,B=V[q];else if(V[q]>=m)L=k[V[q]-m],B=e[V[q]-m];else L=96,B=0;p=1<<N-O,g=1<<w,A=g;do g-=p,J[h+(v>>O)+g]=i<<24|L<<16|B|0;while(g!==0);p=1<<N-1;while(v&p)p>>=1;if(p!==0)v&=p-1,v+=p;else v=0;if(q++,--G0[N]===0){if(N===H)break;N=G[X+V[q]]}if(N>I&&(v&l)!==c){if(O===0)O=I;h+=A,w=N-O,M=1<<w;while(w+O<H){if(M-=G0[w+O],M<=0)break;w++,M<<=1}if(S+=1<<w,W===RA&&S>BD||W===FD&&S>ED)return 1;c=v&l,J[c]=I<<24|w<<16|h-Z|0}}if(v!==0)J[h+v]=N-O<<24|4194304|0;return U.bits=I,0},jJ=Yg,Jg=0,LC=1,BC=2,{Z_FINISH:SD,Z_BLOCK:Zg,Z_TREES:cU,Z_OK:KW,Z_STREAM_END:Vg,Z_NEED_DICT:Ug,Z_STREAM_ERROR:K5,Z_DATA_ERROR:EC,Z_MEM_ERROR:$C,Z_BUF_ERROR:Qg,Z_DEFLATED:xD}=OW,tU=16180,kD=16181,_D=16182,yD=16183,vD=16184,gD=16185,uD=16186,hD=16187,bD=16188,mD=16189,rU=16190,t7=16191,PA=16192,fD=16193,LA=16194,pD=16195,cD=16196,lD=16197,dD=16198,lU=16199,dU=16200,oD=16201,nD=16202,iD=16203,rD=16204,aD=16205,BA=16206,sD=16207,tD=16208,K8=16209,FC=16210,SC=16211,Ng=852,qg=592,Hg=15,Ag=Hg,eD=(W)=>{return(W>>>24&255)+(W>>>8&65280)+((W&65280)<<8)+((W&255)<<24)};function zg(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var DW=(W)=>{if(!W)return 1;let G=W.state;if(!G||G.strm!==W||G.mode<tU||G.mode>SC)return 1;return 0},xC=(W)=>{if(DW(W))return K5;let G=W.state;if(W.total_in=W.total_out=G.total=0,W.msg="",G.wrap)W.adler=G.wrap&1;return G.mode=tU,G.last=0,G.havedict=0,G.flags=-1,G.dmax=32768,G.head=null,G.hold=0,G.bits=0,G.lencode=G.lendyn=new Int32Array(Ng),G.distcode=G.distdyn=new Int32Array(qg),G.sane=1,G.back=-1,KW},kC=(W)=>{if(DW(W))return K5;let G=W.state;return G.wsize=0,G.whave=0,G.wnext=0,xC(W)},_C=(W,G)=>{let X;if(DW(W))return K5;let Y=W.state;if(G<0)X=0,G=-G;else if(X=(G>>4)+5,G<48)G&=15;if(G&&(G<8||G>15))return K5;if(Y.window!==null&&Y.wbits!==G)Y.window=null;return Y.wrap=X,Y.wbits=G,kC(W)},yC=(W,G)=>{if(!W)return K5;let X=new zg;W.state=X,X.strm=W,X.window=null,X.mode=tU;let Y=_C(W,G);if(Y!==KW)W.state=null;return Y},Ig=(W)=>{return yC(W,Ag)},WC=!0,EA,$A,wg=(W)=>{if(WC){EA=new Int32Array(512),$A=new Int32Array(32);let G=0;while(G<144)W.lens[G++]=8;while(G<256)W.lens[G++]=9;while(G<280)W.lens[G++]=7;while(G<288)W.lens[G++]=8;jJ(LC,W.lens,0,288,EA,0,W.work,{bits:9}),G=0;while(G<32)W.lens[G++]=5;jJ(BC,W.lens,0,32,$A,0,W.work,{bits:5}),WC=!1}W.lencode=EA,W.lenbits=9,W.distcode=$A,W.distbits=5},vC=(W,G,X,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(G.subarray(X-Z.wsize,X),0),Z.wnext=0,Z.whave=Z.wsize;else{if(J=Z.wsize-Z.wnext,J>Y)J=Y;if(Z.window.set(G.subarray(X-Y,X-Y+J),Z.wnext),Y-=J,Y)Z.window.set(G.subarray(X-Y,X),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},jg=(W,G)=>{let X,Y,J,Z,V,U,Q,N,q,A,H,I,w,O,M=0,S,v,p,g,c,l,h,e,m=new Uint8Array(4),G0,H0,k=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(DW(W)||!W.output||!W.input&&W.avail_in!==0)return K5;if(X=W.state,X.mode===t7)X.mode=PA;V=W.next_out,J=W.output,Q=W.avail_out,Z=W.next_in,Y=W.input,U=W.avail_in,N=X.hold,q=X.bits,A=U,H=Q,e=KW;W:for(;;)switch(X.mode){case tU:if(X.wrap===0){X.mode=PA;break}while(q<16){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(X.wrap&2&&N===35615){if(X.wbits===0)X.wbits=15;X.check=0,m[0]=N&255,m[1]=N>>>8&255,X.check=i8(X.check,m,2,0),N=0,q=0,X.mode=kD;break}if(X.head)X.head.done=!1;if(!(X.wrap&1)||(((N&255)<<8)+(N>>8))%31){W.msg="incorrect header check",X.mode=K8;break}if((N&15)!==xD){W.msg="unknown compression method",X.mode=K8;break}if(N>>>=4,q-=4,h=(N&15)+8,X.wbits===0)X.wbits=h;if(h>15||h>X.wbits){W.msg="invalid window size",X.mode=K8;break}X.dmax=1<<X.wbits,X.flags=0,W.adler=X.check=1,X.mode=N&512?mD:t7,N=0,q=0;break;case kD:while(q<16){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(X.flags=N,(X.flags&255)!==xD){W.msg="unknown compression method",X.mode=K8;break}if(X.flags&57344){W.msg="unknown header flags set",X.mode=K8;break}if(X.head)X.head.text=N>>8&1;if(X.flags&512&&X.wrap&4)m[0]=N&255,m[1]=N>>>8&255,X.check=i8(X.check,m,2,0);N=0,q=0,X.mode=_D;case _D:while(q<32){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(X.head)X.head.time=N;if(X.flags&512&&X.wrap&4)m[0]=N&255,m[1]=N>>>8&255,m[2]=N>>>16&255,m[3]=N>>>24&255,X.check=i8(X.check,m,4,0);N=0,q=0,X.mode=yD;case yD:while(q<16){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(X.head)X.head.xflags=N&255,X.head.os=N>>8;if(X.flags&512&&X.wrap&4)m[0]=N&255,m[1]=N>>>8&255,X.check=i8(X.check,m,2,0);N=0,q=0,X.mode=vD;case vD:if(X.flags&1024){while(q<16){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(X.length=N,X.head)X.head.extra_len=N;if(X.flags&512&&X.wrap&4)m[0]=N&255,m[1]=N>>>8&255,X.check=i8(X.check,m,2,0);N=0,q=0}else if(X.head)X.head.extra=null;X.mode=gD;case gD:if(X.flags&1024){if(I=X.length,I>U)I=U;if(I){if(X.head){if(h=X.head.extra_len-X.length,!X.head.extra)X.head.extra=new Uint8Array(X.head.extra_len);X.head.extra.set(Y.subarray(Z,Z+I),h)}if(X.flags&512&&X.wrap&4)X.check=i8(X.check,Y,I,Z);U-=I,Z+=I,X.length-=I}if(X.length)break W}X.length=0,X.mode=uD;case uD:if(X.flags&2048){if(U===0)break W;I=0;do if(h=Y[Z+I++],X.head&&h&&X.length<65536)X.head.name+=String.fromCharCode(h);while(h&&I<U);if(X.flags&512&&X.wrap&4)X.check=i8(X.check,Y,I,Z);if(U-=I,Z+=I,h)break W}else if(X.head)X.head.name=null;X.length=0,X.mode=hD;case hD:if(X.flags&4096){if(U===0)break W;I=0;do if(h=Y[Z+I++],X.head&&h&&X.length<65536)X.head.comment+=String.fromCharCode(h);while(h&&I<U);if(X.flags&512&&X.wrap&4)X.check=i8(X.check,Y,I,Z);if(U-=I,Z+=I,h)break W}else if(X.head)X.head.comment=null;X.mode=bD;case bD:if(X.flags&512){while(q<16){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(X.wrap&4&&N!==(X.check&65535)){W.msg="header crc mismatch",X.mode=K8;break}N=0,q=0}if(X.head)X.head.hcrc=X.flags>>9&1,X.head.done=!0;W.adler=X.check=0,X.mode=t7;break;case mD:while(q<32){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}W.adler=X.check=eD(N),N=0,q=0,X.mode=rU;case rU:if(X.havedict===0)return W.next_out=V,W.avail_out=Q,W.next_in=Z,W.avail_in=U,X.hold=N,X.bits=q,Ug;W.adler=X.check=1,X.mode=t7;case t7:if(G===Zg||G===cU)break W;case PA:if(X.last){N>>>=q&7,q-=q&7,X.mode=BA;break}while(q<3){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}switch(X.last=N&1,N>>>=1,q-=1,N&3){case 0:X.mode=fD;break;case 1:if(wg(X),X.mode=lU,G===cU){N>>>=2,q-=2;break W}break;case 2:X.mode=cD;break;case 3:W.msg="invalid block type",X.mode=K8}N>>>=2,q-=2;break;case fD: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",X.mode=K8;break}if(X.length=N&65535,N=0,q=0,X.mode=LA,G===cU)break W;case LA:X.mode=pD;case pD:if(I=X.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,X.length-=I;break}X.mode=t7;break;case cD:while(q<14){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(X.nlen=(N&31)+257,N>>>=5,q-=5,X.ndist=(N&31)+1,N>>>=5,q-=5,X.ncode=(N&15)+4,N>>>=4,q-=4,X.nlen>286||X.ndist>30){W.msg="too many length or distance symbols",X.mode=K8;break}X.have=0,X.mode=lD;case lD:while(X.have<X.ncode){while(q<3){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}X.lens[k[X.have++]]=N&7,N>>>=3,q-=3}while(X.have<19)X.lens[k[X.have++]]=0;if(X.lencode=X.lendyn,X.lenbits=7,G0={bits:X.lenbits},e=jJ(Jg,X.lens,0,19,X.lencode,0,X.work,G0),X.lenbits=G0.bits,e){W.msg="invalid code lengths set",X.mode=K8;break}X.have=0,X.mode=dD;case dD:while(X.have<X.nlen+X.ndist){for(;;){if(M=X.lencode[N&(1<<X.lenbits)-1],S=M>>>24,v=M>>>16&255,p=M&65535,S<=q)break;if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(p<16)N>>>=S,q-=S,X.lens[X.have++]=p;else{if(p===16){H0=S+2;while(q<H0){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(N>>>=S,q-=S,X.have===0){W.msg="invalid bit length repeat",X.mode=K8;break}h=X.lens[X.have-1],I=3+(N&3),N>>>=2,q-=2}else if(p===17){H0=S+3;while(q<H0){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}N>>>=S,q-=S,h=0,I=3+(N&7),N>>>=3,q-=3}else{H0=S+7;while(q<H0){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}N>>>=S,q-=S,h=0,I=11+(N&127),N>>>=7,q-=7}if(X.have+I>X.nlen+X.ndist){W.msg="invalid bit length repeat",X.mode=K8;break}while(I--)X.lens[X.have++]=h}}if(X.mode===K8)break;if(X.lens[256]===0){W.msg="invalid code -- missing end-of-block",X.mode=K8;break}if(X.lenbits=9,G0={bits:X.lenbits},e=jJ(LC,X.lens,0,X.nlen,X.lencode,0,X.work,G0),X.lenbits=G0.bits,e){W.msg="invalid literal/lengths set",X.mode=K8;break}if(X.distbits=6,X.distcode=X.distdyn,G0={bits:X.distbits},e=jJ(BC,X.lens,X.nlen,X.ndist,X.distcode,0,X.work,G0),X.distbits=G0.bits,e){W.msg="invalid distances set",X.mode=K8;break}if(X.mode=lU,G===cU)break W;case lU:X.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,X.hold=N,X.bits=q,tv(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=X.hold,q=X.bits,X.mode===t7)X.back=-1;break}X.back=0;for(;;){if(M=X.lencode[N&(1<<X.lenbits)-1],S=M>>>24,v=M>>>16&255,p=M&65535,S<=q)break;if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(v&&(v&240)===0){g=S,c=v,l=p;for(;;){if(M=X.lencode[l+((N&(1<<g+c)-1)>>g)],S=M>>>24,v=M>>>16&255,p=M&65535,g+S<=q)break;if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}N>>>=g,q-=g,X.back+=g}if(N>>>=S,q-=S,X.back+=S,X.length=p,v===0){X.mode=aD;break}if(v&32){X.back=-1,X.mode=t7;break}if(v&64){W.msg="invalid literal/length code",X.mode=K8;break}X.extra=v&15,X.mode=oD;case oD:if(X.extra){H0=X.extra;while(q<H0){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}X.length+=N&(1<<X.extra)-1,N>>>=X.extra,q-=X.extra,X.back+=X.extra}X.was=X.length,X.mode=nD;case nD:for(;;){if(M=X.distcode[N&(1<<X.distbits)-1],S=M>>>24,v=M>>>16&255,p=M&65535,S<=q)break;if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if((v&240)===0){g=S,c=v,l=p;for(;;){if(M=X.distcode[l+((N&(1<<g+c)-1)>>g)],S=M>>>24,v=M>>>16&255,p=M&65535,g+S<=q)break;if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}N>>>=g,q-=g,X.back+=g}if(N>>>=S,q-=S,X.back+=S,v&64){W.msg="invalid distance code",X.mode=K8;break}X.offset=p,X.extra=v&15,X.mode=iD;case iD:if(X.extra){H0=X.extra;while(q<H0){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}X.offset+=N&(1<<X.extra)-1,N>>>=X.extra,q-=X.extra,X.back+=X.extra}if(X.offset>X.dmax){W.msg="invalid distance too far back",X.mode=K8;break}X.mode=rD;case rD:if(Q===0)break W;if(I=H-Q,X.offset>I){if(I=X.offset-I,I>X.whave){if(X.sane){W.msg="invalid distance too far back",X.mode=K8;break}}if(I>X.wnext)I-=X.wnext,w=X.wsize-I;else w=X.wnext-I;if(I>X.length)I=X.length;O=X.window}else O=J,w=V-X.offset,I=X.length;if(I>Q)I=Q;Q-=I,X.length-=I;do J[V++]=O[w++];while(--I);if(X.length===0)X.mode=dU;break;case aD:if(Q===0)break W;J[V++]=X.length,Q--,X.mode=dU;break;case BA:if(X.wrap){while(q<32){if(U===0)break W;U--,N|=Y[Z++]<<q,q+=8}if(H-=Q,W.total_out+=H,X.total+=H,X.wrap&4&&H)W.adler=X.check=X.flags?i8(X.check,J,H,V-H):TJ(X.check,J,H,V-H);if(H=Q,X.wrap&4&&(X.flags?N:eD(N))!==X.check){W.msg="incorrect data check",X.mode=K8;break}N=0,q=0}X.mode=sD;case sD:if(X.wrap&&X.flags){while(q<32){if(U===0)break W;U--,N+=Y[Z++]<<q,q+=8}if(X.wrap&4&&N!==(X.total&4294967295)){W.msg="incorrect length check",X.mode=K8;break}N=0,q=0}X.mode=tD;case tD:e=Vg;break W;case K8:e=EC;break W;case FC:return $C;case SC:default:return K5}if(W.next_out=V,W.avail_out=Q,W.next_in=Z,W.avail_in=U,X.hold=N,X.bits=q,X.wsize||H!==W.avail_out&&X.mode<K8&&(X.mode<BA||G!==SD)){if(vC(W,W.output,W.next_out,H-W.avail_out));}if(A-=W.avail_in,H-=W.avail_out,W.total_in+=A,W.total_out+=H,X.total+=H,X.wrap&4&&H)W.adler=X.check=X.flags?i8(X.check,J,H,W.next_out-H):TJ(X.check,J,H,W.next_out-H);if(W.data_type=X.bits+(X.last?64:0)+(X.mode===t7?128:0)+(X.mode===lU||X.mode===LA?256:0),(A===0&&H===0||G===SD)&&e===KW)e=Qg;return e},Kg=(W)=>{if(DW(W))return K5;let G=W.state;if(G.window)G.window=null;return W.state=null,KW},Og=(W,G)=>{if(DW(W))return K5;let X=W.state;if((X.wrap&2)===0)return K5;return X.head=G,G.done=!1,KW},Dg=(W,G)=>{let X=G.length,Y,J,Z;if(DW(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,G,X,0),J!==Y.check)return EC}if(Z=vC(W,G,X,X),Z)return Y.mode=FC,$C;return Y.havedict=1,KW},Cg=kC,Tg=_C,Mg=xC,Rg=Ig,Pg=yC,Lg=jg,Bg=Kg,Eg=Og,$g=Dg,Fg="pako inflate (from Nodeca project)",W4={inflateReset:Cg,inflateReset2:Tg,inflateResetKeep:Mg,inflateInit:Rg,inflateInit2:Pg,inflate:Lg,inflateEnd:Bg,inflateGetHeader:Eg,inflateSetDictionary:$g,inflateInfo:Fg};function Sg(){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 xg=Sg,gC=Object.prototype.toString,{Z_NO_FLUSH:kg,Z_FINISH:_g,Z_OK:PJ,Z_STREAM_END:FA,Z_NEED_DICT:SA,Z_STREAM_ERROR:yg,Z_DATA_ERROR:GC,Z_MEM_ERROR:vg}=OW;function $J(W){this.options=sU.assign({chunkSize:65536,windowBits:15,to:""},W||{});let G=this.options;if(G.raw&&G.windowBits>=0&&G.windowBits<16){if(G.windowBits=-G.windowBits,G.windowBits===0)G.windowBits=-15}if(G.windowBits>=0&&G.windowBits<16&&!(W&&W.windowBits))G.windowBits+=32;if(G.windowBits>15&&G.windowBits<48){if((G.windowBits&15)===0)G.windowBits|=15}this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new RC,this.strm.avail_out=0;let X=W4.inflateInit2(this.strm,G.windowBits);if(X!==PJ)throw Error(wW[X]);if(this.header=new xg,W4.inflateGetHeader(this.strm,this.header),G.dictionary){if(typeof G.dictionary==="string")G.dictionary=RJ.string2buf(G.dictionary);else if(gC.call(G.dictionary)==="[object ArrayBuffer]")G.dictionary=new Uint8Array(G.dictionary);if(G.raw){if(X=W4.inflateSetDictionary(this.strm,G.dictionary),X!==PJ)throw Error(wW[X])}}}$J.prototype.push=function(W,G){let X=this.strm,Y=this.options.chunkSize,J=this.options.dictionary,Z,V,U;if(this.ended)return!1;if(G===~~G)V=G;else V=G===!0?_g:kg;if(gC.call(W)==="[object ArrayBuffer]")X.input=new Uint8Array(W);else X.input=W;X.next_in=0,X.avail_in=X.input.length;for(;;){if(X.avail_out===0)X.output=new Uint8Array(Y),X.next_out=0,X.avail_out=Y;if(Z=W4.inflate(X,V),Z===SA&&J){if(Z=W4.inflateSetDictionary(X,J),Z===PJ)Z=W4.inflate(X,V);else if(Z===GC)Z=SA}while(X.avail_in>0&&Z===FA&&X.state.wrap>0&&W[X.next_in]!==0)W4.inflateReset(X),Z=W4.inflate(X,V);switch(Z){case yg:case GC:case SA:case vg:return this.onEnd(Z),this.ended=!0,!1}if(U=X.avail_out,X.next_out){if(X.avail_out===0||Z===FA)if(this.options.to==="string"){let Q=RJ.utf8border(X.output,X.next_out),N=X.next_out-Q,q=RJ.buf2string(X.output,Q);if(X.next_out=N,X.avail_out=Y-N,N)X.output.set(X.output.subarray(Q,Q+N),0);this.onData(q)}else this.onData(X.output.length===X.next_out?X.output:X.output.subarray(0,X.next_out))}if(Z===PJ&&U===0)continue;if(Z===FA)return Z=W4.inflateEnd(this.strm),this.onEnd(Z),this.ended=!0,!0;if(X.avail_in===0)break}return!0};$J.prototype.onData=function(W){this.chunks.push(W)};$J.prototype.onEnd=function(W){if(W===PJ)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 oA(W,G){let X=new $J(G);if(X.push(W),X.err)throw X.msg||wW[X.err];return X.result}function gg(W,G){return G=G||{},G.raw=!0,oA(W,G)}var ug=$J,hg=oA,bg=gg,mg=oA,fg=OW,pg={Inflate:ug,inflate:hg,inflateRaw:bg,ungzip:mg,constants:fg},{Deflate:cg,deflate:lg,deflateRaw:dg,gzip:og}=av,{Inflate:ng,inflate:ig,inflateRaw:rg,ungzip:ag}=pg,sg=cg,tg=lg,eg=dg,Wu=og,Gu=ng,Xu=ig,Yu=rg,Ju=ag,Zu=OW,WX={Deflate:sg,deflate:tg,deflateRaw:eg,gzip:Wu,Inflate:Gu,inflate:Xu,inflateRaw:Yu,ungzip:Ju,constants:Zu};function uC(){let W=Date.now(),G=0;return{now(){return W=Math.max(W,Date.now()),G++,{physical:W,logical:G}},update(X){if(!X||typeof X.physical!=="number"||typeof X.logical!=="number")return;W=Math.max(W,X.physical),G=Math.max(G,X.logical)+1},compare(X,Y){if(!X&&!Y)return 0;if(!X)return-1;if(!Y)return 1;if(X.physical!==Y.physical)return X.physical>Y.physical?1:-1;if(X.logical!==Y.logical)return X.logical>Y.logical?1:-1;return 0}}}function hC(W,G,X){let Y=G.timestamp;if(Y?.physical>Date.now()+7200000)Y={physical:Date.now()+7200000,logical:Y.logical};if(G?.value?.priority===!0&&typeof G.id==="string"&&G.id.startsWith("user:")&&"role"in G.value){let{priority:Z,...V}=G.value;return{resolved:!0,value:V,timestamp:Y}}if(G?.value?.priority!==void 0){let{priority:Z,...V}=G.value;G={...G,value:V}}if(!W?.timestamp)return{resolved:!0,value:G.value,timestamp:Y};let J=X.compare(Y,W.timestamp);if(J<0)return{resolved:!1};if(J===0&&JSON.stringify(G.value)<=JSON.stringify(W.value))return{resolved:!1};return{resolved:!0,value:G.value,timestamp:Y}}var FJ={$eq:(W,G)=>W===G,$ne:(W,G)=>W!==G,$gt:(W,G)=>W>G,$gte:(W,G)=>W>=G,$lt:(W,G)=>W<G,$lte:(W,G)=>W<=G,$in:(W,G)=>Array.isArray(G)&&(Array.isArray(W)?W.some((X)=>G.includes(X)):G.includes(W)),$between:(W,[G,X])=>W>=G&&W<=X,$exists:(W,G)=>G?W!==void 0:W===void 0,$startsWith:(W,G)=>typeof W==="string"&&W.startsWith(G),$endsWith:(W,G)=>typeof W==="string"&&W.endsWith(G),$contains:(W,G)=>typeof W==="string"&&W.includes(G),$text:{global:(W,G)=>{let X=(J)=>String(J).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),Y=X(G);return Object.values(W).some((J)=>typeof J==="object"?null.fieldSearch(J,Y):X(J).includes(Y))},field:(W,G)=>{let X=(J)=>String(J).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),Y=X(G);return Array.isArray(W)?W.some((J)=>X(J).includes(Y)):X(W).includes(Y)}},$like:(W,G)=>typeof W==="string"&&typeof G==="string"&&new RegExp(`^${G.replace(/%/g,".*").replace(/_/g,".")}$`,"i").test(W),$regex:(W,G)=>typeof W==="string"&&new RegExp(G.$regex||G,"i").test(W),$and:(W,G,X)=>G.every((Y)=>X.createFilter(Y,X.allNodes)(W)),$or:(W,G,X)=>G.some((Y)=>X.createFilter(Y,X.allNodes)(W)),$not:(W,G,X)=>!X.createFilter(G,X.allNodes)(W),$edge:(W,G,X)=>{if(!W.edges?.length||typeof G!=="object"||G===null)return!1;let Y=X.createFilter(G,X.allNodes),J=[...W.edges],Z=new Set(J).add(W.id),V=[];while(J.length){let U=J.shift(),Q=X.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,G)=>G.split(".").reduce((X,Y)=>X&&typeof X==="object"&&(Y in X)?X[Y]:void 0,W),WQ=(W,G)=>{if(Object.keys(W).length===0)return()=>!0;return(X)=>Object.entries(W).every(([Y,J])=>{if(Y.startsWith("$"))return FJ[Y](X,J,{createFilter:WQ,allNodes:G});let Z=eU(X.value,Y);if(Z===void 0)Z=eU(X,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:G})??!1})})},nA=(W,G)=>{let{$edge:X,...Y}=G.query||{},J=WQ(Y,W),Z=Object.values(W).filter(J),U=[...X?(()=>{let Q=WQ({$edge:X},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(G.field){let Q=G.order==="asc"?1:-1;U.sort((N,q)=>{let A=eU(N.value,G.field),H=eU(q.value,G.field);if(typeof A==="string"&&typeof H==="string")return A.localeCompare(H)*Q;return((A??0)-(H??0))*Q})}if(G.$after){let Q=U.findIndex((N)=>N.id===G.$after);U=Q>=0?U.slice(Q+1):[]}if(G.$before){let Q=U.findIndex((N)=>N.id===G.$before);U=Q>=0?U.slice(0,Q):[]}if(G.$limit)U=U.slice(0,G.$limit);return U};var JX=(()=>{let W=()=>{};return new Proxy(console,{get:(G,X)=>globalThis.__gdbDebug?G[X].bind(G):W})})(),GX=typeof globalThis==="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function MQ(W){return W instanceof Uint8Array||ArrayBuffer.isView(W)&&W.constructor.name==="Uint8Array"}function Zz(W){if(!Number.isSafeInteger(W)||W<0)throw Error("positive integer expected, got "+W)}function LW(W,...G){if(!MQ(W))throw Error("Uint8Array expected");if(G.length>0&&!G.includes(W.length))throw Error("Uint8Array expected of length "+G+", got length="+W.length)}function ZT(W){if(typeof W!=="function"||typeof W.create!=="function")throw Error("Hash should be wrapped by utils.createHasher");Zz(W.outputLen),Zz(W.blockLen)}function AQ(W,G=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(G&&W.finished)throw Error("Hash#digest() has already been called")}function Vu(W,G){LW(W);let X=G.outputLen;if(W.length<X)throw Error("digestInto() expects output buffer of length at least "+X)}function zQ(...W){for(let G=0;G<W.length;G++)W[G].fill(0)}function iA(W){return new DataView(W.buffer,W.byteOffset,W.byteLength)}function z7(W,G){return W<<32-G|W>>>G}var VT=(()=>typeof Uint8Array.from([]).toHex==="function"&&typeof Uint8Array.fromHex==="function")(),Uu=Array.from({length:256},(W,G)=>G.toString(16).padStart(2,"0"));function ZX(W){if(LW(W),VT)return W.toHex();let G="";for(let X=0;X<W.length;X++)G+=Uu[W[X]];return G}var G4={_0:48,_9:57,A:65,F:70,a:97,f:102};function bC(W){if(W>=G4._0&&W<=G4._9)return W-G4._0;if(W>=G4.A&&W<=G4.F)return W-(G4.A-10);if(W>=G4.a&&W<=G4.f)return W-(G4.a-10);return}function IQ(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);if(VT)return Uint8Array.fromHex(W);let G=W.length,X=G/2;if(G%2)throw Error("hex string expected, got unpadded hex of length "+G);let Y=new Uint8Array(X);for(let J=0,Z=0;J<X;J++,Z+=2){let V=bC(W.charCodeAt(Z)),U=bC(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 UT(W){if(typeof W!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(W))}function zz(W){if(typeof W==="string")W=UT(W);return LW(W),W}function w7(...W){let G=0;for(let Y=0;Y<W.length;Y++){let J=W[Y];LW(J),G+=J.length}let X=new Uint8Array(G);for(let Y=0,J=0;Y<W.length;Y++){let Z=W[Y];X.set(Z,J),J+=Z.length}return X}class Iz{}function Qu(W){let G=(Y)=>W().update(zz(Y)).digest(),X=W();return G.outputLen=X.outputLen,G.blockLen=X.blockLen,G.create=()=>W(),G}function RQ(W=32){if(GX&&typeof GX.getRandomValues==="function")return GX.getRandomValues(new Uint8Array(W));if(GX&&typeof GX.randomBytes==="function")return Uint8Array.from(GX.randomBytes(W));throw Error("crypto.getRandomValues must be defined")}function Nu(W,G,X,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(G,X,Y);let J=BigInt(32),Z=BigInt(4294967295),V=Number(X>>J&Z),U=Number(X&Z),Q=Y?4:0,N=Y?0:4;W.setUint32(G+Q,V,Y),W.setUint32(G+N,U,Y)}function qu(W,G,X){return W&G^~W&X}function Hu(W,G,X){return W&G^W&X^G&X}class QT extends Iz{constructor(W,G,X,Y){super();this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=W,this.outputLen=G,this.padOffset=X,this.isLE=Y,this.buffer=new Uint8Array(W),this.view=iA(this.buffer)}update(W){AQ(this),W=zz(W),LW(W);let{view:G,buffer:X,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=iA(W);for(;Y<=J-Z;Z+=Y)this.process(U,Z);continue}if(X.set(W.subarray(Z,Z+V),this.pos),this.pos+=V,Z+=V,this.pos===Y)this.process(G,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){AQ(this),Vu(W,this),this.finished=!0;let{buffer:G,view:X,blockLen:Y,isLE:J}=this,{pos:Z}=this;if(G[Z++]=128,zQ(this.buffer.subarray(Z)),this.padOffset>Y-Z)this.process(X,0),Z=0;for(let q=Z;q<Y;q++)G[q]=0;Nu(X,Y-8,BigInt(this.length*8),J),this.process(X,0);let V=iA(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:G}=this;this.digestInto(W);let X=W.slice(0,G);return this.destroy(),X}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:G,buffer:X,length:Y,finished:J,destroyed:Z,pos:V}=this;if(W.destroyed=Z,W.finished=J,W.length=Y,W.pos=V,Y%G)W.buffer.set(X);return W}clone(){return this._cloneInto()}}var N6=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Au=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]),q6=new Uint32Array(64);class NT extends QT{constructor(W=32){super(64,W,8,!1);this.A=N6[0]|0,this.B=N6[1]|0,this.C=N6[2]|0,this.D=N6[3]|0,this.E=N6[4]|0,this.F=N6[5]|0,this.G=N6[6]|0,this.H=N6[7]|0}get(){let{A:W,B:G,C:X,D:Y,E:J,F:Z,G:V,H:U}=this;return[W,G,X,Y,J,Z,V,U]}set(W,G,X,Y,J,Z,V,U){this.A=W|0,this.B=G|0,this.C=X|0,this.D=Y|0,this.E=J|0,this.F=Z|0,this.G=V|0,this.H=U|0}process(W,G){for(let q=0;q<16;q++,G+=4)q6[q]=W.getUint32(G,!1);for(let q=16;q<64;q++){let A=q6[q-15],H=q6[q-2],I=z7(A,7)^z7(A,18)^A>>>3,w=z7(H,17)^z7(H,19)^H>>>10;q6[q]=w+q6[q-7]+I+q6[q-16]|0}let{A:X,B:Y,C:J,D:Z,E:V,F:U,G:Q,H:N}=this;for(let q=0;q<64;q++){let A=z7(V,6)^z7(V,11)^z7(V,25),H=N+A+qu(V,U,Q)+Au[q]+q6[q]|0,I=(z7(X,2)^z7(X,13)^z7(X,22))+Hu(X,Y,J)|0;N=Q,Q=U,U=V,V=Z+H|0,Z=J,J=Y,Y=X,X=H+I|0}X=X+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(X,Y,J,Z,V,U,Q,N)}roundClean(){zQ(q6)}destroy(){this.set(0,0,0,0,0,0,0,0),zQ(this.buffer)}}var Vz=Qu(()=>new NT);class wz extends Iz{constructor(W,G){super();this.finished=!1,this.destroyed=!1,ZT(W);let X=zz(G);if(this.iHash=W.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let Y=this.blockLen,J=new Uint8Array(Y);J.set(X.length>Y?W.create().update(X).digest():X);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:G,iHash:X,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=G._cloneInto(W.oHash),W.iHash=X._cloneInto(W.iHash),W}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var qT=(W,G,X)=>new wz(W,G).update(X).digest();qT.create=(W,G)=>new wz(W,G);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var jz=BigInt(0),Uz=BigInt(1);function wQ(W,G=""){if(typeof W!=="boolean"){let X=G&&`"${G}"`;throw Error(X+"expected boolean, got type="+typeof W)}return W}function CW(W,G,X=""){let Y=MQ(W),J=W?.length,Z=G!==void 0;if(!Y||Z&&J!==G){let V=X&&`"${X}" `,U=Z?` of length ${G}`:"",Q=Y?`length=${J}`:`type=${typeof W}`;throw Error(V+"expected Uint8Array"+U+", got "+Q)}return W}function GQ(W){let G=W.toString(16);return G.length&1?"0"+G:G}function HT(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return W===""?jz:BigInt("0x"+W)}function qX(W){return HT(ZX(W))}function AT(W){return LW(W),HT(ZX(Uint8Array.from(W).reverse()))}function PQ(W,G){return IQ(W.toString(16).padStart(G*2,"0"))}function zT(W,G){return PQ(W,G).reverse()}function m8(W,G,X){let Y;if(typeof G==="string")try{Y=IQ(G)}catch(Z){throw Error(W+" must be hex string or Uint8Array, cause: "+Z)}else if(MQ(G))Y=Uint8Array.from(G);else throw Error(W+" must be hex string or Uint8Array");let J=Y.length;if(typeof X==="number"&&J!==X)throw Error(W+" of length "+X+" expected, got "+J);return Y}var rA=(W)=>typeof W==="bigint"&&jz<=W;function Qz(W,G,X){return rA(W)&&rA(G)&&rA(X)&&G<=W&&W<X}function zu(W,G,X,Y){if(!Qz(G,X,Y))throw Error("expected valid "+W+": "+X+" <= n < "+Y+", got "+G)}function IT(W){let G;for(G=0;W>jz;W>>=Uz,G+=1);return G}var hJ=(W)=>(Uz<<BigInt(W))-Uz;function Iu(W,G,X){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof G!=="number"||G<2)throw Error("qByteLen must be a number");if(typeof X!=="function")throw Error("hmacFn must be a function");let Y=(H)=>new Uint8Array(H),J=(H)=>Uint8Array.of(H),Z=Y(W),V=Y(W),U=0,Q=()=>{Z.fill(1),V.fill(0),U=0},N=(...H)=>X(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<G){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 Kz(W,G,X={}){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(G).forEach(([J,Z])=>Y(J,Z,!1)),Object.entries(X).forEach(([J,Z])=>Y(J,Z,!0))}function mC(W){let G=new WeakMap;return(X,...Y)=>{let J=G.get(X);if(J!==void 0)return J;let Z=W(X,...Y);return G.set(X,Z),Z}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var _9=BigInt(0),I9=BigInt(1),TW=BigInt(2),wT=BigInt(3),jT=BigInt(4),KT=BigInt(5),wu=BigInt(7),OT=BigInt(8),ju=BigInt(9),DT=BigInt(16);function C5(W,G){let X=W%G;return X>=_9?X:G+X}function O5(W,G,X){let Y=W;while(G-- >_9)Y*=Y,Y%=X;return Y}function fC(W,G){if(W===_9)throw Error("invert: expected non-zero number");if(G<=_9)throw Error("invert: expected positive modulus, got "+G);let X=C5(W,G),Y=G,J=_9,Z=I9,V=I9,U=_9;while(X!==_9){let Q=Y/X,N=Y%X,q=J-V*Q,A=Z-U*Q;Y=X,X=N,J=V,Z=U,V=q,U=A}if(Y!==I9)throw Error("invert: does not exist");return C5(J,G)}function Oz(W,G,X){if(!W.eql(W.sqr(G),X))throw Error("Cannot find square root")}function CT(W,G){let X=(W.ORDER+I9)/jT,Y=W.pow(G,X);return Oz(W,Y,G),Y}function Ku(W,G){let X=(W.ORDER-KT)/OT,Y=W.mul(G,TW),J=W.pow(Y,X),Z=W.mul(G,J),V=W.mul(W.mul(Z,TW),J),U=W.mul(Z,W.sub(V,W.ONE));return Oz(W,U,G),U}function Ou(W){let G=bJ(W),X=TT(W),Y=X(G,G.neg(G.ONE)),J=X(G,Y),Z=X(G,G.neg(Y)),V=(W+wu)/DT;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),M=U.cmov(N,q,O);return Oz(U,M,Q),M}}function TT(W){if(W<wT)throw Error("sqrt is not defined for small field");let G=W-I9,X=0;while(G%TW===_9)G/=TW,X++;let Y=TW,J=bJ(W);while(pC(J,Y)===1)if(Y++>1000)throw Error("Cannot find square root: probably non-prime P");if(X===1)return CT;let Z=J.pow(Y,G),V=(G+I9)/TW;return function(U,Q){if(U.is0(Q))return Q;if(pC(U,Q)!==1)throw Error("Cannot find square root");let N=X,q=U.mul(U.ONE,Z),A=U.pow(Q,G),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),M=U.pow(q,O);N=I,q=U.sqr(M),A=U.mul(A,q),H=U.mul(H,M)}return H}}function Du(W){if(W%jT===wT)return CT;if(W%OT===KT)return Ku;if(W%DT===ju)return Ou(W);return TT(W)}var Cu=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Tu(W){let G={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},X=Cu.reduce((Y,J)=>{return Y[J]="function",Y},G);return Kz(W,X),W}function Mu(W,G,X){if(X<_9)throw Error("invalid exponent, negatives unsupported");if(X===_9)return W.ONE;if(X===I9)return G;let Y=W.ONE,J=G;while(X>_9){if(X&I9)Y=W.mul(Y,J);J=W.sqr(J),X>>=I9}return Y}function MT(W,G,X=!1){let Y=Array(G.length).fill(X?W.ZERO:void 0),J=G.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 G.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 pC(W,G){let X=(W.ORDER-I9)/TW,Y=W.pow(G,X),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 RT(W,G){if(G!==void 0)Zz(G);let X=G!==void 0?G:W.toString(2).length,Y=Math.ceil(X/8);return{nBitLength:X,nByteLength:Y}}function bJ(W,G,X=!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 G==="object"&&G!=null){if(Y.sqrt||X)throw Error("cannot specify opts in two arguments");let H=G;if(H.BITS)J=H.BITS;if(H.sqrt)Z=H.sqrt;if(typeof H.isLE==="boolean")X=H.isLE;if(typeof H.modFromBytes==="boolean")V=H.modFromBytes;U=H.allowedLengths}else{if(typeof G==="number")J=G;if(Y.sqrt)Z=Y.sqrt}let{nBitLength:Q,nByteLength:N}=RT(W,J);if(N>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let q,A=Object.freeze({ORDER:W,isLE:X,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)=>Mu(A,H,I),div:(H,I)=>C5(H*fC(I,W),W),sqrN:(H)=>H*H,addN:(H,I)=>H+I,subN:(H,I)=>H-I,mulN:(H,I)=>H*I,inv:(H)=>fC(H,W),sqrt:Z||((H)=>{if(!q)q=Du(W);return q(A,H)}),toBytes:(H)=>X?zT(H,N):PQ(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,X?0:O.length-H.length),H=O}if(H.length!==N)throw Error("Field.fromBytes: expected "+N+" bytes, got "+H.length);let w=X?AT(H):qX(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)=>MT(A,H),cmov:(H,I,w)=>w?I:H});return Object.freeze(A)}function PT(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let G=W.toString(2).length;return Math.ceil(G/8)}function LT(W){let G=PT(W);return G+Math.ceil(G/2)}function BT(W,G,X=!1){let Y=W.length,J=PT(G),Z=LT(G);if(Y<16||Y<Z||Y>1024)throw Error("expected "+Z+"-1024 bytes of input, got "+Y);let V=X?AT(W):qX(W),U=C5(V,G-I9)+I9;return X?zT(U,J):PQ(U,J)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var QX=BigInt(0),MW=BigInt(1);function jQ(W,G){let X=G.negate();return W?X:G}function aA(W,G){let X=MT(W.Fp,G.map((Y)=>Y.Z));return G.map((Y,J)=>W.fromAffine(Y.toAffine(X[J])))}function ET(W,G){if(!Number.isSafeInteger(W)||W<=0||W>G)throw Error("invalid window size, expected [1.."+G+"], got W="+W)}function sA(W,G){ET(W,G);let X=Math.ceil(G/W)+1,Y=2**(W-1),J=2**W,Z=hJ(W),V=BigInt(W);return{windows:X,windowSize:Y,mask:Z,maxNumber:J,shiftBy:V}}function cC(W,G,X){let{windowSize:Y,mask:J,maxNumber:Z,shiftBy:V}=X,U=Number(W&J),Q=W>>V;if(U>Y)U-=Z,Q+=MW;let N=G*Y,q=N+Math.abs(U)-1,A=U===0,H=U<0,I=G%2!==0;return{nextN:Q,offset:q,isZero:A,isNeg:H,isNegF:I,offsetF:N}}function Ru(W,G){if(!Array.isArray(W))throw Error("array expected");W.forEach((X,Y)=>{if(!(X instanceof G))throw Error("invalid point at index "+Y)})}function Pu(W,G){if(!Array.isArray(W))throw Error("array of scalars expected");W.forEach((X,Y)=>{if(!G.isValid(X))throw Error("invalid scalar at index "+Y)})}var tA=new WeakMap,$T=new WeakMap;function eA(W){return $T.get(W)||1}function lC(W){if(W!==QX)throw Error("invalid wNAF")}class FT{constructor(W,G){this.BASE=W.BASE,this.ZERO=W.ZERO,this.Fn=W.Fn,this.bits=G}_unsafeLadder(W,G,X=this.ZERO){let Y=W;while(G>QX){if(G&MW)X=X.add(Y);Y=Y.double(),G>>=MW}return X}precomputeWindow(W,G){let{windows:X,windowSize:Y}=sA(G,this.bits),J=[],Z=W,V=Z;for(let U=0;U<X;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,G,X){if(!this.Fn.isValid(X))throw Error("invalid scalar");let Y=this.ZERO,J=this.BASE,Z=sA(W,this.bits);for(let V=0;V<Z.windows;V++){let{nextN:U,offset:Q,isZero:N,isNeg:q,isNegF:A,offsetF:H}=cC(X,V,Z);if(X=U,N)J=J.add(jQ(A,G[H]));else Y=Y.add(jQ(q,G[Q]))}return lC(X),{p:Y,f:J}}wNAFUnsafe(W,G,X,Y=this.ZERO){let J=sA(W,this.bits);for(let Z=0;Z<J.windows;Z++){if(X===QX)break;let{nextN:V,offset:U,isZero:Q,isNeg:N}=cC(X,Z,J);if(X=V,Q)continue;else{let q=G[U];Y=Y.add(N?q.negate():q)}}return lC(X),Y}getPrecomputes(W,G,X){let Y=tA.get(G);if(!Y){if(Y=this.precomputeWindow(G,W),W!==1){if(typeof X==="function")Y=X(Y);tA.set(G,Y)}}return Y}cached(W,G,X){let Y=eA(W);return this.wNAF(Y,this.getPrecomputes(Y,W,X),G)}unsafe(W,G,X,Y){let J=eA(W);if(J===1)return this._unsafeLadder(W,G,Y);return this.wNAFUnsafe(J,this.getPrecomputes(J,W,X),G,Y)}createCache(W,G){ET(G,this.bits),$T.set(W,G),tA.delete(W)}hasCache(W){return eA(W)!==1}}function Lu(W,G,X,Y){let J=G,Z=W.ZERO,V=W.ZERO;while(X>QX||Y>QX){if(X&MW)Z=Z.add(J);if(Y&MW)V=V.add(J);J=J.double(),X>>=MW,Y>>=MW}return{p1:Z,p2:V}}function Bu(W,G,X,Y){Ru(X,W),Pu(Y,G);let J=X.length,Z=Y.length;if(J!==Z)throw Error("arrays of points and scalars must have equal length");let V=W.ZERO,U=IT(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((G.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 M=Y[O],S=Number(M>>BigInt(I)&N);q[S]=q[S].add(X[O])}let w=V;for(let O=q.length-1,M=V;O>0;O--)M=M.add(q[O]),w=w.add(M);if(H=H.add(w),I!==0)for(let O=0;O<Q;O++)H=H.double()}return H}function dC(W,G,X){if(G){if(G.ORDER!==W)throw Error("Field.ORDER must match order: Fp == p, Fn == n");return Tu(G),G}else return bJ(W,{isLE:X})}function Eu(W,G,X={},Y){if(Y===void 0)Y=W==="edwards";if(!G||typeof G!=="object")throw Error(`expected valid ${W} CURVE object`);for(let U of["p","n","h"]){let Q=G[U];if(!(typeof Q==="bigint"&&Q>QX))throw Error(`CURVE.${U} must be positive bigint`)}let J=dC(G.p,X.Fp,Y),Z=dC(G.n,X.Fn,Y),V=["Gx","Gy","a",W==="weierstrass"?"b":"d"];for(let U of V)if(!J.isValid(G[U]))throw Error(`CURVE.${U} must be valid field element of CURVE.Fp`);return G=Object.freeze(Object.assign({},G)),{CURVE:G,Fp:J,Fn:Z}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var oC=(W,G)=>(W+(W>=0?G:-G)/xT)/G;function $u(W,G,X){let[[Y,J],[Z,V]]=G,U=oC(V*W,X),Q=oC(-J*W,X),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(IT(X)/2))+VX;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 Nz(W){if(!["compact","recovered","der"].includes(W))throw Error('Signature format must be "compact", "recovered", or "der"');return W}function Wz(W,G){let X={};for(let Y of Object.keys(G))X[Y]=W[Y]===void 0?G[Y]:W[Y];if(wQ(X.lowS,"lowS"),wQ(X.prehash,"prehash"),X.format!==void 0)Nz(X.format);return X}class ST extends Error{constructor(W=""){super(W)}}var X4={Err:ST,_tlv:{encode:(W,G)=>{let{Err:X}=X4;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length&1)throw new X("tlv.encode: unpadded data");let Y=G.length/2,J=GQ(Y);if(J.length/2&128)throw new X("tlv.encode: long form length too big");let Z=Y>127?GQ(J.length/2|128):"";return GQ(W)+Z+J+G},decode(W,G){let{Err:X}=X4,Y=0;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length<2||G[Y++]!==W)throw new X("tlv.decode: wrong tlv");let J=G[Y++],Z=!!(J&128),V=0;if(!Z)V=J;else{let Q=J&127;if(!Q)throw new X("tlv.decode(long): indefinite length not supported");if(Q>4)throw new X("tlv.decode(long): byte length is too big");let N=G.subarray(Y,Y+Q);if(N.length!==Q)throw new X("tlv.decode: length bytes not complete");if(N[0]===0)throw new X("tlv.decode(long): zero leftmost byte");for(let q of N)V=V<<8|q;if(Y+=Q,V<128)throw new X("tlv.decode(long): not minimal encoding")}let U=G.subarray(Y,Y+V);if(U.length!==V)throw new X("tlv.decode: wrong value length");return{v:U,l:G.subarray(Y+V)}}},_int:{encode(W){let{Err:G}=X4;if(W<Y4)throw new G("integer: negative integers are not allowed");let X=GQ(W);if(Number.parseInt(X[0],16)&8)X="00"+X;if(X.length&1)throw new G("unexpected DER parsing assertion: unpadded hex");return X},decode(W){let{Err:G}=X4;if(W[0]&128)throw new G("invalid signature integer: negative");if(W[0]===0&&!(W[1]&128))throw new G("invalid signature integer: unnecessary leading zero");return qX(W)}},toSig(W){let{Err:G,_int:X,_tlv:Y}=X4,J=m8("signature",W),{v:Z,l:V}=Y.decode(48,J);if(V.length)throw new G("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 G("invalid signature: left bytes after parsing");return{r:X.decode(U),s:X.decode(N)}},hexFromSig(W){let{_tlv:G,_int:X}=X4,Y=G.encode(2,X.encode(W.r)),J=G.encode(2,X.encode(W.s)),Z=Y+J;return G.encode(48,Z)}},Y4=BigInt(0),VX=BigInt(1),xT=BigInt(2),XQ=BigInt(3),Fu=BigInt(4);function RW(W,G){let{BYTES:X}=W,Y;if(typeof G==="bigint")Y=G;else{let J=m8("private key",G);try{Y=W.fromBytes(J)}catch(Z){throw Error(`invalid private key: expected ui8a of size ${X}, got ${typeof G}`)}}if(!W.isValidNot0(Y))throw Error("invalid private key: out of range [1..N-1]");return Y}function Su(W,G={}){let X=Eu("weierstrass",W,G),{Fp:Y,Fn:J}=X,Z=X.CURVE,{h:V,n:U}=Z;Kz(G,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:Q}=G;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=_T(Y,J);function q(){if(!Y.isOdd)throw Error("compression is not supported: Field does not have .isOdd()")}function A(k,i,L){let{x:B,y:b}=i.toAffine(),s=Y.toBytes(B);if(wQ(L,"isCompressed"),L){q();let o=!Y.isOdd(b);return w7(kT(o),s)}else return w7(Uint8Array.of(4),s,Y.toBytes(b))}function H(k){CW(k,void 0,"Point");let{publicKey:i,publicKeyUncompressed:L}=N,B=k.length,b=k[0],s=k.subarray(1);if(B===i&&(b===2||b===3)){let o=Y.fromBytes(s);if(!Y.isValid(o))throw Error("bad point: is not on curve, wrong x");let E=O(o),$;try{$=Y.sqrt(E)}catch(x){let R=x instanceof Error?": "+x.message:"";throw Error("bad point: is not on curve, sqrt error"+R)}q();let _=Y.isOdd($);if((b&1)===1!==_)$=Y.neg($);return{x:o,y:$}}else if(B===L&&b===4){let o=Y.BYTES,E=Y.fromBytes(s.subarray(0,o)),$=Y.fromBytes(s.subarray(o,o*2));if(!M(E,$))throw Error("bad point: is not on curve");return{x:E,y:$}}else throw Error(`bad point: got length ${B}, expected compressed=${i} or uncompressed=${L}`)}let I=G.toBytes||A,w=G.fromBytes||H;function O(k){let i=Y.sqr(k),L=Y.mul(i,k);return Y.add(Y.add(L,Y.mul(k,Z.a)),Z.b)}function M(k,i){let L=Y.sqr(i),B=O(k);return Y.eql(L,B)}if(!M(Z.Gx,Z.Gy))throw Error("bad curve params: generator point");let S=Y.mul(Y.pow(Z.a,XQ),Fu),v=Y.mul(Y.sqr(Z.b),BigInt(27));if(Y.is0(Y.add(S,v)))throw Error("bad curve params: a or b");function p(k,i,L=!1){if(!Y.isValid(i)||L&&Y.is0(i))throw Error(`bad point coordinate ${k}`);return i}function g(k){if(!(k instanceof m))throw Error("ProjectivePoint expected")}function c(k){if(!Q||!Q.basises)throw Error("no endo");return $u(k,Q.basises,J.ORDER)}let l=mC((k,i)=>{let{X:L,Y:B,Z:b}=k;if(Y.eql(b,Y.ONE))return{x:L,y:B};let s=k.is0();if(i==null)i=s?Y.ONE:Y.inv(b);let o=Y.mul(L,i),E=Y.mul(B,i),$=Y.mul(b,i);if(s)return{x:Y.ZERO,y:Y.ZERO};if(!Y.eql($,Y.ONE))throw Error("invZ was invalid");return{x:o,y:E}}),h=mC((k)=>{if(k.is0()){if(G.allowInfinityPoint&&!Y.is0(k.Y))return;throw Error("bad point: ZERO")}let{x:i,y:L}=k.toAffine();if(!Y.isValid(i)||!Y.isValid(L))throw Error("bad point: x or y not field elements");if(!M(i,L))throw Error("bad point: equation left != right");if(!k.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});function e(k,i,L,B,b){return L=new m(Y.mul(L.X,k),L.Y,L.Z),i=jQ(B,i),L=jQ(b,L),i.add(L)}class m{constructor(k,i,L){this.X=p("x",k),this.Y=p("y",i,!0),this.Z=p("z",L),Object.freeze(this)}static CURVE(){return Z}static fromAffine(k){let{x:i,y:L}=k||{};if(!k||!Y.isValid(i)||!Y.isValid(L))throw Error("invalid affine point");if(k instanceof m)throw Error("projective point not allowed");if(Y.is0(i)&&Y.is0(L))return m.ZERO;return new m(i,L,Y.ONE)}static fromBytes(k){let i=m.fromAffine(w(CW(k,void 0,"point")));return i.assertValidity(),i}static fromHex(k){return m.fromBytes(m8("pointHex",k))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(k=8,i=!0){if(H0.createCache(this,k),!i)this.multiply(XQ);return this}assertValidity(){h(this)}hasEvenY(){let{y:k}=this.toAffine();if(!Y.isOdd)throw Error("Field doesn't support isOdd");return!Y.isOdd(k)}equals(k){g(k);let{X:i,Y:L,Z:B}=this,{X:b,Y:s,Z:o}=k,E=Y.eql(Y.mul(i,o),Y.mul(b,B)),$=Y.eql(Y.mul(L,o),Y.mul(s,B));return E&&$}negate(){return new m(this.X,Y.neg(this.Y),this.Z)}double(){let{a:k,b:i}=Z,L=Y.mul(i,XQ),{X:B,Y:b,Z:s}=this,o=Y.ZERO,E=Y.ZERO,$=Y.ZERO,_=Y.mul(B,B),x=Y.mul(b,b),R=Y.mul(s,s),u=Y.mul(B,b);return u=Y.add(u,u),$=Y.mul(B,s),$=Y.add($,$),o=Y.mul(k,$),E=Y.mul(L,R),E=Y.add(o,E),o=Y.sub(x,E),E=Y.add(x,E),E=Y.mul(o,E),o=Y.mul(u,o),$=Y.mul(L,$),R=Y.mul(k,R),u=Y.sub(_,R),u=Y.mul(k,u),u=Y.add(u,$),$=Y.add(_,_),_=Y.add($,_),_=Y.add(_,R),_=Y.mul(_,u),E=Y.add(E,_),R=Y.mul(b,s),R=Y.add(R,R),_=Y.mul(R,u),o=Y.sub(o,_),$=Y.mul(R,x),$=Y.add($,$),$=Y.add($,$),new m(o,E,$)}add(k){g(k);let{X:i,Y:L,Z:B}=this,{X:b,Y:s,Z:o}=k,E=Y.ZERO,$=Y.ZERO,_=Y.ZERO,x=Z.a,R=Y.mul(Z.b,XQ),u=Y.mul(i,b),J0=Y.mul(L,s),V0=Y.mul(B,o),Q0=Y.add(i,L),B0=Y.add(b,s);Q0=Y.mul(Q0,B0),B0=Y.add(u,J0),Q0=Y.sub(Q0,B0),B0=Y.add(i,B);let v0=Y.add(b,o);return B0=Y.mul(B0,v0),v0=Y.add(u,V0),B0=Y.sub(B0,v0),v0=Y.add(L,B),E=Y.add(s,o),v0=Y.mul(v0,E),E=Y.add(J0,V0),v0=Y.sub(v0,E),_=Y.mul(x,B0),E=Y.mul(R,V0),_=Y.add(E,_),E=Y.sub(J0,_),_=Y.add(J0,_),$=Y.mul(E,_),J0=Y.add(u,u),J0=Y.add(J0,u),V0=Y.mul(x,V0),B0=Y.mul(R,B0),J0=Y.add(J0,V0),V0=Y.sub(u,V0),V0=Y.mul(x,V0),B0=Y.add(B0,V0),u=Y.mul(J0,B0),$=Y.add($,u),u=Y.mul(v0,B0),E=Y.mul(Q0,E),E=Y.sub(E,u),u=Y.mul(Q0,J0),_=Y.mul(v0,_),_=Y.add(_,u),new m(E,$,_)}subtract(k){return this.add(k.negate())}is0(){return this.equals(m.ZERO)}multiply(k){let{endo:i}=G;if(!J.isValidNot0(k))throw Error("invalid scalar: out of range");let L,B,b=(s)=>H0.cached(this,s,(o)=>aA(m,o));if(i){let{k1neg:s,k1:o,k2neg:E,k2:$}=c(k),{p:_,f:x}=b(o),{p:R,f:u}=b($);B=x.add(u),L=e(i.beta,_,R,s,E)}else{let{p:s,f:o}=b(k);L=s,B=o}return aA(m,[L,B])[0]}multiplyUnsafe(k){let{endo:i}=G,L=this;if(!J.isValid(k))throw Error("invalid scalar: out of range");if(k===Y4||L.is0())return m.ZERO;if(k===VX)return L;if(H0.hasCache(this))return this.multiply(k);if(i){let{k1neg:B,k1:b,k2neg:s,k2:o}=c(k),{p1:E,p2:$}=Lu(m,L,b,o);return e(i.beta,E,$,B,s)}else return H0.unsafe(L,k)}multiplyAndAddUnsafe(k,i,L){let B=this.multiplyUnsafe(i).add(k.multiplyUnsafe(L));return B.is0()?void 0:B}toAffine(k){return l(this,k)}isTorsionFree(){let{isTorsionFree:k}=G;if(V===VX)return!0;if(k)return k(m,this);return H0.unsafe(this,U).is0()}clearCofactor(){let{clearCofactor:k}=G;if(V===VX)return this;if(k)return k(m,this);return this.multiplyUnsafe(V)}isSmallOrder(){return this.multiplyUnsafe(V).is0()}toBytes(k=!0){return wQ(k,"isCompressed"),this.assertValidity(),I(m,this,k)}toHex(k=!0){return ZX(this.toBytes(k))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(k=!0){return this.toBytes(k)}_setWindowSize(k){this.precompute(k)}static normalizeZ(k){return aA(m,k)}static msm(k,i){return Bu(m,J,k,i)}static fromPrivateKey(k){return m.BASE.multiply(RW(J,k))}}m.BASE=new m(Z.Gx,Z.Gy,Y.ONE),m.ZERO=new m(Y.ZERO,Y.ONE,Y.ZERO),m.Fp=Y,m.Fn=J;let G0=J.BITS,H0=new FT(m,G.endo?Math.ceil(G0/2):G0);return m.BASE.precompute(8),m}function kT(W){return Uint8Array.of(W?2:3)}function _T(W,G){return{secretKey:G.BYTES,publicKey:1+W.BYTES,publicKeyUncompressed:1+2*W.BYTES,publicKeyHasPrefix:!0,signature:2*G.BYTES}}function xu(W,G={}){let{Fn:X}=W,Y=G.randomBytes||RQ,J=Object.assign(_T(W.Fp,X),{seed:LT(X.ORDER)});function Z(H){try{return!!RW(X,H)}catch(I){return!1}}function V(H,I){let{publicKey:w,publicKeyUncompressed:O}=J;try{let M=H.length;if(I===!0&&M!==w)return!1;if(I===!1&&M!==O)return!1;return!!W.fromBytes(H)}catch(M){return!1}}function U(H=Y(J.seed)){return BT(CW(H,J.seed,"seed"),X.ORDER)}function Q(H,I=!0){return W.BASE.multiply(RW(X,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(X.allowedLengths||I===w)return;let M=m8("key",H).length;return M===w||M===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(X,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(X,H),precompute(H=8,I=W.BASE){return I.precompute(H,!1)}},lengths:J})}function ku(W,G,X={}){ZT(G),Kz(X,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let Y=X.randomBytes||RQ,J=X.hmac||((L,...B)=>qT(G,L,w7(...B))),{Fp:Z,Fn:V}=W,{ORDER:U,BITS:Q}=V,{keygen:N,getPublicKey:q,getSharedSecret:A,utils:H,lengths:I}=xu(W,X),w={prehash:!1,lowS:typeof X.lowS==="boolean"?X.lowS:!1,format:void 0,extraEntropy:!1},O="compact";function M(L){let B=U>>VX;return L>B}function S(L,B){if(!V.isValidNot0(B))throw Error(`invalid signature ${L}: out of range 1..Point.Fn.ORDER`);return B}function v(L,B){Nz(B);let b=I.signature,s=B==="compact"?b:B==="recovered"?b+1:void 0;return CW(L,s,`${B} signature`)}class p{constructor(L,B,b){if(this.r=S("r",L),this.s=S("s",B),b!=null)this.recovery=b;Object.freeze(this)}static fromBytes(L,B=O){v(L,B);let b;if(B==="der"){let{r:$,s:_}=X4.toSig(CW(L));return new p($,_)}if(B==="recovered")b=L[0],B="compact",L=L.subarray(1);let s=V.BYTES,o=L.subarray(0,s),E=L.subarray(s,s*2);return new p(V.fromBytes(o),V.fromBytes(E),b)}static fromHex(L,B){return this.fromBytes(IQ(L),B)}addRecoveryBit(L){return new p(this.r,this.s,L)}recoverPublicKey(L){let B=Z.ORDER,{r:b,s,recovery:o}=this;if(o==null||![0,1,2,3].includes(o))throw Error("recovery id invalid");if(U*xT<B&&o>1)throw Error("recovery id is ambiguous for h>1 curve");let E=o===2||o===3?b+U:b;if(!Z.isValid(E))throw Error("recovery id 2 or 3 invalid");let $=Z.toBytes(E),_=W.fromBytes(w7(kT((o&1)===0),$)),x=V.inv(E),R=c(m8("msgHash",L)),u=V.create(-R*x),J0=V.create(s*x),V0=W.BASE.multiplyUnsafe(u).add(_.multiplyUnsafe(J0));if(V0.is0())throw Error("point at infinify");return V0.assertValidity(),V0}hasHighS(){return M(this.s)}toBytes(L=O){if(Nz(L),L==="der")return IQ(X4.hexFromSig(this));let B=V.toBytes(this.r),b=V.toBytes(this.s);if(L==="recovered"){if(this.recovery==null)throw Error("recovery bit must be present");return w7(Uint8Array.of(this.recovery),B,b)}return w7(B,b)}toHex(L){return ZX(this.toBytes(L))}assertValidity(){}static fromCompact(L){return p.fromBytes(m8("sig",L),"compact")}static fromDER(L){return p.fromBytes(m8("sig",L),"der")}normalizeS(){return this.hasHighS()?new p(this.r,V.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return ZX(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return ZX(this.toBytes("compact"))}}let g=X.bits2int||function(L){if(L.length>8192)throw Error("input is too large");let B=qX(L),b=L.length*8-Q;return b>0?B>>BigInt(b):B},c=X.bits2int_modN||function(L){return V.create(g(L))},l=hJ(Q);function h(L){return zu("num < 2^"+Q,L,Y4,l),V.toBytes(L)}function e(L,B){return CW(L,void 0,"message"),B?CW(G(L),void 0,"prehashed message"):L}function m(L,B,b){if(["recovered","canonical"].some((V0)=>(V0 in b)))throw Error("sign() legacy options not supported");let{lowS:s,prehash:o,extraEntropy:E}=Wz(b,w);L=e(L,o);let $=c(L),_=RW(V,B),x=[h(_),h($)];if(E!=null&&E!==!1){let V0=E===!0?Y(I.secretKey):E;x.push(m8("extraEntropy",V0))}let R=w7(...x),u=$;function J0(V0){let Q0=g(V0);if(!V.isValidNot0(Q0))return;let B0=V.inv(Q0),v0=W.BASE.multiply(Q0).toAffine(),N1=V.create(v0.x);if(N1===Y4)return;let u1=V.create(B0*V.create(u+N1*_));if(u1===Y4)return;let k0=(v0.x===N1?0:2)|Number(v0.y&VX),h1=u1;if(s&&M(u1))h1=V.neg(u1),k0^=1;return new p(N1,h1,k0)}return{seed:R,k2sig:J0}}function G0(L,B,b={}){L=m8("message",L);let{seed:s,k2sig:o}=m(L,B,b);return Iu(G.outputLen,V.BYTES,J)(s,o)}function H0(L){let B=void 0,b=typeof L==="string"||MQ(L),s=!b&&L!==null&&typeof L==="object"&&typeof L.r==="bigint"&&typeof L.s==="bigint";if(!b&&!s)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(s)B=new p(L.r,L.s);else if(b){try{B=p.fromBytes(m8("sig",L),"der")}catch(o){if(!(o instanceof X4.Err))throw o}if(!B)try{B=p.fromBytes(m8("sig",L),"compact")}catch(o){return!1}}if(!B)return!1;return B}function k(L,B,b,s={}){let{lowS:o,prehash:E,format:$}=Wz(s,w);if(b=m8("publicKey",b),B=e(m8("message",B),E),"strict"in s)throw Error("options.strict was renamed to lowS");let _=$===void 0?H0(L):p.fromBytes(m8("sig",L),$);if(_===!1)return!1;try{let x=W.fromBytes(b);if(o&&_.hasHighS())return!1;let{r:R,s:u}=_,J0=c(B),V0=V.inv(u),Q0=V.create(J0*V0),B0=V.create(R*V0),v0=W.BASE.multiplyUnsafe(Q0).add(x.multiplyUnsafe(B0));if(v0.is0())return!1;return V.create(v0.x)===R}catch(x){return!1}}function i(L,B,b={}){let{prehash:s}=Wz(b,w);return B=e(B,s),p.fromBytes(L,"recovered").recoverPublicKey(B).toBytes()}return Object.freeze({keygen:N,getPublicKey:q,getSharedSecret:A,utils:H,lengths:I,Point:W,sign:G0,verify:k,recoverPublicKey:i,Signature:p,hash:G})}function _u(W){let G={a:W.a,b:W.b,p:W.Fp.ORDER,n:W.n,h:W.h,Gx:W.Gx,Gy:W.Gy},X=W.Fp,Y=W.allowedPrivateKeyLengths?Array.from(new Set(W.allowedPrivateKeyLengths.map((V)=>Math.ceil(V/2)))):void 0,J=bJ(G.n,{BITS:W.nBitLength,allowedLengths:Y,modFromBytes:W.wrapPrivateKey}),Z={Fp:X,Fn:J,allowInfinityPoint:W.allowInfinityPoint,endo:W.endo,isTorsionFree:W.isTorsionFree,clearCofactor:W.clearCofactor,fromBytes:W.fromBytes,toBytes:W.toBytes};return{CURVE:G,curveOpts:Z}}function yu(W){let{CURVE:G,curveOpts:X}=_u(W),Y={hmac:W.hmac,randomBytes:W.randomBytes,lowS:W.lowS,bits2int:W.bits2int,bits2int_modN:W.bits2int_modN};return{CURVE:G,curveOpts:X,hash:W.hash,ecdsaOpts:Y}}function vu(W,G){let X=G.Point;return Object.assign({},G,{ProjectivePoint:X,CURVE:Object.assign({},W,RT(X.Fn.ORDER,X.Fn.BITS))})}function gu(W){let{CURVE:G,curveOpts:X,hash:Y,ecdsaOpts:J}=yu(W),Z=Su(G,X),V=ku(Z,Y,J);return vu(W,V)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function uu(W,G){let X=(Y)=>gu({...W,hash:Y});return{...X(G),create:X}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var NX={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},hu={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},bu=BigInt(0),nC=BigInt(1),qz=BigInt(2);function mu(W){let G=NX.p,X=BigInt(3),Y=BigInt(6),J=BigInt(11),Z=BigInt(22),V=BigInt(23),U=BigInt(44),Q=BigInt(88),N=W*W*W%G,q=N*N*W%G,A=O5(q,X,G)*q%G,H=O5(A,X,G)*q%G,I=O5(H,qz,G)*N%G,w=O5(I,J,G)*I%G,O=O5(w,Z,G)*w%G,M=O5(O,U,G)*O%G,S=O5(M,Q,G)*M%G,v=O5(S,U,G)*O%G,p=O5(v,X,G)*q%G,g=O5(p,V,G)*w%G,c=O5(g,Y,G)*N%G,l=O5(c,qz,G);if(!KQ.eql(KQ.sqr(l),W))throw Error("Cannot find square root");return l}var KQ=bJ(NX.p,{sqrt:mu}),yT=uu({...NX,Fp:KQ,lowS:!0,endo:hu},Vz),iC={};function OQ(W,...G){let X=iC[W];if(X===void 0){let Y=Vz(UT(W));X=w7(Y,Y),iC[W]=X}return Vz(w7(X,...G))}var Dz=(W)=>W.toBytes(!0).slice(1),HX=(()=>yT.Point)(),Cz=(W)=>W%qz===bu;function Hz(W){let{Fn:G,BASE:X}=HX,Y=RW(G,W),J=X.multiply(Y);return{scalar:Cz(J.y)?Y:G.neg(Y),bytes:Dz(J)}}function vT(W){let G=KQ;if(!G.isValidNot0(W))throw Error("invalid x: Fail if x \u2265 p");let X=G.create(W*W),Y=G.create(X*W+BigInt(7)),J=G.sqrt(Y);if(!Cz(J))J=G.neg(J);let Z=HX.fromAffine({x:W,y:J});return Z.assertValidity(),Z}var gJ=qX;function gT(...W){return HX.Fn.create(gJ(OQ("BIP0340/challenge",...W)))}function rC(W){return Hz(W).bytes}function fu(W,G,X=RQ(32)){let{Fn:Y}=HX,J=m8("message",W),{bytes:Z,scalar:V}=Hz(G),U=m8("auxRand",X,32),Q=Y.toBytes(V^gJ(OQ("BIP0340/aux",U))),N=OQ("BIP0340/nonce",Q,Z,J),{bytes:q,scalar:A}=Hz(N),H=gT(q,Z,J),I=new Uint8Array(64);if(I.set(q,0),I.set(Y.toBytes(Y.create(A+H*V)),32),!uT(I,J,Z))throw Error("sign: Invalid signature produced");return I}function uT(W,G,X){let{Fn:Y,BASE:J}=HX,Z=m8("signature",W,64),V=m8("message",G),U=m8("publicKey",X,32);try{let Q=vT(gJ(U)),N=gJ(Z.subarray(0,32));if(!Qz(N,nC,NX.p))return!1;let q=gJ(Z.subarray(32,64));if(!Qz(q,nC,NX.n))return!1;let A=gT(Y.toBytes(N),Dz(Q),V),H=J.multiplyUnsafe(q).add(Q.multiplyUnsafe(Y.neg(A))),{x:I,y:w}=H.toAffine();if(H.is0()||!Cz(w)||I!==N)return!1;return!0}catch(Q){return!1}}var Tz=(()=>{let W=(X=RQ(48))=>{return BT(X,NX.n)};yT.utils.randomSecretKey;function G(X){let Y=W(X);return{secretKey:Y,publicKey:rC(Y)}}return{keygen:G,getPublicKey:rC,sign:fu,verify:uT,Point:HX,utils:{randomSecretKey:W,randomPrivateKey:W,taggedHash:OQ,lift_x:vT,pointToBytes:Dz,numberToBytesBE:PQ,bytesToNumberBE:qX,mod:C5},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})(),pu=new TextEncoder,cu=new TextDecoder,PW=(W)=>pu.encode(W),kJ=(W)=>cu.decode(W),Az=(W)=>Array.from(W,(G)=>G.toString(16).padStart(2,"0")).join(""),j7=JSON.stringify,DQ=JSON.parse,lu=(W,G=Number.MAX_SAFE_INTEGER)=>W.split("").reduce((X,Y)=>X+Y.charCodeAt(0),0)%G,Mz="AES-GCM",du={},hT="$",bT=",",ou=(W)=>{let G=new Uint8Array(W),X=32768,Y="";for(let J=0;J<G.length;J+=32768)Y+=String.fromCharCode(...G.subarray(J,J+32768));return btoa(Y)},nu=(W)=>Uint8Array.from(atob(W),(G)=>G.charCodeAt(0)).buffer,YQ=(W)=>du[W]??=crypto.subtle.digest("SHA-1",PW(W)).then((G)=>{let X=new Uint8Array(G),Y="";for(let J of X)Y+=J.toString(36);return Y}),iu=async(W,G,X)=>{let Y=await crypto.subtle.digest("SHA-256",PW(`${W}:${G}:${X}`));return crypto.subtle.importKey("raw",Y,{name:Mz},!1,["encrypt","decrypt"])},ru=async(W,G)=>{let X=crypto.getRandomValues(new Uint8Array(12)),Y=await W,J=await crypto.subtle.encrypt({name:Mz,iv:X},Y,PW(G));return`${X.join(bT)}${hT}${ou(J)}`},au=async(W,G)=>{let[X,Y]=G.split(hT);if(!X||!Y)throw Error("Invalid encrypted payload format");let J=Uint8Array.from(X.split(bT),Number),Z=await W,V=await crypto.subtle.decrypt({name:Mz,iv:J},Z,nu(Y));return kJ(V)},D5="GenosRTC",LQ=(W,G)=>Array.from({length:W},G),CQ=(W)=>Array.from(crypto.getRandomValues(new Uint8Array(W)),(G)=>"0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"[G%62]).join(""),I8=typeof sessionStorage<"u"?sessionStorage.__genosrtcId??=CQ(20):CQ(20),YX=Promise.all.bind(Promise),su=typeof window<"u",{entries:tu,fromEntries:mT,keys:ge}=Object,aC=()=>{},I7=(W)=>Error(`GenosRTC: ${W}`),JQ=(...W)=>W.join("@"),eu=5000,sC="icegatheringstatechange",tC="offer",Wh="answer",Gh=[...LQ(3,(W,G)=>`stun:stun${G||""}.l.google.com:19302`),"stun:stun.cloudflare.com:3478"].map((W)=>({urls:W})),eC=(W,{rtcConfig:G,rtcPolyfill:X,turnConfig:Y})=>{let J=new(X||RTCPeerConnection)({iceServers:[...Gh,...Y||[]],...G}),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(sC,I),H()};J.addEventListener(sC,I),I()}),new Promise((H)=>setTimeout(H,eu))]).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===tC){if(V||J.signalingState!=="stable"&&!U){if(W)return;await YX([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===Wh){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===tC&&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)}},Xh=Object.getPrototypeOf(Uint8Array),QQ=12,fT=0,NQ=fT+QQ,qQ=NQ+1,_J=qQ+1,yJ=_J+1,SJ=16384-yJ,ZQ=255,Gz="bufferedamountlow",XX=(W)=>`@_${W}`,WT=XX("ping"),Xz=100,Yh=3,Jh=200,Zh=512,GT=(W,G)=>new Response(new Blob([W]).stream().pipeThrough(new G("deflate"))).arrayBuffer().then((X)=>new Uint8Array(X)),Vh=(W,G,X,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,u)=>{if(!H.has(R))H.set(R,new Set);H.get(R).add(u)},M=(R,u)=>H.get(R)?.delete(u),S=(R,...u)=>H.get(R)?.forEach((J0)=>J0(...u)),v=(R,u)=>{let J0=R?Array.isArray(R)?R:[R]:Z.keys();return Array.from(J0,(V0)=>{let Q0=Z.get(V0);if(!Q0)return console.warn(`${D5}: no peer with id ${V0}`),null;return u(V0,Q0)}).filter(Boolean)},p=(R)=>{if(!Z.has(R))return;Z.delete(R),I.delete(R),_.delete(R),delete Q[R],delete N[R],delete q[R],delete A[R],S("peer:leave",R),G(R)},g=(R)=>new Promise((u,J0)=>{let V0=setTimeout(()=>{R.removeEventListener(Gz,Q0),J0(Error(`${D5}: bufferLow timeout`))},5000);function Q0(){clearTimeout(V0),R.removeEventListener(Gz,Q0),u()}R.addEventListener(Gz,Q0)}),c=(R)=>{if(U.has(R))return U.get(R);if(!R)throw I7("action type is required");let u=PW(R);if(u.byteLength>QQ)throw I7(`\u274C "${R}" exceeds ${QQ} bytes. Use a shorter name.`);let J0=new Uint8Array(QQ).map((k0,h1)=>u[h1]||0),V0=0,Q0=new Map([["message",new Set],["progress",new Set]]),B0=(k0,h1)=>Q0.get(k0)?.add(h1),v0=(k0,h1)=>Q0.get(k0)?.delete(h1),N1=async(k0,h1,R1,f)=>{if(R1&&typeof R1!=="object")throw I7("meta must be object");if(k0===void 0)throw I7("data cannot be undefined");let X0=k0 instanceof Blob,A0=X0||k0 instanceof ArrayBuffer||k0 instanceof Xh,F0=typeof k0!=="string";if(R1&&!A0)throw I7("meta only allowed with binary");let j1=A0?new Uint8Array(X0?await k0.arrayBuffer():k0):PW(F0?j7(k0):k0),l0=0;if(!A0&&j1.byteLength>=Zh){let F1=await GT(j1,CompressionStream);if(F1.byteLength<j1.byteLength)j1=F1,l0=1}let N0=R1?PW(j7(R1)):null,E0=Math.ceil(j1.byteLength/SJ)+(R1?1:0)||1;if(E0>Xz)throw I7(`Message too large, exceeds max chunks ${Xz}`);let P1=LQ(E0,(F1,v1)=>{let f0=v1===E0-1,g0=R1&&v1===0,U1=g0?N0:j1.subarray(R1?(v1-1)*SJ:v1*SJ,R1?v1*SJ:(v1+1)*SJ),e1=new Uint8Array(yJ+U1.byteLength);return e1.set(J0),e1.set([V0],NQ),e1.set([f0|g0<<1|A0<<2|F0<<3|l0<<4],qQ),e1.set([Math.round((v1+1)/E0*ZQ)],_J),e1.set(U1,yJ),e1});return V0=V0+1&ZQ,YX(v(h1,async(F1,v1)=>{let{channel:f0}=v1;for(let g0=0;g0<E0;g0++){let U1=0;while(f0.bufferedAmount>f0.bufferedAmountLowThreshold){if(U1++>Yh)throw I7(`${D5}: send buffer full, max retries reached for peer ${F1}`);try{await g(f0)}catch(e1){console.warn(e1.message),await new Promise((q9)=>setTimeout(q9,Jh))}}if(!Z.has(F1))break;if(!v1.sendData(P1[g0]))throw I7(`channel not open for peer ${F1}`);f?.(P1[g0][_J]/ZQ,F1,R1)}}))};V.set(R,{listeners:Q0,send:N1});let u1={send:N1,on:B0,off:v0};return U.set(R,u1),u1},l=(R,u)=>{try{I.set(R,Date.now()),_.delete(R);let J0=new Uint8Array(u),V0=kJ(J0.subarray(fT,NQ)).replace(/\x00/g,"");if(!V.has(V0))return console.warn(`${D5}: unregistered type (${V0})`);if(V0===WT){m("",R).catch(()=>{});return}let[Q0]=J0.subarray(NQ,qQ),[B0]=J0.subarray(qQ,_J),[v0]=J0.subarray(_J,yJ),N1=J0.subarray(yJ),u1=Boolean(B0&1),k0=Boolean(B0&2),h1=Boolean(B0&4),R1=Boolean(B0&8),f=Boolean(B0&16),X0=V.get(V0),A0=(Q[R]||={})[V0]||={};if(A0[Q0]?.chunks?.length>Xz){console.warn(`${D5}: peer ${R} sent too many chunks for nonce ${Q0}, ignoring.`);return}let F0=A0[Q0]||={chunks:[]};if(k0)try{F0.meta=DQ(kJ(N1))}catch{console.warn(`${D5}: failed to parse meta from peer ${R} for type ${V0}`);return}else F0.chunks.push(N1);if(X0.listeners.get("progress").forEach((l0)=>{try{l0(v0/ZQ,R,F0.meta)}catch(N0){console.error(N0)}}),!u1)return;let j1=new Uint8Array(F0.chunks.reduce((l0,N0)=>l0+N0.byteLength,0));F0.chunks.reduce((l0,N0)=>(j1.set(N0,l0),l0+N0.byteLength),0),delete A0[Q0],w=w.then(async()=>{let l0=f?await GT(j1,DecompressionStream):j1,N0;if(h1)N0=l0;else if(R1)try{N0=DQ(kJ(l0))}catch{console.warn(`${D5}: failed to parse JSON message data from peer ${R} for type ${V0}`);return}else N0=kJ(l0);X0.listeners.get("message").forEach((E0)=>{try{E0(N0,R,F0.meta)}catch(P1){console.error(P1)}})}).catch((l0)=>console.error(`${D5}: dispatch error from peer ${R}:`,l0))}catch(J0){console.error(`${D5}: error handling data from peer ${R}:`,J0)}},h=async()=>{try{await s(""),await new Promise((R)=>setTimeout(R,99))}catch(R){console.warn(`${D5}: error sending leave`,R)}for(let[R,u]of Z){try{u.destroy()}catch{}Z.delete(R)}clearInterval(x),X()},{send:e}=c(WT),{send:m,on:G0}=c(XX("pong")),{send:H0,on:k}=c(XX("signal")),{send:i,on:L}=c(XX("stream")),{send:B,on:b}=c(XX("track")),{send:s,on:o}=c(XX("leave"));W((R,u)=>{let J0=Z.get(u);if(J0===R)return;if(J0){let V0=()=>{};J0.setHandlers({data:V0,stream:V0,track:V0,signal:V0,close:V0,error:V0})}Z.set(u,R),I.set(u,Date.now()),_.delete(u),R.setHandlers({data:(V0)=>l(u,V0),stream:(V0)=>{S("stream:add",V0,u,q[u]),delete q[u]},track:(V0,Q0)=>{S("track:add",V0,Q0,u,A[u]),delete A[u]},signal:(V0)=>H0(V0,u),close:()=>p(u),error:(V0)=>{console.error(`${D5}: peer error for ${u}`,V0),p(u)}}),S("peer:join",u,Y?.(u))}),J?.((R,u,J0)=>S(J0?"peer:seen":"peer:lost",R,u)),G0("message",(R,u)=>{N[u]?.(),delete N[u]}),k("message",(R,u)=>Z.get(u)?.signal(R)),L("message",(R,u)=>q[u]=R),b("message",(R,u)=>A[u]=R),o("message",(R,u)=>p(u));let E=1e4,$=20000,_=new Map,x=setInterval(()=>{let R=Date.now();for(let[u,J0]of Z){if(R-(I.get(u)??R)<=E)continue;let V0=_.get(u);if(V0===void 0)_.set(u,R),e("",u).catch(()=>{});else if(R-V0>$){_.delete(u);try{J0.destroy()}catch{}p(u)}}},5000);if(su)addEventListener("beforeunload",h);return{on:O,off:M,channel:c,leave:h,ping:async(R)=>{if(!R)throw I7("ping() requires target peer ID");let u=Date.now();return e("",R),await new Promise((J0)=>N[R]=J0),Date.now()-u},getPeers:()=>mT(Array.from(Z,([R,u])=>[R,u.connection])),addStream:(R,u,J0)=>v(u,async(V0,Q0)=>{if(J0)await i(J0,V0);Q0.addStream(R)}),removeStream:(R,u)=>v(u,(J0,V0)=>V0.removeStream(R)),addTrack:(R,u,J0,V0)=>v(J0,async(Q0,B0)=>{if(V0)await B(V0,Q0);B0.addTrack(R,u)}),removeTrack:(R,u)=>v(u,(J0,V0)=>V0.removeTrack(R)),replaceTrack:(R,u,J0,V0)=>v(J0,async(Q0,B0)=>{if(V0)await B(V0,Q0);B0.replaceTrack(R,u)})}},Uh=5,Qh=10,Nh=2500,VQ=57333,qh=({init:W,subscribe:G,announce:X,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 I7(!Q?"config required":!N?"roomId required":"appId missing");let H=aC,I=aC;if(!Z){let _=W(Q);U=LQ(Uh,()=>{try{return eC(!0,Q)}catch{return null}}).filter(Boolean),V=Array.isArray(_)?_:[_];let x=setInterval(()=>{U=U.filter((R)=>{let u=Date.now()-R.created<VQ;if(!u)R.destroy();return u})},VQ);J.offerCleanupTimer||=x,Z=!0}let w={},O={},M=new Map,S=new Map,v=new Map,p={},g=JQ(D5,A,N),c=YQ(g),l=YQ(JQ(g,I8)),h=iu(Q.password||"",A,N),e=(_)=>async(x)=>({type:x.type,sdp:await _(h,x.sdp)}),m=e(au),G0=e(ru),H0=(_)=>{return setTimeout(()=>{if(!_.isDead&&!Object.values(O).includes(_))_.destroy()},VQ),_},k=(_)=>{try{return H0(eC(_,Q))}catch{return null}},i=(_,x)=>{if(O[x]===_)return;_.connectedAt=Date.now(),O[x]?.destroy(),O[x]=_,H(_,x),w[x]?.forEach((R)=>R!==_&&R.destroy()),delete w[x]},L=(_,x)=>{if(O[x]===_)delete O[x]},B=(_)=>async(x,R,u)=>{let[J0,V0]=await YX([c,l]);if(x!==J0&&x!==V0)return;let{peerId:Q0,offer:B0,answer:v0,type:N1,bye:u1}=typeof R==="string"?DQ(R):R;if(u1){if(Q0&&Q0!==I8)S.delete(Q0),I(Q0,null,!1),v.set(Q0,Date.now()),delete p[Q0];return}if(Q0&&Q0!==I8)I(Q0,N1,!0),S.set(Q0,Date.now()),v.delete(Q0);if(N1&&Q0)p[Q0]=N1;if(Q0===I8)return;if(O[Q0]){let k0=O[Q0].channel?.readyState==="open";if(!B0||k0||Date.now()-O[Q0].connectedAt<2000)return;O[Q0].destroy(),delete O[Q0]}if(Q.admit&&!Q.admit(Q0))return;if(B0){if(w[Q0]?.[_]&&I8>Q0)return;let k0=k(!1);if(!k0)return;k0.setHandlers({connect:()=>i(k0,Q0),close:()=>L(k0,Q0)});try{let h1=await m(B0);if(k0.isDead)return;let[R1,f]=await YX([YQ(JQ(g,Q0)),k0.signal(h1).then(G0)]);u(R1,j7({peerId:I8,answer:f,...Q.type&&{type:Q.type}}))}catch{q?.({error:"decryption failed (offer)",appId:A,peerId:Q0,roomId:N})}}else if(v0){let k0=w[Q0]?.[_];if(!k0||k0.isDead)return;k0.setHandlers({connect:()=>i(k0,Q0),close:()=>L(k0,Q0)});try{k0.signal(await m(v0))}catch{q?.({error:"decryption failed (answer)",appId:A,peerId:Q0,roomId:N})}}else{let k0=w[Q0]||=[];if(k0.forEach((f,X0)=>{if(f&&(f.isDead||Date.now()-(f.dialedAt??f.created)>VQ)){if(f.isDead)M.set(Q0,Date.now()+30000);f.destroy(),delete k0[X0]}}),k0[_]||k0.filter(Boolean).length>=2||M.get(Q0)>Date.now())return;if(Object.values(w).reduce((f,X0)=>f+X0.filter((A0)=>A0&&!A0.isDead).length,0)>=Qh)return;let h1=U.pop(),R1=h1?H0(h1):k(!0);if(!R1){M.set(Q0,Date.now()+30000);return}R1.dialedAt=Date.now(),k0[_]=R1;try{let[f,{offer:X0}]=await YX([YQ(JQ(g,Q0)),R1.offerPromise.then(G0).then((A0)=>({offer:A0}))]);R1.setHandlers({connect:()=>i(R1,Q0),close:()=>L(R1,Q0)}),u(f,j7({peerId:I8,offer:X0,peer:R1,...Q.type&&{type:Q.type}}))}catch{if(k0[_]===R1)delete k0[_];R1.destroy()}}},b=[],s=[],o=[],E=()=>o.forEach(({relay:_,rootTopic:x})=>Y?.(_,x));V.forEach(async(_,x)=>{let R=await _;if(!R)return;let[u,J0]=await YX([c,l]);s[x]=G(R,u,J0,B(x)),o.push({relay:R,rootTopic:u});let V0=async()=>{let Q0=await X(R,u,J0);b[x]=setTimeout(V0,typeof Q0==="number"?Q0:Nh)};V0()}),J[A]||={};let $=Vh((_)=>H=_,(_)=>delete O[_],()=>$.onCleanup?.(),(_)=>p[_],(_)=>I=_);if(typeof window<"u")window.addEventListener("pagehide",E);return $.onCleanup=()=>{if(E(),typeof window<"u")window.removeEventListener("pagehide",E);if(delete J[A][N],b.forEach(clearTimeout),s.forEach((_)=>_?.()),Object.keys(J).length===0)clearInterval(J.offerCleanupTimer),delete J.offerCleanupTimer},$._census=()=>{for(let x of Object.keys(O))S.set(x,Date.now());let _=Date.now()-120000;for(let[x,R]of S)if(R<_)S.delete(x);return[...S.keys()]},$._gone=()=>{let _=Date.now()-60000;for(let[x,R]of v)if(R<_)v.delete(x);return[...v.keys()]},J[A][N]=$}},XT=3333,Hh=30000,xJ={},pT={},Ah=(W,G)=>{let X={},Y=null;X.reopenHandlers=new Set;let J=()=>{if(Y)clearTimeout(Y),Y=null;if(X.socket)X.socket.onclose=null,X.socket.close();let Z=new WebSocket(W);Z.onclose=()=>{xJ[W]??=XT,Y=setTimeout(J,xJ[W]),xJ[W]=Math.min(xJ[W]*2,Hh)},Z.onmessage=(V)=>G(V.data),X.socket=Z,X.url=Z.url,X.ready=new Promise((V)=>{Z.onopen=()=>{xJ[W]=XT,V(X),X.reopenHandlers.forEach((U)=>U())}}),X.send=(V)=>{if(Z.readyState===1)Z.send(V)}};return X.forceReconnect=J,J(),pT[W]=X,X};if(typeof window<"u"){let W=(G)=>{JX.info("\u26A1 [GenosRTC] Network event detected. Forcing reconnection\u2026"),Object.values(pT).forEach((X)=>{if(X.socket&&X.socket.readyState!==WebSocket.OPEN&&(G||X.socket.readyState!==WebSocket.CONNECTING))X.forceReconnect()})};window.addEventListener("online",()=>{JX.info("\u2705 Reconnected to the network."),W(!0)}),window.addEventListener("offline",async()=>{JX.info("\u274C Disconnected from the network.")}),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="visible")W()})}var zh=(W)=>()=>mT(tu(W).map(([G,X])=>[G,X.socket])),UX={},Ih=10,cT="x",lT="EVENT",wh=/pow:\s*(\d+)\s*bits needed\.?/i,HQ=new Set,dT=Tz.utils.randomSecretKey(),jh=Az(Tz.getPublicKey(dT)),Rz={},vJ={},Kh={},oT=()=>Math.floor(Date.now()/1000),nT=(W)=>Kh[W]??=lu(W,1e4)+20000,uJ=(W)=>W.replace(/\/$/,""),Oh="https://cdn.jsdelivr.net/gh/estebanrfp/gdb@main/relays.json",iT=(W)=>Array.isArray(W)?[...new Set(W.filter((G)=>G?.startsWith?.("wss://")))]:[],rT="genosrtc_relays",Dh=()=>{try{return iT(JSON.parse(globalThis.localStorage?.getItem(rT)))}catch{return[]}},Ch=()=>fetch(`${Oh}?r=${Math.random().toString(36).slice(2)}`,{signal:AbortSignal.timeout(5000)}).then((W)=>W.json()).then(iT).then((W)=>(W.length&&globalThis.localStorage?.setItem(rT,JSON.stringify(W)),W)).catch(()=>[]).then((W)=>(W=W.length?W:Dh(),W.length||JX.warn("\u26A0\uFE0F [GenosRTC] Relay list unreachable - Pass rtc.relayUrls to override."),W)),Th=(W,G)=>{let[X,Y,J,Z]=DQ(G);if(X===lT)return vJ[Y]?.(Rz[Y],J.content);if(X==="NOTICE"||X==="OK"&&!J){if(+((X==="NOTICE"?Y:Z).match(wh)?.[1]??0)>0){let V=uJ(W);HQ.add(V),UX[V]?.close?.(),delete UX[V]}}},Mh=(W)=>{let G=uJ(W);if(UX[G])return UX[G];let X=Ah(G,(Y)=>Th(G,Y));return UX[G]=X},Yz=async(W,G)=>{let X={kind:nT(W),content:G,pubkey:jh,created_at:oT(),tags:[[cT,W]]},Y=PW(j7([0,X.pubkey,X.created_at,X.kind,X.tags,X.content])),J=new Uint8Array(await crypto.subtle.digest("SHA-256",Y)),Z=Tz.sign(J,dT);return j7([lT,{...X,id:Az(J),sig:Az(Z)}])},YT=(W,G)=>{return Rz[W]=G,j7(["REQ",W,{kinds:[nT(G)],since:oT(),["#"+cT]:[G]}])},JT=(W)=>{return delete Rz[W],j7(["CLOSE",W])},aT=qh({init:(W)=>{let G=W?.relayUrls?.length?W.relayUrls:null,X=G?Promise.resolve(G):Ch(),Y=G?.length??W.relayRedundancy??Ih;return LQ(Y,(J,Z)=>X.then((V)=>{let U=V[Z]&&Mh(V[Z]);return U?U.ready.then(()=>U).catch(()=>null):null}))},subscribe:(W,G,X,Y)=>{let J=CQ(64),Z=CQ(64);vJ[J]=vJ[Z]=(U,Q)=>Y(U,Q,async(N,q)=>{if(HQ.has(uJ(W.url)))return;W.send(await Yz(N,q))});let V=()=>{W.send(YT(J,G)),W.send(YT(Z,X))};return V(),W.reopenHandlers.add(V),()=>{W.reopenHandlers.delete(V),W.send(JT(J)),W.send(JT(Z)),delete vJ[J],delete vJ[Z]}},announce:async(W,G)=>{if(HQ.has(uJ(W.url)))return;W.send(await Yz(G,j7({peerId:I8})))},bye:async(W,G)=>{if(HQ.has(uJ(W.url)))return;W.send(await Yz(G,j7({peerId:I8,bye:1})))}}),ue=zh(UX),Rh={cellSize:10},Ph=5000,Lh=3000,Bh=2000,Eh=2000,$h=1e4,Fh=30000,Sh=5000,xh=30000,TQ=(W)=>{let G=String(W||"").match(/cell-(\d+)/);return G?Number(G[1]):null},Jz=(W,G)=>{let X=TQ(W);if(X==null)return[];let Y=[];for(let J=1;J<G;J*=2){if(X-J>=0)Y.push(`cell-${X-J}`);if(X+J<G)Y.push(`cell-${X+J}`)}return Y},UQ=(W)=>`c${(TQ(W)||0).toString(36)}`,kh=10,_h=(W,G)=>{let X=+G.cellSize>=2?G.cellSize|0:kh;return Math.max(1,Math.ceil(W/X))},sT=(W)=>{let G=0;for(let X=0;X<W.length;X++)G=Math.imul(G^W.charCodeAt(X),2654435761);return G>>>0},H6=(W,G)=>{let X=0,Y=-1;for(let J=0;J<G;J++){let Z=sT(`${W}:${J}`);if(Z>Y)Y=Z,X=J}return X};function yh(W,G={},X={}){let Y={...Rh,...G},J=1,Z={epoch:0,roster:[I8],set:new Set([I8]),key:I8,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,M=new Map,S=new Set,v=new Map,p=new Set,g=0,c=new Set,l=new Map,h=()=>Math.min(150,Math.ceil(Math.log2(Z.C+1))*2+3),e=(f)=>Jz(f,Z.C),m=W.on?.bind(W),G0=W.off?.bind(W);if(m)W.on=(f,X0)=>String(f).startsWith("mesh:")?i(f,X0):m(f,X0);if(G0)W.off=(f,X0)=>String(f).startsWith("mesh:")?v.get(f)?.delete(X0):G0(f,X0);let H0=(f)=>(S.add(f),()=>S.delete(f)),k=(f,X0)=>{for(let A0 of S)try{A0(f,X0)}catch(F0){JX.error("\uD83D\uDD78\uFE0F [Cells] Error in deliver handler:",F0)}},i=(f,X0)=>{if(!v.has(f))v.set(f,new Set);return v.get(f).add(X0),()=>v.get(f)?.delete(X0)},L=(f,...X0)=>{let A0=v.get(f);if(A0)for(let F0 of A0)try{F0(...X0)}catch{}},B=(f)=>{try{return typeof f==="string"?JSON.parse(f):f}catch{return null}},b=()=>`${I8}:${Date.now().toString(36)}:${(g++&65535).toString(36)}`,s=()=>{if(p.size>Ph)p.delete(p.values().next().value)},o=()=>[...new Set([...W._census(),I8])].sort(),E=(f,X0,A0)=>X0.filter((F0)=>H6(F0,A0)===f),$=(f,X0,A0)=>{if(f==null)return null;let F0=(N0)=>sT(`${N0}@${f}`),j1=null,l0=-1;for(let N0 of E(f,X0,A0)){let E0=F0(N0);if(E0>l0)l0=E0,j1=N0}return j1},_=(f)=>{let X0=Z.audience?.get(f);if(!X0)return[];return Object.keys(W.getPeers?.()||{}).filter((A0)=>X0.has(A0))},x=(f,X0)=>{if(f!==w&&!(Z.isBridge&&Z.bridges.some((f0)=>UQ(f0)===f)))return;let A0=B(X0);if(!A0?.id||!A0?.t)return;if(p.has(A0.id))return;p.add(A0.id),s();let{t:F0,id:j1,ttl:l0,data:N0,origin:E0,originCell:P1}=A0,F1=Z.cellId;if(F0==="ping"&&N0?.pingId&&N0.target===I8&&E0!==I8){let f0={t:"pong",id:b(),ttl:h(),data:{pingId:N0.pingId,receivedAt:Date.now()},origin:I8,originCell:F1},g0=W.getPeers?.()?.[E0]?[E0]:_(F1);I?.send(JSON.stringify(f0),g0)}if(F0==="pong"&&N0?.pingId){let f0=l.get(N0.pingId);if(f0)clearTimeout(f0.timeout),f0.resolve(Date.now()-f0.start),l.delete(N0.pingId)}if(F0==="msg"&&E0!==I8)k(N0,E0);if(!Z.isBridge)return;if((l0??0)<=0)return;let v1=(f0,g0,U1=null)=>{if(!f0||!g0.length)return;let e1={t:F0,id:j1,ttl:U1??(l0??h())-1,data:N0,origin:E0||I8,originCell:P1||F1};f0.send(JSON.stringify(e1),g0)};if(f===w){for(let f0 of e(F1))v1(R(f0),_(f0));return}v1(I,_(F1));for(let f0 of e(F1))if(UQ(f0)!==f)v1(R(f0),_(f0))},R=(f)=>{let X0=UQ(f),A0=W.channel(X0);if(!c.has(X0))c.add(X0),A0.on("message",(F0)=>x(X0,F0));return A0},u=()=>{if(!Z.cellId)return;if(w=UQ(Z.cellId),I=W.channel(w),!c.has(w))c.add(w),I.on("message",(f)=>x(w,f));if(Z.isBridge)for(let f of e(Z.cellId))R(f)},J0=(f,X0)=>{if(!f.cellId||!f.set.has(X0))return!1;let A0=`cell-${H6(X0,f.C)}`;return A0===f.cellId||f.bridges.includes(A0)||Jz(A0,f.C).includes(f.cellId)&&$(H6(X0,f.C),f.roster,f.C)===X0},V0=(f)=>Z.set.size<2&&(V.set?.size??0)<2||J0(Z,f)||Date.now()<U&&J0(V,f),Q0=()=>{let f=W.getPeers?.()||{};for(let X0 of Object.keys(f))if(!V0(X0))f[X0].close?.()};X.admit=V0;let B0=()=>({epoch:Z.epoch,cellId:Z.cellId,isBridge:Z.isBridge,bridges:Z.bridges,roster:[...Z.roster],cellSize:J,dynamicTTL:h(),totalCells:Z.C}),v0=()=>{A=Date.now();for(let[f,X0]of M){if(f===I8)continue;L("mesh:peer-state",{id:f,cell:X0.cell,bridges:X0.bridges,timestamp:A})}},N1=(f)=>{let X0=_h(f.length,Y);J=Math.ceil(f.length/X0);let A0=`cell-${H6(I8,X0)}`,F0=new Map,j1=new Set,l0=new Map,N0=(f0)=>l0.get(f0)??l0.set(f0,new Set).get(f0);for(let f0 of f)N0(`cell-${H6(f0,X0)}`).add(f0);let E0=new Map,P1=(f0)=>E0.has(f0)?E0.get(f0):E0.set(f0,$(f0,f,X0)).get(f0);for(let f0 of new Set(f.map((g0)=>H6(g0,X0)))){let g0=`cell-${f0}`;for(let U1 of Jz(g0,X0)){if(TQ(U1)<f0)continue;for(let e1 of[P1(f0),P1(TQ(U1))]){if(!e1)continue;let q9=`cell-${H6(e1,X0)}`===g0?U1:g0,d=F0.get(e1)??[];if(!d.includes(q9))d.push(q9);if(F0.set(e1,d),N0(g0).add(e1),N0(U1).add(e1),g0===A0||U1===A0)j1.add(e1)}}}let F1=F0.get(I8)??[],v1=Z.cellId!==A0||String(Z.bridges)!==String(F1);V=Z,Z={epoch:Z.epoch+1,roster:f,set:new Set(f),key:f.join("|"),C:X0,cellId:A0,isBridge:F1.length>0,bridges:F1,edgeBridges:[...j1],audience:l0},H=Date.now(),M.clear();for(let f0 of f){let g0=F0.get(f0)??[];M.set(f0,{cell:`cell-${H6(f0,X0)}`,isBridge:g0.length>0,bridges:g0})}if(U=Date.now()+Sh,v1)u();JX.info("\uD83D\uDD78\uFE0F [Cells] seal",{epoch:Z.epoch,myCell:A0,bridges:F1,C:X0,roster:f.length}),v0(),L("mesh:state",B0())},u1=()=>{let f=o(),X0=f.join("|");if(X0===Z.key)Q=0;else{let A0=Date.now();if(Q||=A0,X0!==N)N=X0,q=A0;if(f.some((F0)=>!Z.set.has(F0))||Z.edgeBridges.some((F0)=>!f.includes(F0))||(W._gone?.()??[]).some((F0)=>Z.set.has(F0))?A0-q>=Eh||A0-Q>=$h:A0-Q>=Fh)Q=0,N1(f)}if(U&&Date.now()>=U)U=0,Q0()},k0=()=>{if(O)return;O=setInterval(()=>{if(u1(),Date.now()-A>=xh)v0()},Bh)},h1=()=>{if(O)clearInterval(O),O=null},R1=(f)=>{return new Promise((X0,A0)=>{let F0=`${Date.now()}-${Math.random().toString(36).slice(2,8)}`,j1=Date.now(),l0=setTimeout(()=>{l.delete(F0),A0(Error("Ping timeout"))},Lh);l.set(F0,{start:j1,resolve:X0,reject:A0,timeout:l0,peerId:f});let N0={t:"ping",id:b(),ttl:h(),data:{pingId:F0,target:f},origin:I8,originCell:Z.cellId};I?.send(JSON.stringify(N0),_(Z.cellId))})};return W.on?.("peer:join",()=>u1()),W.on?.("peer:leave",()=>u1()),N1(o()),k0(),{send:(f)=>{let X0={t:"msg",id:b(),ttl:h(),data:f,origin:I8,originCell:Z.cellId},A0=JSON.stringify(X0);I.send(A0,_(Z.cellId)),x(w,A0)},on:(f,X0)=>f==="message"?H0(X0):void 0,ping:R1,getState:()=>({...B0(),knownCells:new Set([...M.values()].map((f)=>f.cell)).size}),getPeerInfo:()=>new Map(M),getStableRoster:()=>[...Z.roster],getKnownCells:()=>{let f=new Map;for(let[X0,{cell:A0}]of M)if(!f.has(A0))f.set(A0,{lastSeen:H,peerId:X0});return f},getCellSize:()=>J,destroy:()=>{h1(),l.forEach((f)=>clearTimeout(f.timeout)),l.clear()}}}function vh(W,G,X){let Y={},J=aT({...W,admit:(Q)=>Y.admit?.(Q)??!0},G,X),Z=W.overlay||{},V=yh(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(I8))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 Pz=(W,G,X)=>W?.cells||W?.overlay?vh(W,G,X):aT(W,G,X);import{randomBytes as jS}from"crypto";function gh(){var W,G=!1,X=this;X._DeArray=function(Y,J,Z){return[Y.slice(J,J+Z)]},X._EnArray=function(Y,J,Z,V){for(var U=0;U<Z;Y[J+U]=V[U]?V[U]:0,U++);},X._DeChar=function(Y,J){return String.fromCharCode(Y[J])},X._EnChar=function(Y,J,Z){Y[J]=Z.charCodeAt(0)},X._DeInt=function(Y,J){var Z=G?W.len-1:0,V=G?-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},X._EnInt=function(Y,J,Z){var V=G?W.len-1:0,U=G?-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);},X._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("")},X._EnString=function(Y,J,Z,V){for(var U,Q=0;Q<Z;Y[J+Q]=(U=V.charCodeAt(Q))?U:0,Q++);},X._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=G?0:W.len-1,N=G?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)},X._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=G?W.len-1:0,q=G?-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},X._DeInt64=function(Y,J){var Z=G?0:7,V=G?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},X._EnInt64=function(Y,J,Z){var V=G?0:7,U=G?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));},X._sPattern="(\\d + )?([AxcbBhHsfdiIlLqQ])",X._lenLut={A:1,x:1,c:1,b:1,B:1,h:2,H:2,s:1,f:4,d:8,i:4,I:4,l:4,L:4,q:8,Q:8},X._elLut={A:{en:X._EnArray,de:X._DeArray},s:{en:X._EnString,de:X._DeString},c:{en:X._EnChar,de:X._DeChar},b:{en:X._EnInt,de:X._DeInt,len:1,bSigned:!0,min:-Math.pow(2,7),max:Math.pow(2,7)-1},B:{en:X._EnInt,de:X._DeInt,len:1,bSigned:!1,min:0,max:Math.pow(2,8)-1},h:{en:X._EnInt,de:X._DeInt,len:2,bSigned:!0,min:-Math.pow(2,15),max:Math.pow(2,15)-1},H:{en:X._EnInt,de:X._DeInt,len:2,bSigned:!1,min:0,max:Math.pow(2,16)-1},i:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!0,min:-Math.pow(2,31),max:Math.pow(2,31)-1},I:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!1,min:0,max:Math.pow(2,32)-1},l:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!0,min:-Math.pow(2,31),max:Math.pow(2,31)-1},L:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!1,min:0,max:Math.pow(2,32)-1},f:{en:X._En754,de:X._De754,len:4,mLen:23,rt:Math.pow(2,-24)-Math.pow(2,-77)},d:{en:X._En754,de:X._De754,len:8,mLen:52,rt:0},q:{en:X._EnInt64,de:X._DeInt64,bSigned:!0},Q:{en:X._EnInt64,de:X._DeInt64,bSigned:!1}},X._UnpackSeries=function(Y,J,Z,V){for(var U=W.de,Q=[],N=0;N<Y;Q.push(U(Z,V+N*J)),N++);return Q},X._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++);},X.Unpack=function(Y,J,Z){G=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)},X.PackTo=function(Y,J,Z,V){G=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},X.Pack=function(Y,J){return this.PackTo(Y,Array(this.CalcLength(Y)),0,J)},X.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 W8=new gh;var ES=g1(UM(),1),HH=g1(uz(),1);import{createSocket as gd}from"dgram";import{createSocket as bd}from"dgram";import*as $S from"net";import{connect as md}from"net";import{createSign as pd,randomBytes as cd,webcrypto as ld}from"crypto";var MN0=g1(vM(),1);var P7={};AA(P7,{verifySchema:()=>im,fromBER:()=>Q4,compareSchema:()=>J4,VisibleString:()=>FW,ViewWriter:()=>dJ,VideotexString:()=>PX,ValueBlock:()=>W9,Utf8String:()=>h5,UniversalString:()=>CX,UTCTime:()=>SW,TimeOfDay:()=>tQ,TeletexString:()=>RX,TIME:()=>GN,Set:()=>p9,Sequence:()=>y9,Repeated:()=>wX,RelativeObjectIdentifier:()=>aQ,RawData:()=>BR,PrintableString:()=>MX,Primitive:()=>K6,OctetString:()=>M7,ObjectIdentifier:()=>OX,NumericString:()=>TX,Null:()=>T7,Integer:()=>O6,IA5String:()=>LX,HexBlock:()=>C7,GraphicString:()=>BX,GeneralizedTime:()=>FX,GeneralString:()=>EX,Enumerated:()=>KX,EndOfContent:()=>iQ,Duration:()=>WN,DateTime:()=>eQ,DEFAULT_MAX_NODES:()=>iM,DEFAULT_MAX_DEPTH:()=>nM,DEFAULT_MAX_CONTENT_LENGTH:()=>rM,DATE:()=>sQ,Constructed:()=>c8,Choice:()=>nJ,CharacterString:()=>$X,Boolean:()=>jX,BmpString:()=>DX,BitString:()=>R7,BaseStringBlock:()=>oQ,BaseBlock:()=>_8,Any:()=>V4});/*!
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,G=0){let X=[],Y=this.pad(G++),J="",Z=W[r1.VALUE];if(Z)J=` ${Z}`;X.push(`${Y}${W[r1.NAME]}:${J}`),Y=this.pad(G);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")X.push(`${Y}${Q}${U}`);else if(U instanceof Date)X.push(`${Y}${Q}${U.toUTCString()}`);else if(Array.isArray(U))for(let N of U)N[r1.NAME]=V,X.push(...this.serializeObj(N,G));else if(U instanceof r1)U[r1.NAME]=V,X.push(...this.serializeObj(U,G));else if(x0.isBufferSource(U))if(V)X.push(`${Y}${Q}`),X.push(...this.serializeBufferSource(U,G+1));else X.push(...this.serializeBufferSource(U,G));else if("toTextObject"in U){let N=U.toTextObject();N[r1.NAME]=V,X.push(...this.serializeObj(N,G))}else throw TypeError("Cannot serialize data in text format. Unsupported type.")}return X}static serializeBufferSource(W,G=0){let X=this.pad(G),Y=x0.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(`${X}${V.join(" ")}`)}return J}static serializeAlgorithm(W){return this.algorithmSerializer.toTextObject(W)}}k6.oidSerializer=T4;k6.algorithmSerializer=v3;var QY;class y6{get rawData(){if(!T1(this,QY,"f"))w8(this,QY,$0.serialize(this.asn),"f");return T1(this,QY,"f")}constructor(...W){if(QY.set(this,void 0),x0.isBufferSource(W[0]))this.asn=$0.parse(W[0],W[1]),w8(this,QY,x0.toArrayBuffer(W[0]),"f"),this.onInit(this.asn);else this.asn=W[0],this.onInit(this.asn)}equal(W){if(W instanceof y6)return uM(W.rawData,this.rawData);return!1}toString(W="text"){switch(W){case"asn":return $0.toString(this.rawData);case"text":return k6.serialize(this.toTextObject());case"hex":return n0.ToHex(this.rawData);case"base64":return n0.ToBase64(this.rawData);case"base64url":return n0.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 r1(this.getTextName(),{},W)}}QY=new WeakMap;y6.NAME="ASN";class U5 extends y6{constructor(...W){let G;if(x0.isBufferSource(W[0]))G=x0.toArrayBuffer(W[0]);else G=$0.serialize(new D9({extnID:W[0],critical:W[1],extnValue:new Y1(x0.toArrayBuffer(W[2]))}));super(G,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[r1.NAME]===U5.NAME)W[r1.NAME]=T4.toString(this.type);return W}}var g3;class x6{static isCryptoKeyPair(W){return W&&W.privateKey&&W.publicKey}static isCryptoKey(W){return W&&W.usages&&W.type&&W.algorithm&&W.extractable!==void 0}constructor(){if(this.items=new Map,this[g3]="CryptoProvider",typeof self<"u"&&typeof crypto<"u")this.set(x6.DEFAULT,crypto);else if(typeof global<"u"&&global.crypto&&global.crypto.subtle)this.set(x6.DEFAULT,global.crypto)}clear(){this.items.clear()}delete(W){return this.items.delete(W)}forEach(W,G){return this.items.forEach(W,G)}has(W){return this.items.has(W)}get size(){return this.items.size}entries(){return this.items.entries()}keys(){return this.items.keys()}values(){return this.items.values()}[Symbol.iterator](){return this.items[Symbol.iterator]()}get(W=x6.DEFAULT){let G=this.items.get(W.toLowerCase());if(!G)throw Error(`Cannot get Crypto by name '${W}'`);return G}set(W,G){if(typeof W==="string"){if(!G)throw TypeError("Argument 'value' is required");this.items.set(W.toLowerCase(),G)}else this.items.set(x6.DEFAULT,W);return this}}g3=Symbol.toStringTag;x6.DEFAULT="default";var g8=new x6,Yp=/^[0-2](?:\.[1-9][0-9]*)+$/;function Jp(W){return new RegExp(Yp).test(W)}class Jj{constructor(W={}){this.items={};for(let G in W)this.register(G,W[G])}get(W){return this.items[W]||null}findId(W){if(!Jp(W))return this.get(W);return W}register(W,G){this.items[W]=G,this.items[G]=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 Zp(W,G){return`\\${n0.ToHex(n0.FromUtf8String(G)).toUpperCase()}`}function Vp(W){return W.replace(/([,+"\\<>;])/g,"\\$1").replace(/^([ #])/,"\\$1").replace(/([ ]$)/,"\\$1").replace(/([\r\n\t])/,Zp)}class o5{static isASCII(W){for(let G=0;G<W.length;G++)if(W.charCodeAt(G)>255)return!1;return!0}static isPrintableString(W){return/^[A-Za-z0-9 '()+,-./:=?]*$/g.test(W)}constructor(W,G={}){this.extraNames=new Jj,this.asn=new Z8;for(let X in G)if(Object.prototype.hasOwnProperty.call(G,X)){let Y=G[X];this.extraNames.register(X,Y)}if(typeof W==="string")this.asn=this.fromString(W);else if(W instanceof Z8)this.asn=W;else if(x0.isBufferSource(W))this.asn=$0.parse(W,Z8);else this.asn=this.fromJSON(W)}getField(W){let G=this.extraNames.findId(W)||d9.findId(W),X=[];for(let Y of this.asn)for(let J of Y)if(J.type===G)X.push(J.value.toString());return X}getName(W){return this.extraNames.get(W)||d9.get(W)}toString(){return this.asn.map((W)=>W.map((G)=>{let X=this.getName(G.type)||G.type,Y=G.value.anyValue?`#${n0.ToHex(G.value.anyValue)}`:Vp(G.value.toString());return`${X}=${Y}`}).join("+")).join(", ")}toJSON(){var W;let G=[];for(let X of this.asn){let Y={};for(let J of X){let Z=this.getName(J.type)||J.type;(W=Y[Z])!==null&&W!==void 0||(Y[Z]=[]),Y[Z].push(J.value.anyValue?`#${n0.ToHex(J.value.anyValue)}`:J.value.toString())}G.push(Y)}return G}fromString(W){let G=new Z8,X=/(\d\.[\d.]*\d|[A-Za-z]+)=((?:"")|(?:".*?[^\\]")|(?:[^,+"\\](?=[,+]|$))|(?:[^,+].*?(?:[^\\][,+]))|(?:))([,+])?/g,Y=null,J=",";while(Y=X.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==="+")G[G.length-1].push(N);else G.push(new C6([N]));J=Q}return G}fromJSON(W){let G=new Z8;for(let X of W){let Y=new C6;for(let J in X){let Z=this.getTypeOid(J),V=X[J];for(let U of V){let Q=this.createAttribute(Z,U);Y.push(Q)}}G.push(Y)}return G}getTypeOid(W){if(!/[\d.]+/.test(W))W=this.getName(W)||"";if(!W)throw Error(`Cannot get OID for name type '${W}'`);return W}createAttribute(W,G){let X=new yX({type:W});if(typeof G==="object")for(let Y in G)switch(Y){case"ia5String":X.value.ia5String=G[Y];break;case"utf8String":X.value.utf8String=G[Y];break;case"universalString":X.value.universalString=G[Y];break;case"bmpString":X.value.bmpString=G[Y];break;case"printableString":X.value.printableString=G[Y];break}else if(G[0]==="#")X.value.anyValue=n0.FromHex(G.slice(1));else{let Y=this.processStringValue(G);if(W===this.getName("E")||W===this.getName("DC"))X.value.ia5String=Y;else if(o5.isPrintableString(Y))X.value.printableString=Y;else X.value.utf8String=Y}return X}processStringValue(W){let G=/"(.*?[^\\])?"/.exec(W);if(G)W=G[1];return W.replace(/\\0a/ig,`
240
240
  `).replace(/\\0d/ig,"\r").replace(/\\0g/ig,"\t").replace(/\\(.)/g,"$1")}toArrayBuffer(){return $0.serialize(this.asn)}async getThumbprint(...W){var G;let X,Y="SHA-1";if(W.length>=1&&!((G=W[0])===null||G===void 0?void 0:G.subtle))Y=W[0]||Y,X=W[1]||g8.get();else X=W[0]||g8.get();return await X.subtle.digest(Y,this.toArrayBuffer())}}var u3="Cannot initialize GeneralName from ASN.1 data.",M3=`${u3} Unsupported string format in use.`,Up=`${u3} Value doesn't match to GUID regular expression.`,R3=/^([0-9a-f]{8})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{12})$/i,P3="1.3.6.1.4.1.311.25.1",L3="1.3.6.1.4.1.311.20.2.3",ow="dns",nw="dn",iw="email",rw="ip",aw="url",sw="guid",tw="upn",rN="id";class D4 extends y6{constructor(...W){let G;if(W.length===2)switch(W[0]){case nw:{let X=new o5(W[1]).toArrayBuffer(),Y=$0.parse(X,Z8);G=new V1({directoryName:Y});break}case ow:G=new V1({dNSName:W[1]});break;case iw:G=new V1({rfc822Name:W[1]});break;case sw:{let X=new RegExp(R3,"i").exec(W[1]);if(!X)throw Error("Cannot parse GUID value. Value doesn't match to regular expression");let Y=X.slice(1).map((J,Z)=>{if(Z<3)return n0.ToHex(new Uint8Array(n0.FromHex(J)).reverse());return J}).join("");G=new V1({otherName:new kW({typeId:P3,value:$0.serialize(new Y1(n0.FromHex(Y)))})});break}case rw:G=new V1({iPAddress:W[1]});break;case rN:G=new V1({registeredID:W[1]});break;case tw:{G=new V1({otherName:new kW({typeId:L3,value:$0.serialize(QI.toASN(W[1]))})});break}case aw:G=new V1({uniformResourceIdentifier:W[1]});break;default:throw Error("Cannot create GeneralName. Unsupported type of the name")}else if(x0.isBufferSource(W[0]))G=$0.parse(W[0],V1);else G=W[0];super(G)}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=rN,this.value=W.registeredID;else if(W.directoryName!=null)this.type=nw,this.value=new o5(W.directoryName).toString();else if(W.otherName!=null)if(W.otherName.typeId===P3){this.type=sw;let G=$0.parse(W.otherName.value,Y1),X=new RegExp(R3,"i").exec(n0.ToHex(G));if(!X)throw Error(Up);this.value=X.slice(1).map((Y,J)=>{if(J<3)return n0.ToHex(new Uint8Array(n0.FromHex(Y)).reverse());return Y}).join("-")}else if(W.otherName.typeId===L3)this.type=tw,this.value=$0.parse(W.otherName.value,v8).toString();else throw Error(M3);else throw Error(M3)}toJSON(){return{type:this.type,value:this.value}}toTextObject(){let W;switch(this.type){case nw:case ow:case sw:case rw:case rN:case tw:case aw:W=this.type.toUpperCase();break;case iw:W="Email";break;default:throw Error("Unsupported GeneralName type")}let G=this.value;if(this.type===rN)G=T4.toString(G);return new r1(W,void 0,G)}}class _6 extends y6{constructor(W){let G;if(W instanceof j8)G=W;else if(Array.isArray(W)){let X=[];for(let Y of W)if(Y instanceof V1)X.push(Y);else{let J=$0.parse(new D4(Y.type,Y.value).rawData,V1);X.push(J)}G=new j8(X)}else if(x0.isBufferSource(W))G=$0.parse(W,j8);else throw Error("Cannot initialize GeneralNames. Incorrect incoming arguments");super(G)}onInit(W){let G=[];for(let X of W){let Y=null;try{Y=new D4(X)}catch{continue}G.push(Y)}this.items=G}toJSON(){return this.items.map((W)=>W.toJSON())}toTextObject(){let W=super.toTextObjectEmpty();for(let G of this.items){let X=G.toTextObject(),Y=W[X[r1.NAME]];if(!Array.isArray(Y))Y=[],W[X[r1.NAME]]=Y;Y.push(X)}return W}}_6.NAME="GeneralNames";var VV="-{5}",QV="\\n",Qp=`[^${QV}]+`,Np=`${VV}BEGIN (${Qp}(?=${VV}))${VV}`,qp=`${VV}END \\1${VV}`,HY="\\n",Hp=`[^:${QV}]+`,Ap=`(?:[^${QV}]+${HY}(?: +[^${QV}]+${HY})*)`,zp="[a-zA-Z0-9=+/]+",Ip=`(?:${zp}${HY})+`,B3=`${Np}${HY}(?:((?:${Hp}: ${Ap})+))?${HY}?(${Ip})${qp}`;class T9{static isPem(W){return typeof W==="string"&&new RegExp(B3,"g").test(W.replace(/\r/g,""))}static decodeWithHeaders(W){W=W.replace(/\r/g,"");let G=new RegExp(B3,"g"),X=[],Y=null;while(Y=G.exec(W)){let J=Y[3].replace(new RegExp(`[${QV}]+`,"g"),""),Z={type:Y[1],headers:[],rawData:n0.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)}X.push(Z)}return X}static decode(W){return this.decodeWithHeaders(W).map((X)=>X.rawData)}static decodeFirst(W){let G=this.decode(W);if(!G.length)throw RangeError("PEM string doesn't contain any objects");return G[0]}static encode(W,G){if(Array.isArray(W)){let X=[];if(G)W.forEach((Y)=>{if(!x0.isBufferSource(Y))throw TypeError("Cannot encode array of BufferSource in PEM format. Not all items of the array are BufferSource");X.push(this.encodeStruct({type:G,rawData:x0.toArrayBuffer(Y)}))});else W.forEach((Y)=>{if(!("type"in Y))throw TypeError("Cannot encode array of PemStruct in PEM format. Not all items of the array are PemStrut");X.push(this.encodeStruct(Y))});return X.join(`
241
241
  `)}else{if(!G)throw Error("Required argument 'tag' is missed");return this.encodeStruct({type:G,rawData:x0.toArrayBuffer(W)})}}static encodeStruct(W){var G;let X=W.type.toLocaleUpperCase(),Y=[];if(Y.push(`-----BEGIN ${X}-----`),(G=W.headers)===null||G===void 0?void 0:G.length){for(let Q of W.headers)Y.push(`${Q.key}: ${Q.value}`);Y.push("")}let J=n0.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 ${X}-----`),Y.join(`
242
- `)}}T9.CertificateTag="CERTIFICATE";T9.CrlTag="CRL";T9.CertificateRequestTag="CERTIFICATE REQUEST";T9.PublicKeyTag="PUBLIC KEY";T9.PrivateKeyTag="PRIVATE KEY";class C4 extends y6{static isAsnEncoded(W){return x0.isBufferSource(W)||typeof W==="string"}static toArrayBuffer(W){if(typeof W==="string")if(T9.isPem(W))return T9.decode(W)[0];else if(n0.isHex(W))return n0.FromHex(W);else if(n0.isBase64(W))return n0.FromBase64(W);else if(n0.isBase64Url(W))return n0.FromBase64Url(W);else throw TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url");else{let G=x0.toUint8Array(W);if(G.length>0&&G[0]===48)return x0.toArrayBuffer(W);let X=n0.ToBinary(W);if(T9.isPem(X))return T9.decode(X)[0];else if(n0.isHex(X))return n0.FromHex(X);else if(n0.isBase64(X))return n0.FromBase64(X);else if(n0.isBase64Url(X))return n0.FromBase64Url(X);throw TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url")}}constructor(...W){if(C4.isAsnEncoded(W[0]))super(C4.toArrayBuffer(W[0]),W[1]);else super(W[0])}toString(W="pem"){switch(W){case"pem":return T9.encode(this.rawData,this.tag);default:return super.toString(W)}}}class n5 extends C4{static async create(W,G=g8.get()){if(W instanceof n5)return W;else if(x6.isCryptoKey(W)){if(W.type!=="public")throw TypeError("Public key is required");let X=await G.subtle.exportKey("spki",W);return new n5(X)}else if(W.publicKey)return W.publicKey;else if(x0.isBufferSource(W))return new n5(W);else throw TypeError("Unsupported PublicKeyType")}constructor(W){if(C4.isAsnEncoded(W))super(W,O9);else super(W);this.tag=T9.PublicKeyTag}async export(...W){let G,X=["verify"],Y={hash:"SHA-256",...this.algorithm};if(W.length>1)Y=W[0]||Y,X=W[1]||X,G=W[2]||g8.get();else G=W[0]||g8.get();let J=this.rawData,Z=$0.parse(this.rawData,O9);if(Z.algorithm.algorithm===E6)J=wp(Z,J);return G.subtle.importKey("spki",J,Y,!0,X)}onInit(W){let G=q8.resolve(ZG),X=this.algorithm=G.toWebAlgorithm(W.algorithm);switch(W.algorithm.algorithm){case S7:{let Y=$0.parse(W.subjectPublicKey,SZ),J=x0.toUint8Array(Y.modulus);X.publicExponent=x0.toUint8Array(Y.publicExponent),X.modulusLength=(!J[0]?J.slice(1):J).byteLength<<3;break}}}async getThumbprint(...W){var G;let X,Y="SHA-1";if(W.length>=1&&!((G=W[0])===null||G===void 0?void 0:G.subtle))Y=W[0]||Y,X=W[1]||g8.get();else X=W[0]||g8.get();return await X.subtle.digest(Y,this.rawData)}async getKeyIdentifier(...W){let G,X="SHA-1";if(W.length===1)if(typeof W[0]==="string")X=W[0],G=g8.get();else G=W[0];else if(W.length===2)X=W[0],G=W[1];else G=g8.get();let Y=$0.parse(this.rawData,O9);return await G.subtle.digest(X,Y.subjectPublicKey)}toTextObject(){let W=this.toTextObjectEmpty(),G=$0.parse(this.rawData,O9);switch(W.Algorithm=k6.serializeAlgorithm(G.algorithm),G.algorithm.algorithm){case nW:W["EC Point"]=G.subjectPublicKey;break;case S7:default:W["Raw Data"]=G.subjectPublicKey}return W}}function wp(W,G){return W.algorithm=new R0({algorithm:S7,parameters:null}),G=$0.serialize(W),G}class NV extends U5{static async create(W,G=!1,X=g8.get()){if("name"in W&&"serialNumber"in W)return new NV(W,G);let J=await(await n5.create(W,X)).getKeyIdentifier(X);return new NV(n0.ToHex(J),G)}constructor(...W){if(x0.isBufferSource(W[0]))super(W[0]);else if(typeof W[0]==="string"){let G=new H4({keyIdentifier:new vX(n0.FromHex(W[0]))});super(HN,W[1],$0.serialize(G))}else{let G=W[0],X=G.name instanceof _6?$0.parse(G.name.rawData,j8):G.name,Y=new H4({authorityCertIssuer:X,authorityCertSerialNumber:n0.FromHex(G.serialNumber)});super(HN,W[1],$0.serialize(Y))}}onInit(W){super.onInit(W);let G=$0.parse(W.extnValue,H4);if(G.keyIdentifier)this.keyId=n0.ToHex(G.keyIdentifier);if(G.authorityCertIssuer||G.authorityCertSerialNumber)this.certId={name:G.authorityCertIssuer||[],serialNumber:G.authorityCertSerialNumber?n0.ToHex(G.authorityCertSerialNumber):""}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=$0.parse(this.value,H4);if(G.authorityCertIssuer)W["Authority Issuer"]=new _6(G.authorityCertIssuer).toTextObject();if(G.authorityCertSerialNumber)W["Authority Serial Number"]=G.authorityCertSerialNumber;if(G.keyIdentifier)W[""]=G.keyIdentifier;return W}}NV.NAME="Authority Key Identifier";class Zj extends U5{constructor(...W){if(x0.isBufferSource(W[0])){super(W[0]);let G=$0.parse(this.value,gX);this.ca=G.cA,this.pathLength=G.pathLenConstraint}else{let G=new gX({cA:W[0],pathLenConstraint:W[1]});super(AN,W[2],$0.serialize(G));this.ca=W[0],this.pathLength=W[1]}}toTextObject(){let W=this.toTextObjectWithoutValue();if(this.ca)W.CA=this.ca;if(this.pathLength!==void 0)W["Path Length"]=this.pathLength;return W}}Zj.NAME="Basic Constraints";var E3;(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"})(E3||(E3={}));class Vj extends U5{constructor(...W){if(x0.isBufferSource(W[0])){super(W[0]);let G=$0.parse(this.value,WZ);this.usages=G.map((X)=>X)}else{let G=new WZ(W[0]);super(CN,W[1],$0.serialize(G));this.usages=W[0]}}toTextObject(){let W=this.toTextObjectWithoutValue();return W[""]=this.usages.map((G)=>T4.toString(G)).join(", "),W}}Vj.NAME="Extended Key Usages";var $3;(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"})($3||($3={}));class Uj extends U5{constructor(...W){if(x0.isBufferSource(W[0])){super(W[0]);let G=$0.parse(this.value,XZ);this.usages=G.toNumber()}else{let G=new XZ(W[0]);super(TN,W[1],$0.serialize(G));this.usages=W[0]}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=$0.parse(this.value,XZ);return W[""]=G.toJSON().join(", "),W}}Uj.NAME="Key Usages";class Wq extends U5{static async create(W,G=!1,X=g8.get()){let J=await(await n5.create(W,X)).getKeyIdentifier(X);return new Wq(n0.ToHex(J),G)}constructor(...W){if(x0.isBufferSource(W[0])){super(W[0]);let G=$0.parse(this.value,Y5);this.keyId=n0.ToHex(G)}else{let G=typeof W[0]==="string"?n0.FromHex(W[0]):W[0],X=new Y5(G);super(mI,W[1],$0.serialize(X));this.keyId=n0.ToHex(G)}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=$0.parse(this.value,Y5);return W[""]=G,W}}Wq.NAME="Subject Key Identifier";class Qj extends U5{constructor(...W){if(x0.isBufferSource(W[0]))super(W[0]);else super(hI,W[1],new _6(W[0]||[]).rawData)}onInit(W){super.onInit(W);let G=$0.parse(W.extnValue,PN);this.names=new _6(G)}toTextObject(){let W=this.toTextObjectWithoutValue(),G=this.names.toTextObject();for(let X in G)W[X]=G[X];return W}}Qj.NAME="Subject Alternative Name";class n9{static register(W,G){this.items.set(W,G)}static create(W){let G=new U5(W),X=this.items.get(G.type);if(X)return new X(W);return G}}n9.items=new Map;class Nj extends U5{constructor(...W){var G;if(x0.isBufferSource(W[0])){super(W[0]);let X=$0.parse(this.value,aJ);this.policies=X.map((Y)=>Y.policyIdentifier)}else{let X=W[0],Y=(G=W[1])!==null&&G!==void 0?G:!1,J=new aJ(X.map((Z)=>new uX({policyIdentifier:Z})));super(IN,Y,$0.serialize(J));this.policies=X}}toTextObject(){let W=this.toTextObjectWithoutValue();return W.Policy=this.policies.map((G)=>new r1("",{},T4.toString(G))),W}}Nj.NAME="Certificate Policies";n9.register(IN,Nj);class qj extends U5{constructor(...W){var G;if(x0.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 I4({distributionPoint:new z4({fullName:[new V1({uniformResourceIdentifier:Z})]})})}),J=new R6(Y);super(ON,W[1],$0.serialize(J))}else{let X=new R6(W[0]);super(ON,W[1],$0.serialize(X))}(G=this.distributionPoints)!==null&&G!==void 0||(this.distributionPoints=[])}onInit(W){super.onInit(W);let G=$0.parse(W.extnValue,R6);this.distributionPoints=G}toTextObject(){let W=this.toTextObjectWithoutValue();return W["Distribution Point"]=this.distributionPoints.map((G)=>{var X;let Y={};if(G.distributionPoint)Y[""]=(X=G.distributionPoint.fullName)===null||X===void 0?void 0:X.map((J)=>new D4(J).toString()).join(", ");if(G.reasons)Y.Reasons=G.reasons.toString();if(G.cRLIssuer)Y["CRL Issuer"]=G.cRLIssuer.map((J)=>J.toString()).join(", ");return Y}),W}}qj.NAME="CRL Distribution Points";class Hj extends U5{constructor(...W){var G,X,Y,J;if(x0.isBufferSource(W[0]))super(W[0]);else if(W[0]instanceof yW){let Z=new yW(W[0]);super(qN,W[1],$0.serialize(Z))}else{let Z=W[0],V=new yW;sN(V,Z,DI,"ocsp"),sN(V,Z,CI,"caIssuers"),sN(V,Z,TI,"timeStamping"),sN(V,Z,MI,"caRepository");super(qN,W[1],$0.serialize(V))}(G=this.ocsp)!==null&&G!==void 0||(this.ocsp=[]),(X=this.caIssuers)!==null&&X!==void 0||(this.caIssuers=[]),(Y=this.timeStamping)!==null&&Y!==void 0||(this.timeStamping=[]),(J=this.caRepository)!==null&&J!==void 0||(this.caRepository=[])}onInit(W){super.onInit(W),this.ocsp=[],this.caIssuers=[],this.timeStamping=[],this.caRepository=[],$0.parse(W.extnValue,yW).forEach((X)=>{switch(X.accessMethod){case DI:this.ocsp.push(new D4(X.accessLocation));break;case CI:this.caIssuers.push(new D4(X.accessLocation));break;case TI:this.timeStamping.push(new D4(X.accessLocation));break;case MI:this.caRepository.push(new D4(X.accessLocation));break}})}toTextObject(){let W=this.toTextObjectWithoutValue();if(this.ocsp.length)aN(W,"OCSP",this.ocsp);if(this.caIssuers.length)aN(W,"CA Issuers",this.caIssuers);if(this.timeStamping.length)aN(W,"Time Stamping",this.timeStamping);if(this.caRepository.length)aN(W,"CA Repository",this.caRepository);return W}}Hj.NAME="Authority Info Access";function aN(W,G,X){if(X.length===1)W[G]=X[0].toTextObject();else{let Y=new r1("");X.forEach((J,Z)=>{let V=J.toTextObject(),U=`${V[r1.NAME]} ${Z+1}`,Q=Y[U];if(!Array.isArray(Q))Q=[],Y[U]=Q;Q.push(V)}),W[G]=Y}}function sN(W,G,X,Y){let J=G[Y];if(J)(Array.isArray(J)?J:[J]).forEach((V)=>{if(typeof V==="string")V=new D4("url",V);W.push(new M6({accessMethod:X,accessLocation:$0.parse(V.rawData,V1)}))})}class Aj extends U5{constructor(...W){if(x0.isBufferSource(W[0]))super(W[0]);else super(kI,W[1],new _6(W[0]||[]).rawData)}onInit(W){super.onInit(W);let G=$0.parse(W.extnValue,j8);this.names=new _6(G)}toTextObject(){let W=this.toTextObjectWithoutValue(),G=this.names.toTextObject();for(let X in G)W[X]=G[X];return W}}Aj.NAME="Issuer Alternative Name";class AY extends y6{constructor(...W){let G;if(x0.isBufferSource(W[0]))G=x0.toArrayBuffer(W[0]);else{let X=W[0],Y=Array.isArray(W[1])?W[1].map((J)=>x0.toArrayBuffer(J)):[];G=$0.serialize(new K9({type:X,values:Y}))}super(G,K9)}onInit(W){this.type=W.type,this.values=W.values}toTextObject(){let W=this.toTextObjectWithoutValue();return W.Value=this.values.map((G)=>new r1("",{"":G})),W}toTextObjectWithoutValue(){let W=this.toTextObjectEmpty();if(W[r1.NAME]===AY.NAME)W[r1.NAME]=T4.toString(this.type);return W}}AY.NAME="Attribute";class zj extends AY{constructor(...W){var G;if(x0.isBufferSource(W[0]))super(W[0]);else{let X=new uZ({printableString:W[0]});super(lw,[$0.serialize(X)])}(G=this.password)!==null&&G!==void 0||(this.password="")}onInit(W){if(super.onInit(W),this.values[0]){let G=$0.parse(this.values[0],uZ);this.password=G.toString()}}toTextObject(){let W=this.toTextObjectWithoutValue();return W[r1.VALUE]=this.password,W}}zj.NAME="Challenge Password";class Gq extends AY{constructor(...W){var G;if(x0.isBufferSource(W[0]))super(W[0]);else{let X=W[0],Y=new J5;for(let J of X)Y.push($0.parse(J.rawData,D9));super(bZ,[$0.serialize(Y)])}(G=this.items)!==null&&G!==void 0||(this.items=[])}onInit(W){if(super.onInit(W),this.values[0]){let G=$0.parse(this.values[0],J5);this.items=G.map((X)=>n9.create($0.serialize(X)))}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=this.items.map((X)=>X.toTextObject());for(let X of G)W[X[r1.NAME]]=X;return W}}Gq.NAME="Extensions";class HV{static register(W,G){this.items.set(W,G)}static create(W){let G=new AY(W),X=this.items.get(G.type);if(X)return new X(W);return G}}HV.items=new Map;var AV="crypto.signatureFormatter";class h3{toAsnSignature(W,G){return x0.toArrayBuffer(G)}toWebSignature(W,G){return x0.toArrayBuffer(G)}}var eN,Gj=eN=class{static createPssParams(G,X){let Y=eN.getHashAlgorithm(G);if(!Y)return null;return new K4({hashAlgorithm:Y,maskGenAlgorithm:new R0({algorithm:$6,parameters:$0.serialize(Y)}),saltLength:X})}static getHashAlgorithm(G){let X=q8.resolve(ZG);if(typeof G==="string")return X.toAsnAlgorithm({name:G});if(typeof G==="object"&&G&&"name"in G)return X.toAsnAlgorithm(G);return null}toAsnAlgorithm(G){switch(G.name.toLowerCase()){case"rsassa-pkcs1-v1_5":if("hash"in G){let X;if(typeof G.hash==="string")X=G.hash;else if(G.hash&&typeof G.hash==="object"&&"name"in G.hash&&typeof G.hash.name==="string")X=G.hash.name.toUpperCase();else throw Error("Cannot get hash algorithm name");switch(X.toLowerCase()){case"sha-1":return new R0({algorithm:eX,parameters:null});case"sha-256":return new R0({algorithm:hN,parameters:null});case"sha-384":return new R0({algorithm:WY,parameters:null});case"sha-512":return new R0({algorithm:GY,parameters:null})}}else return new R0({algorithm:S7,parameters:null});break;case"rsa-pss":if("hash"in G){if(!(("saltLength"in G)&&typeof G.saltLength==="number"))throw Error("Cannot get 'saltLength' from 'alg' argument");let X=eN.createPssParams(G.hash,G.saltLength);if(!X)throw Error("Cannot create PSS parameters");return new R0({algorithm:E6,parameters:$0.serialize(X)})}else return new R0({algorithm:E6,parameters:null})}return null}toWebAlgorithm(G){switch(G.algorithm){case S7:return{name:"RSASSA-PKCS1-v1_5"};case eX:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-1"}};case hN:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case WY:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}};case GY:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}};case E6:if(G.parameters){let X=$0.parse(G.parameters,K4);return{name:"RSA-PSS",hash:q8.resolve(ZG).toWebAlgorithm(X.hashAlgorithm),saltLength:X.saltLength}}else return{name:"RSA-PSS"}}return null}};Gj=eN=j([S6()],Gj);q8.registerSingleton(qV,Gj);var Xj=class{toAsnAlgorithm(G){switch(G.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(G){switch(G.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}};Xj=j([S6()],Xj);q8.registerSingleton(qV,Xj);class L5{addPadding(W,G){let X=x0.toUint8Array(G),Y=new Uint8Array(W);return Y.set(X,W-X.length),Y.buffer}removePadding(W,G=!1){let X=x0.toUint8Array(W);for(let Y=0;Y<X.length;Y++){if(!X[Y])continue;X=X.slice(Y);break}if(G&&X[0]>127){let Y=new Uint8Array(X.length+1);return Y.set(X,1),Y.buffer}return X.buffer}toAsnSignature(W,G){if(W.name==="ECDSA"){let X=W.namedCurve,Y=L5.namedCurveSize.get(X)||L5.defaultNamedCurveSize,J=new tX,Z=x0.toUint8Array(G);return J.r=this.removePadding(Z.slice(0,Y),!0),J.s=this.removePadding(Z.slice(Y,Y+Y),!0),$0.serialize(J)}return null}toWebSignature(W,G){if(W.name==="ECDSA"){let X=$0.parse(G,tX),Y=W.namedCurve,J=L5.namedCurveSize.get(Y)||L5.defaultNamedCurveSize,Z=this.addPadding(J,this.removePadding(X.r)),V=this.addPadding(J,this.removePadding(X.s));return gM(Z,V)}return null}}L5.namedCurveSize=new Map;L5.defaultNamedCurveSize=32;var ew="1.3.101.110",F3="1.3.101.111",Wj="1.3.101.112",S3="1.3.101.113",Yj=class{toAsnAlgorithm(G){let X=null;switch(G.name.toLowerCase()){case"ed25519":X=Wj;break;case"x25519":X=ew;break;case"eddsa":switch(G.namedCurve.toLowerCase()){case"ed25519":X=Wj;break;case"ed448":X=S3;break}break;case"ecdh-es":switch(G.namedCurve.toLowerCase()){case"x25519":X=ew;break;case"x448":X=F3;break}}if(X)return new R0({algorithm:X});return null}toWebAlgorithm(G){switch(G.algorithm){case Wj:return{name:"Ed25519"};case S3:return{name:"EdDSA",namedCurve:"Ed448"};case ew:return{name:"X25519"};case F3:return{name:"ECDH-ES",namedCurve:"X448"}}return null}};Yj=j([S6()],Yj);q8.registerSingleton(qV,Yj);var pZ,cZ,lZ,dZ,oZ,nZ,iZ,NY;class b3 extends C4{get subjectName(){if(!T1(this,cZ,"f"))w8(this,cZ,new o5(this.asn.certificationRequestInfo.subject),"f");return T1(this,cZ,"f")}get subject(){if(!T1(this,lZ,"f"))w8(this,lZ,this.subjectName.toString(),"f");return T1(this,lZ,"f")}get signatureAlgorithm(){if(!T1(this,dZ,"f")){let W=q8.resolve(ZG);w8(this,dZ,W.toWebAlgorithm(this.asn.signatureAlgorithm),"f")}return T1(this,dZ,"f")}get signature(){if(!T1(this,oZ,"f"))w8(this,oZ,this.asn.signature,"f");return T1(this,oZ,"f")}get publicKey(){if(!T1(this,nZ,"f"))w8(this,nZ,new n5(this.asn.certificationRequestInfo.subjectPKInfo),"f");return T1(this,nZ,"f")}get attributes(){if(!T1(this,iZ,"f"))w8(this,iZ,this.asn.certificationRequestInfo.attributes.map((W)=>HV.create($0.serialize(W))),"f");return T1(this,iZ,"f")}get extensions(){if(!T1(this,NY,"f")){w8(this,NY,[],"f");let W=this.getAttribute(bZ);if(W instanceof Gq)w8(this,NY,W.items,"f")}return T1(this,NY,"f")}get tbs(){if(!T1(this,pZ,"f"))w8(this,pZ,this.asn.certificationRequestInfoRaw||$0.serialize(this.asn.certificationRequestInfo),"f");return T1(this,pZ,"f")}constructor(W){let G=C4.isAsnEncoded(W)?[W,JG]:[W];super(G[0],G[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 G of this.attributes)if(G.type===W)return G;return null}getAttributes(W){return this.attributes.filter((G)=>G.type===W)}getExtension(W){for(let G of this.extensions)if(G.type===W)return G;return null}getExtensions(W){return this.extensions.filter((G)=>G.type===W)}async verify(W=g8.get()){let G={...this.publicKey.algorithm,...this.signatureAlgorithm},X=await this.publicKey.export(G,["verify"],W),Y=q8.resolveAll(AV).reverse(),J=null;for(let V of Y)if(J=V.toWebSignature(G,this.signature),J)break;if(!J)throw Error("Cannot convert WebCrypto signature value to ASN.1 format");return await W.subtle.verify(this.signatureAlgorithm,X,J,this.tbs)}toTextObject(){let W=this.toTextObjectEmpty(),G=$0.parse(this.rawData,JG),X=G.certificationRequestInfo,Y=new r1("",{Version:`${L7[X.version]} (${X.version})`,Subject:this.subject,"Subject Public Key Info":this.publicKey});if(this.attributes.length){let J=new r1("");for(let Z of this.attributes){let V=Z.toTextObject();J[V[r1.NAME]]=V}Y.Attributes=J}return W.Data=Y,W.Signature=new r1("",{Algorithm:k6.serializeAlgorithm(G.signatureAlgorithm),"":G.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;b3.NAME="PKCS#10 Certificate Request";var rZ,aZ,sZ,tZ,eZ,WV,GV,XV,YV,JV,qY,ZV;class Ij extends C4{get publicKey(){if(!T1(this,ZV,"f"))w8(this,ZV,new n5(this.asn.tbsCertificate.subjectPublicKeyInfo),"f");return T1(this,ZV,"f")}get serialNumber(){if(!T1(this,aZ,"f")){let W=this.asn.tbsCertificate,G=new Uint8Array(W.serialNumber);if(G.length>1&&G[0]===0&&G[1]>127)G=G.slice(1);w8(this,aZ,n0.ToHex(G),"f")}return T1(this,aZ,"f")}get subjectName(){if(!T1(this,sZ,"f"))w8(this,sZ,new o5(this.asn.tbsCertificate.subject),"f");return T1(this,sZ,"f")}get subject(){if(!T1(this,tZ,"f"))w8(this,tZ,this.subjectName.toString(),"f");return T1(this,tZ,"f")}get issuerName(){if(!T1(this,eZ,"f"))w8(this,eZ,new o5(this.asn.tbsCertificate.issuer),"f");return T1(this,eZ,"f")}get issuer(){if(!T1(this,WV,"f"))w8(this,WV,this.issuerName.toString(),"f");return T1(this,WV,"f")}get notBefore(){if(!T1(this,GV,"f")){let W=this.asn.tbsCertificate.validity.notBefore.utcTime||this.asn.tbsCertificate.validity.notBefore.generalTime;if(!W)throw Error("Cannot get 'notBefore' value");w8(this,GV,W,"f")}return T1(this,GV,"f")}get notAfter(){if(!T1(this,XV,"f")){let W=this.asn.tbsCertificate.validity.notAfter.utcTime||this.asn.tbsCertificate.validity.notAfter.generalTime;if(!W)throw Error("Cannot get 'notAfter' value");w8(this,XV,W,"f")}return T1(this,XV,"f")}get signatureAlgorithm(){if(!T1(this,YV,"f")){let W=q8.resolve(ZG);w8(this,YV,W.toWebAlgorithm(this.asn.signatureAlgorithm),"f")}return T1(this,YV,"f")}get signature(){if(!T1(this,JV,"f"))w8(this,JV,this.asn.signatureValue,"f");return T1(this,JV,"f")}get extensions(){if(!T1(this,qY,"f")){if(w8(this,qY,[],"f"),this.asn.tbsCertificate.extensions)w8(this,qY,this.asn.tbsCertificate.extensions.map((W)=>n9.create($0.serialize(W))),"f")}return T1(this,qY,"f")}get tbs(){if(!T1(this,rZ,"f"))w8(this,rZ,this.asn.tbsCertificateRaw||$0.serialize(this.asn.tbsCertificate),"f");return T1(this,rZ,"f")}constructor(W){let G=C4.isAsnEncoded(W)?[W,f5]:[W];super(G[0],G[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),GV.set(this,void 0),XV.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 G of this.extensions)if(typeof W==="string"){if(G.type===W)return G}else if(G instanceof W)return G;return null}getExtensions(W){return this.extensions.filter((G)=>{if(typeof W==="string")return G.type===W;else return G instanceof W})}async verify(W={},G=g8.get()){let X,Y,J=W.publicKey;try{if(!J)X={...this.publicKey.algorithm,...this.signatureAlgorithm},Y=await this.publicKey.export(X,["verify"],G);else if("publicKey"in J)X={...J.publicKey.algorithm,...this.signatureAlgorithm},Y=await J.publicKey.export(X,["verify"],G);else if(J instanceof n5)X={...J.algorithm,...this.signatureAlgorithm},Y=await J.export(X,["verify"],G);else if(x0.isBufferSource(J)){let Q=new n5(J);X={...Q.algorithm,...this.signatureAlgorithm},Y=await Q.export(X,["verify"],G)}else X={...J.algorithm,...this.signatureAlgorithm},Y=J}catch{return!1}let Z=q8.resolveAll(AV).reverse(),V=null;for(let Q of Z)if(V=Q.toWebSignature(X,this.signature),V)break;if(!V)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");let U=await G.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 G,X="SHA-1";if(W[0])if(!W[0].subtle)X=W[0]||X,G=W[1];else G=W[0];return G!==null&&G!==void 0||(G=g8.get()),await G.subtle.digest(X,this.rawData)}async isSelfSigned(W=g8.get()){return this.subject===this.issuer&&await this.verify({signatureOnly:!0},W)}toTextObject(){let W=this.toTextObjectEmpty(),G=$0.parse(this.rawData,f5),X=G.tbsCertificate,Y=new r1("",{Version:`${L7[X.version]} (${X.version})`,"Serial Number":X.serialNumber,"Signature Algorithm":k6.serializeAlgorithm(X.signature),Issuer:this.issuer,Validity:new r1("",{"Not Before":X.validity.notBefore.getTime(),"Not After":X.validity.notAfter.getTime()}),Subject:this.subject,"Subject Public Key Info":this.publicKey});if(X.issuerUniqueID)Y["Issuer Unique ID"]=X.issuerUniqueID;if(X.subjectUniqueID)Y["Subject Unique ID"]=X.subjectUniqueID;if(this.extensions.length){let J=new r1("");for(let Z of this.extensions){let V=Z.toTextObject();J[V[r1.NAME]]=V}Y.Extensions=J}return W.Data=Y,W.Signature=new r1("",{Algorithm:k6.serializeAlgorithm(G.signatureAlgorithm),"":G.signatureValue}),W}}rZ=new WeakMap,aZ=new WeakMap,sZ=new WeakMap,tZ=new WeakMap,eZ=new WeakMap,WV=new WeakMap,GV=new WeakMap,XV=new WeakMap,YV=new WeakMap,JV=new WeakMap,qY=new WeakMap,ZV=new WeakMap;Ij.NAME="Certificate";function jp(W,G=g8.get()){let X=x0.toUint8Array(n0.FromHex(W||"")),Y=X&&X.length&&X.some((Z)=>Z>0)?new Uint8Array(X):void 0;if(!Y)Y=G.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,G=g8.get()){if(!W.keys.privateKey)throw Error("Bad field 'keys' in 'params' argument. 'privateKey' is empty");if(!W.keys.publicKey)throw Error("Bad field 'keys' in 'params' argument. 'publicKey' is empty");return this.create({serialNumber:W.serialNumber,subject:W.name,issuer:W.name,notBefore:W.notBefore,notAfter:W.notAfter,publicKey:W.keys.publicKey,signingKey:W.keys.privateKey,signingAlgorithm:W.signingAlgorithm,extensions:W.extensions},G)}static async create(W,G=g8.get()){var X;let Y;if(W.publicKey instanceof n5)Y=W.publicKey.rawData;else if("publicKey"in W.publicKey)Y=W.publicKey.publicKey.rawData;else if(x0.isBufferSource(W.publicKey))Y=W.publicKey;else Y=await G.subtle.exportKey("spki",W.publicKey);let J=jp(W.serialNumber,G),Z=W.notBefore||new Date,V=W.notAfter||new Date(Z.getTime()+31536000000),U=new f5({tbsCertificate:new C9({version:L7.v3,serialNumber:J,validity:new P6({notBefore:Z,notAfter:V}),extensions:new J5(((X=W.extensions)===null||X===void 0?void 0:X.map((O)=>$0.parse(O.rawData,D9)))||[]),subjectPublicKeyInfo:$0.parse(Y,O9)})});if(W.subject){let O=W.subject instanceof o5?W.subject:new o5(W.subject);U.tbsCertificate.subject=$0.parse(O.toArrayBuffer(),Z8)}if(W.issuer){let O=W.issuer instanceof o5?W.issuer:new o5(W.issuer);U.tbsCertificate.issuer=$0.parse(O.toArrayBuffer(),Z8)}let Q={hash:"SHA-256"},N="signingKey"in W?{...Q,...W.signingAlgorithm,...W.signingKey.algorithm}:{...Q,...W.signingAlgorithm},q=q8.resolve(ZG);U.tbsCertificate.signature=U.signatureAlgorithm=q.toAsnAlgorithm(N);let A=$0.serialize(U.tbsCertificate),H="signingKey"in W?await G.subtle.sign(N,W.signingKey,A):W.signature,I=q8.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($0.serialize(U))}}var Kp,Op,Dp,Cp,Tp,x3;(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"})(x3||(x3={}));Kp=new WeakMap,Op=new WeakMap,Dp=new WeakMap,Cp=new WeakMap,Tp=new WeakMap;var Mp,Rp,Pp,Lp,Bp,Ep,$p;Mp=new WeakMap,Rp=new WeakMap,Pp=new WeakMap,Lp=new WeakMap,Bp=new WeakMap,Ep=new WeakMap,$p=new WeakMap;n9.register(AN,Zj);n9.register(CN,Vj);n9.register(TN,Uj);n9.register(mI,Wq);n9.register(HN,NV);n9.register(hI,Qj);n9.register(ON,qj);n9.register(qN,Hj);n9.register(kI,Aj);HV.register(lw,zj);HV.register(bZ,Gq);q8.registerSingleton(AV,h3);q8.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=g1(O8(),1),kS=g1(O8(),1),_S=g1(_Q(),1);import{createHash as nd,createHmac as id}from"crypto";import*as M4 from"crypto";var UG=M4&&typeof M4==="object"&&"webcrypto"in M4?M4.webcrypto:M4&&typeof M4==="object"&&("randomBytes"in M4)?M4:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function QG(W){return W instanceof Uint8Array||ArrayBuffer.isView(W)&&W.constructor.name==="Uint8Array"}function DV(W){if(!Number.isSafeInteger(W)||W<0)throw Error("positive integer expected, got "+W)}function i5(W,...G){if(!QG(W))throw Error("Uint8Array expected");if(G.length>0&&!G.includes(W.length))throw Error("Uint8Array expected of length "+G+", got length="+W.length)}function Nq(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,G=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(G&&W.finished)throw Error("Hash#digest() has already been called")}function OE(W,G){i5(W);let X=G.outputLen;if(W.length<X)throw Error("digestInto() expects output buffer of length at least "+X)}function P4(...W){for(let G=0;G<W.length;G++)W[G].fill(0)}function qq(W){return new DataView(W.buffer,W.byteOffset,W.byteLength)}function r5(W,G){return W<<32-G|W>>>G}var DE=(()=>typeof Uint8Array.from([]).toHex==="function"&&typeof Uint8Array.fromHex==="function")(),Yl=Array.from({length:256},(W,G)=>G.toString(16).padStart(2,"0"));function L4(W){if(i5(W),DE)return W.toHex();let G="";for(let X=0;X<W.length;X++)G+=Yl[W[X]];return G}var R4={_0:48,_9:57,A:65,F:70,a:97,f:102};function KE(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 NG(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);if(DE)return Uint8Array.fromHex(W);let G=W.length,X=G/2;if(G%2)throw Error("hex string expected, got unpadded hex of length "+G);let Y=new Uint8Array(X);for(let J=0,Z=0;J<X;J++,Z+=2){let V=KE(W.charCodeAt(Z)),U=KE(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 Hq(W){if(typeof W!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(W))}function CV(W){if(typeof W==="string")W=Hq(W);return i5(W),W}function r9(...W){let G=0;for(let Y=0;Y<W.length;Y++){let J=W[Y];i5(J),G+=J.length}let X=new Uint8Array(G);for(let Y=0,J=0;Y<W.length;Y++){let Z=W[Y];X.set(Z,J),J+=Z.length}return X}class TV{}function Aq(W){let G=(Y)=>W().update(CV(Y)).digest(),X=W();return G.outputLen=X.outputLen,G.blockLen=X.blockLen,G.create=()=>W(),G}function qG(W=32){if(UG&&typeof UG.getRandomValues==="function")return UG.getRandomValues(new Uint8Array(W));if(UG&&typeof UG.randomBytes==="function")return Uint8Array.from(UG.randomBytes(W));throw Error("crypto.getRandomValues must be defined")}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var $j=BigInt(0),Ej=BigInt(1);function MV(W,G=""){if(typeof W!=="boolean"){let X=G&&`"${G}"`;throw Error(X+"expected boolean, got type="+typeof W)}return W}function m6(W,G,X=""){let Y=QG(W),J=W?.length,Z=G!==void 0;if(!Y||Z&&J!==G){let V=X&&`"${X}" `,U=Z?` of length ${G}`:"",Q=Y?`length=${J}`:`type=${typeof W}`;throw Error(V+"expected Uint8Array"+U+", got "+Q)}return W}function RV(W){let G=W.toString(16);return G.length&1?"0"+G:G}function CE(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return W===""?$j:BigInt("0x"+W)}function B4(W){return CE(L4(W))}function Fj(W){return i5(W),CE(L4(Uint8Array.from(W).reverse()))}function KY(W,G){return NG(W.toString(16).padStart(G*2,"0"))}function Sj(W,G){return KY(W,G).reverse()}function $8(W,G,X){let Y;if(typeof G==="string")try{Y=NG(G)}catch(Z){throw Error(W+" must be hex string or Uint8Array, cause: "+Z)}else if(QG(G))Y=Uint8Array.from(G);else throw Error(W+" must be hex string or Uint8Array");let J=Y.length;if(typeof X==="number"&&J!==X)throw Error(W+" of length "+X+" expected, got "+J);return Y}var Bj=(W)=>typeof W==="bigint"&&$j<=W;function PV(W,G,X){return Bj(W)&&Bj(G)&&Bj(X)&&G<=W&&W<X}function TE(W,G,X,Y){if(!PV(G,X,Y))throw Error("expected valid "+W+": "+X+" <= n < "+Y+", got "+G)}function zq(W){let G;for(G=0;W>$j;W>>=Ej,G+=1);return G}var f6=(W)=>(Ej<<BigInt(W))-Ej;function ME(W,G,X){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof G!=="number"||G<2)throw Error("qByteLen must be a number");if(typeof X!=="function")throw Error("hmacFn must be a function");let Y=(I)=>new Uint8Array(I),J=(I)=>Uint8Array.of(I),Z=Y(W),V=Y(W),U=0,Q=()=>{Z.fill(1),V.fill(0),U=0},N=(...I)=>X(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<G){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,G,X={}){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(G).forEach(([J,Z])=>Y(J,Z,!1)),Object.entries(X).forEach(([J,Z])=>Y(J,Z,!0))}function xj(W){let G=new WeakMap;return(X,...Y)=>{let J=G.get(X);if(J!==void 0)return J;let Z=W(X,...Y);return G.set(X,Z),Z}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var g9=BigInt(0),M9=BigInt(1),HG=BigInt(2),LE=BigInt(3),BE=BigInt(4),EE=BigInt(5),Jl=BigInt(7),$E=BigInt(8),Zl=BigInt(9),FE=BigInt(16);function Q5(W,G){let X=W%G;return X>=g9?X:G+X}function N5(W,G,X){let Y=W;while(G-- >g9)Y*=Y,Y%=X;return Y}function RE(W,G){if(W===g9)throw Error("invert: expected non-zero number");if(G<=g9)throw Error("invert: expected positive modulus, got "+G);let X=Q5(W,G),Y=G,J=g9,Z=M9,V=M9,U=g9;while(X!==g9){let N=Y/X,q=Y%X,A=J-V*N,H=Z-U*N;Y=X,X=q,J=V,Z=U,V=A,U=H}if(Y!==M9)throw Error("invert: does not exist");return Q5(J,G)}function kj(W,G,X){if(!W.eql(W.sqr(G),X))throw Error("Cannot find square root")}function SE(W,G){let X=(W.ORDER+M9)/BE,Y=W.pow(G,X);return kj(W,Y,G),Y}function Vl(W,G){let X=(W.ORDER-EE)/$E,Y=W.mul(G,HG),J=W.pow(Y,X),Z=W.mul(G,J),V=W.mul(W.mul(Z,HG),J),U=W.mul(Z,W.sub(V,W.ONE));return kj(W,U,G),U}function Ul(W){let G=E5(W),X=xE(W),Y=X(G,G.neg(G.ONE)),J=X(G,Y),Z=X(G,G.neg(Y)),V=(W+Jl)/FE;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),M=U.cmov(N,q,O);return kj(U,M,Q),M}}function xE(W){if(W<LE)throw Error("sqrt is not defined for small field");let G=W-M9,X=0;while(G%HG===g9)G/=HG,X++;let Y=HG,J=E5(W);while(PE(J,Y)===1)if(Y++>1000)throw Error("Cannot find square root: probably non-prime P");if(X===1)return SE;let Z=J.pow(Y,G),V=(G+M9)/HG;return function(Q,N){if(Q.is0(N))return N;if(PE(Q,N)!==1)throw Error("Cannot find square root");let q=X,A=Q.mul(Q.ONE,Z),H=Q.pow(N,G),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 M=M9<<BigInt(q-w-1),S=Q.pow(A,M);q=w,A=Q.sqr(S),H=Q.mul(H,A),I=Q.mul(I,S)}return I}}function Ql(W){if(W%BE===LE)return SE;if(W%$E===EE)return Vl;if(W%FE===Zl)return Ul(W);return xE(W)}var Nl=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function _j(W){let G={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},X=Nl.reduce((Y,J)=>{return Y[J]="function",Y},G);return LV(W,X),W}function ql(W,G,X){if(X<g9)throw Error("invalid exponent, negatives unsupported");if(X===g9)return W.ONE;if(X===M9)return G;let Y=W.ONE,J=G;while(X>g9){if(X&M9)Y=W.mul(Y,J);J=W.sqr(J),X>>=M9}return Y}function Iq(W,G,X=!1){let Y=Array(G.length).fill(X?W.ZERO:void 0),J=G.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 G.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 PE(W,G){let X=(W.ORDER-M9)/HG,Y=W.pow(G,X),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 wq(W,G){if(G!==void 0)DV(G);let X=G!==void 0?G:W.toString(2).length,Y=Math.ceil(X/8);return{nBitLength:X,nByteLength:Y}}function E5(W,G,X=!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 G==="object"&&G!=null){if(Y.sqrt||X)throw Error("cannot specify opts in two arguments");let H=G;if(H.BITS)J=H.BITS;if(H.sqrt)Z=H.sqrt;if(typeof H.isLE==="boolean")X=H.isLE;if(typeof H.modFromBytes==="boolean")V=H.modFromBytes;U=H.allowedLengths}else{if(typeof G==="number")J=G;if(Y.sqrt)Z=Y.sqrt}let{nBitLength:Q,nByteLength:N}=wq(W,J);if(N>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let q,A=Object.freeze({ORDER:W,isLE:X,BITS:Q,BYTES:N,MASK:f6(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)=>ql(A,H,I),div:(H,I)=>Q5(H*RE(I,W),W),sqrN:(H)=>H*H,addN:(H,I)=>H+I,subN:(H,I)=>H-I,mulN:(H,I)=>H*I,inv:(H)=>RE(H,W),sqrt:Z||((H)=>{if(!q)q=Ql(W);return q(A,H)}),toBytes:(H)=>X?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,X?0:O.length-H.length),H=O}if(H.length!==N)throw Error("Field.fromBytes: expected "+N+" bytes, got "+H.length);let w=X?Fj(H):B4(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)=>Iq(A,H),cmov:(H,I,w)=>w?I:H});return Object.freeze(A)}function kE(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let G=W.toString(2).length;return Math.ceil(G/8)}function yj(W){let G=kE(W);return G+Math.ceil(G/2)}function jq(W,G,X=!1){let Y=W.length,J=kE(G),Z=yj(G);if(Y<16||Y<Z||Y>1024)throw Error("expected "+Z+"-1024 bytes of input, got "+Y);let V=X?Fj(W):B4(W),U=Q5(V,G-M9)+M9;return X?Sj(U,J):KY(U,J)}function Hl(W,G,X,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(G,X,Y);let J=BigInt(32),Z=BigInt(4294967295),V=Number(X>>J&Z),U=Number(X&Z),Q=Y?4:0,N=Y?0:4;W.setUint32(G+Q,V,Y),W.setUint32(G+N,U,Y)}function _E(W,G,X){return W&G^~W&X}function yE(W,G,X){return W&G^W&X^G&X}class Kq extends TV{constructor(W,G,X,Y){super();this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=W,this.outputLen=G,this.padOffset=X,this.isLE=Y,this.buffer=new Uint8Array(W),this.view=qq(this.buffer)}update(W){jY(this),W=CV(W),i5(W);let{view:G,buffer:X,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=qq(W);for(;Y<=J-Z;Z+=Y)this.process(U,Z);continue}if(X.set(W.subarray(Z,Z+V),this.pos),this.pos+=V,Z+=V,this.pos===Y)this.process(G,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){jY(this),OE(W,this),this.finished=!0;let{buffer:G,view:X,blockLen:Y,isLE:J}=this,{pos:Z}=this;if(G[Z++]=128,P4(this.buffer.subarray(Z)),this.padOffset>Y-Z)this.process(X,0),Z=0;for(let q=Z;q<Y;q++)G[q]=0;Hl(X,Y-8,BigInt(this.length*8),J),this.process(X,0);let V=qq(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:G}=this;this.digestInto(W);let X=W.slice(0,G);return this.destroy(),X}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:G,buffer:X,length:Y,finished:J,destroyed:Z,pos:V}=this;if(W.destroyed=Z,W.finished=J,W.length=Y,W.pos=V,Y%G)W.buffer.set(X);return W}clone(){return this._cloneInto()}}var E4=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var Y9=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),J9=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var Oq=BigInt(4294967295),vE=BigInt(32);function Al(W,G=!1){if(G)return{h:Number(W&Oq),l:Number(W>>vE&Oq)};return{h:Number(W>>vE&Oq)|0,l:Number(W&Oq)|0}}function gE(W,G=!1){let X=W.length,Y=new Uint32Array(X),J=new Uint32Array(X);for(let Z=0;Z<X;Z++){let{h:V,l:U}=Al(W[Z],G);[Y[Z],J[Z]]=[V,U]}return[Y,J]}var vj=(W,G,X)=>W>>>X,gj=(W,G,X)=>W<<32-X|G>>>X,AG=(W,G,X)=>W>>>X|G<<32-X,zG=(W,G,X)=>W<<32-X|G>>>X,BV=(W,G,X)=>W<<64-X|G>>>X-32,EV=(W,G,X)=>W>>>X-32|G<<64-X;function _7(W,G,X,Y){let J=(G>>>0)+(Y>>>0);return{h:W+X+(J/4294967296|0)|0,l:J|0}}var uE=(W,G,X)=>(W>>>0)+(G>>>0)+(X>>>0),hE=(W,G,X,Y)=>G+X+Y+(W/4294967296|0)|0,bE=(W,G,X,Y)=>(W>>>0)+(G>>>0)+(X>>>0)+(Y>>>0),mE=(W,G,X,Y,J)=>G+X+Y+J+(W/4294967296|0)|0,fE=(W,G,X,Y,J)=>(W>>>0)+(G>>>0)+(X>>>0)+(Y>>>0)+(J>>>0),pE=(W,G,X,Y,J,Z)=>G+X+Y+J+Z+(W/4294967296|0)|0;var Il=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]),p6=new Uint32Array(64);class cE extends Kq{constructor(W=32){super(64,W,8,!1);this.A=E4[0]|0,this.B=E4[1]|0,this.C=E4[2]|0,this.D=E4[3]|0,this.E=E4[4]|0,this.F=E4[5]|0,this.G=E4[6]|0,this.H=E4[7]|0}get(){let{A:W,B:G,C:X,D:Y,E:J,F:Z,G:V,H:U}=this;return[W,G,X,Y,J,Z,V,U]}set(W,G,X,Y,J,Z,V,U){this.A=W|0,this.B=G|0,this.C=X|0,this.D=Y|0,this.E=J|0,this.F=Z|0,this.G=V|0,this.H=U|0}process(W,G){for(let q=0;q<16;q++,G+=4)p6[q]=W.getUint32(G,!1);for(let q=16;q<64;q++){let A=p6[q-15],H=p6[q-2],I=r5(A,7)^r5(A,18)^A>>>3,w=r5(H,17)^r5(H,19)^H>>>10;p6[q]=w+p6[q-7]+I+p6[q-16]|0}let{A:X,B:Y,C:J,D:Z,E:V,F:U,G:Q,H:N}=this;for(let q=0;q<64;q++){let A=r5(V,6)^r5(V,11)^r5(V,25),H=N+A+_E(V,U,Q)+Il[q]+p6[q]|0,w=(r5(X,2)^r5(X,13)^r5(X,22))+yE(X,Y,J)|0;N=Q,Q=U,U=V,V=Z+H|0,Z=J,J=Y,Y=X,X=H+w|0}X=X+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(X,Y,J,Z,V,U,Q,N)}roundClean(){P4(p6)}destroy(){this.set(0,0,0,0,0,0,0,0),P4(this.buffer)}}var lE=(()=>gE(["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))))(),wl=(()=>lE[0])(),jl=(()=>lE[1])(),c6=new Uint32Array(80),l6=new Uint32Array(80);class uj extends Kq{constructor(W=64){super(128,W,16,!1);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}get(){let{Ah:W,Al:G,Bh:X,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,G,X,Y,J,Z,V,U,Q,N,q,A,H,I,w,O]}set(W,G,X,Y,J,Z,V,U,Q,N,q,A,H,I,w,O){this.Ah=W|0,this.Al=G|0,this.Bh=X|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,G){for(let v=0;v<16;v++,G+=4)c6[v]=W.getUint32(G),l6[v]=W.getUint32(G+=4);for(let v=16;v<80;v++){let f=c6[v-15]|0,g=l6[v-15]|0,c=AG(f,g,1)^AG(f,g,8)^vj(f,g,7),l=zG(f,g,1)^zG(f,g,8)^gj(f,g,7),h=c6[v-2]|0,e=l6[v-2]|0,m=AG(h,e,19)^BV(h,e,61)^vj(h,e,6),W0=zG(h,e,19)^EV(h,e,61)^gj(h,e,6),H0=bE(l,W0,l6[v-7],l6[v-16]),k=mE(H0,c,m,c6[v-7],c6[v-16]);c6[v]=k|0,l6[v]=H0|0}let{Ah:X,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:M,Hl:S}=this;for(let v=0;v<80;v++){let f=AG(q,A,14)^AG(q,A,18)^BV(q,A,41),g=zG(q,A,14)^zG(q,A,18)^EV(q,A,41),c=q&H^~q&w,l=A&I^~A&O,h=fE(S,g,l,jl[v],l6[v]),e=pE(h,M,f,c,wl[v],c6[v]),m=h|0,W0=AG(X,Y,28)^BV(X,Y,34)^BV(X,Y,39),H0=zG(X,Y,28)^EV(X,Y,34)^EV(X,Y,39),k=X&J^X&V^J&V,i=Y&Z^Y&U^Z&U;M=w|0,S=O|0,w=H|0,O=I|0,H=q|0,I=A|0,{h:q,l:A}=_7(Q|0,N|0,e|0,m|0),Q=V|0,N=U|0,V=J|0,U=Z|0,J=X|0,Z=Y|0;let B=uE(m,H0,i);X=hE(B,e,W0,k),Y=B|0}({h:X,l:Y}=_7(this.Ah|0,this.Al|0,X|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:M,l:S}=_7(this.Hh|0,this.Hl|0,M|0,S|0),this.set(X,Y,J,Z,V,U,Q,N,q,A,H,I,w,O,M,S)}roundClean(){P4(c6,l6)}destroy(){P4(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class dE extends uj{constructor(){super(48);this.Ah=Y9[0]|0,this.Al=Y9[1]|0,this.Bh=Y9[2]|0,this.Bl=Y9[3]|0,this.Ch=Y9[4]|0,this.Cl=Y9[5]|0,this.Dh=Y9[6]|0,this.Dl=Y9[7]|0,this.Eh=Y9[8]|0,this.El=Y9[9]|0,this.Fh=Y9[10]|0,this.Fl=Y9[11]|0,this.Gh=Y9[12]|0,this.Gl=Y9[13]|0,this.Hh=Y9[14]|0,this.Hl=Y9[15]|0}}var OY=Aq(()=>new cE);var oE=Aq(()=>new uj),nE=Aq(()=>new dE);class hj extends TV{constructor(W,G){super();this.finished=!1,this.destroyed=!1,Nq(W);let X=CV(G);if(this.iHash=W.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let Y=this.blockLen,J=new Uint8Array(Y);J.set(X.length>Y?W.create().update(X).digest():X);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),P4(J)}update(W){return jY(this),this.iHash.update(W),this}digestInto(W){jY(this),i5(W,this.outputLen),this.finished=!0,this.iHash.digestInto(W),this.oHash.update(W),this.oHash.digestInto(W),this.destroy()}digest(){let W=new Uint8Array(this.oHash.outputLen);return this.digestInto(W),W}_cloneInto(W){W||(W=Object.create(Object.getPrototypeOf(this),{}));let{oHash:G,iHash:X,finished:Y,destroyed:J,blockLen:Z,outputLen:V}=this;return W=W,W.finished=Y,W.destroyed=J,W.blockLen=Z,W.outputLen=V,W.oHash=G._cloneInto(W.oHash),W.iHash=X._cloneInto(W.iHash),W}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var bj=(W,G,X)=>new hj(W,G).update(X).digest();bj.create=(W,G)=>new hj(W,G);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var DY=BigInt(0),IG=BigInt(1);function $V(W,G){let X=G.negate();return W?X:G}function Dq(W,G){let X=Iq(W.Fp,G.map((Y)=>Y.Z));return G.map((Y,J)=>W.fromAffine(Y.toAffine(X[J])))}function sE(W,G){if(!Number.isSafeInteger(W)||W<=0||W>G)throw Error("invalid window size, expected [1.."+G+"], got W="+W)}function mj(W,G){sE(W,G);let X=Math.ceil(G/W)+1,Y=2**(W-1),J=2**W,Z=f6(W),V=BigInt(W);return{windows:X,windowSize:Y,mask:Z,maxNumber:J,shiftBy:V}}function iE(W,G,X){let{windowSize:Y,mask:J,maxNumber:Z,shiftBy:V}=X,U=Number(W&J),Q=W>>V;if(U>Y)U-=Z,Q+=IG;let N=G*Y,q=N+Math.abs(U)-1,A=U===0,H=U<0,I=G%2!==0;return{nextN:Q,offset:q,isZero:A,isNeg:H,isNegF:I,offsetF:N}}function Kl(W,G){if(!Array.isArray(W))throw Error("array expected");W.forEach((X,Y)=>{if(!(X instanceof G))throw Error("invalid point at index "+Y)})}function Ol(W,G){if(!Array.isArray(W))throw Error("array of scalars expected");W.forEach((X,Y)=>{if(!G.isValid(X))throw Error("invalid scalar at index "+Y)})}var fj=new WeakMap,tE=new WeakMap;function pj(W){return tE.get(W)||1}function rE(W){if(W!==DY)throw Error("invalid wNAF")}class cj{constructor(W,G){this.BASE=W.BASE,this.ZERO=W.ZERO,this.Fn=W.Fn,this.bits=G}_unsafeLadder(W,G,X=this.ZERO){let Y=W;while(G>DY){if(G&IG)X=X.add(Y);Y=Y.double(),G>>=IG}return X}precomputeWindow(W,G){let{windows:X,windowSize:Y}=mj(G,this.bits),J=[],Z=W,V=Z;for(let U=0;U<X;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,G,X){if(!this.Fn.isValid(X))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}=iE(X,V,Z);if(X=U,N)J=J.add($V(A,G[H]));else Y=Y.add($V(q,G[Q]))}return rE(X),{p:Y,f:J}}wNAFUnsafe(W,G,X,Y=this.ZERO){let J=mj(W,this.bits);for(let Z=0;Z<J.windows;Z++){if(X===DY)break;let{nextN:V,offset:U,isZero:Q,isNeg:N}=iE(X,Z,J);if(X=V,Q)continue;else{let q=G[U];Y=Y.add(N?q.negate():q)}}return rE(X),Y}getPrecomputes(W,G,X){let Y=fj.get(G);if(!Y){if(Y=this.precomputeWindow(G,W),W!==1){if(typeof X==="function")Y=X(Y);fj.set(G,Y)}}return Y}cached(W,G,X){let Y=pj(W);return this.wNAF(Y,this.getPrecomputes(Y,W,X),G)}unsafe(W,G,X,Y){let J=pj(W);if(J===1)return this._unsafeLadder(W,G,Y);return this.wNAFUnsafe(J,this.getPrecomputes(J,W,X),G,Y)}createCache(W,G){sE(G,this.bits),tE.set(W,G),fj.delete(W)}hasCache(W){return pj(W)!==1}}function eE(W,G,X,Y){let J=G,Z=W.ZERO,V=W.ZERO;while(X>DY||Y>DY){if(X&IG)Z=Z.add(J);if(Y&IG)V=V.add(J);J=J.double(),X>>=IG,Y>>=IG}return{p1:Z,p2:V}}function W$(W,G,X,Y){Kl(X,W),Ol(Y,G);let J=X.length,Z=Y.length;if(J!==Z)throw Error("arrays of points and scalars must have equal length");let V=W.ZERO,U=zq(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=f6(Q),q=Array(Number(N)+1).fill(V),A=Math.floor((G.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 M=Y[O],S=Number(M>>BigInt(I)&N);q[S]=q[S].add(X[O])}let w=V;for(let O=q.length-1,M=V;O>0;O--)M=M.add(q[O]),w=w.add(M);if(H=H.add(w),I!==0)for(let O=0;O<Q;O++)H=H.double()}return H}function aE(W,G,X){if(G){if(G.ORDER!==W)throw Error("Field.ORDER must match order: Fp == p, Fn == n");return _j(G),G}else return E5(W,{isLE:X})}function G$(W,G,X={},Y){if(Y===void 0)Y=W==="edwards";if(!G||typeof G!=="object")throw Error(`expected valid ${W} CURVE object`);for(let Q of["p","n","h"]){let N=G[Q];if(!(typeof N==="bigint"&&N>DY))throw Error(`CURVE.${Q} must be positive bigint`)}let J=aE(G.p,X.Fp,Y),Z=aE(G.n,X.Fn,Y),U=["Gx","Gy","a",W==="weierstrass"?"b":"d"];for(let Q of U)if(!J.isValid(G[Q]))throw Error(`CURVE.${Q} must be valid field element of CURVE.Fp`);return G=Object.freeze(Object.assign({},G)),{CURVE:G,Fp:J,Fn:Z}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var X$=(W,G)=>(W+(W>=0?G:-G)/J$)/G;function Dl(W,G,X){let[[Y,J],[Z,V]]=G,U=X$(V*W,X),Q=X$(-J*W,X),N=W-U*Y-Q*Z,q=-U*J-Q*V,A=N<F4,H=q<F4;if(A)N=-N;if(H)q=-q;let I=f6(Math.ceil(zq(X)/2))+CY;if(N<F4||N>=I||q<F4||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,G){let X={};for(let Y of Object.keys(G))X[Y]=W[Y]===void 0?G[Y]:W[Y];if(MV(X.lowS,"lowS"),MV(X.prehash,"prehash"),X.format!==void 0)dj(X.format);return X}class Y$ extends Error{constructor(W=""){super(W)}}var $4={Err:Y$,_tlv:{encode:(W,G)=>{let{Err:X}=$4;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length&1)throw new X("tlv.encode: unpadded data");let Y=G.length/2,J=RV(Y);if(J.length/2&128)throw new X("tlv.encode: long form length too big");let Z=Y>127?RV(J.length/2|128):"";return RV(W)+Z+J+G},decode(W,G){let{Err:X}=$4,Y=0;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length<2||G[Y++]!==W)throw new X("tlv.decode: wrong tlv");let J=G[Y++],Z=!!(J&128),V=0;if(!Z)V=J;else{let Q=J&127;if(!Q)throw new X("tlv.decode(long): indefinite length not supported");if(Q>4)throw new X("tlv.decode(long): byte length is too big");let N=G.subarray(Y,Y+Q);if(N.length!==Q)throw new X("tlv.decode: length bytes not complete");if(N[0]===0)throw new X("tlv.decode(long): zero leftmost byte");for(let q of N)V=V<<8|q;if(Y+=Q,V<128)throw new X("tlv.decode(long): not minimal encoding")}let U=G.subarray(Y,Y+V);if(U.length!==V)throw new X("tlv.decode: wrong value length");return{v:U,l:G.subarray(Y+V)}}},_int:{encode(W){let{Err:G}=$4;if(W<F4)throw new G("integer: negative integers are not allowed");let X=RV(W);if(Number.parseInt(X[0],16)&8)X="00"+X;if(X.length&1)throw new G("unexpected DER parsing assertion: unpadded hex");return X},decode(W){let{Err:G}=$4;if(W[0]&128)throw new G("invalid signature integer: negative");if(W[0]===0&&!(W[1]&128))throw new G("invalid signature integer: unnecessary leading zero");return B4(W)}},toSig(W){let{Err:G,_int:X,_tlv:Y}=$4,J=$8("signature",W),{v:Z,l:V}=Y.decode(48,J);if(V.length)throw new G("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 G("invalid signature: left bytes after parsing");return{r:X.decode(U),s:X.decode(N)}},hexFromSig(W){let{_tlv:G,_int:X}=$4,Y=G.encode(2,X.encode(W.r)),J=G.encode(2,X.encode(W.s)),Z=Y+J;return G.encode(48,Z)}},F4=BigInt(0),CY=BigInt(1),J$=BigInt(2),Cq=BigInt(3),Cl=BigInt(4);function d6(W,G){let{BYTES:X}=W,Y;if(typeof G==="bigint")Y=G;else{let J=$8("private key",G);try{Y=W.fromBytes(J)}catch(Z){throw Error(`invalid private key: expected ui8a of size ${X}, got ${typeof G}`)}}if(!W.isValidNot0(Y))throw Error("invalid private key: out of range [1..N-1]");return Y}function Tl(W,G={}){let X=G$("weierstrass",W,G),{Fp:Y,Fn:J}=X,Z=X.CURVE,{h:V,n:U}=Z;LV(G,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:Q}=G;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=V$(Y,J);function q(){if(!Y.isOdd)throw Error("compression is not supported: Field does not have .isOdd()")}function A(k,i,B){let{x:L,y:b}=i.toAffine(),s=Y.toBytes(L);if(MV(B,"isCompressed"),B){q();let o=!Y.isOdd(b);return r9(Z$(o),s)}else return r9(Uint8Array.of(4),s,Y.toBytes(b))}function H(k){m6(k,void 0,"Point");let{publicKey:i,publicKeyUncompressed:B}=N,L=k.length,b=k[0],s=k.subarray(1);if(L===i&&(b===2||b===3)){let o=Y.fromBytes(s);if(!Y.isValid(o))throw Error("bad point: is not on curve, wrong x");let E=O(o),$;try{$=Y.sqrt(E)}catch(R){let u=R instanceof Error?": "+R.message:"";throw Error("bad point: is not on curve, sqrt error"+u)}q();let _=Y.isOdd($);if((b&1)===1!==_)$=Y.neg($);return{x:o,y:$}}else if(L===B&&b===4){let o=Y.BYTES,E=Y.fromBytes(s.subarray(0,o)),$=Y.fromBytes(s.subarray(o,o*2));if(!M(E,$))throw Error("bad point: is not on curve");return{x:E,y:$}}else throw Error(`bad point: got length ${L}, expected compressed=${i} or uncompressed=${B}`)}let I=G.toBytes||A,w=G.fromBytes||H;function O(k){let i=Y.sqr(k),B=Y.mul(i,k);return Y.add(Y.add(B,Y.mul(k,Z.a)),Z.b)}function M(k,i){let B=Y.sqr(i),L=O(k);return Y.eql(B,L)}if(!M(Z.Gx,Z.Gy))throw Error("bad curve params: generator point");let S=Y.mul(Y.pow(Z.a,Cq),Cl),v=Y.mul(Y.sqr(Z.b),BigInt(27));if(Y.is0(Y.add(S,v)))throw Error("bad curve params: a or b");function f(k,i,B=!1){if(!Y.isValid(i)||B&&Y.is0(i))throw Error(`bad point coordinate ${k}`);return i}function g(k){if(!(k instanceof m))throw Error("ProjectivePoint expected")}function c(k){if(!Q||!Q.basises)throw Error("no endo");return Dl(k,Q.basises,J.ORDER)}let l=xj((k,i)=>{let{X:B,Y:L,Z:b}=k;if(Y.eql(b,Y.ONE))return{x:B,y:L};let s=k.is0();if(i==null)i=s?Y.ONE:Y.inv(b);let o=Y.mul(B,i),E=Y.mul(L,i),$=Y.mul(b,i);if(s)return{x:Y.ZERO,y:Y.ZERO};if(!Y.eql($,Y.ONE))throw Error("invZ was invalid");return{x:o,y:E}}),h=xj((k)=>{if(k.is0()){if(G.allowInfinityPoint&&!Y.is0(k.Y))return;throw Error("bad point: ZERO")}let{x:i,y:B}=k.toAffine();if(!Y.isValid(i)||!Y.isValid(B))throw Error("bad point: x or y not field elements");if(!M(i,B))throw Error("bad point: equation left != right");if(!k.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});function e(k,i,B,L,b){return B=new m(Y.mul(B.X,k),B.Y,B.Z),i=$V(L,i),B=$V(b,B),i.add(B)}class m{constructor(k,i,B){this.X=f("x",k),this.Y=f("y",i,!0),this.Z=f("z",B),Object.freeze(this)}static CURVE(){return Z}static fromAffine(k){let{x:i,y:B}=k||{};if(!k||!Y.isValid(i)||!Y.isValid(B))throw Error("invalid affine point");if(k instanceof m)throw Error("projective point not allowed");if(Y.is0(i)&&Y.is0(B))return m.ZERO;return new m(i,B,Y.ONE)}static fromBytes(k){let i=m.fromAffine(w(m6(k,void 0,"point")));return i.assertValidity(),i}static fromHex(k){return m.fromBytes($8("pointHex",k))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(k=8,i=!0){if(H0.createCache(this,k),!i)this.multiply(Cq);return this}assertValidity(){h(this)}hasEvenY(){let{y:k}=this.toAffine();if(!Y.isOdd)throw Error("Field doesn't support isOdd");return!Y.isOdd(k)}equals(k){g(k);let{X:i,Y:B,Z:L}=this,{X:b,Y:s,Z:o}=k,E=Y.eql(Y.mul(i,o),Y.mul(b,L)),$=Y.eql(Y.mul(B,o),Y.mul(s,L));return E&&$}negate(){return new m(this.X,Y.neg(this.Y),this.Z)}double(){let{a:k,b:i}=Z,B=Y.mul(i,Cq),{X:L,Y:b,Z:s}=this,o=Y.ZERO,E=Y.ZERO,$=Y.ZERO,_=Y.mul(L,L),x=Y.mul(b,b),R=Y.mul(s,s),u=Y.mul(L,b);return u=Y.add(u,u),$=Y.mul(L,s),$=Y.add($,$),o=Y.mul(k,$),E=Y.mul(B,R),E=Y.add(o,E),o=Y.sub(x,E),E=Y.add(x,E),E=Y.mul(o,E),o=Y.mul(u,o),$=Y.mul(B,$),R=Y.mul(k,R),u=Y.sub(_,R),u=Y.mul(k,u),u=Y.add(u,$),$=Y.add(_,_),_=Y.add($,_),_=Y.add(_,R),_=Y.mul(_,u),E=Y.add(E,_),R=Y.mul(b,s),R=Y.add(R,R),_=Y.mul(R,u),o=Y.sub(o,_),$=Y.mul(R,x),$=Y.add($,$),$=Y.add($,$),new m(o,E,$)}add(k){g(k);let{X:i,Y:B,Z:L}=this,{X:b,Y:s,Z:o}=k,E=Y.ZERO,$=Y.ZERO,_=Y.ZERO,x=Z.a,R=Y.mul(Z.b,Cq),u=Y.mul(i,b),J0=Y.mul(B,s),V0=Y.mul(L,o),Q0=Y.add(i,B),B0=Y.add(b,s);Q0=Y.mul(Q0,B0),B0=Y.add(u,J0),Q0=Y.sub(Q0,B0),B0=Y.add(i,L);let v0=Y.add(b,o);return B0=Y.mul(B0,v0),v0=Y.add(u,V0),B0=Y.sub(B0,v0),v0=Y.add(B,L),E=Y.add(s,o),v0=Y.mul(v0,E),E=Y.add(J0,V0),v0=Y.sub(v0,E),_=Y.mul(x,B0),E=Y.mul(R,V0),_=Y.add(E,_),E=Y.sub(J0,_),_=Y.add(J0,_),$=Y.mul(E,_),J0=Y.add(u,u),J0=Y.add(J0,u),V0=Y.mul(x,V0),B0=Y.mul(R,B0),J0=Y.add(J0,V0),V0=Y.sub(u,V0),V0=Y.mul(x,V0),B0=Y.add(B0,V0),u=Y.mul(J0,B0),$=Y.add($,u),u=Y.mul(v0,B0),E=Y.mul(Q0,E),E=Y.sub(E,u),u=Y.mul(Q0,J0),_=Y.mul(v0,_),_=Y.add(_,u),new m(E,$,_)}subtract(k){return this.add(k.negate())}is0(){return this.equals(m.ZERO)}multiply(k){let{endo:i}=G;if(!J.isValidNot0(k))throw Error("invalid scalar: out of range");let B,L,b=(s)=>H0.cached(this,s,(o)=>Dq(m,o));if(i){let{k1neg:s,k1:o,k2neg:E,k2:$}=c(k),{p:_,f:x}=b(o),{p:R,f:u}=b($);L=x.add(u),B=e(i.beta,_,R,s,E)}else{let{p:s,f:o}=b(k);B=s,L=o}return Dq(m,[B,L])[0]}multiplyUnsafe(k){let{endo:i}=G,B=this;if(!J.isValid(k))throw Error("invalid scalar: out of range");if(k===F4||B.is0())return m.ZERO;if(k===CY)return B;if(H0.hasCache(this))return this.multiply(k);if(i){let{k1neg:L,k1:b,k2neg:s,k2:o}=c(k),{p1:E,p2:$}=eE(m,B,b,o);return e(i.beta,E,$,L,s)}else return H0.unsafe(B,k)}multiplyAndAddUnsafe(k,i,B){let L=this.multiplyUnsafe(i).add(k.multiplyUnsafe(B));return L.is0()?void 0:L}toAffine(k){return l(this,k)}isTorsionFree(){let{isTorsionFree:k}=G;if(V===CY)return!0;if(k)return k(m,this);return H0.unsafe(this,U).is0()}clearCofactor(){let{clearCofactor:k}=G;if(V===CY)return this;if(k)return k(m,this);return this.multiplyUnsafe(V)}isSmallOrder(){return this.multiplyUnsafe(V).is0()}toBytes(k=!0){return MV(k,"isCompressed"),this.assertValidity(),I(m,this,k)}toHex(k=!0){return L4(this.toBytes(k))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(k=!0){return this.toBytes(k)}_setWindowSize(k){this.precompute(k)}static normalizeZ(k){return Dq(m,k)}static msm(k,i){return W$(m,J,k,i)}static fromPrivateKey(k){return m.BASE.multiply(d6(J,k))}}m.BASE=new m(Z.Gx,Z.Gy,Y.ONE),m.ZERO=new m(Y.ZERO,Y.ONE,Y.ZERO),m.Fp=Y,m.Fn=J;let W0=J.BITS,H0=new cj(m,G.endo?Math.ceil(W0/2):W0);return m.BASE.precompute(8),m}function Z$(W){return Uint8Array.of(W?2:3)}function V$(W,G){return{secretKey:G.BYTES,publicKey:1+W.BYTES,publicKeyUncompressed:1+2*W.BYTES,publicKeyHasPrefix:!0,signature:2*G.BYTES}}function Ml(W,G={}){let{Fn:X}=W,Y=G.randomBytes||qG,J=Object.assign(V$(W.Fp,X),{seed:yj(X.ORDER)});function Z(I){try{return!!d6(X,I)}catch(w){return!1}}function V(I,w){let{publicKey:O,publicKeyUncompressed:M}=J;try{let S=I.length;if(w===!0&&S!==O)return!1;if(w===!1&&S!==M)return!1;return!!W.fromBytes(I)}catch(S){return!1}}function U(I=Y(J.seed)){return jq(m6(I,J.seed,"seed"),X.ORDER)}function Q(I,w=!0){return W.BASE.multiply(d6(X,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:M}=J;if(X.allowedLengths||w===O)return;let S=$8("key",I).length;return S===O||S===M}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 M=d6(X,I);return W.fromHex(w).multiply(M).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)=>d6(X,I),precompute(I=8,w=W.BASE){return w.precompute(I,!1)}},lengths:J})}function Rl(W,G,X={}){Nq(G),LV(X,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let Y=X.randomBytes||qG,J=X.hmac||((B,...L)=>bj(G,B,r9(...L))),{Fp:Z,Fn:V}=W,{ORDER:U,BITS:Q}=V,{keygen:N,getPublicKey:q,getSharedSecret:A,utils:H,lengths:I}=Ml(W,X),w={prehash:!1,lowS:typeof X.lowS==="boolean"?X.lowS:!1,format:void 0,extraEntropy:!1},O="compact";function M(B){let L=U>>CY;return B>L}function S(B,L){if(!V.isValidNot0(L))throw Error(`invalid signature ${B}: out of range 1..Point.Fn.ORDER`);return L}function v(B,L){dj(L);let b=I.signature,s=L==="compact"?b:L==="recovered"?b+1:void 0;return m6(B,s,`${L} signature`)}class f{constructor(B,L,b){if(this.r=S("r",B),this.s=S("s",L),b!=null)this.recovery=b;Object.freeze(this)}static fromBytes(B,L=O){v(B,L);let b;if(L==="der"){let{r:$,s:_}=$4.toSig(m6(B));return new f($,_)}if(L==="recovered")b=B[0],L="compact",B=B.subarray(1);let s=V.BYTES,o=B.subarray(0,s),E=B.subarray(s,s*2);return new f(V.fromBytes(o),V.fromBytes(E),b)}static fromHex(B,L){return this.fromBytes(NG(B),L)}addRecoveryBit(B){return new f(this.r,this.s,B)}recoverPublicKey(B){let L=Z.ORDER,{r:b,s,recovery:o}=this;if(o==null||![0,1,2,3].includes(o))throw Error("recovery id invalid");if(U*J$<L&&o>1)throw Error("recovery id is ambiguous for h>1 curve");let $=o===2||o===3?b+U:b;if(!Z.isValid($))throw Error("recovery id 2 or 3 invalid");let _=Z.toBytes($),x=W.fromBytes(r9(Z$((o&1)===0),_)),R=V.inv($),u=c($8("msgHash",B)),J0=V.create(-u*R),V0=V.create(s*R),Q0=W.BASE.multiplyUnsafe(J0).add(x.multiplyUnsafe(V0));if(Q0.is0())throw Error("point at infinify");return Q0.assertValidity(),Q0}hasHighS(){return M(this.s)}toBytes(B=O){if(dj(B),B==="der")return NG($4.hexFromSig(this));let L=V.toBytes(this.r),b=V.toBytes(this.s);if(B==="recovered"){if(this.recovery==null)throw Error("recovery bit must be present");return r9(Uint8Array.of(this.recovery),L,b)}return r9(L,b)}toHex(B){return L4(this.toBytes(B))}assertValidity(){}static fromCompact(B){return f.fromBytes($8("sig",B),"compact")}static fromDER(B){return f.fromBytes($8("sig",B),"der")}normalizeS(){return this.hasHighS()?new f(this.r,V.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return L4(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return L4(this.toBytes("compact"))}}let g=X.bits2int||function(L){if(L.length>8192)throw Error("input is too large");let b=B4(L),s=L.length*8-Q;return s>0?b>>BigInt(s):b},c=X.bits2int_modN||function(L){return V.create(g(L))},l=f6(Q);function h(B){return TE("num < 2^"+Q,B,F4,l),V.toBytes(B)}function e(B,L){return m6(B,void 0,"message"),L?m6(G(B),void 0,"prehashed message"):B}function m(B,L,b){if(["recovered","canonical"].some((V0)=>(V0 in b)))throw Error("sign() legacy options not supported");let{lowS:s,prehash:o,extraEntropy:E}=lj(b,w);B=e(B,o);let $=c(B),_=d6(V,L),x=[h(_),h($)];if(E!=null&&E!==!1){let V0=E===!0?Y(I.secretKey):E;x.push($8("extraEntropy",V0))}let R=r9(...x),u=$;function J0(V0){let Q0=g(V0);if(!V.isValidNot0(Q0))return;let B0=V.inv(Q0),v0=W.BASE.multiply(Q0).toAffine(),Q1=V.create(v0.x);if(Q1===F4)return;let u1=V.create(B0*V.create(u+Q1*_));if(u1===F4)return;let k0=(v0.x===Q1?0:2)|Number(v0.y&CY),h1=u1;if(s&&M(u1))h1=V.neg(u1),k0^=1;return new f(Q1,h1,k0)}return{seed:R,k2sig:J0}}function W0(B,L,b={}){B=$8("message",B);let{seed:s,k2sig:o}=m(B,L,b);return ME(G.outputLen,V.BYTES,J)(s,o)}function H0(B){let L=void 0,b=typeof B==="string"||QG(B),s=!b&&B!==null&&typeof B==="object"&&typeof B.r==="bigint"&&typeof B.s==="bigint";if(!b&&!s)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(s)L=new f(B.r,B.s);else if(b){try{L=f.fromBytes($8("sig",B),"der")}catch(o){if(!(o instanceof $4.Err))throw o}if(!L)try{L=f.fromBytes($8("sig",B),"compact")}catch(o){return!1}}if(!L)return!1;return L}function k(B,L,b,s={}){let{lowS:o,prehash:E,format:$}=lj(s,w);if(b=$8("publicKey",b),L=e($8("message",L),E),"strict"in s)throw Error("options.strict was renamed to lowS");let _=$===void 0?H0(B):f.fromBytes($8("sig",B),$);if(_===!1)return!1;try{let x=W.fromBytes(b);if(o&&_.hasHighS())return!1;let{r:R,s:u}=_,J0=c(L),V0=V.inv(u),Q0=V.create(J0*V0),B0=V.create(R*V0),v0=W.BASE.multiplyUnsafe(Q0).add(x.multiplyUnsafe(B0));if(v0.is0())return!1;return V.create(v0.x)===R}catch(x){return!1}}function i(B,L,b={}){let{prehash:s}=lj(b,w);return L=e(L,s),f.fromBytes(B,"recovered").recoverPublicKey(L).toBytes()}return Object.freeze({keygen:N,getPublicKey:q,getSharedSecret:A,utils:H,lengths:I,Point:W,sign:W0,verify:k,recoverPublicKey:i,Signature:f,hash:G})}function Pl(W){let G={a:W.a,b:W.b,p:W.Fp.ORDER,n:W.n,h:W.h,Gx:W.Gx,Gy:W.Gy},X=W.Fp,Y=W.allowedPrivateKeyLengths?Array.from(new Set(W.allowedPrivateKeyLengths.map((V)=>Math.ceil(V/2)))):void 0,J=E5(G.n,{BITS:W.nBitLength,allowedLengths:Y,modFromBytes:W.wrapPrivateKey}),Z={Fp:X,Fn:J,allowInfinityPoint:W.allowInfinityPoint,endo:W.endo,isTorsionFree:W.isTorsionFree,clearCofactor:W.clearCofactor,fromBytes:W.fromBytes,toBytes:W.toBytes};return{CURVE:G,curveOpts:Z}}function Ll(W){let{CURVE:G,curveOpts:X}=Pl(W),Y={hmac:W.hmac,randomBytes:W.randomBytes,lowS:W.lowS,bits2int:W.bits2int,bits2int_modN:W.bits2int_modN};return{CURVE:G,curveOpts:X,hash:W.hash,ecdsaOpts:Y}}function Bl(W,G){let X=G.Point;return Object.assign({},G,{ProjectivePoint:X,CURVE:Object.assign({},W,wq(X.Fn.ORDER,X.Fn.BITS))})}function U$(W){let{CURVE:G,curveOpts:X,hash:Y,ecdsaOpts:J}=Ll(W),Z=Tl(G,X),V=Rl(Z,Y,J);return Bl(W,V)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function TY(W,G){let X=(Y)=>U$({...W,hash:Y});return{...X(G),create:X}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Q$={p:BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),h:BigInt(1),a:BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5")},N$={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff"),n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),h:BigInt(1),a:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc"),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f")},q$={p:BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),h:BigInt(1),a:BigInt("0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650")},El=E5(Q$.p),$l=E5(N$.p),Fl=E5(q$.p);var H$=TY({...Q$,Fp:El,lowS:!1},OY);var yq0=TY({...N$,Fp:$l,lowS:!1},nE);var vq0=TY({...q$,Fp:Fl,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},oE);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Tq=H$;var V9=g1(O8(),1),Y7=g1(O8(),1),mS=g1(O8(),1),CG=g1(O8(),1),p4=g1(O8(),1),oS=g1(_Q(),1),MG=g1(O8(),1),i6=g1(O8(),1),RG=g1(O8(),1),cY=g1(O8(),1),r6=g1(O8(),1),PG=g1(O8(),1),J7=g1(O8(),1),Z7=g1(O8(),1),wH=g1(O8(),1),X7=g1(O8(),1),W2=g1(O8(),1),Fo=g1(w$(),1);import{randomBytes as qo}from"crypto";import{setTimeout as Ho}from"timers/promises";import{createCipheriv as Mo,createDecipheriv as Ro}from"crypto";var uq=g1(K$(),1),LG=g1(O8(),1),OG=g1(O8(),1),d7=g1(O8(),1),c7=g1(O8(),1),BG=g1(O8(),1);import{createHmac as VK}from"crypto";import{createCipheriv as JF,createDecipheriv as ZF,createHmac as VF,timingSafeEqual as Zn}from"crypto";import{createCipheriv as qF,createDecipheriv as HF}from"crypto";import{setTimeout as wn}from"timers/promises";import{randomBytes as Cn}from"crypto";import{createHmac as C2}from"crypto";import{randomBytes as T2}from"crypto";var Lq="undefined",BY=Lq!==typeof Buffer&&Buffer,LY=Lq!==typeof Uint8Array&&Uint8Array,Pq=Lq!==typeof ArrayBuffer&&ArrayBuffer,O$=[0,0,0,0,0,0,0,0],kl=Array.isArray||ml,PY=4294967296,_l=16777216,EY,Bq=C$("Uint64BE",!0,!0),ij=C$("Int64BE",!0,!1);function C$(W,G,X){var Y=G?0:4,J=G?4:0,Z=G?0:3,V=G?1:2,U=G?2:1,Q=G?3:0,N=G?gl:hl,q=G?ul:bl,A=w.prototype,H="is"+W,I="_"+H;if(A.buffer=void 0,A.offset=0,A[I]=!0,A.toNumber=v,A.toString=f,A.toJSON=v,A.toArray=yl,BY)A.toBuffer=vl;if(LY)A.toArrayBuffer=T$;return w[H]=O,w;function w(l,h,e,m){if(!(this instanceof w))return new w(l,h,e,m);return M(this,l,h,e,m)}function O(l){return!!(l&&l[I])}function M(l,h,e,m,W0){if(LY&&Pq){if(h instanceof Pq)h=new LY(h);if(m instanceof Pq)m=new LY(m)}if(!h&&!e&&!m&&!EY){l.buffer=M$(O$,0);return}if(!D$(h,e)){var H0=EY||Array;W0=e,m=h,e=0,h=EY===BY?BY.alloc(8):new H0(8)}if(l.buffer=h,l.offset=e|=0,Lq===typeof m)return;if(typeof m==="string")S(h,e,m,W0||10);else if(D$(m,W0))nj(h,e,m,W0);else if(typeof W0==="number")g(h,e+Y,m),g(h,e+J,W0);else if(m>0)N(h,e,m);else if(m<0)q(h,e,m);else nj(h,e,O$,0)}function S(l,h,e,m){var W0=0,H0=e.length,k=0,i=0;if(e[0]==="-")W0++;var B=W0;while(W0<H0){var L=parseInt(e[W0++],m);if(!(L>=0))break;i=i*m+L,k=k*m+Math.floor(i/PY),i%=PY}if(B)if(k=~k,i)i=PY-i;else k++;g(l,h+Y,k),g(l,h+J,i)}function v(){var l=this.buffer,h=this.offset,e=c(l,h+Y),m=c(l,h+J);if(!X)e|=0;return e?e*PY+m:m}function f(l){var h=this.buffer,e=this.offset,m=c(h,e+Y),W0=c(h,e+J),H0="",k=!X&&m&2147483648;if(k)m=~m,W0=PY-W0;l=l||10;while(!0){var i=m%l*PY+W0;if(m=Math.floor(m/l),W0=Math.floor(i/l),H0=(i%l).toString(l)+H0,!m&&!W0)break}if(k)H0="-"+H0;return H0}function g(l,h,e){l[h+Q]=e&255,e=e>>8,l[h+U]=e&255,e=e>>8,l[h+V]=e&255,e=e>>8,l[h+Z]=e&255}function c(l,h){return l[h+Z]*_l+(l[h+V]<<16)+(l[h+U]<<8)+l[h+Q]}}function yl(W){var G=this.buffer,X=this.offset;if(EY=null,W!==!1&&kl(G))return G.length===8?G:G.slice(X,X+8);return M$(G,X)}function vl(W){var G=this.buffer,X=this.offset;if(EY=BY,W!==!1&&BY.isBuffer(G))return G.length===8?G:G.slice(X,X+8);return BY.from(T$.call(this,W))}function T$(W){var G=this.buffer,X=this.offset,Y=G.buffer;if(EY=LY,W!==!1&&!G.offset&&Y instanceof Pq)return Y.byteLength===8?Y:Y.slice(X,X+8);var J=new LY(8);return nj(J,0,G,X),J.buffer}function D$(W,G){var X=W&&W.length;return G|=0,X&&G+8<=X&&typeof W[G]!=="string"}function nj(W,G,X,Y){G|=0,Y|=0;for(var J=0;J<8;J++)W[G++]=X[Y++]&255}function M$(W,G){return Array.prototype.slice.call(W,G,G+8)}function gl(W,G,X){var Y=G+8;while(Y>G)W[--Y]=X&255,X/=256}function ul(W,G,X){var Y=G+8;X++;while(Y>G)W[--Y]=-X&255^255,X/=256}function hl(W,G,X){var Y=G+8;while(G<Y)W[G++]=X&255,X/=256}function bl(W,G,X){var Y=G+8;X++;while(G<Y)W[G++]=-X&255^255,X/=256}function ml(W){return!!W&&Object.prototype.toString.call(W)=="[object Array]"}var sV=g1(aj(),1);import{createHash as hn}from"crypto";import{setTimeout as bn}from"timers/promises";import{createHash as nn}from"crypto";import{isIPv4 as xF}from"net";import{randomBytes as rn}from"crypto";import{isIPv4 as kF}from"net";var fq=g1(L$(),1),F2=g1(m$(),1),x2=g1(aj(),1);import*as vK from"timers/promises";import{randomUUID as sn}from"crypto";import*as S2 from"os";import{EventEmitter as Qi}from"events";import{randomUUID as Di}from"crypto";import{setTimeout as wK}from"timers/promises";import{createHash as Ci}from"crypto";import{performance as xq}from"perf_hooks";import{randomUUID as Ti}from"crypto";import{randomUUID as c2}from"crypto";import{setTimeout as ci}from"timers/promises";import{randomBytes as ni}from"crypto";import{isIPv4 as ii}from"net";var tV=g1(uz(),1);import{randomUUID as ri}from"crypto";import{setTimeout as ai}from"timers/promises";import{randomUUID as Gr}from"crypto";import{randomUUID as Vr}from"crypto";import{createHmac as tF,randomBytes as Ur}from"crypto";import{randomBytes as qS}from"crypto";import{randomUUID as HS}from"crypto";import{setTimeout as AS}from"timers/promises";import{randomUUID as vr}from"crypto";function KS(){return e1.Unpack("!H",jS(2))[0]}function TK(){return e1.Unpack("!L",jS(4))[0]}var rq=class{constructor(W){this.bitLength=W}value=0;set(W,G,X){return X&=(1<<W)-1,this.value|=X<<this.bitLength-W-G,this}get buffer(){let W=Math.ceil(this.bitLength/8),G=Buffer.alloc(W);return G.writeUIntBE(this.value,0,W),G}},OS=class{constructor(W){if(this.bitLength=W,W>32)throw Error()}_value=0n;offset=0n;set(W,G=1){let X=BigInt(W),Y=BigInt(G);return X&=(1n<<Y)-1n,this._value|=X<<BigInt(this.bitLength)-Y-this.offset,this.offset+=Y,this}get value(){return Number(this._value)}get buffer(){let W=Math.ceil(this.bitLength/8),G=Buffer.alloc(W);return G.writeUIntBE(this.value,0,W),G}};function h8(W,G,X=1){let Y=W.toString(2).split("");Y=[...Array(8-Y.length).fill("0"),...Y];let J=Y.slice(G,G+X).join("");return Number.parseInt(J,2)}function F8(W,G){return vq(W)(G)}function vq(W,G){let X=W.reduce((J,Z)=>J+Z,0),Y=G?Buffer.alloc(X):void 0;return(J)=>{let Z=Y||Buffer.alloc(X),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,G){let X=0;return G.map((Y)=>{let J;if(Y===8)J=W.readBigUInt64BE(X);else J=W.readUIntBE(X,Y);return X+=Y,J})}var cV=class{constructor(W){this.uint8Array=W}position=0;bitsPending=0;writeBits(W,G){if(W==0)return this;G&=4294967295>>>32-W;let X;if(this.bitsPending>0)if(this.bitsPending>W)this.uint8Array[this.position-1]|=G<<this.bitsPending-W,X=W,this.bitsPending-=W;else if(this.bitsPending==W)this.uint8Array[this.position-1]|=G,X=W,this.bitsPending=0;else this.uint8Array[this.position-1]|=G>>W-this.bitsPending,X=this.bitsPending,this.bitsPending=0;else X=Math.min(8,W),this.bitsPending=8-X,this.uint8Array[this.position++]=G>>W-X<<this.bitsPending;if(W-=X,W>0)this.writeBits(W,G);return this}readBits(W){return this._readBits(W)}_readBits(W,G){if(typeof G>"u")G=0;if(W==0)return G;let X,Y;if(this.bitsPending>0){let J=this.uint8Array[this.position-1]&255>>8-this.bitsPending;Y=Math.min(this.bitsPending,W),this.bitsPending-=Y,X=J>>this.bitsPending}else Y=Math.min(8,W),this.bitsPending=8-Y,X=this.uint8Array[this.position++]>>this.bitsPending;return W-=Y,G=G<<Y|X,W>0?this._readBits(W,G):G}seekTo(W){if(this.position=W/8|0,this.bitsPending=W%8,this.bitsPending>0)this.bitsPending=8-this.bitsPending,this.position++}},Fd=3988292384,Sd=2197175160;function DS(W){return typeof W!=="string"}function CS(W){let G=Array(256),X=0;for(let Y=0;Y<256;++Y)X=Y,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,G[Y]=X;return new Int32Array(G)}function TS(W){let G=new Int32Array(4096),X=0,Y=0,J=0;for(J=0;J<256;++J)G[J]=W[J];for(J=0;J<256;++J){Y=W[J];for(X=256+J;X<4096;X+=256)Y=G[X]=Y>>>8^W[Y&255]}let Z=[];for(J=1;J<16;++J)Z[J-1]=G.subarray(J*256,J*256+256);return Z}function MS(W,G,X){let Y=G^-1,J=0,Z=W.length,V=0,U=0;while(J<Z)if(V=W.charCodeAt(J++),V<128)Y=Y>>>8^X[(Y^V)&255];else if(V<2048)Y=Y>>>8^X[(Y^(192|V>>6&31))&255],Y=Y>>>8^X[(Y^(128|V&63))&255];else if(V>=55296&&V<57344)V=(V&1023)+64,U=W.charCodeAt(J++)&1023,Y=Y>>>8^X[(Y^(240|V>>8&7))&255],Y=Y>>>8^X[(Y^(128|V>>2&63))&255],Y=Y>>>8^X[(Y^(128|U>>6&15|(V&3)<<4))&255],Y=Y>>>8^X[(Y^(128|U&63))&255];else Y=Y>>>8^X[(Y^(224|V>>12&15))&255],Y=Y>>>8^X[(Y^(128|V>>6&63))&255],Y=Y>>>8^X[(Y^(128|V&63))&255];return~Y>>>0}function RS(W,G,X,Y){let[J,Z,V,U,Q,N,q,A,H,I,w,O,M,S,v]=Y,f=G^-1,g=0,c=W.length-15;while(g<c)f=v[W[g++]^f&255]^S[W[g++]^f>>>8&255]^M[W[g++]^f>>>16&255]^O[W[g++]^f>>>24]^w[W[g++]]^I[W[g++]]^H[W[g++]]^A[W[g++]]^q[W[g++]]^N[W[g++]]^Q[W[g++]]^U[W[g++]]^V[W[g++]]^Z[W[g++]]^J[W[g++]]^X[W[g++]];for(c+=15;g<c;)f=f>>>8^X[(f^W[g++])&255];return~f>>>0}var MK=CS(Fd),xd=TS(MK),RK=CS(Sd),kd=TS(RK);function _d(W,G=0){if(DS(W))return RS(W,G,MK,xd);return MS(W,G,MK)}function PS(W,G=0){if(DS(W))return RS(W,G,RK,kd);return MS(W,G,RK)}function yd(W,G){return W+G&255}function P9(W,G){return W+G&65535}function gY(W,G){return Number(BigInt(W)+BigInt(G)&0xffffffffn)}function vd(W){return W&16777215}function LS(W,G){return W<G&&G-W>32768||W>G&&W-G<32768}function f4(W,G){return W<G&&G-W>2147483648||W>G&&W-G<2147483648}function mV(W,G){return W===G||f4(W,G)}var lV=(W)=>Number.parseInt(W,10);var BS=(W,G)=>G?G[W]:void 0;async function ud(W,G,X="udp4",Y){let J;for(let Z=W;Z<=G;Z++){let V=gd(X);if(setImmediate(()=>V.bind({port:Z,address:BS(X,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<=G)break}if(!J)throw Error("port not found");return J}function aq(W){if(W==="IPv4")return 4;if(W==="IPv6")return 6;return W}var M1=ES.default.debug,c0=class{event={stack:[],promiseStack:[],eventId:0};ended=!1;onended;onerror=(W)=>{};execute=(...W)=>{if(this.ended)return;for(let G of this.event.stack)G.execute(...W);(async()=>{for(let G of this.event.promiseStack)await G.execute(...W)})().catch((G)=>{this.onerror(G)})};complete=()=>{if(this.ended)return;for(let W of this.event.stack)if(W.complete)W.complete();if(this.allUnsubscribe(),this.ended=!0,this.onended)this.onended(),this.onended=void 0};error=(W)=>{if(this.ended)return;for(let G of this.event.stack)if(G.error)G.error(W);this.allUnsubscribe()};allUnsubscribe=()=>{if(this.ended)throw Error("event completed");this.event={stack:[],promiseStack:[],eventId:0}};subscribe=(W,G,X)=>{let Y=this.event.eventId;this.event.stack.push({execute:W,id:Y,complete:G,error:X}),this.event.eventId++;let 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((...G)=>{W.execute(...G)})}queuingSubscribe=(W,G,X)=>{if(this.ended)throw Error("event completed");let Y=this.event.eventId;this.event.promiseStack.push({execute:W,id:Y,complete:G,error:X}),this.event.eventId++;let J=()=>{this.event.stack=this.event.stack.filter((V)=>V.id!==Y&&V)};return{unSubscribe:J,disposer:(V)=>{V.push(J)}}};once=(W,G,X)=>{let Y=this.subscribe((...J)=>{Y.unSubscribe(),W(...J)},G,X)};watch=(W,G)=>new Promise((X,Y)=>{let J=G&&setTimeout(()=>{Y("Event watch timeout")},G),{unSubscribe:Z}=this.subscribe((...V)=>{if(W(...V)){if(J)clearTimeout(J);Z(),X(V)}})});asPromise=(W)=>new Promise((G,X)=>{let Y=W&&setTimeout(()=>{X("Event asPromise timeout")},W);this.once((...J)=>{if(Y)clearTimeout(Y);G(J)},()=>{if(Y)clearTimeout(Y);G([])},(J)=>{if(Y)clearTimeout(Y);X(J)})});get returnTrigger(){let{execute:W,error:G,complete:X}=this;return{execute:W,error:G,complete:X}}get returnListener(){let{subscribe:W,once:G,asPromise:X}=this;return{subscribe:W,once:G,asPromise:X}}get length(){return this.event.stack.length}},hd=class{_disposer=[];push(W){this._disposer.push(W)}dispose(){this._disposer.forEach((W)=>W()),this._disposer=[]}},f$=M1("werift-ice:packages/ice/src/transport.ts"),PK=class W{constructor(G,X={}){this.socketType=G,this.options=X,this.socket=bd(G),this.socket.on("message",(Y,J)=>{if(aq(J.family)===6)[J.address]=J.address.split("%");this.rinfo=J;try{this.onData(Y,[J.address,J.port])}catch(Z){f$("onData error",Z)}})}type="udp";socket;rinfo;onData=()=>{};closed=!1;static async init(G,X={}){let Y=new W(G,X);return await Y.init(),Y}async init(){let G=BS(this.socketType,this.options.interfaceAddresses);if(this.options.port)this.socket.bind({port:this.options.port,address:G});else if(this.options.portRange){let X=await ud(this.options.portRange[0],this.options.portRange[1],this.socketType,this.options.interfaceAddresses);this.socket.bind({port:X,address:G})}else this.socket.bind({address:G});await new Promise((X)=>this.socket.once("listening",X))}send=async(G,X)=>{if(X&&!$S.isIP(X[0]))return new Promise((Y,J)=>{this.socket.send(G,X[1],X[0],(Z)=>{if(Z)f$("send error",X,G),J(Z);else Y()})});else X=X??[this.rinfo?.address,this.rinfo?.port],this.socket.send(G,X[1],X[0])};get address(){return this.socket.address()}get host(){return this.socket.address().address}get port(){return this.socket.address().port}close=()=>new Promise((G)=>{this.closed=!0,this.socket.once("close",G);try{this.socket.close()}catch(X){G()}})},fd=class W{constructor(G){this.addr=G,this.connect()}type="tcp";connecting;client;onData=()=>{};closed=!1;connect(){if(this.closed)return;if(this.client)this.client.destroy();this.connecting=new Promise((G,X)=>{try{this.client=md({port:this.addr[1],host:this.addr[0]},G)}catch(Y){X(Y)}}),this.client.on("data",(G)=>{let X=[this.client.remoteAddress,this.client.remotePort];this.onData(G,X)}),this.client.on("end",()=>{this.connect()}),this.client.on("error",(G)=>{console.log("error",G)})}async init(){await this.connecting}static async init(G){let X=new W(G);return await X.init(),X}get address(){return{}}send=async(G,X)=>{await this.connecting,this.client.write(G,(Y)=>{if(Y)console.log("err",Y)})};close=async()=>{this.closed=!0,this.client.destroy()}},l4={rsa_1:1,ecdsa_3:3},sq={sha256_4:4},LK={TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_49195:49195,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256_49199:49199},dd=Object.values(LK),a6={x25519_29:29,secp256r1_23:23},FS=Object.values(a6),SS={named_curve_3:3},p$={rsa_pkcs1_sha256:1025,ecdsa_secp256r1_sha256:1027},od=[1,64],xS=[{hash:sq.sha256_4,signature:l4.rsa_1},{hash:sq.sha256_4,signature:l4.ecdsa_3}],rd=()=>{let W=Tq.utils.randomPrivateKey(),G=Tq.getPublicKey(W,!1),X=Buffer.from(W),Y=Buffer.from(G);return{privateKey:X,publicKey:Y}},ad=({publicKey:W,privateKey:G})=>{let X=Tq.getSharedSecret(G,W);return Buffer.from(X).subarray(1)};function yS(W,G,X){switch(X){case a6.secp256r1_23:return ad({publicKey:W,privateKey:G});case a6.x25519_29:return Buffer.from(_S.default.scalarMult(G,W));default:throw Error()}}function c$(W,G,X){let Y=id(W,G);return Y.update(X),Y.digest()}function WU(W,G,X,Y="sha256"){let J=X,Z=[],V=G;do{V=c$(Y,W,V);let U=c$(Y,W,Buffer.concat([V,G]));Z.push(U),X-=U.length}while(X>0);return Buffer.concat(Z,J)}function vS(W,G,X){let Y=Buffer.concat([Buffer.from("master secret"),G,X]);return WU(W,Y,48)}function gS(W,G){let X=uS("sha256",G),Y="extended master secret";return WU(W,Buffer.concat([Buffer.from("extended master secret"),X]),48)}function sd(W,G,X,Y,J,Z){let V=Z?Y:J,U=Z?J:Y,Q=Buffer.concat([Buffer.from(W),V,U]);return WU(X,Q,G)}function uS(W,G){return nd(W).update(G).digest()}function hS(W,G,X,Y=12){let J=uS("sha256",G);return WU(W,Buffer.concat([Buffer.from(X),J]),Y)}function td(W,G){return hS(W,G,"client finished")}function ed(W,G){return hS(W,G,"server finished")}function Wo(W,G,X,Y,J,Z,V="sha256"){let U=Y*2+J*2,Q=W,N=Buffer.concat([X,G]),q=WU(Q,Buffer.concat([Buffer.from("key expansion"),N]),U,V),A=kS.createDecode(q),H=A.readBuffer(Y),I=A.readBuffer(Y),w=A.readBuffer(J),O=A.readBuffer(J),M=Buffer.alloc(Z,0),S=Buffer.alloc(Z,0);return w.copy(M,0),O.copy(S,0),{clientWriteKey:H,serverWriteKey:I,clientNonce:M,serverNonce:S}}var c4={CLIENT:1,SERVER:2},Go=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=ld;g8.set(BK);var tq=class{constructor(W,G,X,Y){if(this.sessionType=W,this.certPem=G,this.keyPem=X,G&&X&&Y)this.parseX509(G,X,Y)}localRandom;remoteRandom;cipherSuite;remoteCertificate;remoteKeyPair;localKeyPair;masterSecret;cipher;namedCurve;signatureHashAlgorithm;localCert;localPrivateKey;static createSelfSignedCertificateWithKey=async(W,G)=>{let X=(()=>{switch(W.signature){case l4.rsa_1:return"RSASSA-PKCS1-v1_5";case l4.ecdsa_3:return"ECDSA"}})(),Y=(()=>{switch(W.hash){case sq.sha256_4:return"SHA-256"}})(),J=(()=>{switch(G){case a6.secp256r1_23:return"P-256";case a6.x25519_29:if(X==="ECDSA")return"P-256";return"X25519";default:{if(X==="ECDSA")return"P-256";if(X==="RSASSA-PKCS1-v1_5")return"X25519"}}})(),Z=(()=>{switch(X){case"ECDSA":return{name:X,hash:Y,namedCurve:J};case"RSASSA-PKCS1-v1_5":return{name:X,hash:Y,publicExponent:new Uint8Array([1,0,1]),modulusLength:2048}}})(),V=await BK.subtle.generateKey(Z,!0,["sign","verify"]),Q=(await wj.createSelfSigned({serialNumber:cd(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 G=W.recordLayerHeader,X=G.protocolVersion.major<<8|G.protocolVersion.minor,Y=this.cipher.encrypt(this.sessionType,W.fragment,{type:G.contentType,version:X,epoch:G.epoch,sequenceNumber:G.sequenceNumber});return W.fragment=Y,W.recordLayerHeader.contentLen=Y.length,W}decryptPacket(W){let G=W.recordLayerHeader,X=G.protocolVersion.major<<8|G.protocolVersion.minor;return this.cipher.decrypt(this.sessionType,W.fragment,{type:G.contentType,version:X,epoch:G.epoch,sequenceNumber:G.sequenceNumber})}verifyData(W){if(this.sessionType===c4.CLIENT)return td(this.masterSecret,W);else return ed(this.masterSecret,W)}signatureData(W,G){let X=pd(G).update(W),Y=this.localPrivateKey.toPEM().toString();return X.sign(Y)}generateKeySignature(W){let G=this.sessionType===c4.CLIENT?this.localRandom:this.remoteRandom,X=this.sessionType===c4.SERVER?this.localRandom:this.remoteRandom,Y=this.valueKeySignature(G.serialize(),X.serialize(),this.localKeyPair.publicKey,this.namedCurve);return this.localPrivateKey.sign(Y,W)}parseX509(W,G,X){let Y=HH.Certificate.fromPEM(Buffer.from(W)),J=HH.PrivateKey.fromPEM(Buffer.from(G));this.localCert=Y.raw,this.localPrivateKey=J,this.signatureHashAlgorithm=X}valueKeySignature(W,G,X,Y){let J=Buffer.from(uY.encode({type:SS.named_curve_3,curve:Y,len:X.length},{type:uY.types.uint8,curve:uY.types.uint16be,len:uY.types.uint8}).slice());return Buffer.concat([W,G,J,X])}},eq=class{srtpProfile;static findMatchingSRTPProfile(W,G){for(let X of G)if(W.includes(X))return X}},WO=(W)=>"0x"+W.toString("hex").replace(/(.)(.)/g,"$1$2 ").split(" ").filter((G)=>G!=null&&G.length>0).join(",0x"),bS=(W)=>Object.entries({...W}).reduce((G,[X,Y])=>{if(typeof Y==="number"||typeof Y==="string")G[X]=Y;if(Buffer.isBuffer(Y))G[X]=WO(Y);return G},{}),$5=class W{constructor(G,X,Y,J,Z,V){this.msg_type=G,this.length=X,this.message_seq=Y,this.fragment_offset=J,this.fragment_length=Z,this.fragment=V}static spec={msg_type:Y7.types.uint8,length:Y7.types.uint24be,message_seq:Y7.types.uint16be,fragment_offset:Y7.types.uint24be,fragment_length:Y7.types.uint24be,fragment:Y7.types.buffer((G)=>G.current.fragment_length)};get summary(){return bS(this)}static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(Y7.decode(G,W.spec)))}serialize(){let G=Y7.encode(this,W.spec).slice();return Buffer.from(G)}chunk(G){let X=0,Y=this.fragment.length;if(Y===0)return[new W(this.msg_type,Y,this.message_seq,X,0,this.fragment)];let J=[];if(!G)G=1240;while(X<Y){let Z=Math.min(G,Y-X),V=Buffer.from(this.fragment.slice(X,X+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,X,V.length,V)),X+=V.length}return J}static assemble(G){if(!G?.length)throw Error("cannot reassemble handshake from empty array");G=G.sort((Y,J)=>Y.fragment_offset-J.fragment_offset);let X=Buffer.alloc(G[0].length);for(let Y of G)Y.fragment.copy(X,Y.fragment_offset);return new W(G[0].msg_type,G[0].length,G[0].message_seq,0,X.length,X)}static findAllFragments(G,X){let Y=G.find((J)=>J.msg_type===X);if(!Y)return[];if(!G?.length)return[];return G.filter((J)=>{return J.msg_type===Y.msg_type&&J.message_seq===Y.message_seq&&J.length===Y.length})}},{uint16be:WH,uint24be:Xo,buffer:fS,array:Yo,uint8:nV,string:Jo}=mS.types,Zo={type:WH,data:fS(WH)},EK=Yo(Zo,WH,"bytes"),Vo=fS(Xo),Uo=nV,Qo=Jo(WH),No={hash:nV,signature:nV},GO={major:nV,minor:nV},TG=class W{constructor(G=Math.floor(Date.now()/1000),X=qo(28)){this.gmt_unix_time=G,this.random_bytes=X}static spec={gmt_unix_time:CG.types.uint32be,random_bytes:CG.types.buffer(28)};static deSerialize(G){return new W(...Object.values(CG.decode(G,W.spec)))}static from(G){return new W(...Object.values(G))}serialize(){let G=CG.encode(this,W.spec).slice();return Buffer.from(G)}},pS=class W{constructor(G,X,Y,J,Z,V,U){this.clientVersion=G,this.random=X,this.sessionId=Y,this.cookie=J,this.cipherSuites=Z,this.compressionMethods=V,this.extensions=U}msgType=1;messageSeq=0;static spec={clientVersion:{major:V9.types.uint8,minor:V9.types.uint8},random:TG.spec,sessionId:V9.types.buffer(V9.types.uint8),cookie:V9.types.buffer(V9.types.uint8),cipherSuites:V9.types.array(V9.types.uint16be,V9.types.uint16be,"bytes"),compressionMethods:V9.types.array(V9.types.uint8,V9.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(G){return new W(...Object.values(V9.decode(G,W.spec)))}serialize(){let G=V9.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new $5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},Ao=class W{constructor(G,X,Y,J,Z){this.epoch=G,this.sequenceNumber=X,this.contentType=Y,this.protocolVersion=J,this.contentLen=Z}static spec={epoch:p4.types.uint16be,sequenceNumber:p4.types.uint48be,contentType:p4.types.uint8,protocolVersion:GO,contentLen:p4.types.uint16be};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(p4.decode(G,W.spec)))}serialize(){let G=p4.encode(this,W.spec).slice();return Buffer.from(G)}},cS=class W{constructor(G,X){this.recordLayerHeader=G,this.fragment=X}get summary(){return{header:this.recordLayerHeader,fragment:WO(this.fragment)}}static createEmpty(){return new W(void 0,void 0)}static deSerialize(G){if(G.length<13)throw Error("Invalid DTLS record: buffer is too short");let X=G.readUInt8(0),Y=G.readUInt8(1),J=G.readUInt8(2),Z=G.readUInt16BE(3),V=G.slice(5,11).readUIntBE(0,6),U=G.readUInt16BE(11);if(G.length<13+U)throw Error("Invalid DTLS record: fragment length exceeds buffer");let Q=G.slice(13,13+U);return new W({contentType:X,protocolVersion:{major:Y,minor:J},epoch:Z,sequenceNumber:V,contentLen:U},Q)}serialize(){let G=this.fragment.length,X=13+G,Y=Buffer.alloc(X);return Y.writeUInt8(this.recordLayerHeader.contentType,0),Y.writeUInt8(this.recordLayerHeader.protocolVersion.major,1),Y.writeUInt8(this.recordLayerHeader.protocolVersion.minor,2),Y.writeUInt16BE(this.recordLayerHeader.epoch,3),Y.writeUIntBE(this.recordLayerHeader.sequenceNumber,5,6),Y.writeUInt16BE(G,11),this.fragment.copy(Y,13),Y}computeMACHeader(){return new Ao(this.recordLayerHeader.epoch,this.recordLayerHeader.sequenceNumber,this.recordLayerHeader.contentType,this.recordLayerHeader.protocolVersion,this.recordLayerHeader.contentLen).serialize()}},lS=(W)=>(G)=>{return W.lastFlight=G,G.flatMap((X)=>{return X.messageSeq=W.sequenceNumber++,X.toFragment().chunk()})},GU=(W)=>(G,X)=>{return G.map((Y)=>{return new cS({contentType:Y.type,protocolVersion:W.version,epoch:W.epoch,sequenceNumber:X,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||{}),zo=M1("werift-dtls : packages/dtls/src/flight/flight.ts : warn"),ZK=M1("werift-dtls : packages/dtls/src/flight/flight.ts : err"),XU=class W{constructor(G,X,Y,J){this.transport=G,this.dtls=X,this.flight=Y,this.nextFlight=J}state="PREPARING";static RetransmitCount=10;createPacket(G){let X=lS(this.dtls)(G);return this.dtls.bufferHandshakeCache(X,!0,this.flight),GU(this.dtls)(X.map((J)=>({type:22,fragment:J.serialize()})),++this.dtls.recordSequenceNumber)}async transmit(G){let X=0;for(;X<=W.RetransmitCount;X++){if(this.setState("SENDING"),this.send(G).catch((Y)=>{ZK("fail to send",ZK)}),this.setState("WAITING"),this.nextFlight===void 0){this.setState("FINISHED");break}if(await Ho(1000*((X+1)/2)),this.dtls.flight>=this.nextFlight){this.setState("FINISHED");break}else zo(this.dtls.sessionId,"retransmit",X,this.dtls.flight)}if(X>W.RetransmitCount)throw ZK(this.dtls.sessionId,"retransmit failed",X),Error(`over retransmitCount : ${this.flight} ${this.nextFlight}`)}send=(G)=>Promise.all(G.map((X)=>this.transport.send(X)));setState(G){this.state=G}},Io=class extends XU{constructor(W,G,X){super(W,G,1,3);this.cipher=X}async exec(W){if(this.dtls.flight===1)throw Error();this.dtls.flight=1;let G=new pS({major:254,minor:253},new TG,Buffer.from([]),Buffer.from([]),dd,[0],W);this.dtls.version=G.clientVersion,this.cipher.localRandom=TG.from(G.random);let X=this.createPacket([G]),Y=Buffer.concat(X.map((J)=>J.serialize()));await this.transmit([Y])}},wo=M1("werift-dtls : packages/dtls/src/flight/client/flight3.ts : log"),jo=class extends XU{constructor(W,G){super(W,G,3,5)}async exec(W){if(this.dtls.flight===3)throw Error();this.dtls.flight=3,this.dtls.handshakeCache=[];let[G]=this.dtls.lastFlight;wo("dtls version",G.clientVersion),G.cookie=W.cookie,this.dtls.cookie=W.cookie;let X=this.createPacket([G]),Y=Buffer.concat(X.map((J)=>J.serialize()));await this.transmit([Y])}},AH={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 Ko(){let W=new ZU;return W.id=JU.RSA,W.name="RSA",W.keyType=YU.RSA,W}function Oo(){let W=new ZU;return W.id=JU.ECDHE_RSA,W.name="ECDHE_RSA",W.signType=AH.ECDHE,W.keyType=YU.RSA,W}function Do(){let W=new ZU;return W.id=JU.ECDHE_ECDSA,W.name="ECDHE_ECDSA",W.signType=AH.ECDHE,W.keyType=YU.ECDSA,W}function Co(){let W=new ZU;return W.id=JU.PSK,W.name="PSK",W.signType=AH.NULL,W.keyType=YU.PSK,W}function To(){let W=new ZU;return W.id=JU.ECDHE_PSK,W.name="ECDHE_PSK",W.signType=AH.ECDHE,W.keyType=YU.PSK,W}var Po=M1("werift-dtls : packages/dtls/src/cipher/suites/aead.ts : err"),Lo=class extends Go{keyLength=0;nonceLength=0;ivLength=0;authTagLength=0;nonceImplicitLength=0;nonceExplicitLength=0;clientWriteKey;serverWriteKey;clientNonce;serverNonce;constructor(){super()}get summary(){return bS(this)}init(W,G,X){let Y=Wo(W,X,G,this.keyLength,this.ivLength,this.nonceLength,this.hashAlgorithm);this.clientWriteKey=Y.clientWriteKey,this.serverWriteKey=Y.serverWriteKey,this.clientNonce=Y.clientNonce,this.serverNonce=Y.serverNonce}encrypt(W,G,X){let Y=W===c4.CLIENT,J=Y?this.clientNonce:this.serverNonce,Z=Y?this.clientWriteKey:this.serverWriteKey;if(!J||!Z)throw Error();J.writeUInt16BE(X.epoch,this.nonceImplicitLength),J.writeUIntBE(X.sequenceNumber,this.nonceImplicitLength+2,6);let V=J.slice(this.nonceImplicitLength),U=this.encodeAdditionalBuffer(X,G.length),Q=Mo(this.blockAlgorithm,Z,J,{authTagLength:this.authTagLength});Q.setAAD(U,{plaintextLength:G.length});let N=Q.update(G),q=Q.final(),A=Q.getAuthTag();return Buffer.concat([V,N,q,A])}encodeAdditionalBuffer(W,G){let X=Buffer.alloc(13);return X.writeUInt16BE(W.epoch,0),X.writeUintBE(W.sequenceNumber,2,6),X.writeUInt8(W.type,8),X.writeUInt16BE(W.version,9),X.writeUInt16BE(G,11),X}decrypt(W,G,X){let Y=W===c4.CLIENT,J=Y?this.serverNonce:this.clientNonce,Z=Y?this.serverWriteKey:this.clientWriteKey;if(!J||!Z)throw Error();G.subarray(0,this.nonceExplicitLength).copy(J,this.nonceImplicitLength);let U=G.subarray(this.nonceExplicitLength,G.length-this.authTagLength),Q=G.subarray(G.length-this.authTagLength),N=this.encodeAdditionalBuffer(X,U.length),q=Ro(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 Po("decrypt failed",H,W,WO(G),X,this.summary),H}}},u8={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},l$=Ko(),d$=Oo(),o$=Do(),n$=Co(),i$=To();function dS(W){switch(W){case u8.TLS_RSA_WITH_AES_128_GCM_SHA256:return f7(u8.TLS_RSA_WITH_AES_128_GCM_SHA256,"TLS_RSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",l$,kV);case u8.TLS_RSA_WITH_AES_256_GCM_SHA384:return f7(u8.TLS_RSA_WITH_AES_256_GCM_SHA384,"TLS_RSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",l$,_V,"sha384");case u8.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:return f7(u8.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",d$,kV);case u8.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:return f7(u8.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",d$,_V,"sha384");case u8.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:return f7(u8.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",o$,kV);case u8.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:return f7(u8.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",o$,_V,"sha384");case u8.TLS_PSK_WITH_AES_128_GCM_SHA256:return f7(u8.TLS_PSK_WITH_AES_128_GCM_SHA256,"TLS_PSK_WITH_AES_128_GCM_SHA256","aes-128-gcm",n$,kV,"sha256");case u8.TLS_PSK_WITH_AES_256_GCM_SHA384:return f7(u8.TLS_PSK_WITH_AES_256_GCM_SHA384,"TLS_PSK_WITH_AES_256_GCM_SHA384","aes-256-gcm",n$,_V,"sha384");case u8.TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256:return f7(u8.TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256","aes-128-gcm",i$,kV,"sha256");case u8.TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384:return f7(u8.TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384","aes-256-gcm",i$,_V,"sha384");default:break}return null}function f7(W,G,X,Y,J,Z="sha256"){let V=new Lo;return V.id=W,V.name=G,V.blockAlgorithm=X,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 nS(W){switch(W){case a6.secp256r1_23:{let{privateKey:G,publicKey:X}=rd();return{curve:W,privateKey:G,publicKey:X}}case a6.x25519_29:{let G=oS.default.box.keyPair();return{curve:W,privateKey:Buffer.from(G.secretKey.buffer),publicKey:Buffer.from(G.publicKey.buffer)}}default:throw Error()}}var zH=class{static type=23},IH=class W{static type=65281;static spec={type:MG.types.uint16be,data:MG.types.uint8};type=W.type;data=0;constructor(G={}){Object.assign(this,G)}static createEmpty(){return new W}static deSerialize(G){return new W(MG.decode(G,W.spec))}serialize(){let G=MG.encode(this,W.spec).slice();return Buffer.from(G)}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},hY=class W{static type=14;static spec={type:i6.types.uint16be,data:i6.types.buffer(i6.types.uint16be)};type=W.type;data=Buffer.from([]);profiles=[];mki=Buffer.from([0]);constructor(G={}){Object.assign(this,G)}static create(G,X){return new W({profiles:G,mki:X})}static deSerialize(G){let X=new W(i6.decode(G,W.spec)),Y=X.data.readUInt16BE(),J=Array(Y/2);for(let Z=0;Z<J.length;Z++)J[Z]=X.data.readUInt16BE(Z*2+2);return X.profiles=J,X.mki=X.data.slice(Y+2),X}serialize(){let G=Buffer.alloc(2);G.writeUInt16BE(this.profiles.length*2);let X=Buffer.concat([G,...this.profiles.map((J)=>{let Z=Buffer.alloc(2);return Z.writeUInt16BE(J),Z}),this.mki]);this.data=X;let Y=i6.encode(this,W.spec).slice();return Buffer.from(Y)}static fromData(G){let X=Buffer.alloc(4);return X.writeUInt16BE(W.type),X.writeUInt16BE(G.length,2),W.deSerialize(Buffer.concat([X,G]))}get extension(){return{type:this.type,data:this.serialize().slice(4)}}},GH=class W{constructor(G){this.certificateList=G}msgType=11;messageSeq;static spec={certificateList:RG.types.array(Vo,RG.types.uint24be,"bytes")};static createEmpty(){return new W(void 0)}static deSerialize(G){return new W(...Object.values(RG.decode(G,W.spec)))}serialize(){let G=RG.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new $5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},iS=class W{constructor(G=1){this.type=G}static spec={type:cY.types.uint8};static createEmpty(){return new W}static deSerialize(G){return new W(...Object.values(cY.decode(G,W.spec)))}serialize(){let G=cY.encode(this,W.spec).slice();return Buffer.from(G)}},rS=class W{constructor(G,X){this.algorithm=G,this.signature=X}msgType=15;messageSeq;static spec={algorithm:r6.types.uint16be,signature:r6.types.buffer(r6.types.uint16be)};static createEmpty(){return new W(void 0,void 0)}static deSerialize(G){let X=r6.decode(G,W.spec);return new W(...Object.values(X))}serialize(){let G=r6.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new $5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},aS=class W{constructor(G){this.publicKey=G}msgType=16;messageSeq;static spec={publicKey:PG.types.buffer(PG.types.uint8)};static createEmpty(){return new W(void 0)}static deSerialize(G){let X=PG.decode(G,W.spec);return new W(...Object.values(X))}serialize(){let G=PG.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new $5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},FK=class W{constructor(G){this.verifyData=G}msgType=20;messageSeq;static createEmpty(){return new W(void 0)}static deSerialize(G){return new W(G)}serialize(){return this.verifyData}toFragment(){let G=this.serialize();return new $5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},sS=class W{constructor(G,X,Y){this.certificateTypes=G,this.signatures=X,this.authorities=Y}msgType=13;messageSeq;static spec={certificateTypes:J7.types.array(Uo,J7.types.uint8,"bytes"),signatures:J7.types.array(No,J7.types.uint16be,"bytes"),authorities:J7.types.array(Qo,J7.types.uint16be,"bytes")};static createEmpty(){return new W(void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(J7.decode(G,W.spec)))}serialize(){let G=J7.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new $5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},tS=class W{constructor(G,X,Y,J,Z,V){this.serverVersion=G,this.random=X,this.sessionId=Y,this.cipherSuite=J,this.compressionMethod=Z,this.extensions=V}msgType=2;messageSeq;static spec={serverVersion:GO,random:TG.spec,sessionId:Z7.types.buffer(Z7.types.uint8),cipherSuite:Z7.types.uint16be,compressionMethod:Z7.types.uint8};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){let X=Z7.decode(G,W.spec),Y=new W(...Object.values(X));if(Y.serialize().length<G.length)return new W(...Object.values(Z7.decode(G,{...W.spec,extensions:EK})));return Y}serialize(){let G=this.extensions===void 0?Z7.encode(this,W.spec).slice():Z7.encode(this,{...W.spec,extensions:EK}).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new $5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},eS=class W{msgType=14;messageSeq;static spec={};static createEmpty(){return new W}static deSerialize(G){return new W(...Object.values(wH.decode(G,W.spec)))}serialize(){let G=wH.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new $5(this.msgType,G.length,this.messageSeq,0,G.length,G)}};function Bo(W,G){return Buffer.from(W2.encode(W,G).slice())}var G2=class W{constructor(G,X,Y,J,Z,V,U,Q){this.ellipticCurveType=G,this.namedCurve=X,this.publicKeyLength=Y,this.publicKey=J,this.hashAlgorithm=Z,this.signatureAlgorithm=V,this.signatureLength=U,this.signature=Q}msgType=12;messageSeq;static spec={ellipticCurveType:X7.types.uint8,namedCurve:X7.types.uint16be,publicKeyLength:X7.types.uint8,publicKey:X7.types.buffer((G)=>G.current.publicKeyLength),hashAlgorithm:X7.types.uint8,signatureAlgorithm:X7.types.uint8,signatureLength:X7.types.uint16be,signature:X7.types.buffer((G)=>G.current.signatureLength)};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){let X=X7.decode(G,W.spec);return new W(...Object.values(X))}serialize(){return Bo(this,W.spec)}toFragment(){let G=this.serialize();return new $5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},jH=1,VU=7;var Eo=(W)=>{switch(W){case jH:case VU:return 16}},$o=(W)=>{switch(W){case jH:return 14;case VU:return 12}},uH0=M1("werift-rtp : packages/rtp/src/codec/av1.ts");var So={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"},hH0=Object.entries(So).reduce((W,[G,X])=>{return W[X]=Number(G),W},{});var bH0=Buffer.from([0,0,0,1]);function r$(W,G){let X=Buffer.alloc(G);return W.copy(X),X}function XH(W){return Number.parseInt(W.toString(),10)}function xo(W){let G=W[0];return G>127&&G<192}var SK=4,e6=class W{version=2;padding=!1;count=0;type=0;length=0;constructor(G={}){Object.assign(this,G)}static serialize(G,X,Y,J){let V=new W({type:G,count:X,version:2,length:J}).serialize();return Buffer.concat([V,Y])}serialize(){let G=new rq(8);if(G.set(2,0,this.version),this.padding)G.set(1,2,1);return G.set(5,3,this.count),F8([1,1,2],[G.value,this.type,this.length])}static deSerialize(G){let[X,Y,J]=t9(G,[1,1,2]),Z=h8(X,0,2),V=h8(X,2,1)>0,U=h8(X,3,5);return new W({version:Z,padding:V,count:U,type:Y,length:J})}},a$=class W{static count=4;count=W.count;senderSsrc;mediaSsrc;fir=[];constructor(G={}){Object.assign(this,G)}get length(){return Math.floor(this.serialize().length/4-1)}static deSerialize(G){let[X,Y]=t9(G,[4,4]),J=[];for(let Z=8;Z<G.length;Z+=8)J.push({ssrc:G.readUInt32BE(Z),sequenceNumber:G[Z+4]});return new W({senderSsrc:X,mediaSsrc:Y,fir:J})}serialize(){let G=F8([4,4],[this.senderSsrc,this.mediaSsrc]),X=Buffer.alloc(this.fir.length*8);return this.fir.forEach(({ssrc:Y,sequenceNumber:J},Z)=>{X.writeUInt32BE(Y,Z*8),X[Z*8+4]=J}),Buffer.concat([G,X])}},YH=class W{static count=1;count=W.count;length=2;senderSsrc;mediaSsrc;constructor(G={}){Object.assign(this,G)}static deSerialize(G){let[X,Y]=t9(G,[4,4]);return new W({senderSsrc:X,mediaSsrc:Y})}serialize(){return F8([4,4],[this.senderSsrc,this.mediaSsrc])}},JH=class W{static count=15;length;count=W.count;senderSsrc;mediaSsrc;uniqueID="REMB";ssrcNum=0;brExp;brMantissa;bitrate;ssrcFeedbacks=[];constructor(G={}){Object.assign(this,G)}static deSerialize(G){let[X,Y,J,Z,V]=t9(G,[4,4,4,1,1]),U=h8(V,0,6),Q=(h8(V,6,2)<<16)+(G[14]<<8)+G[15],N=U>46?18446744073709551615n:BigInt(Q)<<BigInt(U),q=[];for(let A=16;A<G.length;A+=4){let H=G.slice(A).readUIntBE(0,4);q.push(H)}return new W({senderSsrc:X,mediaSsrc:Y,uniqueID:F8([4],[J]).toString(),ssrcNum:Z,brExp:U,brMantissa:Q,ssrcFeedbacks:q,bitrate:N})}serialize(){let G=Buffer.concat([F8([4,4],[this.senderSsrc,this.mediaSsrc]),Buffer.from(this.uniqueID),F8([1],[this.ssrcNum])]),X=new rq(24);X.set(6,0,this.brExp).set(18,6,this.brMantissa);let Y=Buffer.concat(this.ssrcFeedbacks.map((Z)=>F8([4],[Z]))),J=Buffer.concat([G,F8([3],[X.value]),Y]);return this.length=J.length/4,J}},ko=M1("werift-rtp: /rtcp/psfb/index"),iV=class W{static type=206;type=W.type;feedback;constructor(G={}){Object.assign(this,G)}serialize(){let G=this.feedback.serialize();return e6.serialize(this.type,this.feedback.count,G,this.feedback.length)}static deSerialize(G,X){let Y;switch(X.count){case a$.count:Y=a$.deSerialize(G);break;case YH.count:Y=YH.deSerialize(G);break;case JH.count:Y=JH.deSerialize(G);break;default:ko("unknown psfb packet",X.count);break}return new W({feedback:Y})}},rV=class W{ssrc=0;reports=[];static type=201;type=W.type;constructor(G={}){Object.assign(this,G)}serialize(){let G=F8([4],[this.ssrc]);return G=Buffer.concat([G,...this.reports.map((X)=>X.serialize())]),e6.serialize(W.type,this.reports.length,G,Math.floor(G.length/4))}static deSerialize(G,X){let[Y]=t9(G,[4]),J=4,Z=[];for(let V=0;V<X;V++)Z.push(XO.deSerialize(G.slice(J,J+24))),J+=24;return new W({ssrc:Y,reports:Z})}},XO=class W{ssrc;fractionLost;packetsLost;highestSequence;jitter;lsr;dlsr;constructor(G={}){Object.assign(this,G)}toJSON(){return{ssrc:this.ssrc,fractionLost:this.fractionLost,packetsLost:this.packetsLost,highestSequence:this.highestSequence,jitter:this.jitter,lsr:this.lsr,dlsr:this.dlsr}}serialize(){return F8([4,1,3,4,4,4,4],[this.ssrc,this.fractionLost,this.packetsLost,this.highestSequence,this.jitter,this.lsr,this.dlsr])}static deSerialize(G){let[X,Y,J,Z,V,U,Q]=t9(G,[4,1,3,4,4,4,4]);return new W({ssrc:X,fractionLost:Y,packetsLost:J,highestSequence:Z,jitter:V,lsr:U,dlsr:Q})}},X2=205,ZH=class W{static count=1;count=W.count;header;senderSsrc;mediaSourceSsrc;lost=[];toJSON(){return{lost:this.lost,senderSsrc:this.senderSsrc,mediaSourceSsrc:this.mediaSourceSsrc}}constructor(G={}){if(Object.assign(this,G),!this.header)this.header=new e6({type:X2,count:this.count,version:2})}static deSerialize(G,X){let[Y,J]=t9(G,[4,4]),Z=[];for(let V=8;V<G.length;V+=4){let[U,Q]=t9(G.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:X,senderSsrc:Y,mediaSourceSsrc:J,lost:Z})}serialize(){let G=F8([4,4],[this.senderSsrc,this.mediaSourceSsrc]),X=[];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 X.push(F8([2,2],[J,Z])),J=V,Z=0}),X.push(F8([2,2],[J,Z]))}let Y=Buffer.concat([G,Buffer.concat(X)]);return this.header.length=Y.length/4,Buffer.concat([this.header.serialize(),Y])}},_o=M1("werift/rtp/rtcp/rtpfb/twcc"),VH=class W{static count=15;count=W.count;length=2;senderSsrc;mediaSourceSsrc;baseSequenceNumber;packetStatusCount;referenceTime;fbPktCount;packetChunks=[];recvDeltas=[];header;constructor(G={}){if(Object.assign(this,G),!this.header)this.header=new e6({type:205,count:this.count,version:2})}static deSerialize(G,X){let[Y,J,Z,V,U,Q]=t9(G,[4,4,2,2,3,1]),N=[],q=[],A=16;for(let I=0;I<V;){let w=h8(G.slice(A,A+1)[0],0,1),O;switch(w){case 0:{let M=dV.deSerialize(G.slice(A,A+2));O=M;let S=Math.min(V-I,M.runLength);if(M.packetStatus===1||M.packetStatus===2)for(let v=0;v<S;v++)q.push(new gq({type:M.packetStatus}));I+=S}break;case 1:{let M=yo.deSerialize(G.slice(A,A+2));if(O=M,M.symbolSize===0)M.symbolList.forEach((S)=>{if(S===1)q.push(new gq({type:1}))});if(M.symbolSize===1)M.symbolList.forEach((S)=>{if(S===1||S===2)q.push(new gq({type:S}))});I+=M.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(G.slice(H,H+1)),H++;if(I.type===2)I.deSerialize(G.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:X})}serialize(){let G=F8([4,4,2,2,3,1],[this.senderSsrc,this.mediaSourceSsrc,this.baseSequenceNumber,this.packetStatusCount,this.referenceTime,this.fbPktCount]),X=Buffer.concat(this.packetChunks.map((Z)=>Z.serialize())),Y=Buffer.concat(this.recvDeltas.map((Z)=>{try{return Z.serialize()}catch(V){_o(V?.message);return}}).filter((Z)=>Z)),J=Buffer.concat([G,X,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 G=this.baseSequenceNumber-1,X=this.packetChunks.filter((V)=>V instanceof dV).flatMap((V)=>V.results(G)),Y=0,Z=BigInt(this.referenceTime)*64n;for(let V of X){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 X}},dV=class W{type;packetStatus;runLength;constructor(G={}){Object.assign(this,G),this.type=0}static deSerialize(G){let X=h8(G[0],1,2),Y=(h8(G[0],3,5)<<8)+G[1];return new W({type:0,packetStatus:X,runLength:Y})}serialize(){return new OS(16).set(0).set(this.packetStatus,2).set(this.runLength,13).buffer}results(G){let X=this.packetStatus===1||this.packetStatus===2,Y=[];for(let J=0;J<=this.runLength;++J)Y.push(new vo({sequenceNumber:++G,received:X}));return Y}},yo=class W{type;symbolSize;symbolList=[];constructor(G={}){Object.assign(this,G)}static deSerialize(G){let Y=h8(G[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(h8(G[0],2+V,1))),Z(8,(V)=>J.push(h8(G[1],V,1)));break;case 1:Z(3,(V)=>J.push(h8(G[0],2+V*2,2))),Z(4,(V)=>J.push(h8(G[1],V*2,2)));break;default:Y=(h8(G[0],2,6)<<8)+G[1]}return new W({type:1,symbolSize:Y,symbolList:J})}serialize(){let G=Buffer.alloc(2),X=new OS(16).set(1).set(this.symbolSize),Y=this.symbolSize===0?1:2;return this.symbolList.forEach((J)=>{X.set(J,Y)}),G.writeUInt16BE(X.value),G}},gq=class W{type;delta;constructor(G={}){Object.assign(this,G)}static deSerialize(G){let X,Y;if(G.length===1)X=1,Y=250*G[0];else if(G.length===2)X=2,Y=250*G.readInt16BE();if(X===void 0||Y===void 0)throw Error();return new W({type:X,delta:Y})}deSerialize(G){let X=W.deSerialize(G);this.delta=X.delta}parsed=!1;parseDelta(){if(this.delta=Math.floor(this.delta/250),this.delta<0||this.delta>255){if(this.delta>32767)this.delta=32767;if(this.delta<-32768)this.delta=-32768;if(!this.type)this.type=2}else if(!this.type)this.type=1;this.parsed=!0}serialize(){if(!this.parsed)this.parseDelta();if(this.type===1){let G=Buffer.alloc(1);return G.writeUInt8(this.delta),G}else if(this.type===2){let G=Buffer.alloc(2);return G.writeInt16BE(this.delta),G}throw Error("errDeltaExceedLimit "+this.delta+" "+this.type)}};var vo=class{sequenceNumber=0;delta=0;received=!1;receivedAtMs=0;constructor(W){Object.assign(this,W)}},go=M1("werift-rtp:packages/rtp/rtcp/rtpfb/index"),bY=class W{static type=X2;type=W.type;feedback;header;constructor(G={}){Object.assign(this,G)}serialize(){return this.feedback.serialize()}static deSerialize(G,X){let Y;switch(X.count){case ZH.count:Y=ZH.deSerialize(G,X);break;case VH.count:Y=VH.deSerialize(G,X);break;default:go("unknown rtpfb packet",X.count);break}return new W({feedback:Y,header:X})}},UH=class W{static type=202;type=W.type;chunks=[];constructor(G){Object.assign(this,G)}get length(){let G=0;return this.chunks.forEach((X)=>G+=X.length),G}serialize(){let G=Buffer.concat(this.chunks.map((X)=>X.serialize()));while(G.length%4)G=Buffer.concat([G,Buffer.from([0])]);return e6.serialize(this.type,this.chunks.length,G,G.length/4)}static deSerialize(G,X){let Y=[];for(let J=0;J<G.length;){let Z=Y2.deSerialize(G.slice(J));Y.push(Z),J+=Z.length}return new W({chunks:Y})}},Y2=class W{source;items=[];constructor(G={}){Object.assign(this,G)}get length(){let G=4;return this.items.forEach((X)=>G+=X.length),G+=1,G+=s$(G),G}serialize(){let G=Buffer.concat([F8([4],[this.source]),Buffer.concat(this.items.map((Y)=>Y.serialize()))]);return Buffer.concat([G,Buffer.alloc(s$(G.length))])}static deSerialize(G){let X=G.readUInt32BE(),Y=[];for(let J=4;J<G.length;){if(G[J]===0)break;let V=J2.deSerialize(G.slice(J));Y.push(V),J+=V.length}return new W({source:X,items:Y})}},J2=class W{type;text;constructor(G){Object.assign(this,G)}get length(){return 2+Buffer.from(this.text).length}serialize(){let G=Buffer.from(this.text);return Buffer.concat([F8([1,1],[this.type,G.length]),G])}static deSerialize(G){let X=G[0],Y=G[1],J=G.slice(2,2+Y).toString();return new W({type:X,text:J})}};function s$(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(G){Object.assign(this,G)}toJSON(){return{ssrc:this.ssrc,senderInfo:this.senderInfo.toJSON(),reports:this.reports.map((G)=>G.toJSON())}}serialize(){let G=Buffer.alloc(4);return G.writeUInt32BE(this.ssrc),G=Buffer.concat([G,this.senderInfo.serialize()]),G=Buffer.concat([G,...this.reports.map((X)=>X.serialize())]),e6.serialize(W.type,this.reports.length,G,Math.floor(G.length/4))}static deSerialize(G,X){let Y=G.readUInt32BE(),J=Z2.deSerialize(G.subarray(4,24)),Z=24,V=[];for(let Q=0;Q<X;Q++)V.push(XO.deSerialize(G.subarray(Z,Z+24))),Z+=24;return new W({ssrc:Y,senderInfo:J,reports:V})}},Z2=class W{ntpTimestamp;rtpTimestamp;packetCount;octetCount;constructor(G={}){Object.assign(this,G)}toJSON(){return{ntpTimestamp:uo(this.ntpTimestamp),rtpTimestamp:this.rtpTimestamp}}serialize(){return F8([8,4,4,4],[this.ntpTimestamp,this.rtpTimestamp,this.packetCount,this.octetCount])}static deSerialize(G){let[X,Y,J,Z]=t9(G,[8,4,4,4]);return new W({ntpTimestamp:X,rtpTimestamp:Y,packetCount:J,octetCount:Z})}},uo=(W)=>{let[G,X]=t9(F8([8],[W]),[4,4]);return Number(`${G}.${X}`)},ho=M1("werift-rtp:packages/rtp/src/rtcp/rtcp.ts"),bo=class{static deSerialize(W){let G=0,X=[];while(G<W.length){let Y=e6.deSerialize(W.subarray(G,G+SK));G+=SK;let J=W.subarray(G);if(G+=Y.length*4,Y.padding)J=J.subarray(0,J.length-J.subarray(-1)[0]);try{switch(Y.type){case mY.type:X.push(mY.deSerialize(J,Y.count));break;case rV.type:X.push(rV.deSerialize(J,Y.count));break;case UH.type:X.push(UH.deSerialize(J,Y));break;case bY.type:X.push(bY.deSerialize(J,Y));break;case iV.type:X.push(iV.deSerialize(J,Y));break;default:break}}catch(Z){ho("deSerialize RTCP",Z)}}return X}};function mo(W){return W.length>=2&&W[1]>=192&&W[1]<=208}var R9={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 fo(W,G){return W.map((X)=>{let Y=G[X.id];if(!Y)return{uri:"unknown",value:X.payload};switch(Y){case R9.sdesMid:case R9.sdesRTPStreamID:case R9.repairedRtpStreamId:return{uri:Y,value:io(X.payload)};case R9.transportWideCC:return{uri:Y,value:ro(X.payload)};case R9.absSendTime:return{uri:Y,value:ao(X.payload)};case R9.audioLevelIndication:return{uri:Y,value:so(X.payload)};case R9.videoOrientation:return{uri:Y,value:to(X.payload)};default:return{uri:Y,value:X.payload}}}).reduce((X,Y)=>{if(Y)X[Y.uri]=Y.value;return X},{})}function po(W){return Buffer.from(W)}function co(W){return Buffer.from(W)}function lo(W){return Buffer.from(W)}function oo(W){return F8([2],[W])}function no(W){let G=Buffer.alloc(3),X=W>>14n&0x00ffffffn;return G.writeUIntBE(Number(X),0,3),G}function io(W){return W.toString()}function ro(W){return W.readUInt16BE()}function ao(W){return t9(W,[3])[0]}function so(W){let G=new cV(W);return{v:G.readBits(1)===1,level:G.readBits(7)}}function to(W){let G=new cV(W);return G.readBits(4),{c:G.readBits(1),f:G.readBits(1),r1:G.readBits(1),r0:G.readBits(1)}}var eo=M1("packages/rtp/src/rtp/red/packet.ts"),V2=class W{header;blocks=[];static deSerialize(G){let X=G instanceof ArrayBuffer?Buffer.from(G):G,Y=new W,J=0;return[Y.header,J]=t$.deSerialize(X),Y.header.fields.forEach(({blockLength:Z,timestampOffset:V,blockPT:U})=>{if(Z&&V){let Q=X.subarray(J,J+Z);Y.blocks.push({block:Q,blockPT:U,timestampOffset:V}),J+=Z}else{let Q=X.subarray(J);Y.blocks.push({block:Q,blockPT:U})}}),Y}serialize(){this.header=new t$;for(let{timestampOffset:X,blockPT:Y,block:J}of this.blocks)if(X)this.header.fields.push({fBit:1,blockPT:Y,blockLength:J.length,timestampOffset:X});else this.header.fields.push({fBit:0,blockPT:Y});let G=this.header.serialize();for(let{block:X}of this.blocks)G=Buffer.concat([G,X]);return G}},t$=class W{fields=[];static deSerialize(G){let X=0,Y=new W;for(;;){let J={};Y.fields.push(J);let Z=new cV(G.subarray(X));if(J.fBit=Z.readBits(1),J.blockPT=Z.readBits(7),X++,J.fBit===0)break;J.timestampOffset=Z.readBits(14),J.blockLength=Z.readBits(10),X+=3}return[Y,X]}serialize(){let G=Buffer.alloc(0);for(let X of this.fields)try{if(X.timestampOffset&&X.blockLength){let Y=new cV(Buffer.alloc(4)).writeBits(1,X.fBit).writeBits(7,X.blockPT).writeBits(14,X.timestampOffset).writeBits(10,X.blockLength);G=Buffer.concat([G,Y.uint8Array])}else{let Y=new cV(Buffer.alloc(1)).writeBits(1,0).writeBits(7,X.blockPT);G=Buffer.concat([G,Y.uint8Array])}}catch(Y){eo(Y?.message)}return G}},Wn=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 V2,G=this.cache.slice(-(this.distance+1)),X=G.pop();if(!X)return W;return G.forEach((Y)=>{let J=gY(X.timestamp,-Y.timestamp);if(J>Gn)return;W.blocks.push({block:Y.block,blockPT:Y.blockPT,timestampOffset:J})}),W.blocks.push({block:X.block,blockPT:X.blockPT}),W}},Gn=16383,Xn=class{size=150;sequenceNumbers=[];push(W,G){let X=[];return W.blocks.forEach(({blockPT:J,timestampOffset:Z,block:V},U)=>{let Q=P9(G.header.sequenceNumber,-(W.blocks.length-(U+1)));if(Z)X.push(new t6(new s6({timestamp:gY(G.header.timestamp,-Z),payloadType:J,ssrc:G.header.ssrc,sequenceNumber:Q,marker:!0}),V));else X.push(new t6(new s6({timestamp:G.header.timestamp,payloadType:J,ssrc:G.header.ssrc,sequenceNumber:Q,marker:!0}),V))}),X.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}})}},jG={OneByte:48862,TwoByte:4096},e$=2,WF=4,GF=8,XF=12,YF=4,s6=class W{version=2;padding=!1;paddingSize=0;extension=!1;marker=!1;payloadOffset=0;payloadType=0;sequenceNumber=0;timestamp=0;ssrc=0;csrcLength=0;csrc=[];extensionProfile=jG.OneByte;extensionLength;extensions=[];constructor(G={}){Object.assign(this,G)}static deSerialize(G){let X=new W,Y=0,J=G[Y++];X.version=h8(J,0,2),X.padding=h8(J,2)>0,X.extension=h8(J,3)>0,X.csrcLength=h8(J,4,4),X.csrc=[...Array(X.csrcLength)].map(()=>{let V=G.readUInt32BE(Y);return Y+=4,V}),Y+=XF-1;let Z=G[1];X.marker=h8(Z,0)>0,X.payloadType=h8(Z,1,7),X.sequenceNumber=G.readUInt16BE(e$),X.timestamp=G.readUInt32BE(WF),X.ssrc=G.readUInt32BE(GF);for(let V=0;V<X.csrc.length;V++){let U=XF+V*YF;X.csrc[V]=G.subarray(U).readUInt32BE()}if(X.extension){X.extensionProfile=G.subarray(Y).readUInt16BE(),Y+=2;let V=G.subarray(Y).readUInt16BE()*4;switch(X.extensionLength=V,Y+=2,X.extensionProfile){case jG.OneByte:{let U=Y+V;while(Y<U){if(G[Y]===0){Y++;continue}let Q=G[Y]>>4,N=(G[Y]&(G[Y]^240))+1;if(Y++,Q===15)break;let q={id:Q,payload:G.subarray(Y,Y+N)};X.extensions=[...X.extensions,q],Y+=N}}break;case jG.TwoByte:{let U=Y+V;while(Y<U){if(G[Y]===0){Y++;continue}let Q=G[Y];Y++;let N=G[Y];Y++;let q={id:Q,payload:G.subarray(Y,Y+N)};X.extensions=[...X.extensions,q],Y+=N}}break;default:{let U={id:0,payload:G.subarray(Y,Y+V)};X.extensions=[...X.extensions,U],Y+=X.extensions[0].payload.length}break}}if(X.payloadOffset=Y,X.padding)X.paddingSize=G[G.length-1];return X}get serializeSize(){let{csrc:G,extensionProfile:X,extensions:Y}=this,J=12+G.length*YF;if(Y.length>0||this.extension===!0){let Z=4;switch(X){case jG.OneByte:for(let V of Y)Z+=1+V.payload.length;break;case jG.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(G){let X=Buffer.alloc(G),Y=0,J=new rq(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),X.writeUInt8(J.value,Y++);let Z=new rq(8);if(this.marker)Z.set(1,0,1);Z.set(7,1,this.payloadType),X.writeUInt8(Z.value,Y++),X.writeUInt16BE(this.sequenceNumber,e$),Y+=2,X.writeUInt32BE(this.timestamp,WF),Y+=4,X.writeUInt32BE(this.ssrc,GF),Y+=4;for(let V of this.csrc)X.writeUInt32BE(V,Y),Y+=4;if(this.extension){let V=Y;X.writeUInt16BE(this.extensionProfile,Y),Y+=4;let U=Y;switch(this.extensionProfile){case jG.OneByte:for(let q of this.extensions)X.writeUInt8(q.id<<4|q.payload.length-1,Y++),q.payload.copy(X,Y),Y+=q.payload.length;break;case jG.TwoByte:for(let q of this.extensions)X.writeUInt8(q.id,Y++),X.writeUInt8(q.payload.length,Y++),q.payload.copy(X,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(X,Y),Y+=q}}let Q=Y-U,N=Math.trunc((Q+3)/4)*4;X.writeUInt16BE(Math.trunc(N/4),V+2);for(let q=0;q<N-Q;q++)X.writeUInt8(0,Y),Y++}return this.payloadOffset=Y,X}},t6=class W{constructor(G,X){this.header=G,this.payload=X}get serializeSize(){return this.header.serializeSize+this.payload.length}clone(){return new W(new s6({...this.header}),this.payload)}serialize(){let G=this.header.serialize(this.header.serializeSize+this.payload.length),{payloadOffset:X}=this.header;if(this.payload.copy(G,X),this.header.padding){let Y=Buffer.alloc(this.header.paddingSize);Y.writeUInt8(this.header.paddingSize,this.header.paddingSize-1),G=Buffer.concat([G,Y])}return G}static deSerialize(G){let X=s6.deSerialize(G);return new W(X,G.subarray(X.payloadOffset,G.length-X.paddingSize))}clear(){this.payload=null}};function Yn(W,G,X){return new t6(new s6({payloadType:G,marker:W.header.marker,sequenceNumber:e1.Unpack("!H",W.payload.subarray(0,2))[0],timestamp:W.header.timestamp,ssrc:X}),W.payload.subarray(2))}function Jn(W,G,X,Y){return new t6(new s6({payloadType:G,marker:W.header.marker,sequenceNumber:X,timestamp:W.header.timestamp,ssrc:Y,csrc:W.header.csrc,extensions:W.header.extensions}),Buffer.concat([Buffer.from(e1.Pack("!H",[W.header.sequenceNumber])),W.payload]))}var U2=class{constructor(W,G,X,Y){this.srtpSessionKey=W,this.srtpSessionSalt=G,this.srtcpSessionKey=X,this.srtcpSessionSalt=Y}encryptRtp(W,G,X){return Buffer.from([])}decryptRtp(W,G,X){return[]}encryptRTCP(W,G){return Buffer.from([])}decryptRTCP(W){return[]}},fY=class extends Error{constructor(W){super(W);this.name="SrtpAuthenticationError"}},UF=12,Vn=8;function YO(W,G,X="Failed to authenticate SRTP packet"){let Y=W.length-G;aV(W.length>=UF+G,X);let J=N2(()=>s6.deSerialize(W.subarray(0,Y)),X);return J.paddingSize=0,aV(J.payloadOffset>=UF&&J.payloadOffset<=Y,X),J}function Q2(W,G,X,Y="Failed to authenticate SRTCP packet"){return aV(W.length>=Vn+G+X,Y),N2(()=>e6.deSerialize(W.subarray(0,SK)),Y)}function aV(W,G){if(!W)throw new fY(G)}function N2(W,G){try{return W()}catch{throw new fY(G)}}function q2(W,G,X="Failed to authenticate SRTP packet"){if(!W.padding)return W.paddingSize=0,W;aV(G.length>W.payloadOffset,X);let Y=G[G.length-1];return aV(Y>0&&Y<=G.length-W.payloadOffset,X),W.paddingSize=Y,W}var Un=class extends U2{constructor(W,G,X,Y,J,Z){super(W,G,X,Y);this.srtpSessionAuthTag=J,this.srtcpSessionAuthTag=Z}authTagLength=10;encryptRtp(W,G,X){let Y=W.serialize(W.serializeSize),J=this.generateCounter(W.sequenceNumber,X,W.ssrc,this.srtpSessionSalt),V=JF("aes-128-ctr",this.srtpSessionKey,J).update(G),U=this.generateSrtpAuthTag(X,Y,V);return Buffer.concat([Y,V,U])}decryptRtp(W,G,X=YO(W,this.authTagLength)){let Y=W.length-this.authTagLength,J=W.subarray(0,Y),Z=W.subarray(Y),V=this.generateSrtpAuthTag(G,J.subarray(0,X.payloadOffset),J.subarray(X.payloadOffset));NF(Z,V,"Failed to authenticate SRTP packet");let U=this.generateCounter(X.sequenceNumber,G,X.ssrc,this.srtpSessionSalt),Q=ZF("aes-128-ctr",this.srtpSessionKey,U),N=J.subarray(X.payloadOffset),q=Q.update(N),A=Buffer.concat([J.subarray(0,X.payloadOffset),q]);return[A,q2(X,A,"Failed to authenticate SRTP packet")]}encryptRTCP(W,G){let X=Buffer.from(W),Y=X.readUInt32BE(4),J=this.generateCounter(G&65535,G>>16,Y,this.srtcpSessionSalt);JF("aes-128-ctr",this.srtcpSessionKey,J).update(X.slice(8)).copy(X,8),X=Buffer.concat([X,Buffer.alloc(4)]),X.writeUInt32BE(G,X.length-4),X[X.length-4]|=128;let U=this.generateSrtcpAuthTag(X);return X=Buffer.concat([X,U]),X}decryptRTCP(W){let G=Q2(W,this.authTagLength,QF),X=W.length-(this.authTagLength+QF),Y=W.subarray(0,W.length-this.authTagLength),J=W.subarray(W.length-this.authTagLength),Z=this.generateSrtcpAuthTag(Y);NF(J,Z,"Failed to authenticate SRTCP packet");let V=Buffer.from(W).slice(0,X);if(W[X]>>>7===0)return[V,G];let Q=W.readUInt32BE(X);Q&=2147483647;let N=W.readUInt32BE(4),q=this.generateCounter(Q&65535,Q>>16,N,this.srtcpSessionSalt);return ZF("aes-128-ctr",this.srtcpSessionKey,q).update(V.subarray(8)).copy(V,8),[V,G]}generateSrtcpAuthTag(W){return VF("sha1",this.srtcpSessionAuthTag).update(W).digest().slice(0,10)}generateCounter(W,G,X,Y){let J=Buffer.alloc(16);J.writeUInt32BE(X,4),J.writeUInt32BE(G,8),J.writeUInt32BE(Number(BigInt(W)<<16n),12);for(let Z=0;Z<Y.length;Z++)J[Z]^=Y[Z];return J}generateSrtpAuthTag(W,...G){let X=VF("sha1",this.srtpSessionAuthTag),Y=Buffer.alloc(4);Y.writeUInt32BE(W);for(let J of G)X.update(J);return X.update(Y).digest().subarray(0,10)}},QF=4;function NF(W,G,X){if(W.length!==G.length||!Zn(W,G))throw new fY(X)}var Qn=class extends U2{aeadAuthTagLen=16;rtpIvWriter=vq([2,4,4,2],!0);rtcpIvWriter=vq([2,4,2,4],!0);aadWriter=vq([4],!0);constructor(W,G,X,Y){super(W,G,X,Y)}encryptRtp(W,G,X){let Y=W.serialize(W.serializeSize),J=this.rtpInitializationVector(W,X),Z=qF("aes-128-gcm",this.srtpSessionKey,J);Z.setAAD(Y);let V=Z.update(G);Z.final();let U=Z.getAuthTag();return Buffer.concat([Y,V,U])}decryptRtp(W,G,X=YO(W,this.aeadAuthTagLen)){let Y=W.subarray(0,X.payloadOffset),J=W.length-this.aeadAuthTagLen,Z=W.subarray(J),V=Buffer.from([]);V=r$(V,W.length-this.aeadAuthTagLen),Y.copy(V);let U=this.rtpInitializationVector(X,G),Q=W.slice(X.payloadOffset,J),N=HF("aes-128-gcm",this.srtpSessionKey,U);N.setAAD(Y),N.setAuthTag(Z);let q=N.update(Q);return zF(N,"SRTP"),q.copy(V,X.payloadOffset),[V,q2(X,V,"Failed to authenticate SRTP packet")]}encryptRTCP(W,G){let X=W.readUInt32BE(4),Y=W.length+this.aeadAuthTagLen,J=Buffer.from([]);J=r$(J,Y+UK),W.slice(0,8).copy(J);let Z=this.rtcpInitializationVector(X,G),V=this.rtcpAdditionalAuthenticatedData(W,G),U=qF("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 G=Q2(W,this.aeadAuthTagLen,UK),X=W.length-UK,Y=X-this.aeadAuthTagLen,J=W.readUInt32BE(4),Z=W.readUInt32BE(X),V=Z>>>31===1,U=Z&~(AF<<24),Q=this.rtcpInitializationVector(J,U),N=V?Buffer.concat([W.subarray(0,8),W.subarray(X)]):Buffer.concat([W.subarray(0,Y),W.subarray(X)]),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=HF("aes-128-gcm",this.srtcpSessionKey,Q);H.setAAD(N),H.setAuthTag(W.subarray(Y,X));let I=H.update(q);if(zF(H,"SRTCP"),V)I.copy(A,8);return[A,G]}rtpInitializationVector(W,G){let X=this.rtpIvWriter([0,W.ssrc,G,W.sequenceNumber]);for(let Y=0;Y<X.length;Y++)X[Y]^=this.srtpSessionSalt[Y];return X}rtcpInitializationVector(W,G){let X=this.rtcpIvWriter([0,W,0,G]);for(let Y=0;Y<X.length;Y++)X[Y]^=this.srtcpSessionSalt[Y];return X}rtcpAdditionalAuthenticatedData(W,G){let X=Buffer.concat([W.subarray(0,8),this.aadWriter([G])]);return X[8]|=AF,X}},UK=4,AF=128;function zF(W,G){try{W.final()}catch{throw new fY(`Failed to authenticate ${G} packet`)}}var H2=class{constructor(W,G,X){this.masterKey=W,this.masterSalt=G,this.profile=X;{let Y=14-G.length;if(Y>0)this.masterSalt=Buffer.concat([G,Buffer.alloc(Y)])}switch(this.srtpSessionKey=this.generateSessionKey(0),this.srtpSessionSalt=this.generateSessionSalt(2),this.srtpSessionAuthTag=this.generateSessionAuthTag(1),this.srtpSessionAuth=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),X){case jH:this.cipher=new Un(this.srtpSessionKey,this.srtpSessionSalt,this.srtcpSessionKey,this.srtcpSessionSalt,this.srtpSessionAuthTag,this.srtcpSessionAuthTag);break;case VU:this.cipher=new Qn(this.srtpSessionKey,this.srtpSessionSalt,this.srtcpSessionKey,this.srtcpSessionSalt);break}}srtpSSRCStates={};srtpSessionKey;srtpSessionSalt;srtpSessionAuthTag;srtpSessionAuth;srtcpSSRCStates={};srtcpSessionKey;srtcpSessionSalt;srtcpSessionAuthTag;srtcpSessionAuth;cipher;generateSessionKey(W){let G=Buffer.from(this.masterSalt),X=Buffer.from([W,0,0,0,0,0,0]);for(let J=X.length-1,Z=G.length-1;J>=0;J--,Z--)G[Z]=G[Z]^X[J];G=Buffer.concat([G,Buffer.from([0,0])]);let Y=new uq.default.AES(this.masterKey);return Buffer.from(Y.encrypt(G))}generateSessionSalt(W){let G=Buffer.from(this.masterSalt),X=Buffer.from([W,0,0,0,0,0,0]);for(let J=X.length-1,Z=G.length-1;J>=0;J--,Z--)G[Z]=G[Z]^X[J];G=Buffer.concat([G,Buffer.from([0,0])]);let Y=new uq.default.AES(this.masterKey);return G=Buffer.from(Y.encrypt(G)),G.subarray(0,14)}generateSessionAuthTag(W){let G=Buffer.from(this.masterSalt),X=Buffer.from([W,0,0,0,0,0,0]);for(let V=X.length-1,U=G.length-1;V>=0;V--,U--)G[U]=G[U]^X[V];let Y=Buffer.concat([G,Buffer.from([0,0])]),J=Buffer.concat([G,Buffer.from([0,1])]),Z=new uq.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 G=this.srtpSSRCStates[W];if(G)return G;return G={ssrc:W,rolloverCounter:0,lastSequenceNumber:0},this.srtpSSRCStates[W]=G,G}getSrtcpSsrcState(W){let G=this.srtcpSSRCStates[W];if(G)return G;return G={srtcpIndex:0,ssrc:W},this.srtcpSSRCStates[W]=G,G}updateRolloverCount(W,G){if(!G.rolloverHasProcessed)G.rolloverHasProcessed=!0;else if(W===0){if(G.lastSequenceNumber>yV)G.rolloverCounter++}else if(G.lastSequenceNumber<yV&&W>IF-yV){if(G.rolloverCounter>0)G.rolloverCounter--}else if(W<yV&&G.lastSequenceNumber>IF-yV)G.rolloverCounter++;G.lastSequenceNumber=W}generateSrtpAuthTag(W,G){this.srtpSessionAuth=VK("sha1",this.srtpSessionAuthTag);let X=Buffer.alloc(4);return X.writeUInt32BE(G),this.srtpSessionAuth.update(W).update(X).digest().slice(0,10)}index(W){let G=this.srtcpSSRCStates[W];if(!G)return 0;return G.srtcpIndex}setIndex(W,G){let X=this.getSrtcpSsrcState(W);X.srtcpIndex=G%2147483647}},yV=100,IF=65535,Nn=class extends H2{constructor(W,G,X){super(W,G,X)}encryptRTCP(W){let G=W.readUInt32BE(4),X=this.getSrtcpSsrcState(G);if(X.srtcpIndex++,X.srtcpIndex>>qn)X.srtcpIndex=0;return this.cipher.encryptRTCP(W,X.srtcpIndex)}decryptRTCP(W){return this.cipher.decryptRTCP(W)}},qn=2147483647,A2=class{constructor(W){this.ContextCls=W}localContext;remoteContext;onData;start(W,G,X,Y,J){this.localContext=new this.ContextCls(W,G,J),this.remoteContext=new this.ContextCls(X,Y,J)}},Hn=class extends A2{constructor(W){super(Nn);this.config=W,this.start(W.keys.localMasterKey,W.keys.localMasterSalt,W.keys.remoteMasterKey,W.keys.remoteMasterSalt,W.profile)}decrypt=(W)=>{let[G]=this.remoteContext.decryptRTCP(W);return G};encrypt(W){return this.localContext.encryptRTCP(W)}},An=class extends H2{constructor(W,G,X){super(W,G,X)}encryptRtp(W,G){let X=this.getSrtpSsrcState(G.ssrc);return this.updateRolloverCount(G.sequenceNumber,X),this.cipher.encryptRtp(G,W,X.rolloverCounter)}decryptRtp(W){let G=YO(W,this.rtpAuthTagLength),X=this.srtpSSRCStates[G.ssrc],Y=X?{...X}:{ssrc:G.ssrc,rolloverCounter:0,lastSequenceNumber:0};this.updateRolloverCount(G.sequenceNumber,Y);let J=this.cipher.decryptRtp(W,Y.rolloverCounter,G);if(X)Object.assign(X,Y);else this.srtpSSRCStates[G.ssrc]=Y;return J}get rtpAuthTagLength(){return this.profile===VU?16:10}},zn=class extends A2{constructor(W){super(An);this.config=W,this.start(W.keys.localMasterKey,W.keys.localMasterSalt,W.keys.remoteMasterKey,W.keys.remoteMasterSalt,W.profile)}decrypt=(W)=>{let[G]=this.remoteContext.decryptRtp(W);return G};encrypt(W,G){return this.localContext.encryptRtp(W,G)}},lH0=class{constructor(W){this.props=W}sequenceNumber=KS();timestamp=TK();create(W){this.sequenceNumber=P9(this.sequenceNumber,1);let G=this.props.between*this.props.clockRate/1000;this.timestamp=gY(this.timestamp,G);let X=new s6({sequenceNumber:this.sequenceNumber,timestamp:Number(this.timestamp),payloadType:96,extension:!0,marker:!1,padding:!1});return new t6(X,W)}},h9=M1("werift-dtls : packages/dtls/src/flight/client/flight5.ts : log"),In=class extends XU{constructor(W,G,X,Y){super(W,G,5,7);this.cipher=X,this.srtp=Y}handleHandshake(W){this.dtls.bufferHandshakeCache([W],!1,4);let G=(()=>{switch(W.msg_type){case 2:return tS.deSerialize(W.fragment);case 11:return GH.deSerialize(W.fragment);case 12:return G2.deSerialize(W.fragment);case 13:return sS.deSerialize(W.fragment);case 14:return eS.deSerialize(W.fragment)}})();if(G)lY[G.msgType]({dtls:this.dtls,cipher:this.cipher,srtp:this.srtp})(G)}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 G=[W&&this.sendCertificate(),this.sendClientKeyExchange(),W&&this.sendCertificateVerify(),this.sendChangeCipherSpec(),this.sendFinished()].filter((X)=>X);this.dtls.lastMessage=G,await this.transmit(G)}sendCertificate(){let W=new GH([Buffer.from(this.cipher.localCert)]),G=this.createPacket([W]);return Buffer.concat(G.map((Y)=>Y.serialize()))}sendClientKeyExchange(){if(!this.cipher.localKeyPair)throw Error();let W=new aS(this.cipher.localKeyPair.publicKey),G=this.createPacket([W]),X=Buffer.concat(G.map((U)=>U.serialize())),Y=this.cipher.localKeyPair,J=this.cipher.remoteKeyPair;if(!J.publicKey)throw Error("not exist");let Z=yS(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?gS(Z,V):vS(Z,this.cipher.localRandom.serialize(),this.cipher.remoteRandom.serialize()),this.cipher.cipher=dS(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),X}sendCertificateVerify(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((V)=>V.serialize())),G=this.cipher.signatureData(W,"sha256"),X=(()=>{switch(this.cipher.signatureHashAlgorithm?.signature){case l4.ecdsa_3:return p$.ecdsa_secp256r1_sha256;case l4.rsa_1:return p$.rsa_pkcs1_sha256}})();if(!X)throw Error();h9(this.dtls.sessionId,"signatureScheme",this.cipher.signatureHashAlgorithm?.signature,X);let Y=new rS(X,G),J=this.createPacket([Y]);return Buffer.concat(J.map((V)=>V.serialize()))}sendChangeCipherSpec(){let W=iS.createEmpty().serialize(),G=GU(this.dtls)([{type:20,fragment:W}],++this.dtls.recordSequenceNumber);return Buffer.concat(G.map((Y)=>Y.serialize()))}sendFinished(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((Z)=>Z.serialize())),G=this.cipher.verifyData(W),X=new FK(G);this.dtls.epoch=1;let[Y]=this.createPacket([X]);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:G,dtls:X})=>(Y)=>{if(h9(X.sessionId,"serverHello",Y.cipherSuite),W.remoteRandom=TG.from(Y.random),W.cipherSuite=Y.cipherSuite,h9(X.sessionId,"selected cipherSuite",W.cipherSuite),Y.extensions)Y.extensions.forEach((J)=>{switch(J.type){case hY.type:{let Z=hY.fromData(J.data),V=eq.findMatchingSRTPProfile(Z.profiles,X.options.srtpProfiles||[]);if(h9(X.sessionId,"selected srtp profile",V),V==null)return;G.srtpProfile=V}break;case zH.type:X.remoteExtendedMasterSecret=!0;break;case IH.type:h9(X.sessionId,"RenegotiationIndication");break}})};lY[11]=({cipher:W,dtls:G})=>(X)=>{h9(G.sessionId,"handshake certificate",X),W.remoteCertificate=X.certificateList[0]};lY[12]=({cipher:W,dtls:G})=>(X)=>{if(!W.localRandom||!W.remoteRandom)throw Error();h9(G.sessionId,"ServerKeyExchange",X),h9(G.sessionId,"selected curve",X.namedCurve),W.remoteKeyPair={curve:X.namedCurve,publicKey:X.publicKey},W.localKeyPair=nS(X.namedCurve)};lY[13]=({dtls:W})=>(G)=>{h9(W.sessionId,"certificate_request",G),W.requestedCertificateTypes=G.certificateTypes,W.requestedSignatureAlgorithms=G.signatures};lY[14]=({dtls:W})=>(G)=>{h9(W.sessionId,"server_hello_done",G)};var z2=class W{constructor(G,X){this.serverVersion=G,this.cookie=X}msgType=3;messageSeq;static spec={serverVersion:GO,cookie:LG.types.buffer(LG.types.uint8)};static createEmpty(){return new W(void 0,void 0)}static deSerialize(G){return new W(...Object.values(LG.decode(G,W.spec)))}serialize(){let G=LG.encode(this,W.spec).slice();return Buffer.from(G)}get version(){return{major:255-this.serverVersion.major,minor:255-this.serverVersion.minor}}toFragment(){let G=this.serialize();return new $5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},jn=M1("werift-dtls : packages/dtls/src/context/dtls.ts : log"),wF=class{constructor(W,G){this.options=W,this.sessionType=G}version={major:254,minor:253};lastFlight=[];lastMessage=[];recordSequenceNumber=0;sequenceNumber=0;epoch=0;flight=0;handshakeCache={};cookie;requestedCertificateTypes=[];requestedSignatureAlgorithms=[];remoteExtendedMasterSecret=!1;get sessionId(){return this.cookie?this.cookie.toString("hex").slice(0,10):""}get sortedHandshakeCache(){return Object.entries(this.handshakeCache).sort(([W],[G])=>Number(W)-Number(G)).flatMap(([,{data:W}])=>W.sort((G,X)=>G.message_seq-X.message_seq))}checkHandshakesExist=(W)=>!W.find((G)=>this.sortedHandshakeCache.find((X)=>X.msg_type===G)==null);bufferHandshakeCache(W,G,X){if(!this.handshakeCache[X])this.handshakeCache[X]={data:[],isLocal:G,flight:X};let Y=W.filter((J)=>{let Z=this.handshakeCache[X].data.find((V)=>V.msg_type===J.msg_type);if(Z)return jn(this.sessionId,"exist",Z.summary,G,X),!1;return!0});this.handshakeCache[X].data=[...this.handshakeCache[X].data,...Y]}},Kn=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(G={}){Object.assign(this,G)}static createEmpty(){return new W}static fromData(G){return new W({type:W.type,data:d7.decode(G,W.spec.data)})}static deSerialize(G){return new W(d7.decode(G,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(G={}){Object.assign(this,G)}static createEmpty(){return new W}static deSerialize(G){return new W(c7.decode(G,W.spec))}serialize(){let G=c7.encode(this,W.spec).slice();return Buffer.from(G)}static fromData(G){let X=Buffer.alloc(2);return X.writeUInt16BE(W.type),W.deSerialize(Buffer.concat([X,G]))}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},jF=class W{constructor(G,X){this.level=G,this.description=X}static spec={level:BG.types.uint8,description:BG.types.uint8};static deSerialize(G){return new W(...Object.values(BG.decode(G,W.spec)))}serialize(){let G=BG.encode(this,W.spec).slice();return Buffer.from(G)}},KF=M1("werift-dtls : packages/dtls/record/receive.ts : log"),QK=M1("werift-dtls : packages/dtls/record/receive.ts : err"),On=(W)=>{let G=0,X=[];while(W.length>G){let Y=W.readUInt16BE(G+11);if(W.length<G+(12+Y))break;let J=cS.deSerialize(W.subarray(G));X.push(J),G+=13+Y}return X},Dn=(W,G)=>(X)=>{switch(X.recordLayerHeader.contentType){case 20:return KF(W.sessionId,"change cipher spec"),[{type:20,data:void 0}];case 22:{let J=X.fragment;try{if(X.recordLayerHeader.epoch>0)KF(W.sessionId,"decrypt handshake"),J=G.decryptPacket(X)}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:G.decryptPacket(X)}];case 21:{let J=jF.deSerialize(X.fragment);if($K[J.description]==null){let Z=G.decryptPacket(X);J=jF.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}]}},OF=M1("werift-dtls : packages/dtls/src/socket.ts : log"),DF=M1("werift-dtls : packages/dtls/src/socket.ts : err"),I2=class{constructor(W,G){this.options=W,this.sessionType=G,this.dtls=new wF(this.options,this.sessionType),this.cipher=new tq(this.sessionType,this.options.cert,this.options.key,this.options.signatureHash),this.transport=new Kn(this.options.transport),this.setupExtensions(),this.transport.socket.onData=this.udpOnMessage}onConnect=new c0;onData=new c0;onError=new c0;onClose=new c0;transport;cipher;dtls;srtp=new eq;connected=!1;extensions=[];onHandleHandshakes;bufferFragmentedHandshakes=[];renegotiation(){OF("renegotiation",this.sessionType),this.connected=!1,this.cipher=new tq(this.sessionType,this.options.cert,this.options.key,this.options.signatureHash),this.dtls=new wF(this.options,this.sessionType),this.srtp=new eq,this.extensions=[],this.bufferFragmentedHandshakes=[]}udpOnMessage=(W)=>{let G=On(W);for(let X of G)try{let Y=Dn(this.dtls,this.cipher)(X);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)=>{DF(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){DF(this.dtls.sessionId,"catch udpOnMessage error",Y)}};setupExtensions(){if(OF(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=FS,this.extensions.push(W.extension)}{let W=kK.createEmpty();W.data=xS,this.extensions.push(W.extension)}if(this.options.extendedMasterSecret)this.extensions.push({type:zH.type,data:Buffer.alloc(0)});{let W=IH.createEmpty();this.extensions.push(W.extension)}}waitForReady=(W)=>new Promise(async(G,X)=>{for(let Y=0;Y<10;Y++)if(W()){G();break}else await wn(100*Y);X("waitForReady timeout")});handleFragmentHandshake(W){let G=W.filter((X)=>{if(X.fragment_length!==X.length)return this.bufferFragmentedHandshakes.push(X),!1;return!0});if(this.bufferFragmentedHandshakes.length>1){let[X]=this.bufferFragmentedHandshakes.slice(-1);if(X.fragment_offset+X.fragment_length===X.length)G=[...this.bufferFragmentedHandshakes,...G],this.bufferFragmentedHandshakes=[]}return G}send=async(W)=>{let G=GU(this.dtls)([{type:23,fragment:W}],++this.dtls.recordSequenceNumber)[0];await this.transport.send(this.cipher.encryptPacket(G).serialize())};close(){this.transport.socket.close()}extractSessionKeys(W,G){let X=this.exportKeyingMaterial("EXTRACTOR-dtls_srtp",W*2+G*2),{clientKey:Y,serverKey:J,clientSalt:Z,serverSalt:V}=OG.decode(X,{clientKey:OG.types.buffer(W),serverKey:OG.types.buffer(W),clientSalt:OG.types.buffer(G),serverSalt:OG.types.buffer(G)});if(this.sessionType===c4.CLIENT)return{localKey:Y,localSalt:Z,remoteKey:J,remoteSalt:V};else return{localKey:J,localSalt:V,remoteKey:Y,remoteSalt:Z}}exportKeyingMaterial(W,G){return sd(W,G,this.cipher.masterSecret,this.cipher.localRandom.serialize(),this.cipher.remoteRandom.serialize(),this.sessionType===c4.CLIENT)}get remoteCertificate(){return this.cipher.remoteCertificate}},NK=M1("werift-dtls : packages/dtls/src/client.ts : log"),CF=class extends I2{constructor(W){super(W,c4.CLIENT);this.onHandleHandshakes=this.handleHandshakes,NK(this.dtls.sessionId,"start client")}async connect(){await new Io(this.transport,this.dtls,this.cipher).exec(this.extensions)}flight5;handleHandshakes=async(W)=>{NK(this.dtls.sessionId,"handleHandshakes",W.map((G)=>G.msg_type));for(let G of W)switch(G.msg_type){case 3:{let X=z2.deSerialize(G.fragment);await new jo(this.transport,this.dtls).exec(X)}break;case 2:{if(this.connected)return;this.flight5=new In(this.transport,this.dtls,this.cipher,this.srtp),this.flight5.handleHandshake(G)}break;case 11:case 12:case 13:await this.waitForReady(()=>!!this.flight5),this.flight5?.handleHandshake(G);break;case 14:{await this.waitForReady(()=>!!this.flight5),this.flight5?.handleHandshake(G);let X=[11,12,this.options.certificateRequest&&13].filter((Y)=>typeof Y==="number");await this.waitForReady(()=>this.dtls.checkHandshakesExist(X)),await this.flight5?.exec()}break;case 20:this.dtls.flight=7,this.connected=!0,this.onConnect.execute(),NK(this.dtls.sessionId,"dtls connected");break}}},p7=M1("werift-dtls : packages/dtls/flight/server/flight2.ts : log"),Tn=(W,G,X,Y)=>(J)=>{p7("dtls version",J.clientVersion),G.flight=2,G.recordSequenceNumber=0,G.sequenceNumber=0,J.extensions.forEach((A)=>{switch(A.type){case xK.type:{let H=xK.fromData(A.data).data;p7(G.sessionId,"curves",H);let I=H.filter((w)=>FS.includes(w))[0];X.namedCurve=I,p7(G.sessionId,"curve selected",X.namedCurve)}break;case kK.type:{if(!X.signatureHashAlgorithm)throw Error("need to set certificate");let H=kK.fromData(A.data).data;p7(G.sessionId,"hash,signature",H);let I=H.find((O)=>O.signature===X.signatureHashAlgorithm?.signature)?.signature,w=H.find((O)=>O.hash===X.signatureHashAlgorithm?.hash)?.hash;if(I==null||w==null)throw Error("invalid signatureHash")}break;case hY.type:{if(!G.options?.srtpProfiles)return;if(G.options.srtpProfiles.length===0)return;let H=hY.fromData(A.data);p7(G.sessionId,"srtp profiles",H.profiles);let I=eq.findMatchingSRTPProfile(H.profiles,G.options?.srtpProfiles);if(!I)throw Error();Y.srtpProfile=I,p7(G.sessionId,"srtp profile selected",Y.srtpProfile)}break;case zH.type:G.remoteExtendedMasterSecret=!0;break;case IH.type:p7(G.sessionId,"RenegotiationIndication",A.data);break;case 43:{let I=[...A.data.subarray(1)].map((w)=>w.toString(10));p7("dtls supported version",I)}break}}),X.localRandom=new TG,X.remoteRandom=TG.from(J.random);let Z=J.cipherSuites;p7(G.sessionId,"cipher suites",Z);let V=(()=>{switch(X.signatureHashAlgorithm?.signature){case l4.ecdsa_3:return LK.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_49195;case l4.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");X.cipherSuite=V,p7(G.sessionId,"selected cipherSuite",X.cipherSuite),X.localKeyPair=nS(X.namedCurve),G.cookie||=Cn(20);let U=new z2({major:254,minor:253},G.cookie),Q=lS(G)([U]),q=GU(G)(Q.map((A)=>({type:22,fragment:A.serialize()})),++G.recordSequenceNumber).map((A)=>A.serialize());for(let A of q)W.send(A)},TF=M1("werift-dtls : packages/dtls/flight/server/flight4.ts : log"),Mn=class extends XU{constructor(W,G,X,Y){super(W,G,4,6);this.cipher=X,this.srtp=Y}async exec(W,G=!1){if(this.dtls.flight===4){TF(this.dtls.sessionId,"flight4 twice"),this.send(this.dtls.lastMessage);return}this.dtls.flight=4,this.dtls.sequenceNumber=1,this.dtls.bufferHandshakeCache([W],!1,4);let X=[this.sendServerHello(),this.sendCertificate(),this.sendServerKeyExchange(),G&&this.sendCertificateRequest(),this.sendServerHelloDone()].filter((Y)=>Y);this.dtls.lastMessage=X,await this.transmit(X)}sendServerHello(){let W=[];if(this.srtp.srtpProfile)W.push(hY.create([this.srtp.srtpProfile],Buffer.from([0])).extension);if(this.dtls.options.extendedMasterSecret)W.push({type:zH.type,data:Buffer.alloc(0)});let G=IH.createEmpty();W.push(G.extension);let X=new tS(this.dtls.version,this.cipher.localRandom,Buffer.from([0]),this.cipher.cipherSuite,0,W),Y=this.createPacket([X]);return Buffer.concat(Y.map((J)=>J.serialize()))}sendCertificate(){let W=new GH([Buffer.from(this.cipher.localCert)]),G=this.createPacket([W]);return Buffer.concat(G.map((X)=>X.serialize()))}sendServerKeyExchange(){let W=this.cipher.generateKeySignature("sha256");if(!this.cipher.signatureHashAlgorithm)throw Error("not exist");let G=new G2(SS.named_curve_3,this.cipher.namedCurve,this.cipher.localKeyPair.publicKey.length,this.cipher.localKeyPair.publicKey,this.cipher.signatureHashAlgorithm.hash,this.cipher.signatureHashAlgorithm.signature,W.length,W),X=this.createPacket([G]);return Buffer.concat(X.map((Y)=>Y.serialize()))}sendCertificateRequest(){let W=new sS(od,xS,[]);TF(this.dtls.sessionId,"sendCertificateRequest",W);let G=this.createPacket([W]);return Buffer.concat(G.map((X)=>X.serialize()))}sendServerHelloDone(){let W=new eS,G=this.createPacket([W]);return Buffer.concat(G.map((X)=>X.serialize()))}},pY=M1("werift-dtls : packages/dtls/flight/server/flight6.ts"),Rn=class extends XU{constructor(W,G,X){super(W,G,6);this.cipher=X}handleHandshake(W){this.dtls.bufferHandshakeCache([W],!1,5);let G=(()=>{switch(W.msg_type){case 11:return GH.deSerialize(W.fragment);case 15:return rS.deSerialize(W.fragment);case 16:return aS.deSerialize(W.fragment);case 20:return FK.deSerialize(W.fragment)}})();if(G){let X=UU[G.msgType];if(!X)return;X({dtls:this.dtls,cipher:this.cipher})(G)}}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=iS.createEmpty().serialize(),G=GU(this.dtls)([{type:20,fragment:W}],++this.dtls.recordSequenceNumber);return Buffer.concat(G.map((Y)=>Y.serialize()))}sendFinished(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((Z)=>Z.serialize())),G=this.cipher.verifyData(W),X=new FK(G);this.dtls.epoch=1;let[Y]=this.createPacket([X]);return this.dtls.recordSequenceNumber=0,this.cipher.encryptPacket(Y).serialize()}},UU={};UU[16]=({cipher:W,dtls:G})=>(X)=>{if(W.remoteKeyPair={curve:W.namedCurve,publicKey:X.publicKey},!W.remoteKeyPair.publicKey||!W.localKeyPair||!W.remoteRandom||!W.localRandom)throw Error("not exist");let Y=yS(W.remoteKeyPair.publicKey,W.localKeyPair.privateKey,W.localKeyPair.curve);pY(G.sessionId,"extendedMasterSecret",G.options.extendedMasterSecret,G.remoteExtendedMasterSecret);let J=Buffer.concat(G.sortedHandshakeCache.map((Z)=>Z.serialize()));W.masterSecret=G.options.extendedMasterSecret&&G.remoteExtendedMasterSecret?gS(Y,J):vS(Y,W.remoteRandom.serialize(),W.localRandom.serialize()),W.cipher=dS(W.cipherSuite),W.cipher.init(W.masterSecret,W.localRandom.serialize(),W.remoteRandom.serialize()),pY(G.sessionId,"setup cipher",W.cipher.summary)};UU[11]=({cipher:W,dtls:G})=>(X)=>{pY(G.sessionId,"handshake certificate",X),W.remoteCertificate=X.certificateList[0]};UU[15]=({cipher:W,dtls:G})=>(X)=>{if(!W.remoteCertificate)throw Error("client certificate missing before certificate verify");pY(G.sessionId,"certificate_verify",X.algorithm)};UU[20]=({dtls:W})=>(G)=>{pY(W.sessionId,"finished",G)};var SY=M1("werift-dtls : packages/dtls/src/server.ts : log"),Pn=class extends I2{constructor(W){super(W,c4.SERVER);this.onHandleHandshakes=this.handleHandshakes,SY(this.dtls.sessionId,"start server")}flight6;handleHandshakes=async(W)=>{SY(this.dtls.sessionId,"handleHandshakes",W.map((G)=>G.msg_type));for(let G of W)switch(G.msg_type){case 1:{if(this.connected)this.renegotiation();let X=pS.deSerialize(G.fragment);if(X.cookie.length===0)SY(this.dtls.sessionId,"send flight2"),Tn(this.transport,this.dtls,this.cipher,this.srtp)(X);else if(this.dtls.cookie&&X.cookie.equals(this.dtls.cookie))SY(this.dtls.sessionId,"send flight4"),await new Mn(this.transport,this.dtls,this.cipher,this.srtp).exec(G,this.options.certificateRequest);else SY("wrong state",{dtlsCookie:this.dtls.cookie?.toString("hex").slice(10),helloCookie:X.cookie.toString("hex").slice(10)})}break;case 11:case 15:case 16:{if(this.connected)return;this.flight6=new Rn(this.transport,this.dtls,this.cipher),this.flight6.handleHandshake(G)}break;case 20:{await this.waitForReady(()=>!!this.flight6),this.flight6?.handleHandshake(G);let X=[16,this.options.certificateRequest&&11,this.options.certificateRequest&&15].filter((Y)=>typeof Y==="number");await this.waitForReady(()=>this.dtls.checkHandshakesExist(X)),await this.flight6?.exec(),this.connected=!0,this.onConnect.execute(),SY(this.dtls.sessionId,"dtls connected")}break}}},JO=554869826,Ln=8,Bn=1398035790,n6=20,w2=24,j2=1,K2=2,En=6,$n=50;var O2=((W)=>{return W[W.REQUEST=0]="REQUEST",W[W.INDICATION=16]="INDICATION",W[W.RESPONSE=256]="RESPONSE",W[W.ERROR=272]="ERROR",W})(O2||{}),D2=((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})(D2||{});function vV(W){return T2(W).toString("hex").substring(0,W)}function M2(){return T2(12)}var MF=class{queue=[];wait=new c0;put(W){if(this.queue.push(W),this.queue.length===1)this.wait.execute(W)}get(){let W=this.queue.shift();if(!W)return new Promise((G)=>{this.wait.subscribe((X)=>{this.queue.shift(),G(X)})});return W}},_K=(W)=>{let G,X,Y=new Promise((Z,V)=>{G=Z,X=V});Y.then(()=>{J.execute(void 0),J.complete()}).catch((Z)=>{J.execute(Z??Error()),J.complete()});let J=new c0;return W(G,X,J).catch(()=>{}),{awaitable:Y,resolve:G,reject:X}};function _Y(W){let[G]=W,X=sV.default.isV4Format(G)?j2:K2,Y=Buffer.alloc(4);return Y.writeUInt8(0,0),Y.writeUInt8(X,1),Y.writeUInt16BE(W[1],2),Buffer.concat([Y,sV.default.toBuffer(G)])}function Fn(W){if(W.length<4)throw Error("STUN error code is less than 4 bytes");let G=W.readUInt8(2),X=W.readUInt8(3),Y=W.slice(4).toString("utf8");return[G*100+X,Y]}function yY(W){if(W.length<4)throw Error("STUN address length is less than 4 bytes");let G=W.readUInt8(1),X=W.readUInt16BE(2),Y=W.slice(4);switch(G){case j2:if(Y.length!=4)throw Error("STUN address has invalid length for IPv4");return[sV.default.toString(Y),X];case K2:if(Y.length!=16)throw Error("STUN address has invalid length for IPv6");return[sV.default.toString(Y),X];default:throw Error("STUN address has unknown protocol")}}var ZO=Buffer.alloc(6);ZO.writeUInt16BE(JO>>16,0);ZO.writeUInt32BE(JO,2);function R2(W,G){let X=[...ZO,...G],Y=W.slice(0,2);for(let J=2;J<W.length;J++){let Z=W[J]^X[J-2],V=Buffer.alloc(1);V.writeUIntBE(Z,0,1),Y=Buffer.concat([Y,V])}return Y}function hq(W,G){return yY(R2(W,G))}function Sn(W){let G=Buffer.alloc(4);G.writeUInt16BE(0,0),G.writeUInt8(Math.floor(W[0]/100),2),G.writeUInt8(W[0]%100,3);let X=Buffer.from(W[1],"utf8");return Buffer.concat([G,X])}function bq(W,G){return R2(_Y(W),G)}var gV=(W)=>{let G=Buffer.alloc(4);return G.writeUInt32BE(W,0),G},uV=(W)=>W.readUInt32BE(0),xn=(W)=>{let G=Buffer.alloc(4);return G.writeUInt16BE(W,0),G},kn=(W)=>W.readUInt16BE(0),RF=(W)=>{return new ij(W.toString()).toBuffer()},PF=(W)=>{let G=new ij(W);return BigInt(G.toString())},qK=(W)=>Buffer.from(W,"utf8"),HK=(W)=>W.toString("utf8"),AK=(W)=>W,zK=(W)=>W,_n=(W)=>Buffer.from([]),yn=(W)=>null,P2=[[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",Sn,Fn],[12,"CHANNEL-NUMBER",xn,kn],[13,"LIFETIME",gV,uV],[18,"XOR-PEER-ADDRESS",bq,hq],[19,"DATA",AK,zK],[20,"REALM",qK,HK],[21,"NONCE",AK,zK],[22,"XOR-RELAYED-ADDRESS",bq,hq],[25,"REQUESTED-TRANSPORT",gV,uV],[32,"XOR-MAPPED-ADDRESS",bq,hq],[36,"PRIORITY",gV,uV],[37,"USE-CANDIDATE",_n,yn],[32802,"SOFTWARE",qK,HK],[32808,"FINGERPRINT",gV,uV],[32809,"ICE-CONTROLLED",RF,PF],[32810,"ICE-CONTROLLING",RF,PF],[32811,"RESPONSE-ORIGIN",_Y,yY],[32812,"OTHER-ADDRESS",_Y,yY]],L2=class{constructor(W=[]){this.attributes=W}getAttributes(){return this.attributes}setAttribute(W,G){let X=this.attributes.find((Y)=>Y[0]===W);if(X)X[1]=G;else this.attributes.push([W,G]);return this}getAttributeValue(W){let G=this.attributes.find((X)=>X[0]===W);if(!G)return;return G[1]}get attributesKeys(){return this.attributes.map((W)=>W[0])}clear(){this.attributes=[]}},LF=P2.reduce((W,G)=>{return W[G[0]]=G,W},{}),vn=P2.reduce((W,G)=>{return W[G[1]]=G,W},{});function VO(W,G){if(W.length<n6)return;let X=W.readUint16BE(2);if(W.length!==n6+X)return;let Y=W.readUint16BE(0),J=Buffer.from(W.slice(n6-12,n6)),Z=new L2;for(let U=n6;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(LF).includes(Q.toString())){let[,I,,w]=LF[Q];if(w.name===hq.name)Z.setAttribute(I,w(q,J));else Z.setAttribute(I,w(q));if(I==="FINGERPRINT"){let O=B2(W.slice(0,U));if(Z.getAttributeValue("FINGERPRINT")!==O)return}else if(I==="MESSAGE-INTEGRITY"){if(G){let O=gn(W.slice(0,U),G),M=Z.getAttributeValue("MESSAGE-INTEGRITY");if(!O.equals(M))return}}}U+=4+N+A}let V=Z.getAttributes();return Z.clear(),new l7(Y&16111,Y&272,J,V)}var l7=class extends L2{constructor(W,G,X=M2(),Y=[]){super(Y);this.messageMethod=W,this.messageClass=G,this.transactionId=X}toJSON(){return this.json}get json(){return{messageMethod:D2[this.messageMethod],messageClass:O2[this.messageClass],attributes:this.attributes}}get transactionIdHex(){return this.transactionId.toString("hex")}get bytes(){let W=Buffer.from([]);for(let X of this.attributesKeys){let Y=this.getAttributeValue(X),[J,,Z]=vn[X],V=Z.name===bq.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 G=Buffer.alloc(8);return G.writeUInt16BE(this.messageMethod|this.messageClass,0),G.writeUInt16BE(W.length,2),G.writeUInt32BE(JO,4),Buffer.concat([G,this.transactionId,W])}addMessageIntegrity(W){return this.setAttribute("MESSAGE-INTEGRITY",this.messageIntegrity(W)),this}messageIntegrity(W){let G=UO(this.bytes,this.bytes.length-n6+w2);return Buffer.from(C2("sha1",W).update(G).digest("hex"),"hex")}addFingerprint(){this.setAttribute("FINGERPRINT",B2(this.bytes))}},UO=(W,G)=>{let X=Buffer.alloc(W.length);return W.copy(X,0,0,2),X.writeUInt16BE(G,2),W.copy(X,4,4),X};function B2(W){let G=UO(W,W.length-n6+Ln);return(_d(G)^Bn)>>>0}function gn(W,G){let X=UO(W,W.length-n6+w2);return Buffer.from(C2("sha1",G).update(X).digest("hex"),"hex")}function BF(W){let G=W%4;if(G===0)return 0;else return 4-G}var E2=class extends Error{response;addr},$2=class extends E2{constructor(W,G){super();this.response=W,this.addr=G}get str(){let W="STUN transaction failed",G=this.response.getAttributeValue("ERROR-CODE");if(G){let[X,Y]=G;W+=` (${X} - ${Y})`}return W}},un=class extends E2{get str(){return"STUN transaction timed out"}},IK=M1("werift-ice:packages/ice/src/stun/transaction.ts"),QO=class{constructor(W,G,X,Y){this.request=W,this.addr=G,this.protocol=X,this.retransmissions=Y,this.triesMax=1+(this.retransmissions?this.retransmissions:En)}timeoutDelay=$n;ended=!1;tries=0;triesMax;onResponse=new c0;responseReceived=(W,G)=>{if(this.onResponse.length>0)if(W.messageClass===256)this.onResponse.execute(W,G),this.onResponse.complete();else this.onResponse.error(new $2(W,G))};run=async()=>{try{return this.retry().catch((G)=>{IK("retry failed",G)}),await this.onResponse.asPromise()}catch(W){throw W}finally{this.cancel()}};retry=async()=>{while(this.tries<this.triesMax&&!this.ended){if(this.protocol.sendStun(this.request,this.addr).catch((W)=>{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 un)};cancel(){this.ended=!0}},EF=M1("werift-ice : packages/ice/src/stun/protocol.ts"),$F=class W{static type="stun";type=W.type;transport;transactions={};get transactionsKeys(){return Object.keys(this.transactions)}localCandidate;sentMessage;localIp;onRequestReceived=new c0;onDataReceived=new c0;constructor(){}connectionMade=async(G,X,Y)=>{if(G)this.transport=await PK.init("udp4",{portRange:X,interfaceAddresses:Y});else this.transport=await PK.init("udp6",{portRange:X,interfaceAddresses:Y});this.transport.onData=(J,Z)=>{this.datagramReceived(J,Z)}};datagramReceived(G,X){try{let Y=VO(G);if(!Y){if(this.localCandidate)this.onDataReceived.execute(G);return}if((Y.messageClass===256||Y.messageClass===272)&&this.transactionsKeys.includes(Y.transactionIdHex))this.transactions[Y.transactionIdHex].responseReceived(Y,X);else if(Y.messageClass===0)this.onRequestReceived.execute(Y,X,G)}catch(Y){EF("datagramReceived error",Y)}}getExtraInfo(){let{address:G,port:X}=this.transport.address;return[G,X]}async sendStun(G,X){if(this.transport.closed)return;let Y=G.bytes;await this.transport.send(Y,X).catch(()=>{EF("sendStun failed",X,G)})}async sendData(G,X){if(this.transport.closed)return;await this.transport.send(G,X)}async request(G,X,Y,J){if(this.transactionsKeys.includes(G.transactionIdHex))throw Error("already request ed");if(Y)G.addMessageIntegrity(Y),G.addFingerprint();let Z=new QO(G,X,this,J);this.transactions[G.transactionIdHex]=Z;try{return await Z.run()}catch(V){throw V}finally{delete this.transactions[G.transactionIdHex]}}async close(){Object.values(this.transactions).forEach((G)=>{G.cancel()}),await this.transport.close(),this.onRequestReceived.complete(),this.onDataReceived.complete()}},s9=M1("werift-ice:packages/ice/src/turn/protocol.ts"),mn=500,fn=600,pn=285212672,cn=class W{constructor(G){this.turn=G,G.onData.subscribe((X,Y)=>{this.handleStunMessage(X,Y)}).disposer(this.disposer)}static type="turn";type=W.type;localCandidate;disposer=new hd;onRequestReceived=new c0;onDataReceived=new c0;handleStunMessage=(G,X)=>{try{let Y=VO(G);if(!Y){this.onDataReceived.execute(G);return}if(Y.messageClass===256||Y.messageClass===272){let J=this.turn.transactions[Y.transactionIdHex];if(J)J.responseReceived(Y,X)}else if(Y.messageClass===0)this.onRequestReceived.execute(Y,X,G)}catch(Y){s9("datagramReceived error",Y)}};async request(G,X,Y){if(this.turn.transactions[G.transactionIdHex])throw Error("exist");if(Y)G.addMessageIntegrity(Y),G.addFingerprint();let J=new QO(G,X,this);this.turn.transactions[G.transactionIdHex]=J;try{return await J.run()}catch(Z){throw Z}finally{delete this.turn.transactions[G.transactionIdHex]}}async connectionMade(){}async sendData(G,X){await this.turn.sendData(G,X)}async sendStun(G,X){await this.turn.sendData(G.bytes,X)}async close(){return this.disposer.dispose(),this.turn.close()}},ln=class W{constructor(G,X,Y,J,Z,V={}){this.server=G,this.username=X,this.password=Y,this.lifetime=J,this.transport=Z,this.options=V,this.channelRefreshTime=this.options.channelRefreshTime??mn}static type="turn";type=W.type;onData=new c0;onRequestReceived=new c0;onDataReceived=new c0;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 G=new l7(3,0);G.setAttribute("LIFETIME",this.lifetime).setAttribute("REQUESTED-TRANSPORT",pn);let[X]=await this.requestWithRetry(G,this.server).catch((J)=>{throw s9("connect error",J),J});this.relayedAddress=X.getAttributeValue("XOR-RELAYED-ADDRESS"),this.mappedAddress=X.getAttributeValue("XOR-MAPPED-ADDRESS");let Y=X.getAttributeValue("LIFETIME");s9("connect",this.relayedAddress,this.mappedAddress,{exp:Y}),this.refresh(Y)}handleChannelData(G){let[X,Y]=e1.Unpack("!HH",G.slice(0,4)),J=this.addrByChannel[X];if(J){let Z=G.subarray(4,4+Y);this.onData.execute(Z,J)}}handleSTUNMessage(G,X){try{let Y=VO(G);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,X)}else if(Y.messageClass===0)this.onData.execute(G,X);if(Y.getAttributeValue("DATA")){let J=Y.getAttributeValue("DATA");this.onData.execute(J,X)}}catch(Y){s9("parse error",G.toString())}}dataReceived(G,X){let Y=(J,Z)=>{if(J.length>=4&&SF(J))this.handleChannelData(J);else this.handleSTUNMessage(J,Z)};if(this.transport.type==="tcp"){this.tcpBuffer=Buffer.concat([this.tcpBuffer,G]);while(this.tcpBuffer.length>=4){let[,J]=t9(this.tcpBuffer.subarray(0,4),[2,2]);J+=BF(J);let Z=SF(this.tcpBuffer)?4+J:20+J;if(this.tcpBuffer.length<Z)break;Y(this.tcpBuffer.subarray(0,Z),X),this.tcpBuffer=this.tcpBuffer.subarray(Z)}}else Y(G,X)}async send(G,X){if(this.transport.closed)return;if(this.transport.type==="tcp"){let Y=BF(G.length);await this.transport.send(Y>0?Buffer.concat([G,Buffer.alloc(Y)]):G,X)}else await this.transport.send(G,X)}async createPermission(G){let X=new l7(8,0);X.setAttribute("XOR-PEER-ADDRESS",G).setAttribute("USERNAME",this.username).setAttribute("REALM",this.realm).setAttribute("NONCE",this.nonce),await this.request(X,this.server).catch((Y)=>{throw Y})}refresh=(G)=>{this.refreshHandle=_K(async(X,Y,J)=>{let Z=!0;J.once(()=>{Z=!1});while(Z){let V=0.8333333333333334*G*1000;s9("refresh delay",V,{exp:G}),await bn(V);let U=new l7(4,0);U.setAttribute("LIFETIME",G);try{let[Q]=await this.requestWithRetry(U,this.server);G=Q.getAttributeValue("LIFETIME"),s9("refresh",{exp:G})}catch(Q){s9("refresh error",Q)}}})};async request(G,X){if(this.transactions[G.transactionIdHex])throw Error("exist");if(this.integrityKey)G.setAttribute("USERNAME",this.username).setAttribute("REALM",this.realm).setAttribute("NONCE",this.nonce).addMessageIntegrity(this.integrityKey).addFingerprint();let Y=new QO(G,X,this);this.transactions[G.transactionIdHex]=Y;try{return await Y.run()}catch(J){throw J}finally{delete this.transactions[G.transactionIdHex]}}async requestWithRetry(G,X){let Y,J;try{[Y,J]=await this.request(G,X)}catch(Z){if(Z instanceof $2==!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=on(this.username,this.realm,this.password),G.transactionId=M2(),[Y,J]=await this.request(G,this.server)}else throw Z}return[Y,J]}async sendData(G,X){let Y=await this.getChannel(X).catch((Z)=>{return Error("channelBind error")});if(Y instanceof Error){await this.getPermission(X);let Z=new l7(6,16).setAttribute("DATA",G).setAttribute("XOR-PEER-ADDRESS",X);await this.sendStun(Z,this.server);return}let J=e1.Pack("!HH",[Y.number,G.length]);await this.send(Buffer.concat([Buffer.from(J),G]),this.server)}async getPermission(G){if(await this.creatingPermission,!this.permissionByAddr[G.join(":")])this.creatingPermission=this.createPermission(G),this.permissionByAddr[G.join(":")]=!0,await this.creatingPermission.catch((Y)=>{throw s9("createPermission error",Y),Y})}async getChannel(G){if(this.channelBinding)await this.channelBinding;let X=this.channelByAddr[G.join(":")];if(!X)this.channelByAddr[G.join(":")]={number:this.channelNumber++,address:G},X=this.channelByAddr[G.join(":")],this.addrByChannel[X.number]=G,this.channelBinding=this.channelBind(X.number,G),await this.channelBinding.catch((Y)=>{throw s9("channelBind error",Y),Y}),this.channelRefreshAt=lV(Date.now()/1000)+this.channelRefreshTime,this.channelBinding=void 0,s9("channelBind",X);else if(this.channelRefreshAt<lV(Date.now()/1000))this.channelBinding=this.channelBind(X.number,G),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",X);return X}async channelBind(G,X){let Y=new l7(9,0);Y.setAttribute("CHANNEL-NUMBER",G).setAttribute("XOR-PEER-ADDRESS",X);let[J]=await this.requestWithRetry(Y,this.server);if(J.messageMethod!==9)throw Error("should be CHANNEL_BIND")}async sendStun(G,X){await this.send(G.bytes,X)}async close(){this.refreshHandle?.resolve?.(),await this.transport.close()}};async function dn({address:W,username:G,password:X},{lifetime:Y,portRange:J,interfaceAddresses:Z,transport:V}={}){Y??=fn,V??="udp";let U=V==="udp"?await PK.init("udp4",{portRange:J,interfaceAddresses:Z}):await fd.init(W),Q=new ln(W,G,X,Y,U);return await Q.connectionMade(),Q}async function FF({address:W,username:G,password:X},{lifetime:Y,portRange:J,interfaceAddresses:Z,transport:V}={}){let U=await dn({address:W,username:G,password:X},{lifetime:Y,portRange:J,interfaceAddresses:Z,transport:V});return new cn(U)}function on(W,G,X){return hn("md5").update(Buffer.from([W,G,X].join(":"))).digest()}function SF(W){return(W[0]&192)==64}var DG=class W{constructor(G,X,Y,J,Z,V,U,Q,N,q,A,H){this.foundation=G,this.component=X,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(G){let X=G.split(" ");if(X.length<8)throw Error("SDP does not have enough properties");let Y={foundation:X[0],component:Number(X[1]),transport:X[2],priority:Number(X[3]),host:X[4],port:Number(X[5]),type:X[7]};for(let A=8,H=X.length-1;A<H;A+=2)if(X[A]==="raddr")Y.related_address=X[A+1];else if(X[A]==="rport")Y.related_port=Number(X[A+1]);else if(X[A]==="tcptype")Y.tcptype=X[A+1];else if(X[A]==="generation")Y.generation=Number(X[A+1]);else if(X[A]==="ufrag")Y.ufrag=X[A+1];let{foundation: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(G){let X=xF(this.host),Y=xF(G.host);return this.component===G.component&&this.transport.toLowerCase()===G.transport.toLowerCase()&&X===Y}toSdp(){let G=`${this.foundation} ${this.component} ${this.transport} ${this.priority} ${this.host} ${this.port} typ ${this.type}`;if(this.relatedAddress)G+=` raddr ${this.relatedAddress}`;if(this.relatedPort!=null)G+=` rport ${this.relatedPort}`;if(this.tcptype)G+=` tcptype ${this.tcptype}`;if(this.generation!=null)G+=` generation ${this.generation}`;if(this.ufrag!=null)G+=` ufrag ${this.ufrag}`;return G}};function yK(W,G,X){let Y=`${W}|${G}|${X}`;return nn("md5").update(Y,"ascii").digest("hex").slice(7)}function mq(W,G=65535){let Y=0;if(W==="host")Y=126;else if(W==="prflx")Y=110;else if(W==="srflx")Y=100;else Y=0;return 16777216*Y+256*G+255}var an=class{cache=new Map;mdnsInstance=F2.default();constructor(){this.mdnsInstance.setMaxListeners(50)}lookup(W){return new Promise((G,X)=>{let Y=()=>{this.mdnsInstance.removeListener("response",Z),clearTimeout(J)},J=setTimeout(()=>{Y(),X(Error("No mDNS response"))},1e4),Z=(V)=>{let U=V.answers?.[0];if(U?.type!=="A")return;if(U.name!==W)return;Y(),G(U.data)};this.mdnsInstance.on("response",Z),this.mdnsInstance.query(W,"A")})}close(){this.mdnsInstance.destroy()}},tn=M1("werift-ice : packages/ice/src/ice.ts : log"),_F=class{constructor(W,G,X){this.protocol=W,this.remoteCandidate=G,this.iceControlling=X}id=sn().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}},yF=1,Sq=2,en=5,vF=6;var Wi={useIpv4:!0,useIpv6:!0};function gF(W){if(!["host","relay","srflx"].includes(W.type))throw Error(`Unexpected candidate type "${W.type}"`);return W}function Gi(W,G){return W.sort((X,Y)=>gK(X.localCandidate,X.remoteCandidate,G)-gK(Y.localCandidate,Y.remoteCandidate,G)).reverse()}function gK(W,G,X){let Y=X&&W.priority||G.priority,J=X&&G.priority||W.priority;return 1*Math.min(Y,J)+2*Math.max(Y,J)+(Y>J?1:0)}async function Xi(W,G){let X=new l7(1,0);try{let[Y]=await W.request(X,G),J=W.localCandidate;if(!J)throw Error("not exist");return new DG(yK("srflx","udp",J.host),J.component,J.transport,mq("srflx"),Y.getAttributeValue("XOR-MAPPED-ADDRESS")[0],Y.getAttributeValue("XOR-MAPPED-ADDRESS")[1],"srflx",J.host,J.port)}catch(Y){tn("error serverReflexiveCandidate",Y)}}function uF(W){if(W&&Number.isNaN(W[1]))return[W[0],443];return W}var Yi=M1("werift-ice : packages/ice/src/utils.ts");function Ji(W){return aq(W.family)===4&&W.address?.startsWith("169.254.")||aq(W.family)===6&&W.address?.startsWith("fe80::")}function hF(W,{useLinkLocalAddress:G}={}){let X=["ipsec","tun","utun","tap"],Y=["vmnet","veth"],J=S2.networkInterfaces();Yi(J);let Z=Object.keys(J).map((V)=>{for(let Q of[...X,...Y])if(V.startsWith(Q))return{nic:V,addresses:[]};let U=J[V].filter((Q)=>aq(Q.family)===W&&!x2.default.isLoopback(Q.address)&&(G?!0:!Ji(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 Zi(W,G,X={}){let Y=[];if(W)Y.push(...hF(4,X));if(G)Y.push(...hF(6,X));return Y}var X8=M1("werift-ice : packages/ice/src/ice.ts : log"),Vi=class{constructor(W,G){this._iceControlling=W,this.options={...Wi,...G};let{stunServer:X,turnServer:Y}=this.options;this.stunServer=uF(X)??["stun.l.google.com",19302],this.turnServer=uF(Y),this.restart(),X8("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 Bq(rn(64)).toString());state="new";lookup;_remoteCandidates=[];nominated;nominating=!1;checkListDone=!1;checkListState=new MF;earlyChecks=[];earlyChecksDone=!1;localCandidatesStart=!1;protocols=[];queryConsentHandle;onData=new c0;stateChanged=new c0;onIceCandidate=new c0;get iceControlling(){return this._iceControlling}set iceControlling(W){if(this.generation>0||this.nominated)return;this._iceControlling=W;for(let G of this.checkList)G.iceControlling=W}async restart(){if(this.generation++,this.localUsername=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 MF,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(){X8("resetNominatedPair"),this.nominated=void 0,this.nominating=!1}setRemoteParams({iceLite:W,usernameFragment:G,password:X}){X8("setRemoteParams",{iceLite:W,usernameFragment:G,password:X}),this.remoteIsLite=W,this.remoteUsername=G,this.remotePassword=X}async gatherCandidates(){if(!this.localCandidatesStart){this.localCandidatesStart=!0;let W=Zi(this.options.useIpv4,this.options.useIpv6,{useLinkLocalAddress:this.options.useLinkLocalAddress}),{interfaceAddresses:G}=this.options;if(G){let Y=W.filter((J)=>Object.values(G).includes(J));if(Y.length)W=Y}if(this.options.additionalHostAddresses)W=Array.from(new Set([...this.options.additionalHostAddresses,...W]));let X=this.getCandidatePromises(W,5);await Promise.allSettled(X),this.localCandidatesEnd=!0}this.setState("completed")}appendLocalCandidate(W){this.localCandidates.push(W),this.onIceCandidate.execute(W)}ensureProtocol(W){W.onRequestReceived.subscribe((G,X,Y)=>{if(G.messageMethod!==1){this.respondError(G,X,W,[400,"Bad Request"]);return}let J=G.getAttributeValue("USERNAME"),{remoteUsername:Z}=bF(J),V=this.userHistory[Z]??this.localPassword,{iceControlling:U}=this;if(U&&G.attributesKeys.includes("ICE-CONTROLLING"))if(this.tieBreaker>=G.getAttributeValue("ICE-CONTROLLING")){this.respondError(G,X,W,[487,"Role Conflict"]);return}else this.switchRole(!1);else if(!U&&G.attributesKeys.includes("ICE-CONTROLLED"))if(this.tieBreaker<G.getAttributeValue("ICE-CONTROLLED"))this.respondError(G,X,W,[487,"Role Conflict"]);else{this.switchRole(!0);return}if(this.options.filterStunResponse&&!this.options.filterStunResponse(G,X,W))return;let Q=new l7(1,256,G.transactionId);if(Q.setAttribute("XOR-MAPPED-ADDRESS",X).addMessageIntegrity(Buffer.from(V,"utf8")).addFingerprint(),W.sendStun(Q,X).catch((N)=>{X8("sendStun error",N)}),this.checkList.length===0&&!this.earlyChecksDone)this.earlyChecks.push([G,X,W]);else this.checkIncoming(G,X,W)}),W.onDataReceived.subscribe((G)=>{try{let X=this.nominated;if(X&&X.protocol===W)X.packetsReceived++,X.bytesReceived+=G.length;this.onData.execute(G)}catch(X){X8("dataReceived",X)}})}getCandidatePromises(W,G=5){let X=[];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 $F;this.ensureProtocol(N);try{await N.connectionMade(kF(Q),this.options.portRange,this.options.interfaceAddresses),N.localIp=Q,this.protocols.push(N),X8("protocol",N.localIp);let q=[Q,N.getExtraInfo()[1]];return N.localCandidate=new DG(yK("host","udp",q[0]),1,"udp",mq("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){X8("error protocol STUN",q)}});X.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,G*1000);if(q.localCandidate?.host&&kF(q.localCandidate?.host)){let O=await Xi(q,J).catch((M)=>{X8("error",M)});if(O)this.appendLocalCandidate(O);clearTimeout(w),H(O)}else clearTimeout(w),H()}).catch((H)=>{X8("query STUN server",H)})});X.push(...Q)}let{turnUsername:V,turnPassword:U}=this.options;if(Z&&V&&U){let Q=(async()=>{let N=await FF({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 FF({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 X8("turn candidateAddress",q),N.localCandidate=new DG(yK("relay","udp",q[0]),1,"udp",mq("relay"),q[0],q[1],"relay",A[0],A[1],void 0,this.generation,this.localUsername),this.appendLocalCandidate(N.localCandidate),N.localCandidate})().catch((N)=>{X8("query TURN server",N)});if(this.options.forceTurn)X=[];X.push(Q)}return X}async connect(){if(X8("start connect ice"),!this.localCandidatesEnd){if(!this.localCandidatesStart)throw Error("Local candidates gathering was not performed")}if(!this.remoteUsername||!this.remotePassword)throw Error("Remote username or password is missing");for(let G of this.remoteCandidates)this.pairRemoteCandidate(G);this.sortCheckList(),this.unfreezeInitial(),X8("earlyChecks",this.localPassword,this.earlyChecks.length);for(let G of this.earlyChecks)this.checkIncoming(...G);this.earlyChecks=[],this.earlyChecksDone=!0;for(;;){if(this.state==="closed")break;if(!this.schedulingChecks())break;await vK.setTimeout(20)}let W=Sq;while(this.checkList.length>0&&W===Sq)W=await this.checkListState.get(),X8("checkListState",W);for(let G of this.checkList)G.handle?.resolve?.();if(W!==yF)throw Error("ICE negotiation failed");this.queryConsent(),this.setState("connected")}unfreezeInitial(){let[W]=this.checkList;if(!W)return;if(W.state===0)W.updateState(1);let G=new Set(W.localCandidate.foundation);for(let X of this.checkList)if(X.component===W.component&&!G.has(X.localCandidate.foundation)&&X.state===0)X.updateState(1),G.add(X.localCandidate.foundation)}schedulingChecks(){{let W=this.checkList.filter((G)=>{if(this.options.forceTurn&&G.protocol.type===$F.type)return!1;return!0}).find((G)=>G.state===1);if(W)return W.handle=this.checkStart(W),!0}{let W=this.checkList.find((G)=>G.state===0);if(W)return W.handle=this.checkStart(W),!0}if(!this.remoteCandidatesEnd)return!this.checkListDone;return!1}queryConsent=()=>{if(this.queryConsentHandle)this.queryConsentHandle.resolve();this.queryConsentHandle=_K(async(W,G,X)=>{let Y=0,J=!1,Z=new AbortController;X.once(()=>{J=!0,Y+=vF,Z.abort(),this.queryConsentHandle=void 0});let{localUsername:V,remoteUsername:U,iceControlling:Q}=this;try{while(this.state!=="closed"&&!J){await vK.setTimeout(en*(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){X8("no stun response"),Y++,this.setState("disconnected");break}}if(Y>=vF){X8("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(Sq)}));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 an;let G=await this.lookup.lookup(W.host);W.host=G}catch(G){return}try{gF(W)}catch(G){return}X8("addRemoteCandidate",W),this._remoteCandidates.push(W),this.pairRemoteCandidate(W),this.sortCheckList()}send=async(W)=>{let G=this.nominated;if(G)await G.protocol.sendData(W,G.remoteAddr),G.packetsSent++,G.bytesSent+=W.length;else return};getDefaultCandidate(){let W=this.localCandidates.sort((X,Y)=>X.priority-Y.priority),[G]=W;return G}set remoteCandidates(W){if(this.remoteCandidatesEnd)throw Error("Cannot set remote candidates after end-of-candidates.");this._remoteCandidates=[];for(let G of W){try{gF(G)}catch(X){continue}this._remoteCandidates.push(G)}this.remoteCandidatesEnd=!0}get remoteCandidates(){return this._remoteCandidates}get candidatePairs(){return this.checkList}sortCheckList(){Gi(this.checkList,this.iceControlling)}findPair(W,G){return this.checkList.find((Y)=>fq.default(Y.protocol,W)&&fq.default(Y.remoteCandidate,G))}switchRole(W){X8("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){X8("nominated",W.toJSON()),this.nominated=W,this.nominating=!1;for(let G of this.checkList)if(G.component===W.component&&[1,0].includes(G.state))G.updateState(4)}if(this.nominated){if(!this.checkListDone)X8("ICE completed"),this.checkListState.put(new Promise((G)=>G(yF))),this.checkListDone=!0;return}X8("not completed",W.toJSON());for(let G of this.checkList)if(G.localCandidate.foundation===W.localCandidate.foundation&&G.state===0)G.updateState(1)}{let G=[3,4];if(this.checkList.find(({state:X})=>!G.includes(X)))return}if(!this.iceControlling){if(this.checkList.find(({state:X})=>X===3))return}if(!this.checkListDone)X8("ICE failed"),this.checkListState.put(new Promise((G)=>{G(Sq)}))}checkStart=(W)=>_K(async(G)=>{X8("check start",W.toJSON()),W.updateState(2);let X={},{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++,X8("response received",Q.toJSON(),q.toJSON(),A,{localUsername:V,remoteUsername:J,remotePassword:Y,generation:Z,rtt:I}),X.response=q,X.addr=A}catch(q){let A=q;if(X8("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,G();return}if(A.response?.getAttributeValue("ERROR-CODE")[0]===401){X8("retry 401",W.toJSON()),await this.checkStart(W).awaitable,G();return}else{X8("checkStart CandidatePairState.FAILED",W.toJSON()),W.updateState(4),this.checkComplete(W),G();return}}if(!fq.default(X.addr,W.remoteAddr)){W.updateState(4),this.checkComplete(W),G();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),G()});addPair(W){this.checkList.push(W),this.sortCheckList()}checkIncoming(W,G,X){let Y=W.getAttributeValue("USERNAME"),{remoteUsername:J}=bF(Y),Z,[V,U]=G;for(let N of this.remoteCandidates)if(N.host===V&&N.port===U){Z=N;break}if(!Z)Z=new DG(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(X,Z);if(!Q)Q=new _F(X,Z,this.iceControlling),Q.updateState(1),this.addPair(Q);if(Q.localCandidate.ufrag=J,X8("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,G){if(W.localCandidate?.canPairWith(G)&&!this.findPair(W,G)){let X=new _F(W,G,this.iceControlling);if(this.options.filterCandidatePair&&!this.options.filterCandidatePair(X))return;X.updateState(1),this.addPair(X)}}pairLocalProtocol(W){for(let G of this.remoteCandidates)this.tryPair(W,G)}pairRemoteCandidate=(W)=>{for(let G of this.protocols)this.tryPair(G,W)};buildRequest({nominate:W,remoteUsername:G,localUsername:X,iceControlling:Y}){let J=Ui({remoteUsername:G,localUsername:X}),Z=new l7(1,0);if(Z.setAttribute("USERNAME",J).setAttribute("PRIORITY",mq("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,G,X,Y){let J=new l7(W.messageMethod,272,W.transactionId);J.setAttribute("ERROR-CODE",Y).addMessageIntegrity(Buffer.from(this.localPassword,"utf8")).addFingerprint(),X.sendStun(J,G).catch((Z)=>{X8("sendStun error",Z)})}},Ui=({remoteUsername:W,localUsername:G})=>{return`${W}:${G}`},bF=(W)=>{let[G,X]=W.split(":");return{remoteUsername:G,localUsername:X}};function mF(W){return W.map((G,X)=>[X,G])}function m4(W,G){let X=W.split(G);return[X[0],X.slice(1).join(G)]}var NO=class extends Qi{addEventListener=(W,G)=>{this.addListener(W,G)};removeEventListener=(W,G)=>{this.removeListener(W,G)}},Ni=M1("werift:packages/webrtc/src/dataChannel.ts");function qi(W){return Buffer.isBuffer(W)?W.length:Buffer.byteLength(W)}var k2=class extends NO{constructor(W,G,X=!0){super();if(this.sctp=W,this.parameters=G,this.sendOpen=X,this.id=this.parameters.id,G.negotiated){if(this.id==null||this.id<0||this.id>65534)throw Error("ID must be in range 0-65534 if data channel is negotiated out-of-band");this.sctp.dataChannelAddNegotiated(this)}else if(X)this.sendOpen=!1,this.sctp.dataChannelOpen(this)}stateChange=new c0;stateChanged=new c0;onMessage=new c0;error=new c0;bufferedAmountLow=new c0;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}Ni("change state",W)}}addBufferedAmount(W){let G=this.bufferedAmount>this.bufferedAmountLowThreshold&&this.bufferedAmount+W<=this.bufferedAmountLowThreshold;if(this.bufferedAmount+=W,G)this.bufferedAmountLow.execute(),this.emit("bufferedamountlow")}send(W){let G=this.sctp.datachannelSend(this,W);this.messagesSent++,this.bytesSent+=G}close(){this.sctp.dataChannelClose(this)}},_2=class{label="";maxPacketLifeTime;maxRetransmits;ordered=!0;protocol="";negotiated=!1;id;constructor(W={}){Object.assign(this,W)}};var KH=()=>({type:"nack"}),QU=()=>({type:"nack",parameter:"pli"}),OH=()=>({type:"goog-remb"}),Hi=()=>({type:"transport-cc"}),EG=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}},Ai=class{id;uri;constructor(W){Object.assign(this,W)}};var zi=class{type;parameter;constructor(W={}){Object.assign(this,W)}},Ii=class{ssrc;constructor(W={}){Object.assign(this,W)}},wi=class{ssrc;payloadType;rtx;constructor(W){Object.assign(this,W)}},y2=class{rid;direction;constructor(W){Object.assign(this,W)}},ji=(W={})=>new EG({mimeType:"video/h264",clockRate:90000,rtcpFeedback:[KH(),QU(),OH()],parameters:"profile-level-id=42e01f;packetization-mode=1;level-asymmetry-allowed=1",...W}),v2=(W={})=>new EG({mimeType:"video/VP8",clockRate:90000,rtcpFeedback:[KH(),QU(),OH()],...W}),Ki=(W={})=>new EG({mimeType:"video/VP9",clockRate:90000,rtcpFeedback:[KH(),QU(),OH()],...W}),Oi=(W={})=>new EG({mimeType:"video/AV1X",clockRate:90000,rtcpFeedback:[KH(),QU(),OH()],...W}),g2=(W={})=>new EG({mimeType:"audio/OPUS",clockRate:48000,channels:2,...W}),u2=(W={})=>new EG({mimeType:"audio/PCMU",clockRate:8000,channels:1,payloadType:0,...W}),h2=[Oi(),Ki(),v2(),ji(),g2(),u2()].map((W)=>W.mimeType),JA0=h2.filter((W)=>W.toLowerCase().startsWith("video/")),ZA0=h2.filter((W)=>W.toLowerCase().startsWith("audio/"));var fF=2,pF=3,Mi=0,kq=50,cF=51,lF=53,Ri=56,Pi=57,Li="0.0.0.0",dF=9,uK={auto:"actpass",client:"active",server:"passive"},oF=Object.keys(uK).reduce((W,G)=>{let X=uK[G];return W[X]=G,W},{}),Bi=["apt","max-fr","max-fs","maxplaybackrate","minptime","stereo","useinbandfec"],b2=["cname","msid","mslabel","label"],nF={SRTP_AES128_CM_HMAC_SHA1_80:jH,SRTP_AEAD_AES_128_GCM:VU},pq=["sendonly","sendrecv"],Ei=["sendrecv","recvonly"],$i=class extends Map{constructor(W){super();if(W)for(let G of W)this.set(G.id,G)}};function Q8(W,...G){let X=G.filter((Y)=>Y!==void 0);return`${W}_${X.join("_")}`}function $G(){return performance.now()}var Fi=class{constructor(W,G,X,Y,J){if(this.kind=W,this.receiver=X,this.sender=Y,this._direction=J,G)this.setDtlsTransport(G)}id=Ti().toString();onTrack=new c0;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,pq.includes(this._currentDirection??""))this.usedForSender=!0}get currentDirection(){return this._currentDirection}setCurrentDirection(W){this._currentDirection=W}setDtlsTransport(W){this.receiver.setDtlsTransport(W),this.sender.setDtlsTransport(W)}get msid(){return`${this.sender.streamId} ${this.sender.trackId}`}addTrack(W){if(this.receiver.addTrack(W))this.onTrack.execute(W,this)}stop(){if(this.stopping)return;this.stopping=!0}getPayloadType(W){return this.codecs.find((G)=>G.mimeType.toLowerCase().includes(W.toLowerCase()))?.payloadType}getCodecStats(){let W=$G(),G=[];if(!this.dtlsTransport)return G;let X=Q8("transport",this.dtlsTransport.id);for(let Y of this.codecs){let J={type:"codec",id:Q8("codec",Y.payloadType,X),timestamp:W,payloadType:Y.payloadType,transportId:X,mimeType:Y.mimeType,clockRate:Y.clockRate,channels:Y.channels,sdpFmtpLine:Y.parameters};G.push(J)}return G}},Si="inactive",m2="sendonly",f2="recvonly",p2="sendrecv",jK=[Si,m2,f2,p2],hK=class extends NO{uuid=c2().toString();streamId;remote=!1;label;kind;id;ssrc;rid;header;codec;enabled=!0;onReceiveRtp=new c0;onReceiveRtcp=new c0;onSourceChanged=new c0;stopped=!1;muted=!0;constructor(W){super();Object.assign(this,W),this.onReceiveRtp.subscribe((G)=>{this.muted=!1,this.header=G.header}),this.label=`${this.remote?"remote":"local"} ${this.kind}`}stop=()=>{this.stopped=!0,this.muted=!0,this.onReceiveRtp.complete(),this.emit("ended")};writeRtp=(W)=>{if(this.remote)throw Error("this is remoteTrack");if(this.stopped)return;let G=Buffer.isBuffer(W)?t6.deSerialize(W):W;G.header.payloadType=this.codec?.payloadType??G.header.payloadType,this.onReceiveRtp.execute(G)}},xi=class{id;tracks=[];constructor(W){if(Array.isArray(W))this.tracks=W;else Object.assign(this,W);this.id??=c2().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")}},ki=M1("werift:packages/webrtc/src/utils.ts");function l2(W,G){let X=(Z)=>Z.toUpperCase(),Y=(Z)=>Z.match(/(.{2})/g).join(":"),J=Ci(G).update(W).digest("hex");return Y(X(J))}var _i={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 d2(W){return _i[W.trim().toLowerCase()]}function bK(W){return W.replace(/[^0-9a-f]/gi,"").toLowerCase()}function yi(W){let G=W[0];return G>19&&G<64}var o2=(W,G)=>jK[jK.indexOf(W)&jK.indexOf(G)];function vi(W){if(W==="sendonly")return"recvonly";if(W==="recvonly")return"sendonly";return W}var n2=Date.now,gi=BigInt(Date.now())*1000n-process.hrtime.bigint()/1000n,ui=()=>{return gi+process.hrtime.bigint()/1000n},QH=()=>Date.now()/1000,hi=()=>{let G=(xq.timeOrigin+xq.now()-Date.UTC(1900,0,1))/1000,[X,Y]=G.toString().split(".").map(Number);return F8([4,4],[X,Y]).readBigUInt64BE()},i2=(W)=>{let G=F8([8],[W]),[,X,Y]=t9(G,[2,2,2,2]);return F8([2,2],[X,Y]).readUInt32BE()};function bi(W){let G=(U)=>{if(!U)return;let[Q,N]=U.split(":");return[Q,Number.parseInt(N)]},X=G(W.find(({urls:U})=>U.includes("stun:"))?.urls.slice(5)),Y=G(W.find(({urls:U})=>U.includes("turn:"))?.urls.slice(5)),{credential:J,username:Z}=W.find(({urls:U})=>U.includes("turn:"))||{},V={stunServer:X,turnServer:Y,turnUsername:Z,turnPassword:J};return ki("iceOptions",V),V}var AA0=tq.createSelfSignedCertificateWithKey;var mi=(W,G)=>{if(!W||typeof W!=="object")if(G!==null&&typeof G==="object")return G;else return W;if(!G||typeof G!=="object"){if(G==null)return W;return G}for(let X in G)if(Object.prototype.hasOwnProperty.call(G,X)){let Y=G[X];if(Y!=null)W[X]=Y}return W},fi=M1("werift:packages/webrtc/src/media/receiver/nack.ts"),iF=150,pi=class{constructor(W){this.receiver=W}newEstSeqNum=0;_lost={};nackLoop;onPacketLost=new c0;mediaSourceSsrc;retryCount=10;closed=!1;get lostSeqNumbers(){return Object.keys(this._lost).map(Number).sort()}getLost(W){return this._lost[W]}setLost(W,G){if(this._lost[W]=G,this.nackLoop||this.closed)return;this.nackLoop=setInterval(async()=>{try{if(await this.sendNack(),!Object.keys(this._lost).length)clearInterval(this.nackLoop),this.nackLoop=void 0}catch(X){fi("failed to send nack",X)}},5)}removeLost(W){delete this._lost[W]}addPacket(W){let{sequenceNumber:G,ssrc:X}=W.header;if(this.mediaSourceSsrc=X,this.newEstSeqNum===0){this.newEstSeqNum=G;return}if(this.getLost(G)){this.removeLost(G);return}if(G===P9(this.newEstSeqNum,1))this.newEstSeqNum=G;else if(G>P9(this.newEstSeqNum,1)){for(let Y=P9(this.newEstSeqNum,1);Y<G;Y=P9(Y,1))this.setLost(Y,1);this.newEstSeqNum=G,this.pruneLost()}}pruneLost(){if(this.lostSeqNumbers.length>iF)this._lost=Object.entries(this._lost).slice(-iF).reduce((W,[G,X])=>{return W[G]=X,W},{})}close(){this.closed=!0,clearInterval(this.nackLoop),this._lost={}}updateRetryCount(){this.lostSeqNumbers.forEach((W)=>{if(this._lost[W]++>this.retryCount)return this.removeLost(W),W})}sendNack=()=>new Promise((W,G)=>{if(this.lostSeqNumbers.length>0&&this.mediaSourceSsrc){let X=new ZH({senderSsrc:this.receiver.rtcpSsrc,mediaSourceSsrc:this.mediaSourceSsrc,lost:this.lostSeqNumbers}),Y=new bY({feedback:X});this.receiver.dtlsTransport.sendRtcp([Y]).then(W).catch(G),this.updateRetryCount(),this.onPacketLost.execute(X)}})},li=M1("werift:packages/webrtc/media/receiver/receiverTwcc"),di=class{constructor(W,G,X){this.dtlsTransport=W,this.rtcpSsrc=G,this.mediaSourceSsrc=X,this.runTWCC()}extensionInfo={};twccRunning=!1;fbPktCount=0;lastTimestamp;handleTWCC(W){if(this.extensionInfo[W]={tsn:W,timestamp:ui()},Object.keys(this.extensionInfo).length>10)this.sendTWCC()}async runTWCC(){while(this.twccRunning)this.sendTWCC(),await ci(100)}sendTWCC(){if(Object.keys(this.extensionInfo).length===0)return;let W=Object.values(this.extensionInfo).sort((q,A)=>q.tsn-A.tsn),G=W[0].tsn,X=W.slice(-1)[0].tsn,Y=[],J=W[0].tsn,Z=P9(X-G,1),V,U,Q=[];for(let q=G;q<=X;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 gq({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===X)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 VH({senderSsrc:this.rtcpSsrc,mediaSourceSsrc:this.mediaSourceSsrc,baseSequenceNumber:J,packetStatusCount:Z,referenceTime:vd(Math.floor(Number(V/1000n/64n))),fbPktCount:this.fbPktCount,recvDeltas:Q,packetChunks:Y})});this.dtlsTransport.sendRtcp([N]).catch((q)=>{li(q)}),this.extensionInfo={},this.fbPktCount=yd(this.fbPktCount,1)}},oi=class{base_seq;max_seq;cycles=0;packets_received=0;clockRate;jitter_q4=0;last_arrival;last_timestamp;expected_prior=0;received_prior=0;constructor(W){this.clockRate=W}add(W,G=Date.now()/1000){let X=this.max_seq==null||LS(W.header.sequenceNumber,this.max_seq);if(this.packets_received++,this.base_seq==null)this.base_seq=W.header.sequenceNumber;if(X){let Y=lV(G*this.clockRate);if(this.max_seq!=null&&W.header.sequenceNumber<this.max_seq)this.cycles+=65536;if(this.max_seq=W.header.sequenceNumber,W.header.timestamp!==this.last_timestamp&&this.packets_received>1){let 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 G=this.packets_received-this.received_prior;this.received_prior=this.packets_received;let X=W-G;if(W==0||X<=0)return 0;else return Math.floor((X<<8)/W)}get jitter(){return this.jitter_q4>>4}get packets_expected(){return this.cycles+(this.max_seq??0)-(this.base_seq??0)+1}get packets_lost(){let W=this.packets_expected-this.packets_received;return W<0?0:W}},e5=M1("werift:packages/webrtc/src/transport/dtls.ts"),rF=class W{constructor(G,X,Y,J=[]){this.config=G,this.iceTransport=X,this.localCertificate=Y,this.srtpProfiles=J,this.localCertificate??=W.localCertificate}id=ri().toString();state="new";role="auto";srtpStarted=!1;transportSequenceNumber=0;bytesSent=0;bytesReceived=0;packetsSent=0;packetsReceived=0;dataReceiver=()=>{};dtls;srtp;srtcp;onStateChange=new c0;onRtcp=new c0;onRtp=new c0;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:G,keyPem:X,signatureHash:Y}=await tq.createSelfSignedCertificateWithKey({signature:l4.ecdsa_3,hash:sq.sha256_4},a6.secp256r1_23);return this.localCertificate=new r2(X,G,Y),this.localCertificate})(),this.localCertificatePromise}setRemoteParams(G){let X=si([...this.remoteParameters?.fingerprints??[],...G.fingerprints]),Y=G.role==="auto"&&this.remoteParameters?.role?this.remoteParameters.role:G.role;this.remoteParameters=new fK(X,Y)}async start(){if(this.state!=="new")throw Error("state must be new");if(!this.remoteParameters||this.remoteParameters.fingerprints.length===0)throw Error("remote fingerprint not exist");if(this.role==="auto")if(this.iceTransport.role==="controlling")this.role="server";else this.role="client";this.setState("connecting"),await new Promise(async(G,X)=>{if(this.role==="server")this.dtls=new Pn({cert:this.localCertificate?.certPem,key:this.localCertificate?.privateKey,signatureHash:this.localCertificate?.signatureHash,transport:aF(this.iceTransport.connection),srtpProfiles:this.srtpProfiles,extendedMasterSecret:!0,certificateRequest:!0});else this.dtls=new CF({cert:this.localCertificate?.certPem,key:this.localCertificate?.privateKey,signatureHash:this.localCertificate?.signatureHash,transport:aF(this.iceTransport.connection),srtpProfiles:this.srtpProfiles,extendedMasterSecret:!0});if(this.dtls.onData.subscribe((Y)=>{if(this.config.debug.inboundPacketLoss&&this.config.debug.inboundPacketLoss/100<Math.random())return;this.dataReceiver(Y)}),this.dtls.onClose.subscribe(()=>{if(this.state!=="failed")this.setState("closed")}),this.dtls.onConnect.once(G),this.dtls.onError.once((Y)=>{this.setState("failed"),e5("dtls failed",Y),X(Y)}),this.dtls instanceof CF)await ai(100),this.dtls.connect().catch((Y)=>{this.setState("failed"),e5("dtls connect failed",Y),X(Y)})});try{this.verifyRemoteCertificateFingerprint()}catch(G){throw this.setState("failed"),this.dtls?.close(),G}if(this.srtpProfiles.length>0)this.startSrtp();this.setState("connected"),e5("dtls connected")}verifyRemoteCertificateFingerprint(){if(!this.remoteParameters||this.remoteParameters.fingerprints.length===0)throw Error("remote fingerprint not exist");let G=this.dtls?.remoteCertificate;if(!G)throw Error("remote certificate not available");let X=this.remoteParameters.fingerprints.flatMap(({algorithm:U,value:Q})=>{let N=d2(U);if(!N)return[];let q=bK(Q);if(!q)throw Error("remote fingerprint value is empty");return[{normalizedAlgorithm:N,normalizedValue:q}]});if(X.length===0)throw Error("no supported remote fingerprint algorithms");let Y=ei(X),J=X.filter(({normalizedAlgorithm:U})=>U===Y),Z=J.reduce((U,{normalizedAlgorithm:Q})=>{if(!U.has(Q))U.set(Q,bK(l2(G,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 G=this.dtls.srtp.srtpProfile;if(!G)throw Error("need srtpProfile");e5("selected SRTP Profile",G);let{localKey:X,localSalt:Y,remoteKey:J,remoteSalt:Z}=this.dtls.extractSessionKeys(Eo(G),$o(G)),V={keys:{localMasterKey:X,localMasterSalt:Y,remoteMasterKey:J,remoteMasterSalt:Z},profile:G};this.srtp=new zn(V),this.srtcp=new Hn(V)}startSrtp(){if(this.srtpStarted)return;this.srtpStarted=!0,this.updateSrtpSession(),this.iceTransport.connection.onData.subscribe((G)=>{if(this.config.debug.inboundPacketLoss&&this.config.debug.inboundPacketLoss/100<Math.random())return;if(!xo(G))return;if(this.bytesReceived+=G.length,this.packetsReceived++,mo(G)){let X;try{X=this.srtcp.decrypt(G)}catch(J){if(J instanceof fY){e5("dropping invalid SRTCP packet",J);return}throw J}let Y;try{Y=bo.deSerialize(X)}catch(J){e5("dropping malformed SRTCP packet",J);return}for(let J of Y)try{this.onRtcp.execute(J)}catch(Z){e5("RTCP error",Z)}}else{let X;try{X=this.srtp.decrypt(G)}catch(J){if(J instanceof fY){e5("dropping invalid SRTP packet",J);return}throw J}let Y;try{Y=t6.deSerialize(X)}catch(J){e5("dropping malformed SRTP packet",J);return}try{this.onRtp.execute(Y)}catch(J){e5("RTP error",J)}}})}sendData=async(G)=>{if(this.config.debug.outboundPacketLoss&&this.config.debug.outboundPacketLoss/100<Math.random())return;if(!this.dtls)throw Error("dtls not established");await this.dtls.send(G)};async sendRtp(G,X){try{let Y=this.srtp.encrypt(G,X);if(this.config.debug.outboundPacketLoss&&this.config.debug.outboundPacketLoss/100<Math.random())return Y.length;return this.bytesSent+=Y.length,this.packetsSent++,await this.iceTransport.connection.send(Y).catch(()=>{}),Y.length}catch(Y){return e5("failed to send",Y),0}}async sendRtcp(G){let X=Buffer.concat(G.map((J)=>J.serialize())),Y=this.srtcp.encrypt(X);if(this.config.debug.outboundPacketLoss&&this.config.debug.outboundPacketLoss/100<Math.random())return Y.length;this.bytesSent+=Y.length,this.packetsSent++,await this.iceTransport.connection.send(Y).catch(()=>{})}setState(G){if(G!=this.state)this.state=G,this.onStateChange.execute(G)}async stop(){this.setState("closed"),await this.iceTransport.stop()}async getStats(){let G=$G(),X=[],J={type:"transport",id:Q8("transport",this.id),timestamp:G,bytesSent:this.bytesSent,bytesReceived:this.bytesReceived,packetsSent:this.packetsSent,packetsReceived:this.packetsReceived,dtlsState:this.state,iceState:this.iceTransport.state,selectedCandidatePairId:this.iceTransport.connection.nominated?Q8("candidate-pair",this.iceTransport.connection.nominated.localCandidate.foundation,this.iceTransport.connection.nominated.remoteCandidate.foundation):void 0,localCertificateId:this.localCertificate?Q8("certificate","local"):void 0,remoteCertificateId:this.remoteParameters?Q8("certificate","remote"):void 0,dtlsRole:this.role==="auto"?void 0:this.role};if(X.push(J),this.localCertificate){let V=this.localCertificate.getFingerprints();if(V.length>0){let U={type:"certificate",id:Q8("certificate","local"),timestamp:G,fingerprint:V[0].value,fingerprintAlgorithm:V[0].algorithm,base64Certificate:Buffer.from(this.localCertificate.certPem).toString("base64")};X.push(U)}}if(this.remoteParameters&&this.remoteParameters.fingerprints.length>0){let V={type:"certificate",id:Q8("certificate","remote"),timestamp:G,fingerprint:this.remoteParameters.fingerprints[0].value,fingerprintAlgorithm:this.remoteParameters.fingerprints[0].algorithm,base64Certificate:""};X.push(V)}let Z=await this.iceTransport.getStats();return X.push(...Z),X}};var r2=class{constructor(W,G,X){this.certPem=G,this.signatureHash=X;let Y=tV.Certificate.fromPEM(Buffer.from(G));this.publicKey=Y.publicKey.toPEM(),this.privateKey=tV.PrivateKey.fromPEM(Buffer.from(W)).toPEM()}publicKey;privateKey;getFingerprints(){return[new mK("sha-256",l2(tV.Certificate.fromPEM(Buffer.from(this.certPem)).raw,"sha256"))]}},mK=class{constructor(W,G){this.algorithm=W,this.value=G}},fK=class{constructor(W=[],G){this.fingerprints=W,this.role=G}},si=(W)=>{let G=new Set;return W.filter(({algorithm:X,value:Y})=>{let J=`${d2(X)??X.trim().toLowerCase()}:${bK(Y)}`;if(G.has(J))return!1;return G.add(J),!0})},ti=["sha512","sha384","sha256","sha224","sha1"],ei=(W)=>{return ti.find((G)=>W.some(({normalizedAlgorithm:X})=>X===G))??W[0].normalizedAlgorithm},Wr=class{constructor(W){this.ice=W,W.onData.subscribe((G)=>{if(yi(G)){if(this.onData)this.onData(G)}})}closed=!1;onData=()=>{};get address(){return{}}type="ice";send=(W)=>{return this.ice.send(W)};async close(){this.closed=!0,this.ice.close()}},aF=(W)=>new Wr(W),sF=M1("werift:packages/webrtc/src/transport/ice.ts"),Xr=class{constructor(W){this.iceGather=W,this.connection=this.iceGather.connection,this.connection.stateChanged.subscribe((G)=>{this.setState(G)}),this.iceGather.onIceCandidate=(G)=>{this.onIceCandidate.execute(G)}}id=Gr().toString();connection;state="new";waitStart;renominating=!1;onStateChange=new c0;onIceCandidate=new c0;onNegotiationNeeded=new c0;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(Jr(W))};setRemoteParams(W,G=!1){if(G)this.renominating=!0;if(this.connection.remoteUsername&&this.connection.remotePassword&&(this.connection.remoteUsername!==W.usernameFragment||this.connection.remotePassword!==W.password))if(this.renominating)sF("renomination",W),this.connection.resetNominatedPair(),this.renominating=!1;else sF("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 c0,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=$G(),G=[];for(let Y of this.localCandidates){let J={type:"local-candidate",id:Q8("local-candidate",Y.foundation),timestamp:W,transportId:Q8("transport",this.id),address:Y.ip,port:Y.port,protocol:Y.protocol,candidateType:Y.type,priority:Y.priority,foundation:Y.foundation};G.push(J)}for(let Y of this.connection.remoteCandidates){let J=eV(Y),Z={type:"remote-candidate",id:Q8("remote-candidate",J.foundation),timestamp:W,transportId:Q8("transport",this.id),address:J.ip,port:J.port,protocol:J.protocol,candidateType:J.type,priority:J.priority,foundation:J.foundation};G.push(Z)}let X=this.connection?.candidatePairs?[...this.connection.candidatePairs.filter((Y)=>Y.nominated),...this.connection.candidatePairs.filter((Y)=>!Y.nominated)]:[];for(let Y of X){let J={type:"candidate-pair",id:Q8("candidate-pair",Y.foundation),timestamp:W,transportId:Q8("transport",this.id),localCandidateId:Q8("local-candidate",Y.localCandidate.foundation),remoteCandidateId:Q8("remote-candidate",Y.remoteCandidate.foundation),state:Y.state,nominated:Y.nominated,packetsSent:Y.packetsSent,packetsReceived:Y.packetsReceived,bytesSent:Y.bytesSent,bytesReceived:Y.bytesReceived,currentRoundTripTime:Y.rtt};G.push(J)}return G}};var Yr=class{constructor(W={}){this.options=W,this.connection=new Vi(!1,this.options),this.connection.onIceCandidate.subscribe((G)=>{this.onIceCandidate(eV(G))})}onIceCandidate=()=>{};gatheringState="new";connection;onGatheringStateChange=new c0;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 s2({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 G=new a2(W.component,W.foundation,W.host,W.port,W.priority,W.transport,W.type,W.generation,W.ufrag);return G.relatedAddress=W.relatedAddress,G.relatedPort=W.relatedPort,G.tcpType=W.tcptype,G}function Jr(W){return new DG(W.foundation,W.component,W.protocol,W.priority,W.ip,W.port,W.type,W.relatedAddress,W.relatedPort,W.tcpType,W.generation,W.ufrag)}var Zr=class{candidate;sdpMid;sdpMLineIndex;usernameFragment;constructor(W){Object.assign(this,W)}static fromSdp(W){let G=DG.fromSdp(W);return eV(G).toJSON()}static isThis(W){if(typeof W?.candidate==="string")return!0}toJSON(){return{candidate:this.candidate,sdpMid:this.sdpMid,sdpMLineIndex:this.sdpMLineIndex,usernameFragment:this.usernameFragment}}},a2=class{constructor(W,G,X,Y,J,Z,V,U,Q){this.component=W,this.foundation=G,this.ip=X,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 Zr({candidate:Ux(this),sdpMLineIndex:this.sdpMLineIndex,sdpMid:this.sdpMid,usernameFragment:this.ufrag})}static fromJSON(W){try{if(!W.candidate)throw Error("candidate is required");let G=Qx(W.candidate);return G.sdpMLineIndex=W.sdpMLineIndex??void 0,G.sdpMid=W.sdpMid??void 0,G}catch(G){}}},s2=class{iceLite=!1;usernameFragment;password;constructor(W={}){Object.assign(this,W)}},o7=class W{constructor(G=0,X=Buffer.from("")){this.flags=G,this._body=X}get body(){return this._body}set body(G){this._body=G}static type=-1;get type(){return W.type}get bytes(){if(!this.body)throw Error();let G=Buffer.alloc(4);return G.writeUInt8(this.type,0),G.writeUInt8(this.flags,1),G.writeUInt16BE(this.body.length+4,2),Buffer.concat([G,this.body,...[...Array(qU(this.body.length))].map(()=>Buffer.from("\x00"))])}},qO=class extends o7{constructor(W=0,G){super(W,G);if(this.flags=W,G)this.initiateTag=G.readUInt32BE(0),this.advertisedRwnd=G.readUInt32BE(4),this.outboundStreams=G.readUInt16BE(8),this.inboundStreams=G.readUInt16BE(10),this.initialTsn=G.readUInt32BE(12),this.params=Yx(G.slice(16));else this.initiateTag=0,this.advertisedRwnd=0,this.outboundStreams=0,this.inboundStreams=0,this.initialTsn=0,this.params=[]}initiateTag;advertisedRwnd;outboundStreams;inboundStreams;initialTsn;params;get body(){let W=Buffer.alloc(16);return W.writeUInt32BE(this.initiateTag,0),W.writeUInt32BE(this.advertisedRwnd,4),W.writeUInt16BE(this.outboundStreams,8),W.writeUInt16BE(this.inboundStreams,10),W.writeUInt32BE(this.initialTsn,12),Buffer.concat([W,Xx(this.params)])}},cq=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}},Qr=class W extends qO{static type=130;get type(){return W.type}},lq=class W extends o7{constructor(G=0,X){super(G,X);if(this.flags=G,X){this.cumulativeTsn=X.readUInt32BE(0);let Y=4;while(Y<X.length)this.streams.push([X.readUInt16BE(Y),X.readUInt16BE(Y+2)]),Y+=4}else this.cumulativeTsn=0}static type=192;streams=[];cumulativeTsn;get type(){return W.type}set body(G){}get body(){let G=Buffer.alloc(4);return G.writeUInt32BE(this.cumulativeTsn,0),Buffer.concat([G,...this.streams.map(([X,Y])=>{let J=Buffer.alloc(4);return J.writeUInt16BE(X,0),J.writeUInt16BE(Y,2),J})])}},dq=class W extends o7{constructor(G=0,X){super(G,X);if(this.flags=G,X)this.tsn=X.readUInt32BE(0),this.streamId=X.readUInt16BE(4),this.streamSeqNum=X.readUInt16BE(6),this.protocol=X.readUInt32BE(8),this.userData=X.slice(12)}static type=0;get type(){return W.type}tsn=0;streamId=0;streamSeqNum=0;protocol=0;userData=Buffer.from("");abandoned=!1;acked=!1;misses=0;retransmit=!1;sentCount=0;bookSize=0;expiry;maxRetransmits;sentTime;get bytes(){let G=16+this.userData.length,X=Buffer.alloc(16);X.writeUInt8(this.type,0),X.writeUInt8(this.flags,1),X.writeUInt16BE(G,2),X.writeUInt32BE(this.tsn,4),X.writeUInt16BE(this.streamId,8),X.writeUInt16BE(this.streamSeqNum,10),X.writeUInt32BE(this.protocol,12);let Y=Buffer.concat([X,this.userData]);if(G%4)Y=Buffer.concat([Y,...[...Array(qU(G))].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,G=void 0){super(W,G);if(this.flags=W,G)this.params=Yx(G)}params=[];get body(){return Xx(this.params)}},dK=class W extends NU{static type=6;get type(){return W.type}},oq=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(([G,X])=>{return{name:(Object.entries(W.CODE).find(([,J])=>J===G)||[])[0],body:X}})}},oK=class W extends NU{static type=4;get type(){return W.type}},t2=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(G=0,X){super(G,X);if(this.flags=G,X){this.cumulativeTsn=X.readUInt32BE(0),this.advertisedRwnd=X.readUInt32BE(4);let Y=X.readUInt16BE(8),J=X.readUInt16BE(10),Z=12;[...Array(Y)].forEach(()=>{this.gaps.push([X.readUInt16BE(Z),X.readUInt16BE(Z+2)]),Z+=4}),[...Array(J)].forEach(()=>{this.duplicates.push(X.readUInt32BE(Z)),Z+=4})}}static type=3;get type(){return W.type}gaps=[];duplicates=[];cumulativeTsn=0;advertisedRwnd=0;get bytes(){let G=16+4*(this.gaps.length+this.duplicates.length),X=Buffer.alloc(16);X.writeUInt8(this.type,0),X.writeUInt8(this.flags,1),X.writeUInt16BE(G,2),X.writeUInt32BE(this.cumulativeTsn,4),X.writeUInt32BE(this.advertisedRwnd,8),X.writeUInt16BE(this.gaps.length,12),X.writeUInt16BE(this.duplicates.length,14);let Y=Buffer.concat([X,...this.gaps.map((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}},e2=class W extends o7{constructor(G=0,X){super(G,X);if(this.flags=G,X)this.cumulativeTsn=X.readUInt32BE(0)}static type=7;get type(){return W.type}cumulativeTsn=0;get body(){let G=Buffer.alloc(4);return G.writeUInt32BE(this.cumulativeTsn,0),G}},Wx=class W extends o7{static type=8;get type(){return W.type}},Gx=class W extends o7{static type=14;get type(){return W.type}},Nr=[dq,cq,pK,iK,oK,t2,dK,e2,Wx,oq,cK,lK,Gx,nK,lq],qr=Nr.reduce((W,G)=>{return W[G.type]=G,W},{});function qU(W){let G=W%4;return G?4-G:0}function Xx(W){let G=Buffer.from(""),X=Buffer.from("");return W.forEach(([Y,J])=>{let Z=J.length+4,V=Buffer.alloc(4);V.writeUInt16BE(Y,0),V.writeUInt16BE(Z,2),G=Buffer.concat([G,X,V,J]),X=Buffer.concat([...Array(qU(Z))].map(()=>Buffer.from("\x00")))}),G}function Yx(W){let G=[],X=0;while(X<=W.length-4){let Y=W.readUInt16BE(X),J=W.readUInt16BE(X+2);G.push([Y,W.slice(X+4,X+J)]),X+=J+qU(J)}return G}function Hr(W){if(W.length<12)throw Error("SCTP packet length is less than 12 bytes");let G=W.readUInt16BE(0),X=W.readUInt16BE(2),Y=W.readUInt32BE(4),J=W.readUInt32LE(8),Z=PS(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=qr[Q.toString()];if(H)V.push(new H(N,A));else throw Error("unknown");U+=q+qU(q)}return[G,X,Y,V]}function Ar(W,G,X,Y){let J=Buffer.alloc(8);J.writeUInt16BE(W,0),J.writeUInt16BE(G,2),J.writeUInt32BE(X,4);let Z=Y.bytes,V=PS(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 zr(W){return W.map((G,X)=>[X,G])}function Ir(W){return W.reduce((G,X)=>{return G[X]=new c0,G},{})}var rK=class W{constructor(G,X,Y,J){this.requestSequence=G,this.responseSequence=X,this.lastTsn=Y,this.streams=J}static type=13;get type(){return W.type}get bytes(){let G=Buffer.from(e1.Pack("!LLL",[this.requestSequence,this.responseSequence,this.lastTsn]));return Buffer.concat([G,...this.streams.map((X)=>Buffer.from(e1.Pack("!H",[X])))])}static parse(G){let[X,Y,J]=e1.Unpack("!LLL",G),Z=[];for(let V=12;V<G.length;V+=2)Z.push(e1.Unpack("!H",G.slice(V))[0]);return new W(X,Y,J,Z)}},Jx=class W{constructor(G,X){this.requestSequence=G,this.newStreams=X}static type=17;get type(){return W.type}get bytes(){return Buffer.from(e1.Pack("!LHH",[this.requestSequence,this.newStreams,0]))}static parse(G){let[X,Y]=e1.Unpack("!LHH",G);return new W(X,Y)}},_q={ReconfigResultSuccessPerformed:1,BadSequenceNumber:5},nq=class W{constructor(G,X){this.responseSequence=G,this.result=X}static type=16;get type(){return W.type}get bytes(){return Buffer.from(e1.Pack("!LL",[this.responseSequence,this.result]))}static parse(G){let[X,Y]=e1.Unpack("!LL",G);return new W(X,Y)}},eF={13:rK,16:nq,17:Jx},t1=M1("werift/sctp/sctp"),wr=24,jr=60,WS=65535,W7=1200,fV=1,Zx=2,aK=4,GS=10,Kr=8,XS=0.125,YS=0.25,JS=3,Or=1,Dr=60,NH=4294967296,Cr=200,Tr=30,ZS=135,VS=7,US=32776,QS=49152,Mr=["new","closed","connected","connecting"],Rr=class W{constructor(G,X=5000){this.transport=G,this.port=X,this.localPort=this.port,this.transport.onData=(Y)=>{this.handleData(Y)}}flush=new c0;stateChanged=Ir(Mr);onReconfigStreams=new c0;onReceive=new c0;onSackReceived=async()=>{};associationState=1;started=!1;state="new";isServer=!0;isStopping=!1;isClosed=!1;hmacKey=Ur(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=WS;lastReceivedTsn;sackDuplicates=[];sackMisOrdered=new Set;sackNeeded=!1;sackPacketCount=0;sackHasNewDataInPacket=!1;sackImmediate=!1;sackTimeout;cwnd=3*W7;fastRecoveryExit;fastRecoveryTransmit=!1;forwardTsnChunk;flightSize=0;outboundQueue=[];outboundStreamSeq={};_outboundStreamsCount=WS;localTsn=Number(TK());lastSackedTsn=KG(this.localTsn);advancedPeerAckTsn=KG(this.localTsn);partialBytesAcked=0;sentQueue=[];transmitting=!1;transmitRequested=!1;reconfigRequestSeq=this.localTsn;reconfigResponseSeq=0;reconfigRequest;reconfigQueue=[];srtt;rttvar;rto=JS;timer1Handle;timer1Chunk;timer1Failures=0;timer2Handle;timer2Chunk;timer2Failures=0;timer3Handle;timerReconfigHandle;timerReconfigFailures=0;timerHeartbeatHandle;heartbeatInterval=Tr;ssthresh;get isStopped(){return this.isStopping||this.isClosed}get maxChannels(){if(this._inboundStreamsCount>0)return Math.min(this._inboundStreamsCount,this._outboundStreamsCount);return}static client(G,X=5000){let Y=new W(G,X);return Y.isServer=!1,Y}static server(G,X=5000){let Y=new W(G,X);return Y.isServer=!0,Y}async handleData(G){if(this.isStopped)return;let X,[,,Y,J]=Hr(G);if(J.filter((V)=>V.type===cq.type).length>0){if(J.length!=1)throw Error();X=0}else X=this.localVerificationTag;if(Y!==X)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((G)=>{t1("send delayed sack failed",G.message)})},Cr)}async sendSack(){if(this.isStopped)return;if(!this.sackNeeded)return;let G=[],X;[...this.sackMisOrdered].sort().forEach((J)=>{let Z=(J-this.lastReceivedTsn)%NH;if(J===X)G[G.length-1][1]=Z;else G.push([Z,Z]);X=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=G,await this.sendChunk(Y).catch((J)=>{t1("send sack failed",J.message)}),this.sackDuplicates=[],this.sackNeeded=!1,this.sackPacketCount=0,this.sackImmediate=!1}async receiveChunk(G){switch(G.type){case dq.type:this.receiveDataChunk(G);break;case cq.type:{if(!this.isServer)return;let X=G;t1("receive init",X),this.lastReceivedTsn=KG(X.initialTsn),this.reconfigResponseSeq=KG(X.initialTsn),this.remoteVerificationTag=X.initiateTag,this.ssthresh=X.advertisedRwnd,this.peerAdvertisedRwnd=X.advertisedRwnd,this.getExtensions(X.params),this._inboundStreamsCount=Math.min(X.outboundStreams,this._inboundStreamsMax),this._outboundStreamsCount=Math.min(this._outboundStreamsCount,X.inboundStreams);let Y=new 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(e1.Pack("!L",[J]));Z=Buffer.concat([Z,tF("sha1",this.hmacKey).update(Z).digest()]),Y.params.push([VS,Z]),t1("send initAck",Y),await this.sendChunk(Y).catch((V)=>{t1("send initAck failed",V.message)})}break;case pK.type:{if(this.associationState!=2)return;let X=G;this.timer1Cancel(),this.lastReceivedTsn=KG(X.initialTsn),this.reconfigResponseSeq=KG(X.initialTsn),this.remoteVerificationTag=X.initiateTag,this.ssthresh=X.advertisedRwnd,this.peerAdvertisedRwnd=X.advertisedRwnd,this.getExtensions(X.params),this._inboundStreamsCount=Math.min(X.outboundStreams,this._inboundStreamsMax),this._outboundStreamsCount=Math.min(this._outboundStreamsCount,X.inboundStreams);let Y=new cK;for(let[J,Z]of X.params)if(J===VS){Y.body=Z;break}await this.sendChunk(Y).catch((J)=>{t1("send echo failed",J.message)}),this.timer1Start(Y),this.setState(3)}break;case iK.type:await this.receiveSackChunk(G);break;case oK.type:{let X=new t2;X.params=G.params,await this.sendChunk(X).catch((Y)=>{t1("send heartbeat ack failed",Y.message)})}break;case dK.type:this.setState(1);break;case e2.type:{this.timer2Cancel(),this.setState(7);let X=new Wx;await this.sendChunk(X).catch((Y)=>{t1("send shutdown ack failed",Y.message)}),this.t2Start(X),this.setState(6)}break;case oq.type:t1("ErrorChunk",G.descriptions);break;case cK.type:{if(!this.isServer)return;let Y=G.body,J=tF("sha1",this.hmacKey).update(Y.slice(0,4)).digest();if(Y?.length!=wr||!Y.slice(4).equals(J)){t1("x State cookie is invalid");return}let Z=Date.now()/1000,V=e1.Unpack("!L",Y)[0];if(V<Z-jr||V>Z){let Q=new oq(0,void 0);Q.params.push([oq.CODE.StaleCookieError,Buffer.concat([...Array(8)].map(()=>Buffer.from("\x00")))]),await this.sendChunk(Q).catch((N)=>{t1("send errorChunk failed",N.message)});return}let U=new lK;await this.sendChunk(U).catch((Q)=>{t1("send cookieAck failed",Q.message)}),this.setState(4)}break;case lK.type:{if(this.associationState!=3)return;this.timer1Cancel(),this.setState(4)}break;case Gx.type:{if(this.associationState!=8)return;this.timer2Cancel(),this.setState(1)}break;case nK.type:{if(this.associationState!=4)return;let X=G;for(let[Y,J]of X.params){let Z=eF[Y];if(Z)await this.receiveReconfigParam(Z.parse(J))}}break;case lq.type:this.receiveForwardTsnChunk(G);break}}getExtensions(G){for(let[X,Y]of G)if(X===QS)this.remotePartialReliability=!0;else if(X===US)this.remoteExtensions=[...Y]}async receiveReconfigParam(G){switch(t1("receiveReconfigParam",eF[G.type]),G.type){case rK.type:{let X=G,Y=new nq(X.requestSequence,_q.ReconfigResultSuccessPerformed);this.reconfigResponseSeq=X.requestSequence,await this.sendReconfigParam(Y),await Promise.all(X.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(X.streams)}break;case nq.type:{let X=G;if(X.result!==_q.ReconfigResultSuccessPerformed)t1("OutgoingSSNResetRequestParam failed",Object.keys(_q).find((Y)=>_q[Y]===X.result));else if(X.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=JS,this.timerReconfigFailures=0,this.reconfigQueue.length>0)await this.transmitReconfigRequest()}}break;case Jx.type:{let X=G;this._inboundStreamsCount+=X.newStreams;let Y=new nq(X.requestSequence,1);this.reconfigResponseSeq=X.requestSequence,await this.sendReconfigParam(Y)}break}}receiveDataChunk(G){if(this.sackNeeded=!0,this.markReceived(G.tsn)){this.sackImmediate=!0;return}if(this.sackHasNewDataInPacket=!0,this.sackImmediate=!0,(G.flags&fV)===0)this.sackImmediate=!0;if(this.sackMisOrdered.size>0)this.sackImmediate=!0;let X=this.getInboundStream(G.streamId);X.addChunk(G),this.advertisedRwnd-=G.userData.length;for(let Y of X.popMessages())this.advertisedRwnd+=Y[2].length,this.receive(...Y)}async receiveSackChunk(G){if(f4(this.lastSackedTsn,G.cumulativeTsn))return;let X=Date.now()/1000;this.lastSackedTsn=G.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(X-U.sentTime)}if(!this.sentQueue.length)this.sentQueue=[];let V=!1;if(G.gaps.length>0){let U=new Set,Q;G.gaps.forEach((q)=>{for(let A=q[0];A<q[1]+1;A++)Q=(G.cumulativeTsn+A)%NH,U.add(Q)});let N=G.cumulativeTsn;for(let q of this.sentQueue){if(f4(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(f4(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,W7);else if(this.partialBytesAcked+=Z,this.partialBytesAcked>=this.cwnd)this.partialBytesAcked-=this.cwnd,this.cwnd+=W7}if(V)this.ssthresh=Math.max(Math.floor(this.cwnd/2),4*W7),this.cwnd=this.ssthresh,this.partialBytesAcked=0,this.fastRecoveryExit=this.sentQueue[this.sentQueue.length-1].tsn,this.fastRecoveryTransmit=!0}else if(mV(G.cumulativeTsn,this.fastRecoveryExit))this.fastRecoveryExit=void 0;if(this.sentQueue.length===0)this.timer3Cancel();else if(J>0)this.timer3Restart();this.peerAdvertisedRwnd=G.advertisedRwnd,this.updateAdvancedPeerAckPoint(),await this.onSackReceived(),await this.transmit()}receiveForwardTsnChunk(G){if(this.sackNeeded=!0,this.sackImmediate=!0,mV(this.lastReceivedTsn,G.cumulativeTsn))return;let X=(Y)=>f4(Y,this.lastReceivedTsn);this.lastReceivedTsn=G.cumulativeTsn,this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(X));for(let Y of[...this.sackMisOrdered].sort())if(Y===vY(this.lastReceivedTsn))this.lastReceivedTsn=Y;else break;this.sackDuplicates=this.sackDuplicates.filter(X),this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(X));for(let[Y,J]of G.streams){let Z=this.getInboundStream(Y);Z.streamSequenceNumber=P9(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(G){if(!this.srtt)this.rttvar=G/2,this.srtt=G;else this.rttvar=(1-YS)*this.rttvar+YS*Math.abs(this.srtt-G),this.srtt=(1-XS)*this.srtt+XS*G;this.rto=Math.max(Or,Math.min(this.srtt+4*this.rttvar,Dr))}receive(G,X,Y){this.onReceive.execute(G,X,Y)}getInboundStream(G){if(!this.inboundStreams[G])this.inboundStreams[G]=new Pr;return this.inboundStreams[G]}markReceived(G){if(mV(this.lastReceivedTsn,G)||this.sackMisOrdered.has(G))return this.sackDuplicates.push(G),!0;this.sackMisOrdered.add(G);for(let Y of[...this.sackMisOrdered].sort())if(Y===vY(this.lastReceivedTsn))this.lastReceivedTsn=Y;else break;let X=(Y)=>f4(Y,this.lastReceivedTsn);return this.sackDuplicates=this.sackDuplicates.filter(X),this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(X)),!1}send=async(G,X,Y,{expiry:J,maxRetransmits:Z,ordered:V}={expiry:void 0,maxRetransmits:void 0,ordered:!0})=>{let U=V?this.outboundStreamSeq[G]||0:0,Q=Math.ceil(Y.length/W7),N=0,q=[];for(let A=0;A<Q;A++){let H=new dq(0,void 0);if(H.flags=0,!V)H.flags=aK;if(A===0)H.flags|=Zx;if(A===Q-1)H.flags|=fV;H.tsn=this.localTsn,H.streamId=G,H.streamSeqNum=U,H.protocol=X,H.userData=Y.slice(N,N+W7),H.bookSize=H.userData.length,H.expiry=J,H.maxRetransmits=Z,N+=W7,this.localTsn=vY(this.localTsn),q.push(H)}if(q.forEach((A)=>{this.outboundQueue.push(A)}),V)this.outboundStreamSeq[G]=P9(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)=>{t1("send forwardTsn failed",J.message)}),this.forwardTsnChunk=void 0,!this.timer3Handle)this.timer3Start()}let G=this.fastRecoveryExit!=null?2*W7:4*W7,X=Math.min(this.flightSize+G,this.cwnd),Y=!0;for(let J of this.sentQueue){if(J.retransmit){if(this.fastRecoveryTransmit)this.fastRecoveryTransmit=!1;else if(this.flightSize>=X)break;if(this.flightSizeIncrease(J),J.misses=0,J.retransmit=!1,J.sentCount++,await this.sendChunk(J).catch((Z)=>{t1("send data failed",Z.message)}),Y)this.timer3Restart()}Y=!1}while(this.outboundQueue.length>0&&this.flightSize<X&&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)=>{t1("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 G=[...new Set(this.reconfigQueue)],X=G.slice(0,ZS);this.reconfigQueue=G.slice(ZS);let Y=new rK(this.reconfigRequestSeq,this.reconfigResponseSeq,KG(this.localTsn),X);this.reconfigRequestSeq=vY(this.reconfigRequestSeq),this.reconfigRequest=Y,await this.sendReconfigParam(Y),this.timerReconfigHandleStart()}}async sendReconfigParam(G){t1("sendReconfigParam",G);let X=new nK;X.params.push([G.type,G.bytes]),await this.sendChunk(X).catch((Y)=>{t1("send reconfig failed",Y.message)})}async sendResetRequest(G){t1("sendResetRequest",G);let X=new dq(0,void 0);if(X.streamId=G,this.outboundQueue.push(X),!this.timer3Handle)await this.transmit()}flightSizeIncrease(G){this.flightSize+=G.bookSize}flightSizeDecrease(G){this.flightSize=Math.max(0,this.flightSize-G.bookSize)}timer1Start(G){if(this.timer1Handle)throw Error();this.timer1Chunk=G,this.timer1Failures=0,this.timer1Handle=setTimeout(this.timer1Expired,this.rto*1000)}timer1Expired=()=>{if(this.isStopped)return;if(this.timer1Failures++,this.timer1Handle=void 0,this.timer1Failures>Kr)this.setState(1);else{if(setImmediate(()=>{if(this.isStopped)return;this.sendChunk(this.timer1Chunk).catch((G)=>{t1("send timer1 chunk failed",G.message)})}),this.isStopped)return;this.timer1Handle=setTimeout(this.timer1Expired,this.rto*1000)}};timer1Cancel(){if(this.timer1Handle)clearTimeout(this.timer1Handle),this.timer1Handle=void 0,this.timer1Chunk=void 0}t2Start(G){if(this.timer2Handle)throw Error();this.timer2Chunk=G,this.timer2Failures=0,this.timer2Handle=setTimeout(this.timer2Expired,this.rto*1000)}timer2Expired=()=>{if(this.isStopped)return;if(this.timer2Failures++,this.timer2Handle=void 0,this.timer2Failures>GS)this.setState(1);else{if(setImmediate(()=>{if(this.isStopped)return;this.sendChunk(this.timer2Chunk).catch((G)=>{t1("send timer2Chunk failed",G.message)})}),this.isStopped)return;this.timer2Handle=setTimeout(this.timer2Expired,this.rto*1000)}};timer2Cancel(){if(this.timer2Handle)clearTimeout(this.timer2Handle),this.timer2Handle=void 0,this.timer2Chunk=void 0}timer3Start(){if(this.isStopped)return;if(this.timer3Handle)throw Error();this.timer3Handle=setTimeout(this.timer3Expired,this.rto*1000)}timer3Restart(){if(this.isStopped)return;this.timer3Cancel(),this.timer3Handle=setTimeout(this.timer3Expired,this.rto*1000)}timer3Expired=()=>{if(this.isStopped)return;this.timer3Handle=void 0,this.sentQueue.forEach((G)=>{if(!this.maybeAbandon(G))G.retransmit=!0}),this.updateAdvancedPeerAckPoint(),this.fastRecoveryExit=void 0,this.flightSize=0,this.partialBytesAcked=0,this.ssthresh=Math.max(Math.floor(this.cwnd/2),4*W7),this.cwnd=W7,this.transmit()};timer3Cancel(){if(this.timer3Handle)clearTimeout(this.timer3Handle),this.timer3Handle=void 0}timerReconfigHandleStart(){if(this.isStopped)return;if(this.timerReconfigHandle)return;t1("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>GS)t1("timerReconfigFailures",this.timerReconfigFailures),this.setState(1),this.timerReconfigHandle=void 0;else if(this.reconfigRequest){if(t1("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)t1("timerReconfigCancel"),clearTimeout(this.timerReconfigHandle),this.timerReconfigHandle=void 0,this.timerReconfigFailures=0}heartbeatStart(){if(this.timerHeartbeatHandle||this.associationState!==4)return;this.timerHeartbeatHandle=setTimeout(this.timerHeartbeatExpired,(this.rto+this.heartbeatInterval)*1000)}heartbeatRestart(){this.heartbeatCancel(),this.heartbeatStart()}heartbeatCancel(){if(this.timerHeartbeatHandle)clearTimeout(this.timerHeartbeatHandle),this.timerHeartbeatHandle=void 0}timerHeartbeatExpired=async()=>{if(this.timerHeartbeatHandle=void 0,this.associationState!==4)return;if(this.flightSize===0&&this.outboundQueue.length===0){let G=new oK;G.params.push([1,Buffer.from(e1.Pack("!L",[Math.floor(Date.now()/1000)]))]),await this.sendChunk(G).catch((X)=>{t1("send heartbeat failed",X.message)})}this.heartbeatStart()};setHeartbeatInterval(G){if(G<=0)throw Error("heartbeat interval must be > 0");this.heartbeatInterval=G,this.heartbeatRestart()}updateAdvancedPeerAckPoint(){if(f4(this.lastSackedTsn,this.advancedPeerAckTsn))this.advancedPeerAckTsn=this.lastSackedTsn;let G=0,X={};while(this.sentQueue.length>0&&this.sentQueue[0].abandoned){let Y=this.sentQueue.shift();if(this.advancedPeerAckTsn=Y.tsn,G++,!(Y.flags&aK))X[Y.streamId]=Y.streamSeqNum}if(!this.sentQueue.length)this.sentQueue=[];if(G)this.forwardTsnChunk=new lq(0,void 0),this.forwardTsnChunk.cumulativeTsn=this.advancedPeerAckTsn,this.forwardTsnChunk.streams=Object.entries(X).map(([Y,J])=>[Number(Y),J])}maybeAbandon(G){if(G.abandoned)return!0;if(!(!!G.maxRetransmits&&G.maxRetransmits<G.sentCount||!!G.expiry&&G.expiry<Date.now()/1000))return!1;let Y=this.sentQueue.findIndex((J)=>J.type===G.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 Lr(65536)}setRemotePort(G){this.remotePort=G}async start(G){if(!this.started){if(this.started=!0,this.setConnectionState("connecting"),G)this.setRemotePort(G);if(!this.isServer)await this.init()}}async init(){let G=new cq;G.initiateTag=this.localVerificationTag,G.advertisedRwnd=this.advertisedRwnd,G.outboundStreams=this._outboundStreamsCount,G.inboundStreams=this._inboundStreamsMax,G.initialTsn=this.localTsn,this.setExtensions(G.params),t1("send init",G);try{await this.sendChunk(G),this.timer1Start(G),this.setState(2)}catch(X){t1("send init failed",X.message)}}setExtensions(G){let X=[];if(this.localPartialReliability)G.push([QS,Buffer.from("")]),X.push(lq.type);X.push(Qr.type),G.push([US,Buffer.from(X)])}async sendChunk(G){if(this.state==="closed")return;if(this.remotePort===void 0)throw Error("invalid remote port");let X=Ar(this.localPort,this.remotePort,this.remoteVerificationTag,G);await this.transport.send(X)}setState(G){if(G!=this.associationState)this.associationState=G;if(G===4)this.isStopping=!1,this.isClosed=!1,this.setConnectionState("connected"),this.heartbeatStart();else if(G===1){if(this.isClosed=!0,this.timer1Cancel(),this.timer2Cancel(),this.timer3Cancel(),this.timerReconfigCancel(),this.heartbeatCancel(),this.sackTimeout)clearTimeout(this.sackTimeout),this.sackTimeout=void 0;this.setConnectionState("closed"),this.removeAllListeners()}}setConnectionState(G){this.state=G,t1("setConnectionState",G),this.stateChanged[G].execute()}async stop(){if(this.isStopped){this.setState(1);return}if(this.isStopping=!0,this.transport.onData=void 0,this.sackTimeout)clearTimeout(this.sackTimeout),this.sackTimeout=void 0;if(this.associationState!==1)await this.abort();this.setState(1),clearTimeout(this.timer1Handle),clearTimeout(this.timer2Handle),clearTimeout(this.timer3Handle),clearTimeout(this.timerReconfigHandle),clearTimeout(this.timerHeartbeatHandle),clearTimeout(this.sackTimeout)}async abort(){let G=new dK;await this.sendChunk(G).catch((X)=>{t1("send abort failed",X.message)})}removeAllListeners(){Object.values(this.stateChanged).forEach((G)=>G.allUnsubscribe())}},Pr=class{reassembly=[];streamSequenceNumber=0;constructor(){}addChunk(W){if(this.reassembly.length===0||f4(W.tsn,this.reassembly[this.reassembly.length-1].tsn)){this.reassembly.push(W);return}for(let[G,X]of zr(this.reassembly)){if(X.tsn===W.tsn)throw Error("duplicate chunk in reassembly");if(f4(X.tsn,W.tsn)){this.reassembly.splice(G,0,W);break}}}*popMessages(){let W=0,G,X,Y;while(W<this.reassembly.length){let J=this.reassembly[W];if(G===void 0){if(Y=!(J.flags&aK),!(J.flags&Zx))if(Y)break;else{W++;continue}if(Y&&LS(J.streamSeqNum,this.streamSequenceNumber))break;X=J.tsn,G=W}else if(J.tsn!==X)if(Y)break;else{G=void 0,W++;continue}if(J.flags&fV){let Z=this.reassembly.slice(G,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,G),...this.reassembly.slice(W+1)],Y&&J.streamSeqNum===this.streamSequenceNumber)this.streamSequenceNumber=P9(this.streamSequenceNumber,1);W=G,yield[J.streamId,J.protocol,V]}else W++;X=vY(X)}}pruneChunks(W){let G=-1,X=0;for(let[Y,J]of this.reassembly.entries())if(mV(W,J.tsn))G=Y,X+=J.userData.length;else break;return this.reassembly=this.reassembly.slice(G+1),X}},Lr=class{constructor(W){this.maxMessageSize=W}};function KG(W){return(W-1)%NH}function vY(W){return(W+1)%NH}var xY=M1("werift:packages/webrtc/src/transport/sctp.ts"),pV=65536,Br=class W{constructor(G=5000,X=pV){this.port=G,this.maxMessageSize=X}dtlsTransport;sctp;onDataChannel=new c0;id=Vr().toString();mid;mLineIndex;bundled=!1;dataChannels={};remoteMaxMessageSize=pV;dataChannelQueue=[];dataChannelId;eventDisposer=[];setDtlsTransport(G){if(this.dtlsTransport&&this.dtlsTransport.id===G.id)return;this.eventDisposer.forEach((X)=>X()),this.dtlsTransport=G,this.sctp=new Rr(new Er(this.dtlsTransport),this.port),this.eventDisposer=[...[this.sctp.onReceive.subscribe(this.datachannelReceive),this.sctp.onReconfigStreams.subscribe((X)=>{X.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((X)=>{if(X.negotiated&&X.readyState!=="open")X.setReadyState("open")}),this.dataChannelFlush()}),this.sctp.stateChanged.closed.subscribe(()=>{Object.values(this.dataChannels).forEach((X)=>{X.setReadyState("closed")}),this.dataChannels={}}),this.dtlsTransport.onStateChange.subscribe((X)=>{if(X==="closed")this.sctp.setState(1)})].map((X)=>X.unSubscribe),()=>this.sctp.onSackReceived=async()=>{}],this.sctp.onSackReceived=async()=>{await this.dataChannelFlush()}}get isServer(){return this.dtlsTransport.iceTransport.role!=="controlling"}channelByLabel(G){return Object.values(this.dataChannels).find((X)=>X.label===G)}datachannelReceive=async(G,X,Y)=>{if(X===kq&&Y.length>0)switch(xY("DCEP",G,X,Y),Y[0]){case pF:{if(Y.length<12){xY("DATA_CHANNEL_OPEN data.length not enough");return}if(!Object.keys(this.dataChannels).includes(G.toString())){let[,Z,,V,U,Q]=e1.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:G,label:q,protocol:A});let H=(Z&3)===1?V:void 0,I=(Z&3)===2?V:void 0,w=new _2({label:q,ordered:(Z&128)===0,maxPacketLifeTime:I,maxRetransmits:H,protocol:A,id:G}),O=new k2(this,w,!1);O.isCreatedByRemote=!0,this.dataChannels[G]=O,this.onDataChannel.execute(O),O.setReadyState("open")}else xY("datachannel already opened","retransmit ack");let J=this.dataChannels[G];this.dataChannelQueue.push([J,kq,Buffer.from(e1.Pack("!B",[fF]))]),await this.dataChannelFlush()}break;case fF:{xY("DATA_CHANNEL_ACK",G,X);let J=this.dataChannels[G];if(!J)throw Error("channel not found");J.setReadyState("open")}break}else{let J=this.dataChannels[G];if(J){let Z=(()=>{switch(X){case cF:return Y.toString("utf8");case Ri:return"";case lF:return Y;case Pi: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(G){if(G.id==null)throw Error();if(this.dataChannels[G.id])throw Error();if(this.dataChannels[G.id]=G,this.sctp.associationState===4)G.setReadyState("open")}dataChannelOpen(G){if(G.id){if(this.dataChannels[G.id])throw Error(`Data channel with ID ${G.id} already registered`);this.dataChannels[G.id]=G}let X=Mi,Y=0,J=0;if(!G.ordered)X=128;if(G.maxRetransmits)X=1,J=G.maxRetransmits;else if(G.maxPacketLifeTime)X=2,J=G.maxPacketLifeTime;let Z=e1.Pack("!BBHLHH",[pF,X,Y,J,G.label.length,G.protocol.length]),V=Buffer.concat([Buffer.from(Z),Buffer.from(G.label,"utf8"),Buffer.from(G.protocol,"utf8")]);this.dataChannelQueue.push([G,kq,V]),this.dataChannelFlush()}async dataChannelFlush(){if(this.sctp.associationState!=4)return;while(this.dataChannelQueue.length>0){let[G,X,Y]=this.dataChannelQueue.shift(),J=G.id;if(J===void 0){J=this.dataChannelId;while(Object.keys(this.dataChannels).includes(J.toString()))J+=2;this.dataChannels[J]=G,G.setId(J)}if(X===kq)await this.sctp.send(J,X,Y,{ordered:!0});else{let Z=G.maxPacketLifeTime?Date.now()+G.maxPacketLifeTime/1000:void 0;await this.sctp.send(J,X,Y,{expiry:Z,maxRetransmits:G.maxRetransmits,ordered:G.ordered}),G.addBufferedAmount(-Y.length)}}this.dataChannelQueue=[]}assertSendableMessageSize(G){if(this.remoteMaxMessageSize!==0&&G>this.remoteMaxMessageSize)throw Error(`max-message-size exceeded: ${G} > ${this.remoteMaxMessageSize}`)}datachannelSend=(G,X)=>{let Y=Buffer.isBuffer(X)?X:Buffer.from(X),J=qi(X);if(this.assertSendableMessageSize(J),G.addBufferedAmount(J),this.dataChannelQueue.push(typeof X==="string"?[G,cF,Y]:[G,lF,Y]),this.sctp.associationState!==4)xY("sctp not established",this.sctp.associationState);return this.dataChannelFlush(),J};getCapabilities(){return W.getCapabilities(this.maxMessageSize)}static getCapabilities(G=pV){return new Vx(G)}setRemoteMaxMessageSize(G){this.remoteMaxMessageSize=G??pV}setRemotePort(G){this.sctp.setRemotePort(G)}async start(G){if(this.isServer)this.dataChannelId=0;else this.dataChannelId=1;this.sctp.isServer=this.isServer,await this.sctp.start(G)}async stop(){this.dtlsTransport.dataReceiver=()=>{},await this.sctp.stop()}dataChannelClose(G){if(!["closing","closed"].includes(G.readyState))if(G.setReadyState("closing"),this.sctp.associationState===4){if(!this.sctp.reconfigQueue.includes(G.id))this.sctp.reconfigQueue.push(G.id);if(this.sctp.reconfigQueue.length===1)this.sctp.transmitReconfigRequest()}else{if(this.dataChannelQueue=this.dataChannelQueue.filter((X)=>X[0].id!==G.id),this.sctp.reconfigQueue=this.sctp.reconfigQueue.filter((X)=>X!==G.id),G.id)delete this.dataChannels[G.id];G.setReadyState("closed")}}},Vx=class{constructor(W){this.maxMessageSize=W}},Er=class{constructor(W){this.dtls=W}set onData(W){this.dtls.dataReceiver=W}send=(W)=>{return this.dtls.sendData(W)};close(){}},iq=class W{version=0;origin;name="-";time="0 0";host;group=[];extMapAllowMixed=!0;msidSemantic=[];media=[];type;dtlsRole;iceOptions;iceLite;icePassword;iceUsernameFragment;dtlsFingerprints=[];static parse(G){let[X,Y]=$r(G),J=new W;X.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=oF[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 s2({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,M]=OK(w);switch(O){case"candidate":if(!M)throw Error();H.iceCandidates.push(Qx(M));break;case"end-of-candidates":H.iceCandidatesComplete=!0;break;case"extmap":{let[S,v]=M.split(" ");if(S.includes("/"))[S]=S.split("/");H.rtp.headerExtensions.push(new Ai({id:Number.parseInt(S),uri:v}))}break;case"fingerprint":{if(!M)throw Error();let[S,v]=M.split(" ");H.dtlsParams?.fingerprints.push(new mK(S,v))}break;case"ice-options":H.iceOptions=M;break;case"ice-pwd":H.iceParams.password=M;break;case"ice-ufrag":H.iceParams.usernameFragment=M;break;case"ice-lite":H.iceParams.iceLite=!0;break;case"max-message-size":H.sctpCapabilities=new Vx(Number.parseInt(M,10));break;case"mid":H.rtp.muxId=M;break;case"msid":H.msid=M;break;case"rtcp":{let[S,v]=m4(M," ");H.rtcpPort=Number.parseInt(S),H.rtcpHost=KK(v)}break;case"rtcp-mux":H.rtcpMux=!0;break;case"setup":H.dtlsParams.role=oF[M];break;case"recvonly":case"sendonly":case"sendrecv":case"inactive":H.direction=O;break;case"rtpmap":{let[S,v]=m4(M," "),[f,g,c]=v.split("/"),l;if(H.kind==="audio")l=c?Number.parseInt(c):1;let h=new EG({mimeType:H.kind+"/"+f,channels:l,clockRate:Number.parseInt(g),payloadType:Number.parseInt(S)});H.rtp.codecs.push(h)}break;case"sctpmap":{if(!M)throw Error();let[S,v]=m4(M," ");H.sctpMap[Number.parseInt(S)]=v,H.sctpPort=Number.parseInt(S)}break;case"sctp-port":if(!M)throw Error();H.sctpPort=Number.parseInt(M);break;case"ssrc":{let[S,v]=m4(M," "),f=Number.parseInt(S),[g,c]=m4(v,":"),l=H.ssrc.find((h)=>h.ssrc===f);if(!l)l=new eK({ssrc:f}),H.ssrc.push(l);if(b2.includes(g))l[g]=c}break;case"ssrc-group":DK(H.ssrcGroup,M);break;case"rid":{let[S,v]=m4(M," ");H.simulcastParameters.push(new y2({rid:S,direction:v}))}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,M]=OK(w);if(O==="fmtp"){let[S,v]=m4(M," "),f=I(Number(S));f.parameters=v}else if(O==="rtcp-fb"){let[S,v,f]=M.split(" ");H.rtp.codecs.forEach((g)=>{if(["*",g.payloadType.toString()].includes(S))g.rtcpFeedback.push(new zi({type:v,parameter:f}))})}}})}),J}webrtcTrackId(G){if(G.msid?.includes(" ")){let X=G.msid.split(" ");for(let Y of this.msidSemantic)if(Y.semantic==="WMS"&&(Y.items.includes(X[0])||Y.items.includes("*")))return X[1]}return}get string(){let G=[`v=${this.version}`,`o=${this.origin}`,`s=${this.name}`];if(this.host)G.push(`c=${tK(this.host)}`);if(G.push(`t=${this.time}`),this.group.forEach((J)=>G.push(`a=group:${J.str}`)),this.extMapAllowMixed)G.push("a=extmap-allow-mixed");this.msidSemantic.forEach((J)=>G.push(`a=msid-semantic:${J.str}`));let X=this.media.map((J)=>J.toString()).join("");return G.join(`\r
242
+ `)}}T9.CertificateTag="CERTIFICATE";T9.CrlTag="CRL";T9.CertificateRequestTag="CERTIFICATE REQUEST";T9.PublicKeyTag="PUBLIC KEY";T9.PrivateKeyTag="PRIVATE KEY";class C4 extends y6{static isAsnEncoded(W){return x0.isBufferSource(W)||typeof W==="string"}static toArrayBuffer(W){if(typeof W==="string")if(T9.isPem(W))return T9.decode(W)[0];else if(n0.isHex(W))return n0.FromHex(W);else if(n0.isBase64(W))return n0.FromBase64(W);else if(n0.isBase64Url(W))return n0.FromBase64Url(W);else throw TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url");else{let G=x0.toUint8Array(W);if(G.length>0&&G[0]===48)return x0.toArrayBuffer(W);let X=n0.ToBinary(W);if(T9.isPem(X))return T9.decode(X)[0];else if(n0.isHex(X))return n0.FromHex(X);else if(n0.isBase64(X))return n0.FromBase64(X);else if(n0.isBase64Url(X))return n0.FromBase64Url(X);throw TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url")}}constructor(...W){if(C4.isAsnEncoded(W[0]))super(C4.toArrayBuffer(W[0]),W[1]);else super(W[0])}toString(W="pem"){switch(W){case"pem":return T9.encode(this.rawData,this.tag);default:return super.toString(W)}}}class n5 extends C4{static async create(W,G=g8.get()){if(W instanceof n5)return W;else if(x6.isCryptoKey(W)){if(W.type!=="public")throw TypeError("Public key is required");let X=await G.subtle.exportKey("spki",W);return new n5(X)}else if(W.publicKey)return W.publicKey;else if(x0.isBufferSource(W))return new n5(W);else throw TypeError("Unsupported PublicKeyType")}constructor(W){if(C4.isAsnEncoded(W))super(W,O9);else super(W);this.tag=T9.PublicKeyTag}async export(...W){let G,X=["verify"],Y={hash:"SHA-256",...this.algorithm};if(W.length>1)Y=W[0]||Y,X=W[1]||X,G=W[2]||g8.get();else G=W[0]||g8.get();let J=this.rawData,Z=$0.parse(this.rawData,O9);if(Z.algorithm.algorithm===E6)J=wp(Z,J);return G.subtle.importKey("spki",J,Y,!0,X)}onInit(W){let G=q8.resolve(ZG),X=this.algorithm=G.toWebAlgorithm(W.algorithm);switch(W.algorithm.algorithm){case S7:{let Y=$0.parse(W.subjectPublicKey,SZ),J=x0.toUint8Array(Y.modulus);X.publicExponent=x0.toUint8Array(Y.publicExponent),X.modulusLength=(!J[0]?J.slice(1):J).byteLength<<3;break}}}async getThumbprint(...W){var G;let X,Y="SHA-1";if(W.length>=1&&!((G=W[0])===null||G===void 0?void 0:G.subtle))Y=W[0]||Y,X=W[1]||g8.get();else X=W[0]||g8.get();return await X.subtle.digest(Y,this.rawData)}async getKeyIdentifier(...W){let G,X="SHA-1";if(W.length===1)if(typeof W[0]==="string")X=W[0],G=g8.get();else G=W[0];else if(W.length===2)X=W[0],G=W[1];else G=g8.get();let Y=$0.parse(this.rawData,O9);return await G.subtle.digest(X,Y.subjectPublicKey)}toTextObject(){let W=this.toTextObjectEmpty(),G=$0.parse(this.rawData,O9);switch(W.Algorithm=k6.serializeAlgorithm(G.algorithm),G.algorithm.algorithm){case nW:W["EC Point"]=G.subjectPublicKey;break;case S7:default:W["Raw Data"]=G.subjectPublicKey}return W}}function wp(W,G){return W.algorithm=new R0({algorithm:S7,parameters:null}),G=$0.serialize(W),G}class NV extends U5{static async create(W,G=!1,X=g8.get()){if("name"in W&&"serialNumber"in W)return new NV(W,G);let J=await(await n5.create(W,X)).getKeyIdentifier(X);return new NV(n0.ToHex(J),G)}constructor(...W){if(x0.isBufferSource(W[0]))super(W[0]);else if(typeof W[0]==="string"){let G=new H4({keyIdentifier:new vX(n0.FromHex(W[0]))});super(HN,W[1],$0.serialize(G))}else{let G=W[0],X=G.name instanceof _6?$0.parse(G.name.rawData,j8):G.name,Y=new H4({authorityCertIssuer:X,authorityCertSerialNumber:n0.FromHex(G.serialNumber)});super(HN,W[1],$0.serialize(Y))}}onInit(W){super.onInit(W);let G=$0.parse(W.extnValue,H4);if(G.keyIdentifier)this.keyId=n0.ToHex(G.keyIdentifier);if(G.authorityCertIssuer||G.authorityCertSerialNumber)this.certId={name:G.authorityCertIssuer||[],serialNumber:G.authorityCertSerialNumber?n0.ToHex(G.authorityCertSerialNumber):""}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=$0.parse(this.value,H4);if(G.authorityCertIssuer)W["Authority Issuer"]=new _6(G.authorityCertIssuer).toTextObject();if(G.authorityCertSerialNumber)W["Authority Serial Number"]=G.authorityCertSerialNumber;if(G.keyIdentifier)W[""]=G.keyIdentifier;return W}}NV.NAME="Authority Key Identifier";class Zj extends U5{constructor(...W){if(x0.isBufferSource(W[0])){super(W[0]);let G=$0.parse(this.value,gX);this.ca=G.cA,this.pathLength=G.pathLenConstraint}else{let G=new gX({cA:W[0],pathLenConstraint:W[1]});super(AN,W[2],$0.serialize(G));this.ca=W[0],this.pathLength=W[1]}}toTextObject(){let W=this.toTextObjectWithoutValue();if(this.ca)W.CA=this.ca;if(this.pathLength!==void 0)W["Path Length"]=this.pathLength;return W}}Zj.NAME="Basic Constraints";var E3;(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"})(E3||(E3={}));class Vj extends U5{constructor(...W){if(x0.isBufferSource(W[0])){super(W[0]);let G=$0.parse(this.value,WZ);this.usages=G.map((X)=>X)}else{let G=new WZ(W[0]);super(CN,W[1],$0.serialize(G));this.usages=W[0]}}toTextObject(){let W=this.toTextObjectWithoutValue();return W[""]=this.usages.map((G)=>T4.toString(G)).join(", "),W}}Vj.NAME="Extended Key Usages";var $3;(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"})($3||($3={}));class Uj extends U5{constructor(...W){if(x0.isBufferSource(W[0])){super(W[0]);let G=$0.parse(this.value,XZ);this.usages=G.toNumber()}else{let G=new XZ(W[0]);super(TN,W[1],$0.serialize(G));this.usages=W[0]}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=$0.parse(this.value,XZ);return W[""]=G.toJSON().join(", "),W}}Uj.NAME="Key Usages";class Wq extends U5{static async create(W,G=!1,X=g8.get()){let J=await(await n5.create(W,X)).getKeyIdentifier(X);return new Wq(n0.ToHex(J),G)}constructor(...W){if(x0.isBufferSource(W[0])){super(W[0]);let G=$0.parse(this.value,Y5);this.keyId=n0.ToHex(G)}else{let G=typeof W[0]==="string"?n0.FromHex(W[0]):W[0],X=new Y5(G);super(mI,W[1],$0.serialize(X));this.keyId=n0.ToHex(G)}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=$0.parse(this.value,Y5);return W[""]=G,W}}Wq.NAME="Subject Key Identifier";class Qj extends U5{constructor(...W){if(x0.isBufferSource(W[0]))super(W[0]);else super(hI,W[1],new _6(W[0]||[]).rawData)}onInit(W){super.onInit(W);let G=$0.parse(W.extnValue,PN);this.names=new _6(G)}toTextObject(){let W=this.toTextObjectWithoutValue(),G=this.names.toTextObject();for(let X in G)W[X]=G[X];return W}}Qj.NAME="Subject Alternative Name";class n9{static register(W,G){this.items.set(W,G)}static create(W){let G=new U5(W),X=this.items.get(G.type);if(X)return new X(W);return G}}n9.items=new Map;class Nj extends U5{constructor(...W){var G;if(x0.isBufferSource(W[0])){super(W[0]);let X=$0.parse(this.value,aJ);this.policies=X.map((Y)=>Y.policyIdentifier)}else{let X=W[0],Y=(G=W[1])!==null&&G!==void 0?G:!1,J=new aJ(X.map((Z)=>new uX({policyIdentifier:Z})));super(IN,Y,$0.serialize(J));this.policies=X}}toTextObject(){let W=this.toTextObjectWithoutValue();return W.Policy=this.policies.map((G)=>new r1("",{},T4.toString(G))),W}}Nj.NAME="Certificate Policies";n9.register(IN,Nj);class qj extends U5{constructor(...W){var G;if(x0.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 I4({distributionPoint:new z4({fullName:[new V1({uniformResourceIdentifier:Z})]})})}),J=new R6(Y);super(ON,W[1],$0.serialize(J))}else{let X=new R6(W[0]);super(ON,W[1],$0.serialize(X))}(G=this.distributionPoints)!==null&&G!==void 0||(this.distributionPoints=[])}onInit(W){super.onInit(W);let G=$0.parse(W.extnValue,R6);this.distributionPoints=G}toTextObject(){let W=this.toTextObjectWithoutValue();return W["Distribution Point"]=this.distributionPoints.map((G)=>{var X;let Y={};if(G.distributionPoint)Y[""]=(X=G.distributionPoint.fullName)===null||X===void 0?void 0:X.map((J)=>new D4(J).toString()).join(", ");if(G.reasons)Y.Reasons=G.reasons.toString();if(G.cRLIssuer)Y["CRL Issuer"]=G.cRLIssuer.map((J)=>J.toString()).join(", ");return Y}),W}}qj.NAME="CRL Distribution Points";class Hj extends U5{constructor(...W){var G,X,Y,J;if(x0.isBufferSource(W[0]))super(W[0]);else if(W[0]instanceof yW){let Z=new yW(W[0]);super(qN,W[1],$0.serialize(Z))}else{let Z=W[0],V=new yW;sN(V,Z,DI,"ocsp"),sN(V,Z,CI,"caIssuers"),sN(V,Z,TI,"timeStamping"),sN(V,Z,MI,"caRepository");super(qN,W[1],$0.serialize(V))}(G=this.ocsp)!==null&&G!==void 0||(this.ocsp=[]),(X=this.caIssuers)!==null&&X!==void 0||(this.caIssuers=[]),(Y=this.timeStamping)!==null&&Y!==void 0||(this.timeStamping=[]),(J=this.caRepository)!==null&&J!==void 0||(this.caRepository=[])}onInit(W){super.onInit(W),this.ocsp=[],this.caIssuers=[],this.timeStamping=[],this.caRepository=[],$0.parse(W.extnValue,yW).forEach((X)=>{switch(X.accessMethod){case DI:this.ocsp.push(new D4(X.accessLocation));break;case CI:this.caIssuers.push(new D4(X.accessLocation));break;case TI:this.timeStamping.push(new D4(X.accessLocation));break;case MI:this.caRepository.push(new D4(X.accessLocation));break}})}toTextObject(){let W=this.toTextObjectWithoutValue();if(this.ocsp.length)aN(W,"OCSP",this.ocsp);if(this.caIssuers.length)aN(W,"CA Issuers",this.caIssuers);if(this.timeStamping.length)aN(W,"Time Stamping",this.timeStamping);if(this.caRepository.length)aN(W,"CA Repository",this.caRepository);return W}}Hj.NAME="Authority Info Access";function aN(W,G,X){if(X.length===1)W[G]=X[0].toTextObject();else{let Y=new r1("");X.forEach((J,Z)=>{let V=J.toTextObject(),U=`${V[r1.NAME]} ${Z+1}`,Q=Y[U];if(!Array.isArray(Q))Q=[],Y[U]=Q;Q.push(V)}),W[G]=Y}}function sN(W,G,X,Y){let J=G[Y];if(J)(Array.isArray(J)?J:[J]).forEach((V)=>{if(typeof V==="string")V=new D4("url",V);W.push(new M6({accessMethod:X,accessLocation:$0.parse(V.rawData,V1)}))})}class Aj extends U5{constructor(...W){if(x0.isBufferSource(W[0]))super(W[0]);else super(kI,W[1],new _6(W[0]||[]).rawData)}onInit(W){super.onInit(W);let G=$0.parse(W.extnValue,j8);this.names=new _6(G)}toTextObject(){let W=this.toTextObjectWithoutValue(),G=this.names.toTextObject();for(let X in G)W[X]=G[X];return W}}Aj.NAME="Issuer Alternative Name";class AY extends y6{constructor(...W){let G;if(x0.isBufferSource(W[0]))G=x0.toArrayBuffer(W[0]);else{let X=W[0],Y=Array.isArray(W[1])?W[1].map((J)=>x0.toArrayBuffer(J)):[];G=$0.serialize(new K9({type:X,values:Y}))}super(G,K9)}onInit(W){this.type=W.type,this.values=W.values}toTextObject(){let W=this.toTextObjectWithoutValue();return W.Value=this.values.map((G)=>new r1("",{"":G})),W}toTextObjectWithoutValue(){let W=this.toTextObjectEmpty();if(W[r1.NAME]===AY.NAME)W[r1.NAME]=T4.toString(this.type);return W}}AY.NAME="Attribute";class zj extends AY{constructor(...W){var G;if(x0.isBufferSource(W[0]))super(W[0]);else{let X=new uZ({printableString:W[0]});super(lw,[$0.serialize(X)])}(G=this.password)!==null&&G!==void 0||(this.password="")}onInit(W){if(super.onInit(W),this.values[0]){let G=$0.parse(this.values[0],uZ);this.password=G.toString()}}toTextObject(){let W=this.toTextObjectWithoutValue();return W[r1.VALUE]=this.password,W}}zj.NAME="Challenge Password";class Gq extends AY{constructor(...W){var G;if(x0.isBufferSource(W[0]))super(W[0]);else{let X=W[0],Y=new J5;for(let J of X)Y.push($0.parse(J.rawData,D9));super(bZ,[$0.serialize(Y)])}(G=this.items)!==null&&G!==void 0||(this.items=[])}onInit(W){if(super.onInit(W),this.values[0]){let G=$0.parse(this.values[0],J5);this.items=G.map((X)=>n9.create($0.serialize(X)))}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=this.items.map((X)=>X.toTextObject());for(let X of G)W[X[r1.NAME]]=X;return W}}Gq.NAME="Extensions";class HV{static register(W,G){this.items.set(W,G)}static create(W){let G=new AY(W),X=this.items.get(G.type);if(X)return new X(W);return G}}HV.items=new Map;var AV="crypto.signatureFormatter";class h3{toAsnSignature(W,G){return x0.toArrayBuffer(G)}toWebSignature(W,G){return x0.toArrayBuffer(G)}}var eN,Gj=eN=class{static createPssParams(G,X){let Y=eN.getHashAlgorithm(G);if(!Y)return null;return new K4({hashAlgorithm:Y,maskGenAlgorithm:new R0({algorithm:$6,parameters:$0.serialize(Y)}),saltLength:X})}static getHashAlgorithm(G){let X=q8.resolve(ZG);if(typeof G==="string")return X.toAsnAlgorithm({name:G});if(typeof G==="object"&&G&&"name"in G)return X.toAsnAlgorithm(G);return null}toAsnAlgorithm(G){switch(G.name.toLowerCase()){case"rsassa-pkcs1-v1_5":if("hash"in G){let X;if(typeof G.hash==="string")X=G.hash;else if(G.hash&&typeof G.hash==="object"&&"name"in G.hash&&typeof G.hash.name==="string")X=G.hash.name.toUpperCase();else throw Error("Cannot get hash algorithm name");switch(X.toLowerCase()){case"sha-1":return new R0({algorithm:eX,parameters:null});case"sha-256":return new R0({algorithm:hN,parameters:null});case"sha-384":return new R0({algorithm:WY,parameters:null});case"sha-512":return new R0({algorithm:GY,parameters:null})}}else return new R0({algorithm:S7,parameters:null});break;case"rsa-pss":if("hash"in G){if(!(("saltLength"in G)&&typeof G.saltLength==="number"))throw Error("Cannot get 'saltLength' from 'alg' argument");let X=eN.createPssParams(G.hash,G.saltLength);if(!X)throw Error("Cannot create PSS parameters");return new R0({algorithm:E6,parameters:$0.serialize(X)})}else return new R0({algorithm:E6,parameters:null})}return null}toWebAlgorithm(G){switch(G.algorithm){case S7:return{name:"RSASSA-PKCS1-v1_5"};case eX:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-1"}};case hN:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case WY:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}};case GY:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}};case E6:if(G.parameters){let X=$0.parse(G.parameters,K4);return{name:"RSA-PSS",hash:q8.resolve(ZG).toWebAlgorithm(X.hashAlgorithm),saltLength:X.saltLength}}else return{name:"RSA-PSS"}}return null}};Gj=eN=j([S6()],Gj);q8.registerSingleton(qV,Gj);var Xj=class{toAsnAlgorithm(G){switch(G.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(G){switch(G.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}};Xj=j([S6()],Xj);q8.registerSingleton(qV,Xj);class L5{addPadding(W,G){let X=x0.toUint8Array(G),Y=new Uint8Array(W);return Y.set(X,W-X.length),Y.buffer}removePadding(W,G=!1){let X=x0.toUint8Array(W);for(let Y=0;Y<X.length;Y++){if(!X[Y])continue;X=X.slice(Y);break}if(G&&X[0]>127){let Y=new Uint8Array(X.length+1);return Y.set(X,1),Y.buffer}return X.buffer}toAsnSignature(W,G){if(W.name==="ECDSA"){let X=W.namedCurve,Y=L5.namedCurveSize.get(X)||L5.defaultNamedCurveSize,J=new tX,Z=x0.toUint8Array(G);return J.r=this.removePadding(Z.slice(0,Y),!0),J.s=this.removePadding(Z.slice(Y,Y+Y),!0),$0.serialize(J)}return null}toWebSignature(W,G){if(W.name==="ECDSA"){let X=$0.parse(G,tX),Y=W.namedCurve,J=L5.namedCurveSize.get(Y)||L5.defaultNamedCurveSize,Z=this.addPadding(J,this.removePadding(X.r)),V=this.addPadding(J,this.removePadding(X.s));return gM(Z,V)}return null}}L5.namedCurveSize=new Map;L5.defaultNamedCurveSize=32;var ew="1.3.101.110",F3="1.3.101.111",Wj="1.3.101.112",S3="1.3.101.113",Yj=class{toAsnAlgorithm(G){let X=null;switch(G.name.toLowerCase()){case"ed25519":X=Wj;break;case"x25519":X=ew;break;case"eddsa":switch(G.namedCurve.toLowerCase()){case"ed25519":X=Wj;break;case"ed448":X=S3;break}break;case"ecdh-es":switch(G.namedCurve.toLowerCase()){case"x25519":X=ew;break;case"x448":X=F3;break}}if(X)return new R0({algorithm:X});return null}toWebAlgorithm(G){switch(G.algorithm){case Wj:return{name:"Ed25519"};case S3:return{name:"EdDSA",namedCurve:"Ed448"};case ew:return{name:"X25519"};case F3:return{name:"ECDH-ES",namedCurve:"X448"}}return null}};Yj=j([S6()],Yj);q8.registerSingleton(qV,Yj);var pZ,cZ,lZ,dZ,oZ,nZ,iZ,NY;class b3 extends C4{get subjectName(){if(!T1(this,cZ,"f"))w8(this,cZ,new o5(this.asn.certificationRequestInfo.subject),"f");return T1(this,cZ,"f")}get subject(){if(!T1(this,lZ,"f"))w8(this,lZ,this.subjectName.toString(),"f");return T1(this,lZ,"f")}get signatureAlgorithm(){if(!T1(this,dZ,"f")){let W=q8.resolve(ZG);w8(this,dZ,W.toWebAlgorithm(this.asn.signatureAlgorithm),"f")}return T1(this,dZ,"f")}get signature(){if(!T1(this,oZ,"f"))w8(this,oZ,this.asn.signature,"f");return T1(this,oZ,"f")}get publicKey(){if(!T1(this,nZ,"f"))w8(this,nZ,new n5(this.asn.certificationRequestInfo.subjectPKInfo),"f");return T1(this,nZ,"f")}get attributes(){if(!T1(this,iZ,"f"))w8(this,iZ,this.asn.certificationRequestInfo.attributes.map((W)=>HV.create($0.serialize(W))),"f");return T1(this,iZ,"f")}get extensions(){if(!T1(this,NY,"f")){w8(this,NY,[],"f");let W=this.getAttribute(bZ);if(W instanceof Gq)w8(this,NY,W.items,"f")}return T1(this,NY,"f")}get tbs(){if(!T1(this,pZ,"f"))w8(this,pZ,this.asn.certificationRequestInfoRaw||$0.serialize(this.asn.certificationRequestInfo),"f");return T1(this,pZ,"f")}constructor(W){let G=C4.isAsnEncoded(W)?[W,JG]:[W];super(G[0],G[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 G of this.attributes)if(G.type===W)return G;return null}getAttributes(W){return this.attributes.filter((G)=>G.type===W)}getExtension(W){for(let G of this.extensions)if(G.type===W)return G;return null}getExtensions(W){return this.extensions.filter((G)=>G.type===W)}async verify(W=g8.get()){let G={...this.publicKey.algorithm,...this.signatureAlgorithm},X=await this.publicKey.export(G,["verify"],W),Y=q8.resolveAll(AV).reverse(),J=null;for(let V of Y)if(J=V.toWebSignature(G,this.signature),J)break;if(!J)throw Error("Cannot convert WebCrypto signature value to ASN.1 format");return await W.subtle.verify(this.signatureAlgorithm,X,J,this.tbs)}toTextObject(){let W=this.toTextObjectEmpty(),G=$0.parse(this.rawData,JG),X=G.certificationRequestInfo,Y=new r1("",{Version:`${L7[X.version]} (${X.version})`,Subject:this.subject,"Subject Public Key Info":this.publicKey});if(this.attributes.length){let J=new r1("");for(let Z of this.attributes){let V=Z.toTextObject();J[V[r1.NAME]]=V}Y.Attributes=J}return W.Data=Y,W.Signature=new r1("",{Algorithm:k6.serializeAlgorithm(G.signatureAlgorithm),"":G.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;b3.NAME="PKCS#10 Certificate Request";var rZ,aZ,sZ,tZ,eZ,WV,GV,XV,YV,JV,qY,ZV;class Ij extends C4{get publicKey(){if(!T1(this,ZV,"f"))w8(this,ZV,new n5(this.asn.tbsCertificate.subjectPublicKeyInfo),"f");return T1(this,ZV,"f")}get serialNumber(){if(!T1(this,aZ,"f")){let W=this.asn.tbsCertificate,G=new Uint8Array(W.serialNumber);if(G.length>1&&G[0]===0&&G[1]>127)G=G.slice(1);w8(this,aZ,n0.ToHex(G),"f")}return T1(this,aZ,"f")}get subjectName(){if(!T1(this,sZ,"f"))w8(this,sZ,new o5(this.asn.tbsCertificate.subject),"f");return T1(this,sZ,"f")}get subject(){if(!T1(this,tZ,"f"))w8(this,tZ,this.subjectName.toString(),"f");return T1(this,tZ,"f")}get issuerName(){if(!T1(this,eZ,"f"))w8(this,eZ,new o5(this.asn.tbsCertificate.issuer),"f");return T1(this,eZ,"f")}get issuer(){if(!T1(this,WV,"f"))w8(this,WV,this.issuerName.toString(),"f");return T1(this,WV,"f")}get notBefore(){if(!T1(this,GV,"f")){let W=this.asn.tbsCertificate.validity.notBefore.utcTime||this.asn.tbsCertificate.validity.notBefore.generalTime;if(!W)throw Error("Cannot get 'notBefore' value");w8(this,GV,W,"f")}return T1(this,GV,"f")}get notAfter(){if(!T1(this,XV,"f")){let W=this.asn.tbsCertificate.validity.notAfter.utcTime||this.asn.tbsCertificate.validity.notAfter.generalTime;if(!W)throw Error("Cannot get 'notAfter' value");w8(this,XV,W,"f")}return T1(this,XV,"f")}get signatureAlgorithm(){if(!T1(this,YV,"f")){let W=q8.resolve(ZG);w8(this,YV,W.toWebAlgorithm(this.asn.signatureAlgorithm),"f")}return T1(this,YV,"f")}get signature(){if(!T1(this,JV,"f"))w8(this,JV,this.asn.signatureValue,"f");return T1(this,JV,"f")}get extensions(){if(!T1(this,qY,"f")){if(w8(this,qY,[],"f"),this.asn.tbsCertificate.extensions)w8(this,qY,this.asn.tbsCertificate.extensions.map((W)=>n9.create($0.serialize(W))),"f")}return T1(this,qY,"f")}get tbs(){if(!T1(this,rZ,"f"))w8(this,rZ,this.asn.tbsCertificateRaw||$0.serialize(this.asn.tbsCertificate),"f");return T1(this,rZ,"f")}constructor(W){let G=C4.isAsnEncoded(W)?[W,f5]:[W];super(G[0],G[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),GV.set(this,void 0),XV.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 G of this.extensions)if(typeof W==="string"){if(G.type===W)return G}else if(G instanceof W)return G;return null}getExtensions(W){return this.extensions.filter((G)=>{if(typeof W==="string")return G.type===W;else return G instanceof W})}async verify(W={},G=g8.get()){let X,Y,J=W.publicKey;try{if(!J)X={...this.publicKey.algorithm,...this.signatureAlgorithm},Y=await this.publicKey.export(X,["verify"],G);else if("publicKey"in J)X={...J.publicKey.algorithm,...this.signatureAlgorithm},Y=await J.publicKey.export(X,["verify"],G);else if(J instanceof n5)X={...J.algorithm,...this.signatureAlgorithm},Y=await J.export(X,["verify"],G);else if(x0.isBufferSource(J)){let Q=new n5(J);X={...Q.algorithm,...this.signatureAlgorithm},Y=await Q.export(X,["verify"],G)}else X={...J.algorithm,...this.signatureAlgorithm},Y=J}catch{return!1}let Z=q8.resolveAll(AV).reverse(),V=null;for(let Q of Z)if(V=Q.toWebSignature(X,this.signature),V)break;if(!V)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");let U=await G.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 G,X="SHA-1";if(W[0])if(!W[0].subtle)X=W[0]||X,G=W[1];else G=W[0];return G!==null&&G!==void 0||(G=g8.get()),await G.subtle.digest(X,this.rawData)}async isSelfSigned(W=g8.get()){return this.subject===this.issuer&&await this.verify({signatureOnly:!0},W)}toTextObject(){let W=this.toTextObjectEmpty(),G=$0.parse(this.rawData,f5),X=G.tbsCertificate,Y=new r1("",{Version:`${L7[X.version]} (${X.version})`,"Serial Number":X.serialNumber,"Signature Algorithm":k6.serializeAlgorithm(X.signature),Issuer:this.issuer,Validity:new r1("",{"Not Before":X.validity.notBefore.getTime(),"Not After":X.validity.notAfter.getTime()}),Subject:this.subject,"Subject Public Key Info":this.publicKey});if(X.issuerUniqueID)Y["Issuer Unique ID"]=X.issuerUniqueID;if(X.subjectUniqueID)Y["Subject Unique ID"]=X.subjectUniqueID;if(this.extensions.length){let J=new r1("");for(let Z of this.extensions){let V=Z.toTextObject();J[V[r1.NAME]]=V}Y.Extensions=J}return W.Data=Y,W.Signature=new r1("",{Algorithm:k6.serializeAlgorithm(G.signatureAlgorithm),"":G.signatureValue}),W}}rZ=new WeakMap,aZ=new WeakMap,sZ=new WeakMap,tZ=new WeakMap,eZ=new WeakMap,WV=new WeakMap,GV=new WeakMap,XV=new WeakMap,YV=new WeakMap,JV=new WeakMap,qY=new WeakMap,ZV=new WeakMap;Ij.NAME="Certificate";function jp(W,G=g8.get()){let X=x0.toUint8Array(n0.FromHex(W||"")),Y=X&&X.length&&X.some((Z)=>Z>0)?new Uint8Array(X):void 0;if(!Y)Y=G.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,G=g8.get()){if(!W.keys.privateKey)throw Error("Bad field 'keys' in 'params' argument. 'privateKey' is empty");if(!W.keys.publicKey)throw Error("Bad field 'keys' in 'params' argument. 'publicKey' is empty");return this.create({serialNumber:W.serialNumber,subject:W.name,issuer:W.name,notBefore:W.notBefore,notAfter:W.notAfter,publicKey:W.keys.publicKey,signingKey:W.keys.privateKey,signingAlgorithm:W.signingAlgorithm,extensions:W.extensions},G)}static async create(W,G=g8.get()){var X;let Y;if(W.publicKey instanceof n5)Y=W.publicKey.rawData;else if("publicKey"in W.publicKey)Y=W.publicKey.publicKey.rawData;else if(x0.isBufferSource(W.publicKey))Y=W.publicKey;else Y=await G.subtle.exportKey("spki",W.publicKey);let J=jp(W.serialNumber,G),Z=W.notBefore||new Date,V=W.notAfter||new Date(Z.getTime()+31536000000),U=new f5({tbsCertificate:new C9({version:L7.v3,serialNumber:J,validity:new P6({notBefore:Z,notAfter:V}),extensions:new J5(((X=W.extensions)===null||X===void 0?void 0:X.map((O)=>$0.parse(O.rawData,D9)))||[]),subjectPublicKeyInfo:$0.parse(Y,O9)})});if(W.subject){let O=W.subject instanceof o5?W.subject:new o5(W.subject);U.tbsCertificate.subject=$0.parse(O.toArrayBuffer(),Z8)}if(W.issuer){let O=W.issuer instanceof o5?W.issuer:new o5(W.issuer);U.tbsCertificate.issuer=$0.parse(O.toArrayBuffer(),Z8)}let Q={hash:"SHA-256"},N="signingKey"in W?{...Q,...W.signingAlgorithm,...W.signingKey.algorithm}:{...Q,...W.signingAlgorithm},q=q8.resolve(ZG);U.tbsCertificate.signature=U.signatureAlgorithm=q.toAsnAlgorithm(N);let A=$0.serialize(U.tbsCertificate),H="signingKey"in W?await G.subtle.sign(N,W.signingKey,A):W.signature,I=q8.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($0.serialize(U))}}var Kp,Op,Dp,Cp,Tp,x3;(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"})(x3||(x3={}));Kp=new WeakMap,Op=new WeakMap,Dp=new WeakMap,Cp=new WeakMap,Tp=new WeakMap;var Mp,Rp,Pp,Lp,Bp,Ep,$p;Mp=new WeakMap,Rp=new WeakMap,Pp=new WeakMap,Lp=new WeakMap,Bp=new WeakMap,Ep=new WeakMap,$p=new WeakMap;n9.register(AN,Zj);n9.register(CN,Vj);n9.register(TN,Uj);n9.register(mI,Wq);n9.register(HN,NV);n9.register(hI,Qj);n9.register(ON,qj);n9.register(qN,Hj);n9.register(kI,Aj);HV.register(lw,zj);HV.register(bZ,Gq);q8.registerSingleton(AV,h3);q8.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=g1(O8(),1),kS=g1(O8(),1),_S=g1(_Q(),1);import{createHash as nd,createHmac as id}from"crypto";import*as M4 from"crypto";var UG=M4&&typeof M4==="object"&&"webcrypto"in M4?M4.webcrypto:M4&&typeof M4==="object"&&("randomBytes"in M4)?M4:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function QG(W){return W instanceof Uint8Array||ArrayBuffer.isView(W)&&W.constructor.name==="Uint8Array"}function DV(W){if(!Number.isSafeInteger(W)||W<0)throw Error("positive integer expected, got "+W)}function i5(W,...G){if(!QG(W))throw Error("Uint8Array expected");if(G.length>0&&!G.includes(W.length))throw Error("Uint8Array expected of length "+G+", got length="+W.length)}function Nq(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,G=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(G&&W.finished)throw Error("Hash#digest() has already been called")}function OE(W,G){i5(W);let X=G.outputLen;if(W.length<X)throw Error("digestInto() expects output buffer of length at least "+X)}function P4(...W){for(let G=0;G<W.length;G++)W[G].fill(0)}function qq(W){return new DataView(W.buffer,W.byteOffset,W.byteLength)}function r5(W,G){return W<<32-G|W>>>G}var DE=(()=>typeof Uint8Array.from([]).toHex==="function"&&typeof Uint8Array.fromHex==="function")(),Yl=Array.from({length:256},(W,G)=>G.toString(16).padStart(2,"0"));function L4(W){if(i5(W),DE)return W.toHex();let G="";for(let X=0;X<W.length;X++)G+=Yl[W[X]];return G}var R4={_0:48,_9:57,A:65,F:70,a:97,f:102};function KE(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 NG(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);if(DE)return Uint8Array.fromHex(W);let G=W.length,X=G/2;if(G%2)throw Error("hex string expected, got unpadded hex of length "+G);let Y=new Uint8Array(X);for(let J=0,Z=0;J<X;J++,Z+=2){let V=KE(W.charCodeAt(Z)),U=KE(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 Hq(W){if(typeof W!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(W))}function CV(W){if(typeof W==="string")W=Hq(W);return i5(W),W}function r9(...W){let G=0;for(let Y=0;Y<W.length;Y++){let J=W[Y];i5(J),G+=J.length}let X=new Uint8Array(G);for(let Y=0,J=0;Y<W.length;Y++){let Z=W[Y];X.set(Z,J),J+=Z.length}return X}class TV{}function Aq(W){let G=(Y)=>W().update(CV(Y)).digest(),X=W();return G.outputLen=X.outputLen,G.blockLen=X.blockLen,G.create=()=>W(),G}function qG(W=32){if(UG&&typeof UG.getRandomValues==="function")return UG.getRandomValues(new Uint8Array(W));if(UG&&typeof UG.randomBytes==="function")return Uint8Array.from(UG.randomBytes(W));throw Error("crypto.getRandomValues must be defined")}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var $j=BigInt(0),Ej=BigInt(1);function MV(W,G=""){if(typeof W!=="boolean"){let X=G&&`"${G}"`;throw Error(X+"expected boolean, got type="+typeof W)}return W}function m6(W,G,X=""){let Y=QG(W),J=W?.length,Z=G!==void 0;if(!Y||Z&&J!==G){let V=X&&`"${X}" `,U=Z?` of length ${G}`:"",Q=Y?`length=${J}`:`type=${typeof W}`;throw Error(V+"expected Uint8Array"+U+", got "+Q)}return W}function RV(W){let G=W.toString(16);return G.length&1?"0"+G:G}function CE(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return W===""?$j:BigInt("0x"+W)}function B4(W){return CE(L4(W))}function Fj(W){return i5(W),CE(L4(Uint8Array.from(W).reverse()))}function KY(W,G){return NG(W.toString(16).padStart(G*2,"0"))}function Sj(W,G){return KY(W,G).reverse()}function $8(W,G,X){let Y;if(typeof G==="string")try{Y=NG(G)}catch(Z){throw Error(W+" must be hex string or Uint8Array, cause: "+Z)}else if(QG(G))Y=Uint8Array.from(G);else throw Error(W+" must be hex string or Uint8Array");let J=Y.length;if(typeof X==="number"&&J!==X)throw Error(W+" of length "+X+" expected, got "+J);return Y}var Bj=(W)=>typeof W==="bigint"&&$j<=W;function PV(W,G,X){return Bj(W)&&Bj(G)&&Bj(X)&&G<=W&&W<X}function TE(W,G,X,Y){if(!PV(G,X,Y))throw Error("expected valid "+W+": "+X+" <= n < "+Y+", got "+G)}function zq(W){let G;for(G=0;W>$j;W>>=Ej,G+=1);return G}var f6=(W)=>(Ej<<BigInt(W))-Ej;function ME(W,G,X){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof G!=="number"||G<2)throw Error("qByteLen must be a number");if(typeof X!=="function")throw Error("hmacFn must be a function");let Y=(I)=>new Uint8Array(I),J=(I)=>Uint8Array.of(I),Z=Y(W),V=Y(W),U=0,Q=()=>{Z.fill(1),V.fill(0),U=0},N=(...I)=>X(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<G){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,G,X={}){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(G).forEach(([J,Z])=>Y(J,Z,!1)),Object.entries(X).forEach(([J,Z])=>Y(J,Z,!0))}function xj(W){let G=new WeakMap;return(X,...Y)=>{let J=G.get(X);if(J!==void 0)return J;let Z=W(X,...Y);return G.set(X,Z),Z}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var g9=BigInt(0),M9=BigInt(1),HG=BigInt(2),LE=BigInt(3),BE=BigInt(4),EE=BigInt(5),Jl=BigInt(7),$E=BigInt(8),Zl=BigInt(9),FE=BigInt(16);function Q5(W,G){let X=W%G;return X>=g9?X:G+X}function N5(W,G,X){let Y=W;while(G-- >g9)Y*=Y,Y%=X;return Y}function RE(W,G){if(W===g9)throw Error("invert: expected non-zero number");if(G<=g9)throw Error("invert: expected positive modulus, got "+G);let X=Q5(W,G),Y=G,J=g9,Z=M9,V=M9,U=g9;while(X!==g9){let N=Y/X,q=Y%X,A=J-V*N,H=Z-U*N;Y=X,X=q,J=V,Z=U,V=A,U=H}if(Y!==M9)throw Error("invert: does not exist");return Q5(J,G)}function kj(W,G,X){if(!W.eql(W.sqr(G),X))throw Error("Cannot find square root")}function SE(W,G){let X=(W.ORDER+M9)/BE,Y=W.pow(G,X);return kj(W,Y,G),Y}function Vl(W,G){let X=(W.ORDER-EE)/$E,Y=W.mul(G,HG),J=W.pow(Y,X),Z=W.mul(G,J),V=W.mul(W.mul(Z,HG),J),U=W.mul(Z,W.sub(V,W.ONE));return kj(W,U,G),U}function Ul(W){let G=E5(W),X=xE(W),Y=X(G,G.neg(G.ONE)),J=X(G,Y),Z=X(G,G.neg(Y)),V=(W+Jl)/FE;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),M=U.cmov(N,q,O);return kj(U,M,Q),M}}function xE(W){if(W<LE)throw Error("sqrt is not defined for small field");let G=W-M9,X=0;while(G%HG===g9)G/=HG,X++;let Y=HG,J=E5(W);while(PE(J,Y)===1)if(Y++>1000)throw Error("Cannot find square root: probably non-prime P");if(X===1)return SE;let Z=J.pow(Y,G),V=(G+M9)/HG;return function(Q,N){if(Q.is0(N))return N;if(PE(Q,N)!==1)throw Error("Cannot find square root");let q=X,A=Q.mul(Q.ONE,Z),H=Q.pow(N,G),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 M=M9<<BigInt(q-w-1),S=Q.pow(A,M);q=w,A=Q.sqr(S),H=Q.mul(H,A),I=Q.mul(I,S)}return I}}function Ql(W){if(W%BE===LE)return SE;if(W%$E===EE)return Vl;if(W%FE===Zl)return Ul(W);return xE(W)}var Nl=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function _j(W){let G={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},X=Nl.reduce((Y,J)=>{return Y[J]="function",Y},G);return LV(W,X),W}function ql(W,G,X){if(X<g9)throw Error("invalid exponent, negatives unsupported");if(X===g9)return W.ONE;if(X===M9)return G;let Y=W.ONE,J=G;while(X>g9){if(X&M9)Y=W.mul(Y,J);J=W.sqr(J),X>>=M9}return Y}function Iq(W,G,X=!1){let Y=Array(G.length).fill(X?W.ZERO:void 0),J=G.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 G.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 PE(W,G){let X=(W.ORDER-M9)/HG,Y=W.pow(G,X),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 wq(W,G){if(G!==void 0)DV(G);let X=G!==void 0?G:W.toString(2).length,Y=Math.ceil(X/8);return{nBitLength:X,nByteLength:Y}}function E5(W,G,X=!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 G==="object"&&G!=null){if(Y.sqrt||X)throw Error("cannot specify opts in two arguments");let H=G;if(H.BITS)J=H.BITS;if(H.sqrt)Z=H.sqrt;if(typeof H.isLE==="boolean")X=H.isLE;if(typeof H.modFromBytes==="boolean")V=H.modFromBytes;U=H.allowedLengths}else{if(typeof G==="number")J=G;if(Y.sqrt)Z=Y.sqrt}let{nBitLength:Q,nByteLength:N}=wq(W,J);if(N>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let q,A=Object.freeze({ORDER:W,isLE:X,BITS:Q,BYTES:N,MASK:f6(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)=>ql(A,H,I),div:(H,I)=>Q5(H*RE(I,W),W),sqrN:(H)=>H*H,addN:(H,I)=>H+I,subN:(H,I)=>H-I,mulN:(H,I)=>H*I,inv:(H)=>RE(H,W),sqrt:Z||((H)=>{if(!q)q=Ql(W);return q(A,H)}),toBytes:(H)=>X?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,X?0:O.length-H.length),H=O}if(H.length!==N)throw Error("Field.fromBytes: expected "+N+" bytes, got "+H.length);let w=X?Fj(H):B4(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)=>Iq(A,H),cmov:(H,I,w)=>w?I:H});return Object.freeze(A)}function kE(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let G=W.toString(2).length;return Math.ceil(G/8)}function yj(W){let G=kE(W);return G+Math.ceil(G/2)}function jq(W,G,X=!1){let Y=W.length,J=kE(G),Z=yj(G);if(Y<16||Y<Z||Y>1024)throw Error("expected "+Z+"-1024 bytes of input, got "+Y);let V=X?Fj(W):B4(W),U=Q5(V,G-M9)+M9;return X?Sj(U,J):KY(U,J)}function Hl(W,G,X,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(G,X,Y);let J=BigInt(32),Z=BigInt(4294967295),V=Number(X>>J&Z),U=Number(X&Z),Q=Y?4:0,N=Y?0:4;W.setUint32(G+Q,V,Y),W.setUint32(G+N,U,Y)}function _E(W,G,X){return W&G^~W&X}function yE(W,G,X){return W&G^W&X^G&X}class Kq extends TV{constructor(W,G,X,Y){super();this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=W,this.outputLen=G,this.padOffset=X,this.isLE=Y,this.buffer=new Uint8Array(W),this.view=qq(this.buffer)}update(W){jY(this),W=CV(W),i5(W);let{view:G,buffer:X,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=qq(W);for(;Y<=J-Z;Z+=Y)this.process(U,Z);continue}if(X.set(W.subarray(Z,Z+V),this.pos),this.pos+=V,Z+=V,this.pos===Y)this.process(G,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){jY(this),OE(W,this),this.finished=!0;let{buffer:G,view:X,blockLen:Y,isLE:J}=this,{pos:Z}=this;if(G[Z++]=128,P4(this.buffer.subarray(Z)),this.padOffset>Y-Z)this.process(X,0),Z=0;for(let q=Z;q<Y;q++)G[q]=0;Hl(X,Y-8,BigInt(this.length*8),J),this.process(X,0);let V=qq(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:G}=this;this.digestInto(W);let X=W.slice(0,G);return this.destroy(),X}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:G,buffer:X,length:Y,finished:J,destroyed:Z,pos:V}=this;if(W.destroyed=Z,W.finished=J,W.length=Y,W.pos=V,Y%G)W.buffer.set(X);return W}clone(){return this._cloneInto()}}var E4=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var Y9=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),J9=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var Oq=BigInt(4294967295),vE=BigInt(32);function Al(W,G=!1){if(G)return{h:Number(W&Oq),l:Number(W>>vE&Oq)};return{h:Number(W>>vE&Oq)|0,l:Number(W&Oq)|0}}function gE(W,G=!1){let X=W.length,Y=new Uint32Array(X),J=new Uint32Array(X);for(let Z=0;Z<X;Z++){let{h:V,l:U}=Al(W[Z],G);[Y[Z],J[Z]]=[V,U]}return[Y,J]}var vj=(W,G,X)=>W>>>X,gj=(W,G,X)=>W<<32-X|G>>>X,AG=(W,G,X)=>W>>>X|G<<32-X,zG=(W,G,X)=>W<<32-X|G>>>X,BV=(W,G,X)=>W<<64-X|G>>>X-32,EV=(W,G,X)=>W>>>X-32|G<<64-X;function _7(W,G,X,Y){let J=(G>>>0)+(Y>>>0);return{h:W+X+(J/4294967296|0)|0,l:J|0}}var uE=(W,G,X)=>(W>>>0)+(G>>>0)+(X>>>0),hE=(W,G,X,Y)=>G+X+Y+(W/4294967296|0)|0,bE=(W,G,X,Y)=>(W>>>0)+(G>>>0)+(X>>>0)+(Y>>>0),mE=(W,G,X,Y,J)=>G+X+Y+J+(W/4294967296|0)|0,fE=(W,G,X,Y,J)=>(W>>>0)+(G>>>0)+(X>>>0)+(Y>>>0)+(J>>>0),pE=(W,G,X,Y,J,Z)=>G+X+Y+J+Z+(W/4294967296|0)|0;var Il=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]),p6=new Uint32Array(64);class cE extends Kq{constructor(W=32){super(64,W,8,!1);this.A=E4[0]|0,this.B=E4[1]|0,this.C=E4[2]|0,this.D=E4[3]|0,this.E=E4[4]|0,this.F=E4[5]|0,this.G=E4[6]|0,this.H=E4[7]|0}get(){let{A:W,B:G,C:X,D:Y,E:J,F:Z,G:V,H:U}=this;return[W,G,X,Y,J,Z,V,U]}set(W,G,X,Y,J,Z,V,U){this.A=W|0,this.B=G|0,this.C=X|0,this.D=Y|0,this.E=J|0,this.F=Z|0,this.G=V|0,this.H=U|0}process(W,G){for(let q=0;q<16;q++,G+=4)p6[q]=W.getUint32(G,!1);for(let q=16;q<64;q++){let A=p6[q-15],H=p6[q-2],I=r5(A,7)^r5(A,18)^A>>>3,w=r5(H,17)^r5(H,19)^H>>>10;p6[q]=w+p6[q-7]+I+p6[q-16]|0}let{A:X,B:Y,C:J,D:Z,E:V,F:U,G:Q,H:N}=this;for(let q=0;q<64;q++){let A=r5(V,6)^r5(V,11)^r5(V,25),H=N+A+_E(V,U,Q)+Il[q]+p6[q]|0,w=(r5(X,2)^r5(X,13)^r5(X,22))+yE(X,Y,J)|0;N=Q,Q=U,U=V,V=Z+H|0,Z=J,J=Y,Y=X,X=H+w|0}X=X+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(X,Y,J,Z,V,U,Q,N)}roundClean(){P4(p6)}destroy(){this.set(0,0,0,0,0,0,0,0),P4(this.buffer)}}var lE=(()=>gE(["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))))(),wl=(()=>lE[0])(),jl=(()=>lE[1])(),c6=new Uint32Array(80),l6=new Uint32Array(80);class uj extends Kq{constructor(W=64){super(128,W,16,!1);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}get(){let{Ah:W,Al:G,Bh:X,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,G,X,Y,J,Z,V,U,Q,N,q,A,H,I,w,O]}set(W,G,X,Y,J,Z,V,U,Q,N,q,A,H,I,w,O){this.Ah=W|0,this.Al=G|0,this.Bh=X|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,G){for(let v=0;v<16;v++,G+=4)c6[v]=W.getUint32(G),l6[v]=W.getUint32(G+=4);for(let v=16;v<80;v++){let p=c6[v-15]|0,g=l6[v-15]|0,c=AG(p,g,1)^AG(p,g,8)^vj(p,g,7),l=zG(p,g,1)^zG(p,g,8)^gj(p,g,7),h=c6[v-2]|0,e=l6[v-2]|0,m=AG(h,e,19)^BV(h,e,61)^vj(h,e,6),G0=zG(h,e,19)^EV(h,e,61)^gj(h,e,6),H0=bE(l,G0,l6[v-7],l6[v-16]),k=mE(H0,c,m,c6[v-7],c6[v-16]);c6[v]=k|0,l6[v]=H0|0}let{Ah:X,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:M,Hl:S}=this;for(let v=0;v<80;v++){let p=AG(q,A,14)^AG(q,A,18)^BV(q,A,41),g=zG(q,A,14)^zG(q,A,18)^EV(q,A,41),c=q&H^~q&w,l=A&I^~A&O,h=fE(S,g,l,jl[v],l6[v]),e=pE(h,M,p,c,wl[v],c6[v]),m=h|0,G0=AG(X,Y,28)^BV(X,Y,34)^BV(X,Y,39),H0=zG(X,Y,28)^EV(X,Y,34)^EV(X,Y,39),k=X&J^X&V^J&V,i=Y&Z^Y&U^Z&U;M=w|0,S=O|0,w=H|0,O=I|0,H=q|0,I=A|0,{h:q,l:A}=_7(Q|0,N|0,e|0,m|0),Q=V|0,N=U|0,V=J|0,U=Z|0,J=X|0,Z=Y|0;let L=uE(m,H0,i);X=hE(L,e,G0,k),Y=L|0}({h:X,l:Y}=_7(this.Ah|0,this.Al|0,X|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:M,l:S}=_7(this.Hh|0,this.Hl|0,M|0,S|0),this.set(X,Y,J,Z,V,U,Q,N,q,A,H,I,w,O,M,S)}roundClean(){P4(c6,l6)}destroy(){P4(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class dE extends uj{constructor(){super(48);this.Ah=Y9[0]|0,this.Al=Y9[1]|0,this.Bh=Y9[2]|0,this.Bl=Y9[3]|0,this.Ch=Y9[4]|0,this.Cl=Y9[5]|0,this.Dh=Y9[6]|0,this.Dl=Y9[7]|0,this.Eh=Y9[8]|0,this.El=Y9[9]|0,this.Fh=Y9[10]|0,this.Fl=Y9[11]|0,this.Gh=Y9[12]|0,this.Gl=Y9[13]|0,this.Hh=Y9[14]|0,this.Hl=Y9[15]|0}}var OY=Aq(()=>new cE);var oE=Aq(()=>new uj),nE=Aq(()=>new dE);class hj extends TV{constructor(W,G){super();this.finished=!1,this.destroyed=!1,Nq(W);let X=CV(G);if(this.iHash=W.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let Y=this.blockLen,J=new Uint8Array(Y);J.set(X.length>Y?W.create().update(X).digest():X);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),P4(J)}update(W){return jY(this),this.iHash.update(W),this}digestInto(W){jY(this),i5(W,this.outputLen),this.finished=!0,this.iHash.digestInto(W),this.oHash.update(W),this.oHash.digestInto(W),this.destroy()}digest(){let W=new Uint8Array(this.oHash.outputLen);return this.digestInto(W),W}_cloneInto(W){W||(W=Object.create(Object.getPrototypeOf(this),{}));let{oHash:G,iHash:X,finished:Y,destroyed:J,blockLen:Z,outputLen:V}=this;return W=W,W.finished=Y,W.destroyed=J,W.blockLen=Z,W.outputLen=V,W.oHash=G._cloneInto(W.oHash),W.iHash=X._cloneInto(W.iHash),W}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var bj=(W,G,X)=>new hj(W,G).update(X).digest();bj.create=(W,G)=>new hj(W,G);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var DY=BigInt(0),IG=BigInt(1);function $V(W,G){let X=G.negate();return W?X:G}function Dq(W,G){let X=Iq(W.Fp,G.map((Y)=>Y.Z));return G.map((Y,J)=>W.fromAffine(Y.toAffine(X[J])))}function sE(W,G){if(!Number.isSafeInteger(W)||W<=0||W>G)throw Error("invalid window size, expected [1.."+G+"], got W="+W)}function mj(W,G){sE(W,G);let X=Math.ceil(G/W)+1,Y=2**(W-1),J=2**W,Z=f6(W),V=BigInt(W);return{windows:X,windowSize:Y,mask:Z,maxNumber:J,shiftBy:V}}function iE(W,G,X){let{windowSize:Y,mask:J,maxNumber:Z,shiftBy:V}=X,U=Number(W&J),Q=W>>V;if(U>Y)U-=Z,Q+=IG;let N=G*Y,q=N+Math.abs(U)-1,A=U===0,H=U<0,I=G%2!==0;return{nextN:Q,offset:q,isZero:A,isNeg:H,isNegF:I,offsetF:N}}function Kl(W,G){if(!Array.isArray(W))throw Error("array expected");W.forEach((X,Y)=>{if(!(X instanceof G))throw Error("invalid point at index "+Y)})}function Ol(W,G){if(!Array.isArray(W))throw Error("array of scalars expected");W.forEach((X,Y)=>{if(!G.isValid(X))throw Error("invalid scalar at index "+Y)})}var fj=new WeakMap,tE=new WeakMap;function pj(W){return tE.get(W)||1}function rE(W){if(W!==DY)throw Error("invalid wNAF")}class cj{constructor(W,G){this.BASE=W.BASE,this.ZERO=W.ZERO,this.Fn=W.Fn,this.bits=G}_unsafeLadder(W,G,X=this.ZERO){let Y=W;while(G>DY){if(G&IG)X=X.add(Y);Y=Y.double(),G>>=IG}return X}precomputeWindow(W,G){let{windows:X,windowSize:Y}=mj(G,this.bits),J=[],Z=W,V=Z;for(let U=0;U<X;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,G,X){if(!this.Fn.isValid(X))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}=iE(X,V,Z);if(X=U,N)J=J.add($V(A,G[H]));else Y=Y.add($V(q,G[Q]))}return rE(X),{p:Y,f:J}}wNAFUnsafe(W,G,X,Y=this.ZERO){let J=mj(W,this.bits);for(let Z=0;Z<J.windows;Z++){if(X===DY)break;let{nextN:V,offset:U,isZero:Q,isNeg:N}=iE(X,Z,J);if(X=V,Q)continue;else{let q=G[U];Y=Y.add(N?q.negate():q)}}return rE(X),Y}getPrecomputes(W,G,X){let Y=fj.get(G);if(!Y){if(Y=this.precomputeWindow(G,W),W!==1){if(typeof X==="function")Y=X(Y);fj.set(G,Y)}}return Y}cached(W,G,X){let Y=pj(W);return this.wNAF(Y,this.getPrecomputes(Y,W,X),G)}unsafe(W,G,X,Y){let J=pj(W);if(J===1)return this._unsafeLadder(W,G,Y);return this.wNAFUnsafe(J,this.getPrecomputes(J,W,X),G,Y)}createCache(W,G){sE(G,this.bits),tE.set(W,G),fj.delete(W)}hasCache(W){return pj(W)!==1}}function eE(W,G,X,Y){let J=G,Z=W.ZERO,V=W.ZERO;while(X>DY||Y>DY){if(X&IG)Z=Z.add(J);if(Y&IG)V=V.add(J);J=J.double(),X>>=IG,Y>>=IG}return{p1:Z,p2:V}}function W$(W,G,X,Y){Kl(X,W),Ol(Y,G);let J=X.length,Z=Y.length;if(J!==Z)throw Error("arrays of points and scalars must have equal length");let V=W.ZERO,U=zq(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=f6(Q),q=Array(Number(N)+1).fill(V),A=Math.floor((G.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 M=Y[O],S=Number(M>>BigInt(I)&N);q[S]=q[S].add(X[O])}let w=V;for(let O=q.length-1,M=V;O>0;O--)M=M.add(q[O]),w=w.add(M);if(H=H.add(w),I!==0)for(let O=0;O<Q;O++)H=H.double()}return H}function aE(W,G,X){if(G){if(G.ORDER!==W)throw Error("Field.ORDER must match order: Fp == p, Fn == n");return _j(G),G}else return E5(W,{isLE:X})}function G$(W,G,X={},Y){if(Y===void 0)Y=W==="edwards";if(!G||typeof G!=="object")throw Error(`expected valid ${W} CURVE object`);for(let Q of["p","n","h"]){let N=G[Q];if(!(typeof N==="bigint"&&N>DY))throw Error(`CURVE.${Q} must be positive bigint`)}let J=aE(G.p,X.Fp,Y),Z=aE(G.n,X.Fn,Y),U=["Gx","Gy","a",W==="weierstrass"?"b":"d"];for(let Q of U)if(!J.isValid(G[Q]))throw Error(`CURVE.${Q} must be valid field element of CURVE.Fp`);return G=Object.freeze(Object.assign({},G)),{CURVE:G,Fp:J,Fn:Z}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var X$=(W,G)=>(W+(W>=0?G:-G)/J$)/G;function Dl(W,G,X){let[[Y,J],[Z,V]]=G,U=X$(V*W,X),Q=X$(-J*W,X),N=W-U*Y-Q*Z,q=-U*J-Q*V,A=N<F4,H=q<F4;if(A)N=-N;if(H)q=-q;let I=f6(Math.ceil(zq(X)/2))+CY;if(N<F4||N>=I||q<F4||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,G){let X={};for(let Y of Object.keys(G))X[Y]=W[Y]===void 0?G[Y]:W[Y];if(MV(X.lowS,"lowS"),MV(X.prehash,"prehash"),X.format!==void 0)dj(X.format);return X}class Y$ extends Error{constructor(W=""){super(W)}}var $4={Err:Y$,_tlv:{encode:(W,G)=>{let{Err:X}=$4;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length&1)throw new X("tlv.encode: unpadded data");let Y=G.length/2,J=RV(Y);if(J.length/2&128)throw new X("tlv.encode: long form length too big");let Z=Y>127?RV(J.length/2|128):"";return RV(W)+Z+J+G},decode(W,G){let{Err:X}=$4,Y=0;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length<2||G[Y++]!==W)throw new X("tlv.decode: wrong tlv");let J=G[Y++],Z=!!(J&128),V=0;if(!Z)V=J;else{let Q=J&127;if(!Q)throw new X("tlv.decode(long): indefinite length not supported");if(Q>4)throw new X("tlv.decode(long): byte length is too big");let N=G.subarray(Y,Y+Q);if(N.length!==Q)throw new X("tlv.decode: length bytes not complete");if(N[0]===0)throw new X("tlv.decode(long): zero leftmost byte");for(let q of N)V=V<<8|q;if(Y+=Q,V<128)throw new X("tlv.decode(long): not minimal encoding")}let U=G.subarray(Y,Y+V);if(U.length!==V)throw new X("tlv.decode: wrong value length");return{v:U,l:G.subarray(Y+V)}}},_int:{encode(W){let{Err:G}=$4;if(W<F4)throw new G("integer: negative integers are not allowed");let X=RV(W);if(Number.parseInt(X[0],16)&8)X="00"+X;if(X.length&1)throw new G("unexpected DER parsing assertion: unpadded hex");return X},decode(W){let{Err:G}=$4;if(W[0]&128)throw new G("invalid signature integer: negative");if(W[0]===0&&!(W[1]&128))throw new G("invalid signature integer: unnecessary leading zero");return B4(W)}},toSig(W){let{Err:G,_int:X,_tlv:Y}=$4,J=$8("signature",W),{v:Z,l:V}=Y.decode(48,J);if(V.length)throw new G("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 G("invalid signature: left bytes after parsing");return{r:X.decode(U),s:X.decode(N)}},hexFromSig(W){let{_tlv:G,_int:X}=$4,Y=G.encode(2,X.encode(W.r)),J=G.encode(2,X.encode(W.s)),Z=Y+J;return G.encode(48,Z)}},F4=BigInt(0),CY=BigInt(1),J$=BigInt(2),Cq=BigInt(3),Cl=BigInt(4);function d6(W,G){let{BYTES:X}=W,Y;if(typeof G==="bigint")Y=G;else{let J=$8("private key",G);try{Y=W.fromBytes(J)}catch(Z){throw Error(`invalid private key: expected ui8a of size ${X}, got ${typeof G}`)}}if(!W.isValidNot0(Y))throw Error("invalid private key: out of range [1..N-1]");return Y}function Tl(W,G={}){let X=G$("weierstrass",W,G),{Fp:Y,Fn:J}=X,Z=X.CURVE,{h:V,n:U}=Z;LV(G,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:Q}=G;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=V$(Y,J);function q(){if(!Y.isOdd)throw Error("compression is not supported: Field does not have .isOdd()")}function A(k,i,L){let{x:B,y:b}=i.toAffine(),s=Y.toBytes(B);if(MV(L,"isCompressed"),L){q();let o=!Y.isOdd(b);return r9(Z$(o),s)}else return r9(Uint8Array.of(4),s,Y.toBytes(b))}function H(k){m6(k,void 0,"Point");let{publicKey:i,publicKeyUncompressed:L}=N,B=k.length,b=k[0],s=k.subarray(1);if(B===i&&(b===2||b===3)){let o=Y.fromBytes(s);if(!Y.isValid(o))throw Error("bad point: is not on curve, wrong x");let E=O(o),$;try{$=Y.sqrt(E)}catch(R){let u=R instanceof Error?": "+R.message:"";throw Error("bad point: is not on curve, sqrt error"+u)}q();let _=Y.isOdd($);if((b&1)===1!==_)$=Y.neg($);return{x:o,y:$}}else if(B===L&&b===4){let o=Y.BYTES,E=Y.fromBytes(s.subarray(0,o)),$=Y.fromBytes(s.subarray(o,o*2));if(!M(E,$))throw Error("bad point: is not on curve");return{x:E,y:$}}else throw Error(`bad point: got length ${B}, expected compressed=${i} or uncompressed=${L}`)}let I=G.toBytes||A,w=G.fromBytes||H;function O(k){let i=Y.sqr(k),L=Y.mul(i,k);return Y.add(Y.add(L,Y.mul(k,Z.a)),Z.b)}function M(k,i){let L=Y.sqr(i),B=O(k);return Y.eql(L,B)}if(!M(Z.Gx,Z.Gy))throw Error("bad curve params: generator point");let S=Y.mul(Y.pow(Z.a,Cq),Cl),v=Y.mul(Y.sqr(Z.b),BigInt(27));if(Y.is0(Y.add(S,v)))throw Error("bad curve params: a or b");function p(k,i,L=!1){if(!Y.isValid(i)||L&&Y.is0(i))throw Error(`bad point coordinate ${k}`);return i}function g(k){if(!(k instanceof m))throw Error("ProjectivePoint expected")}function c(k){if(!Q||!Q.basises)throw Error("no endo");return Dl(k,Q.basises,J.ORDER)}let l=xj((k,i)=>{let{X:L,Y:B,Z:b}=k;if(Y.eql(b,Y.ONE))return{x:L,y:B};let s=k.is0();if(i==null)i=s?Y.ONE:Y.inv(b);let o=Y.mul(L,i),E=Y.mul(B,i),$=Y.mul(b,i);if(s)return{x:Y.ZERO,y:Y.ZERO};if(!Y.eql($,Y.ONE))throw Error("invZ was invalid");return{x:o,y:E}}),h=xj((k)=>{if(k.is0()){if(G.allowInfinityPoint&&!Y.is0(k.Y))return;throw Error("bad point: ZERO")}let{x:i,y:L}=k.toAffine();if(!Y.isValid(i)||!Y.isValid(L))throw Error("bad point: x or y not field elements");if(!M(i,L))throw Error("bad point: equation left != right");if(!k.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});function e(k,i,L,B,b){return L=new m(Y.mul(L.X,k),L.Y,L.Z),i=$V(B,i),L=$V(b,L),i.add(L)}class m{constructor(k,i,L){this.X=p("x",k),this.Y=p("y",i,!0),this.Z=p("z",L),Object.freeze(this)}static CURVE(){return Z}static fromAffine(k){let{x:i,y:L}=k||{};if(!k||!Y.isValid(i)||!Y.isValid(L))throw Error("invalid affine point");if(k instanceof m)throw Error("projective point not allowed");if(Y.is0(i)&&Y.is0(L))return m.ZERO;return new m(i,L,Y.ONE)}static fromBytes(k){let i=m.fromAffine(w(m6(k,void 0,"point")));return i.assertValidity(),i}static fromHex(k){return m.fromBytes($8("pointHex",k))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(k=8,i=!0){if(H0.createCache(this,k),!i)this.multiply(Cq);return this}assertValidity(){h(this)}hasEvenY(){let{y:k}=this.toAffine();if(!Y.isOdd)throw Error("Field doesn't support isOdd");return!Y.isOdd(k)}equals(k){g(k);let{X:i,Y:L,Z:B}=this,{X:b,Y:s,Z:o}=k,E=Y.eql(Y.mul(i,o),Y.mul(b,B)),$=Y.eql(Y.mul(L,o),Y.mul(s,B));return E&&$}negate(){return new m(this.X,Y.neg(this.Y),this.Z)}double(){let{a:k,b:i}=Z,L=Y.mul(i,Cq),{X:B,Y:b,Z:s}=this,o=Y.ZERO,E=Y.ZERO,$=Y.ZERO,_=Y.mul(B,B),x=Y.mul(b,b),R=Y.mul(s,s),u=Y.mul(B,b);return u=Y.add(u,u),$=Y.mul(B,s),$=Y.add($,$),o=Y.mul(k,$),E=Y.mul(L,R),E=Y.add(o,E),o=Y.sub(x,E),E=Y.add(x,E),E=Y.mul(o,E),o=Y.mul(u,o),$=Y.mul(L,$),R=Y.mul(k,R),u=Y.sub(_,R),u=Y.mul(k,u),u=Y.add(u,$),$=Y.add(_,_),_=Y.add($,_),_=Y.add(_,R),_=Y.mul(_,u),E=Y.add(E,_),R=Y.mul(b,s),R=Y.add(R,R),_=Y.mul(R,u),o=Y.sub(o,_),$=Y.mul(R,x),$=Y.add($,$),$=Y.add($,$),new m(o,E,$)}add(k){g(k);let{X:i,Y:L,Z:B}=this,{X:b,Y:s,Z:o}=k,E=Y.ZERO,$=Y.ZERO,_=Y.ZERO,x=Z.a,R=Y.mul(Z.b,Cq),u=Y.mul(i,b),J0=Y.mul(L,s),V0=Y.mul(B,o),Q0=Y.add(i,L),B0=Y.add(b,s);Q0=Y.mul(Q0,B0),B0=Y.add(u,J0),Q0=Y.sub(Q0,B0),B0=Y.add(i,B);let v0=Y.add(b,o);return B0=Y.mul(B0,v0),v0=Y.add(u,V0),B0=Y.sub(B0,v0),v0=Y.add(L,B),E=Y.add(s,o),v0=Y.mul(v0,E),E=Y.add(J0,V0),v0=Y.sub(v0,E),_=Y.mul(x,B0),E=Y.mul(R,V0),_=Y.add(E,_),E=Y.sub(J0,_),_=Y.add(J0,_),$=Y.mul(E,_),J0=Y.add(u,u),J0=Y.add(J0,u),V0=Y.mul(x,V0),B0=Y.mul(R,B0),J0=Y.add(J0,V0),V0=Y.sub(u,V0),V0=Y.mul(x,V0),B0=Y.add(B0,V0),u=Y.mul(J0,B0),$=Y.add($,u),u=Y.mul(v0,B0),E=Y.mul(Q0,E),E=Y.sub(E,u),u=Y.mul(Q0,J0),_=Y.mul(v0,_),_=Y.add(_,u),new m(E,$,_)}subtract(k){return this.add(k.negate())}is0(){return this.equals(m.ZERO)}multiply(k){let{endo:i}=G;if(!J.isValidNot0(k))throw Error("invalid scalar: out of range");let L,B,b=(s)=>H0.cached(this,s,(o)=>Dq(m,o));if(i){let{k1neg:s,k1:o,k2neg:E,k2:$}=c(k),{p:_,f:x}=b(o),{p:R,f:u}=b($);B=x.add(u),L=e(i.beta,_,R,s,E)}else{let{p:s,f:o}=b(k);L=s,B=o}return Dq(m,[L,B])[0]}multiplyUnsafe(k){let{endo:i}=G,L=this;if(!J.isValid(k))throw Error("invalid scalar: out of range");if(k===F4||L.is0())return m.ZERO;if(k===CY)return L;if(H0.hasCache(this))return this.multiply(k);if(i){let{k1neg:B,k1:b,k2neg:s,k2:o}=c(k),{p1:E,p2:$}=eE(m,L,b,o);return e(i.beta,E,$,B,s)}else return H0.unsafe(L,k)}multiplyAndAddUnsafe(k,i,L){let B=this.multiplyUnsafe(i).add(k.multiplyUnsafe(L));return B.is0()?void 0:B}toAffine(k){return l(this,k)}isTorsionFree(){let{isTorsionFree:k}=G;if(V===CY)return!0;if(k)return k(m,this);return H0.unsafe(this,U).is0()}clearCofactor(){let{clearCofactor:k}=G;if(V===CY)return this;if(k)return k(m,this);return this.multiplyUnsafe(V)}isSmallOrder(){return this.multiplyUnsafe(V).is0()}toBytes(k=!0){return MV(k,"isCompressed"),this.assertValidity(),I(m,this,k)}toHex(k=!0){return L4(this.toBytes(k))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(k=!0){return this.toBytes(k)}_setWindowSize(k){this.precompute(k)}static normalizeZ(k){return Dq(m,k)}static msm(k,i){return W$(m,J,k,i)}static fromPrivateKey(k){return m.BASE.multiply(d6(J,k))}}m.BASE=new m(Z.Gx,Z.Gy,Y.ONE),m.ZERO=new m(Y.ZERO,Y.ONE,Y.ZERO),m.Fp=Y,m.Fn=J;let G0=J.BITS,H0=new cj(m,G.endo?Math.ceil(G0/2):G0);return m.BASE.precompute(8),m}function Z$(W){return Uint8Array.of(W?2:3)}function V$(W,G){return{secretKey:G.BYTES,publicKey:1+W.BYTES,publicKeyUncompressed:1+2*W.BYTES,publicKeyHasPrefix:!0,signature:2*G.BYTES}}function Ml(W,G={}){let{Fn:X}=W,Y=G.randomBytes||qG,J=Object.assign(V$(W.Fp,X),{seed:yj(X.ORDER)});function Z(I){try{return!!d6(X,I)}catch(w){return!1}}function V(I,w){let{publicKey:O,publicKeyUncompressed:M}=J;try{let S=I.length;if(w===!0&&S!==O)return!1;if(w===!1&&S!==M)return!1;return!!W.fromBytes(I)}catch(S){return!1}}function U(I=Y(J.seed)){return jq(m6(I,J.seed,"seed"),X.ORDER)}function Q(I,w=!0){return W.BASE.multiply(d6(X,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:M}=J;if(X.allowedLengths||w===O)return;let S=$8("key",I).length;return S===O||S===M}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 M=d6(X,I);return W.fromHex(w).multiply(M).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)=>d6(X,I),precompute(I=8,w=W.BASE){return w.precompute(I,!1)}},lengths:J})}function Rl(W,G,X={}){Nq(G),LV(X,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let Y=X.randomBytes||qG,J=X.hmac||((L,...B)=>bj(G,L,r9(...B))),{Fp:Z,Fn:V}=W,{ORDER:U,BITS:Q}=V,{keygen:N,getPublicKey:q,getSharedSecret:A,utils:H,lengths:I}=Ml(W,X),w={prehash:!1,lowS:typeof X.lowS==="boolean"?X.lowS:!1,format:void 0,extraEntropy:!1},O="compact";function M(L){let B=U>>CY;return L>B}function S(L,B){if(!V.isValidNot0(B))throw Error(`invalid signature ${L}: out of range 1..Point.Fn.ORDER`);return B}function v(L,B){dj(B);let b=I.signature,s=B==="compact"?b:B==="recovered"?b+1:void 0;return m6(L,s,`${B} signature`)}class p{constructor(L,B,b){if(this.r=S("r",L),this.s=S("s",B),b!=null)this.recovery=b;Object.freeze(this)}static fromBytes(L,B=O){v(L,B);let b;if(B==="der"){let{r:$,s:_}=$4.toSig(m6(L));return new p($,_)}if(B==="recovered")b=L[0],B="compact",L=L.subarray(1);let s=V.BYTES,o=L.subarray(0,s),E=L.subarray(s,s*2);return new p(V.fromBytes(o),V.fromBytes(E),b)}static fromHex(L,B){return this.fromBytes(NG(L),B)}addRecoveryBit(L){return new p(this.r,this.s,L)}recoverPublicKey(L){let B=Z.ORDER,{r:b,s,recovery:o}=this;if(o==null||![0,1,2,3].includes(o))throw Error("recovery id invalid");if(U*J$<B&&o>1)throw Error("recovery id is ambiguous for h>1 curve");let $=o===2||o===3?b+U:b;if(!Z.isValid($))throw Error("recovery id 2 or 3 invalid");let _=Z.toBytes($),x=W.fromBytes(r9(Z$((o&1)===0),_)),R=V.inv($),u=c($8("msgHash",L)),J0=V.create(-u*R),V0=V.create(s*R),Q0=W.BASE.multiplyUnsafe(J0).add(x.multiplyUnsafe(V0));if(Q0.is0())throw Error("point at infinify");return Q0.assertValidity(),Q0}hasHighS(){return M(this.s)}toBytes(L=O){if(dj(L),L==="der")return NG($4.hexFromSig(this));let B=V.toBytes(this.r),b=V.toBytes(this.s);if(L==="recovered"){if(this.recovery==null)throw Error("recovery bit must be present");return r9(Uint8Array.of(this.recovery),B,b)}return r9(B,b)}toHex(L){return L4(this.toBytes(L))}assertValidity(){}static fromCompact(L){return p.fromBytes($8("sig",L),"compact")}static fromDER(L){return p.fromBytes($8("sig",L),"der")}normalizeS(){return this.hasHighS()?new p(this.r,V.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return L4(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return L4(this.toBytes("compact"))}}let g=X.bits2int||function(B){if(B.length>8192)throw Error("input is too large");let b=B4(B),s=B.length*8-Q;return s>0?b>>BigInt(s):b},c=X.bits2int_modN||function(B){return V.create(g(B))},l=f6(Q);function h(L){return TE("num < 2^"+Q,L,F4,l),V.toBytes(L)}function e(L,B){return m6(L,void 0,"message"),B?m6(G(L),void 0,"prehashed message"):L}function m(L,B,b){if(["recovered","canonical"].some((V0)=>(V0 in b)))throw Error("sign() legacy options not supported");let{lowS:s,prehash:o,extraEntropy:E}=lj(b,w);L=e(L,o);let $=c(L),_=d6(V,B),x=[h(_),h($)];if(E!=null&&E!==!1){let V0=E===!0?Y(I.secretKey):E;x.push($8("extraEntropy",V0))}let R=r9(...x),u=$;function J0(V0){let Q0=g(V0);if(!V.isValidNot0(Q0))return;let B0=V.inv(Q0),v0=W.BASE.multiply(Q0).toAffine(),N1=V.create(v0.x);if(N1===F4)return;let u1=V.create(B0*V.create(u+N1*_));if(u1===F4)return;let k0=(v0.x===N1?0:2)|Number(v0.y&CY),h1=u1;if(s&&M(u1))h1=V.neg(u1),k0^=1;return new p(N1,h1,k0)}return{seed:R,k2sig:J0}}function G0(L,B,b={}){L=$8("message",L);let{seed:s,k2sig:o}=m(L,B,b);return ME(G.outputLen,V.BYTES,J)(s,o)}function H0(L){let B=void 0,b=typeof L==="string"||QG(L),s=!b&&L!==null&&typeof L==="object"&&typeof L.r==="bigint"&&typeof L.s==="bigint";if(!b&&!s)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(s)B=new p(L.r,L.s);else if(b){try{B=p.fromBytes($8("sig",L),"der")}catch(o){if(!(o instanceof $4.Err))throw o}if(!B)try{B=p.fromBytes($8("sig",L),"compact")}catch(o){return!1}}if(!B)return!1;return B}function k(L,B,b,s={}){let{lowS:o,prehash:E,format:$}=lj(s,w);if(b=$8("publicKey",b),B=e($8("message",B),E),"strict"in s)throw Error("options.strict was renamed to lowS");let _=$===void 0?H0(L):p.fromBytes($8("sig",L),$);if(_===!1)return!1;try{let x=W.fromBytes(b);if(o&&_.hasHighS())return!1;let{r:R,s:u}=_,J0=c(B),V0=V.inv(u),Q0=V.create(J0*V0),B0=V.create(R*V0),v0=W.BASE.multiplyUnsafe(Q0).add(x.multiplyUnsafe(B0));if(v0.is0())return!1;return V.create(v0.x)===R}catch(x){return!1}}function i(L,B,b={}){let{prehash:s}=lj(b,w);return B=e(B,s),p.fromBytes(L,"recovered").recoverPublicKey(B).toBytes()}return Object.freeze({keygen:N,getPublicKey:q,getSharedSecret:A,utils:H,lengths:I,Point:W,sign:G0,verify:k,recoverPublicKey:i,Signature:p,hash:G})}function Pl(W){let G={a:W.a,b:W.b,p:W.Fp.ORDER,n:W.n,h:W.h,Gx:W.Gx,Gy:W.Gy},X=W.Fp,Y=W.allowedPrivateKeyLengths?Array.from(new Set(W.allowedPrivateKeyLengths.map((V)=>Math.ceil(V/2)))):void 0,J=E5(G.n,{BITS:W.nBitLength,allowedLengths:Y,modFromBytes:W.wrapPrivateKey}),Z={Fp:X,Fn:J,allowInfinityPoint:W.allowInfinityPoint,endo:W.endo,isTorsionFree:W.isTorsionFree,clearCofactor:W.clearCofactor,fromBytes:W.fromBytes,toBytes:W.toBytes};return{CURVE:G,curveOpts:Z}}function Ll(W){let{CURVE:G,curveOpts:X}=Pl(W),Y={hmac:W.hmac,randomBytes:W.randomBytes,lowS:W.lowS,bits2int:W.bits2int,bits2int_modN:W.bits2int_modN};return{CURVE:G,curveOpts:X,hash:W.hash,ecdsaOpts:Y}}function Bl(W,G){let X=G.Point;return Object.assign({},G,{ProjectivePoint:X,CURVE:Object.assign({},W,wq(X.Fn.ORDER,X.Fn.BITS))})}function U$(W){let{CURVE:G,curveOpts:X,hash:Y,ecdsaOpts:J}=Ll(W),Z=Tl(G,X),V=Rl(Z,Y,J);return Bl(W,V)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function TY(W,G){let X=(Y)=>U$({...W,hash:Y});return{...X(G),create:X}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Q$={p:BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),h:BigInt(1),a:BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5")},N$={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff"),n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),h:BigInt(1),a:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc"),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f")},q$={p:BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),h:BigInt(1),a:BigInt("0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650")},El=E5(Q$.p),$l=E5(N$.p),Fl=E5(q$.p);var H$=TY({...Q$,Fp:El,lowS:!1},OY);var yq0=TY({...N$,Fp:$l,lowS:!1},nE);var vq0=TY({...q$,Fp:Fl,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},oE);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Tq=H$;var V9=g1(O8(),1),Y7=g1(O8(),1),mS=g1(O8(),1),CG=g1(O8(),1),p4=g1(O8(),1),oS=g1(_Q(),1),MG=g1(O8(),1),i6=g1(O8(),1),RG=g1(O8(),1),cY=g1(O8(),1),r6=g1(O8(),1),PG=g1(O8(),1),J7=g1(O8(),1),Z7=g1(O8(),1),wH=g1(O8(),1),X7=g1(O8(),1),W2=g1(O8(),1),Fo=g1(w$(),1);import{randomBytes as qo}from"crypto";import{setTimeout as Ho}from"timers/promises";import{createCipheriv as Mo,createDecipheriv as Ro}from"crypto";var uq=g1(K$(),1),LG=g1(O8(),1),OG=g1(O8(),1),d7=g1(O8(),1),c7=g1(O8(),1),BG=g1(O8(),1);import{createHmac as VK}from"crypto";import{createCipheriv as JF,createDecipheriv as ZF,createHmac as VF,timingSafeEqual as Zn}from"crypto";import{createCipheriv as qF,createDecipheriv as HF}from"crypto";import{setTimeout as wn}from"timers/promises";import{randomBytes as Cn}from"crypto";import{createHmac as C2}from"crypto";import{randomBytes as T2}from"crypto";var Lq="undefined",BY=Lq!==typeof Buffer&&Buffer,LY=Lq!==typeof Uint8Array&&Uint8Array,Pq=Lq!==typeof ArrayBuffer&&ArrayBuffer,O$=[0,0,0,0,0,0,0,0],kl=Array.isArray||ml,PY=4294967296,_l=16777216,EY,Bq=C$("Uint64BE",!0,!0),ij=C$("Int64BE",!0,!1);function C$(W,G,X){var Y=G?0:4,J=G?4:0,Z=G?0:3,V=G?1:2,U=G?2:1,Q=G?3:0,N=G?gl:hl,q=G?ul:bl,A=w.prototype,H="is"+W,I="_"+H;if(A.buffer=void 0,A.offset=0,A[I]=!0,A.toNumber=v,A.toString=p,A.toJSON=v,A.toArray=yl,BY)A.toBuffer=vl;if(LY)A.toArrayBuffer=T$;return w[H]=O,w;function w(l,h,e,m){if(!(this instanceof w))return new w(l,h,e,m);return M(this,l,h,e,m)}function O(l){return!!(l&&l[I])}function M(l,h,e,m,G0){if(LY&&Pq){if(h instanceof Pq)h=new LY(h);if(m instanceof Pq)m=new LY(m)}if(!h&&!e&&!m&&!EY){l.buffer=M$(O$,0);return}if(!D$(h,e)){var H0=EY||Array;G0=e,m=h,e=0,h=EY===BY?BY.alloc(8):new H0(8)}if(l.buffer=h,l.offset=e|=0,Lq===typeof m)return;if(typeof m==="string")S(h,e,m,G0||10);else if(D$(m,G0))nj(h,e,m,G0);else if(typeof G0==="number")g(h,e+Y,m),g(h,e+J,G0);else if(m>0)N(h,e,m);else if(m<0)q(h,e,m);else nj(h,e,O$,0)}function S(l,h,e,m){var G0=0,H0=e.length,k=0,i=0;if(e[0]==="-")G0++;var L=G0;while(G0<H0){var B=parseInt(e[G0++],m);if(!(B>=0))break;i=i*m+B,k=k*m+Math.floor(i/PY),i%=PY}if(L)if(k=~k,i)i=PY-i;else k++;g(l,h+Y,k),g(l,h+J,i)}function v(){var l=this.buffer,h=this.offset,e=c(l,h+Y),m=c(l,h+J);if(!X)e|=0;return e?e*PY+m:m}function p(l){var h=this.buffer,e=this.offset,m=c(h,e+Y),G0=c(h,e+J),H0="",k=!X&&m&2147483648;if(k)m=~m,G0=PY-G0;l=l||10;while(!0){var i=m%l*PY+G0;if(m=Math.floor(m/l),G0=Math.floor(i/l),H0=(i%l).toString(l)+H0,!m&&!G0)break}if(k)H0="-"+H0;return H0}function g(l,h,e){l[h+Q]=e&255,e=e>>8,l[h+U]=e&255,e=e>>8,l[h+V]=e&255,e=e>>8,l[h+Z]=e&255}function c(l,h){return l[h+Z]*_l+(l[h+V]<<16)+(l[h+U]<<8)+l[h+Q]}}function yl(W){var G=this.buffer,X=this.offset;if(EY=null,W!==!1&&kl(G))return G.length===8?G:G.slice(X,X+8);return M$(G,X)}function vl(W){var G=this.buffer,X=this.offset;if(EY=BY,W!==!1&&BY.isBuffer(G))return G.length===8?G:G.slice(X,X+8);return BY.from(T$.call(this,W))}function T$(W){var G=this.buffer,X=this.offset,Y=G.buffer;if(EY=LY,W!==!1&&!G.offset&&Y instanceof Pq)return Y.byteLength===8?Y:Y.slice(X,X+8);var J=new LY(8);return nj(J,0,G,X),J.buffer}function D$(W,G){var X=W&&W.length;return G|=0,X&&G+8<=X&&typeof W[G]!=="string"}function nj(W,G,X,Y){G|=0,Y|=0;for(var J=0;J<8;J++)W[G++]=X[Y++]&255}function M$(W,G){return Array.prototype.slice.call(W,G,G+8)}function gl(W,G,X){var Y=G+8;while(Y>G)W[--Y]=X&255,X/=256}function ul(W,G,X){var Y=G+8;X++;while(Y>G)W[--Y]=-X&255^255,X/=256}function hl(W,G,X){var Y=G+8;while(G<Y)W[G++]=X&255,X/=256}function bl(W,G,X){var Y=G+8;X++;while(G<Y)W[G++]=-X&255^255,X/=256}function ml(W){return!!W&&Object.prototype.toString.call(W)=="[object Array]"}var sV=g1(aj(),1);import{createHash as hn}from"crypto";import{setTimeout as bn}from"timers/promises";import{createHash as nn}from"crypto";import{isIPv4 as xF}from"net";import{randomBytes as rn}from"crypto";import{isIPv4 as kF}from"net";var fq=g1(L$(),1),F2=g1(m$(),1),x2=g1(aj(),1);import*as vK from"timers/promises";import{randomUUID as sn}from"crypto";import*as S2 from"os";import{EventEmitter as Qi}from"events";import{randomUUID as Di}from"crypto";import{setTimeout as wK}from"timers/promises";import{createHash as Ci}from"crypto";import{performance as xq}from"perf_hooks";import{randomUUID as Ti}from"crypto";import{randomUUID as c2}from"crypto";import{setTimeout as ci}from"timers/promises";import{randomBytes as ni}from"crypto";import{isIPv4 as ii}from"net";var tV=g1(uz(),1);import{randomUUID as ri}from"crypto";import{setTimeout as ai}from"timers/promises";import{randomUUID as Gr}from"crypto";import{randomUUID as Vr}from"crypto";import{createHmac as tF,randomBytes as Ur}from"crypto";import{randomBytes as qS}from"crypto";import{randomUUID as HS}from"crypto";import{setTimeout as AS}from"timers/promises";import{randomUUID as vr}from"crypto";function KS(){return W8.Unpack("!H",jS(2))[0]}function TK(){return W8.Unpack("!L",jS(4))[0]}var rq=class{constructor(W){this.bitLength=W}value=0;set(W,G,X){return X&=(1<<W)-1,this.value|=X<<this.bitLength-W-G,this}get buffer(){let W=Math.ceil(this.bitLength/8),G=Buffer.alloc(W);return G.writeUIntBE(this.value,0,W),G}},OS=class{constructor(W){if(this.bitLength=W,W>32)throw Error()}_value=0n;offset=0n;set(W,G=1){let X=BigInt(W),Y=BigInt(G);return X&=(1n<<Y)-1n,this._value|=X<<BigInt(this.bitLength)-Y-this.offset,this.offset+=Y,this}get value(){return Number(this._value)}get buffer(){let W=Math.ceil(this.bitLength/8),G=Buffer.alloc(W);return G.writeUIntBE(this.value,0,W),G}};function h8(W,G,X=1){let Y=W.toString(2).split("");Y=[...Array(8-Y.length).fill("0"),...Y];let J=Y.slice(G,G+X).join("");return Number.parseInt(J,2)}function F8(W,G){return vq(W)(G)}function vq(W,G){let X=W.reduce((J,Z)=>J+Z,0),Y=G?Buffer.alloc(X):void 0;return(J)=>{let Z=Y||Buffer.alloc(X),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,G){let X=0;return G.map((Y)=>{let J;if(Y===8)J=W.readBigUInt64BE(X);else J=W.readUIntBE(X,Y);return X+=Y,J})}var cV=class{constructor(W){this.uint8Array=W}position=0;bitsPending=0;writeBits(W,G){if(W==0)return this;G&=4294967295>>>32-W;let X;if(this.bitsPending>0)if(this.bitsPending>W)this.uint8Array[this.position-1]|=G<<this.bitsPending-W,X=W,this.bitsPending-=W;else if(this.bitsPending==W)this.uint8Array[this.position-1]|=G,X=W,this.bitsPending=0;else this.uint8Array[this.position-1]|=G>>W-this.bitsPending,X=this.bitsPending,this.bitsPending=0;else X=Math.min(8,W),this.bitsPending=8-X,this.uint8Array[this.position++]=G>>W-X<<this.bitsPending;if(W-=X,W>0)this.writeBits(W,G);return this}readBits(W){return this._readBits(W)}_readBits(W,G){if(typeof G>"u")G=0;if(W==0)return G;let X,Y;if(this.bitsPending>0){let J=this.uint8Array[this.position-1]&255>>8-this.bitsPending;Y=Math.min(this.bitsPending,W),this.bitsPending-=Y,X=J>>this.bitsPending}else Y=Math.min(8,W),this.bitsPending=8-Y,X=this.uint8Array[this.position++]>>this.bitsPending;return W-=Y,G=G<<Y|X,W>0?this._readBits(W,G):G}seekTo(W){if(this.position=W/8|0,this.bitsPending=W%8,this.bitsPending>0)this.bitsPending=8-this.bitsPending,this.position++}},Fd=3988292384,Sd=2197175160;function DS(W){return typeof W!=="string"}function CS(W){let G=Array(256),X=0;for(let Y=0;Y<256;++Y)X=Y,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,G[Y]=X;return new Int32Array(G)}function TS(W){let G=new Int32Array(4096),X=0,Y=0,J=0;for(J=0;J<256;++J)G[J]=W[J];for(J=0;J<256;++J){Y=W[J];for(X=256+J;X<4096;X+=256)Y=G[X]=Y>>>8^W[Y&255]}let Z=[];for(J=1;J<16;++J)Z[J-1]=G.subarray(J*256,J*256+256);return Z}function MS(W,G,X){let Y=G^-1,J=0,Z=W.length,V=0,U=0;while(J<Z)if(V=W.charCodeAt(J++),V<128)Y=Y>>>8^X[(Y^V)&255];else if(V<2048)Y=Y>>>8^X[(Y^(192|V>>6&31))&255],Y=Y>>>8^X[(Y^(128|V&63))&255];else if(V>=55296&&V<57344)V=(V&1023)+64,U=W.charCodeAt(J++)&1023,Y=Y>>>8^X[(Y^(240|V>>8&7))&255],Y=Y>>>8^X[(Y^(128|V>>2&63))&255],Y=Y>>>8^X[(Y^(128|U>>6&15|(V&3)<<4))&255],Y=Y>>>8^X[(Y^(128|U&63))&255];else Y=Y>>>8^X[(Y^(224|V>>12&15))&255],Y=Y>>>8^X[(Y^(128|V>>6&63))&255],Y=Y>>>8^X[(Y^(128|V&63))&255];return~Y>>>0}function RS(W,G,X,Y){let[J,Z,V,U,Q,N,q,A,H,I,w,O,M,S,v]=Y,p=G^-1,g=0,c=W.length-15;while(g<c)p=v[W[g++]^p&255]^S[W[g++]^p>>>8&255]^M[W[g++]^p>>>16&255]^O[W[g++]^p>>>24]^w[W[g++]]^I[W[g++]]^H[W[g++]]^A[W[g++]]^q[W[g++]]^N[W[g++]]^Q[W[g++]]^U[W[g++]]^V[W[g++]]^Z[W[g++]]^J[W[g++]]^X[W[g++]];for(c+=15;g<c;)p=p>>>8^X[(p^W[g++])&255];return~p>>>0}var MK=CS(Fd),xd=TS(MK),RK=CS(Sd),kd=TS(RK);function _d(W,G=0){if(DS(W))return RS(W,G,MK,xd);return MS(W,G,MK)}function PS(W,G=0){if(DS(W))return RS(W,G,RK,kd);return MS(W,G,RK)}function yd(W,G){return W+G&255}function P9(W,G){return W+G&65535}function gY(W,G){return Number(BigInt(W)+BigInt(G)&0xffffffffn)}function vd(W){return W&16777215}function LS(W,G){return W<G&&G-W>32768||W>G&&W-G<32768}function f4(W,G){return W<G&&G-W>2147483648||W>G&&W-G<2147483648}function mV(W,G){return W===G||f4(W,G)}var lV=(W)=>Number.parseInt(W,10);var BS=(W,G)=>G?G[W]:void 0;async function ud(W,G,X="udp4",Y){let J;for(let Z=W;Z<=G;Z++){let V=gd(X);if(setImmediate(()=>V.bind({port:Z,address:BS(X,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<=G)break}if(!J)throw Error("port not found");return J}function aq(W){if(W==="IPv4")return 4;if(W==="IPv6")return 6;return W}var M1=ES.default.debug,c0=class{event={stack:[],promiseStack:[],eventId:0};ended=!1;onended;onerror=(W)=>{};execute=(...W)=>{if(this.ended)return;for(let G of this.event.stack)G.execute(...W);(async()=>{for(let G of this.event.promiseStack)await G.execute(...W)})().catch((G)=>{this.onerror(G)})};complete=()=>{if(this.ended)return;for(let W of this.event.stack)if(W.complete)W.complete();if(this.allUnsubscribe(),this.ended=!0,this.onended)this.onended(),this.onended=void 0};error=(W)=>{if(this.ended)return;for(let G of this.event.stack)if(G.error)G.error(W);this.allUnsubscribe()};allUnsubscribe=()=>{if(this.ended)throw Error("event completed");this.event={stack:[],promiseStack:[],eventId:0}};subscribe=(W,G,X)=>{let Y=this.event.eventId;this.event.stack.push({execute:W,id:Y,complete:G,error:X}),this.event.eventId++;let 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((...G)=>{W.execute(...G)})}queuingSubscribe=(W,G,X)=>{if(this.ended)throw Error("event completed");let Y=this.event.eventId;this.event.promiseStack.push({execute:W,id:Y,complete:G,error:X}),this.event.eventId++;let J=()=>{this.event.stack=this.event.stack.filter((V)=>V.id!==Y&&V)};return{unSubscribe:J,disposer:(V)=>{V.push(J)}}};once=(W,G,X)=>{let Y=this.subscribe((...J)=>{Y.unSubscribe(),W(...J)},G,X)};watch=(W,G)=>new Promise((X,Y)=>{let J=G&&setTimeout(()=>{Y("Event watch timeout")},G),{unSubscribe:Z}=this.subscribe((...V)=>{if(W(...V)){if(J)clearTimeout(J);Z(),X(V)}})});asPromise=(W)=>new Promise((G,X)=>{let Y=W&&setTimeout(()=>{X("Event asPromise timeout")},W);this.once((...J)=>{if(Y)clearTimeout(Y);G(J)},()=>{if(Y)clearTimeout(Y);G([])},(J)=>{if(Y)clearTimeout(Y);X(J)})});get returnTrigger(){let{execute:W,error:G,complete:X}=this;return{execute:W,error:G,complete:X}}get returnListener(){let{subscribe:W,once:G,asPromise:X}=this;return{subscribe:W,once:G,asPromise:X}}get length(){return this.event.stack.length}},hd=class{_disposer=[];push(W){this._disposer.push(W)}dispose(){this._disposer.forEach((W)=>W()),this._disposer=[]}},f$=M1("werift-ice:packages/ice/src/transport.ts"),PK=class W{constructor(G,X={}){this.socketType=G,this.options=X,this.socket=bd(G),this.socket.on("message",(Y,J)=>{if(aq(J.family)===6)[J.address]=J.address.split("%");this.rinfo=J;try{this.onData(Y,[J.address,J.port])}catch(Z){f$("onData error",Z)}})}type="udp";socket;rinfo;onData=()=>{};closed=!1;static async init(G,X={}){let Y=new W(G,X);return await Y.init(),Y}async init(){let G=BS(this.socketType,this.options.interfaceAddresses);if(this.options.port)this.socket.bind({port:this.options.port,address:G});else if(this.options.portRange){let X=await ud(this.options.portRange[0],this.options.portRange[1],this.socketType,this.options.interfaceAddresses);this.socket.bind({port:X,address:G})}else this.socket.bind({address:G});await new Promise((X)=>this.socket.once("listening",X))}send=async(G,X)=>{if(X&&!$S.isIP(X[0]))return new Promise((Y,J)=>{this.socket.send(G,X[1],X[0],(Z)=>{if(Z)f$("send error",X,G),J(Z);else Y()})});else X=X??[this.rinfo?.address,this.rinfo?.port],this.socket.send(G,X[1],X[0])};get address(){return this.socket.address()}get host(){return this.socket.address().address}get port(){return this.socket.address().port}close=()=>new Promise((G)=>{this.closed=!0,this.socket.once("close",G);try{this.socket.close()}catch(X){G()}})},fd=class W{constructor(G){this.addr=G,this.connect()}type="tcp";connecting;client;onData=()=>{};closed=!1;connect(){if(this.closed)return;if(this.client)this.client.destroy();this.connecting=new Promise((G,X)=>{try{this.client=md({port:this.addr[1],host:this.addr[0]},G)}catch(Y){X(Y)}}),this.client.on("data",(G)=>{let X=[this.client.remoteAddress,this.client.remotePort];this.onData(G,X)}),this.client.on("end",()=>{this.connect()}),this.client.on("error",(G)=>{console.log("error",G)})}async init(){await this.connecting}static async init(G){let X=new W(G);return await X.init(),X}get address(){return{}}send=async(G,X)=>{await this.connecting,this.client.write(G,(Y)=>{if(Y)console.log("err",Y)})};close=async()=>{this.closed=!0,this.client.destroy()}},l4={rsa_1:1,ecdsa_3:3},sq={sha256_4:4},LK={TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_49195:49195,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256_49199:49199},dd=Object.values(LK),a6={x25519_29:29,secp256r1_23:23},FS=Object.values(a6),SS={named_curve_3:3},p$={rsa_pkcs1_sha256:1025,ecdsa_secp256r1_sha256:1027},od=[1,64],xS=[{hash:sq.sha256_4,signature:l4.rsa_1},{hash:sq.sha256_4,signature:l4.ecdsa_3}],rd=()=>{let W=Tq.utils.randomPrivateKey(),G=Tq.getPublicKey(W,!1),X=Buffer.from(W),Y=Buffer.from(G);return{privateKey:X,publicKey:Y}},ad=({publicKey:W,privateKey:G})=>{let X=Tq.getSharedSecret(G,W);return Buffer.from(X).subarray(1)};function yS(W,G,X){switch(X){case a6.secp256r1_23:return ad({publicKey:W,privateKey:G});case a6.x25519_29:return Buffer.from(_S.default.scalarMult(G,W));default:throw Error()}}function c$(W,G,X){let Y=id(W,G);return Y.update(X),Y.digest()}function WU(W,G,X,Y="sha256"){let J=X,Z=[],V=G;do{V=c$(Y,W,V);let U=c$(Y,W,Buffer.concat([V,G]));Z.push(U),X-=U.length}while(X>0);return Buffer.concat(Z,J)}function vS(W,G,X){let Y=Buffer.concat([Buffer.from("master secret"),G,X]);return WU(W,Y,48)}function gS(W,G){let X=uS("sha256",G),Y="extended master secret";return WU(W,Buffer.concat([Buffer.from("extended master secret"),X]),48)}function sd(W,G,X,Y,J,Z){let V=Z?Y:J,U=Z?J:Y,Q=Buffer.concat([Buffer.from(W),V,U]);return WU(X,Q,G)}function uS(W,G){return nd(W).update(G).digest()}function hS(W,G,X,Y=12){let J=uS("sha256",G);return WU(W,Buffer.concat([Buffer.from(X),J]),Y)}function td(W,G){return hS(W,G,"client finished")}function ed(W,G){return hS(W,G,"server finished")}function Wo(W,G,X,Y,J,Z,V="sha256"){let U=Y*2+J*2,Q=W,N=Buffer.concat([X,G]),q=WU(Q,Buffer.concat([Buffer.from("key expansion"),N]),U,V),A=kS.createDecode(q),H=A.readBuffer(Y),I=A.readBuffer(Y),w=A.readBuffer(J),O=A.readBuffer(J),M=Buffer.alloc(Z,0),S=Buffer.alloc(Z,0);return w.copy(M,0),O.copy(S,0),{clientWriteKey:H,serverWriteKey:I,clientNonce:M,serverNonce:S}}var c4={CLIENT:1,SERVER:2},Go=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=ld;g8.set(BK);var tq=class{constructor(W,G,X,Y){if(this.sessionType=W,this.certPem=G,this.keyPem=X,G&&X&&Y)this.parseX509(G,X,Y)}localRandom;remoteRandom;cipherSuite;remoteCertificate;remoteKeyPair;localKeyPair;masterSecret;cipher;namedCurve;signatureHashAlgorithm;localCert;localPrivateKey;static createSelfSignedCertificateWithKey=async(W,G)=>{let X=(()=>{switch(W.signature){case l4.rsa_1:return"RSASSA-PKCS1-v1_5";case l4.ecdsa_3:return"ECDSA"}})(),Y=(()=>{switch(W.hash){case sq.sha256_4:return"SHA-256"}})(),J=(()=>{switch(G){case a6.secp256r1_23:return"P-256";case a6.x25519_29:if(X==="ECDSA")return"P-256";return"X25519";default:{if(X==="ECDSA")return"P-256";if(X==="RSASSA-PKCS1-v1_5")return"X25519"}}})(),Z=(()=>{switch(X){case"ECDSA":return{name:X,hash:Y,namedCurve:J};case"RSASSA-PKCS1-v1_5":return{name:X,hash:Y,publicExponent:new Uint8Array([1,0,1]),modulusLength:2048}}})(),V=await BK.subtle.generateKey(Z,!0,["sign","verify"]),Q=(await wj.createSelfSigned({serialNumber:cd(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 G=W.recordLayerHeader,X=G.protocolVersion.major<<8|G.protocolVersion.minor,Y=this.cipher.encrypt(this.sessionType,W.fragment,{type:G.contentType,version:X,epoch:G.epoch,sequenceNumber:G.sequenceNumber});return W.fragment=Y,W.recordLayerHeader.contentLen=Y.length,W}decryptPacket(W){let G=W.recordLayerHeader,X=G.protocolVersion.major<<8|G.protocolVersion.minor;return this.cipher.decrypt(this.sessionType,W.fragment,{type:G.contentType,version:X,epoch:G.epoch,sequenceNumber:G.sequenceNumber})}verifyData(W){if(this.sessionType===c4.CLIENT)return td(this.masterSecret,W);else return ed(this.masterSecret,W)}signatureData(W,G){let X=pd(G).update(W),Y=this.localPrivateKey.toPEM().toString();return X.sign(Y)}generateKeySignature(W){let G=this.sessionType===c4.CLIENT?this.localRandom:this.remoteRandom,X=this.sessionType===c4.SERVER?this.localRandom:this.remoteRandom,Y=this.valueKeySignature(G.serialize(),X.serialize(),this.localKeyPair.publicKey,this.namedCurve);return this.localPrivateKey.sign(Y,W)}parseX509(W,G,X){let Y=HH.Certificate.fromPEM(Buffer.from(W)),J=HH.PrivateKey.fromPEM(Buffer.from(G));this.localCert=Y.raw,this.localPrivateKey=J,this.signatureHashAlgorithm=X}valueKeySignature(W,G,X,Y){let J=Buffer.from(uY.encode({type:SS.named_curve_3,curve:Y,len:X.length},{type:uY.types.uint8,curve:uY.types.uint16be,len:uY.types.uint8}).slice());return Buffer.concat([W,G,J,X])}},eq=class{srtpProfile;static findMatchingSRTPProfile(W,G){for(let X of G)if(W.includes(X))return X}},WO=(W)=>"0x"+W.toString("hex").replace(/(.)(.)/g,"$1$2 ").split(" ").filter((G)=>G!=null&&G.length>0).join(",0x"),bS=(W)=>Object.entries({...W}).reduce((G,[X,Y])=>{if(typeof Y==="number"||typeof Y==="string")G[X]=Y;if(Buffer.isBuffer(Y))G[X]=WO(Y);return G},{}),$5=class W{constructor(G,X,Y,J,Z,V){this.msg_type=G,this.length=X,this.message_seq=Y,this.fragment_offset=J,this.fragment_length=Z,this.fragment=V}static spec={msg_type:Y7.types.uint8,length:Y7.types.uint24be,message_seq:Y7.types.uint16be,fragment_offset:Y7.types.uint24be,fragment_length:Y7.types.uint24be,fragment:Y7.types.buffer((G)=>G.current.fragment_length)};get summary(){return bS(this)}static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(Y7.decode(G,W.spec)))}serialize(){let G=Y7.encode(this,W.spec).slice();return Buffer.from(G)}chunk(G){let X=0,Y=this.fragment.length;if(Y===0)return[new W(this.msg_type,Y,this.message_seq,X,0,this.fragment)];let J=[];if(!G)G=1240;while(X<Y){let Z=Math.min(G,Y-X),V=Buffer.from(this.fragment.slice(X,X+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,X,V.length,V)),X+=V.length}return J}static assemble(G){if(!G?.length)throw Error("cannot reassemble handshake from empty array");G=G.sort((Y,J)=>Y.fragment_offset-J.fragment_offset);let X=Buffer.alloc(G[0].length);for(let Y of G)Y.fragment.copy(X,Y.fragment_offset);return new W(G[0].msg_type,G[0].length,G[0].message_seq,0,X.length,X)}static findAllFragments(G,X){let Y=G.find((J)=>J.msg_type===X);if(!Y)return[];if(!G?.length)return[];return G.filter((J)=>{return J.msg_type===Y.msg_type&&J.message_seq===Y.message_seq&&J.length===Y.length})}},{uint16be:WH,uint24be:Xo,buffer:fS,array:Yo,uint8:nV,string:Jo}=mS.types,Zo={type:WH,data:fS(WH)},EK=Yo(Zo,WH,"bytes"),Vo=fS(Xo),Uo=nV,Qo=Jo(WH),No={hash:nV,signature:nV},GO={major:nV,minor:nV},TG=class W{constructor(G=Math.floor(Date.now()/1000),X=qo(28)){this.gmt_unix_time=G,this.random_bytes=X}static spec={gmt_unix_time:CG.types.uint32be,random_bytes:CG.types.buffer(28)};static deSerialize(G){return new W(...Object.values(CG.decode(G,W.spec)))}static from(G){return new W(...Object.values(G))}serialize(){let G=CG.encode(this,W.spec).slice();return Buffer.from(G)}},pS=class W{constructor(G,X,Y,J,Z,V,U){this.clientVersion=G,this.random=X,this.sessionId=Y,this.cookie=J,this.cipherSuites=Z,this.compressionMethods=V,this.extensions=U}msgType=1;messageSeq=0;static spec={clientVersion:{major:V9.types.uint8,minor:V9.types.uint8},random:TG.spec,sessionId:V9.types.buffer(V9.types.uint8),cookie:V9.types.buffer(V9.types.uint8),cipherSuites:V9.types.array(V9.types.uint16be,V9.types.uint16be,"bytes"),compressionMethods:V9.types.array(V9.types.uint8,V9.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(G){return new W(...Object.values(V9.decode(G,W.spec)))}serialize(){let G=V9.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new $5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},Ao=class W{constructor(G,X,Y,J,Z){this.epoch=G,this.sequenceNumber=X,this.contentType=Y,this.protocolVersion=J,this.contentLen=Z}static spec={epoch:p4.types.uint16be,sequenceNumber:p4.types.uint48be,contentType:p4.types.uint8,protocolVersion:GO,contentLen:p4.types.uint16be};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(p4.decode(G,W.spec)))}serialize(){let G=p4.encode(this,W.spec).slice();return Buffer.from(G)}},cS=class W{constructor(G,X){this.recordLayerHeader=G,this.fragment=X}get summary(){return{header:this.recordLayerHeader,fragment:WO(this.fragment)}}static createEmpty(){return new W(void 0,void 0)}static deSerialize(G){if(G.length<13)throw Error("Invalid DTLS record: buffer is too short");let X=G.readUInt8(0),Y=G.readUInt8(1),J=G.readUInt8(2),Z=G.readUInt16BE(3),V=G.slice(5,11).readUIntBE(0,6),U=G.readUInt16BE(11);if(G.length<13+U)throw Error("Invalid DTLS record: fragment length exceeds buffer");let Q=G.slice(13,13+U);return new W({contentType:X,protocolVersion:{major:Y,minor:J},epoch:Z,sequenceNumber:V,contentLen:U},Q)}serialize(){let G=this.fragment.length,X=13+G,Y=Buffer.alloc(X);return Y.writeUInt8(this.recordLayerHeader.contentType,0),Y.writeUInt8(this.recordLayerHeader.protocolVersion.major,1),Y.writeUInt8(this.recordLayerHeader.protocolVersion.minor,2),Y.writeUInt16BE(this.recordLayerHeader.epoch,3),Y.writeUIntBE(this.recordLayerHeader.sequenceNumber,5,6),Y.writeUInt16BE(G,11),this.fragment.copy(Y,13),Y}computeMACHeader(){return new Ao(this.recordLayerHeader.epoch,this.recordLayerHeader.sequenceNumber,this.recordLayerHeader.contentType,this.recordLayerHeader.protocolVersion,this.recordLayerHeader.contentLen).serialize()}},lS=(W)=>(G)=>{return W.lastFlight=G,G.flatMap((X)=>{return X.messageSeq=W.sequenceNumber++,X.toFragment().chunk()})},GU=(W)=>(G,X)=>{return G.map((Y)=>{return new cS({contentType:Y.type,protocolVersion:W.version,epoch:W.epoch,sequenceNumber:X,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||{}),zo=M1("werift-dtls : packages/dtls/src/flight/flight.ts : warn"),ZK=M1("werift-dtls : packages/dtls/src/flight/flight.ts : err"),XU=class W{constructor(G,X,Y,J){this.transport=G,this.dtls=X,this.flight=Y,this.nextFlight=J}state="PREPARING";static RetransmitCount=10;createPacket(G){let X=lS(this.dtls)(G);return this.dtls.bufferHandshakeCache(X,!0,this.flight),GU(this.dtls)(X.map((J)=>({type:22,fragment:J.serialize()})),++this.dtls.recordSequenceNumber)}async transmit(G){let X=0;for(;X<=W.RetransmitCount;X++){if(this.setState("SENDING"),this.send(G).catch((Y)=>{ZK("fail to send",ZK)}),this.setState("WAITING"),this.nextFlight===void 0){this.setState("FINISHED");break}if(await Ho(1000*((X+1)/2)),this.dtls.flight>=this.nextFlight){this.setState("FINISHED");break}else zo(this.dtls.sessionId,"retransmit",X,this.dtls.flight)}if(X>W.RetransmitCount)throw ZK(this.dtls.sessionId,"retransmit failed",X),Error(`over retransmitCount : ${this.flight} ${this.nextFlight}`)}send=(G)=>Promise.all(G.map((X)=>this.transport.send(X)));setState(G){this.state=G}},Io=class extends XU{constructor(W,G,X){super(W,G,1,3);this.cipher=X}async exec(W){if(this.dtls.flight===1)throw Error();this.dtls.flight=1;let G=new pS({major:254,minor:253},new TG,Buffer.from([]),Buffer.from([]),dd,[0],W);this.dtls.version=G.clientVersion,this.cipher.localRandom=TG.from(G.random);let X=this.createPacket([G]),Y=Buffer.concat(X.map((J)=>J.serialize()));await this.transmit([Y])}},wo=M1("werift-dtls : packages/dtls/src/flight/client/flight3.ts : log"),jo=class extends XU{constructor(W,G){super(W,G,3,5)}async exec(W){if(this.dtls.flight===3)throw Error();this.dtls.flight=3,this.dtls.handshakeCache=[];let[G]=this.dtls.lastFlight;wo("dtls version",G.clientVersion),G.cookie=W.cookie,this.dtls.cookie=W.cookie;let X=this.createPacket([G]),Y=Buffer.concat(X.map((J)=>J.serialize()));await this.transmit([Y])}},AH={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 Ko(){let W=new ZU;return W.id=JU.RSA,W.name="RSA",W.keyType=YU.RSA,W}function Oo(){let W=new ZU;return W.id=JU.ECDHE_RSA,W.name="ECDHE_RSA",W.signType=AH.ECDHE,W.keyType=YU.RSA,W}function Do(){let W=new ZU;return W.id=JU.ECDHE_ECDSA,W.name="ECDHE_ECDSA",W.signType=AH.ECDHE,W.keyType=YU.ECDSA,W}function Co(){let W=new ZU;return W.id=JU.PSK,W.name="PSK",W.signType=AH.NULL,W.keyType=YU.PSK,W}function To(){let W=new ZU;return W.id=JU.ECDHE_PSK,W.name="ECDHE_PSK",W.signType=AH.ECDHE,W.keyType=YU.PSK,W}var Po=M1("werift-dtls : packages/dtls/src/cipher/suites/aead.ts : err"),Lo=class extends Go{keyLength=0;nonceLength=0;ivLength=0;authTagLength=0;nonceImplicitLength=0;nonceExplicitLength=0;clientWriteKey;serverWriteKey;clientNonce;serverNonce;constructor(){super()}get summary(){return bS(this)}init(W,G,X){let Y=Wo(W,X,G,this.keyLength,this.ivLength,this.nonceLength,this.hashAlgorithm);this.clientWriteKey=Y.clientWriteKey,this.serverWriteKey=Y.serverWriteKey,this.clientNonce=Y.clientNonce,this.serverNonce=Y.serverNonce}encrypt(W,G,X){let Y=W===c4.CLIENT,J=Y?this.clientNonce:this.serverNonce,Z=Y?this.clientWriteKey:this.serverWriteKey;if(!J||!Z)throw Error();J.writeUInt16BE(X.epoch,this.nonceImplicitLength),J.writeUIntBE(X.sequenceNumber,this.nonceImplicitLength+2,6);let V=J.slice(this.nonceImplicitLength),U=this.encodeAdditionalBuffer(X,G.length),Q=Mo(this.blockAlgorithm,Z,J,{authTagLength:this.authTagLength});Q.setAAD(U,{plaintextLength:G.length});let N=Q.update(G),q=Q.final(),A=Q.getAuthTag();return Buffer.concat([V,N,q,A])}encodeAdditionalBuffer(W,G){let X=Buffer.alloc(13);return X.writeUInt16BE(W.epoch,0),X.writeUintBE(W.sequenceNumber,2,6),X.writeUInt8(W.type,8),X.writeUInt16BE(W.version,9),X.writeUInt16BE(G,11),X}decrypt(W,G,X){let Y=W===c4.CLIENT,J=Y?this.serverNonce:this.clientNonce,Z=Y?this.serverWriteKey:this.clientWriteKey;if(!J||!Z)throw Error();G.subarray(0,this.nonceExplicitLength).copy(J,this.nonceImplicitLength);let U=G.subarray(this.nonceExplicitLength,G.length-this.authTagLength),Q=G.subarray(G.length-this.authTagLength),N=this.encodeAdditionalBuffer(X,U.length),q=Ro(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 Po("decrypt failed",H,W,WO(G),X,this.summary),H}}},u8={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},l$=Ko(),d$=Oo(),o$=Do(),n$=Co(),i$=To();function dS(W){switch(W){case u8.TLS_RSA_WITH_AES_128_GCM_SHA256:return f7(u8.TLS_RSA_WITH_AES_128_GCM_SHA256,"TLS_RSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",l$,kV);case u8.TLS_RSA_WITH_AES_256_GCM_SHA384:return f7(u8.TLS_RSA_WITH_AES_256_GCM_SHA384,"TLS_RSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",l$,_V,"sha384");case u8.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:return f7(u8.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",d$,kV);case u8.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:return f7(u8.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",d$,_V,"sha384");case u8.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:return f7(u8.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",o$,kV);case u8.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:return f7(u8.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",o$,_V,"sha384");case u8.TLS_PSK_WITH_AES_128_GCM_SHA256:return f7(u8.TLS_PSK_WITH_AES_128_GCM_SHA256,"TLS_PSK_WITH_AES_128_GCM_SHA256","aes-128-gcm",n$,kV,"sha256");case u8.TLS_PSK_WITH_AES_256_GCM_SHA384:return f7(u8.TLS_PSK_WITH_AES_256_GCM_SHA384,"TLS_PSK_WITH_AES_256_GCM_SHA384","aes-256-gcm",n$,_V,"sha384");case u8.TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256:return f7(u8.TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256","aes-128-gcm",i$,kV,"sha256");case u8.TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384:return f7(u8.TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384","aes-256-gcm",i$,_V,"sha384");default:break}return null}function f7(W,G,X,Y,J,Z="sha256"){let V=new Lo;return V.id=W,V.name=G,V.blockAlgorithm=X,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 nS(W){switch(W){case a6.secp256r1_23:{let{privateKey:G,publicKey:X}=rd();return{curve:W,privateKey:G,publicKey:X}}case a6.x25519_29:{let G=oS.default.box.keyPair();return{curve:W,privateKey:Buffer.from(G.secretKey.buffer),publicKey:Buffer.from(G.publicKey.buffer)}}default:throw Error()}}var zH=class{static type=23},IH=class W{static type=65281;static spec={type:MG.types.uint16be,data:MG.types.uint8};type=W.type;data=0;constructor(G={}){Object.assign(this,G)}static createEmpty(){return new W}static deSerialize(G){return new W(MG.decode(G,W.spec))}serialize(){let G=MG.encode(this,W.spec).slice();return Buffer.from(G)}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},hY=class W{static type=14;static spec={type:i6.types.uint16be,data:i6.types.buffer(i6.types.uint16be)};type=W.type;data=Buffer.from([]);profiles=[];mki=Buffer.from([0]);constructor(G={}){Object.assign(this,G)}static create(G,X){return new W({profiles:G,mki:X})}static deSerialize(G){let X=new W(i6.decode(G,W.spec)),Y=X.data.readUInt16BE(),J=Array(Y/2);for(let Z=0;Z<J.length;Z++)J[Z]=X.data.readUInt16BE(Z*2+2);return X.profiles=J,X.mki=X.data.slice(Y+2),X}serialize(){let G=Buffer.alloc(2);G.writeUInt16BE(this.profiles.length*2);let X=Buffer.concat([G,...this.profiles.map((J)=>{let Z=Buffer.alloc(2);return Z.writeUInt16BE(J),Z}),this.mki]);this.data=X;let Y=i6.encode(this,W.spec).slice();return Buffer.from(Y)}static fromData(G){let X=Buffer.alloc(4);return X.writeUInt16BE(W.type),X.writeUInt16BE(G.length,2),W.deSerialize(Buffer.concat([X,G]))}get extension(){return{type:this.type,data:this.serialize().slice(4)}}},GH=class W{constructor(G){this.certificateList=G}msgType=11;messageSeq;static spec={certificateList:RG.types.array(Vo,RG.types.uint24be,"bytes")};static createEmpty(){return new W(void 0)}static deSerialize(G){return new W(...Object.values(RG.decode(G,W.spec)))}serialize(){let G=RG.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new $5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},iS=class W{constructor(G=1){this.type=G}static spec={type:cY.types.uint8};static createEmpty(){return new W}static deSerialize(G){return new W(...Object.values(cY.decode(G,W.spec)))}serialize(){let G=cY.encode(this,W.spec).slice();return Buffer.from(G)}},rS=class W{constructor(G,X){this.algorithm=G,this.signature=X}msgType=15;messageSeq;static spec={algorithm:r6.types.uint16be,signature:r6.types.buffer(r6.types.uint16be)};static createEmpty(){return new W(void 0,void 0)}static deSerialize(G){let X=r6.decode(G,W.spec);return new W(...Object.values(X))}serialize(){let G=r6.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new $5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},aS=class W{constructor(G){this.publicKey=G}msgType=16;messageSeq;static spec={publicKey:PG.types.buffer(PG.types.uint8)};static createEmpty(){return new W(void 0)}static deSerialize(G){let X=PG.decode(G,W.spec);return new W(...Object.values(X))}serialize(){let G=PG.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new $5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},FK=class W{constructor(G){this.verifyData=G}msgType=20;messageSeq;static createEmpty(){return new W(void 0)}static deSerialize(G){return new W(G)}serialize(){return this.verifyData}toFragment(){let G=this.serialize();return new $5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},sS=class W{constructor(G,X,Y){this.certificateTypes=G,this.signatures=X,this.authorities=Y}msgType=13;messageSeq;static spec={certificateTypes:J7.types.array(Uo,J7.types.uint8,"bytes"),signatures:J7.types.array(No,J7.types.uint16be,"bytes"),authorities:J7.types.array(Qo,J7.types.uint16be,"bytes")};static createEmpty(){return new W(void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(J7.decode(G,W.spec)))}serialize(){let G=J7.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new $5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},tS=class W{constructor(G,X,Y,J,Z,V){this.serverVersion=G,this.random=X,this.sessionId=Y,this.cipherSuite=J,this.compressionMethod=Z,this.extensions=V}msgType=2;messageSeq;static spec={serverVersion:GO,random:TG.spec,sessionId:Z7.types.buffer(Z7.types.uint8),cipherSuite:Z7.types.uint16be,compressionMethod:Z7.types.uint8};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){let X=Z7.decode(G,W.spec),Y=new W(...Object.values(X));if(Y.serialize().length<G.length)return new W(...Object.values(Z7.decode(G,{...W.spec,extensions:EK})));return Y}serialize(){let G=this.extensions===void 0?Z7.encode(this,W.spec).slice():Z7.encode(this,{...W.spec,extensions:EK}).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new $5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},eS=class W{msgType=14;messageSeq;static spec={};static createEmpty(){return new W}static deSerialize(G){return new W(...Object.values(wH.decode(G,W.spec)))}serialize(){let G=wH.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new $5(this.msgType,G.length,this.messageSeq,0,G.length,G)}};function Bo(W,G){return Buffer.from(W2.encode(W,G).slice())}var G2=class W{constructor(G,X,Y,J,Z,V,U,Q){this.ellipticCurveType=G,this.namedCurve=X,this.publicKeyLength=Y,this.publicKey=J,this.hashAlgorithm=Z,this.signatureAlgorithm=V,this.signatureLength=U,this.signature=Q}msgType=12;messageSeq;static spec={ellipticCurveType:X7.types.uint8,namedCurve:X7.types.uint16be,publicKeyLength:X7.types.uint8,publicKey:X7.types.buffer((G)=>G.current.publicKeyLength),hashAlgorithm:X7.types.uint8,signatureAlgorithm:X7.types.uint8,signatureLength:X7.types.uint16be,signature:X7.types.buffer((G)=>G.current.signatureLength)};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){let X=X7.decode(G,W.spec);return new W(...Object.values(X))}serialize(){return Bo(this,W.spec)}toFragment(){let G=this.serialize();return new $5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},jH=1,VU=7;var Eo=(W)=>{switch(W){case jH:case VU:return 16}},$o=(W)=>{switch(W){case jH:return 14;case VU:return 12}},uH0=M1("werift-rtp : packages/rtp/src/codec/av1.ts");var So={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"},hH0=Object.entries(So).reduce((W,[G,X])=>{return W[X]=Number(G),W},{});var bH0=Buffer.from([0,0,0,1]);function r$(W,G){let X=Buffer.alloc(G);return W.copy(X),X}function XH(W){return Number.parseInt(W.toString(),10)}function xo(W){let G=W[0];return G>127&&G<192}var SK=4,e6=class W{version=2;padding=!1;count=0;type=0;length=0;constructor(G={}){Object.assign(this,G)}static serialize(G,X,Y,J){let V=new W({type:G,count:X,version:2,length:J}).serialize();return Buffer.concat([V,Y])}serialize(){let G=new rq(8);if(G.set(2,0,this.version),this.padding)G.set(1,2,1);return G.set(5,3,this.count),F8([1,1,2],[G.value,this.type,this.length])}static deSerialize(G){let[X,Y,J]=t9(G,[1,1,2]),Z=h8(X,0,2),V=h8(X,2,1)>0,U=h8(X,3,5);return new W({version:Z,padding:V,count:U,type:Y,length:J})}},a$=class W{static count=4;count=W.count;senderSsrc;mediaSsrc;fir=[];constructor(G={}){Object.assign(this,G)}get length(){return Math.floor(this.serialize().length/4-1)}static deSerialize(G){let[X,Y]=t9(G,[4,4]),J=[];for(let Z=8;Z<G.length;Z+=8)J.push({ssrc:G.readUInt32BE(Z),sequenceNumber:G[Z+4]});return new W({senderSsrc:X,mediaSsrc:Y,fir:J})}serialize(){let G=F8([4,4],[this.senderSsrc,this.mediaSsrc]),X=Buffer.alloc(this.fir.length*8);return this.fir.forEach(({ssrc:Y,sequenceNumber:J},Z)=>{X.writeUInt32BE(Y,Z*8),X[Z*8+4]=J}),Buffer.concat([G,X])}},YH=class W{static count=1;count=W.count;length=2;senderSsrc;mediaSsrc;constructor(G={}){Object.assign(this,G)}static deSerialize(G){let[X,Y]=t9(G,[4,4]);return new W({senderSsrc:X,mediaSsrc:Y})}serialize(){return F8([4,4],[this.senderSsrc,this.mediaSsrc])}},JH=class W{static count=15;length;count=W.count;senderSsrc;mediaSsrc;uniqueID="REMB";ssrcNum=0;brExp;brMantissa;bitrate;ssrcFeedbacks=[];constructor(G={}){Object.assign(this,G)}static deSerialize(G){let[X,Y,J,Z,V]=t9(G,[4,4,4,1,1]),U=h8(V,0,6),Q=(h8(V,6,2)<<16)+(G[14]<<8)+G[15],N=U>46?18446744073709551615n:BigInt(Q)<<BigInt(U),q=[];for(let A=16;A<G.length;A+=4){let H=G.slice(A).readUIntBE(0,4);q.push(H)}return new W({senderSsrc:X,mediaSsrc:Y,uniqueID:F8([4],[J]).toString(),ssrcNum:Z,brExp:U,brMantissa:Q,ssrcFeedbacks:q,bitrate:N})}serialize(){let G=Buffer.concat([F8([4,4],[this.senderSsrc,this.mediaSsrc]),Buffer.from(this.uniqueID),F8([1],[this.ssrcNum])]),X=new rq(24);X.set(6,0,this.brExp).set(18,6,this.brMantissa);let Y=Buffer.concat(this.ssrcFeedbacks.map((Z)=>F8([4],[Z]))),J=Buffer.concat([G,F8([3],[X.value]),Y]);return this.length=J.length/4,J}},ko=M1("werift-rtp: /rtcp/psfb/index"),iV=class W{static type=206;type=W.type;feedback;constructor(G={}){Object.assign(this,G)}serialize(){let G=this.feedback.serialize();return e6.serialize(this.type,this.feedback.count,G,this.feedback.length)}static deSerialize(G,X){let Y;switch(X.count){case a$.count:Y=a$.deSerialize(G);break;case YH.count:Y=YH.deSerialize(G);break;case JH.count:Y=JH.deSerialize(G);break;default:ko("unknown psfb packet",X.count);break}return new W({feedback:Y})}},rV=class W{ssrc=0;reports=[];static type=201;type=W.type;constructor(G={}){Object.assign(this,G)}serialize(){let G=F8([4],[this.ssrc]);return G=Buffer.concat([G,...this.reports.map((X)=>X.serialize())]),e6.serialize(W.type,this.reports.length,G,Math.floor(G.length/4))}static deSerialize(G,X){let[Y]=t9(G,[4]),J=4,Z=[];for(let V=0;V<X;V++)Z.push(XO.deSerialize(G.slice(J,J+24))),J+=24;return new W({ssrc:Y,reports:Z})}},XO=class W{ssrc;fractionLost;packetsLost;highestSequence;jitter;lsr;dlsr;constructor(G={}){Object.assign(this,G)}toJSON(){return{ssrc:this.ssrc,fractionLost:this.fractionLost,packetsLost:this.packetsLost,highestSequence:this.highestSequence,jitter:this.jitter,lsr:this.lsr,dlsr:this.dlsr}}serialize(){return F8([4,1,3,4,4,4,4],[this.ssrc,this.fractionLost,this.packetsLost,this.highestSequence,this.jitter,this.lsr,this.dlsr])}static deSerialize(G){let[X,Y,J,Z,V,U,Q]=t9(G,[4,1,3,4,4,4,4]);return new W({ssrc:X,fractionLost:Y,packetsLost:J,highestSequence:Z,jitter:V,lsr:U,dlsr:Q})}},X2=205,ZH=class W{static count=1;count=W.count;header;senderSsrc;mediaSourceSsrc;lost=[];toJSON(){return{lost:this.lost,senderSsrc:this.senderSsrc,mediaSourceSsrc:this.mediaSourceSsrc}}constructor(G={}){if(Object.assign(this,G),!this.header)this.header=new e6({type:X2,count:this.count,version:2})}static deSerialize(G,X){let[Y,J]=t9(G,[4,4]),Z=[];for(let V=8;V<G.length;V+=4){let[U,Q]=t9(G.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:X,senderSsrc:Y,mediaSourceSsrc:J,lost:Z})}serialize(){let G=F8([4,4],[this.senderSsrc,this.mediaSourceSsrc]),X=[];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 X.push(F8([2,2],[J,Z])),J=V,Z=0}),X.push(F8([2,2],[J,Z]))}let Y=Buffer.concat([G,Buffer.concat(X)]);return this.header.length=Y.length/4,Buffer.concat([this.header.serialize(),Y])}},_o=M1("werift/rtp/rtcp/rtpfb/twcc"),VH=class W{static count=15;count=W.count;length=2;senderSsrc;mediaSourceSsrc;baseSequenceNumber;packetStatusCount;referenceTime;fbPktCount;packetChunks=[];recvDeltas=[];header;constructor(G={}){if(Object.assign(this,G),!this.header)this.header=new e6({type:205,count:this.count,version:2})}static deSerialize(G,X){let[Y,J,Z,V,U,Q]=t9(G,[4,4,2,2,3,1]),N=[],q=[],A=16;for(let I=0;I<V;){let w=h8(G.slice(A,A+1)[0],0,1),O;switch(w){case 0:{let M=dV.deSerialize(G.slice(A,A+2));O=M;let S=Math.min(V-I,M.runLength);if(M.packetStatus===1||M.packetStatus===2)for(let v=0;v<S;v++)q.push(new gq({type:M.packetStatus}));I+=S}break;case 1:{let M=yo.deSerialize(G.slice(A,A+2));if(O=M,M.symbolSize===0)M.symbolList.forEach((S)=>{if(S===1)q.push(new gq({type:1}))});if(M.symbolSize===1)M.symbolList.forEach((S)=>{if(S===1||S===2)q.push(new gq({type:S}))});I+=M.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(G.slice(H,H+1)),H++;if(I.type===2)I.deSerialize(G.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:X})}serialize(){let G=F8([4,4,2,2,3,1],[this.senderSsrc,this.mediaSourceSsrc,this.baseSequenceNumber,this.packetStatusCount,this.referenceTime,this.fbPktCount]),X=Buffer.concat(this.packetChunks.map((Z)=>Z.serialize())),Y=Buffer.concat(this.recvDeltas.map((Z)=>{try{return Z.serialize()}catch(V){_o(V?.message);return}}).filter((Z)=>Z)),J=Buffer.concat([G,X,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 G=this.baseSequenceNumber-1,X=this.packetChunks.filter((V)=>V instanceof dV).flatMap((V)=>V.results(G)),Y=0,Z=BigInt(this.referenceTime)*64n;for(let V of X){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 X}},dV=class W{type;packetStatus;runLength;constructor(G={}){Object.assign(this,G),this.type=0}static deSerialize(G){let X=h8(G[0],1,2),Y=(h8(G[0],3,5)<<8)+G[1];return new W({type:0,packetStatus:X,runLength:Y})}serialize(){return new OS(16).set(0).set(this.packetStatus,2).set(this.runLength,13).buffer}results(G){let X=this.packetStatus===1||this.packetStatus===2,Y=[];for(let J=0;J<=this.runLength;++J)Y.push(new vo({sequenceNumber:++G,received:X}));return Y}},yo=class W{type;symbolSize;symbolList=[];constructor(G={}){Object.assign(this,G)}static deSerialize(G){let Y=h8(G[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(h8(G[0],2+V,1))),Z(8,(V)=>J.push(h8(G[1],V,1)));break;case 1:Z(3,(V)=>J.push(h8(G[0],2+V*2,2))),Z(4,(V)=>J.push(h8(G[1],V*2,2)));break;default:Y=(h8(G[0],2,6)<<8)+G[1]}return new W({type:1,symbolSize:Y,symbolList:J})}serialize(){let G=Buffer.alloc(2),X=new OS(16).set(1).set(this.symbolSize),Y=this.symbolSize===0?1:2;return this.symbolList.forEach((J)=>{X.set(J,Y)}),G.writeUInt16BE(X.value),G}},gq=class W{type;delta;constructor(G={}){Object.assign(this,G)}static deSerialize(G){let X,Y;if(G.length===1)X=1,Y=250*G[0];else if(G.length===2)X=2,Y=250*G.readInt16BE();if(X===void 0||Y===void 0)throw Error();return new W({type:X,delta:Y})}deSerialize(G){let X=W.deSerialize(G);this.delta=X.delta}parsed=!1;parseDelta(){if(this.delta=Math.floor(this.delta/250),this.delta<0||this.delta>255){if(this.delta>32767)this.delta=32767;if(this.delta<-32768)this.delta=-32768;if(!this.type)this.type=2}else if(!this.type)this.type=1;this.parsed=!0}serialize(){if(!this.parsed)this.parseDelta();if(this.type===1){let G=Buffer.alloc(1);return G.writeUInt8(this.delta),G}else if(this.type===2){let G=Buffer.alloc(2);return G.writeInt16BE(this.delta),G}throw Error("errDeltaExceedLimit "+this.delta+" "+this.type)}};var vo=class{sequenceNumber=0;delta=0;received=!1;receivedAtMs=0;constructor(W){Object.assign(this,W)}},go=M1("werift-rtp:packages/rtp/rtcp/rtpfb/index"),bY=class W{static type=X2;type=W.type;feedback;header;constructor(G={}){Object.assign(this,G)}serialize(){return this.feedback.serialize()}static deSerialize(G,X){let Y;switch(X.count){case ZH.count:Y=ZH.deSerialize(G,X);break;case VH.count:Y=VH.deSerialize(G,X);break;default:go("unknown rtpfb packet",X.count);break}return new W({feedback:Y,header:X})}},UH=class W{static type=202;type=W.type;chunks=[];constructor(G){Object.assign(this,G)}get length(){let G=0;return this.chunks.forEach((X)=>G+=X.length),G}serialize(){let G=Buffer.concat(this.chunks.map((X)=>X.serialize()));while(G.length%4)G=Buffer.concat([G,Buffer.from([0])]);return e6.serialize(this.type,this.chunks.length,G,G.length/4)}static deSerialize(G,X){let Y=[];for(let J=0;J<G.length;){let Z=Y2.deSerialize(G.slice(J));Y.push(Z),J+=Z.length}return new W({chunks:Y})}},Y2=class W{source;items=[];constructor(G={}){Object.assign(this,G)}get length(){let G=4;return this.items.forEach((X)=>G+=X.length),G+=1,G+=s$(G),G}serialize(){let G=Buffer.concat([F8([4],[this.source]),Buffer.concat(this.items.map((Y)=>Y.serialize()))]);return Buffer.concat([G,Buffer.alloc(s$(G.length))])}static deSerialize(G){let X=G.readUInt32BE(),Y=[];for(let J=4;J<G.length;){if(G[J]===0)break;let V=J2.deSerialize(G.slice(J));Y.push(V),J+=V.length}return new W({source:X,items:Y})}},J2=class W{type;text;constructor(G){Object.assign(this,G)}get length(){return 2+Buffer.from(this.text).length}serialize(){let G=Buffer.from(this.text);return Buffer.concat([F8([1,1],[this.type,G.length]),G])}static deSerialize(G){let X=G[0],Y=G[1],J=G.slice(2,2+Y).toString();return new W({type:X,text:J})}};function s$(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(G){Object.assign(this,G)}toJSON(){return{ssrc:this.ssrc,senderInfo:this.senderInfo.toJSON(),reports:this.reports.map((G)=>G.toJSON())}}serialize(){let G=Buffer.alloc(4);return G.writeUInt32BE(this.ssrc),G=Buffer.concat([G,this.senderInfo.serialize()]),G=Buffer.concat([G,...this.reports.map((X)=>X.serialize())]),e6.serialize(W.type,this.reports.length,G,Math.floor(G.length/4))}static deSerialize(G,X){let Y=G.readUInt32BE(),J=Z2.deSerialize(G.subarray(4,24)),Z=24,V=[];for(let Q=0;Q<X;Q++)V.push(XO.deSerialize(G.subarray(Z,Z+24))),Z+=24;return new W({ssrc:Y,senderInfo:J,reports:V})}},Z2=class W{ntpTimestamp;rtpTimestamp;packetCount;octetCount;constructor(G={}){Object.assign(this,G)}toJSON(){return{ntpTimestamp:uo(this.ntpTimestamp),rtpTimestamp:this.rtpTimestamp}}serialize(){return F8([8,4,4,4],[this.ntpTimestamp,this.rtpTimestamp,this.packetCount,this.octetCount])}static deSerialize(G){let[X,Y,J,Z]=t9(G,[8,4,4,4]);return new W({ntpTimestamp:X,rtpTimestamp:Y,packetCount:J,octetCount:Z})}},uo=(W)=>{let[G,X]=t9(F8([8],[W]),[4,4]);return Number(`${G}.${X}`)},ho=M1("werift-rtp:packages/rtp/src/rtcp/rtcp.ts"),bo=class{static deSerialize(W){let G=0,X=[];while(G<W.length){let Y=e6.deSerialize(W.subarray(G,G+SK));G+=SK;let J=W.subarray(G);if(G+=Y.length*4,Y.padding)J=J.subarray(0,J.length-J.subarray(-1)[0]);try{switch(Y.type){case mY.type:X.push(mY.deSerialize(J,Y.count));break;case rV.type:X.push(rV.deSerialize(J,Y.count));break;case UH.type:X.push(UH.deSerialize(J,Y));break;case bY.type:X.push(bY.deSerialize(J,Y));break;case iV.type:X.push(iV.deSerialize(J,Y));break;default:break}}catch(Z){ho("deSerialize RTCP",Z)}}return X}};function mo(W){return W.length>=2&&W[1]>=192&&W[1]<=208}var R9={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 fo(W,G){return W.map((X)=>{let Y=G[X.id];if(!Y)return{uri:"unknown",value:X.payload};switch(Y){case R9.sdesMid:case R9.sdesRTPStreamID:case R9.repairedRtpStreamId:return{uri:Y,value:io(X.payload)};case R9.transportWideCC:return{uri:Y,value:ro(X.payload)};case R9.absSendTime:return{uri:Y,value:ao(X.payload)};case R9.audioLevelIndication:return{uri:Y,value:so(X.payload)};case R9.videoOrientation:return{uri:Y,value:to(X.payload)};default:return{uri:Y,value:X.payload}}}).reduce((X,Y)=>{if(Y)X[Y.uri]=Y.value;return X},{})}function po(W){return Buffer.from(W)}function co(W){return Buffer.from(W)}function lo(W){return Buffer.from(W)}function oo(W){return F8([2],[W])}function no(W){let G=Buffer.alloc(3),X=W>>14n&0x00ffffffn;return G.writeUIntBE(Number(X),0,3),G}function io(W){return W.toString()}function ro(W){return W.readUInt16BE()}function ao(W){return t9(W,[3])[0]}function so(W){let G=new cV(W);return{v:G.readBits(1)===1,level:G.readBits(7)}}function to(W){let G=new cV(W);return G.readBits(4),{c:G.readBits(1),f:G.readBits(1),r1:G.readBits(1),r0:G.readBits(1)}}var eo=M1("packages/rtp/src/rtp/red/packet.ts"),V2=class W{header;blocks=[];static deSerialize(G){let X=G instanceof ArrayBuffer?Buffer.from(G):G,Y=new W,J=0;return[Y.header,J]=t$.deSerialize(X),Y.header.fields.forEach(({blockLength:Z,timestampOffset:V,blockPT:U})=>{if(Z&&V){let Q=X.subarray(J,J+Z);Y.blocks.push({block:Q,blockPT:U,timestampOffset:V}),J+=Z}else{let Q=X.subarray(J);Y.blocks.push({block:Q,blockPT:U})}}),Y}serialize(){this.header=new t$;for(let{timestampOffset:X,blockPT:Y,block:J}of this.blocks)if(X)this.header.fields.push({fBit:1,blockPT:Y,blockLength:J.length,timestampOffset:X});else this.header.fields.push({fBit:0,blockPT:Y});let G=this.header.serialize();for(let{block:X}of this.blocks)G=Buffer.concat([G,X]);return G}},t$=class W{fields=[];static deSerialize(G){let X=0,Y=new W;for(;;){let J={};Y.fields.push(J);let Z=new cV(G.subarray(X));if(J.fBit=Z.readBits(1),J.blockPT=Z.readBits(7),X++,J.fBit===0)break;J.timestampOffset=Z.readBits(14),J.blockLength=Z.readBits(10),X+=3}return[Y,X]}serialize(){let G=Buffer.alloc(0);for(let X of this.fields)try{if(X.timestampOffset&&X.blockLength){let Y=new cV(Buffer.alloc(4)).writeBits(1,X.fBit).writeBits(7,X.blockPT).writeBits(14,X.timestampOffset).writeBits(10,X.blockLength);G=Buffer.concat([G,Y.uint8Array])}else{let Y=new cV(Buffer.alloc(1)).writeBits(1,0).writeBits(7,X.blockPT);G=Buffer.concat([G,Y.uint8Array])}}catch(Y){eo(Y?.message)}return G}},Wn=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 V2,G=this.cache.slice(-(this.distance+1)),X=G.pop();if(!X)return W;return G.forEach((Y)=>{let J=gY(X.timestamp,-Y.timestamp);if(J>Gn)return;W.blocks.push({block:Y.block,blockPT:Y.blockPT,timestampOffset:J})}),W.blocks.push({block:X.block,blockPT:X.blockPT}),W}},Gn=16383,Xn=class{size=150;sequenceNumbers=[];push(W,G){let X=[];return W.blocks.forEach(({blockPT:J,timestampOffset:Z,block:V},U)=>{let Q=P9(G.header.sequenceNumber,-(W.blocks.length-(U+1)));if(Z)X.push(new t6(new s6({timestamp:gY(G.header.timestamp,-Z),payloadType:J,ssrc:G.header.ssrc,sequenceNumber:Q,marker:!0}),V));else X.push(new t6(new s6({timestamp:G.header.timestamp,payloadType:J,ssrc:G.header.ssrc,sequenceNumber:Q,marker:!0}),V))}),X.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}})}},jG={OneByte:48862,TwoByte:4096},e$=2,WF=4,GF=8,XF=12,YF=4,s6=class W{version=2;padding=!1;paddingSize=0;extension=!1;marker=!1;payloadOffset=0;payloadType=0;sequenceNumber=0;timestamp=0;ssrc=0;csrcLength=0;csrc=[];extensionProfile=jG.OneByte;extensionLength;extensions=[];constructor(G={}){Object.assign(this,G)}static deSerialize(G){let X=new W,Y=0,J=G[Y++];X.version=h8(J,0,2),X.padding=h8(J,2)>0,X.extension=h8(J,3)>0,X.csrcLength=h8(J,4,4),X.csrc=[...Array(X.csrcLength)].map(()=>{let V=G.readUInt32BE(Y);return Y+=4,V}),Y+=XF-1;let Z=G[1];X.marker=h8(Z,0)>0,X.payloadType=h8(Z,1,7),X.sequenceNumber=G.readUInt16BE(e$),X.timestamp=G.readUInt32BE(WF),X.ssrc=G.readUInt32BE(GF);for(let V=0;V<X.csrc.length;V++){let U=XF+V*YF;X.csrc[V]=G.subarray(U).readUInt32BE()}if(X.extension){X.extensionProfile=G.subarray(Y).readUInt16BE(),Y+=2;let V=G.subarray(Y).readUInt16BE()*4;switch(X.extensionLength=V,Y+=2,X.extensionProfile){case jG.OneByte:{let U=Y+V;while(Y<U){if(G[Y]===0){Y++;continue}let Q=G[Y]>>4,N=(G[Y]&(G[Y]^240))+1;if(Y++,Q===15)break;let q={id:Q,payload:G.subarray(Y,Y+N)};X.extensions=[...X.extensions,q],Y+=N}}break;case jG.TwoByte:{let U=Y+V;while(Y<U){if(G[Y]===0){Y++;continue}let Q=G[Y];Y++;let N=G[Y];Y++;let q={id:Q,payload:G.subarray(Y,Y+N)};X.extensions=[...X.extensions,q],Y+=N}}break;default:{let U={id:0,payload:G.subarray(Y,Y+V)};X.extensions=[...X.extensions,U],Y+=X.extensions[0].payload.length}break}}if(X.payloadOffset=Y,X.padding)X.paddingSize=G[G.length-1];return X}get serializeSize(){let{csrc:G,extensionProfile:X,extensions:Y}=this,J=12+G.length*YF;if(Y.length>0||this.extension===!0){let Z=4;switch(X){case jG.OneByte:for(let V of Y)Z+=1+V.payload.length;break;case jG.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(G){let X=Buffer.alloc(G),Y=0,J=new rq(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),X.writeUInt8(J.value,Y++);let Z=new rq(8);if(this.marker)Z.set(1,0,1);Z.set(7,1,this.payloadType),X.writeUInt8(Z.value,Y++),X.writeUInt16BE(this.sequenceNumber,e$),Y+=2,X.writeUInt32BE(this.timestamp,WF),Y+=4,X.writeUInt32BE(this.ssrc,GF),Y+=4;for(let V of this.csrc)X.writeUInt32BE(V,Y),Y+=4;if(this.extension){let V=Y;X.writeUInt16BE(this.extensionProfile,Y),Y+=4;let U=Y;switch(this.extensionProfile){case jG.OneByte:for(let q of this.extensions)X.writeUInt8(q.id<<4|q.payload.length-1,Y++),q.payload.copy(X,Y),Y+=q.payload.length;break;case jG.TwoByte:for(let q of this.extensions)X.writeUInt8(q.id,Y++),X.writeUInt8(q.payload.length,Y++),q.payload.copy(X,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(X,Y),Y+=q}}let Q=Y-U,N=Math.trunc((Q+3)/4)*4;X.writeUInt16BE(Math.trunc(N/4),V+2);for(let q=0;q<N-Q;q++)X.writeUInt8(0,Y),Y++}return this.payloadOffset=Y,X}},t6=class W{constructor(G,X){this.header=G,this.payload=X}get serializeSize(){return this.header.serializeSize+this.payload.length}clone(){return new W(new s6({...this.header}),this.payload)}serialize(){let G=this.header.serialize(this.header.serializeSize+this.payload.length),{payloadOffset:X}=this.header;if(this.payload.copy(G,X),this.header.padding){let Y=Buffer.alloc(this.header.paddingSize);Y.writeUInt8(this.header.paddingSize,this.header.paddingSize-1),G=Buffer.concat([G,Y])}return G}static deSerialize(G){let X=s6.deSerialize(G);return new W(X,G.subarray(X.payloadOffset,G.length-X.paddingSize))}clear(){this.payload=null}};function Yn(W,G,X){return new t6(new s6({payloadType:G,marker:W.header.marker,sequenceNumber:W8.Unpack("!H",W.payload.subarray(0,2))[0],timestamp:W.header.timestamp,ssrc:X}),W.payload.subarray(2))}function Jn(W,G,X,Y){return new t6(new s6({payloadType:G,marker:W.header.marker,sequenceNumber:X,timestamp:W.header.timestamp,ssrc:Y,csrc:W.header.csrc,extensions:W.header.extensions}),Buffer.concat([Buffer.from(W8.Pack("!H",[W.header.sequenceNumber])),W.payload]))}var U2=class{constructor(W,G,X,Y){this.srtpSessionKey=W,this.srtpSessionSalt=G,this.srtcpSessionKey=X,this.srtcpSessionSalt=Y}encryptRtp(W,G,X){return Buffer.from([])}decryptRtp(W,G,X){return[]}encryptRTCP(W,G){return Buffer.from([])}decryptRTCP(W){return[]}},fY=class extends Error{constructor(W){super(W);this.name="SrtpAuthenticationError"}},UF=12,Vn=8;function YO(W,G,X="Failed to authenticate SRTP packet"){let Y=W.length-G;aV(W.length>=UF+G,X);let J=N2(()=>s6.deSerialize(W.subarray(0,Y)),X);return J.paddingSize=0,aV(J.payloadOffset>=UF&&J.payloadOffset<=Y,X),J}function Q2(W,G,X,Y="Failed to authenticate SRTCP packet"){return aV(W.length>=Vn+G+X,Y),N2(()=>e6.deSerialize(W.subarray(0,SK)),Y)}function aV(W,G){if(!W)throw new fY(G)}function N2(W,G){try{return W()}catch{throw new fY(G)}}function q2(W,G,X="Failed to authenticate SRTP packet"){if(!W.padding)return W.paddingSize=0,W;aV(G.length>W.payloadOffset,X);let Y=G[G.length-1];return aV(Y>0&&Y<=G.length-W.payloadOffset,X),W.paddingSize=Y,W}var Un=class extends U2{constructor(W,G,X,Y,J,Z){super(W,G,X,Y);this.srtpSessionAuthTag=J,this.srtcpSessionAuthTag=Z}authTagLength=10;encryptRtp(W,G,X){let Y=W.serialize(W.serializeSize),J=this.generateCounter(W.sequenceNumber,X,W.ssrc,this.srtpSessionSalt),V=JF("aes-128-ctr",this.srtpSessionKey,J).update(G),U=this.generateSrtpAuthTag(X,Y,V);return Buffer.concat([Y,V,U])}decryptRtp(W,G,X=YO(W,this.authTagLength)){let Y=W.length-this.authTagLength,J=W.subarray(0,Y),Z=W.subarray(Y),V=this.generateSrtpAuthTag(G,J.subarray(0,X.payloadOffset),J.subarray(X.payloadOffset));NF(Z,V,"Failed to authenticate SRTP packet");let U=this.generateCounter(X.sequenceNumber,G,X.ssrc,this.srtpSessionSalt),Q=ZF("aes-128-ctr",this.srtpSessionKey,U),N=J.subarray(X.payloadOffset),q=Q.update(N),A=Buffer.concat([J.subarray(0,X.payloadOffset),q]);return[A,q2(X,A,"Failed to authenticate SRTP packet")]}encryptRTCP(W,G){let X=Buffer.from(W),Y=X.readUInt32BE(4),J=this.generateCounter(G&65535,G>>16,Y,this.srtcpSessionSalt);JF("aes-128-ctr",this.srtcpSessionKey,J).update(X.slice(8)).copy(X,8),X=Buffer.concat([X,Buffer.alloc(4)]),X.writeUInt32BE(G,X.length-4),X[X.length-4]|=128;let U=this.generateSrtcpAuthTag(X);return X=Buffer.concat([X,U]),X}decryptRTCP(W){let G=Q2(W,this.authTagLength,QF),X=W.length-(this.authTagLength+QF),Y=W.subarray(0,W.length-this.authTagLength),J=W.subarray(W.length-this.authTagLength),Z=this.generateSrtcpAuthTag(Y);NF(J,Z,"Failed to authenticate SRTCP packet");let V=Buffer.from(W).slice(0,X);if(W[X]>>>7===0)return[V,G];let Q=W.readUInt32BE(X);Q&=2147483647;let N=W.readUInt32BE(4),q=this.generateCounter(Q&65535,Q>>16,N,this.srtcpSessionSalt);return ZF("aes-128-ctr",this.srtcpSessionKey,q).update(V.subarray(8)).copy(V,8),[V,G]}generateSrtcpAuthTag(W){return VF("sha1",this.srtcpSessionAuthTag).update(W).digest().slice(0,10)}generateCounter(W,G,X,Y){let J=Buffer.alloc(16);J.writeUInt32BE(X,4),J.writeUInt32BE(G,8),J.writeUInt32BE(Number(BigInt(W)<<16n),12);for(let Z=0;Z<Y.length;Z++)J[Z]^=Y[Z];return J}generateSrtpAuthTag(W,...G){let X=VF("sha1",this.srtpSessionAuthTag),Y=Buffer.alloc(4);Y.writeUInt32BE(W);for(let J of G)X.update(J);return X.update(Y).digest().subarray(0,10)}},QF=4;function NF(W,G,X){if(W.length!==G.length||!Zn(W,G))throw new fY(X)}var Qn=class extends U2{aeadAuthTagLen=16;rtpIvWriter=vq([2,4,4,2],!0);rtcpIvWriter=vq([2,4,2,4],!0);aadWriter=vq([4],!0);constructor(W,G,X,Y){super(W,G,X,Y)}encryptRtp(W,G,X){let Y=W.serialize(W.serializeSize),J=this.rtpInitializationVector(W,X),Z=qF("aes-128-gcm",this.srtpSessionKey,J);Z.setAAD(Y);let V=Z.update(G);Z.final();let U=Z.getAuthTag();return Buffer.concat([Y,V,U])}decryptRtp(W,G,X=YO(W,this.aeadAuthTagLen)){let Y=W.subarray(0,X.payloadOffset),J=W.length-this.aeadAuthTagLen,Z=W.subarray(J),V=Buffer.from([]);V=r$(V,W.length-this.aeadAuthTagLen),Y.copy(V);let U=this.rtpInitializationVector(X,G),Q=W.slice(X.payloadOffset,J),N=HF("aes-128-gcm",this.srtpSessionKey,U);N.setAAD(Y),N.setAuthTag(Z);let q=N.update(Q);return zF(N,"SRTP"),q.copy(V,X.payloadOffset),[V,q2(X,V,"Failed to authenticate SRTP packet")]}encryptRTCP(W,G){let X=W.readUInt32BE(4),Y=W.length+this.aeadAuthTagLen,J=Buffer.from([]);J=r$(J,Y+UK),W.slice(0,8).copy(J);let Z=this.rtcpInitializationVector(X,G),V=this.rtcpAdditionalAuthenticatedData(W,G),U=qF("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 G=Q2(W,this.aeadAuthTagLen,UK),X=W.length-UK,Y=X-this.aeadAuthTagLen,J=W.readUInt32BE(4),Z=W.readUInt32BE(X),V=Z>>>31===1,U=Z&~(AF<<24),Q=this.rtcpInitializationVector(J,U),N=V?Buffer.concat([W.subarray(0,8),W.subarray(X)]):Buffer.concat([W.subarray(0,Y),W.subarray(X)]),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=HF("aes-128-gcm",this.srtcpSessionKey,Q);H.setAAD(N),H.setAuthTag(W.subarray(Y,X));let I=H.update(q);if(zF(H,"SRTCP"),V)I.copy(A,8);return[A,G]}rtpInitializationVector(W,G){let X=this.rtpIvWriter([0,W.ssrc,G,W.sequenceNumber]);for(let Y=0;Y<X.length;Y++)X[Y]^=this.srtpSessionSalt[Y];return X}rtcpInitializationVector(W,G){let X=this.rtcpIvWriter([0,W,0,G]);for(let Y=0;Y<X.length;Y++)X[Y]^=this.srtcpSessionSalt[Y];return X}rtcpAdditionalAuthenticatedData(W,G){let X=Buffer.concat([W.subarray(0,8),this.aadWriter([G])]);return X[8]|=AF,X}},UK=4,AF=128;function zF(W,G){try{W.final()}catch{throw new fY(`Failed to authenticate ${G} packet`)}}var H2=class{constructor(W,G,X){this.masterKey=W,this.masterSalt=G,this.profile=X;{let Y=14-G.length;if(Y>0)this.masterSalt=Buffer.concat([G,Buffer.alloc(Y)])}switch(this.srtpSessionKey=this.generateSessionKey(0),this.srtpSessionSalt=this.generateSessionSalt(2),this.srtpSessionAuthTag=this.generateSessionAuthTag(1),this.srtpSessionAuth=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),X){case jH:this.cipher=new Un(this.srtpSessionKey,this.srtpSessionSalt,this.srtcpSessionKey,this.srtcpSessionSalt,this.srtpSessionAuthTag,this.srtcpSessionAuthTag);break;case VU:this.cipher=new Qn(this.srtpSessionKey,this.srtpSessionSalt,this.srtcpSessionKey,this.srtcpSessionSalt);break}}srtpSSRCStates={};srtpSessionKey;srtpSessionSalt;srtpSessionAuthTag;srtpSessionAuth;srtcpSSRCStates={};srtcpSessionKey;srtcpSessionSalt;srtcpSessionAuthTag;srtcpSessionAuth;cipher;generateSessionKey(W){let G=Buffer.from(this.masterSalt),X=Buffer.from([W,0,0,0,0,0,0]);for(let J=X.length-1,Z=G.length-1;J>=0;J--,Z--)G[Z]=G[Z]^X[J];G=Buffer.concat([G,Buffer.from([0,0])]);let Y=new uq.default.AES(this.masterKey);return Buffer.from(Y.encrypt(G))}generateSessionSalt(W){let G=Buffer.from(this.masterSalt),X=Buffer.from([W,0,0,0,0,0,0]);for(let J=X.length-1,Z=G.length-1;J>=0;J--,Z--)G[Z]=G[Z]^X[J];G=Buffer.concat([G,Buffer.from([0,0])]);let Y=new uq.default.AES(this.masterKey);return G=Buffer.from(Y.encrypt(G)),G.subarray(0,14)}generateSessionAuthTag(W){let G=Buffer.from(this.masterSalt),X=Buffer.from([W,0,0,0,0,0,0]);for(let V=X.length-1,U=G.length-1;V>=0;V--,U--)G[U]=G[U]^X[V];let Y=Buffer.concat([G,Buffer.from([0,0])]),J=Buffer.concat([G,Buffer.from([0,1])]),Z=new uq.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 G=this.srtpSSRCStates[W];if(G)return G;return G={ssrc:W,rolloverCounter:0,lastSequenceNumber:0},this.srtpSSRCStates[W]=G,G}getSrtcpSsrcState(W){let G=this.srtcpSSRCStates[W];if(G)return G;return G={srtcpIndex:0,ssrc:W},this.srtcpSSRCStates[W]=G,G}updateRolloverCount(W,G){if(!G.rolloverHasProcessed)G.rolloverHasProcessed=!0;else if(W===0){if(G.lastSequenceNumber>yV)G.rolloverCounter++}else if(G.lastSequenceNumber<yV&&W>IF-yV){if(G.rolloverCounter>0)G.rolloverCounter--}else if(W<yV&&G.lastSequenceNumber>IF-yV)G.rolloverCounter++;G.lastSequenceNumber=W}generateSrtpAuthTag(W,G){this.srtpSessionAuth=VK("sha1",this.srtpSessionAuthTag);let X=Buffer.alloc(4);return X.writeUInt32BE(G),this.srtpSessionAuth.update(W).update(X).digest().slice(0,10)}index(W){let G=this.srtcpSSRCStates[W];if(!G)return 0;return G.srtcpIndex}setIndex(W,G){let X=this.getSrtcpSsrcState(W);X.srtcpIndex=G%2147483647}},yV=100,IF=65535,Nn=class extends H2{constructor(W,G,X){super(W,G,X)}encryptRTCP(W){let G=W.readUInt32BE(4),X=this.getSrtcpSsrcState(G);if(X.srtcpIndex++,X.srtcpIndex>>qn)X.srtcpIndex=0;return this.cipher.encryptRTCP(W,X.srtcpIndex)}decryptRTCP(W){return this.cipher.decryptRTCP(W)}},qn=2147483647,A2=class{constructor(W){this.ContextCls=W}localContext;remoteContext;onData;start(W,G,X,Y,J){this.localContext=new this.ContextCls(W,G,J),this.remoteContext=new this.ContextCls(X,Y,J)}},Hn=class extends A2{constructor(W){super(Nn);this.config=W,this.start(W.keys.localMasterKey,W.keys.localMasterSalt,W.keys.remoteMasterKey,W.keys.remoteMasterSalt,W.profile)}decrypt=(W)=>{let[G]=this.remoteContext.decryptRTCP(W);return G};encrypt(W){return this.localContext.encryptRTCP(W)}},An=class extends H2{constructor(W,G,X){super(W,G,X)}encryptRtp(W,G){let X=this.getSrtpSsrcState(G.ssrc);return this.updateRolloverCount(G.sequenceNumber,X),this.cipher.encryptRtp(G,W,X.rolloverCounter)}decryptRtp(W){let G=YO(W,this.rtpAuthTagLength),X=this.srtpSSRCStates[G.ssrc],Y=X?{...X}:{ssrc:G.ssrc,rolloverCounter:0,lastSequenceNumber:0};this.updateRolloverCount(G.sequenceNumber,Y);let J=this.cipher.decryptRtp(W,Y.rolloverCounter,G);if(X)Object.assign(X,Y);else this.srtpSSRCStates[G.ssrc]=Y;return J}get rtpAuthTagLength(){return this.profile===VU?16:10}},zn=class extends A2{constructor(W){super(An);this.config=W,this.start(W.keys.localMasterKey,W.keys.localMasterSalt,W.keys.remoteMasterKey,W.keys.remoteMasterSalt,W.profile)}decrypt=(W)=>{let[G]=this.remoteContext.decryptRtp(W);return G};encrypt(W,G){return this.localContext.encryptRtp(W,G)}},lH0=class{constructor(W){this.props=W}sequenceNumber=KS();timestamp=TK();create(W){this.sequenceNumber=P9(this.sequenceNumber,1);let G=this.props.between*this.props.clockRate/1000;this.timestamp=gY(this.timestamp,G);let X=new s6({sequenceNumber:this.sequenceNumber,timestamp:Number(this.timestamp),payloadType:96,extension:!0,marker:!1,padding:!1});return new t6(X,W)}},h9=M1("werift-dtls : packages/dtls/src/flight/client/flight5.ts : log"),In=class extends XU{constructor(W,G,X,Y){super(W,G,5,7);this.cipher=X,this.srtp=Y}handleHandshake(W){this.dtls.bufferHandshakeCache([W],!1,4);let G=(()=>{switch(W.msg_type){case 2:return tS.deSerialize(W.fragment);case 11:return GH.deSerialize(W.fragment);case 12:return G2.deSerialize(W.fragment);case 13:return sS.deSerialize(W.fragment);case 14:return eS.deSerialize(W.fragment)}})();if(G)lY[G.msgType]({dtls:this.dtls,cipher:this.cipher,srtp:this.srtp})(G)}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 G=[W&&this.sendCertificate(),this.sendClientKeyExchange(),W&&this.sendCertificateVerify(),this.sendChangeCipherSpec(),this.sendFinished()].filter((X)=>X);this.dtls.lastMessage=G,await this.transmit(G)}sendCertificate(){let W=new GH([Buffer.from(this.cipher.localCert)]),G=this.createPacket([W]);return Buffer.concat(G.map((Y)=>Y.serialize()))}sendClientKeyExchange(){if(!this.cipher.localKeyPair)throw Error();let W=new aS(this.cipher.localKeyPair.publicKey),G=this.createPacket([W]),X=Buffer.concat(G.map((U)=>U.serialize())),Y=this.cipher.localKeyPair,J=this.cipher.remoteKeyPair;if(!J.publicKey)throw Error("not exist");let Z=yS(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?gS(Z,V):vS(Z,this.cipher.localRandom.serialize(),this.cipher.remoteRandom.serialize()),this.cipher.cipher=dS(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),X}sendCertificateVerify(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((V)=>V.serialize())),G=this.cipher.signatureData(W,"sha256"),X=(()=>{switch(this.cipher.signatureHashAlgorithm?.signature){case l4.ecdsa_3:return p$.ecdsa_secp256r1_sha256;case l4.rsa_1:return p$.rsa_pkcs1_sha256}})();if(!X)throw Error();h9(this.dtls.sessionId,"signatureScheme",this.cipher.signatureHashAlgorithm?.signature,X);let Y=new rS(X,G),J=this.createPacket([Y]);return Buffer.concat(J.map((V)=>V.serialize()))}sendChangeCipherSpec(){let W=iS.createEmpty().serialize(),G=GU(this.dtls)([{type:20,fragment:W}],++this.dtls.recordSequenceNumber);return Buffer.concat(G.map((Y)=>Y.serialize()))}sendFinished(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((Z)=>Z.serialize())),G=this.cipher.verifyData(W),X=new FK(G);this.dtls.epoch=1;let[Y]=this.createPacket([X]);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:G,dtls:X})=>(Y)=>{if(h9(X.sessionId,"serverHello",Y.cipherSuite),W.remoteRandom=TG.from(Y.random),W.cipherSuite=Y.cipherSuite,h9(X.sessionId,"selected cipherSuite",W.cipherSuite),Y.extensions)Y.extensions.forEach((J)=>{switch(J.type){case hY.type:{let Z=hY.fromData(J.data),V=eq.findMatchingSRTPProfile(Z.profiles,X.options.srtpProfiles||[]);if(h9(X.sessionId,"selected srtp profile",V),V==null)return;G.srtpProfile=V}break;case zH.type:X.remoteExtendedMasterSecret=!0;break;case IH.type:h9(X.sessionId,"RenegotiationIndication");break}})};lY[11]=({cipher:W,dtls:G})=>(X)=>{h9(G.sessionId,"handshake certificate",X),W.remoteCertificate=X.certificateList[0]};lY[12]=({cipher:W,dtls:G})=>(X)=>{if(!W.localRandom||!W.remoteRandom)throw Error();h9(G.sessionId,"ServerKeyExchange",X),h9(G.sessionId,"selected curve",X.namedCurve),W.remoteKeyPair={curve:X.namedCurve,publicKey:X.publicKey},W.localKeyPair=nS(X.namedCurve)};lY[13]=({dtls:W})=>(G)=>{h9(W.sessionId,"certificate_request",G),W.requestedCertificateTypes=G.certificateTypes,W.requestedSignatureAlgorithms=G.signatures};lY[14]=({dtls:W})=>(G)=>{h9(W.sessionId,"server_hello_done",G)};var z2=class W{constructor(G,X){this.serverVersion=G,this.cookie=X}msgType=3;messageSeq;static spec={serverVersion:GO,cookie:LG.types.buffer(LG.types.uint8)};static createEmpty(){return new W(void 0,void 0)}static deSerialize(G){return new W(...Object.values(LG.decode(G,W.spec)))}serialize(){let G=LG.encode(this,W.spec).slice();return Buffer.from(G)}get version(){return{major:255-this.serverVersion.major,minor:255-this.serverVersion.minor}}toFragment(){let G=this.serialize();return new $5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},jn=M1("werift-dtls : packages/dtls/src/context/dtls.ts : log"),wF=class{constructor(W,G){this.options=W,this.sessionType=G}version={major:254,minor:253};lastFlight=[];lastMessage=[];recordSequenceNumber=0;sequenceNumber=0;epoch=0;flight=0;handshakeCache={};cookie;requestedCertificateTypes=[];requestedSignatureAlgorithms=[];remoteExtendedMasterSecret=!1;get sessionId(){return this.cookie?this.cookie.toString("hex").slice(0,10):""}get sortedHandshakeCache(){return Object.entries(this.handshakeCache).sort(([W],[G])=>Number(W)-Number(G)).flatMap(([,{data:W}])=>W.sort((G,X)=>G.message_seq-X.message_seq))}checkHandshakesExist=(W)=>!W.find((G)=>this.sortedHandshakeCache.find((X)=>X.msg_type===G)==null);bufferHandshakeCache(W,G,X){if(!this.handshakeCache[X])this.handshakeCache[X]={data:[],isLocal:G,flight:X};let Y=W.filter((J)=>{let Z=this.handshakeCache[X].data.find((V)=>V.msg_type===J.msg_type);if(Z)return jn(this.sessionId,"exist",Z.summary,G,X),!1;return!0});this.handshakeCache[X].data=[...this.handshakeCache[X].data,...Y]}},Kn=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(G={}){Object.assign(this,G)}static createEmpty(){return new W}static fromData(G){return new W({type:W.type,data:d7.decode(G,W.spec.data)})}static deSerialize(G){return new W(d7.decode(G,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(G={}){Object.assign(this,G)}static createEmpty(){return new W}static deSerialize(G){return new W(c7.decode(G,W.spec))}serialize(){let G=c7.encode(this,W.spec).slice();return Buffer.from(G)}static fromData(G){let X=Buffer.alloc(2);return X.writeUInt16BE(W.type),W.deSerialize(Buffer.concat([X,G]))}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},jF=class W{constructor(G,X){this.level=G,this.description=X}static spec={level:BG.types.uint8,description:BG.types.uint8};static deSerialize(G){return new W(...Object.values(BG.decode(G,W.spec)))}serialize(){let G=BG.encode(this,W.spec).slice();return Buffer.from(G)}},KF=M1("werift-dtls : packages/dtls/record/receive.ts : log"),QK=M1("werift-dtls : packages/dtls/record/receive.ts : err"),On=(W)=>{let G=0,X=[];while(W.length>G){let Y=W.readUInt16BE(G+11);if(W.length<G+(12+Y))break;let J=cS.deSerialize(W.subarray(G));X.push(J),G+=13+Y}return X},Dn=(W,G)=>(X)=>{switch(X.recordLayerHeader.contentType){case 20:return KF(W.sessionId,"change cipher spec"),[{type:20,data:void 0}];case 22:{let J=X.fragment;try{if(X.recordLayerHeader.epoch>0)KF(W.sessionId,"decrypt handshake"),J=G.decryptPacket(X)}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:G.decryptPacket(X)}];case 21:{let J=jF.deSerialize(X.fragment);if($K[J.description]==null){let Z=G.decryptPacket(X);J=jF.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}]}},OF=M1("werift-dtls : packages/dtls/src/socket.ts : log"),DF=M1("werift-dtls : packages/dtls/src/socket.ts : err"),I2=class{constructor(W,G){this.options=W,this.sessionType=G,this.dtls=new wF(this.options,this.sessionType),this.cipher=new tq(this.sessionType,this.options.cert,this.options.key,this.options.signatureHash),this.transport=new Kn(this.options.transport),this.setupExtensions(),this.transport.socket.onData=this.udpOnMessage}onConnect=new c0;onData=new c0;onError=new c0;onClose=new c0;transport;cipher;dtls;srtp=new eq;connected=!1;extensions=[];onHandleHandshakes;bufferFragmentedHandshakes=[];renegotiation(){OF("renegotiation",this.sessionType),this.connected=!1,this.cipher=new tq(this.sessionType,this.options.cert,this.options.key,this.options.signatureHash),this.dtls=new wF(this.options,this.sessionType),this.srtp=new eq,this.extensions=[],this.bufferFragmentedHandshakes=[]}udpOnMessage=(W)=>{let G=On(W);for(let X of G)try{let Y=Dn(this.dtls,this.cipher)(X);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)=>{DF(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){DF(this.dtls.sessionId,"catch udpOnMessage error",Y)}};setupExtensions(){if(OF(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=FS,this.extensions.push(W.extension)}{let W=kK.createEmpty();W.data=xS,this.extensions.push(W.extension)}if(this.options.extendedMasterSecret)this.extensions.push({type:zH.type,data:Buffer.alloc(0)});{let W=IH.createEmpty();this.extensions.push(W.extension)}}waitForReady=(W)=>new Promise(async(G,X)=>{for(let Y=0;Y<10;Y++)if(W()){G();break}else await wn(100*Y);X("waitForReady timeout")});handleFragmentHandshake(W){let G=W.filter((X)=>{if(X.fragment_length!==X.length)return this.bufferFragmentedHandshakes.push(X),!1;return!0});if(this.bufferFragmentedHandshakes.length>1){let[X]=this.bufferFragmentedHandshakes.slice(-1);if(X.fragment_offset+X.fragment_length===X.length)G=[...this.bufferFragmentedHandshakes,...G],this.bufferFragmentedHandshakes=[]}return G}send=async(W)=>{let G=GU(this.dtls)([{type:23,fragment:W}],++this.dtls.recordSequenceNumber)[0];await this.transport.send(this.cipher.encryptPacket(G).serialize())};close(){this.transport.socket.close()}extractSessionKeys(W,G){let X=this.exportKeyingMaterial("EXTRACTOR-dtls_srtp",W*2+G*2),{clientKey:Y,serverKey:J,clientSalt:Z,serverSalt:V}=OG.decode(X,{clientKey:OG.types.buffer(W),serverKey:OG.types.buffer(W),clientSalt:OG.types.buffer(G),serverSalt:OG.types.buffer(G)});if(this.sessionType===c4.CLIENT)return{localKey:Y,localSalt:Z,remoteKey:J,remoteSalt:V};else return{localKey:J,localSalt:V,remoteKey:Y,remoteSalt:Z}}exportKeyingMaterial(W,G){return sd(W,G,this.cipher.masterSecret,this.cipher.localRandom.serialize(),this.cipher.remoteRandom.serialize(),this.sessionType===c4.CLIENT)}get remoteCertificate(){return this.cipher.remoteCertificate}},NK=M1("werift-dtls : packages/dtls/src/client.ts : log"),CF=class extends I2{constructor(W){super(W,c4.CLIENT);this.onHandleHandshakes=this.handleHandshakes,NK(this.dtls.sessionId,"start client")}async connect(){await new Io(this.transport,this.dtls,this.cipher).exec(this.extensions)}flight5;handleHandshakes=async(W)=>{NK(this.dtls.sessionId,"handleHandshakes",W.map((G)=>G.msg_type));for(let G of W)switch(G.msg_type){case 3:{let X=z2.deSerialize(G.fragment);await new jo(this.transport,this.dtls).exec(X)}break;case 2:{if(this.connected)return;this.flight5=new In(this.transport,this.dtls,this.cipher,this.srtp),this.flight5.handleHandshake(G)}break;case 11:case 12:case 13:await this.waitForReady(()=>!!this.flight5),this.flight5?.handleHandshake(G);break;case 14:{await this.waitForReady(()=>!!this.flight5),this.flight5?.handleHandshake(G);let X=[11,12,this.options.certificateRequest&&13].filter((Y)=>typeof Y==="number");await this.waitForReady(()=>this.dtls.checkHandshakesExist(X)),await this.flight5?.exec()}break;case 20:this.dtls.flight=7,this.connected=!0,this.onConnect.execute(),NK(this.dtls.sessionId,"dtls connected");break}}},p7=M1("werift-dtls : packages/dtls/flight/server/flight2.ts : log"),Tn=(W,G,X,Y)=>(J)=>{p7("dtls version",J.clientVersion),G.flight=2,G.recordSequenceNumber=0,G.sequenceNumber=0,J.extensions.forEach((A)=>{switch(A.type){case xK.type:{let H=xK.fromData(A.data).data;p7(G.sessionId,"curves",H);let I=H.filter((w)=>FS.includes(w))[0];X.namedCurve=I,p7(G.sessionId,"curve selected",X.namedCurve)}break;case kK.type:{if(!X.signatureHashAlgorithm)throw Error("need to set certificate");let H=kK.fromData(A.data).data;p7(G.sessionId,"hash,signature",H);let I=H.find((O)=>O.signature===X.signatureHashAlgorithm?.signature)?.signature,w=H.find((O)=>O.hash===X.signatureHashAlgorithm?.hash)?.hash;if(I==null||w==null)throw Error("invalid signatureHash")}break;case hY.type:{if(!G.options?.srtpProfiles)return;if(G.options.srtpProfiles.length===0)return;let H=hY.fromData(A.data);p7(G.sessionId,"srtp profiles",H.profiles);let I=eq.findMatchingSRTPProfile(H.profiles,G.options?.srtpProfiles);if(!I)throw Error();Y.srtpProfile=I,p7(G.sessionId,"srtp profile selected",Y.srtpProfile)}break;case zH.type:G.remoteExtendedMasterSecret=!0;break;case IH.type:p7(G.sessionId,"RenegotiationIndication",A.data);break;case 43:{let I=[...A.data.subarray(1)].map((w)=>w.toString(10));p7("dtls supported version",I)}break}}),X.localRandom=new TG,X.remoteRandom=TG.from(J.random);let Z=J.cipherSuites;p7(G.sessionId,"cipher suites",Z);let V=(()=>{switch(X.signatureHashAlgorithm?.signature){case l4.ecdsa_3:return LK.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_49195;case l4.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");X.cipherSuite=V,p7(G.sessionId,"selected cipherSuite",X.cipherSuite),X.localKeyPair=nS(X.namedCurve),G.cookie||=Cn(20);let U=new z2({major:254,minor:253},G.cookie),Q=lS(G)([U]),q=GU(G)(Q.map((A)=>({type:22,fragment:A.serialize()})),++G.recordSequenceNumber).map((A)=>A.serialize());for(let A of q)W.send(A)},TF=M1("werift-dtls : packages/dtls/flight/server/flight4.ts : log"),Mn=class extends XU{constructor(W,G,X,Y){super(W,G,4,6);this.cipher=X,this.srtp=Y}async exec(W,G=!1){if(this.dtls.flight===4){TF(this.dtls.sessionId,"flight4 twice"),this.send(this.dtls.lastMessage);return}this.dtls.flight=4,this.dtls.sequenceNumber=1,this.dtls.bufferHandshakeCache([W],!1,4);let X=[this.sendServerHello(),this.sendCertificate(),this.sendServerKeyExchange(),G&&this.sendCertificateRequest(),this.sendServerHelloDone()].filter((Y)=>Y);this.dtls.lastMessage=X,await this.transmit(X)}sendServerHello(){let W=[];if(this.srtp.srtpProfile)W.push(hY.create([this.srtp.srtpProfile],Buffer.from([0])).extension);if(this.dtls.options.extendedMasterSecret)W.push({type:zH.type,data:Buffer.alloc(0)});let G=IH.createEmpty();W.push(G.extension);let X=new tS(this.dtls.version,this.cipher.localRandom,Buffer.from([0]),this.cipher.cipherSuite,0,W),Y=this.createPacket([X]);return Buffer.concat(Y.map((J)=>J.serialize()))}sendCertificate(){let W=new GH([Buffer.from(this.cipher.localCert)]),G=this.createPacket([W]);return Buffer.concat(G.map((X)=>X.serialize()))}sendServerKeyExchange(){let W=this.cipher.generateKeySignature("sha256");if(!this.cipher.signatureHashAlgorithm)throw Error("not exist");let G=new G2(SS.named_curve_3,this.cipher.namedCurve,this.cipher.localKeyPair.publicKey.length,this.cipher.localKeyPair.publicKey,this.cipher.signatureHashAlgorithm.hash,this.cipher.signatureHashAlgorithm.signature,W.length,W),X=this.createPacket([G]);return Buffer.concat(X.map((Y)=>Y.serialize()))}sendCertificateRequest(){let W=new sS(od,xS,[]);TF(this.dtls.sessionId,"sendCertificateRequest",W);let G=this.createPacket([W]);return Buffer.concat(G.map((X)=>X.serialize()))}sendServerHelloDone(){let W=new eS,G=this.createPacket([W]);return Buffer.concat(G.map((X)=>X.serialize()))}},pY=M1("werift-dtls : packages/dtls/flight/server/flight6.ts"),Rn=class extends XU{constructor(W,G,X){super(W,G,6);this.cipher=X}handleHandshake(W){this.dtls.bufferHandshakeCache([W],!1,5);let G=(()=>{switch(W.msg_type){case 11:return GH.deSerialize(W.fragment);case 15:return rS.deSerialize(W.fragment);case 16:return aS.deSerialize(W.fragment);case 20:return FK.deSerialize(W.fragment)}})();if(G){let X=UU[G.msgType];if(!X)return;X({dtls:this.dtls,cipher:this.cipher})(G)}}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=iS.createEmpty().serialize(),G=GU(this.dtls)([{type:20,fragment:W}],++this.dtls.recordSequenceNumber);return Buffer.concat(G.map((Y)=>Y.serialize()))}sendFinished(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((Z)=>Z.serialize())),G=this.cipher.verifyData(W),X=new FK(G);this.dtls.epoch=1;let[Y]=this.createPacket([X]);return this.dtls.recordSequenceNumber=0,this.cipher.encryptPacket(Y).serialize()}},UU={};UU[16]=({cipher:W,dtls:G})=>(X)=>{if(W.remoteKeyPair={curve:W.namedCurve,publicKey:X.publicKey},!W.remoteKeyPair.publicKey||!W.localKeyPair||!W.remoteRandom||!W.localRandom)throw Error("not exist");let Y=yS(W.remoteKeyPair.publicKey,W.localKeyPair.privateKey,W.localKeyPair.curve);pY(G.sessionId,"extendedMasterSecret",G.options.extendedMasterSecret,G.remoteExtendedMasterSecret);let J=Buffer.concat(G.sortedHandshakeCache.map((Z)=>Z.serialize()));W.masterSecret=G.options.extendedMasterSecret&&G.remoteExtendedMasterSecret?gS(Y,J):vS(Y,W.remoteRandom.serialize(),W.localRandom.serialize()),W.cipher=dS(W.cipherSuite),W.cipher.init(W.masterSecret,W.localRandom.serialize(),W.remoteRandom.serialize()),pY(G.sessionId,"setup cipher",W.cipher.summary)};UU[11]=({cipher:W,dtls:G})=>(X)=>{pY(G.sessionId,"handshake certificate",X),W.remoteCertificate=X.certificateList[0]};UU[15]=({cipher:W,dtls:G})=>(X)=>{if(!W.remoteCertificate)throw Error("client certificate missing before certificate verify");pY(G.sessionId,"certificate_verify",X.algorithm)};UU[20]=({dtls:W})=>(G)=>{pY(W.sessionId,"finished",G)};var SY=M1("werift-dtls : packages/dtls/src/server.ts : log"),Pn=class extends I2{constructor(W){super(W,c4.SERVER);this.onHandleHandshakes=this.handleHandshakes,SY(this.dtls.sessionId,"start server")}flight6;handleHandshakes=async(W)=>{SY(this.dtls.sessionId,"handleHandshakes",W.map((G)=>G.msg_type));for(let G of W)switch(G.msg_type){case 1:{if(this.connected)this.renegotiation();let X=pS.deSerialize(G.fragment);if(X.cookie.length===0)SY(this.dtls.sessionId,"send flight2"),Tn(this.transport,this.dtls,this.cipher,this.srtp)(X);else if(this.dtls.cookie&&X.cookie.equals(this.dtls.cookie))SY(this.dtls.sessionId,"send flight4"),await new Mn(this.transport,this.dtls,this.cipher,this.srtp).exec(G,this.options.certificateRequest);else SY("wrong state",{dtlsCookie:this.dtls.cookie?.toString("hex").slice(10),helloCookie:X.cookie.toString("hex").slice(10)})}break;case 11:case 15:case 16:{if(this.connected)return;this.flight6=new Rn(this.transport,this.dtls,this.cipher),this.flight6.handleHandshake(G)}break;case 20:{await this.waitForReady(()=>!!this.flight6),this.flight6?.handleHandshake(G);let X=[16,this.options.certificateRequest&&11,this.options.certificateRequest&&15].filter((Y)=>typeof Y==="number");await this.waitForReady(()=>this.dtls.checkHandshakesExist(X)),await this.flight6?.exec(),this.connected=!0,this.onConnect.execute(),SY(this.dtls.sessionId,"dtls connected")}break}}},JO=554869826,Ln=8,Bn=1398035790,n6=20,w2=24,j2=1,K2=2,En=6,$n=50;var O2=((W)=>{return W[W.REQUEST=0]="REQUEST",W[W.INDICATION=16]="INDICATION",W[W.RESPONSE=256]="RESPONSE",W[W.ERROR=272]="ERROR",W})(O2||{}),D2=((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})(D2||{});function vV(W){return T2(W).toString("hex").substring(0,W)}function M2(){return T2(12)}var MF=class{queue=[];wait=new c0;put(W){if(this.queue.push(W),this.queue.length===1)this.wait.execute(W)}get(){let W=this.queue.shift();if(!W)return new Promise((G)=>{this.wait.subscribe((X)=>{this.queue.shift(),G(X)})});return W}},_K=(W)=>{let G,X,Y=new Promise((Z,V)=>{G=Z,X=V});Y.then(()=>{J.execute(void 0),J.complete()}).catch((Z)=>{J.execute(Z??Error()),J.complete()});let J=new c0;return W(G,X,J).catch(()=>{}),{awaitable:Y,resolve:G,reject:X}};function _Y(W){let[G]=W,X=sV.default.isV4Format(G)?j2:K2,Y=Buffer.alloc(4);return Y.writeUInt8(0,0),Y.writeUInt8(X,1),Y.writeUInt16BE(W[1],2),Buffer.concat([Y,sV.default.toBuffer(G)])}function Fn(W){if(W.length<4)throw Error("STUN error code is less than 4 bytes");let G=W.readUInt8(2),X=W.readUInt8(3),Y=W.slice(4).toString("utf8");return[G*100+X,Y]}function yY(W){if(W.length<4)throw Error("STUN address length is less than 4 bytes");let G=W.readUInt8(1),X=W.readUInt16BE(2),Y=W.slice(4);switch(G){case j2:if(Y.length!=4)throw Error("STUN address has invalid length for IPv4");return[sV.default.toString(Y),X];case K2:if(Y.length!=16)throw Error("STUN address has invalid length for IPv6");return[sV.default.toString(Y),X];default:throw Error("STUN address has unknown protocol")}}var ZO=Buffer.alloc(6);ZO.writeUInt16BE(JO>>16,0);ZO.writeUInt32BE(JO,2);function R2(W,G){let X=[...ZO,...G],Y=W.slice(0,2);for(let J=2;J<W.length;J++){let Z=W[J]^X[J-2],V=Buffer.alloc(1);V.writeUIntBE(Z,0,1),Y=Buffer.concat([Y,V])}return Y}function hq(W,G){return yY(R2(W,G))}function Sn(W){let G=Buffer.alloc(4);G.writeUInt16BE(0,0),G.writeUInt8(Math.floor(W[0]/100),2),G.writeUInt8(W[0]%100,3);let X=Buffer.from(W[1],"utf8");return Buffer.concat([G,X])}function bq(W,G){return R2(_Y(W),G)}var gV=(W)=>{let G=Buffer.alloc(4);return G.writeUInt32BE(W,0),G},uV=(W)=>W.readUInt32BE(0),xn=(W)=>{let G=Buffer.alloc(4);return G.writeUInt16BE(W,0),G},kn=(W)=>W.readUInt16BE(0),RF=(W)=>{return new ij(W.toString()).toBuffer()},PF=(W)=>{let G=new ij(W);return BigInt(G.toString())},qK=(W)=>Buffer.from(W,"utf8"),HK=(W)=>W.toString("utf8"),AK=(W)=>W,zK=(W)=>W,_n=(W)=>Buffer.from([]),yn=(W)=>null,P2=[[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",Sn,Fn],[12,"CHANNEL-NUMBER",xn,kn],[13,"LIFETIME",gV,uV],[18,"XOR-PEER-ADDRESS",bq,hq],[19,"DATA",AK,zK],[20,"REALM",qK,HK],[21,"NONCE",AK,zK],[22,"XOR-RELAYED-ADDRESS",bq,hq],[25,"REQUESTED-TRANSPORT",gV,uV],[32,"XOR-MAPPED-ADDRESS",bq,hq],[36,"PRIORITY",gV,uV],[37,"USE-CANDIDATE",_n,yn],[32802,"SOFTWARE",qK,HK],[32808,"FINGERPRINT",gV,uV],[32809,"ICE-CONTROLLED",RF,PF],[32810,"ICE-CONTROLLING",RF,PF],[32811,"RESPONSE-ORIGIN",_Y,yY],[32812,"OTHER-ADDRESS",_Y,yY]],L2=class{constructor(W=[]){this.attributes=W}getAttributes(){return this.attributes}setAttribute(W,G){let X=this.attributes.find((Y)=>Y[0]===W);if(X)X[1]=G;else this.attributes.push([W,G]);return this}getAttributeValue(W){let G=this.attributes.find((X)=>X[0]===W);if(!G)return;return G[1]}get attributesKeys(){return this.attributes.map((W)=>W[0])}clear(){this.attributes=[]}},LF=P2.reduce((W,G)=>{return W[G[0]]=G,W},{}),vn=P2.reduce((W,G)=>{return W[G[1]]=G,W},{});function VO(W,G){if(W.length<n6)return;let X=W.readUint16BE(2);if(W.length!==n6+X)return;let Y=W.readUint16BE(0),J=Buffer.from(W.slice(n6-12,n6)),Z=new L2;for(let U=n6;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(LF).includes(Q.toString())){let[,I,,w]=LF[Q];if(w.name===hq.name)Z.setAttribute(I,w(q,J));else Z.setAttribute(I,w(q));if(I==="FINGERPRINT"){let O=B2(W.slice(0,U));if(Z.getAttributeValue("FINGERPRINT")!==O)return}else if(I==="MESSAGE-INTEGRITY"){if(G){let O=gn(W.slice(0,U),G),M=Z.getAttributeValue("MESSAGE-INTEGRITY");if(!O.equals(M))return}}}U+=4+N+A}let V=Z.getAttributes();return Z.clear(),new l7(Y&16111,Y&272,J,V)}var l7=class extends L2{constructor(W,G,X=M2(),Y=[]){super(Y);this.messageMethod=W,this.messageClass=G,this.transactionId=X}toJSON(){return this.json}get json(){return{messageMethod:D2[this.messageMethod],messageClass:O2[this.messageClass],attributes:this.attributes}}get transactionIdHex(){return this.transactionId.toString("hex")}get bytes(){let W=Buffer.from([]);for(let X of this.attributesKeys){let Y=this.getAttributeValue(X),[J,,Z]=vn[X],V=Z.name===bq.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 G=Buffer.alloc(8);return G.writeUInt16BE(this.messageMethod|this.messageClass,0),G.writeUInt16BE(W.length,2),G.writeUInt32BE(JO,4),Buffer.concat([G,this.transactionId,W])}addMessageIntegrity(W){return this.setAttribute("MESSAGE-INTEGRITY",this.messageIntegrity(W)),this}messageIntegrity(W){let G=UO(this.bytes,this.bytes.length-n6+w2);return Buffer.from(C2("sha1",W).update(G).digest("hex"),"hex")}addFingerprint(){this.setAttribute("FINGERPRINT",B2(this.bytes))}},UO=(W,G)=>{let X=Buffer.alloc(W.length);return W.copy(X,0,0,2),X.writeUInt16BE(G,2),W.copy(X,4,4),X};function B2(W){let G=UO(W,W.length-n6+Ln);return(_d(G)^Bn)>>>0}function gn(W,G){let X=UO(W,W.length-n6+w2);return Buffer.from(C2("sha1",G).update(X).digest("hex"),"hex")}function BF(W){let G=W%4;if(G===0)return 0;else return 4-G}var E2=class extends Error{response;addr},$2=class extends E2{constructor(W,G){super();this.response=W,this.addr=G}get str(){let W="STUN transaction failed",G=this.response.getAttributeValue("ERROR-CODE");if(G){let[X,Y]=G;W+=` (${X} - ${Y})`}return W}},un=class extends E2{get str(){return"STUN transaction timed out"}},IK=M1("werift-ice:packages/ice/src/stun/transaction.ts"),QO=class{constructor(W,G,X,Y){this.request=W,this.addr=G,this.protocol=X,this.retransmissions=Y,this.triesMax=1+(this.retransmissions?this.retransmissions:En)}timeoutDelay=$n;ended=!1;tries=0;triesMax;onResponse=new c0;responseReceived=(W,G)=>{if(this.onResponse.length>0)if(W.messageClass===256)this.onResponse.execute(W,G),this.onResponse.complete();else this.onResponse.error(new $2(W,G))};run=async()=>{try{return this.retry().catch((G)=>{IK("retry failed",G)}),await this.onResponse.asPromise()}catch(W){throw W}finally{this.cancel()}};retry=async()=>{while(this.tries<this.triesMax&&!this.ended){if(this.protocol.sendStun(this.request,this.addr).catch((W)=>{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 un)};cancel(){this.ended=!0}},EF=M1("werift-ice : packages/ice/src/stun/protocol.ts"),$F=class W{static type="stun";type=W.type;transport;transactions={};get transactionsKeys(){return Object.keys(this.transactions)}localCandidate;sentMessage;localIp;onRequestReceived=new c0;onDataReceived=new c0;constructor(){}connectionMade=async(G,X,Y)=>{if(G)this.transport=await PK.init("udp4",{portRange:X,interfaceAddresses:Y});else this.transport=await PK.init("udp6",{portRange:X,interfaceAddresses:Y});this.transport.onData=(J,Z)=>{this.datagramReceived(J,Z)}};datagramReceived(G,X){try{let Y=VO(G);if(!Y){if(this.localCandidate)this.onDataReceived.execute(G);return}if((Y.messageClass===256||Y.messageClass===272)&&this.transactionsKeys.includes(Y.transactionIdHex))this.transactions[Y.transactionIdHex].responseReceived(Y,X);else if(Y.messageClass===0)this.onRequestReceived.execute(Y,X,G)}catch(Y){EF("datagramReceived error",Y)}}getExtraInfo(){let{address:G,port:X}=this.transport.address;return[G,X]}async sendStun(G,X){if(this.transport.closed)return;let Y=G.bytes;await this.transport.send(Y,X).catch(()=>{EF("sendStun failed",X,G)})}async sendData(G,X){if(this.transport.closed)return;await this.transport.send(G,X)}async request(G,X,Y,J){if(this.transactionsKeys.includes(G.transactionIdHex))throw Error("already request ed");if(Y)G.addMessageIntegrity(Y),G.addFingerprint();let Z=new QO(G,X,this,J);this.transactions[G.transactionIdHex]=Z;try{return await Z.run()}catch(V){throw V}finally{delete this.transactions[G.transactionIdHex]}}async close(){Object.values(this.transactions).forEach((G)=>{G.cancel()}),await this.transport.close(),this.onRequestReceived.complete(),this.onDataReceived.complete()}},s9=M1("werift-ice:packages/ice/src/turn/protocol.ts"),mn=500,fn=600,pn=285212672,cn=class W{constructor(G){this.turn=G,G.onData.subscribe((X,Y)=>{this.handleStunMessage(X,Y)}).disposer(this.disposer)}static type="turn";type=W.type;localCandidate;disposer=new hd;onRequestReceived=new c0;onDataReceived=new c0;handleStunMessage=(G,X)=>{try{let Y=VO(G);if(!Y){this.onDataReceived.execute(G);return}if(Y.messageClass===256||Y.messageClass===272){let J=this.turn.transactions[Y.transactionIdHex];if(J)J.responseReceived(Y,X)}else if(Y.messageClass===0)this.onRequestReceived.execute(Y,X,G)}catch(Y){s9("datagramReceived error",Y)}};async request(G,X,Y){if(this.turn.transactions[G.transactionIdHex])throw Error("exist");if(Y)G.addMessageIntegrity(Y),G.addFingerprint();let J=new QO(G,X,this);this.turn.transactions[G.transactionIdHex]=J;try{return await J.run()}catch(Z){throw Z}finally{delete this.turn.transactions[G.transactionIdHex]}}async connectionMade(){}async sendData(G,X){await this.turn.sendData(G,X)}async sendStun(G,X){await this.turn.sendData(G.bytes,X)}async close(){return this.disposer.dispose(),this.turn.close()}},ln=class W{constructor(G,X,Y,J,Z,V={}){this.server=G,this.username=X,this.password=Y,this.lifetime=J,this.transport=Z,this.options=V,this.channelRefreshTime=this.options.channelRefreshTime??mn}static type="turn";type=W.type;onData=new c0;onRequestReceived=new c0;onDataReceived=new c0;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 G=new l7(3,0);G.setAttribute("LIFETIME",this.lifetime).setAttribute("REQUESTED-TRANSPORT",pn);let[X]=await this.requestWithRetry(G,this.server).catch((J)=>{throw s9("connect error",J),J});this.relayedAddress=X.getAttributeValue("XOR-RELAYED-ADDRESS"),this.mappedAddress=X.getAttributeValue("XOR-MAPPED-ADDRESS");let Y=X.getAttributeValue("LIFETIME");s9("connect",this.relayedAddress,this.mappedAddress,{exp:Y}),this.refresh(Y)}handleChannelData(G){let[X,Y]=W8.Unpack("!HH",G.slice(0,4)),J=this.addrByChannel[X];if(J){let Z=G.subarray(4,4+Y);this.onData.execute(Z,J)}}handleSTUNMessage(G,X){try{let Y=VO(G);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,X)}else if(Y.messageClass===0)this.onData.execute(G,X);if(Y.getAttributeValue("DATA")){let J=Y.getAttributeValue("DATA");this.onData.execute(J,X)}}catch(Y){s9("parse error",G.toString())}}dataReceived(G,X){let Y=(J,Z)=>{if(J.length>=4&&SF(J))this.handleChannelData(J);else this.handleSTUNMessage(J,Z)};if(this.transport.type==="tcp"){this.tcpBuffer=Buffer.concat([this.tcpBuffer,G]);while(this.tcpBuffer.length>=4){let[,J]=t9(this.tcpBuffer.subarray(0,4),[2,2]);J+=BF(J);let Z=SF(this.tcpBuffer)?4+J:20+J;if(this.tcpBuffer.length<Z)break;Y(this.tcpBuffer.subarray(0,Z),X),this.tcpBuffer=this.tcpBuffer.subarray(Z)}}else Y(G,X)}async send(G,X){if(this.transport.closed)return;if(this.transport.type==="tcp"){let Y=BF(G.length);await this.transport.send(Y>0?Buffer.concat([G,Buffer.alloc(Y)]):G,X)}else await this.transport.send(G,X)}async createPermission(G){let X=new l7(8,0);X.setAttribute("XOR-PEER-ADDRESS",G).setAttribute("USERNAME",this.username).setAttribute("REALM",this.realm).setAttribute("NONCE",this.nonce),await this.request(X,this.server).catch((Y)=>{throw Y})}refresh=(G)=>{this.refreshHandle=_K(async(X,Y,J)=>{let Z=!0;J.once(()=>{Z=!1});while(Z){let V=0.8333333333333334*G*1000;s9("refresh delay",V,{exp:G}),await bn(V);let U=new l7(4,0);U.setAttribute("LIFETIME",G);try{let[Q]=await this.requestWithRetry(U,this.server);G=Q.getAttributeValue("LIFETIME"),s9("refresh",{exp:G})}catch(Q){s9("refresh error",Q)}}})};async request(G,X){if(this.transactions[G.transactionIdHex])throw Error("exist");if(this.integrityKey)G.setAttribute("USERNAME",this.username).setAttribute("REALM",this.realm).setAttribute("NONCE",this.nonce).addMessageIntegrity(this.integrityKey).addFingerprint();let Y=new QO(G,X,this);this.transactions[G.transactionIdHex]=Y;try{return await Y.run()}catch(J){throw J}finally{delete this.transactions[G.transactionIdHex]}}async requestWithRetry(G,X){let Y,J;try{[Y,J]=await this.request(G,X)}catch(Z){if(Z instanceof $2==!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=on(this.username,this.realm,this.password),G.transactionId=M2(),[Y,J]=await this.request(G,this.server)}else throw Z}return[Y,J]}async sendData(G,X){let Y=await this.getChannel(X).catch((Z)=>{return Error("channelBind error")});if(Y instanceof Error){await this.getPermission(X);let Z=new l7(6,16).setAttribute("DATA",G).setAttribute("XOR-PEER-ADDRESS",X);await this.sendStun(Z,this.server);return}let J=W8.Pack("!HH",[Y.number,G.length]);await this.send(Buffer.concat([Buffer.from(J),G]),this.server)}async getPermission(G){if(await this.creatingPermission,!this.permissionByAddr[G.join(":")])this.creatingPermission=this.createPermission(G),this.permissionByAddr[G.join(":")]=!0,await this.creatingPermission.catch((Y)=>{throw s9("createPermission error",Y),Y})}async getChannel(G){if(this.channelBinding)await this.channelBinding;let X=this.channelByAddr[G.join(":")];if(!X)this.channelByAddr[G.join(":")]={number:this.channelNumber++,address:G},X=this.channelByAddr[G.join(":")],this.addrByChannel[X.number]=G,this.channelBinding=this.channelBind(X.number,G),await this.channelBinding.catch((Y)=>{throw s9("channelBind error",Y),Y}),this.channelRefreshAt=lV(Date.now()/1000)+this.channelRefreshTime,this.channelBinding=void 0,s9("channelBind",X);else if(this.channelRefreshAt<lV(Date.now()/1000))this.channelBinding=this.channelBind(X.number,G),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",X);return X}async channelBind(G,X){let Y=new l7(9,0);Y.setAttribute("CHANNEL-NUMBER",G).setAttribute("XOR-PEER-ADDRESS",X);let[J]=await this.requestWithRetry(Y,this.server);if(J.messageMethod!==9)throw Error("should be CHANNEL_BIND")}async sendStun(G,X){await this.send(G.bytes,X)}async close(){this.refreshHandle?.resolve?.(),await this.transport.close()}};async function dn({address:W,username:G,password:X},{lifetime:Y,portRange:J,interfaceAddresses:Z,transport:V}={}){Y??=fn,V??="udp";let U=V==="udp"?await PK.init("udp4",{portRange:J,interfaceAddresses:Z}):await fd.init(W),Q=new ln(W,G,X,Y,U);return await Q.connectionMade(),Q}async function FF({address:W,username:G,password:X},{lifetime:Y,portRange:J,interfaceAddresses:Z,transport:V}={}){let U=await dn({address:W,username:G,password:X},{lifetime:Y,portRange:J,interfaceAddresses:Z,transport:V});return new cn(U)}function on(W,G,X){return hn("md5").update(Buffer.from([W,G,X].join(":"))).digest()}function SF(W){return(W[0]&192)==64}var DG=class W{constructor(G,X,Y,J,Z,V,U,Q,N,q,A,H){this.foundation=G,this.component=X,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(G){let X=G.split(" ");if(X.length<8)throw Error("SDP does not have enough properties");let Y={foundation:X[0],component:Number(X[1]),transport:X[2],priority:Number(X[3]),host:X[4],port:Number(X[5]),type:X[7]};for(let A=8,H=X.length-1;A<H;A+=2)if(X[A]==="raddr")Y.related_address=X[A+1];else if(X[A]==="rport")Y.related_port=Number(X[A+1]);else if(X[A]==="tcptype")Y.tcptype=X[A+1];else if(X[A]==="generation")Y.generation=Number(X[A+1]);else if(X[A]==="ufrag")Y.ufrag=X[A+1];let{foundation: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(G){let X=xF(this.host),Y=xF(G.host);return this.component===G.component&&this.transport.toLowerCase()===G.transport.toLowerCase()&&X===Y}toSdp(){let G=`${this.foundation} ${this.component} ${this.transport} ${this.priority} ${this.host} ${this.port} typ ${this.type}`;if(this.relatedAddress)G+=` raddr ${this.relatedAddress}`;if(this.relatedPort!=null)G+=` rport ${this.relatedPort}`;if(this.tcptype)G+=` tcptype ${this.tcptype}`;if(this.generation!=null)G+=` generation ${this.generation}`;if(this.ufrag!=null)G+=` ufrag ${this.ufrag}`;return G}};function yK(W,G,X){let Y=`${W}|${G}|${X}`;return nn("md5").update(Y,"ascii").digest("hex").slice(7)}function mq(W,G=65535){let Y=0;if(W==="host")Y=126;else if(W==="prflx")Y=110;else if(W==="srflx")Y=100;else Y=0;return 16777216*Y+256*G+255}var an=class{cache=new Map;mdnsInstance=F2.default();constructor(){this.mdnsInstance.setMaxListeners(50)}lookup(W){return new Promise((G,X)=>{let Y=()=>{this.mdnsInstance.removeListener("response",Z),clearTimeout(J)},J=setTimeout(()=>{Y(),X(Error("No mDNS response"))},1e4),Z=(V)=>{let U=V.answers?.[0];if(U?.type!=="A")return;if(U.name!==W)return;Y(),G(U.data)};this.mdnsInstance.on("response",Z),this.mdnsInstance.query(W,"A")})}close(){this.mdnsInstance.destroy()}},tn=M1("werift-ice : packages/ice/src/ice.ts : log"),_F=class{constructor(W,G,X){this.protocol=W,this.remoteCandidate=G,this.iceControlling=X}id=sn().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}},yF=1,Sq=2,en=5,vF=6;var Wi={useIpv4:!0,useIpv6:!0};function gF(W){if(!["host","relay","srflx"].includes(W.type))throw Error(`Unexpected candidate type "${W.type}"`);return W}function Gi(W,G){return W.sort((X,Y)=>gK(X.localCandidate,X.remoteCandidate,G)-gK(Y.localCandidate,Y.remoteCandidate,G)).reverse()}function gK(W,G,X){let Y=X&&W.priority||G.priority,J=X&&G.priority||W.priority;return 1*Math.min(Y,J)+2*Math.max(Y,J)+(Y>J?1:0)}async function Xi(W,G){let X=new l7(1,0);try{let[Y]=await W.request(X,G),J=W.localCandidate;if(!J)throw Error("not exist");return new DG(yK("srflx","udp",J.host),J.component,J.transport,mq("srflx"),Y.getAttributeValue("XOR-MAPPED-ADDRESS")[0],Y.getAttributeValue("XOR-MAPPED-ADDRESS")[1],"srflx",J.host,J.port)}catch(Y){tn("error serverReflexiveCandidate",Y)}}function uF(W){if(W&&Number.isNaN(W[1]))return[W[0],443];return W}var Yi=M1("werift-ice : packages/ice/src/utils.ts");function Ji(W){return aq(W.family)===4&&W.address?.startsWith("169.254.")||aq(W.family)===6&&W.address?.startsWith("fe80::")}function hF(W,{useLinkLocalAddress:G}={}){let X=["ipsec","tun","utun","tap"],Y=["vmnet","veth"],J=S2.networkInterfaces();Yi(J);let Z=Object.keys(J).map((V)=>{for(let Q of[...X,...Y])if(V.startsWith(Q))return{nic:V,addresses:[]};let U=J[V].filter((Q)=>aq(Q.family)===W&&!x2.default.isLoopback(Q.address)&&(G?!0:!Ji(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 Zi(W,G,X={}){let Y=[];if(W)Y.push(...hF(4,X));if(G)Y.push(...hF(6,X));return Y}var Y8=M1("werift-ice : packages/ice/src/ice.ts : log"),Vi=class{constructor(W,G){this._iceControlling=W,this.options={...Wi,...G};let{stunServer:X,turnServer:Y}=this.options;this.stunServer=uF(X)??["stun.l.google.com",19302],this.turnServer=uF(Y),this.restart(),Y8("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 Bq(rn(64)).toString());state="new";lookup;_remoteCandidates=[];nominated;nominating=!1;checkListDone=!1;checkListState=new MF;earlyChecks=[];earlyChecksDone=!1;localCandidatesStart=!1;protocols=[];queryConsentHandle;onData=new c0;stateChanged=new c0;onIceCandidate=new c0;get iceControlling(){return this._iceControlling}set iceControlling(W){if(this.generation>0||this.nominated)return;this._iceControlling=W;for(let G of this.checkList)G.iceControlling=W}async restart(){if(this.generation++,this.localUsername=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 MF,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(){Y8("resetNominatedPair"),this.nominated=void 0,this.nominating=!1}setRemoteParams({iceLite:W,usernameFragment:G,password:X}){Y8("setRemoteParams",{iceLite:W,usernameFragment:G,password:X}),this.remoteIsLite=W,this.remoteUsername=G,this.remotePassword=X}async gatherCandidates(){if(!this.localCandidatesStart){this.localCandidatesStart=!0;let W=Zi(this.options.useIpv4,this.options.useIpv6,{useLinkLocalAddress:this.options.useLinkLocalAddress}),{interfaceAddresses:G}=this.options;if(G){let Y=W.filter((J)=>Object.values(G).includes(J));if(Y.length)W=Y}if(this.options.additionalHostAddresses)W=Array.from(new Set([...this.options.additionalHostAddresses,...W]));let X=this.getCandidatePromises(W,5);await Promise.allSettled(X),this.localCandidatesEnd=!0}this.setState("completed")}appendLocalCandidate(W){this.localCandidates.push(W),this.onIceCandidate.execute(W)}ensureProtocol(W){W.onRequestReceived.subscribe((G,X,Y)=>{if(G.messageMethod!==1){this.respondError(G,X,W,[400,"Bad Request"]);return}let J=G.getAttributeValue("USERNAME"),{remoteUsername:Z}=bF(J),V=this.userHistory[Z]??this.localPassword,{iceControlling:U}=this;if(U&&G.attributesKeys.includes("ICE-CONTROLLING"))if(this.tieBreaker>=G.getAttributeValue("ICE-CONTROLLING")){this.respondError(G,X,W,[487,"Role Conflict"]);return}else this.switchRole(!1);else if(!U&&G.attributesKeys.includes("ICE-CONTROLLED"))if(this.tieBreaker<G.getAttributeValue("ICE-CONTROLLED"))this.respondError(G,X,W,[487,"Role Conflict"]);else{this.switchRole(!0);return}if(this.options.filterStunResponse&&!this.options.filterStunResponse(G,X,W))return;let Q=new l7(1,256,G.transactionId);if(Q.setAttribute("XOR-MAPPED-ADDRESS",X).addMessageIntegrity(Buffer.from(V,"utf8")).addFingerprint(),W.sendStun(Q,X).catch((N)=>{Y8("sendStun error",N)}),this.checkList.length===0&&!this.earlyChecksDone)this.earlyChecks.push([G,X,W]);else this.checkIncoming(G,X,W)}),W.onDataReceived.subscribe((G)=>{try{let X=this.nominated;if(X&&X.protocol===W)X.packetsReceived++,X.bytesReceived+=G.length;this.onData.execute(G)}catch(X){Y8("dataReceived",X)}})}getCandidatePromises(W,G=5){let X=[];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 $F;this.ensureProtocol(N);try{await N.connectionMade(kF(Q),this.options.portRange,this.options.interfaceAddresses),N.localIp=Q,this.protocols.push(N),Y8("protocol",N.localIp);let q=[Q,N.getExtraInfo()[1]];return N.localCandidate=new DG(yK("host","udp",q[0]),1,"udp",mq("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){Y8("error protocol STUN",q)}});X.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,G*1000);if(q.localCandidate?.host&&kF(q.localCandidate?.host)){let O=await Xi(q,J).catch((M)=>{Y8("error",M)});if(O)this.appendLocalCandidate(O);clearTimeout(w),H(O)}else clearTimeout(w),H()}).catch((H)=>{Y8("query STUN server",H)})});X.push(...Q)}let{turnUsername:V,turnPassword:U}=this.options;if(Z&&V&&U){let Q=(async()=>{let N=await FF({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 FF({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 Y8("turn candidateAddress",q),N.localCandidate=new DG(yK("relay","udp",q[0]),1,"udp",mq("relay"),q[0],q[1],"relay",A[0],A[1],void 0,this.generation,this.localUsername),this.appendLocalCandidate(N.localCandidate),N.localCandidate})().catch((N)=>{Y8("query TURN server",N)});if(this.options.forceTurn)X=[];X.push(Q)}return X}async connect(){if(Y8("start connect ice"),!this.localCandidatesEnd){if(!this.localCandidatesStart)throw Error("Local candidates gathering was not performed")}if(!this.remoteUsername||!this.remotePassword)throw Error("Remote username or password is missing");for(let G of this.remoteCandidates)this.pairRemoteCandidate(G);this.sortCheckList(),this.unfreezeInitial(),Y8("earlyChecks",this.localPassword,this.earlyChecks.length);for(let G of this.earlyChecks)this.checkIncoming(...G);this.earlyChecks=[],this.earlyChecksDone=!0;for(;;){if(this.state==="closed")break;if(!this.schedulingChecks())break;await vK.setTimeout(20)}let W=Sq;while(this.checkList.length>0&&W===Sq)W=await this.checkListState.get(),Y8("checkListState",W);for(let G of this.checkList)G.handle?.resolve?.();if(W!==yF)throw Error("ICE negotiation failed");this.queryConsent(),this.setState("connected")}unfreezeInitial(){let[W]=this.checkList;if(!W)return;if(W.state===0)W.updateState(1);let G=new Set(W.localCandidate.foundation);for(let X of this.checkList)if(X.component===W.component&&!G.has(X.localCandidate.foundation)&&X.state===0)X.updateState(1),G.add(X.localCandidate.foundation)}schedulingChecks(){{let W=this.checkList.filter((G)=>{if(this.options.forceTurn&&G.protocol.type===$F.type)return!1;return!0}).find((G)=>G.state===1);if(W)return W.handle=this.checkStart(W),!0}{let W=this.checkList.find((G)=>G.state===0);if(W)return W.handle=this.checkStart(W),!0}if(!this.remoteCandidatesEnd)return!this.checkListDone;return!1}queryConsent=()=>{if(this.queryConsentHandle)this.queryConsentHandle.resolve();this.queryConsentHandle=_K(async(W,G,X)=>{let Y=0,J=!1,Z=new AbortController;X.once(()=>{J=!0,Y+=vF,Z.abort(),this.queryConsentHandle=void 0});let{localUsername:V,remoteUsername:U,iceControlling:Q}=this;try{while(this.state!=="closed"&&!J){await vK.setTimeout(en*(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){Y8("no stun response"),Y++,this.setState("disconnected");break}}if(Y>=vF){Y8("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(Sq)}));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 an;let G=await this.lookup.lookup(W.host);W.host=G}catch(G){return}try{gF(W)}catch(G){return}Y8("addRemoteCandidate",W),this._remoteCandidates.push(W),this.pairRemoteCandidate(W),this.sortCheckList()}send=async(W)=>{let G=this.nominated;if(G)await G.protocol.sendData(W,G.remoteAddr),G.packetsSent++,G.bytesSent+=W.length;else return};getDefaultCandidate(){let W=this.localCandidates.sort((X,Y)=>X.priority-Y.priority),[G]=W;return G}set remoteCandidates(W){if(this.remoteCandidatesEnd)throw Error("Cannot set remote candidates after end-of-candidates.");this._remoteCandidates=[];for(let G of W){try{gF(G)}catch(X){continue}this._remoteCandidates.push(G)}this.remoteCandidatesEnd=!0}get remoteCandidates(){return this._remoteCandidates}get candidatePairs(){return this.checkList}sortCheckList(){Gi(this.checkList,this.iceControlling)}findPair(W,G){return this.checkList.find((Y)=>fq.default(Y.protocol,W)&&fq.default(Y.remoteCandidate,G))}switchRole(W){Y8("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){Y8("nominated",W.toJSON()),this.nominated=W,this.nominating=!1;for(let G of this.checkList)if(G.component===W.component&&[1,0].includes(G.state))G.updateState(4)}if(this.nominated){if(!this.checkListDone)Y8("ICE completed"),this.checkListState.put(new Promise((G)=>G(yF))),this.checkListDone=!0;return}Y8("not completed",W.toJSON());for(let G of this.checkList)if(G.localCandidate.foundation===W.localCandidate.foundation&&G.state===0)G.updateState(1)}{let G=[3,4];if(this.checkList.find(({state:X})=>!G.includes(X)))return}if(!this.iceControlling){if(this.checkList.find(({state:X})=>X===3))return}if(!this.checkListDone)Y8("ICE failed"),this.checkListState.put(new Promise((G)=>{G(Sq)}))}checkStart=(W)=>_K(async(G)=>{Y8("check start",W.toJSON()),W.updateState(2);let X={},{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++,Y8("response received",Q.toJSON(),q.toJSON(),A,{localUsername:V,remoteUsername:J,remotePassword:Y,generation:Z,rtt:I}),X.response=q,X.addr=A}catch(q){let A=q;if(Y8("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,G();return}if(A.response?.getAttributeValue("ERROR-CODE")[0]===401){Y8("retry 401",W.toJSON()),await this.checkStart(W).awaitable,G();return}else{Y8("checkStart CandidatePairState.FAILED",W.toJSON()),W.updateState(4),this.checkComplete(W),G();return}}if(!fq.default(X.addr,W.remoteAddr)){W.updateState(4),this.checkComplete(W),G();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),G()});addPair(W){this.checkList.push(W),this.sortCheckList()}checkIncoming(W,G,X){let Y=W.getAttributeValue("USERNAME"),{remoteUsername:J}=bF(Y),Z,[V,U]=G;for(let N of this.remoteCandidates)if(N.host===V&&N.port===U){Z=N;break}if(!Z)Z=new DG(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(X,Z);if(!Q)Q=new _F(X,Z,this.iceControlling),Q.updateState(1),this.addPair(Q);if(Q.localCandidate.ufrag=J,Y8("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,G){if(W.localCandidate?.canPairWith(G)&&!this.findPair(W,G)){let X=new _F(W,G,this.iceControlling);if(this.options.filterCandidatePair&&!this.options.filterCandidatePair(X))return;X.updateState(1),this.addPair(X)}}pairLocalProtocol(W){for(let G of this.remoteCandidates)this.tryPair(W,G)}pairRemoteCandidate=(W)=>{for(let G of this.protocols)this.tryPair(G,W)};buildRequest({nominate:W,remoteUsername:G,localUsername:X,iceControlling:Y}){let J=Ui({remoteUsername:G,localUsername:X}),Z=new l7(1,0);if(Z.setAttribute("USERNAME",J).setAttribute("PRIORITY",mq("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,G,X,Y){let J=new l7(W.messageMethod,272,W.transactionId);J.setAttribute("ERROR-CODE",Y).addMessageIntegrity(Buffer.from(this.localPassword,"utf8")).addFingerprint(),X.sendStun(J,G).catch((Z)=>{Y8("sendStun error",Z)})}},Ui=({remoteUsername:W,localUsername:G})=>{return`${W}:${G}`},bF=(W)=>{let[G,X]=W.split(":");return{remoteUsername:G,localUsername:X}};function mF(W){return W.map((G,X)=>[X,G])}function m4(W,G){let X=W.split(G);return[X[0],X.slice(1).join(G)]}var NO=class extends Qi{addEventListener=(W,G)=>{this.addListener(W,G)};removeEventListener=(W,G)=>{this.removeListener(W,G)}},Ni=M1("werift:packages/webrtc/src/dataChannel.ts");function qi(W){return Buffer.isBuffer(W)?W.length:Buffer.byteLength(W)}var k2=class extends NO{constructor(W,G,X=!0){super();if(this.sctp=W,this.parameters=G,this.sendOpen=X,this.id=this.parameters.id,G.negotiated){if(this.id==null||this.id<0||this.id>65534)throw Error("ID must be in range 0-65534 if data channel is negotiated out-of-band");this.sctp.dataChannelAddNegotiated(this)}else if(X)this.sendOpen=!1,this.sctp.dataChannelOpen(this)}stateChange=new c0;stateChanged=new c0;onMessage=new c0;error=new c0;bufferedAmountLow=new c0;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}Ni("change state",W)}}addBufferedAmount(W){let G=this.bufferedAmount>this.bufferedAmountLowThreshold&&this.bufferedAmount+W<=this.bufferedAmountLowThreshold;if(this.bufferedAmount+=W,G)this.bufferedAmountLow.execute(),this.emit("bufferedamountlow")}send(W){let G=this.sctp.datachannelSend(this,W);this.messagesSent++,this.bytesSent+=G}close(){this.sctp.dataChannelClose(this)}},_2=class{label="";maxPacketLifeTime;maxRetransmits;ordered=!0;protocol="";negotiated=!1;id;constructor(W={}){Object.assign(this,W)}};var KH=()=>({type:"nack"}),QU=()=>({type:"nack",parameter:"pli"}),OH=()=>({type:"goog-remb"}),Hi=()=>({type:"transport-cc"}),EG=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}},Ai=class{id;uri;constructor(W){Object.assign(this,W)}};var zi=class{type;parameter;constructor(W={}){Object.assign(this,W)}},Ii=class{ssrc;constructor(W={}){Object.assign(this,W)}},wi=class{ssrc;payloadType;rtx;constructor(W){Object.assign(this,W)}},y2=class{rid;direction;constructor(W){Object.assign(this,W)}},ji=(W={})=>new EG({mimeType:"video/h264",clockRate:90000,rtcpFeedback:[KH(),QU(),OH()],parameters:"profile-level-id=42e01f;packetization-mode=1;level-asymmetry-allowed=1",...W}),v2=(W={})=>new EG({mimeType:"video/VP8",clockRate:90000,rtcpFeedback:[KH(),QU(),OH()],...W}),Ki=(W={})=>new EG({mimeType:"video/VP9",clockRate:90000,rtcpFeedback:[KH(),QU(),OH()],...W}),Oi=(W={})=>new EG({mimeType:"video/AV1X",clockRate:90000,rtcpFeedback:[KH(),QU(),OH()],...W}),g2=(W={})=>new EG({mimeType:"audio/OPUS",clockRate:48000,channels:2,...W}),u2=(W={})=>new EG({mimeType:"audio/PCMU",clockRate:8000,channels:1,payloadType:0,...W}),h2=[Oi(),Ki(),v2(),ji(),g2(),u2()].map((W)=>W.mimeType),JA0=h2.filter((W)=>W.toLowerCase().startsWith("video/")),ZA0=h2.filter((W)=>W.toLowerCase().startsWith("audio/"));var fF=2,pF=3,Mi=0,kq=50,cF=51,lF=53,Ri=56,Pi=57,Li="0.0.0.0",dF=9,uK={auto:"actpass",client:"active",server:"passive"},oF=Object.keys(uK).reduce((W,G)=>{let X=uK[G];return W[X]=G,W},{}),Bi=["apt","max-fr","max-fs","maxplaybackrate","minptime","stereo","useinbandfec"],b2=["cname","msid","mslabel","label"],nF={SRTP_AES128_CM_HMAC_SHA1_80:jH,SRTP_AEAD_AES_128_GCM:VU},pq=["sendonly","sendrecv"],Ei=["sendrecv","recvonly"],$i=class extends Map{constructor(W){super();if(W)for(let G of W)this.set(G.id,G)}};function Q8(W,...G){let X=G.filter((Y)=>Y!==void 0);return`${W}_${X.join("_")}`}function $G(){return performance.now()}var Fi=class{constructor(W,G,X,Y,J){if(this.kind=W,this.receiver=X,this.sender=Y,this._direction=J,G)this.setDtlsTransport(G)}id=Ti().toString();onTrack=new c0;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,pq.includes(this._currentDirection??""))this.usedForSender=!0}get currentDirection(){return this._currentDirection}setCurrentDirection(W){this._currentDirection=W}setDtlsTransport(W){this.receiver.setDtlsTransport(W),this.sender.setDtlsTransport(W)}get msid(){return`${this.sender.streamId} ${this.sender.trackId}`}addTrack(W){if(this.receiver.addTrack(W))this.onTrack.execute(W,this)}stop(){if(this.stopping)return;this.stopping=!0}getPayloadType(W){return this.codecs.find((G)=>G.mimeType.toLowerCase().includes(W.toLowerCase()))?.payloadType}getCodecStats(){let W=$G(),G=[];if(!this.dtlsTransport)return G;let X=Q8("transport",this.dtlsTransport.id);for(let Y of this.codecs){let J={type:"codec",id:Q8("codec",Y.payloadType,X),timestamp:W,payloadType:Y.payloadType,transportId:X,mimeType:Y.mimeType,clockRate:Y.clockRate,channels:Y.channels,sdpFmtpLine:Y.parameters};G.push(J)}return G}},Si="inactive",m2="sendonly",f2="recvonly",p2="sendrecv",jK=[Si,m2,f2,p2],hK=class extends NO{uuid=c2().toString();streamId;remote=!1;label;kind;id;ssrc;rid;header;codec;enabled=!0;onReceiveRtp=new c0;onReceiveRtcp=new c0;onSourceChanged=new c0;stopped=!1;muted=!0;constructor(W){super();Object.assign(this,W),this.onReceiveRtp.subscribe((G)=>{this.muted=!1,this.header=G.header}),this.label=`${this.remote?"remote":"local"} ${this.kind}`}stop=()=>{this.stopped=!0,this.muted=!0,this.onReceiveRtp.complete(),this.emit("ended")};writeRtp=(W)=>{if(this.remote)throw Error("this is remoteTrack");if(this.stopped)return;let G=Buffer.isBuffer(W)?t6.deSerialize(W):W;G.header.payloadType=this.codec?.payloadType??G.header.payloadType,this.onReceiveRtp.execute(G)}},xi=class{id;tracks=[];constructor(W){if(Array.isArray(W))this.tracks=W;else Object.assign(this,W);this.id??=c2().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")}},ki=M1("werift:packages/webrtc/src/utils.ts");function l2(W,G){let X=(Z)=>Z.toUpperCase(),Y=(Z)=>Z.match(/(.{2})/g).join(":"),J=Ci(G).update(W).digest("hex");return Y(X(J))}var _i={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 d2(W){return _i[W.trim().toLowerCase()]}function bK(W){return W.replace(/[^0-9a-f]/gi,"").toLowerCase()}function yi(W){let G=W[0];return G>19&&G<64}var o2=(W,G)=>jK[jK.indexOf(W)&jK.indexOf(G)];function vi(W){if(W==="sendonly")return"recvonly";if(W==="recvonly")return"sendonly";return W}var n2=Date.now,gi=BigInt(Date.now())*1000n-process.hrtime.bigint()/1000n,ui=()=>{return gi+process.hrtime.bigint()/1000n},QH=()=>Date.now()/1000,hi=()=>{let G=(xq.timeOrigin+xq.now()-Date.UTC(1900,0,1))/1000,[X,Y]=G.toString().split(".").map(Number);return F8([4,4],[X,Y]).readBigUInt64BE()},i2=(W)=>{let G=F8([8],[W]),[,X,Y]=t9(G,[2,2,2,2]);return F8([2,2],[X,Y]).readUInt32BE()};function bi(W){let G=(U)=>{if(!U)return;let[Q,N]=U.split(":");return[Q,Number.parseInt(N)]},X=G(W.find(({urls:U})=>U.includes("stun:"))?.urls.slice(5)),Y=G(W.find(({urls:U})=>U.includes("turn:"))?.urls.slice(5)),{credential:J,username:Z}=W.find(({urls:U})=>U.includes("turn:"))||{},V={stunServer:X,turnServer:Y,turnUsername:Z,turnPassword:J};return ki("iceOptions",V),V}var AA0=tq.createSelfSignedCertificateWithKey;var mi=(W,G)=>{if(!W||typeof W!=="object")if(G!==null&&typeof G==="object")return G;else return W;if(!G||typeof G!=="object"){if(G==null)return W;return G}for(let X in G)if(Object.prototype.hasOwnProperty.call(G,X)){let Y=G[X];if(Y!=null)W[X]=Y}return W},fi=M1("werift:packages/webrtc/src/media/receiver/nack.ts"),iF=150,pi=class{constructor(W){this.receiver=W}newEstSeqNum=0;_lost={};nackLoop;onPacketLost=new c0;mediaSourceSsrc;retryCount=10;closed=!1;get lostSeqNumbers(){return Object.keys(this._lost).map(Number).sort()}getLost(W){return this._lost[W]}setLost(W,G){if(this._lost[W]=G,this.nackLoop||this.closed)return;this.nackLoop=setInterval(async()=>{try{if(await this.sendNack(),!Object.keys(this._lost).length)clearInterval(this.nackLoop),this.nackLoop=void 0}catch(X){fi("failed to send nack",X)}},5)}removeLost(W){delete this._lost[W]}addPacket(W){let{sequenceNumber:G,ssrc:X}=W.header;if(this.mediaSourceSsrc=X,this.newEstSeqNum===0){this.newEstSeqNum=G;return}if(this.getLost(G)){this.removeLost(G);return}if(G===P9(this.newEstSeqNum,1))this.newEstSeqNum=G;else if(G>P9(this.newEstSeqNum,1)){for(let Y=P9(this.newEstSeqNum,1);Y<G;Y=P9(Y,1))this.setLost(Y,1);this.newEstSeqNum=G,this.pruneLost()}}pruneLost(){if(this.lostSeqNumbers.length>iF)this._lost=Object.entries(this._lost).slice(-iF).reduce((W,[G,X])=>{return W[G]=X,W},{})}close(){this.closed=!0,clearInterval(this.nackLoop),this._lost={}}updateRetryCount(){this.lostSeqNumbers.forEach((W)=>{if(this._lost[W]++>this.retryCount)return this.removeLost(W),W})}sendNack=()=>new Promise((W,G)=>{if(this.lostSeqNumbers.length>0&&this.mediaSourceSsrc){let X=new ZH({senderSsrc:this.receiver.rtcpSsrc,mediaSourceSsrc:this.mediaSourceSsrc,lost:this.lostSeqNumbers}),Y=new bY({feedback:X});this.receiver.dtlsTransport.sendRtcp([Y]).then(W).catch(G),this.updateRetryCount(),this.onPacketLost.execute(X)}})},li=M1("werift:packages/webrtc/media/receiver/receiverTwcc"),di=class{constructor(W,G,X){this.dtlsTransport=W,this.rtcpSsrc=G,this.mediaSourceSsrc=X,this.runTWCC()}extensionInfo={};twccRunning=!1;fbPktCount=0;lastTimestamp;handleTWCC(W){if(this.extensionInfo[W]={tsn:W,timestamp:ui()},Object.keys(this.extensionInfo).length>10)this.sendTWCC()}async runTWCC(){while(this.twccRunning)this.sendTWCC(),await ci(100)}sendTWCC(){if(Object.keys(this.extensionInfo).length===0)return;let W=Object.values(this.extensionInfo).sort((q,A)=>q.tsn-A.tsn),G=W[0].tsn,X=W.slice(-1)[0].tsn,Y=[],J=W[0].tsn,Z=P9(X-G,1),V,U,Q=[];for(let q=G;q<=X;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 gq({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===X)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 VH({senderSsrc:this.rtcpSsrc,mediaSourceSsrc:this.mediaSourceSsrc,baseSequenceNumber:J,packetStatusCount:Z,referenceTime:vd(Math.floor(Number(V/1000n/64n))),fbPktCount:this.fbPktCount,recvDeltas:Q,packetChunks:Y})});this.dtlsTransport.sendRtcp([N]).catch((q)=>{li(q)}),this.extensionInfo={},this.fbPktCount=yd(this.fbPktCount,1)}},oi=class{base_seq;max_seq;cycles=0;packets_received=0;clockRate;jitter_q4=0;last_arrival;last_timestamp;expected_prior=0;received_prior=0;constructor(W){this.clockRate=W}add(W,G=Date.now()/1000){let X=this.max_seq==null||LS(W.header.sequenceNumber,this.max_seq);if(this.packets_received++,this.base_seq==null)this.base_seq=W.header.sequenceNumber;if(X){let Y=lV(G*this.clockRate);if(this.max_seq!=null&&W.header.sequenceNumber<this.max_seq)this.cycles+=65536;if(this.max_seq=W.header.sequenceNumber,W.header.timestamp!==this.last_timestamp&&this.packets_received>1){let 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 G=this.packets_received-this.received_prior;this.received_prior=this.packets_received;let X=W-G;if(W==0||X<=0)return 0;else return Math.floor((X<<8)/W)}get jitter(){return this.jitter_q4>>4}get packets_expected(){return this.cycles+(this.max_seq??0)-(this.base_seq??0)+1}get packets_lost(){let W=this.packets_expected-this.packets_received;return W<0?0:W}},e5=M1("werift:packages/webrtc/src/transport/dtls.ts"),rF=class W{constructor(G,X,Y,J=[]){this.config=G,this.iceTransport=X,this.localCertificate=Y,this.srtpProfiles=J,this.localCertificate??=W.localCertificate}id=ri().toString();state="new";role="auto";srtpStarted=!1;transportSequenceNumber=0;bytesSent=0;bytesReceived=0;packetsSent=0;packetsReceived=0;dataReceiver=()=>{};dtls;srtp;srtcp;onStateChange=new c0;onRtcp=new c0;onRtp=new c0;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:G,keyPem:X,signatureHash:Y}=await tq.createSelfSignedCertificateWithKey({signature:l4.ecdsa_3,hash:sq.sha256_4},a6.secp256r1_23);return this.localCertificate=new r2(X,G,Y),this.localCertificate})(),this.localCertificatePromise}setRemoteParams(G){let X=si([...this.remoteParameters?.fingerprints??[],...G.fingerprints]),Y=G.role==="auto"&&this.remoteParameters?.role?this.remoteParameters.role:G.role;this.remoteParameters=new fK(X,Y)}async start(){if(this.state!=="new")throw Error("state must be new");if(!this.remoteParameters||this.remoteParameters.fingerprints.length===0)throw Error("remote fingerprint not exist");if(this.role==="auto")if(this.iceTransport.role==="controlling")this.role="server";else this.role="client";this.setState("connecting"),await new Promise(async(G,X)=>{if(this.role==="server")this.dtls=new Pn({cert:this.localCertificate?.certPem,key:this.localCertificate?.privateKey,signatureHash:this.localCertificate?.signatureHash,transport:aF(this.iceTransport.connection),srtpProfiles:this.srtpProfiles,extendedMasterSecret:!0,certificateRequest:!0});else this.dtls=new CF({cert:this.localCertificate?.certPem,key:this.localCertificate?.privateKey,signatureHash:this.localCertificate?.signatureHash,transport:aF(this.iceTransport.connection),srtpProfiles:this.srtpProfiles,extendedMasterSecret:!0});if(this.dtls.onData.subscribe((Y)=>{if(this.config.debug.inboundPacketLoss&&this.config.debug.inboundPacketLoss/100<Math.random())return;this.dataReceiver(Y)}),this.dtls.onClose.subscribe(()=>{if(this.state!=="failed")this.setState("closed")}),this.dtls.onConnect.once(G),this.dtls.onError.once((Y)=>{this.setState("failed"),e5("dtls failed",Y),X(Y)}),this.dtls instanceof CF)await ai(100),this.dtls.connect().catch((Y)=>{this.setState("failed"),e5("dtls connect failed",Y),X(Y)})});try{this.verifyRemoteCertificateFingerprint()}catch(G){throw this.setState("failed"),this.dtls?.close(),G}if(this.srtpProfiles.length>0)this.startSrtp();this.setState("connected"),e5("dtls connected")}verifyRemoteCertificateFingerprint(){if(!this.remoteParameters||this.remoteParameters.fingerprints.length===0)throw Error("remote fingerprint not exist");let G=this.dtls?.remoteCertificate;if(!G)throw Error("remote certificate not available");let X=this.remoteParameters.fingerprints.flatMap(({algorithm:U,value:Q})=>{let N=d2(U);if(!N)return[];let q=bK(Q);if(!q)throw Error("remote fingerprint value is empty");return[{normalizedAlgorithm:N,normalizedValue:q}]});if(X.length===0)throw Error("no supported remote fingerprint algorithms");let Y=ei(X),J=X.filter(({normalizedAlgorithm:U})=>U===Y),Z=J.reduce((U,{normalizedAlgorithm:Q})=>{if(!U.has(Q))U.set(Q,bK(l2(G,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 G=this.dtls.srtp.srtpProfile;if(!G)throw Error("need srtpProfile");e5("selected SRTP Profile",G);let{localKey:X,localSalt:Y,remoteKey:J,remoteSalt:Z}=this.dtls.extractSessionKeys(Eo(G),$o(G)),V={keys:{localMasterKey:X,localMasterSalt:Y,remoteMasterKey:J,remoteMasterSalt:Z},profile:G};this.srtp=new zn(V),this.srtcp=new Hn(V)}startSrtp(){if(this.srtpStarted)return;this.srtpStarted=!0,this.updateSrtpSession(),this.iceTransport.connection.onData.subscribe((G)=>{if(this.config.debug.inboundPacketLoss&&this.config.debug.inboundPacketLoss/100<Math.random())return;if(!xo(G))return;if(this.bytesReceived+=G.length,this.packetsReceived++,mo(G)){let X;try{X=this.srtcp.decrypt(G)}catch(J){if(J instanceof fY){e5("dropping invalid SRTCP packet",J);return}throw J}let Y;try{Y=bo.deSerialize(X)}catch(J){e5("dropping malformed SRTCP packet",J);return}for(let J of Y)try{this.onRtcp.execute(J)}catch(Z){e5("RTCP error",Z)}}else{let X;try{X=this.srtp.decrypt(G)}catch(J){if(J instanceof fY){e5("dropping invalid SRTP packet",J);return}throw J}let Y;try{Y=t6.deSerialize(X)}catch(J){e5("dropping malformed SRTP packet",J);return}try{this.onRtp.execute(Y)}catch(J){e5("RTP error",J)}}})}sendData=async(G)=>{if(this.config.debug.outboundPacketLoss&&this.config.debug.outboundPacketLoss/100<Math.random())return;if(!this.dtls)throw Error("dtls not established");await this.dtls.send(G)};async sendRtp(G,X){try{let Y=this.srtp.encrypt(G,X);if(this.config.debug.outboundPacketLoss&&this.config.debug.outboundPacketLoss/100<Math.random())return Y.length;return this.bytesSent+=Y.length,this.packetsSent++,await this.iceTransport.connection.send(Y).catch(()=>{}),Y.length}catch(Y){return e5("failed to send",Y),0}}async sendRtcp(G){let X=Buffer.concat(G.map((J)=>J.serialize())),Y=this.srtcp.encrypt(X);if(this.config.debug.outboundPacketLoss&&this.config.debug.outboundPacketLoss/100<Math.random())return Y.length;this.bytesSent+=Y.length,this.packetsSent++,await this.iceTransport.connection.send(Y).catch(()=>{})}setState(G){if(G!=this.state)this.state=G,this.onStateChange.execute(G)}async stop(){this.setState("closed"),await this.iceTransport.stop()}async getStats(){let G=$G(),X=[],J={type:"transport",id:Q8("transport",this.id),timestamp:G,bytesSent:this.bytesSent,bytesReceived:this.bytesReceived,packetsSent:this.packetsSent,packetsReceived:this.packetsReceived,dtlsState:this.state,iceState:this.iceTransport.state,selectedCandidatePairId:this.iceTransport.connection.nominated?Q8("candidate-pair",this.iceTransport.connection.nominated.localCandidate.foundation,this.iceTransport.connection.nominated.remoteCandidate.foundation):void 0,localCertificateId:this.localCertificate?Q8("certificate","local"):void 0,remoteCertificateId:this.remoteParameters?Q8("certificate","remote"):void 0,dtlsRole:this.role==="auto"?void 0:this.role};if(X.push(J),this.localCertificate){let V=this.localCertificate.getFingerprints();if(V.length>0){let U={type:"certificate",id:Q8("certificate","local"),timestamp:G,fingerprint:V[0].value,fingerprintAlgorithm:V[0].algorithm,base64Certificate:Buffer.from(this.localCertificate.certPem).toString("base64")};X.push(U)}}if(this.remoteParameters&&this.remoteParameters.fingerprints.length>0){let V={type:"certificate",id:Q8("certificate","remote"),timestamp:G,fingerprint:this.remoteParameters.fingerprints[0].value,fingerprintAlgorithm:this.remoteParameters.fingerprints[0].algorithm,base64Certificate:""};X.push(V)}let Z=await this.iceTransport.getStats();return X.push(...Z),X}};var r2=class{constructor(W,G,X){this.certPem=G,this.signatureHash=X;let Y=tV.Certificate.fromPEM(Buffer.from(G));this.publicKey=Y.publicKey.toPEM(),this.privateKey=tV.PrivateKey.fromPEM(Buffer.from(W)).toPEM()}publicKey;privateKey;getFingerprints(){return[new mK("sha-256",l2(tV.Certificate.fromPEM(Buffer.from(this.certPem)).raw,"sha256"))]}},mK=class{constructor(W,G){this.algorithm=W,this.value=G}},fK=class{constructor(W=[],G){this.fingerprints=W,this.role=G}},si=(W)=>{let G=new Set;return W.filter(({algorithm:X,value:Y})=>{let J=`${d2(X)??X.trim().toLowerCase()}:${bK(Y)}`;if(G.has(J))return!1;return G.add(J),!0})},ti=["sha512","sha384","sha256","sha224","sha1"],ei=(W)=>{return ti.find((G)=>W.some(({normalizedAlgorithm:X})=>X===G))??W[0].normalizedAlgorithm},Wr=class{constructor(W){this.ice=W,W.onData.subscribe((G)=>{if(yi(G)){if(this.onData)this.onData(G)}})}closed=!1;onData=()=>{};get address(){return{}}type="ice";send=(W)=>{return this.ice.send(W)};async close(){this.closed=!0,this.ice.close()}},aF=(W)=>new Wr(W),sF=M1("werift:packages/webrtc/src/transport/ice.ts"),Xr=class{constructor(W){this.iceGather=W,this.connection=this.iceGather.connection,this.connection.stateChanged.subscribe((G)=>{this.setState(G)}),this.iceGather.onIceCandidate=(G)=>{this.onIceCandidate.execute(G)}}id=Gr().toString();connection;state="new";waitStart;renominating=!1;onStateChange=new c0;onIceCandidate=new c0;onNegotiationNeeded=new c0;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(Jr(W))};setRemoteParams(W,G=!1){if(G)this.renominating=!0;if(this.connection.remoteUsername&&this.connection.remotePassword&&(this.connection.remoteUsername!==W.usernameFragment||this.connection.remotePassword!==W.password))if(this.renominating)sF("renomination",W),this.connection.resetNominatedPair(),this.renominating=!1;else sF("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 c0,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=$G(),G=[];for(let Y of this.localCandidates){let J={type:"local-candidate",id:Q8("local-candidate",Y.foundation),timestamp:W,transportId:Q8("transport",this.id),address:Y.ip,port:Y.port,protocol:Y.protocol,candidateType:Y.type,priority:Y.priority,foundation:Y.foundation};G.push(J)}for(let Y of this.connection.remoteCandidates){let J=eV(Y),Z={type:"remote-candidate",id:Q8("remote-candidate",J.foundation),timestamp:W,transportId:Q8("transport",this.id),address:J.ip,port:J.port,protocol:J.protocol,candidateType:J.type,priority:J.priority,foundation:J.foundation};G.push(Z)}let X=this.connection?.candidatePairs?[...this.connection.candidatePairs.filter((Y)=>Y.nominated),...this.connection.candidatePairs.filter((Y)=>!Y.nominated)]:[];for(let Y of X){let J={type:"candidate-pair",id:Q8("candidate-pair",Y.foundation),timestamp:W,transportId:Q8("transport",this.id),localCandidateId:Q8("local-candidate",Y.localCandidate.foundation),remoteCandidateId:Q8("remote-candidate",Y.remoteCandidate.foundation),state:Y.state,nominated:Y.nominated,packetsSent:Y.packetsSent,packetsReceived:Y.packetsReceived,bytesSent:Y.bytesSent,bytesReceived:Y.bytesReceived,currentRoundTripTime:Y.rtt};G.push(J)}return G}};var Yr=class{constructor(W={}){this.options=W,this.connection=new Vi(!1,this.options),this.connection.onIceCandidate.subscribe((G)=>{this.onIceCandidate(eV(G))})}onIceCandidate=()=>{};gatheringState="new";connection;onGatheringStateChange=new c0;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 s2({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 G=new a2(W.component,W.foundation,W.host,W.port,W.priority,W.transport,W.type,W.generation,W.ufrag);return G.relatedAddress=W.relatedAddress,G.relatedPort=W.relatedPort,G.tcpType=W.tcptype,G}function Jr(W){return new DG(W.foundation,W.component,W.protocol,W.priority,W.ip,W.port,W.type,W.relatedAddress,W.relatedPort,W.tcpType,W.generation,W.ufrag)}var Zr=class{candidate;sdpMid;sdpMLineIndex;usernameFragment;constructor(W){Object.assign(this,W)}static fromSdp(W){let G=DG.fromSdp(W);return eV(G).toJSON()}static isThis(W){if(typeof W?.candidate==="string")return!0}toJSON(){return{candidate:this.candidate,sdpMid:this.sdpMid,sdpMLineIndex:this.sdpMLineIndex,usernameFragment:this.usernameFragment}}},a2=class{constructor(W,G,X,Y,J,Z,V,U,Q){this.component=W,this.foundation=G,this.ip=X,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 Zr({candidate:Ux(this),sdpMLineIndex:this.sdpMLineIndex,sdpMid:this.sdpMid,usernameFragment:this.ufrag})}static fromJSON(W){try{if(!W.candidate)throw Error("candidate is required");let G=Qx(W.candidate);return G.sdpMLineIndex=W.sdpMLineIndex??void 0,G.sdpMid=W.sdpMid??void 0,G}catch(G){}}},s2=class{iceLite=!1;usernameFragment;password;constructor(W={}){Object.assign(this,W)}},o7=class W{constructor(G=0,X=Buffer.from("")){this.flags=G,this._body=X}get body(){return this._body}set body(G){this._body=G}static type=-1;get type(){return W.type}get bytes(){if(!this.body)throw Error();let G=Buffer.alloc(4);return G.writeUInt8(this.type,0),G.writeUInt8(this.flags,1),G.writeUInt16BE(this.body.length+4,2),Buffer.concat([G,this.body,...[...Array(qU(this.body.length))].map(()=>Buffer.from("\x00"))])}},qO=class extends o7{constructor(W=0,G){super(W,G);if(this.flags=W,G)this.initiateTag=G.readUInt32BE(0),this.advertisedRwnd=G.readUInt32BE(4),this.outboundStreams=G.readUInt16BE(8),this.inboundStreams=G.readUInt16BE(10),this.initialTsn=G.readUInt32BE(12),this.params=Yx(G.slice(16));else this.initiateTag=0,this.advertisedRwnd=0,this.outboundStreams=0,this.inboundStreams=0,this.initialTsn=0,this.params=[]}initiateTag;advertisedRwnd;outboundStreams;inboundStreams;initialTsn;params;get body(){let W=Buffer.alloc(16);return W.writeUInt32BE(this.initiateTag,0),W.writeUInt32BE(this.advertisedRwnd,4),W.writeUInt16BE(this.outboundStreams,8),W.writeUInt16BE(this.inboundStreams,10),W.writeUInt32BE(this.initialTsn,12),Buffer.concat([W,Xx(this.params)])}},cq=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}},Qr=class W extends qO{static type=130;get type(){return W.type}},lq=class W extends o7{constructor(G=0,X){super(G,X);if(this.flags=G,X){this.cumulativeTsn=X.readUInt32BE(0);let Y=4;while(Y<X.length)this.streams.push([X.readUInt16BE(Y),X.readUInt16BE(Y+2)]),Y+=4}else this.cumulativeTsn=0}static type=192;streams=[];cumulativeTsn;get type(){return W.type}set body(G){}get body(){let G=Buffer.alloc(4);return G.writeUInt32BE(this.cumulativeTsn,0),Buffer.concat([G,...this.streams.map(([X,Y])=>{let J=Buffer.alloc(4);return J.writeUInt16BE(X,0),J.writeUInt16BE(Y,2),J})])}},dq=class W extends o7{constructor(G=0,X){super(G,X);if(this.flags=G,X)this.tsn=X.readUInt32BE(0),this.streamId=X.readUInt16BE(4),this.streamSeqNum=X.readUInt16BE(6),this.protocol=X.readUInt32BE(8),this.userData=X.slice(12)}static type=0;get type(){return W.type}tsn=0;streamId=0;streamSeqNum=0;protocol=0;userData=Buffer.from("");abandoned=!1;acked=!1;misses=0;retransmit=!1;sentCount=0;bookSize=0;expiry;maxRetransmits;sentTime;get bytes(){let G=16+this.userData.length,X=Buffer.alloc(16);X.writeUInt8(this.type,0),X.writeUInt8(this.flags,1),X.writeUInt16BE(G,2),X.writeUInt32BE(this.tsn,4),X.writeUInt16BE(this.streamId,8),X.writeUInt16BE(this.streamSeqNum,10),X.writeUInt32BE(this.protocol,12);let Y=Buffer.concat([X,this.userData]);if(G%4)Y=Buffer.concat([Y,...[...Array(qU(G))].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,G=void 0){super(W,G);if(this.flags=W,G)this.params=Yx(G)}params=[];get body(){return Xx(this.params)}},dK=class W extends NU{static type=6;get type(){return W.type}},oq=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(([G,X])=>{return{name:(Object.entries(W.CODE).find(([,J])=>J===G)||[])[0],body:X}})}},oK=class W extends NU{static type=4;get type(){return W.type}},t2=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(G=0,X){super(G,X);if(this.flags=G,X){this.cumulativeTsn=X.readUInt32BE(0),this.advertisedRwnd=X.readUInt32BE(4);let Y=X.readUInt16BE(8),J=X.readUInt16BE(10),Z=12;[...Array(Y)].forEach(()=>{this.gaps.push([X.readUInt16BE(Z),X.readUInt16BE(Z+2)]),Z+=4}),[...Array(J)].forEach(()=>{this.duplicates.push(X.readUInt32BE(Z)),Z+=4})}}static type=3;get type(){return W.type}gaps=[];duplicates=[];cumulativeTsn=0;advertisedRwnd=0;get bytes(){let G=16+4*(this.gaps.length+this.duplicates.length),X=Buffer.alloc(16);X.writeUInt8(this.type,0),X.writeUInt8(this.flags,1),X.writeUInt16BE(G,2),X.writeUInt32BE(this.cumulativeTsn,4),X.writeUInt32BE(this.advertisedRwnd,8),X.writeUInt16BE(this.gaps.length,12),X.writeUInt16BE(this.duplicates.length,14);let Y=Buffer.concat([X,...this.gaps.map((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}},e2=class W extends o7{constructor(G=0,X){super(G,X);if(this.flags=G,X)this.cumulativeTsn=X.readUInt32BE(0)}static type=7;get type(){return W.type}cumulativeTsn=0;get body(){let G=Buffer.alloc(4);return G.writeUInt32BE(this.cumulativeTsn,0),G}},Wx=class W extends o7{static type=8;get type(){return W.type}},Gx=class W extends o7{static type=14;get type(){return W.type}},Nr=[dq,cq,pK,iK,oK,t2,dK,e2,Wx,oq,cK,lK,Gx,nK,lq],qr=Nr.reduce((W,G)=>{return W[G.type]=G,W},{});function qU(W){let G=W%4;return G?4-G:0}function Xx(W){let G=Buffer.from(""),X=Buffer.from("");return W.forEach(([Y,J])=>{let Z=J.length+4,V=Buffer.alloc(4);V.writeUInt16BE(Y,0),V.writeUInt16BE(Z,2),G=Buffer.concat([G,X,V,J]),X=Buffer.concat([...Array(qU(Z))].map(()=>Buffer.from("\x00")))}),G}function Yx(W){let G=[],X=0;while(X<=W.length-4){let Y=W.readUInt16BE(X),J=W.readUInt16BE(X+2);G.push([Y,W.slice(X+4,X+J)]),X+=J+qU(J)}return G}function Hr(W){if(W.length<12)throw Error("SCTP packet length is less than 12 bytes");let G=W.readUInt16BE(0),X=W.readUInt16BE(2),Y=W.readUInt32BE(4),J=W.readUInt32LE(8),Z=PS(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=qr[Q.toString()];if(H)V.push(new H(N,A));else throw Error("unknown");U+=q+qU(q)}return[G,X,Y,V]}function Ar(W,G,X,Y){let J=Buffer.alloc(8);J.writeUInt16BE(W,0),J.writeUInt16BE(G,2),J.writeUInt32BE(X,4);let Z=Y.bytes,V=PS(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 zr(W){return W.map((G,X)=>[X,G])}function Ir(W){return W.reduce((G,X)=>{return G[X]=new c0,G},{})}var rK=class W{constructor(G,X,Y,J){this.requestSequence=G,this.responseSequence=X,this.lastTsn=Y,this.streams=J}static type=13;get type(){return W.type}get bytes(){let G=Buffer.from(W8.Pack("!LLL",[this.requestSequence,this.responseSequence,this.lastTsn]));return Buffer.concat([G,...this.streams.map((X)=>Buffer.from(W8.Pack("!H",[X])))])}static parse(G){let[X,Y,J]=W8.Unpack("!LLL",G),Z=[];for(let V=12;V<G.length;V+=2)Z.push(W8.Unpack("!H",G.slice(V))[0]);return new W(X,Y,J,Z)}},Jx=class W{constructor(G,X){this.requestSequence=G,this.newStreams=X}static type=17;get type(){return W.type}get bytes(){return Buffer.from(W8.Pack("!LHH",[this.requestSequence,this.newStreams,0]))}static parse(G){let[X,Y]=W8.Unpack("!LHH",G);return new W(X,Y)}},_q={ReconfigResultSuccessPerformed:1,BadSequenceNumber:5},nq=class W{constructor(G,X){this.responseSequence=G,this.result=X}static type=16;get type(){return W.type}get bytes(){return Buffer.from(W8.Pack("!LL",[this.responseSequence,this.result]))}static parse(G){let[X,Y]=W8.Unpack("!LL",G);return new W(X,Y)}},eF={13:rK,16:nq,17:Jx},t1=M1("werift/sctp/sctp"),wr=24,jr=60,WS=65535,W7=1200,fV=1,Zx=2,aK=4,GS=10,Kr=8,XS=0.125,YS=0.25,JS=3,Or=1,Dr=60,NH=4294967296,Cr=200,Tr=30,ZS=135,VS=7,US=32776,QS=49152,Mr=["new","closed","connected","connecting"],Rr=class W{constructor(G,X=5000){this.transport=G,this.port=X,this.localPort=this.port,this.transport.onData=(Y)=>{this.handleData(Y)}}flush=new c0;stateChanged=Ir(Mr);onReconfigStreams=new c0;onReceive=new c0;onSackReceived=async()=>{};associationState=1;started=!1;state="new";isServer=!0;isStopping=!1;isClosed=!1;hmacKey=Ur(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=WS;lastReceivedTsn;sackDuplicates=[];sackMisOrdered=new Set;sackNeeded=!1;sackPacketCount=0;sackHasNewDataInPacket=!1;sackImmediate=!1;sackTimeout;cwnd=3*W7;fastRecoveryExit;fastRecoveryTransmit=!1;forwardTsnChunk;flightSize=0;outboundQueue=[];outboundStreamSeq={};_outboundStreamsCount=WS;localTsn=Number(TK());lastSackedTsn=KG(this.localTsn);advancedPeerAckTsn=KG(this.localTsn);partialBytesAcked=0;sentQueue=[];transmitting=!1;transmitRequested=!1;reconfigRequestSeq=this.localTsn;reconfigResponseSeq=0;reconfigRequest;reconfigQueue=[];srtt;rttvar;rto=JS;timer1Handle;timer1Chunk;timer1Failures=0;timer2Handle;timer2Chunk;timer2Failures=0;timer3Handle;timerReconfigHandle;timerReconfigFailures=0;timerHeartbeatHandle;heartbeatInterval=Tr;ssthresh;get isStopped(){return this.isStopping||this.isClosed}get maxChannels(){if(this._inboundStreamsCount>0)return Math.min(this._inboundStreamsCount,this._outboundStreamsCount);return}static client(G,X=5000){let Y=new W(G,X);return Y.isServer=!1,Y}static server(G,X=5000){let Y=new W(G,X);return Y.isServer=!0,Y}async handleData(G){if(this.isStopped)return;let X,[,,Y,J]=Hr(G);if(J.filter((V)=>V.type===cq.type).length>0){if(J.length!=1)throw Error();X=0}else X=this.localVerificationTag;if(Y!==X)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((G)=>{t1("send delayed sack failed",G.message)})},Cr)}async sendSack(){if(this.isStopped)return;if(!this.sackNeeded)return;let G=[],X;[...this.sackMisOrdered].sort().forEach((J)=>{let Z=(J-this.lastReceivedTsn)%NH;if(J===X)G[G.length-1][1]=Z;else G.push([Z,Z]);X=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=G,await this.sendChunk(Y).catch((J)=>{t1("send sack failed",J.message)}),this.sackDuplicates=[],this.sackNeeded=!1,this.sackPacketCount=0,this.sackImmediate=!1}async receiveChunk(G){switch(G.type){case dq.type:this.receiveDataChunk(G);break;case cq.type:{if(!this.isServer)return;let X=G;t1("receive init",X),this.lastReceivedTsn=KG(X.initialTsn),this.reconfigResponseSeq=KG(X.initialTsn),this.remoteVerificationTag=X.initiateTag,this.ssthresh=X.advertisedRwnd,this.peerAdvertisedRwnd=X.advertisedRwnd,this.getExtensions(X.params),this._inboundStreamsCount=Math.min(X.outboundStreams,this._inboundStreamsMax),this._outboundStreamsCount=Math.min(this._outboundStreamsCount,X.inboundStreams);let Y=new 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(W8.Pack("!L",[J]));Z=Buffer.concat([Z,tF("sha1",this.hmacKey).update(Z).digest()]),Y.params.push([VS,Z]),t1("send initAck",Y),await this.sendChunk(Y).catch((V)=>{t1("send initAck failed",V.message)})}break;case pK.type:{if(this.associationState!=2)return;let X=G;this.timer1Cancel(),this.lastReceivedTsn=KG(X.initialTsn),this.reconfigResponseSeq=KG(X.initialTsn),this.remoteVerificationTag=X.initiateTag,this.ssthresh=X.advertisedRwnd,this.peerAdvertisedRwnd=X.advertisedRwnd,this.getExtensions(X.params),this._inboundStreamsCount=Math.min(X.outboundStreams,this._inboundStreamsMax),this._outboundStreamsCount=Math.min(this._outboundStreamsCount,X.inboundStreams);let Y=new cK;for(let[J,Z]of X.params)if(J===VS){Y.body=Z;break}await this.sendChunk(Y).catch((J)=>{t1("send echo failed",J.message)}),this.timer1Start(Y),this.setState(3)}break;case iK.type:await this.receiveSackChunk(G);break;case oK.type:{let X=new t2;X.params=G.params,await this.sendChunk(X).catch((Y)=>{t1("send heartbeat ack failed",Y.message)})}break;case dK.type:this.setState(1);break;case e2.type:{this.timer2Cancel(),this.setState(7);let X=new Wx;await this.sendChunk(X).catch((Y)=>{t1("send shutdown ack failed",Y.message)}),this.t2Start(X),this.setState(6)}break;case oq.type:t1("ErrorChunk",G.descriptions);break;case cK.type:{if(!this.isServer)return;let Y=G.body,J=tF("sha1",this.hmacKey).update(Y.slice(0,4)).digest();if(Y?.length!=wr||!Y.slice(4).equals(J)){t1("x State cookie is invalid");return}let Z=Date.now()/1000,V=W8.Unpack("!L",Y)[0];if(V<Z-jr||V>Z){let Q=new oq(0,void 0);Q.params.push([oq.CODE.StaleCookieError,Buffer.concat([...Array(8)].map(()=>Buffer.from("\x00")))]),await this.sendChunk(Q).catch((N)=>{t1("send errorChunk failed",N.message)});return}let U=new lK;await this.sendChunk(U).catch((Q)=>{t1("send cookieAck failed",Q.message)}),this.setState(4)}break;case lK.type:{if(this.associationState!=3)return;this.timer1Cancel(),this.setState(4)}break;case Gx.type:{if(this.associationState!=8)return;this.timer2Cancel(),this.setState(1)}break;case nK.type:{if(this.associationState!=4)return;let X=G;for(let[Y,J]of X.params){let Z=eF[Y];if(Z)await this.receiveReconfigParam(Z.parse(J))}}break;case lq.type:this.receiveForwardTsnChunk(G);break}}getExtensions(G){for(let[X,Y]of G)if(X===QS)this.remotePartialReliability=!0;else if(X===US)this.remoteExtensions=[...Y]}async receiveReconfigParam(G){switch(t1("receiveReconfigParam",eF[G.type]),G.type){case rK.type:{let X=G,Y=new nq(X.requestSequence,_q.ReconfigResultSuccessPerformed);this.reconfigResponseSeq=X.requestSequence,await this.sendReconfigParam(Y),await Promise.all(X.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(X.streams)}break;case nq.type:{let X=G;if(X.result!==_q.ReconfigResultSuccessPerformed)t1("OutgoingSSNResetRequestParam failed",Object.keys(_q).find((Y)=>_q[Y]===X.result));else if(X.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=JS,this.timerReconfigFailures=0,this.reconfigQueue.length>0)await this.transmitReconfigRequest()}}break;case Jx.type:{let X=G;this._inboundStreamsCount+=X.newStreams;let Y=new nq(X.requestSequence,1);this.reconfigResponseSeq=X.requestSequence,await this.sendReconfigParam(Y)}break}}receiveDataChunk(G){if(this.sackNeeded=!0,this.markReceived(G.tsn)){this.sackImmediate=!0;return}if(this.sackHasNewDataInPacket=!0,this.sackImmediate=!0,(G.flags&fV)===0)this.sackImmediate=!0;if(this.sackMisOrdered.size>0)this.sackImmediate=!0;let X=this.getInboundStream(G.streamId);X.addChunk(G),this.advertisedRwnd-=G.userData.length;for(let Y of X.popMessages())this.advertisedRwnd+=Y[2].length,this.receive(...Y)}async receiveSackChunk(G){if(f4(this.lastSackedTsn,G.cumulativeTsn))return;let X=Date.now()/1000;this.lastSackedTsn=G.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(X-U.sentTime)}if(!this.sentQueue.length)this.sentQueue=[];let V=!1;if(G.gaps.length>0){let U=new Set,Q;G.gaps.forEach((q)=>{for(let A=q[0];A<q[1]+1;A++)Q=(G.cumulativeTsn+A)%NH,U.add(Q)});let N=G.cumulativeTsn;for(let q of this.sentQueue){if(f4(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(f4(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,W7);else if(this.partialBytesAcked+=Z,this.partialBytesAcked>=this.cwnd)this.partialBytesAcked-=this.cwnd,this.cwnd+=W7}if(V)this.ssthresh=Math.max(Math.floor(this.cwnd/2),4*W7),this.cwnd=this.ssthresh,this.partialBytesAcked=0,this.fastRecoveryExit=this.sentQueue[this.sentQueue.length-1].tsn,this.fastRecoveryTransmit=!0}else if(mV(G.cumulativeTsn,this.fastRecoveryExit))this.fastRecoveryExit=void 0;if(this.sentQueue.length===0)this.timer3Cancel();else if(J>0)this.timer3Restart();this.peerAdvertisedRwnd=G.advertisedRwnd,this.updateAdvancedPeerAckPoint(),await this.onSackReceived(),await this.transmit()}receiveForwardTsnChunk(G){if(this.sackNeeded=!0,this.sackImmediate=!0,mV(this.lastReceivedTsn,G.cumulativeTsn))return;let X=(Y)=>f4(Y,this.lastReceivedTsn);this.lastReceivedTsn=G.cumulativeTsn,this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(X));for(let Y of[...this.sackMisOrdered].sort())if(Y===vY(this.lastReceivedTsn))this.lastReceivedTsn=Y;else break;this.sackDuplicates=this.sackDuplicates.filter(X),this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(X));for(let[Y,J]of G.streams){let Z=this.getInboundStream(Y);Z.streamSequenceNumber=P9(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(G){if(!this.srtt)this.rttvar=G/2,this.srtt=G;else this.rttvar=(1-YS)*this.rttvar+YS*Math.abs(this.srtt-G),this.srtt=(1-XS)*this.srtt+XS*G;this.rto=Math.max(Or,Math.min(this.srtt+4*this.rttvar,Dr))}receive(G,X,Y){this.onReceive.execute(G,X,Y)}getInboundStream(G){if(!this.inboundStreams[G])this.inboundStreams[G]=new Pr;return this.inboundStreams[G]}markReceived(G){if(mV(this.lastReceivedTsn,G)||this.sackMisOrdered.has(G))return this.sackDuplicates.push(G),!0;this.sackMisOrdered.add(G);for(let Y of[...this.sackMisOrdered].sort())if(Y===vY(this.lastReceivedTsn))this.lastReceivedTsn=Y;else break;let X=(Y)=>f4(Y,this.lastReceivedTsn);return this.sackDuplicates=this.sackDuplicates.filter(X),this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(X)),!1}send=async(G,X,Y,{expiry:J,maxRetransmits:Z,ordered:V}={expiry:void 0,maxRetransmits:void 0,ordered:!0})=>{let U=V?this.outboundStreamSeq[G]||0:0,Q=Math.ceil(Y.length/W7),N=0,q=[];for(let A=0;A<Q;A++){let H=new dq(0,void 0);if(H.flags=0,!V)H.flags=aK;if(A===0)H.flags|=Zx;if(A===Q-1)H.flags|=fV;H.tsn=this.localTsn,H.streamId=G,H.streamSeqNum=U,H.protocol=X,H.userData=Y.slice(N,N+W7),H.bookSize=H.userData.length,H.expiry=J,H.maxRetransmits=Z,N+=W7,this.localTsn=vY(this.localTsn),q.push(H)}if(q.forEach((A)=>{this.outboundQueue.push(A)}),V)this.outboundStreamSeq[G]=P9(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)=>{t1("send forwardTsn failed",J.message)}),this.forwardTsnChunk=void 0,!this.timer3Handle)this.timer3Start()}let G=this.fastRecoveryExit!=null?2*W7:4*W7,X=Math.min(this.flightSize+G,this.cwnd),Y=!0;for(let J of this.sentQueue){if(J.retransmit){if(this.fastRecoveryTransmit)this.fastRecoveryTransmit=!1;else if(this.flightSize>=X)break;if(this.flightSizeIncrease(J),J.misses=0,J.retransmit=!1,J.sentCount++,await this.sendChunk(J).catch((Z)=>{t1("send data failed",Z.message)}),Y)this.timer3Restart()}Y=!1}while(this.outboundQueue.length>0&&this.flightSize<X&&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)=>{t1("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 G=[...new Set(this.reconfigQueue)],X=G.slice(0,ZS);this.reconfigQueue=G.slice(ZS);let Y=new rK(this.reconfigRequestSeq,this.reconfigResponseSeq,KG(this.localTsn),X);this.reconfigRequestSeq=vY(this.reconfigRequestSeq),this.reconfigRequest=Y,await this.sendReconfigParam(Y),this.timerReconfigHandleStart()}}async sendReconfigParam(G){t1("sendReconfigParam",G);let X=new nK;X.params.push([G.type,G.bytes]),await this.sendChunk(X).catch((Y)=>{t1("send reconfig failed",Y.message)})}async sendResetRequest(G){t1("sendResetRequest",G);let X=new dq(0,void 0);if(X.streamId=G,this.outboundQueue.push(X),!this.timer3Handle)await this.transmit()}flightSizeIncrease(G){this.flightSize+=G.bookSize}flightSizeDecrease(G){this.flightSize=Math.max(0,this.flightSize-G.bookSize)}timer1Start(G){if(this.timer1Handle)throw Error();this.timer1Chunk=G,this.timer1Failures=0,this.timer1Handle=setTimeout(this.timer1Expired,this.rto*1000)}timer1Expired=()=>{if(this.isStopped)return;if(this.timer1Failures++,this.timer1Handle=void 0,this.timer1Failures>Kr)this.setState(1);else{if(setImmediate(()=>{if(this.isStopped)return;this.sendChunk(this.timer1Chunk).catch((G)=>{t1("send timer1 chunk failed",G.message)})}),this.isStopped)return;this.timer1Handle=setTimeout(this.timer1Expired,this.rto*1000)}};timer1Cancel(){if(this.timer1Handle)clearTimeout(this.timer1Handle),this.timer1Handle=void 0,this.timer1Chunk=void 0}t2Start(G){if(this.timer2Handle)throw Error();this.timer2Chunk=G,this.timer2Failures=0,this.timer2Handle=setTimeout(this.timer2Expired,this.rto*1000)}timer2Expired=()=>{if(this.isStopped)return;if(this.timer2Failures++,this.timer2Handle=void 0,this.timer2Failures>GS)this.setState(1);else{if(setImmediate(()=>{if(this.isStopped)return;this.sendChunk(this.timer2Chunk).catch((G)=>{t1("send timer2Chunk failed",G.message)})}),this.isStopped)return;this.timer2Handle=setTimeout(this.timer2Expired,this.rto*1000)}};timer2Cancel(){if(this.timer2Handle)clearTimeout(this.timer2Handle),this.timer2Handle=void 0,this.timer2Chunk=void 0}timer3Start(){if(this.isStopped)return;if(this.timer3Handle)throw Error();this.timer3Handle=setTimeout(this.timer3Expired,this.rto*1000)}timer3Restart(){if(this.isStopped)return;this.timer3Cancel(),this.timer3Handle=setTimeout(this.timer3Expired,this.rto*1000)}timer3Expired=()=>{if(this.isStopped)return;this.timer3Handle=void 0,this.sentQueue.forEach((G)=>{if(!this.maybeAbandon(G))G.retransmit=!0}),this.updateAdvancedPeerAckPoint(),this.fastRecoveryExit=void 0,this.flightSize=0,this.partialBytesAcked=0,this.ssthresh=Math.max(Math.floor(this.cwnd/2),4*W7),this.cwnd=W7,this.transmit()};timer3Cancel(){if(this.timer3Handle)clearTimeout(this.timer3Handle),this.timer3Handle=void 0}timerReconfigHandleStart(){if(this.isStopped)return;if(this.timerReconfigHandle)return;t1("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>GS)t1("timerReconfigFailures",this.timerReconfigFailures),this.setState(1),this.timerReconfigHandle=void 0;else if(this.reconfigRequest){if(t1("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)t1("timerReconfigCancel"),clearTimeout(this.timerReconfigHandle),this.timerReconfigHandle=void 0,this.timerReconfigFailures=0}heartbeatStart(){if(this.timerHeartbeatHandle||this.associationState!==4)return;this.timerHeartbeatHandle=setTimeout(this.timerHeartbeatExpired,(this.rto+this.heartbeatInterval)*1000)}heartbeatRestart(){this.heartbeatCancel(),this.heartbeatStart()}heartbeatCancel(){if(this.timerHeartbeatHandle)clearTimeout(this.timerHeartbeatHandle),this.timerHeartbeatHandle=void 0}timerHeartbeatExpired=async()=>{if(this.timerHeartbeatHandle=void 0,this.associationState!==4)return;if(this.flightSize===0&&this.outboundQueue.length===0){let G=new oK;G.params.push([1,Buffer.from(W8.Pack("!L",[Math.floor(Date.now()/1000)]))]),await this.sendChunk(G).catch((X)=>{t1("send heartbeat failed",X.message)})}this.heartbeatStart()};setHeartbeatInterval(G){if(G<=0)throw Error("heartbeat interval must be > 0");this.heartbeatInterval=G,this.heartbeatRestart()}updateAdvancedPeerAckPoint(){if(f4(this.lastSackedTsn,this.advancedPeerAckTsn))this.advancedPeerAckTsn=this.lastSackedTsn;let G=0,X={};while(this.sentQueue.length>0&&this.sentQueue[0].abandoned){let Y=this.sentQueue.shift();if(this.advancedPeerAckTsn=Y.tsn,G++,!(Y.flags&aK))X[Y.streamId]=Y.streamSeqNum}if(!this.sentQueue.length)this.sentQueue=[];if(G)this.forwardTsnChunk=new lq(0,void 0),this.forwardTsnChunk.cumulativeTsn=this.advancedPeerAckTsn,this.forwardTsnChunk.streams=Object.entries(X).map(([Y,J])=>[Number(Y),J])}maybeAbandon(G){if(G.abandoned)return!0;if(!(!!G.maxRetransmits&&G.maxRetransmits<G.sentCount||!!G.expiry&&G.expiry<Date.now()/1000))return!1;let Y=this.sentQueue.findIndex((J)=>J.type===G.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 Lr(65536)}setRemotePort(G){this.remotePort=G}async start(G){if(!this.started){if(this.started=!0,this.setConnectionState("connecting"),G)this.setRemotePort(G);if(!this.isServer)await this.init()}}async init(){let G=new cq;G.initiateTag=this.localVerificationTag,G.advertisedRwnd=this.advertisedRwnd,G.outboundStreams=this._outboundStreamsCount,G.inboundStreams=this._inboundStreamsMax,G.initialTsn=this.localTsn,this.setExtensions(G.params),t1("send init",G);try{await this.sendChunk(G),this.timer1Start(G),this.setState(2)}catch(X){t1("send init failed",X.message)}}setExtensions(G){let X=[];if(this.localPartialReliability)G.push([QS,Buffer.from("")]),X.push(lq.type);X.push(Qr.type),G.push([US,Buffer.from(X)])}async sendChunk(G){if(this.state==="closed")return;if(this.remotePort===void 0)throw Error("invalid remote port");let X=Ar(this.localPort,this.remotePort,this.remoteVerificationTag,G);await this.transport.send(X)}setState(G){if(G!=this.associationState)this.associationState=G;if(G===4)this.isStopping=!1,this.isClosed=!1,this.setConnectionState("connected"),this.heartbeatStart();else if(G===1){if(this.isClosed=!0,this.timer1Cancel(),this.timer2Cancel(),this.timer3Cancel(),this.timerReconfigCancel(),this.heartbeatCancel(),this.sackTimeout)clearTimeout(this.sackTimeout),this.sackTimeout=void 0;this.setConnectionState("closed"),this.removeAllListeners()}}setConnectionState(G){this.state=G,t1("setConnectionState",G),this.stateChanged[G].execute()}async stop(){if(this.isStopped){this.setState(1);return}if(this.isStopping=!0,this.transport.onData=void 0,this.sackTimeout)clearTimeout(this.sackTimeout),this.sackTimeout=void 0;if(this.associationState!==1)await this.abort();this.setState(1),clearTimeout(this.timer1Handle),clearTimeout(this.timer2Handle),clearTimeout(this.timer3Handle),clearTimeout(this.timerReconfigHandle),clearTimeout(this.timerHeartbeatHandle),clearTimeout(this.sackTimeout)}async abort(){let G=new dK;await this.sendChunk(G).catch((X)=>{t1("send abort failed",X.message)})}removeAllListeners(){Object.values(this.stateChanged).forEach((G)=>G.allUnsubscribe())}},Pr=class{reassembly=[];streamSequenceNumber=0;constructor(){}addChunk(W){if(this.reassembly.length===0||f4(W.tsn,this.reassembly[this.reassembly.length-1].tsn)){this.reassembly.push(W);return}for(let[G,X]of zr(this.reassembly)){if(X.tsn===W.tsn)throw Error("duplicate chunk in reassembly");if(f4(X.tsn,W.tsn)){this.reassembly.splice(G,0,W);break}}}*popMessages(){let W=0,G,X,Y;while(W<this.reassembly.length){let J=this.reassembly[W];if(G===void 0){if(Y=!(J.flags&aK),!(J.flags&Zx))if(Y)break;else{W++;continue}if(Y&&LS(J.streamSeqNum,this.streamSequenceNumber))break;X=J.tsn,G=W}else if(J.tsn!==X)if(Y)break;else{G=void 0,W++;continue}if(J.flags&fV){let Z=this.reassembly.slice(G,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,G),...this.reassembly.slice(W+1)],Y&&J.streamSeqNum===this.streamSequenceNumber)this.streamSequenceNumber=P9(this.streamSequenceNumber,1);W=G,yield[J.streamId,J.protocol,V]}else W++;X=vY(X)}}pruneChunks(W){let G=-1,X=0;for(let[Y,J]of this.reassembly.entries())if(mV(W,J.tsn))G=Y,X+=J.userData.length;else break;return this.reassembly=this.reassembly.slice(G+1),X}},Lr=class{constructor(W){this.maxMessageSize=W}};function KG(W){return(W-1)%NH}function vY(W){return(W+1)%NH}var xY=M1("werift:packages/webrtc/src/transport/sctp.ts"),pV=65536,Br=class W{constructor(G=5000,X=pV){this.port=G,this.maxMessageSize=X}dtlsTransport;sctp;onDataChannel=new c0;id=Vr().toString();mid;mLineIndex;bundled=!1;dataChannels={};remoteMaxMessageSize=pV;dataChannelQueue=[];dataChannelId;eventDisposer=[];setDtlsTransport(G){if(this.dtlsTransport&&this.dtlsTransport.id===G.id)return;this.eventDisposer.forEach((X)=>X()),this.dtlsTransport=G,this.sctp=new Rr(new Er(this.dtlsTransport),this.port),this.eventDisposer=[...[this.sctp.onReceive.subscribe(this.datachannelReceive),this.sctp.onReconfigStreams.subscribe((X)=>{X.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((X)=>{if(X.negotiated&&X.readyState!=="open")X.setReadyState("open")}),this.dataChannelFlush()}),this.sctp.stateChanged.closed.subscribe(()=>{Object.values(this.dataChannels).forEach((X)=>{X.setReadyState("closed")}),this.dataChannels={}}),this.dtlsTransport.onStateChange.subscribe((X)=>{if(X==="closed")this.sctp.setState(1)})].map((X)=>X.unSubscribe),()=>this.sctp.onSackReceived=async()=>{}],this.sctp.onSackReceived=async()=>{await this.dataChannelFlush()}}get isServer(){return this.dtlsTransport.iceTransport.role!=="controlling"}channelByLabel(G){return Object.values(this.dataChannels).find((X)=>X.label===G)}datachannelReceive=async(G,X,Y)=>{if(X===kq&&Y.length>0)switch(xY("DCEP",G,X,Y),Y[0]){case pF:{if(Y.length<12){xY("DATA_CHANNEL_OPEN data.length not enough");return}if(!Object.keys(this.dataChannels).includes(G.toString())){let[,Z,,V,U,Q]=W8.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:G,label:q,protocol:A});let H=(Z&3)===1?V:void 0,I=(Z&3)===2?V:void 0,w=new _2({label:q,ordered:(Z&128)===0,maxPacketLifeTime:I,maxRetransmits:H,protocol:A,id:G}),O=new k2(this,w,!1);O.isCreatedByRemote=!0,this.dataChannels[G]=O,this.onDataChannel.execute(O),O.setReadyState("open")}else xY("datachannel already opened","retransmit ack");let J=this.dataChannels[G];this.dataChannelQueue.push([J,kq,Buffer.from(W8.Pack("!B",[fF]))]),await this.dataChannelFlush()}break;case fF:{xY("DATA_CHANNEL_ACK",G,X);let J=this.dataChannels[G];if(!J)throw Error("channel not found");J.setReadyState("open")}break}else{let J=this.dataChannels[G];if(J){let Z=(()=>{switch(X){case cF:return Y.toString("utf8");case Ri:return"";case lF:return Y;case Pi: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(G){if(G.id==null)throw Error();if(this.dataChannels[G.id])throw Error();if(this.dataChannels[G.id]=G,this.sctp.associationState===4)G.setReadyState("open")}dataChannelOpen(G){if(G.id){if(this.dataChannels[G.id])throw Error(`Data channel with ID ${G.id} already registered`);this.dataChannels[G.id]=G}let X=Mi,Y=0,J=0;if(!G.ordered)X=128;if(G.maxRetransmits)X=1,J=G.maxRetransmits;else if(G.maxPacketLifeTime)X=2,J=G.maxPacketLifeTime;let Z=W8.Pack("!BBHLHH",[pF,X,Y,J,G.label.length,G.protocol.length]),V=Buffer.concat([Buffer.from(Z),Buffer.from(G.label,"utf8"),Buffer.from(G.protocol,"utf8")]);this.dataChannelQueue.push([G,kq,V]),this.dataChannelFlush()}async dataChannelFlush(){if(this.sctp.associationState!=4)return;while(this.dataChannelQueue.length>0){let[G,X,Y]=this.dataChannelQueue.shift(),J=G.id;if(J===void 0){J=this.dataChannelId;while(Object.keys(this.dataChannels).includes(J.toString()))J+=2;this.dataChannels[J]=G,G.setId(J)}if(X===kq)await this.sctp.send(J,X,Y,{ordered:!0});else{let Z=G.maxPacketLifeTime?Date.now()+G.maxPacketLifeTime/1000:void 0;await this.sctp.send(J,X,Y,{expiry:Z,maxRetransmits:G.maxRetransmits,ordered:G.ordered}),G.addBufferedAmount(-Y.length)}}this.dataChannelQueue=[]}assertSendableMessageSize(G){if(this.remoteMaxMessageSize!==0&&G>this.remoteMaxMessageSize)throw Error(`max-message-size exceeded: ${G} > ${this.remoteMaxMessageSize}`)}datachannelSend=(G,X)=>{let Y=Buffer.isBuffer(X)?X:Buffer.from(X),J=qi(X);if(this.assertSendableMessageSize(J),G.addBufferedAmount(J),this.dataChannelQueue.push(typeof X==="string"?[G,cF,Y]:[G,lF,Y]),this.sctp.associationState!==4)xY("sctp not established",this.sctp.associationState);return this.dataChannelFlush(),J};getCapabilities(){return W.getCapabilities(this.maxMessageSize)}static getCapabilities(G=pV){return new Vx(G)}setRemoteMaxMessageSize(G){this.remoteMaxMessageSize=G??pV}setRemotePort(G){this.sctp.setRemotePort(G)}async start(G){if(this.isServer)this.dataChannelId=0;else this.dataChannelId=1;this.sctp.isServer=this.isServer,await this.sctp.start(G)}async stop(){this.dtlsTransport.dataReceiver=()=>{},await this.sctp.stop()}dataChannelClose(G){if(!["closing","closed"].includes(G.readyState))if(G.setReadyState("closing"),this.sctp.associationState===4){if(!this.sctp.reconfigQueue.includes(G.id))this.sctp.reconfigQueue.push(G.id);if(this.sctp.reconfigQueue.length===1)this.sctp.transmitReconfigRequest()}else{if(this.dataChannelQueue=this.dataChannelQueue.filter((X)=>X[0].id!==G.id),this.sctp.reconfigQueue=this.sctp.reconfigQueue.filter((X)=>X!==G.id),G.id)delete this.dataChannels[G.id];G.setReadyState("closed")}}},Vx=class{constructor(W){this.maxMessageSize=W}},Er=class{constructor(W){this.dtls=W}set onData(W){this.dtls.dataReceiver=W}send=(W)=>{return this.dtls.sendData(W)};close(){}},iq=class W{version=0;origin;name="-";time="0 0";host;group=[];extMapAllowMixed=!0;msidSemantic=[];media=[];type;dtlsRole;iceOptions;iceLite;icePassword;iceUsernameFragment;dtlsFingerprints=[];static parse(G){let[X,Y]=$r(G),J=new W;X.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=oF[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 s2({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,M]=OK(w);switch(O){case"candidate":if(!M)throw Error();H.iceCandidates.push(Qx(M));break;case"end-of-candidates":H.iceCandidatesComplete=!0;break;case"extmap":{let[S,v]=M.split(" ");if(S.includes("/"))[S]=S.split("/");H.rtp.headerExtensions.push(new Ai({id:Number.parseInt(S),uri:v}))}break;case"fingerprint":{if(!M)throw Error();let[S,v]=M.split(" ");H.dtlsParams?.fingerprints.push(new mK(S,v))}break;case"ice-options":H.iceOptions=M;break;case"ice-pwd":H.iceParams.password=M;break;case"ice-ufrag":H.iceParams.usernameFragment=M;break;case"ice-lite":H.iceParams.iceLite=!0;break;case"max-message-size":H.sctpCapabilities=new Vx(Number.parseInt(M,10));break;case"mid":H.rtp.muxId=M;break;case"msid":H.msid=M;break;case"rtcp":{let[S,v]=m4(M," ");H.rtcpPort=Number.parseInt(S),H.rtcpHost=KK(v)}break;case"rtcp-mux":H.rtcpMux=!0;break;case"setup":H.dtlsParams.role=oF[M];break;case"recvonly":case"sendonly":case"sendrecv":case"inactive":H.direction=O;break;case"rtpmap":{let[S,v]=m4(M," "),[p,g,c]=v.split("/"),l;if(H.kind==="audio")l=c?Number.parseInt(c):1;let h=new EG({mimeType:H.kind+"/"+p,channels:l,clockRate:Number.parseInt(g),payloadType:Number.parseInt(S)});H.rtp.codecs.push(h)}break;case"sctpmap":{if(!M)throw Error();let[S,v]=m4(M," ");H.sctpMap[Number.parseInt(S)]=v,H.sctpPort=Number.parseInt(S)}break;case"sctp-port":if(!M)throw Error();H.sctpPort=Number.parseInt(M);break;case"ssrc":{let[S,v]=m4(M," "),p=Number.parseInt(S),[g,c]=m4(v,":"),l=H.ssrc.find((h)=>h.ssrc===p);if(!l)l=new eK({ssrc:p}),H.ssrc.push(l);if(b2.includes(g))l[g]=c}break;case"ssrc-group":DK(H.ssrcGroup,M);break;case"rid":{let[S,v]=m4(M," ");H.simulcastParameters.push(new y2({rid:S,direction:v}))}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,M]=OK(w);if(O==="fmtp"){let[S,v]=m4(M," "),p=I(Number(S));p.parameters=v}else if(O==="rtcp-fb"){let[S,v,p]=M.split(" ");H.rtp.codecs.forEach((g)=>{if(["*",g.payloadType.toString()].includes(S))g.rtcpFeedback.push(new zi({type:v,parameter:p}))})}}})}),J}webrtcTrackId(G){if(G.msid?.includes(" ")){let X=G.msid.split(" ");for(let Y of this.msidSemantic)if(Y.semantic==="WMS"&&(Y.items.includes(X[0])||Y.items.includes("*")))return X[1]}return}get string(){let G=[`v=${this.version}`,`o=${this.origin}`,`s=${this.name}`];if(this.host)G.push(`c=${tK(this.host)}`);if(G.push(`t=${this.time}`),this.group.forEach((J)=>G.push(`a=group:${J.str}`)),this.extMapAllowMixed)G.push("a=extmap-allow-mixed");this.msidSemantic.forEach((J)=>G.push(`a=msid-semantic:${J.str}`));let X=this.media.map((J)=>J.toString()).join("");return G.join(`\r
243
243
  `)+`\r
244
244
  `+X}toJSON(){return new Fr(this.string,this.type)}toSdp(){return{type:this.type,sdp:this.string}}},sK=class{constructor(W,G,X,Y){this.kind=W,this.port=G,this.profile=X,this.fmt=Y}host;direction;msid;rtcpPort;rtcpHost;rtcpMux=!1;ssrc=[];ssrcGroup=[];rtp={codecs:[],headerExtensions:[]};sctpCapabilities;sctpMap={};sctpPort;dtlsParams;iceParams;iceCandidates=[];iceCandidatesComplete=!1;iceOptions;simulcastParameters=[];toString(){let W=[];if(W.push(`m=${this.kind} ${this.port} ${this.profile} ${this.fmt.map((G)=>G.toString()).join(" ")}`),this.host)W.push(`c=${tK(this.host)}`);if(this.iceCandidates.forEach((G)=>{W.push(`a=candidate:${Ux(G)}`)}),this.iceCandidatesComplete)W.push("a=end-of-candidates");if(this.iceParams?.usernameFragment)W.push(`a=ice-ufrag:${this.iceParams.usernameFragment}`);if(this.iceParams?.password)W.push(`a=ice-pwd:${this.iceParams.password}`);if(this.iceParams?.iceLite)W.push("a=ice-lite");if(this.iceOptions)W.push(`a=ice-options:${this.iceOptions}`);if(this.dtlsParams)this.dtlsParams.fingerprints.forEach((G)=>{W.push(`a=fingerprint:${G.algorithm} ${G.value}`)}),W.push(`a=setup:${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((G)=>{W.push(`a=ssrc-group:${G.str}`)}),this.ssrc.forEach((G)=>{b2.forEach((X)=>{let Y=G[X];if(Y!==void 0)W.push(`a=ssrc:${G.ssrc} ${X}:${Y}`)})}),this.rtp.codecs.forEach((G)=>{if(W.push(`a=rtpmap:${G.payloadType} ${G.str}`),G.rtcpFeedback.forEach((X)=>{let Y=X.type;if(X.parameter)Y+=` ${X.parameter}`;W.push(`a=rtcp-fb:${G.payloadType} ${Y}`)}),G.parameters)W.push(`a=fmtp:${G.payloadType} ${G.parameters}`)}),Object.keys(this.sctpMap).forEach((G)=>{let X=this.sctpMap[Number(G)];W.push(`a=sctpmap:${G} ${X}`)}),this.sctpPort)W.push(`a=sctp-port:${this.sctpPort}`);if(this.sctpCapabilities)W.push(`a=max-message-size:${this.sctpCapabilities.maxMessageSize}`);if(this.rtp.headerExtensions.forEach((G)=>W.push(`a=extmap:${G.id} ${G.uri}`)),this.simulcastParameters.length){this.simulcastParameters.forEach((J)=>{W.push(`a=rid:${J.rid} ${J.direction}`)});let G="a=simulcast:",X=this.simulcastParameters.filter((J)=>J.direction==="recv");if(X.length)G+=`recv ${X.map((J)=>J.rid).join(";")} `;let Y=this.simulcastParameters.filter((J)=>J.direction==="send");if(Y.length)G+=`send ${Y.map((J)=>J.rid).join(";")}`;W.push(G)}return W.join(`\r
245
245
  `)+`\r
246
246
  `}},oV=class{constructor(W,G){this.semantic=W,this.items=G}get str(){return`${this.semantic} ${this.items.join(" ")}`}};function KK(W){let G=W.match(/^IN (IP4|IP6) ([^ ]+)$/);if(!G)throw Error("exception");return G[2]}function tK(W){return`IN IP${ii(W)?4:6} ${W}`}function Ux(W){let G=`${W.foundation} ${W.component} ${W.protocol} ${W.priority} ${W.ip} ${W.port} typ ${W.type}`;if(W.relatedAddress!=null)G+=` raddr ${W.relatedAddress}`;if(W.relatedPort!=null)G+=` rport ${W.relatedPort}`;if(W.tcpType!=null)G+=` tcptype ${W.tcpType}`;if(W.generation!=null)G+=` generation ${W.generation}`;if(W.ufrag!=null)G+=` ufrag ${W.ufrag}`;return G}function $r(W){let G=[],X=[],Y=W.split(`\r
247
247
  `);if(Y.length===1)Y=W.split(`
248
- `);return Y.forEach((J)=>{if(J.startsWith("m="))X.push([J]);else if(X.length>0)X[X.length-1].push(J);else G.push(J)}),[G,X]}function OK(W){if(W.includes(":")){let G=m4(W.slice(2),":");return[G[0],G[1]]}else return[W.slice(2),void 0]}function DK(W,G,X=(Y)=>Y.toString()){let Y=G.split(" ");if(Y.length>0)W.push(new oV(Y[0],Y.slice(1).map(X)))}function Qx(W){let G=DG.fromSdp(W);return eV(G)}var Fr=class{constructor(W,G){this.sdp=W,this.type=G}static isThis(W){if(typeof W?.sdp==="string")return!0}toSdp(){return{sdp:this.sdp,type:this.type}}};function NS(W,G){let Y=new Bq(ni(64)).toString().slice(0,8),J=0;G.origin=`- ${Y} 0 IN IP4 0.0.0.0`,G.msidSemantic.push(new oV("WMS",["*"])),G.type=W}function qH(W){let G={};return W.split(";").forEach((X)=>{if(X.includes("=")){let[Y,J]=m4(X,"=");if(Bi.includes(Y))G[Y]=Number(J);else G[Y]=J}else if(X.includes(":")){let[Y,J]=X.split(":");G[Y]=Number.isNaN(Number(J))?J:Number(J)}else G[X]=void 0}),G}var eK=class{ssrc;cname;msid;msLabel;label;constructor(W){Object.assign(this,W)}},yq=M1("werift:packages/webrtc/src/media/rtpReceiver.ts"),Nx=class{constructor(W,G,X){this.config=W,this.kind=G,this.rtcpSsrc=X}codecs={};get codecArray(){return Object.values(this.codecs).sort((W,G)=>W.payloadType-G.payloadType)}ssrcByRtx={};nack=new pi(this);audioRedHandler=new Xn;type="receiver";uuid=Di().toString();tracks=[];trackBySSRC={};trackByRID={};lastSRtimestamp={};receiveLastSRTimestamp={};onPacketLost=this.nack.onPacketLost;onRtcp=new c0;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===Hi().type)}get pliEnabled(){return this.codecArray[0]?.rtcpFeedback.find((W)=>W.type===QU().type)}prepareReceive(W){W.codecs.forEach((G)=>{this.codecs[G.payloadType]=G}),W.encodings.forEach((G)=>{if(G.rtx)this.ssrcByRtx[G.rtx.ssrc]=G.ssrc})}setupTWCC(W){if(this.twccEnabled&&!this.receiverTWCC)this.receiverTWCC=new di(this.dtlsTransport,this.rtcpSsrc,W)}addTrack(W){if(this.tracks.find((X)=>{if(X.rid)return X.rid===W.rid;if(X.ssrc)return X.ssrc===W.ssrc}))return!1;if(this.tracks.push(W),W.ssrc)this.trackBySSRC[W.ssrc]=W;if(W.rid)this.trackByRID[W.rid]=W;return!0}stop(){if(this.stopped=!0,this.rtcpRunning=!1,this.rtcpCancel.abort(),this.receiverTWCC)this.receiverTWCC.twccRunning=!1;this.nack.close()}async runRtcp(){if(this.rtcpRunning||this.stopped)return;this.rtcpRunning=!0;try{while(this.rtcpRunning){await wK(500+Math.random()*1000,void 0,{signal:this.rtcpCancel.signal});let W=Object.entries(this.remoteStreams).map(([X,Y])=>{let J=0,Z=0;if(this.lastSRtimestamp[X]){J=this.lastSRtimestamp[X];let V=QH()-this.receiveLastSRTimestamp[X];if(V>0&&V<65536)Z=lV(V*65536)}return new XO({ssrc:Number(X),fractionLost:Y.fraction_lost,packetsLost:Y.packets_lost,highestSequence:Y.max_seq,jitter:Y.jitter,lsr:J,dlsr:Z})}),G=new rV({ssrc:this.rtcpSsrc,reports:W});try{if(this.config.debug.receiverReportDelay)await wK(this.config.debug.receiverReportDelay);await this.dtlsTransport.sendRtcp([G])}catch(X){yq("sendRtcp failed",X),await wK(500+Math.random()*1000)}}}catch(W){}}async getStats(){let W=$G(),G=[];if(!this.dtlsTransport)return G;let X=Q8("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:Q8("inbound-rtp",Y.ssrc),timestamp:W,ssrc:Y.ssrc,kind:this.kind,transportId:X,codecId:this.codecs[0]?Q8("codec",this.codecs[0].payloadType,X):void 0,mid:this.sdesMid,trackIdentifier:Y.id,packetsReceived:J.packets_received,packetsLost:J.packets_lost,jitter:J.jitter};if(G.push(Z),this.lastSRtimestamp[Y.ssrc]){let V={type:"remote-outbound-rtp",id:Q8("remote-outbound-rtp",Y.ssrc),timestamp:W,ssrc:Y.ssrc,kind:this.kind,transportId:X,codecId:Z.codecId,localId:Z.id,remoteTimestamp:this.receiveLastSRTimestamp[Y.ssrc]*1000};G.push(V)}}return G}async sendRtcpPLI(W){if(!this.pliEnabled){yq("pli not supported",{mediaSsrc:W});return}if(this.stopped)return;yq("sendRtcpPLI",{mediaSsrc:W});let G=new iV({feedback:new YH({senderSsrc:this.rtcpSsrc,mediaSsrc:W})});try{await this.dtlsTransport.sendRtcp([G])}catch(X){yq(X)}}handleRtcpPacket(W){switch(W.type){case mY.type:{let G=W;this.lastSRtimestamp[G.ssrc]=i2(G.senderInfo.ntpTimestamp),this.receiveLastSRTimestamp[G.ssrc]=QH();let X=this.trackBySSRC[W.ssrc];if(X)X.onReceiveRtcp.execute(W)}break}this.onRtcp.execute(W)}handleRtpBySsrc=(W,G)=>{let X=this.trackBySSRC[W.header.ssrc];this.handleRTP(W,G,X)};handleRtpByRid=(W,G,X)=>{let Y=this.trackByRID[G];if(!this.trackBySSRC[W.header.ssrc])this.trackBySSRC[W.header.ssrc]=Y;this.handleRTP(W,X,Y)};handleRTP(W,G,X){if(this.stopped)return;let Y=this.codecs[W.header.payloadType];if(!Y)return;if(this.remoteStreams[W.header.ssrc]=this.remoteStreams[W.header.ssrc]??new oi(Y.clockRate),this.remoteStreams[W.header.ssrc].add(W),this.receiverTWCC){let Z=G[R9.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=qH(Y.parameters??""),U=this.codecs[V.apt];if(W.payload.length<2)return;W=Yn(W,U.payloadType,Z),X=this.trackBySSRC[Z]}let J;if(Y.name.toLowerCase()==="red"){if(J=V2.deSerialize(W.payload),!Object.keys(this.codecs).includes(J.header.fields[0].blockPT.toString()))return}if(X?.kind==="video"&&this.nackEnabled)this.nack.addPacket(W);if(X)if(J){if(X.kind==="audio"){let Z=this.audioRedHandler.push(J,W);for(let V of Z)X.onReceiveRtp.execute(V.clone(),G)}}else X.onReceiveRtp.execute(W.clone(),G);this.runRtcp()}},hV=M1("werift:packages/webrtc/src/media/router.ts"),Sr=class{ssrcTable={};ridTable={};extIdUriMap={};constructor(){}registerRtpSender(W){this.ssrcTable[W.ssrc]=W}registerRtpReceiver(W,G){hV("registerRtpReceiver",G),this.ssrcTable[G]=W}registerRtpReceiverBySsrc(W,G){hV("registerRtpReceiverBySsrc",G),G.encodings.filter((X)=>X.ssrc!=null).forEach((X,Y)=>{if(this.registerRtpReceiver(W.receiver,X.ssrc),W.addTrack(new hK({ssrc:X.ssrc,kind:W.kind,id:W.sender.trackId,remote:!0,codec:G.codecs[Y]})),X.rtx)this.registerRtpReceiver(W.receiver,X.rtx.ssrc)}),G.headerExtensions.forEach((X)=>{this.extIdUriMap[X.id]=X.uri})}registerRtpReceiverByRid(W,G,X){let[Y]=X.codecs;hV("registerRtpReceiverByRid",G),W.addTrack(new hK({rid:G.rid,kind:W.kind,id:W.sender.trackId,remote:!0,codec:Y})),this.ridTable[G.rid]=W.receiver}routeRtp=(W)=>{let G=fo(W.header.extensions,this.extIdUriMap),X=this.ssrcTable[W.header.ssrc],Y=G[R9.sdesRTPStreamID];if(typeof Y==="string")X=this.ridTable[Y],X.latestRid=Y,X.handleRtpByRid(W,Y,G);else if(X)X.handleRtpBySsrc(W,G);else if(X=Object.values(this.ridTable).filter((V)=>V instanceof Nx).find((V)=>V.trackBySSRC[W.header.ssrc]),X)hV("simulcast register receiver by ssrc",W.header.ssrc),this.registerRtpReceiver(X,W.header.ssrc),X.handleRtpBySsrc(W,G);if(!X){hV("ssrcReceiver not found");return}let J=G[R9.sdesMid];if(typeof J==="string")X.sdesMid=J;let Z=G[R9.repairedRtpStreamId];if(typeof Z==="string")X.latestRepairedRid=Z};routeRtcp=(W)=>{let G=[];switch(W.type){case mY.type:W=W,G.push(this.ssrcTable[W.ssrc]);break;case rV.type:W=W,W.reports.forEach((X)=>{G.push(this.ssrcTable[X.ssrc])});break;case UH.type:{let X=W}break;case bY.type:{let X=W;if(X.feedback)G.push(this.ssrcTable[X.feedback.mediaSourceSsrc])}break;case iV.type:{let X=W;switch(X.feedback.count){case JH.count:{let Y=X.feedback;G.push(this.ssrcTable[Y.ssrcFeedbacks[0]])}break;default:G.push(this.ssrcTable[X.feedback.senderSsrc]||this.ssrcTable[X.feedback.mediaSsrc])}}break}G.filter((X)=>X).forEach((X)=>X.handleRtcpPacket(W))}},xr=class{numPackets=0;totalSize=0;firstPacketSentAtMs=0;lastPacketSentAtMs=0;firstPacketReceivedAtMs=0;lastPacketReceivedAtMs=0;addPacket(W,G,X){if(this.numPackets===0)this.firstPacketSentAtMs=G,this.firstPacketReceivedAtMs=X,this.lastPacketSentAtMs=G,this.lastPacketReceivedAtMs=X;else{if(G<this.firstPacketSentAtMs)this.firstPacketSentAtMs=G;if(X<this.firstPacketReceivedAtMs)this.firstPacketReceivedAtMs=X;if(G>this.lastPacketSentAtMs)this.lastPacketSentAtMs=G;if(X>this.lastPacketReceivedAtMs)this.lastPacketReceivedAtMs=X}this.numPackets++,this.totalSize+=W}reset(){this.numPackets=0,this.totalSize=0,this.firstPacketSentAtMs=0,this.lastPacketSentAtMs=0,this.firstPacketReceivedAtMs=0,this.lastPacketReceivedAtMs=0}get receiveBitrate(){let W=this.lastPacketReceivedAtMs-this.firstPacketReceivedAtMs,G=this.totalSize/W*8*1000;return XH(G)}get sendBitrate(){let W=this.lastPacketSentAtMs-this.firstPacketSentAtMs,G=this.totalSize/W*8*1000;return XH(G)}},kY=20,kr=10,_r=class{congestion=!1;onAvailableBitrate=new c0;onCongestion=new c0;onCongestionScore=new c0;congestionCounter=0;cumulativeResult=new xr;sentInfos={};_congestionScore=1;get congestionScore(){return this._congestionScore}set congestionScore(W){this._congestionScore=W,this.onCongestionScore.execute(W)}_availableBitrate=0;get availableBitrate(){return this._availableBitrate}set availableBitrate(W){this._availableBitrate=W,this.onAvailableBitrate.execute(W)}constructor(){}receiveTWCC(W){let X=n2()-this.cumulativeResult.firstPacketSentAtMs;if(X>1000){if(this.cumulativeResult.reset(),this.congestionCounter<kY)this.congestionCounter++;else if(this.congestionScore<kr)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(X>=100&&this.cumulativeResult.numPackets>=20){if(this.availableBitrate=Math.min(this.cumulativeResult.sendBitrate,this.cumulativeResult.receiveBitrate),this.cumulativeResult.reset(),this.congestionCounter>-kY){let Y=XH(kY/2)+1,J=XH(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((G)=>Number(G)).sort().filter((G)=>G<W.wideSeq).forEach((G)=>{delete this.sentInfos[G]}),this.sentInfos[W.wideSeq]=W}},CK=M1("werift:packages/webrtc/src/media/rtpSender.ts"),zS=128,IS=0.85,yr=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=e1.Unpack("!L",qS(4))[0];rtxSsrc=e1.Unpack("!L",qS(4))[0];streamId=HS().toString();trackId=HS().toString();onReady=new c0;onRtcp=new c0;onPictureLossIndication=new c0;onGenericNack=new c0;senderBWE=new _r;cname;mid;rtpStreamId;repairedRtpStreamId;rtxPayloadType;rtxSequenceNumber=KS();redRedundantPayloadType;_redDistance=2;redEncoder=new Wn(this._redDistance);headerExtensions=[];disposeTrack;lastSRtimestamp;lastSentSRTimestamp;ntpTimestamp=0n;rtpTimestamp=0;octetCount=0;packetCount=0;rtt;receiverEstimatedMaxBitrate=0n;sequenceNumber;timestamp;timestampOffset=0;seqOffset=0;rtpCache=[];codec;dtlsTransport;dtlsDisposer=[];track;stopped=!1;rtcpRunning=!1;rtcpCancel=new AbortController;setDtlsTransport(W){if(this.dtlsTransport)this.dtlsDisposer.forEach((G)=>G());this.dtlsTransport=W,this.dtlsDisposer=[this.dtlsTransport.onStateChange.subscribe((G)=>{if(G==="connected")this.onReady.execute()}).unSubscribe]}get redDistance(){return this._redDistance}set redDistance(W){this._redDistance=W,this.redEncoder.distance=W}prepareSend(W){if(this.cname=W.rtcp?.cname,this.mid=W.muxId,this.headerExtensions=W.headerExtensions,this.rtpStreamId=W.rtpStreamId,this.repairedRtpStreamId=W.repairedRtpStreamId,this.codec=W.codecs[0],this.track)this.track.codec=this.codec;W.codecs.forEach((G)=>{let X=qH(G.parameters??"");if(G.name.toLowerCase()==="rtx"&&X.apt===this.codec?.payloadType)this.rtxPayloadType=G.payloadType;if(G.name.toLowerCase()==="red")this.redRedundantPayloadType=Number((G.parameters??"").split("/")[0])})}registerTrack(W){if(W.stopped)throw Error("track is ended");if(this.disposeTrack)this.disposeTrack();W.id=this.trackId;let{unSubscribe:G}=W.onReceiveRtp.subscribe(async(X)=>{await this.sendRtp(X)});if(this.track=W,this.disposeTrack=G,this.codec)W.codec=this.codec;W.onSourceChanged.subscribe((X)=>{this.replaceRTP(X)})}async replaceTrack(W){if(W===null)return;if(W.stopped)throw Error("track is ended");if(this.sequenceNumber!=null){let G=W.header||(await W.onReceiveRtp.asPromise())[0].header;this.replaceRTP(G)}this.registerTrack(W),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 AS(500+Math.random()*1000,void 0,{signal:this.rtcpCancel.signal});let W=[new mY({ssrc:this.ssrc,senderInfo:new Z2({ntpTimestamp:this.ntpTimestamp,rtpTimestamp:this.rtpTimestamp,packetCount:this.packetCount,octetCount:this.octetCount})})];if(this.lastSRtimestamp=i2(this.ntpTimestamp),this.lastSentSRTimestamp=QH(),this.cname)W.push(new UH({chunks:[new Y2({source:this.ssrc,items:[new J2({type:1,text:this.cname})]})]}));try{await this.dtlsTransport.sendRtcp(W)}catch(G){CK("sendRtcp failed",G),await AS(500+Math.random()*1000)}}}catch(W){}}replaceRTP({sequenceNumber:W,timestamp:G},X=!1){if(this.sequenceNumber!=null){if(this.seqOffset=P9(this.sequenceNumber,-W),X)this.seqOffset=P9(this.seqOffset,2)}if(this.timestamp!=null){if(this.timestampOffset=gY(this.timestamp,-G),X)this.timestampOffset=P9(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)?t6.deSerialize(W):W;let{header:G,payload:X}=W;G.ssrc=this.ssrc,G.payloadType=this.codec.payloadType,G.timestamp=gY(G.timestamp,this.timestampOffset),G.sequenceNumber=P9(G.sequenceNumber,this.seqOffset),this.timestamp=G.timestamp,this.sequenceNumber=G.sequenceNumber;let Y=hi(),J=[...G.extensions];G.extensions=this.headerExtensions.map((N)=>{let q=(()=>{switch(N.uri){case R9.sdesMid:if(this.mid)return po(this.mid);return;case R9.sdesRTPStreamID:if(this.rtpStreamId)return co(this.rtpStreamId);return;case R9.repairedRtpStreamId:if(this.repairedRtpStreamId)return lo(this.repairedRtpStreamId);return;case R9.transportWideCC:return this.dtlsTransport.transportSequenceNumber=P9(this.dtlsTransport.transportSequenceNumber,1),oo(this.dtlsTransport.transportSequenceNumber);case R9.absSendTime:return no(Y)}})();if(q)return{id:N.id,payload:q}}).filter((N)=>N);for(let N of J){let q=G.extensions.find((A)=>A.id===N.id);if(q)q.payload=N.payload;else G.extensions.push(N)}G.extensions=G.extensions.sort((N,q)=>N.id-q.id),this.ntpTimestamp=Y,this.rtpTimestamp=G.timestamp,this.octetCount+=X.length,this.packetCount=gY(this.packetCount,1),this.rtpCache[G.sequenceNumber%zS]=W;let Z=X;if(this.redRedundantPayloadType)this.redEncoder.push({block:Z,timestamp:G.timestamp,blockPT:this.redRedundantPayloadType}),Z=this.redEncoder.build().serialize();let V=await this.dtlsTransport.sendRtp(Z,G);this.runRtcp();let U=n2(),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((X)=>X.ssrc===this.ssrc).forEach((X)=>{if(this.lastSRtimestamp===X.lsr&&X.dlsr){if(this.lastSentSRTimestamp){let Y=QH()-this.lastSentSRTimestamp-X.dlsr/65536;if(this.rtt===void 0)this.rtt=Y;else this.rtt=IS*this.rtt+(1-IS)*Y}}});break;case bY.type:{let G=W;switch(G.feedback.count){case VH.count:{let X=G.feedback;this.senderBWE.receiveTWCC(X)}break;case ZH.count:{let X=G.feedback;X.lost.forEach(async(Y)=>{let J=this.rtpCache[Y%zS];if(J&&J.header.sequenceNumber!==Y)J=void 0;if(J){if(this.rtxPayloadType!=null)J=Jn(J,this.rtxPayloadType,this.rtxSequenceNumber,this.rtxSsrc),this.rtxSequenceNumber=P9(this.rtxSequenceNumber,1);await this.dtlsTransport.sendRtp(J.payload,J.header)}}),this.onGenericNack.execute(X)}break}}break;case iV.type:{let G=W;switch(G.feedback.count){case JH.count:{let X=G.feedback;this.receiverEstimatedMaxBitrate=X.bitrate}break;case YH.count:this.onPictureLossIndication.execute();break}}break}this.onRtcp.execute(W)}getParameters(){return{encodings:[]}}setParameters(W){}async getStats(){let W=$G(),G=[];if(!this.dtlsTransport)return G;let X=Q8("transport",this.dtlsTransport.id),Y={type:"outbound-rtp",id:Q8("outbound-rtp",this.ssrc),timestamp:W,ssrc:this.ssrc,kind:this.kind,transportId:X,codecId:this.codec?Q8("codec",this.codec.payloadType,X):void 0,mid:this.mid,packetsSent:this.packetCount,bytesSent:this.octetCount,rtxSsrc:this.rtxPayloadType?this.rtxSsrc:void 0};if(G.push(Y),this.track){let J={type:"media-source",id:Q8("media-source",this.trackId),timestamp:W,trackIdentifier:this.trackId,kind:this.kind};G.push(J)}if(this.rtt!==void 0){let J={type:"remote-inbound-rtp",id:Q8("remote-inbound-rtp",this.ssrc),timestamp:W,ssrc:this.ssrc,kind:this.kind,transportId:X,codecId:Y.codecId,localId:Y.id,roundTripTime:this.rtt};G.push(J)}return G}},gr=M1("werift:packages/webrtc/src/transport/sctpManager.ts"),ur=class{sctpTransport;sctpRemotePort;dataChannelsOpened=0;dataChannelsClosed=0;dataChannels=[];onDataChannel=new c0;constructor(){}createSctpTransport(W){let G=new Br(5000,W);return G.mid=void 0,G.onDataChannel.subscribe((X)=>{this.dataChannelsOpened++,this.dataChannels.push(X),this.onDataChannel.execute(X)}),this.sctpTransport=G,G}createDataChannel(W,G={}){let Y={...{protocol:"",ordered:!0,negotiated:!1},...G};if(Y.maxPacketLifeTime&&Y.maxRetransmits)throw Error("can not select both");if(!this.sctpTransport)this.sctpTransport=this.createSctpTransport();let J=new _2({id:Y.id,label:W,maxPacketLifeTime:Y.maxPacketLifeTime,maxRetransmits:Y.maxRetransmits,negotiated:Y.negotiated,ordered:Y.ordered,protocol:Y.protocol}),Z=new k2(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(),gr("sctp connected")}setRemoteSCTP(W,G){if(!this.sctpTransport)return;if(this.sctpTransport.setRemoteMaxMessageSize(W.sctpCapabilities?.maxMessageSize),this.sctpRemotePort=W.sctpPort,!this.sctpRemotePort)throw Error("sctpRemotePort not exist");if(this.sctpTransport.setRemotePort(this.sctpRemotePort),this.sctpTransport.mLineIndex=G,!this.sctpTransport.mid)this.sctpTransport.mid=W.rtp.muxId}async close(){if(this.sctpTransport)await this.sctpTransport.stop();this.onDataChannel.allUnsubscribe()}async getStats(){let W=$G(),G=[];for(let X of this.dataChannels){let Y={type:"data-channel",id:Q8("data-channel",X.id),timestamp:W,label:X.label,protocol:X.protocol,dataChannelIdentifier:X.id,state:X.readyState,messagesSent:X.messagesSent||0,bytesSent:X.bytesSent||0,messagesReceived:X.messagesReceived||0,bytesReceived:X.bytesReceived||0};G.push(Y)}return G}},hr=class{currentLocalDescription;currentRemoteDescription;pendingLocalDescription;pendingRemoteDescription;cname;midSuffix;bundlePolicy;seenMid=new Set;constructor({cname:W,midSuffix:G,bundlePolicy:X}){this.cname=W,this.midSuffix=G??!1,this.bundlePolicy=X}get localDescription(){if(!this._localDescription)return;return this._localDescription.toJSON()}get remoteDescription(){if(!this._remoteDescription)return;return this._remoteDescription.toJSON()}get _localDescription(){return this.pendingLocalDescription||this.currentLocalDescription}get _remoteDescription(){return this.pendingRemoteDescription||this.currentRemoteDescription}get inactiveRemoteMedia(){return this._remoteDescription?.media?.find?.((W)=>W.direction==="inactive")}createMediaDescriptionForTransceiver(W,G){let X=new sK(W.kind,9,"UDP/TLS/RTP/SAVPF",W.codecs.map((Y)=>Y.payloadType));if(X.direction=G,X.msid=W.msid,X.rtp={codecs:W.codecs,headerExtensions:W.headerExtensions,muxId:W.mid},X.rtcpHost="0.0.0.0",X.rtcpPort=9,X.rtcpMux=!0,X.ssrc=[new eK({ssrc:W.sender.ssrc,cname:this.cname})],W.options.simulcast)X.simulcastParameters=W.options.simulcast.map((Y)=>new y2(Y));if(X.rtp.codecs.find((Y)=>Y.name.toLowerCase()==="rtx"))X.ssrc.push(new eK({ssrc:W.sender.rtxSsrc,cname:this.cname})),X.ssrcGroup=[new oV("FID",[W.sender.ssrc.toString(),W.sender.rtxSsrc.toString()])];return this.addTransportDescription(X,W.dtlsTransport),X}createMediaDescriptionForSctp(W){let G=new sK("application",dF,"UDP/DTLS/SCTP",["webrtc-datachannel"]);return G.sctpPort=W.port,G.rtp.muxId=W.mid,G.sctpCapabilities=W.getCapabilities(),this.addTransportDescription(G,W.dtlsTransport),G}addTransportDescription(W,G){let X=G.iceTransport;if(W.iceCandidates=X.localCandidates,W.iceCandidatesComplete=X.gatheringState==="complete",W.iceParams=X.localParameters,W.iceOptions="trickle",W.host=Li,W.port=dF,W.direction==="inactive")W.port=0,W.msid=void 0;if(!W.dtlsParams){if(W.dtlsParams=G.localParameters,!W.dtlsParams.fingerprints)W.dtlsParams.fingerprints=G.localParameters.fingerprints}}allocateMid(W=""){let G="";for(let X=0;;)if(G=(X++).toString()+W,!this.seenMid.has(G))break;return this.seenMid.add(G),G}parseSdp({sdp:W,isLocal:G,signalingState:X,type:Y}){let J=iq.parse(W);return this.validateDescription({description:J,isLocal:G,signalingState:X}),J.type=Y,J}validateDescription({description:W,isLocal:G,signalingState:X}){if(G){if(W.type==="offer"){if(!["stable","have-local-offer"].includes(X))throw Error("Cannot handle offer in signaling state")}else if(W.type==="answer"){if(!["have-remote-offer","have-local-pranswer"].includes(X))throw Error("Cannot handle answer in signaling state")}}else if(W.type==="offer"){if(!["stable","have-remote-offer"].includes(X))throw Error("Cannot handle offer in signaling state")}else if(W.type==="answer"){if(!["have-local-offer","have-remote-pranswer"].includes(X))throw Error("Cannot handle answer in signaling state")}}buildOfferSdp(W,G){let X=new iq;NS("offer",X),(this.currentLocalDescription?.media??[]).forEach((J,Z)=>{let V=J.rtp.muxId;if(!V)return;if(J.kind==="application"){if(!G)throw Error("sctpTransport not found");G.mLineIndex=Z,X.media.push(this.createMediaDescriptionForSctp(G))}else{let U=W.find((Q)=>Q.mid===V);if(!U){if(J.direction==="inactive"){X.media.push(J);return}throw Error("transceiver not found")}U.mLineIndex=Z,X.media.push(this.createMediaDescriptionForTransceiver(U,U.direction))}});for(let J of W.filter((Z)=>!X.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=X.media.length,X.media.push(Z);else X.media[J.mLineIndex]=Z}if(G&&!X.media.find((J)=>J.kind==="application")){if(G.mLineIndex=X.media.length,G.mid==null)G.mid=this.allocateMid(this.midSuffix?"dc":"");X.media.push(this.createMediaDescriptionForSctp(G))}if(this.bundlePolicy!=="disable"){let J=X.media.map((Z)=>Z.rtp.muxId).filter((Z)=>Z);if(J.length){let Z=new oV("BUNDLE",J);X.group.push(Z)}}return X}buildAnswerSdp({transceivers:W,sctpTransport:G,signalingState:X}){if(!["have-remote-offer","have-local-pranswer"].includes(X))throw Error("createAnswer failed");if(!this._remoteDescription)throw Error("wrong state");let Y=new iq;NS("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,o2(U.direction,U.offerDirection)),Z=U.dtlsTransport}else if(J.kind==="application"){if(!G||!G.mid)throw Error("sctpTransport not found");V=this.createMediaDescriptionForSctp(G),Z=G.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,G){if(!W.sdp||!W.type||W.type==="rollback"||W.type==="pranswer")throw Error("invalid sessionDescription");let X=this.parseSdp({sdp:W.sdp,isLocal:!1,signalingState:G,type:W.type});if(X.type==="answer")this.currentRemoteDescription=X,this.pendingRemoteDescription=void 0;else this.pendingRemoteDescription=X;return X}registerMid(W){this.seenMid.add(W)}get remoteIsBundled(){let W=this._remoteDescription;if(!W)return;return W.group.find((X)=>X.semantic==="BUNDLE"&&this.bundlePolicy!=="disable")}setLocal(W,G,X){let Y=new Map(G.map((V)=>[V?.mLineIndex,V])),J=G.find((V)=>V?.dtlsTransport)?.dtlsTransport??X?.dtlsTransport;W.media.filter((V)=>["audio","video"].includes(V.kind)).forEach((V,U)=>{let N=(Y.get(U)??G[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(X&&Z)this.addTransportDescription(Z,X.dtlsTransport);this.setLocalDescription(W)}},bV=M1("werift:packages/webrtc/src/transport/secureTransportManager.ts"),br=class{connectionState="new";iceConnectionState="new";iceGatheringState="new";certificate;iceGatheringStateChange=new c0;iceConnectionStateChange=new c0;onIceCandidate=new c0;connectionStateChange=new c0;config;transceiverManager;sctpManager;constructor({config:W,transceiverManager:G,sctpManager:X}){if(this.config=W,this.transceiverManager=G,this.sctpManager=X,this.config.dtls){let{keys:Y}=this.config.dtls;if(Y)this.setupCertificate(Y)}}get dtlsTransports(){return[...this.transceiverManager.getTransceivers().map((G)=>G?.dtlsTransport),this.sctpManager.sctpTransport?.dtlsTransport].filter((G)=>G!=null).reduce((G,X)=>{if(!G.map((Y)=>Y.id).includes(X.id))G.push(X);return G},[])}get iceTransports(){return this.dtlsTransports.map((W)=>W.iceTransport)}setupCertificate(W){this.certificate=new r2(W.keyPem,W.certPem,W.signatureHash)}createTransport(){let W=this.iceTransports.find((J)=>J.state!=="closed"),G=new Yr({...bi(this.config.iceServers),forceTurn:this.config.iceTransportPolicy==="relay",portRange:this.config.icePortRange,interfaceAddresses:this.config.iceInterfaceAddresses,additionalHostAddresses:this.config.iceAdditionalHostAddresses,filterStunResponse:this.config.iceFilterStunResponse,filterCandidatePair:this.config.iceFilterCandidatePair,localPasswordPrefix:this.config.icePasswordPrefix,useIpv4:this.config.iceUseIpv4,useIpv6:this.config.iceUseIpv6,turnTransport:this.config.forceTurnTCP===!0?"tcp":"udp",useLinkLocalAddress:this.config.iceUseLinkLocalAddress});if(W)G.connection.localUsername=W.connection.localUsername,G.connection.localPassword=W.connection.localPassword;G.onGatheringStateChange.subscribe(()=>{this.updateIceGatheringState()}),this.updateIceGatheringState();let X=new Xr(G);return X.onStateChange.subscribe(()=>{this.updateIceConnectionState()}),new rF(this.config,X,this.certificate,mr)}handleNewIceCandidate({candidate:W,media:G,remoteIsBundled:X,transceiver:Y,sctpTransport:J,bundlePolicy:Z}){if(Z==="max-bundle"||X){if(W.sdpMLineIndex=0,G)W.sdpMid=G.rtp.muxId}else{if(Y)W.sdpMLineIndex=Y.mLineIndex,W.sdpMid=Y.mid;if(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,G){let X=a2.fromJSON(G);if(!X)return;let Y;if(typeof X.sdpMid==="number")Y=this.getTransportByMid(X.sdpMid);if(!Y&&typeof X.sdpMLineIndex==="number")Y=this.getTransportByMLineIndex(W,X.sdpMLineIndex);if(!Y)Y=this.iceTransports[0];if(Y)await Y.addRemoteCandidate(X);else bV("iceTransport not found for candidate",X)}getTransportByMid(W){let G,X=this.transceiverManager.getTransceivers().find((Y)=>Y.mid===W);if(X)G=X.dtlsTransport.iceTransport;else if(!G&&this.sctpManager.sctpTransport?.mid===W)G=this.sctpManager.sctpTransport.dtlsTransport.iceTransport;return G}getTransportByMLineIndex(W,G){let X=W.media[G];if(!X)return;return this.getTransportByMid(X.rtp.muxId)}restartIce(){for(let W of this.iceTransports)W.restart()}setLocalRole({type:W,role:G}){for(let X of this.dtlsTransports){let Y=X.iceTransport;if(W==="offer")Y.connection.iceControlling=!0;else Y.connection.iceControlling=!1;if(Y.connection.remoteIsLite)Y.connection.iceControlling=!0;if(W==="answer"){if(G)X.role=G}}}updateIceGatheringState(){let W=this.iceTransports;function G(...Y){return W.filter((J)=>Y.includes(J.gatheringState)).length===W.length}let X;if(W.length&&G("complete"))X="complete";else if(!W.length||G("new","complete"))X="new";else if(W.map((Y)=>Y.gatheringState).includes("gathering"))X="gathering";else X="new";if(this.iceGatheringState===X)return;this.iceGatheringState=X,this.iceGatheringStateChange.execute(X)}updateIceConnectionState(){let W=this.iceTransports,G;function X(...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")G="closed";else if(Y("failed"))G="failed";else if(Y("disconnected"))G="disconnected";else if(X("new","closed"))G="new";else if(Y("new","checking"))G="checking";else if(X("completed","closed"))G="completed";else if(X("connected","completed","closed"))G="connected";else G="new";if(this.iceConnectionState===G)return;bV("iceConnectionStateChange",G),this.iceConnectionState=G,this.iceConnectionStateChange.execute(G)}async gatherCandidates(W){let G=this.iceTransports.find((X)=>X.state==="connected"||X.state==="completed");if(W&&G)bV("skipping ICE gathering for bundled connection");else await Promise.allSettled(this.iceTransports.map((X)=>X.gather())).catch((X)=>{bV("gatherCandidates failed",X)})}setConnectionState(W){bV("connectionStateChange",W),this.connectionState=W,this.connectionStateChange.execute(W)}async getStats(){let W=[];for(let G of this.dtlsTransports){let X=await G.getStats();if(X)W.push(...X)}return W}async ensureCerts(){if(!this.certificate)this.certificate=await rF.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()}},mr=[nF.SRTP_AEAD_AES_128_GCM,nF.SRTP_AES128_CM_HMAC_SHA1_80],G7=M1("werift:packages/webrtc/src/peerConnection.ts"),qx=class extends NO{cname=vr().toString();config=Hx();signalingState="stable";negotiationneeded=!1;needRestart=!1;router=new Sr;sdpManager;transceiverManager;sctpManager;secureManager;isClosed=!1;shouldNegotiationneeded=!1;remoteBundleNegotiated=!1;iceGatheringStateChange=new c0;iceConnectionStateChange=new c0;signalingStateChange=new c0;connectionStateChange=new c0;onDataChannel=new c0;onRemoteTransceiverAdded=new c0;onTransceiverAdded=new c0;onIceCandidate=new c0;onNegotiationneeded=new c0;onTrack=new c0;ondatachannel;onicecandidate;onicecandidateerror;onicegatheringstatechange;onnegotiationneeded;onsignalingstatechange;ontrack;onconnectionstatechange;oniceconnectionstatechange;constructor(W={}){super();this.setConfiguration(W),this.sdpManager=new hr({cname:this.cname,bundlePolicy:this.config.bundlePolicy}),this.transceiverManager=new pr(this.cname,this.config,this.router),this.transceiverManager.onTransceiverAdded.pipe(this.onTransceiverAdded),this.transceiverManager.onRemoteTransceiverAdded.pipe(this.onRemoteTransceiverAdded),this.transceiverManager.onTrack.subscribe(({track:G,stream:X,transceiver:Y})=>{let J={track:G,streams:[X],transceiver:Y,receiver:Y.receiver};if(this.onTrack.execute(G),this.emit("track",J),this.ontrack)this.ontrack(J)}),this.transceiverManager.onNegotiationNeeded.subscribe(()=>this.needNegotiation()),this.sctpManager=new ur,this.sctpManager.onDataChannel.subscribe((G)=>{this.onDataChannel.execute(G);let X={channel:G};this.ondatachannel?.(X),this.emit("datachannel",X)}),this.secureManager=new br({config:this.config,sctpManager:this.sctpManager,transceiverManager:this.transceiverManager}),this.secureManager.iceGatheringStateChange.pipe(this.iceGatheringStateChange),this.secureManager.iceConnectionStateChange.subscribe((G)=>{if(G==="closed")this.close();this.iceConnectionStateChange.execute(G)}),this.secureManager.connectionStateChange.subscribe((G)=>{this.connectionStateChange.execute(G),this.onconnectionstatechange?.(),this.emit("connectionstatechange")}),this.secureManager.onIceCandidate.subscribe((G)=>{let X=G?G.toJSON():void 0;this.onIceCandidate.execute(X),this.onicecandidate?.({candidate:X}),this.emit("icecandidate",{candidate:X})})}get connectionState(){return this.secureManager.connectionState}get iceConnectionState(){return this.secureManager.iceConnectionState}get iceGathererState(){return this.secureManager.iceGatheringState}get iceGatheringState(){return this.secureManager.iceGatheringState}get dtlsTransports(){return this.secureManager.dtlsTransports}get sctpTransport(){return this.sctpManager.sctpTransport}get sctpRemotePort(){return this.sctpManager.sctpRemotePort}get iceTransports(){return this.secureManager.iceTransports}get extIdUriMap(){return this.router.extIdUriMap}get iceGeneration(){return this.iceTransports[0].connection.generation}get localDescription(){return this.sdpManager.localDescription}get remoteDescription(){return this.sdpManager.remoteDescription}get remoteIsBundled(){return this.sdpManager.remoteIsBundled}get _localDescription(){return this.sdpManager._localDescription}get _remoteDescription(){return this.sdpManager._remoteDescription}getTransceivers(){return this.transceiverManager.getTransceivers()}getSenders(){return this.transceiverManager.getSenders()}getReceivers(){return this.transceiverManager.getReceivers()}setConfiguration(W){if(mi(this.config,W),this.config.icePortRange){let[G,X]=this.config.icePortRange;if(G===X)throw Error("should not be same value");if(G>=X)throw Error("The min must be less than max")}if(!Number.isInteger(this.config.maxMessageSize)||this.config.maxMessageSize<0)throw Error("maxMessageSize must be a non-negative integer");if(this.sctpManager?.sctpTransport)this.sctpManager.sctpTransport.maxMessageSize=this.config.maxMessageSize;for(let[G,X]of mF([...this.config.codecs.audio||[],...this.config.codecs.video||[]])){if(X.payloadType!=null)continue;switch(X.payloadType=96+G,X.name.toLowerCase()){case"rtx":X.parameters=`apt=${X.payloadType-1}`;break;case"red":if(X.contentType==="audio"){let Y=X.payloadType+1;X.parameters=`${Y}/${Y}`,X.payloadType=63}break}}[...this.config.headerExtensions.audio||[],...this.config.headerExtensions.video||[]].forEach((G,X)=>{G.id=1+X})}getConfiguration(){return this.config}async createOffer({iceRestart:W}={}){if(W||this.needRestart)this.needRestart=!1,this.secureManager.restartIce();await this.secureManager.ensureCerts();for(let X of this.transceiverManager.getTransceivers()){if(X.codecs.length===0)this.transceiverManager.assignTransceiverCodecs(X);if(X.headerExtensions.length===0)X.headerExtensions=this.config.headerExtensions[X.kind]??[]}return this.sdpManager.buildOfferSdp(this.transceiverManager.getTransceivers(),this.sctpTransport).toJSON()}createSctpTransport(){let W=this.sctpManager.createSctpTransport(this.config.maxMessageSize),G=this.findOrCreateTransport();return W.setDtlsTransport(G),W}createDataChannel(W,G={}){if(!this.sctpTransport)this.createSctpTransport(),this.needNegotiation();let X=this.sctpManager.createDataChannel(W,G);if(!X.sctp.dtlsTransport){let Y=this.findOrCreateTransport();X.sctp.setDtlsTransport(Y)}return X}removeTrack(W){if(this.isClosed)throw Error("peer closed");this.transceiverManager.removeTrack(W),this.needNegotiation()}needNegotiation=async()=>{if(this.shouldNegotiationneeded=!0,this.negotiationneeded||this.signalingState!=="stable")return;this.shouldNegotiationneeded=!1,setImmediate(()=>{if(this.negotiationneeded=!0,this.onNegotiationneeded.execute(),this.onnegotiationneeded)this.onnegotiationneeded({})})};findOrCreateTransport(){let W=this.dtlsTransports.find((J)=>J.state!=="closed"),G=W?.iceTransport;if(this.sdpManager.bundlePolicy==="max-bundle"||this.sdpManager.bundlePolicy!=="disable"&&(this.remoteIsBundled||this.remoteBundleNegotiated)){if(W)return W}let X=this.secureManager.createTransport();X.onRtp.subscribe((J)=>{this.router.routeRtp(J)}),X.onRtcp.subscribe((J)=>{this.router.routeRtcp(J)});let Y=X.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})}),X}async setLocalDescription(W){W=W??(["stable","have-local-offer","have-remote-pranswer"].includes(this.signalingState)?await this.createOffer():await this.createAnswer());let X=this.sdpManager.parseSdp({sdp:W.sdp,isLocal:!0,signalingState:this.signalingState,type:W.type});if(X.type==="offer")this.setSignalingState("have-local-offer");else if(X.type==="answer")this.setSignalingState("stable");for(let[J,Z]of mF(X.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=X.media.find((J)=>J.dtlsParams)?.dtlsParams?.role;if(this.secureManager.setLocalRole({type:X.type,role:Y}),["answer","pranswer"].includes(X.type))for(let J of this.transceiverManager.getTransceivers()){let Z=o2(J.direction,J.offerDirection);J.setCurrentDirection(Z)}if(this.sdpManager.setLocal(X,this.transceiverManager.getTransceivers(),this.sctpTransport),await this.gatherCandidates().catch((J)=>{G7("gatherCandidates failed",J)}),X.type==="answer")this.connect().catch((J)=>{G7("connect failed",J),this.secureManager.setConnectionState("failed")});if(this.sdpManager.setLocal(X,this.transceiverManager.getTransceivers(),this.sctpTransport),this.shouldNegotiationneeded)this.needNegotiation();return X}async gatherCandidates(){await this.secureManager.gatherCandidates(!!this.sdpManager.remoteIsBundled)}async addIceCandidate(W){let G=this.sdpManager.buildOfferSdp(this.transceiverManager.getTransceivers(),this.sctpTransport);await this.secureManager.addIceCandidate(G,W)}async connect(){if(G7("start connect"),(await Promise.allSettled(this.dtlsTransports.map(async(G)=>{let{iceTransport:X}=G;if(X.state==="connected")return;let Y=()=>G.state==="connected";if(Y())return;if(this.secureManager.setConnectionState("connecting"),await X.start().catch((J)=>{throw G7("iceTransport.start failed",J),J}),Y())return;if(await G.start().catch((J)=>{throw G7("dtlsTransport.start failed",J),J}),this.sctpTransport&&this.sctpTransport.dtlsTransport.id===G.id)await this.sctpManager.connectSctp()}))).find((G)=>G.status==="rejected"))this.secureManager.setConnectionState("failed");else this.secureManager.setConnectionState("connected")}restartIce(){this.needRestart=!0,this.needNegotiation()}async setRemoteDescription(W){if(W instanceof iq)W=W.toSdp();let G=this.sdpManager.setRemoteDescription(W,this.signalingState);if(G.group.some((V)=>V.semantic==="BUNDLE"&&V.items.length>0))this.remoteBundleNegotiated=!0;let X,Y=(V,U)=>V.kind===U.kind&&[void 0,U.rtp.muxId].includes(V.mid),J=G.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(!X)X=q.dtlsTransport;else q.setDtlsTransport(X);Q=q.dtlsTransport,this.transceiverManager.setRemoteRTP(q,V,G.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(!X)X=q.dtlsTransport;else q.setDtlsTransport(X);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(G.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)=>G.media.find((U)=>Y(V,U))==null);if(W.type==="answer")for(let V of Z)V.stop(),V.stopped=!0;if(G.type==="offer")this.setSignalingState("have-remote-offer");else if(G.type==="answer")this.setSignalingState("stable");if(G.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,G={}){let X=this.findOrCreateTransport(),Y=this.transceiverManager.addTransceiver(W,X,G);return this.secureManager.updateIceConnectionState(),this.needNegotiation(),Y}addTrack(W,G){if(this.isClosed)throw Error("is closed");let X=this.transceiverManager.addTrack(W,G);if(!X.dtlsTransport){let Y=this.findOrCreateTransport();X.setDtlsTransport(Y)}return this.needNegotiation(),X.sender}async createAnswer(){return this.assertNotClosed(),await this.secureManager.ensureCerts(),this.sdpManager.buildAnswerSdp({transceivers:this.transceiverManager.getTransceivers(),sctpTransport:this.sctpTransport,signalingState:this.signalingState}).toJSON()}assertNotClosed(){if(this.isClosed)throw Error("RTCPeerConnection is closed")}setSignalingState(W){if(G7("signalingStateChange",W),this.signalingState=W,this.signalingStateChange.execute(W),this.onsignalingstatechange)this.onsignalingstatechange({})}createPeerConnectionStats(){let W=$G();return{type:"peer-connection",id:Q8("peer-connection"),timestamp:W,dataChannelsOpened:this.sctpManager.dataChannelsOpened,dataChannelsClosed:this.sctpManager.dataChannelsClosed}}async getStats(W){let G=[];G.push(this.createPeerConnectionStats());let X=await this.transceiverManager.getStats(W);G.push(...X);let Y=await this.secureManager.getStats();if(G.push(...Y),this.sctpTransport){let J=await this.sctpManager.getStats();if(J)G.push(...J)}return new $i(G)}async close(){if(this.isClosed)return;this.isClosed=!0,this.setSignalingState("closed"),this.transceiverManager.close(),await this.secureManager.close(),await this.sctpManager.close(),this.onDataChannel.allUnsubscribe(),this.iceGatheringStateChange.allUnsubscribe(),this.iceConnectionStateChange.allUnsubscribe(),this.signalingStateChange.allUnsubscribe(),this.onTransceiverAdded.allUnsubscribe(),this.onRemoteTransceiverAdded.allUnsubscribe(),this.onIceCandidate.allUnsubscribe(),G7("peerConnection closed")}},wS=(W,G)=>W.find((X)=>X.mimeType.toLowerCase()===G.mimeType.toLowerCase())?G:void 0;function Hx(){return{codecs:{audio:[g2(),u2()],video:[v2()]},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 FA0=Hx(),fr=M1("werift:packages/webrtc/src/media/rtpTransceiverManager.ts"),pr=class{constructor(W,G,X){this.cname=W,this.config=G,this.router=X}transceivers=[];onTransceiverAdded=new c0;onRemoteTransceiverAdded=new c0;onTrack=new c0;onNegotiationNeeded=new c0;getTransceivers(){return this.transceivers}getSenders(){return this.getTransceivers().map((W)=>W.sender)}getReceivers(){return this.getTransceivers().map((W)=>W.receiver)}getTransceiverByMLineIndex(W){return this.transceivers.find((G)=>G.mLineIndex===W)}pushTransceiver(W){this.transceivers.push(W)}replaceTransceiver(W,G){this.transceivers[G]=W}addTransceiver(W,G,X={}){let Y=typeof W==="string"?W:W.kind,J=X.direction||"sendrecv",Z=new yr(W),V=new Nx(this.config,Y,Z.ssrc),U=new Fi(Y,G,V,Z,J);U.options=X,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,G){if(this.getSenders().find((J)=>J.track?.uuid===W.uuid))throw Error("Track already added");let X=this.transceivers.find((J)=>J.sender.track==null&&J.kind===W.kind&&pq.includes(J.direction)===!0);if(X)return X.sender.registerTrack(W),X;let Y=this.transceivers.find((J)=>J.sender.track==null&&J.kind===W.kind&&pq.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:X})=>W.ssrc===X))throw Error("Sender does not exist");let G=this.transceivers.find(({sender:{ssrc:X}})=>W.ssrc===X);if(!G)throw Error("No matching transceiver found");if(W.stop(),G.currentDirection==="recvonly"){this.onNegotiationNeeded.execute();return}if(G.stopping||G.stopped)G.setDirection("inactive");else if(G.direction==="sendrecv")G.setDirection("recvonly");else if(G.direction==="sendonly"||G.direction==="recvonly")G.setDirection("inactive")}assignTransceiverCodecs(W){let G=this.config.codecs[W.kind].filter((X)=>{switch(X.direction){case"recvonly":{if(Ei.includes(W.direction))return!0;return!1}case"sendonly":{if(pq.includes(W.direction))return!0;return!1}case"sendrecv":{if([p2,f2,m2].includes(W.direction))return!0;return!1}case"all":return!0;default:return!1}});W.codecs=G}getLocalRtpParams(W){if(W.mid==null)throw Error("mid not assigned");return{codecs:W.codecs,muxId:W.mid,headerExtensions:W.headerExtensions,rtcp:{cname:this.cname,ssrc:W.sender.ssrc,mux:!0}}}getRemoteRtpParams(W,G){return{muxId:W.rtp.muxId,rtcp:W.rtp.rtcp,codecs:G.codecs,headerExtensions:G.headerExtensions,encodings:Object.values(G.codecs.reduce((Y,J)=>{if(J.name.toLowerCase()==="rtx"){let Z=qH(J.parameters??""),V=Y[Z.apt];if(V&&W.ssrc.length===2)V.rtx=new Ii({ssrc:W.ssrc[1].ssrc});return Y}return Y[J.payloadType]=new wi({ssrc:W.ssrc[0]?.ssrc,payloadType:J.payloadType}),Y},{}))}}setRemoteRTP(W,G,X,Y){if(!W.mid)W.mid=G.rtp.muxId;if(W.mLineIndex=Y,W.codecs=G.rtp.codecs.filter((U)=>{let Q=this.config.codecs[G.kind]||[],N=wS(Q,U);if(!N)return!1;if(N?.name.toLowerCase()==="rtx"){let A=qH(N.parameters??"").apt,H=G.rtp.codecs.find((I)=>I.payloadType===A);if(!H)return!1;return!!wS(Q,H)}return!0}),fr("negotiated codecs",W.codecs),W.codecs.length===0)throw Error("negotiate codecs failed.");W.headerExtensions=G.rtp.headerExtensions.filter((U)=>(this.config.headerExtensions[G.kind]||[]).find((Q)=>Q.uri===U.uri));let J=G.direction??"inactive",Z=vi(J);if(["answer","pranswer"].includes(X))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(G,W);for(let Q of G.simulcastParameters)this.router.registerRtpReceiverByRid(W,Q,U);W.receiver.prepareReceive(U),this.router.registerRtpReceiverBySsrc(W,U)}if(["sendonly","sendrecv"].includes(J)){if(G.msid){let[U,Q]=G.msid.split(" ");W.receiver.remoteStreamId=U,W.receiver.remoteTrackId=Q}this.onTrack.execute({track:W.receiver.track,transceiver:W,stream:new xi({id:W.receiver.remoteStreamId,tracks:[W.receiver.track]})})}if(G.ssrc[0]?.ssrc)W.receiver.setupTWCC(G.ssrc[0].ssrc)}async getStats(W){let G=[];for(let X of this.transceivers){let Y=!W||X.sender.track===W||X.receiver.track===W;if(X.sender){let J=await X.sender.getStats();if(J)for(let Z of J)if(Z.type==="outbound-rtp"||Z.type==="media-source"){if(Y)G.push(Z)}else G.push(Z)}if(X.receiver){let J=await X.receiver.getStats();if(J)for(let Z of J)if(Z.type==="inbound-rtp"||Z.type==="remote-outbound-rtp"){if(Y)G.push(Z)}else G.push(Z)}if(Y){let J=X.getCodecStats();if(J)G.push(...J)}}return G}close(){for(let W of this.transceivers)W.receiver.stop(),W.sender.stop();this.onTransceiverAdded.allUnsubscribe(),this.onRemoteTransceiverAdded.allUnsubscribe(),this.onTrack.allUnsubscribe(),this.onNegotiationNeeded.allUnsubscribe()}};class HO extends qx{toJSON(){return{}}createDataChannel(...W){let G=super.createDataChannel(...W);try{G.toJSON=()=>({})}catch{}return G}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var dY={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},cr={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},lr=BigInt(0),Ax=BigInt(1),AO=BigInt(2);function dr(W){let G=dY.p,X=BigInt(3),Y=BigInt(6),J=BigInt(11),Z=BigInt(22),V=BigInt(23),U=BigInt(44),Q=BigInt(88),N=W*W*W%G,q=N*N*W%G,A=N5(q,X,G)*q%G,H=N5(A,X,G)*q%G,I=N5(H,AO,G)*N%G,w=N5(I,J,G)*I%G,O=N5(w,Z,G)*w%G,M=N5(O,U,G)*O%G,S=N5(M,Q,G)*M%G,v=N5(S,U,G)*O%G,f=N5(v,X,G)*q%G,g=N5(f,V,G)*w%G,c=N5(g,Y,G)*N%G,l=N5(c,AO,G);if(!DH.eql(DH.sqr(l),W))throw Error("Cannot find square root");return l}var DH=E5(dY.p,{sqrt:dr}),wx=TY({...dY,Fp:DH,lowS:!0,endo:cr},OY),zx={};function CH(W,...G){let X=zx[W];if(X===void 0){let Y=OY(Hq(W));X=r9(Y,Y),zx[W]=X}return OY(r9(X,...G))}var IO=(W)=>W.toBytes(!0).slice(1),oY=(()=>wx.Point)(),wO=(W)=>W%AO===lr;function zO(W){let{Fn:G,BASE:X}=oY,Y=d6(G,W),J=X.multiply(Y);return{scalar:wO(J.y)?Y:G.neg(Y),bytes:IO(J)}}function jx(W){let G=DH;if(!G.isValidNot0(W))throw Error("invalid x: Fail if x \u2265 p");let X=G.create(W*W),Y=G.create(X*W+BigInt(7)),J=G.sqrt(Y);if(!wO(J))J=G.neg(J);let Z=oY.fromAffine({x:W,y:J});return Z.assertValidity(),Z}var HU=B4;function Kx(...W){return oY.Fn.create(HU(CH("BIP0340/challenge",...W)))}function Ix(W){return zO(W).bytes}function or(W,G,X=qG(32)){let{Fn:Y}=oY,J=$8("message",W),{bytes:Z,scalar:V}=zO(G),U=$8("auxRand",X,32),Q=Y.toBytes(V^HU(CH("BIP0340/aux",U))),N=CH("BIP0340/nonce",Q,Z,J),{bytes:q,scalar:A}=zO(N),H=Kx(q,Z,J),I=new Uint8Array(64);if(I.set(q,0),I.set(Y.toBytes(Y.create(A+H*V)),32),!Ox(I,J,Z))throw Error("sign: Invalid signature produced");return I}function Ox(W,G,X){let{Fn:Y,BASE:J}=oY,Z=$8("signature",W,64),V=$8("message",G),U=$8("publicKey",X,32);try{let Q=jx(HU(U)),N=HU(Z.subarray(0,32));if(!PV(N,Ax,dY.p))return!1;let q=HU(Z.subarray(32,64));if(!PV(q,Ax,dY.n))return!1;let A=Kx(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 Dx=(()=>{let X=(J=qG(48))=>{return jq(J,dY.n)};wx.utils.randomSecretKey;function Y(J){let Z=X(J);return{secretKey:Z,publicKey:Ix(Z)}}return{keygen:Y,getPublicKey:Ix,sign:or,verify:Ox,Point:oY,utils:{randomSecretKey:X,randomPrivateKey:X,taggedHash:CH,lift_x:jx,pointToBytes:IO,numberToBytesBE:KY,bytesToNumberBE:B4,mod:Q5},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})();var Cx=(W)=>Uint8Array.from(W.match(/.{2}/g).map((G)=>parseInt(G,16))),nr=(W)=>[...W].map((G)=>G.toString(16).padStart(2,"0")).join(""),ir=async(W)=>{try{if(typeof W.pubkey!=="string"||typeof W.sig!=="string"||typeof W.id!=="string")return!1;let G=new TextEncoder().encode(JSON.stringify([0,W.pubkey,W.created_at,W.kind,W.tags,W.content])),X=new Uint8Array(await crypto.subtle.digest("SHA-256",G));if(nr(X)!==W.id)return!1;return Dx.verify(Cx(W.sig),X,Cx(W.pubkey))}catch{return!1}},rr=(W,G)=>{if(W.kinds&&!W.kinds.includes(G.kind))return!1;if(W.since&&G.created_at<W.since-60)return!1;if(W["#x"]){let X=(G.tags??[]).filter((Y)=>Y?.[0]==="x").map((Y)=>Y[1]);if(!W["#x"].some((Y)=>X.includes(Y)))return!1}return!0};function Tx({port:W=Number(process.env.PORT)||8080}={}){let G=new Map,X=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:G.size,events:X,dropped:Y})},websocket:{open(Z){G.set(Z,new Map)},close(Z){G.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"){G.get(Z)?.set(N,q),Z.send(JSON.stringify(["EOSE",N]));return}if(Q==="CLOSE"&&typeof N==="string"){G.get(Z)?.delete(N);return}if(Q==="EVENT"&&N&&typeof N==="object"){if(!await ir(N)){Y++,Z.send(JSON.stringify(["OK",N.id??"",!1,"invalid: bad signature"]));return}X++,Z.send(JSON.stringify(["OK",N.id,!0,""]));for(let[A,H]of G)for(let[I,w]of H)if(rr(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:G.size,events:X,dropped:Y}),stop:()=>J.stop(!0)}}var TH="6.15.0";function ar(W,G,X){let Y=G.split("|").map((Z)=>Z.trim());for(let Z=0;Z<Y.length;Z++)switch(G){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof W===G)return}let J=Error(`invalid value for type ${G}`);throw J.code="INVALID_ARGUMENT",J.argument=`value.${X}`,J.value=W,J}async function n7(W){let G=Object.keys(W);return(await Promise.all(G.map((Y)=>Promise.resolve(W[Y])))).reduce((Y,J,Z)=>{return Y[G[Z]]=J,Y},{})}function H8(W,G,X){for(let Y in G){let J=G[Y],Z=X?X[Y]:null;if(Z)ar(J,Z,Y);Object.defineProperty(W,Y,{enumerable:!0,value:J,writable:!1})}}function nY(W,G){if(W==null)return"null";if(G==null)G=new Set;if(typeof W==="object"){if(G.has(W))return"[Circular]";G.add(W)}if(Array.isArray(W))return"[ "+W.map((X)=>nY(X,G)).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(),G);switch(typeof W){case"boolean":case"number":case"symbol":return W.toString();case"bigint":return BigInt(W).toString();case"string":return JSON.stringify(W);case"object":{let X=Object.keys(W);return X.sort(),"{ "+X.map((Y)=>`${nY(Y,G)}: ${nY(W[Y],G)}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function MH(W,G){return W&&W.code===G}function AU(W,G,X){let Y=W;{let Z=[];if(X){if("message"in X||"code"in X||"name"in X)throw Error(`value will overwrite populated values: ${nY(X)}`);for(let V in X){if(V==="shortMessage")continue;let U=X[V];Z.push(V+"="+nY(U))}}if(Z.push(`code=${G}`),Z.push(`version=${TH}`),Z.length)W+=" ("+Z.join(", ")+")"}let J;switch(G){case"INVALID_ARGUMENT":J=TypeError(W);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":J=RangeError(W);break;default:J=Error(W)}if(H8(J,{code:G}),X)Object.assign(J,X);if(J.shortMessage==null)H8(J,{shortMessage:Y});return J}function X1(W,G,X,Y){if(!W)throw AU(G,X,Y)}function a(W,G,X,Y){X1(W,G,"INVALID_ARGUMENT",{argument:X,value:Y})}var sr=["NFD","NFC","NFKD","NFKC"].reduce((W,G)=>{try{if("test".normalize(G)!=="test")throw Error("bad");if(G==="NFD"){let X=String.fromCharCode(233).normalize("NFD"),Y=String.fromCharCode(101,769);if(X!==Y)throw Error("broken")}W.push(G)}catch(X){}return W},[]);function iY(W){X1(sr.indexOf(W)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:W}})}function d4(W,G,X){if(X==null)X="";if(W!==G){let Y=X,J="new";if(X)Y+=".",J+=" "+X;X1(!1,`private constructor; use ${Y}from* methods`,"UNSUPPORTED_OPERATION",{operation:J})}}function Rx(W,G,X){if(W instanceof Uint8Array){if(X)return new Uint8Array(W);return W}if(typeof W==="string"&&W.match(/^0x(?:[0-9a-f][0-9a-f])*$/i)){let Y=new Uint8Array((W.length-2)/2),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",G||"value",W)}function L0(W,G){return Rx(W,G,!1)}function V7(W,G){return Rx(W,G,!0)}function L9(W,G){if(typeof W!=="string"||!W.match(/^0x[0-9A-Fa-f]*$/))return!1;if(typeof G==="number"&&W.length!==2+2*G)return!1;if(G===!0&&W.length%2!==0)return!1;return!0}function i7(W){return L9(W,!0)||W instanceof Uint8Array}var Mx="0123456789abcdef";function C0(W){let G=L0(W),X="0x";for(let Y=0;Y<G.length;Y++){let J=G[Y];X+=Mx[(J&240)>>4]+Mx[J&15]}return X}function W8(W){return"0x"+W.map((G)=>C0(G).substring(2)).join("")}function o4(W){if(L9(W,!0))return(W.length-2)/2;return L0(W).length}function rY(W,G,X){let Y=L0(W);if(X!=null&&X>Y.length)X1(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:Y,length:Y.length,offset:X});return C0(Y.slice(G==null?0:G,X==null?Y.length:X))}function tr(W,G,X){let Y=L0(W);X1(G>=Y.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(Y),length:G,offset:G+1});let J=new Uint8Array(G);if(J.fill(0),X)J.set(Y,G-Y.length);else J.set(Y,0);return C0(J)}function z5(W,G){return tr(W,G,!0)}var jO=BigInt(0),FG=BigInt(1),aY=9007199254740991;function RH(W,G){let X=m1(W,"value"),Y=BigInt(a8(G,"width")),J=FG<<Y-FG;if(X<jO){X=-X,X1(X<=J,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:W});let Z=(FG<<Y)-FG;return(~X&Z)+FG}else X1(X<J,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:W});return X}function PH(W,G){let X=zU(W,"value"),Y=BigInt(a8(G,"bits"));return X&(FG<<Y)-FG}function m1(W,G){switch(typeof W){case"bigint":return W;case"number":return a(Number.isInteger(W),"underflow",G||"value",W),a(W>=-aY&&W<=aY,"overflow",G||"value",W),BigInt(W);case"string":try{if(W==="")throw Error("empty string");if(W[0]==="-"&&W[1]!=="-")return-BigInt(W.substring(1));return BigInt(W)}catch(X){a(!1,`invalid BigNumberish string: ${X.message}`,G||"value",W)}}a(!1,"invalid BigNumberish value",G||"value",W)}function zU(W,G){let X=m1(W,G);return X1(X>=jO,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:W}),X}var Px="0123456789abcdef";function sY(W){if(W instanceof Uint8Array){let G="0x0";for(let X of W)G+=Px[X>>4],G+=Px[X&15];return BigInt(G)}return m1(W)}function a8(W,G){switch(typeof W){case"bigint":return a(W>=-aY&&W<=aY,"overflow",G||"value",W),Number(W);case"number":return a(Number.isInteger(W),"underflow",G||"value",W),a(W>=-aY&&W<=aY,"overflow",G||"value",W),W;case"string":try{if(W==="")throw Error("empty string");return a8(BigInt(W),G)}catch(X){a(!1,`invalid numeric string: ${X.message}`,G||"value",W)}}a(!1,"invalid numeric value",G||"value",W)}function U7(W,G){let Y=zU(W,"value").toString(16);if(G==null){if(Y.length%2)Y="0"+Y}else{let J=a8(G,"width");X1(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 A8(W){let G=zU(W,"value");if(G===jO)return new Uint8Array([]);let X=G.toString(16);if(X.length%2)X="0"+X;let Y=new Uint8Array(X.length/2);for(let J=0;J<Y.length;J++){let Z=J*2;Y[J]=parseInt(X.substring(Z,Z+2),16)}return Y}function LH(W){let G=C0(i7(W)?W:A8(W)).substring(2);while(G.startsWith("0"))G=G.substring(1);if(G==="")G="0";return"0x"+G}var EH="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",BH=null;function er(W){if(BH==null){BH={};for(let X=0;X<EH.length;X++)BH[EH[X]]=BigInt(X)}let G=BH[W];return a(G!=null,"invalid base58 value","letter",W),G}var Wa=BigInt(0),KO=BigInt(58);function $H(W){let G=L0(W),X=sY(G),Y="";while(X)Y=EH[Number(X%KO)]+Y,X/=KO;for(let J=0;J<G.length;J++){if(G[J])break;Y=EH[0]+Y}return Y}function FH(W){let G=Wa;for(let X=0;X<W.length;X++)G*=KO,G+=er(W[X]);return G}function Ga(W,G,X,Y,J){a(!1,`invalid codepoint at offset ${G}; ${W}`,"bytes",X)}function Lx(W,G,X,Y,J){if(W==="BAD_PREFIX"||W==="UNEXPECTED_CONTINUE"){let Z=0;for(let V=G+1;V<X.length;V++){if(X[V]>>6!==2)break;Z++}return Z}if(W==="OVERRUN")return X.length-G-1;return 0}function Xa(W,G,X,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),Lx(W,G,X,Y,J)}var Bx=Object.freeze({error:Ga,ignore:Lx,replace:Xa});function U9(W,G){if(a(typeof W==="string","invalid string value","str",W),G!=null)iY(G),W=W.normalize(G);let X=[];for(let Y=0;Y<W.length;Y++){let J=W.charCodeAt(Y);if(J<128)X.push(J);else if(J<2048)X.push(J>>6|192),X.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);X.push(V>>18|240),X.push(V>>12&63|128),X.push(V>>6&63|128),X.push(V&63|128)}else X.push(J>>12|224),X.push(J>>6&63|128),X.push(J&63|128)}return new Uint8Array(X)}function Ya(W){let G=W.toString(16);while(G.length<2)G="0"+G;return"0x"+G}function Ex(W,G,X){let Y=0;for(let J=0;J<X;J++)Y=Y*256+W[G+J];return Y}function $x(W,G,X,Y){let J=[];while(X<G+1+Y){let Z=Fx(W,X);J.push(Z.result),X+=Z.consumed,X1(X<=G+1+Y,"child data too short","BUFFER_OVERRUN",{buffer:W,length:Y,offset:G})}return{consumed:1+Y,result:J}}function Fx(W,G){X1(W.length!==0,"data too short","BUFFER_OVERRUN",{buffer:W,length:0,offset:1});let X=(Y)=>{X1(Y<=W.length,"data short segment too short","BUFFER_OVERRUN",{buffer:W,length:W.length,offset:Y})};if(W[G]>=248){let Y=W[G]-247;X(G+1+Y);let J=Ex(W,G+1,Y);return X(G+1+Y+J),$x(W,G,G+1+Y,Y+J)}else if(W[G]>=192){let Y=W[G]-192;return X(G+1+Y),$x(W,G,G+1,Y)}else if(W[G]>=184){let Y=W[G]-183;X(G+1+Y);let J=Ex(W,G+1,Y);X(G+1+Y+J);let Z=C0(W.slice(G+1+Y,G+1+Y+J));return{consumed:1+Y+J,result:Z}}else if(W[G]>=128){let Y=W[G]-128;X(G+1+Y);let J=C0(W.slice(G+1,G+1+Y));return{consumed:1+Y,result:J}}return{consumed:1,result:Ya(W[G])}}function WW(W){let G=L0(W,"data"),X=Fx(G,0);return a(X.consumed===G.length,"unexpected junk after rlp payload","data",W),X.result}function Sx(W){let G=[];while(W)G.unshift(W&255),W>>=8;return G}function kx(W){if(Array.isArray(W)){let Y=[];if(W.forEach(function(Z){Y=Y.concat(kx(Z))}),Y.length<=55)return Y.unshift(192+Y.length),Y;let J=Sx(Y.length);return J.unshift(247+J.length),J.concat(Y)}let G=Array.prototype.slice.call(L0(W,"object"));if(G.length===1&&G[0]<=127)return G;else if(G.length<=55)return G.unshift(128+G.length),G;let X=Sx(G.length);return X.unshift(183+X.length),X.concat(G)}var xx="0123456789abcdef";function F5(W){let G="0x";for(let X of kx(W))G+=xx[X>>4],G+=xx[X&15];return G}function SH(W){let G=L0(W,"randomBytes");G[6]=G[6]&15|64,G[8]=G[8]&63|128;let X=C0(G);return[X.substring(2,10),X.substring(10,14),X.substring(14,18),X.substring(18,22),X.substring(22,34)].join("-")}import{createHash as OO,createHmac as _x,pbkdf2Sync as yx,randomBytes as vx}from"crypto";var gx=!1,ux=function(W,G,X){return _x(W,G).update(X).digest()},hx=ux;function GW(W,G,X){let Y=L0(G,"key"),J=L0(X,"data");return C0(hx(W,Y,J))}GW._=ux;GW.lock=function(){gx=!0};GW.register=function(W){if(gx)throw Error("computeHmac is locked");hx=W};Object.freeze(GW);function B9(W){if(!Number.isSafeInteger(W)||W<0)throw Error(`Wrong positive integer: ${W}`)}function IU(W,...G){if(!(W instanceof Uint8Array))throw Error("Expected Uint8Array");if(G.length>0&&!G.includes(W.length))throw Error(`Expected Uint8Array of length ${G}, not of length=${W.length}`)}function xH(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 n4(W,G=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(G&&W.finished)throw Error("Hash#digest() has already been called")}function kH(W,G){IU(W);let X=G.outputLen;if(W.length<X)throw Error(`digestInto() expects output buffer of length at least ${X}`)}var _H=BigInt(4294967295),bx=BigInt(32);function Aa(W,G=!1){if(G)return{h:Number(W&_H),l:Number(W>>bx&_H)};return{h:Number(W>>bx&_H)|0,l:Number(W&_H)|0}}function mx(W,G=!1){let X=new Uint32Array(W.length),Y=new Uint32Array(W.length);for(let J=0;J<W.length;J++){let{h:Z,l:V}=Aa(W[J],G);[X[J],Y[J]]=[Z,V]}return[X,Y]}var fx=(W,G,X)=>W<<X|G>>>32-X,px=(W,G,X)=>G<<X|W>>>32-X,cx=(W,G,X)=>G<<X-32|W>>>64-X,lx=(W,G,X)=>W<<X-32|G>>>64-X;import*as wU from"crypto";var yH=wU&&typeof wU==="object"&&"webcrypto"in wU?wU.webcrypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */var dx=(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),Q7=(W,G)=>W<<32-G|W>>>G,za=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!za)throw Error("Non little-endian hardware is not supported");var Ia=async()=>{};async function vH(W,G,X){let Y=Date.now();for(let J=0;J<W;J++){X(J);let Z=Date.now()-Y;if(Z>=0&&Z<G)continue;await Ia(),Y+=Z}}function wa(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=wa(W);if(!dx(W))throw Error(`expected Uint8Array, got ${typeof W}`);return W}function ox(...W){let G=new Uint8Array(W.reduce((Y,J)=>Y+J.length,0)),X=0;return W.forEach((Y)=>{if(!dx(Y))throw Error("Uint8Array expected");G.set(Y,X),X+=Y.length}),G}class SG{clone(){return this._cloneInto()}}var ja={}.toString;function gH(W,G){if(G!==void 0&&ja.call(G)!=="[object Object]")throw Error("Options should be object or undefined");return Object.assign(W,G)}function WJ(W){let G=(Y)=>W().update(r7(Y)).digest(),X=W();return G.outputLen=X.outputLen,G.blockLen=X.blockLen,G.create=()=>W(),G}function nx(W=32){if(yH&&typeof yH.getRandomValues==="function")return yH.getRandomValues(new Uint8Array(W));throw Error("crypto.getRandomValues must be defined")}var[ax,sx,tx]=[[],[],[]],Ka=BigInt(0),jU=BigInt(1),Oa=BigInt(2),Da=BigInt(7),Ca=BigInt(256),Ta=BigInt(113);for(let W=0,G=jU,X=1,Y=0;W<24;W++){[X,Y]=[Y,(2*X+3*Y)%5],ax.push(2*(5*Y+X)),sx.push((W+1)*(W+2)/2%64);let J=Ka;for(let Z=0;Z<7;Z++)if(G=(G<<jU^(G>>Da)*Ta)%Ca,G&Oa)J^=jU<<(jU<<BigInt(Z))-jU;tx.push(J)}var[Ma,Ra]=mx(tx,!0),ix=(W,G,X)=>X>32?cx(W,G,X):fx(W,G,X),rx=(W,G,X)=>X>32?lx(W,G,X):px(W,G,X);function Pa(W,G=24){let X=new Uint32Array(10);for(let Y=24-G;Y<24;Y++){for(let V=0;V<10;V++)X[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=X[Q],q=X[Q+1],A=ix(N,q,1)^X[U],H=rx(N,q,1)^X[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=sx[V],Q=ix(J,Z,U),N=rx(J,Z,U),q=ax[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++)X[U]=W[V+U];for(let U=0;U<10;U++)W[V+U]^=~X[(U+2)%10]&X[(U+4)%10]}W[0]^=Ma[Y],W[1]^=Ra[Y]}X.fill(0)}class DO extends SG{constructor(W,G,X,Y=!1,J=24){super();if(this.blockLen=W,this.suffix=G,this.outputLen=X,this.enableXOF=Y,this.rounds=J,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,B9(X),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(){Pa(this.state32,this.rounds),this.posOut=0,this.pos=0}update(W){n4(this);let{blockLen:G,state:X}=this;W=r7(W);let Y=W.length;for(let J=0;J<Y;){let Z=Math.min(G-this.pos,Y-J);for(let V=0;V<Z;V++)X[this.pos++]^=W[J++];if(this.pos===G)this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:W,suffix:G,pos:X,blockLen:Y}=this;if(W[X]^=G,(G&128)!==0&&X===Y-1)this.keccak();W[Y-1]^=128,this.keccak()}writeInto(W){n4(this,!1),IU(W),this.finish();let G=this.state,{blockLen:X}=this;for(let Y=0,J=W.length;Y<J;){if(this.posOut>=X)this.keccak();let Z=Math.min(X-this.posOut,J-Y);W.set(G.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(kH(W,this),this.finished)throw Error("digest() was already called");return this.writeInto(W),this.destroy(),W}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(W){let{blockLen:G,suffix:X,outputLen:Y,rounds:J,enableXOF:Z}=this;return W||(W=new DO(G,X,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=X,W.outputLen=Y,W.enableXOF=Z,W.destroyed=this.destroyed,W}}var La=(W,G,X)=>WJ(()=>new DO(G,W,X));var ex=La(1,136,32);var Wk=!1,Gk=function(W){return ex(W)},Xk=Gk;function V8(W){let G=L0(W,"data");return C0(Xk(G))}V8._=Gk;V8.lock=function(){Wk=!0};V8.register=function(W){if(Wk)throw TypeError("keccak256 is locked");Xk=W};Object.freeze(V8);function Ba(W,G,X,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(G,X,Y);let J=BigInt(32),Z=BigInt(4294967295),V=Number(X>>J&Z),U=Number(X&Z),Q=Y?4:0,N=Y?0:4;W.setUint32(G+Q,V,Y),W.setUint32(G+N,U,Y)}class KU extends SG{constructor(W,G,X,Y){super();this.blockLen=W,this.outputLen=G,this.padOffset=X,this.isLE=Y,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(W),this.view=eY(this.buffer)}update(W){n4(this);let{view:G,buffer:X,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(X.set(W.subarray(Z,Z+V),this.pos),this.pos+=V,Z+=V,this.pos===Y)this.process(G,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){n4(this),kH(W,this),this.finished=!0;let{buffer:G,view:X,blockLen:Y,isLE:J}=this,{pos:Z}=this;if(G[Z++]=128,this.buffer.subarray(Z).fill(0),this.padOffset>Y-Z)this.process(X,0),Z=0;for(let q=Z;q<Y;q++)G[q]=0;Ba(X,Y-8,BigInt(this.length*8),J),this.process(X,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:G}=this;this.digestInto(W);let X=W.slice(0,G);return this.destroy(),X}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:G,buffer:X,length:Y,finished:J,destroyed:Z,pos:V}=this;if(W.length=Y,W.pos=V,W.finished=J,W.destroyed=Z,Y%G)W.buffer.set(X);return W}}var Ea=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),Jk=Uint8Array.from({length:16},(W,G)=>G),$a=Jk.map((W)=>(9*W+5)%16),CO=[Jk],TO=[$a];for(let W=0;W<4;W++)for(let G of[CO,TO])G.push(G[W].map((X)=>Ea[X]));var Zk=[[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)),Fa=CO.map((W,G)=>W.map((X)=>Zk[G][X])),Sa=TO.map((W,G)=>W.map((X)=>Zk[G][X])),xa=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),ka=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),uH=(W,G)=>W<<G|W>>>32-G;function Yk(W,G,X,Y){if(W===0)return G^X^Y;else if(W===1)return G&X|~G&Y;else if(W===2)return(G|~X)^Y;else if(W===3)return G&Y|X&~Y;else return G^(X|~Y)}var hH=new Uint32Array(16);class Vk 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:G,h2:X,h3:Y,h4:J}=this;return[W,G,X,Y,J]}set(W,G,X,Y,J){this.h0=W|0,this.h1=G|0,this.h2=X|0,this.h3=Y|0,this.h4=J|0}process(W,G){for(let H=0;H<16;H++,G+=4)hH[H]=W.getUint32(G,!0);let X=this.h0|0,Y=X,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=xa[H],O=ka[H],M=CO[H],S=TO[H],v=Fa[H],f=Sa[H];for(let g=0;g<16;g++){let c=uH(X+Yk(H,J,V,Q)+hH[M[g]]+w,v[g])+q|0;X=q,q=Q,Q=uH(V,10)|0,V=J,J=c}for(let g=0;g<16;g++){let c=uH(Y+Yk(I,Z,U,N)+hH[S[g]]+O,f[g])+A|0;Y=A,A=N,N=uH(U,10)|0,U=Z,Z=c}}this.set(this.h1+V+N|0,this.h2+Q+A|0,this.h3+q+Y|0,this.h4+X+Z|0,this.h0+J+U|0)}roundClean(){hH.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}}var Uk=WJ(()=>new Vk);var Qk=!1,Nk=function(W){return Uk(W)},qk=Nk;function XW(W){let G=L0(W,"data");return C0(qk(G))}XW._=Nk;XW.lock=function(){Qk=!0};XW.register=function(W){if(Qk)throw TypeError("ripemd160 is locked");qk=W};Object.freeze(XW);var Hk=!1,Ak=function(W,G,X,Y,J){return yx(W,G,X,Y,J)},zk=Ak;function S5(W,G,X,Y,J){let Z=L0(W,"password"),V=L0(G,"salt");return C0(zk(Z,V,X,Y,J))}S5._=Ak;S5.lock=function(){Hk=!0};S5.register=function(W){if(Hk)throw Error("pbkdf2 is locked");zk=W};Object.freeze(S5);var Ik=!1,wk=function(W){return new Uint8Array(vx(W))},jk=wk;function x5(W){return jk(W)}x5._=wk;x5.lock=function(){Ik=!0};x5.register=function(W){if(Ik)throw Error("randomBytes is locked");jk=W};Object.freeze(x5);var _a=(W,G,X)=>W&G^~W&X,ya=(W,G,X)=>W&G^W&X^G&X,va=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),YW=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),JW=new Uint32Array(64);class Kk extends KU{constructor(){super(64,32,8,!1);this.A=YW[0]|0,this.B=YW[1]|0,this.C=YW[2]|0,this.D=YW[3]|0,this.E=YW[4]|0,this.F=YW[5]|0,this.G=YW[6]|0,this.H=YW[7]|0}get(){let{A:W,B:G,C:X,D:Y,E:J,F:Z,G:V,H:U}=this;return[W,G,X,Y,J,Z,V,U]}set(W,G,X,Y,J,Z,V,U){this.A=W|0,this.B=G|0,this.C=X|0,this.D=Y|0,this.E=J|0,this.F=Z|0,this.G=V|0,this.H=U|0}process(W,G){for(let q=0;q<16;q++,G+=4)JW[q]=W.getUint32(G,!1);for(let q=16;q<64;q++){let A=JW[q-15],H=JW[q-2],I=Q7(A,7)^Q7(A,18)^A>>>3,w=Q7(H,17)^Q7(H,19)^H>>>10;JW[q]=w+JW[q-7]+I+JW[q-16]|0}let{A:X,B:Y,C:J,D:Z,E:V,F:U,G:Q,H:N}=this;for(let q=0;q<64;q++){let A=Q7(V,6)^Q7(V,11)^Q7(V,25),H=N+A+_a(V,U,Q)+va[q]+JW[q]|0,w=(Q7(X,2)^Q7(X,13)^Q7(X,22))+ya(X,Y,J)|0;N=Q,Q=U,U=V,V=Z+H|0,Z=J,J=Y,Y=X,X=H+w|0}X=X+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(X,Y,J,Z,V,U,Q,N)}roundClean(){JW.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}var OU=WJ(()=>new Kk);class MO extends SG{constructor(W,G){super();this.finished=!1,this.destroyed=!1,xH(W);let X=r7(G);if(this.iHash=W.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let Y=this.blockLen,J=new Uint8Array(Y);J.set(X.length>Y?W.create().update(X).digest():X);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 n4(this),this.iHash.update(W),this}digestInto(W){n4(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:G,iHash:X,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=G._cloneInto(W.oHash),W.iHash=X._cloneInto(W.iHash),W}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var DU=(W,G,X)=>new MO(W,G).update(X).digest();DU.create=(W,G)=>new MO(W,G);function ga(W,G,X,Y){xH(W);let J=gH({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(G),N=r7(X),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 ua(W,G,X,Y,J){if(W.destroy(),G.destroy(),Y)Y.destroy();return J.fill(0),X}function RO(W,G,X,Y){let{c:J,dkLen:Z,DK:V,PRF:U,PRFSalt:Q}=ga(W,G,X,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 M=1;M<J;M++){U._cloneInto(N).update(H).digestInto(H);for(let S=0;S<O.length;S++)O[S]^=H[S]}}return ua(U,Q,V,N,H)}var a1=(W,G)=>W<<G|W>>>32-G;function Ok(W,G,X,Y,J,Z){let V=W[G++]^X[Y++],U=W[G++]^X[Y++],Q=W[G++]^X[Y++],N=W[G++]^X[Y++],q=W[G++]^X[Y++],A=W[G++]^X[Y++],H=W[G++]^X[Y++],I=W[G++]^X[Y++],w=W[G++]^X[Y++],O=W[G++]^X[Y++],M=W[G++]^X[Y++],S=W[G++]^X[Y++],v=W[G++]^X[Y++],f=W[G++]^X[Y++],g=W[G++]^X[Y++],c=W[G++]^X[Y++],l=V,h=U,e=Q,m=N,W0=q,H0=A,k=H,i=I,B=w,L=O,b=M,s=S,o=v,E=f,$=g,_=c;for(let x=0;x<8;x+=2)W0^=a1(l+o|0,7),B^=a1(W0+l|0,9),o^=a1(B+W0|0,13),l^=a1(o+B|0,18),L^=a1(H0+h|0,7),E^=a1(L+H0|0,9),h^=a1(E+L|0,13),H0^=a1(h+E|0,18),$^=a1(b+k|0,7),e^=a1($+b|0,9),k^=a1(e+$|0,13),b^=a1(k+e|0,18),m^=a1(_+s|0,7),i^=a1(m+_|0,9),s^=a1(i+m|0,13),_^=a1(s+i|0,18),h^=a1(l+m|0,7),e^=a1(h+l|0,9),m^=a1(e+h|0,13),l^=a1(m+e|0,18),k^=a1(H0+W0|0,7),i^=a1(k+H0|0,9),W0^=a1(i+k|0,13),H0^=a1(W0+i|0,18),s^=a1(b+L|0,7),B^=a1(s+b|0,9),L^=a1(B+s|0,13),b^=a1(L+B|0,18),o^=a1(_+$|0,7),E^=a1(o+_|0,9),$^=a1(E+o|0,13),_^=a1($+E|0,18);J[Z++]=V+l|0,J[Z++]=U+h|0,J[Z++]=Q+e|0,J[Z++]=N+m|0,J[Z++]=q+W0|0,J[Z++]=A+H0|0,J[Z++]=H+k|0,J[Z++]=I+i|0,J[Z++]=w+B|0,J[Z++]=O+L|0,J[Z++]=M+b|0,J[Z++]=S+s|0,J[Z++]=v+o|0,J[Z++]=f+E|0,J[Z++]=g+$|0,J[Z++]=c+_|0}function GJ(W,G,X,Y,J){let Z=Y+0,V=Y+16*J;for(let U=0;U<16;U++)X[V+U]=W[G+(2*J-1)*16+U];for(let U=0;U<J;U++,Z+=16,G+=16){if(Ok(X,V,W,G,X,Z),U>0)V+=16;Ok(X,Z,W,G+=16,X,V)}}function Dk(W,G,X){let Y=gH({dkLen:32,asyncTick:10,maxmem:1073742848},X),{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=RO(OU,W,G,{c:1,dkLen:A*V}),O=tY(w),M=tY(new Uint8Array(A*J)),S=tY(new Uint8Array(A)),v=()=>{};if(q){let f=2*J*V,g=Math.max(Math.floor(f/1e4),1),c=0;v=()=>{if(c++,q&&(!(c%g)||c===f))q(c/f)}}return{N:J,r:Z,p:V,dkLen:U,blockSize32:H,V:M,B32:O,B:w,tmp:S,blockMixCb:v,asyncTick:Q}}function Ck(W,G,X,Y,J){let Z=RO(OU,W,X,{c:1,dkLen:G});return X.fill(0),Y.fill(0),J.fill(0),Z}function Tk(W,G,X){let{N:Y,r:J,p:Z,dkLen:V,blockSize32:U,V:Q,B32:N,B:q,tmp:A,blockMixCb:H}=Dk(W,G,X);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,M=0;O<Y-1;O++)GJ(Q,M,Q,M+=U,J),H();GJ(Q,(Y-1)*U,N,w,J),H();for(let O=0;O<Y;O++){let M=N[w+U-16]%Y;for(let S=0;S<U;S++)A[S]=N[w+S]^Q[M*U+S];GJ(A,0,N,w,J),H()}}return Ck(W,V,q,Q,A)}async function Mk(W,G,X){let{N:Y,r:J,p:Z,dkLen:V,blockSize32:U,V:Q,B32:N,B:q,tmp:A,blockMixCb:H,asyncTick:I}=Dk(W,G,X);for(let w=0;w<Z;w++){let O=U*w;for(let S=0;S<U;S++)Q[S]=N[O+S];let M=0;await vH(Y-1,I,()=>{GJ(Q,M,Q,M+=U,J),H()}),GJ(Q,(Y-1)*U,N,O,J),H(),await vH(Y,I,()=>{let S=N[O+U-16]%Y;for(let v=0;v<U;v++)A[v]=N[O+v]^Q[S*U+v];GJ(A,0,N,O,J),H()})}return Ck(W,V,q,Q,A)}var Rk=!1,Pk=!1,Lk=async function(W,G,X,Y,J,Z,V){return await Mk(W,G,{N:X,r:Y,p:J,dkLen:Z,onProgress:V})},Bk=function(W,G,X,Y,J,Z){return Tk(W,G,{N:X,r:Y,p:J,dkLen:Z})},Ek=Lk,$k=Bk;async function ZW(W,G,X,Y,J,Z,V){let U=L0(W,"passwd"),Q=L0(G,"salt");return C0(await Ek(U,Q,X,Y,J,Z,V))}ZW._=Lk;ZW.lock=function(){Pk=!0};ZW.register=function(W){if(Pk)throw Error("scrypt is locked");Ek=W};Object.freeze(ZW);function VW(W,G,X,Y,J,Z){let V=L0(W,"passwd"),U=L0(G,"salt");return C0($k(V,U,X,Y,J,Z))}VW._=Bk;VW.lock=function(){Rk=!0};VW.register=function(W){if(Rk)throw Error("scryptSync is locked");$k=W};Object.freeze(VW);var Fk=function(W){return OO("sha256").update(W).digest()},Sk=function(W){return OO("sha512").update(W).digest()},xk=Fk,kk=Sk,_k=!1,yk=!1;function E9(W){let G=L0(W,"data");return C0(xk(G))}E9._=Fk;E9.lock=function(){_k=!0};E9.register=function(W){if(_k)throw Error("sha256 is locked");xk=W};Object.freeze(E9);function bH(W){let G=L0(W,"data");return C0(kk(G))}bH._=Sk;bH.lock=function(){yk=!0};bH.register=function(W){if(yk)throw Error("sha512 is locked");kk=W};Object.freeze(E9);var EO={};AA(EO,{validateObject:()=>QW,utf8ToBytes:()=>pa,numberToVarBytesBE:()=>ma,numberToHexUnpadded:()=>uk,numberToBytesLE:()=>cH,numberToBytesBE:()=>UW,hexToNumber:()=>LO,hexToBytes:()=>kG,equalBytes:()=>fa,ensureBytes:()=>I5,createHmacDrbg:()=>BO,concatBytes:()=>XJ,bytesToNumberLE:()=>pH,bytesToNumberBE:()=>i4,bytesToHex:()=>xG,bitSet:()=>da,bitMask:()=>CU,bitLen:()=>ca,bitGet:()=>la});/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var gk=BigInt(0),mH=BigInt(1),ha=BigInt(2),fH=(W)=>W instanceof Uint8Array,ba=Array.from({length:256},(W,G)=>G.toString(16).padStart(2,"0"));function xG(W){if(!fH(W))throw Error("Uint8Array expected");let G="";for(let X=0;X<W.length;X++)G+=ba[W[X]];return G}function uk(W){let G=W.toString(16);return G.length&1?`0${G}`:G}function LO(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return BigInt(W===""?"0":`0x${W}`)}function kG(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);let G=W.length;if(G%2)throw Error("padded hex string expected, got unpadded hex of length "+G);let X=new Uint8Array(G/2);for(let Y=0;Y<X.length;Y++){let 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");X[Y]=V}return X}function i4(W){return LO(xG(W))}function pH(W){if(!fH(W))throw Error("Uint8Array expected");return LO(xG(Uint8Array.from(W).reverse()))}function UW(W,G){return kG(W.toString(16).padStart(G*2,"0"))}function cH(W,G){return UW(W,G).reverse()}function ma(W){return kG(uk(W))}function I5(W,G,X){let Y;if(typeof G==="string")try{Y=kG(G)}catch(Z){throw Error(`${W} must be valid hex string, got "${G}". Cause: ${Z}`)}else if(fH(G))Y=Uint8Array.from(G);else throw Error(`${W} must be hex string or Uint8Array`);let J=Y.length;if(typeof X==="number"&&J!==X)throw Error(`${W} expected ${X} bytes, got ${J}`);return Y}function XJ(...W){let G=new Uint8Array(W.reduce((Y,J)=>Y+J.length,0)),X=0;return W.forEach((Y)=>{if(!fH(Y))throw Error("Uint8Array expected");G.set(Y,X),X+=Y.length}),G}function fa(W,G){if(W.length!==G.length)return!1;for(let X=0;X<W.length;X++)if(W[X]!==G[X])return!1;return!0}function pa(W){if(typeof W!=="string")throw Error(`utf8ToBytes expected string, got ${typeof W}`);return new Uint8Array(new TextEncoder().encode(W))}function ca(W){let G;for(G=0;W>gk;W>>=mH,G+=1);return G}function la(W,G){return W>>BigInt(G)&mH}var da=(W,G,X)=>{return W|(X?mH:gk)<<BigInt(G)},CU=(W)=>(ha<<BigInt(W-1))-mH,PO=(W)=>new Uint8Array(W),vk=(W)=>Uint8Array.from(W);function BO(W,G,X){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof G!=="number"||G<2)throw Error("qByteLen must be a number");if(typeof X!=="function")throw Error("hmacFn must be a function");let Y=PO(W),J=PO(W),Z=0,V=()=>{Y.fill(1),J.fill(0),Z=0},U=(...A)=>X(J,Y,...A),Q=(A=PO())=>{if(J=U(vk([0]),A),Y=U(),A.length===0)return;J=U(vk([1]),A),Y=U()},N=()=>{if(Z++>=1000)throw Error("drbg: tried 1000 values");let A=0,H=[];while(A<G){Y=U();let I=Y.slice();H.push(I),A+=Y.length}return XJ(...H)};return(A,H)=>{V(),Q(A);let I=void 0;while(!(I=H(N())))Q();return V(),I}}var oa={bigint:(W)=>typeof W==="bigint",function:(W)=>typeof W==="function",boolean:(W)=>typeof W==="boolean",string:(W)=>typeof W==="string",stringOrUint8Array:(W)=>typeof W==="string"||W instanceof Uint8Array,isSafeInteger:(W)=>Number.isSafeInteger(W),array:(W)=>Array.isArray(W),field:(W,G)=>G.Fp.isValid(W),hash:(W)=>typeof W==="function"&&Number.isSafeInteger(W.outputLen)};function QW(W,G,X={}){let Y=(J,Z,V)=>{let U=oa[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(G))Y(J,Z,!1);for(let[J,Z]of Object.entries(X))Y(J,Z,!0);return W}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var o8=BigInt(0),S8=BigInt(1),_G=BigInt(2),na=BigInt(3),$O=BigInt(4),hk=BigInt(5),bk=BigInt(8),ia=BigInt(9),ra=BigInt(16);function $9(W,G){let X=W%G;return X>=o8?X:G+X}function aa(W,G,X){if(X<=o8||G<o8)throw Error("Expected power/modulo > 0");if(X===S8)return o8;let Y=S8;while(G>o8){if(G&S8)Y=Y*W%X;W=W*W%X,G>>=S8}return Y}function w5(W,G,X){let Y=W;while(G-- >o8)Y*=Y,Y%=X;return Y}function lH(W,G){if(W===o8||G<=o8)throw Error(`invert: expected positive integers, got n=${W} mod=${G}`);let X=$9(W,G),Y=G,J=o8,Z=S8,V=S8,U=o8;while(X!==o8){let N=Y/X,q=Y%X,A=J-V*N,H=Z-U*N;Y=X,X=q,J=V,Z=U,V=A,U=H}if(Y!==S8)throw Error("invert: does not exist");return $9(J,G)}function sa(W){let G=(W-S8)/_G,X,Y,J;for(X=W-S8,Y=0;X%_G===o8;X/=_G,Y++);for(J=_G;J<W&&aa(J,G,W)!==W-S8;J++);if(Y===1){let V=(W+S8)/$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=(X+S8)/_G;return function(U,Q){if(U.pow(Q,G)===U.neg(U.ONE))throw Error("Cannot find square root");let N=Y,q=U.pow(U.mul(U.ONE,J),X),A=U.pow(Q,Z),H=U.pow(Q,X);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,S8<<BigInt(N-I-1));q=U.sqr(w),A=U.mul(A,w),H=U.mul(H,q),N=I}return A}}function ta(W){if(W%$O===na){let G=(W+S8)/$O;return function(Y,J){let Z=Y.pow(J,G);if(!Y.eql(Y.sqr(Z),J))throw Error("Cannot find square root");return Z}}if(W%bk===hk){let G=(W-hk)/bk;return function(Y,J){let Z=Y.mul(J,_G),V=Y.pow(Z,G),U=Y.mul(J,V),Q=Y.mul(Y.mul(U,_G),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%ra===ia);return sa(W)}var ea=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function FO(W){let G={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},X=ea.reduce((Y,J)=>{return Y[J]="function",Y},G);return QW(W,X)}function Ws(W,G,X){if(X<o8)throw Error("Expected power > 0");if(X===o8)return W.ONE;if(X===S8)return G;let Y=W.ONE,J=G;while(X>o8){if(X&S8)Y=W.mul(Y,J);J=W.sqr(J),X>>=S8}return Y}function Gs(W,G){let X=Array(G.length),Y=G.reduce((Z,V,U)=>{if(W.is0(V))return Z;return X[U]=Z,W.mul(Z,V)},W.ONE),J=W.inv(Y);return G.reduceRight((Z,V,U)=>{if(W.is0(V))return Z;return X[U]=W.mul(Z,X[U]),W.mul(Z,V)},J),X}function SO(W,G){let X=G!==void 0?G:W.toString(2).length,Y=Math.ceil(X/8);return{nBitLength:X,nByteLength:Y}}function mk(W,G,X=!1,Y={}){if(W<=o8)throw Error(`Expected Field ORDER > 0, got ${W}`);let{nBitLength:J,nByteLength:Z}=SO(W,G);if(Z>2048)throw Error("Field lengths over 2048 bytes are not supported");let V=ta(W),U=Object.freeze({ORDER:W,BITS:J,BYTES:Z,MASK:CU(J),ZERO:o8,ONE:S8,create:(Q)=>$9(Q,W),isValid:(Q)=>{if(typeof Q!=="bigint")throw Error(`Invalid field element: expected bigint, got ${typeof Q}`);return o8<=Q&&Q<W},is0:(Q)=>Q===o8,isOdd:(Q)=>(Q&S8)===S8,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)=>Ws(U,Q,N),div:(Q,N)=>$9(Q*lH(N,W),W),sqrN:(Q)=>Q*Q,addN:(Q,N)=>Q+N,subN:(Q,N)=>Q-N,mulN:(Q,N)=>Q*N,inv:(Q)=>lH(Q,W),sqrt:Y.sqrt||((Q)=>V(U,Q)),invertBatch:(Q)=>Gs(U,Q),cmov:(Q,N,q)=>q?N:Q,toBytes:(Q)=>X?cH(Q,Z):UW(Q,Z),fromBytes:(Q)=>{if(Q.length!==Z)throw Error(`Fp.fromBytes: expected ${Z}, got ${Q.length}`);return X?pH(Q):i4(Q)}});return Object.freeze(U)}function fk(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let G=W.toString(2).length;return Math.ceil(G/8)}function xO(W){let G=fk(W);return G+Math.ceil(G/2)}function pk(W,G,X=!1){let Y=W.length,J=fk(G),Z=xO(G);if(Y<16||Y<Z||Y>1024)throw Error(`expected ${Z}-1024 bytes of input, got ${Y}`);let V=X?i4(W):pH(W),U=$9(V,G-S8)+S8;return X?cH(U,J):UW(U,J)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Ys=BigInt(0),kO=BigInt(1);function ck(W,G){let X=(J,Z)=>{let V=Z.negate();return J?V:Z},Y=(J)=>{let Z=Math.ceil(G/J)+1,V=2**(J-1);return{windows:Z,windowSize:V}};return{constTimeNegate:X,unsafeLadder(J,Z){let V=W.ZERO,U=J;while(Z>Ys){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,M=Number(V&A);if(V>>=I,M>Q)M-=H,V+=kO;let S=O,v=O+Math.abs(M)-1,f=w%2!==0,g=M<0;if(M===0)q=q.add(X(f,Z[S]));else N=N.add(X(g,Z[v]))}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),QW(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 Js(W){let G=_O(W);QW(G,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:X,Fp:Y,a:J}=G;if(X){if(!Y.eql(J,Y.ZERO))throw Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof X!=="object"||typeof X.beta!=="bigint"||typeof X.splitScalar!=="function")throw Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...G})}var{bytesToNumberBE:Zs,hexToBytes:Vs}=EO,yG={Err:class extends Error{constructor(G=""){super(G)}},_parseInt(W){let{Err:G}=yG;if(W.length<2||W[0]!==2)throw new G("Invalid signature integer tag");let X=W[1],Y=W.subarray(2,X+2);if(!X||Y.length!==X)throw new G("Invalid signature integer: wrong length");if(Y[0]&128)throw new G("Invalid signature integer: negative");if(Y[0]===0&&!(Y[1]&128))throw new G("Invalid signature integer: unnecessary leading zero");return{d:Zs(Y),l:W.subarray(X+2)}},toSig(W){let{Err:G}=yG,X=typeof W==="string"?Vs(W):W;if(!(X instanceof Uint8Array))throw Error("ui8a expected");let Y=X.length;if(Y<2||X[0]!=48)throw new G("Invalid signature tag");if(X[1]!==Y-2)throw new G("Invalid signature: incorrect length");let{d:J,l:Z}=yG._parseInt(X.subarray(2)),{d:V,l:U}=yG._parseInt(Z);if(U.length)throw new G("Invalid signature: left bytes after parsing");return{r:J,s:V}},hexFromSig(W){let G=(N)=>Number.parseInt(N[0],16)&8?"00"+N:N,X=(N)=>{let q=N.toString(16);return q.length&1?`0${q}`:q},Y=G(X(W.s)),J=G(X(W.r)),Z=Y.length/2,V=J.length/2,U=X(Z),Q=X(V);return`30${X(V+Z+4)}02${Q}${J}02${U}${Y}`}},r4=BigInt(0),k5=BigInt(1),Hj0=BigInt(2),lk=BigInt(3),Aj0=BigInt(4);function Us(W){let G=Js(W),{Fp:X}=G,Y=G.toBytes||((w,O,M)=>{let S=O.toAffine();return XJ(Uint8Array.from([4]),X.toBytes(S.x),X.toBytes(S.y))}),J=G.fromBytes||((w)=>{let O=w.subarray(1),M=X.fromBytes(O.subarray(0,X.BYTES)),S=X.fromBytes(O.subarray(X.BYTES,2*X.BYTES));return{x:M,y:S}});function Z(w){let{a:O,b:M}=G,S=X.sqr(w),v=X.mul(S,w);return X.add(X.add(v,X.mul(w,O)),M)}if(!X.eql(X.sqr(G.Gy),Z(G.Gx)))throw Error("bad generator point: equation left != right");function V(w){return typeof w==="bigint"&&r4<w&&w<G.n}function U(w){if(!V(w))throw Error("Expected valid bigint: 0 < bigint < curve.n")}function Q(w){let{allowedPrivateKeyLengths:O,nByteLength:M,wrapPrivateKey:S,n:v}=G;if(O&&typeof w!=="bigint"){if(w instanceof Uint8Array)w=xG(w);if(typeof w!=="string"||!O.includes(w.length))throw Error("Invalid key");w=w.padStart(M*2,"0")}let f;try{f=typeof w==="bigint"?w:i4(I5("private key",w,M))}catch(g){throw Error(`private key must be ${M} bytes, hex or bigint, not ${typeof w}`)}if(S)f=$9(f,v);return U(f),f}let N=new Map;function q(w){if(!(w instanceof A))throw Error("ProjectivePoint expected")}class A{constructor(w,O,M){if(this.px=w,this.py=O,this.pz=M,w==null||!X.isValid(w))throw Error("x required");if(O==null||!X.isValid(O))throw Error("y required");if(M==null||!X.isValid(M))throw Error("z required")}static fromAffine(w){let{x:O,y:M}=w||{};if(!w||!X.isValid(O)||!X.isValid(M))throw Error("invalid affine point");if(w instanceof A)throw Error("projective point not allowed");let S=(v)=>X.eql(v,X.ZERO);if(S(O)&&S(M))return A.ZERO;return new A(O,M,X.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(w){let O=X.invertBatch(w.map((M)=>M.pz));return w.map((M,S)=>M.toAffine(O[S])).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(G.allowInfinityPoint&&!X.is0(this.py))return;throw Error("bad point: ZERO")}let{x:w,y:O}=this.toAffine();if(!X.isValid(w)||!X.isValid(O))throw Error("bad point: x or y not FE");let M=X.sqr(O),S=Z(w);if(!X.eql(M,S))throw Error("bad point: equation left != right");if(!this.isTorsionFree())throw Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:w}=this.toAffine();if(X.isOdd)return!X.isOdd(w);throw Error("Field doesn't support isOdd")}equals(w){q(w);let{px:O,py:M,pz:S}=this,{px:v,py:f,pz:g}=w,c=X.eql(X.mul(O,g),X.mul(v,S)),l=X.eql(X.mul(M,g),X.mul(f,S));return c&&l}negate(){return new A(this.px,X.neg(this.py),this.pz)}double(){let{a:w,b:O}=G,M=X.mul(O,lk),{px:S,py:v,pz:f}=this,g=X.ZERO,c=X.ZERO,l=X.ZERO,h=X.mul(S,S),e=X.mul(v,v),m=X.mul(f,f),W0=X.mul(S,v);return W0=X.add(W0,W0),l=X.mul(S,f),l=X.add(l,l),g=X.mul(w,l),c=X.mul(M,m),c=X.add(g,c),g=X.sub(e,c),c=X.add(e,c),c=X.mul(g,c),g=X.mul(W0,g),l=X.mul(M,l),m=X.mul(w,m),W0=X.sub(h,m),W0=X.mul(w,W0),W0=X.add(W0,l),l=X.add(h,h),h=X.add(l,h),h=X.add(h,m),h=X.mul(h,W0),c=X.add(c,h),m=X.mul(v,f),m=X.add(m,m),h=X.mul(m,W0),g=X.sub(g,h),l=X.mul(m,e),l=X.add(l,l),l=X.add(l,l),new A(g,c,l)}add(w){q(w);let{px:O,py:M,pz:S}=this,{px:v,py:f,pz:g}=w,c=X.ZERO,l=X.ZERO,h=X.ZERO,e=G.a,m=X.mul(G.b,lk),W0=X.mul(O,v),H0=X.mul(M,f),k=X.mul(S,g),i=X.add(O,M),B=X.add(v,f);i=X.mul(i,B),B=X.add(W0,H0),i=X.sub(i,B),B=X.add(O,S);let L=X.add(v,g);return B=X.mul(B,L),L=X.add(W0,k),B=X.sub(B,L),L=X.add(M,S),c=X.add(f,g),L=X.mul(L,c),c=X.add(H0,k),L=X.sub(L,c),h=X.mul(e,B),c=X.mul(m,k),h=X.add(c,h),c=X.sub(H0,h),h=X.add(H0,h),l=X.mul(c,h),H0=X.add(W0,W0),H0=X.add(H0,W0),k=X.mul(e,k),B=X.mul(m,B),H0=X.add(H0,k),k=X.sub(W0,k),k=X.mul(e,k),B=X.add(B,k),W0=X.mul(H0,B),l=X.add(l,W0),W0=X.mul(L,B),c=X.mul(i,c),c=X.sub(c,W0),W0=X.mul(i,H0),h=X.mul(L,h),h=X.add(h,W0),new A(c,l,h)}subtract(w){return this.add(w.negate())}is0(){return this.equals(A.ZERO)}wNAF(w){return I.wNAFCached(this,N,w,(O)=>{let M=X.invertBatch(O.map((S)=>S.pz));return O.map((S,v)=>S.toAffine(M[v])).map(A.fromAffine)})}multiplyUnsafe(w){let O=A.ZERO;if(w===r4)return O;if(U(w),w===k5)return this;let{endo:M}=G;if(!M)return I.unsafeLadder(this,w);let{k1neg:S,k1:v,k2neg:f,k2:g}=M.splitScalar(w),c=O,l=O,h=this;while(v>r4||g>r4){if(v&k5)c=c.add(h);if(g&k5)l=l.add(h);h=h.double(),v>>=k5,g>>=k5}if(S)c=c.negate();if(f)l=l.negate();return l=new A(X.mul(l.px,M.beta),l.py,l.pz),c.add(l)}multiply(w){U(w);let O=w,M,S,{endo:v}=G;if(v){let{k1neg:f,k1:g,k2neg:c,k2:l}=v.splitScalar(O),{p:h,f:e}=this.wNAF(g),{p:m,f:W0}=this.wNAF(l);h=I.constTimeNegate(f,h),m=I.constTimeNegate(c,m),m=new A(X.mul(m.px,v.beta),m.py,m.pz),M=h.add(m),S=e.add(W0)}else{let{p:f,f:g}=this.wNAF(O);M=f,S=g}return A.normalizeZ([M,S])[0]}multiplyAndAddUnsafe(w,O,M){let S=A.BASE,v=(g,c)=>c===r4||c===k5||!g.equals(S)?g.multiplyUnsafe(c):g.multiply(c),f=v(this,O).add(v(w,M));return f.is0()?void 0:f}toAffine(w){let{px:O,py:M,pz:S}=this,v=this.is0();if(w==null)w=v?X.ONE:X.inv(S);let f=X.mul(O,w),g=X.mul(M,w),c=X.mul(S,w);if(v)return{x:X.ZERO,y:X.ZERO};if(!X.eql(c,X.ONE))throw Error("invZ was invalid");return{x:f,y:g}}isTorsionFree(){let{h:w,isTorsionFree:O}=G;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}=G;if(w===k5)return this;if(O)return O(A,this);return this.multiplyUnsafe(G.h)}toRawBytes(w=!0){return this.assertValidity(),Y(A,this,w)}toHex(w=!0){return xG(this.toRawBytes(w))}}A.BASE=new A(G.Gx,G.Gy,X.ONE),A.ZERO=new A(X.ZERO,X.ONE,X.ZERO);let H=G.nBitLength,I=ck(A,G.endo?Math.ceil(H/2):H);return{CURVE:G,ProjectivePoint:A,normPrivateKeyToScalar:Q,weierstrassEquation:Z,isWithinCurveOrder:V}}function Qs(W){let G=_O(W);return QW(G,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...G})}function dk(W){let G=Qs(W),{Fp:X,n:Y}=G,J=X.BYTES+1,Z=2*X.BYTES+1;function V(L){return r4<L&&L<X.ORDER}function U(L){return $9(L,Y)}function Q(L){return lH(L,Y)}let{ProjectivePoint:N,normPrivateKeyToScalar:q,weierstrassEquation:A,isWithinCurveOrder:H}=Us({...G,toBytes(L,b,s){let o=b.toAffine(),E=X.toBytes(o.x),$=XJ;if(s)return $(Uint8Array.from([b.hasEvenY()?2:3]),E);else return $(Uint8Array.from([4]),E,X.toBytes(o.y))},fromBytes(L){let b=L.length,s=L[0],o=L.subarray(1);if(b===J&&(s===2||s===3)){let E=i4(o);if(!V(E))throw Error("Point is not on curve");let $=A(E),_=X.sqrt($),x=(_&k5)===k5;if((s&1)===1!==x)_=X.neg(_);return{x:E,y:_}}else if(b===Z&&s===4){let E=X.fromBytes(o.subarray(0,X.BYTES)),$=X.fromBytes(o.subarray(X.BYTES,2*X.BYTES));return{x:E,y:$}}else throw Error(`Point of length ${b} was invalid. Expected ${J} compressed bytes or ${Z} uncompressed bytes`)}}),I=(L)=>xG(UW(L,G.nByteLength));function w(L){let b=Y>>k5;return L>b}function O(L){return w(L)?U(-L):L}let M=(L,b,s)=>i4(L.slice(b,s));class S{constructor(L,b,s){this.r=L,this.s=b,this.recovery=s,this.assertValidity()}static fromCompact(L){let b=G.nByteLength;return L=I5("compactSignature",L,b*2),new S(M(L,0,b),M(L,b,2*b))}static fromDER(L){let{r:b,s}=yG.toSig(I5("DER",L));return new S(b,s)}assertValidity(){if(!H(this.r))throw Error("r must be 0 < r < CURVE.n");if(!H(this.s))throw Error("s must be 0 < s < CURVE.n")}addRecoveryBit(L){return new S(this.r,this.s,L)}recoverPublicKey(L){let{r:b,s,recovery:o}=this,E=h(I5("msgHash",L));if(o==null||![0,1,2,3].includes(o))throw Error("recovery id invalid");let $=o===2||o===3?b+G.n:b;if($>=X.ORDER)throw Error("recovery id 2 or 3 invalid");let _=(o&1)===0?"02":"03",x=N.fromHex(_+I($)),R=Q($),u=U(-E*R),J0=U(s*R),V0=N.BASE.multiplyAndAddUnsafe(x,u,J0);if(!V0)throw Error("point at infinify");return V0.assertValidity(),V0}hasHighS(){return w(this.s)}normalizeS(){return this.hasHighS()?new S(this.r,U(-this.s),this.recovery):this}toDERRawBytes(){return kG(this.toDERHex())}toDERHex(){return yG.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return kG(this.toCompactHex())}toCompactHex(){return I(this.r)+I(this.s)}}let v={isValidPrivateKey(L){try{return q(L),!0}catch(b){return!1}},normPrivateKeyToScalar:q,randomPrivateKey:()=>{let L=xO(G.n);return pk(G.randomBytes(L),G.n)},precompute(L=8,b=N.BASE){return b._setWindowSize(L),b.multiply(BigInt(3)),b}};function f(L,b=!0){return N.fromPrivateKey(L).toRawBytes(b)}function g(L){let b=L instanceof Uint8Array,s=typeof L==="string",o=(b||s)&&L.length;if(b)return o===J||o===Z;if(s)return o===2*J||o===2*Z;if(L instanceof N)return!0;return!1}function c(L,b,s=!0){if(g(L))throw Error("first arg must be private key");if(!g(b))throw Error("second arg must be public key");return N.fromHex(b).multiply(q(L)).toRawBytes(s)}let l=G.bits2int||function(L){let b=i4(L),s=L.length*8-G.nBitLength;return s>0?b>>BigInt(s):b},h=G.bits2int_modN||function(L){return U(l(L))},e=CU(G.nBitLength);function m(L){if(typeof L!=="bigint")throw Error("bigint expected");if(!(r4<=L&&L<e))throw Error(`bigint expected < 2^${G.nBitLength}`);return UW(L,G.nByteLength)}function W0(L,b,s=H0){if(["recovered","canonical"].some((v0)=>(v0 in s)))throw Error("sign() legacy options not supported");let{hash:o,randomBytes:E}=G,{lowS:$,prehash:_,extraEntropy:x}=s;if($==null)$=!0;if(L=I5("msgHash",L),_)L=I5("prehashed msgHash",o(L));let R=h(L),u=q(b),J0=[m(u),m(R)];if(x!=null){let v0=x===!0?E(X.BYTES):x;J0.push(I5("extraEntropy",v0))}let V0=XJ(...J0),Q0=R;function B0(v0){let Q1=l(v0);if(!H(Q1))return;let u1=Q(Q1),k0=N.BASE.multiply(Q1).toAffine(),h1=U(k0.x);if(h1===r4)return;let E1=U(u1*U(Q0+h1*u));if(E1===r4)return;let p=(k0.x===h1?0:2)|Number(k0.y&k5),X0=E1;if($&&w(E1))X0=O(E1),p^=1;return new S(h1,X0,p)}return{seed:V0,k2sig:B0}}let H0={lowS:G.lowS,prehash:!1},k={lowS:G.lowS,prehash:!1};function i(L,b,s=H0){let{seed:o,k2sig:E}=W0(L,b,s),$=G;return BO($.hash.outputLen,$.nByteLength,$.hmac)(o,E)}N.BASE._setWindowSize(8);function B(L,b,s,o=k){let E=L;if(b=I5("msgHash",b),s=I5("publicKey",s),"strict"in o)throw Error("options.strict was renamed to lowS");let{lowS:$,prehash:_}=o,x=void 0,R;try{if(typeof E==="string"||E instanceof Uint8Array)try{x=S.fromDER(E)}catch(k0){if(!(k0 instanceof yG.Err))throw k0;x=S.fromCompact(E)}else if(typeof E==="object"&&typeof E.r==="bigint"&&typeof E.s==="bigint"){let{r:k0,s:h1}=E;x=new S(k0,h1)}else throw Error("PARSE");R=N.fromHex(s)}catch(k0){if(k0.message==="PARSE")throw Error("signature must be Signature instance, Uint8Array or hex string");return!1}if($&&x.hasHighS())return!1;if(_)b=G.hash(b);let{r:u,s:J0}=x,V0=h(b),Q0=Q(J0),B0=U(V0*Q0),v0=U(u*Q0),Q1=N.BASE.multiplyAndAddUnsafe(R,B0,v0)?.toAffine();if(!Q1)return!1;return U(Q1.x)===u}return{CURVE:G,getPublicKey:f,getSharedSecret:c,sign:i,verify:B,ProjectivePoint:N,Signature:S,utils:v}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Ns(W){return{hash:W,hmac:(G,...X)=>DU(W,G,ox(...X)),randomBytes:nx}}function ok(W,G){let X=(Y)=>dk({...W,...Ns(Y)});return Object.freeze({...X(G),create:X})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var rk=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),nk=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),qs=BigInt(1),yO=BigInt(2),ik=(W,G)=>(W+G/yO)/G;function Hs(W){let G=rk,X=BigInt(3),Y=BigInt(6),J=BigInt(11),Z=BigInt(22),V=BigInt(23),U=BigInt(44),Q=BigInt(88),N=W*W*W%G,q=N*N*W%G,A=w5(q,X,G)*q%G,H=w5(A,X,G)*q%G,I=w5(H,yO,G)*N%G,w=w5(I,J,G)*I%G,O=w5(w,Z,G)*w%G,M=w5(O,U,G)*O%G,S=w5(M,Q,G)*M%G,v=w5(S,U,G)*O%G,f=w5(v,X,G)*q%G,g=w5(f,V,G)*w%G,c=w5(g,Y,G)*N%G,l=w5(c,yO,G);if(!vO.eql(vO.sqr(l),W))throw Error("Cannot find square root");return l}var vO=mk(rk,void 0,void 0,{sqrt:Hs}),a4=ok({a:BigInt(0),b:BigInt(7),Fp:vO,n:nk,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:(W)=>{let G=nk,X=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),Y=-qs*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),J=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),Z=X,V=BigInt("0x100000000000000000000000000000000"),U=ik(Z*W,G),Q=ik(-Y*W,G),N=$9(W-U*X-Q*J,G),q=$9(-U*Y-Q*Z,G),A=N>V,H=q>V;if(A)N=G-N;if(H)q=G-q;if(N>V||q>V)throw Error("splitScalar: Endomorphism failed, k="+W);return{k1neg:A,k1:N,k2neg:H,k2:q}}}},OU),Tj0=BigInt(0);var Mj0=a4.ProjectivePoint;var gO="0x0000000000000000000000000000000000000000";var dH="0x0000000000000000000000000000000000000000000000000000000000000000";var uO=`\x19Ethereum Signed Message:
249
- `;var ak=BigInt(0),sk=BigInt(1),tk=BigInt(2),ek=BigInt(27),W_=BigInt(28),oH=BigInt(35),YJ={};function G_(W){return z5(A8(W),32)}class C8{#W;#G;#X;#Y;get r(){return this.#W}set r(W){a(o4(W)===32,"invalid r","value",W),this.#W=C0(W)}get s(){return a(parseInt(this.#G.substring(0,3))<8,"non-canonical s; use ._s","s",this.#G),this.#G}set s(W){a(o4(W)===32,"invalid s","value",W),this.#G=C0(W)}get _s(){return this.#G}isValid(){return parseInt(this.#G.substring(0,3))<8}get v(){return this.#X}set v(W){let G=a8(W,"value");a(G===27||G===28,"invalid v","v",W),this.#X=G}get networkV(){return this.#Y}get legacyChainId(){let W=this.networkV;if(W==null)return null;return C8.getChainId(W)}get yParity(){return this.v===27?0:1}get yParityAndS(){let W=L0(this.s);if(this.yParity)W[0]|=128;return C0(W)}get compactSerialized(){return W8([this.r,this.yParityAndS])}get serialized(){return W8([this.r,this.s,this.yParity?"0x1c":"0x1b"])}constructor(W,G,X,Y){d4(W,YJ,"Signature"),this.#W=G,this.#G=X,this.#X=Y,this.#Y=null}[Symbol.for("nodejs.util.inspect.custom")](){return`Signature { r: "${this.r}", s: "${this._s}"${this.isValid()?"":', valid: "false"'}, yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){let W=new C8(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 G=m1(W,"v");if(G==ek||G==W_)return ak;return a(G>=oH,"invalid EIP-155 v","v",W),(G-oH)/tk}static getChainIdV(W,G){return m1(W)*tk+BigInt(35+G-27)}static getNormalizedV(W){let G=m1(W);if(G===ak||G===ek)return 27;if(G===sk||G===W_)return 28;return a(G>=oH,"invalid v","v",W),G&sk?27:28}static from(W){function G(Q,N){a(Q,N,"signature",W)}if(W==null)return new C8(YJ,dH,dH,27);if(typeof W==="string"){let Q=L0(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 C8(YJ,N,C0(q),A)}if(Q.length===65){let N=C0(Q.slice(0,32)),q=C0(Q.slice(32,64)),A=C8.getNormalizedV(Q[64]);return new C8(YJ,N,q,A)}G(!1,"invalid raw signature length")}if(W instanceof C8)return W.clone();let X=W.r;G(X!=null,"missing r");let Y=G_(X),J=function(Q,N){if(Q!=null)return G_(Q);if(N!=null){G(L9(N,32),"invalid yParityAndS");let q=L0(N);return q[0]&=127,C0(q)}G(!1,"missing s")}(W.s,W.yParityAndS),{networkV:Z,v:V}=function(Q,N,q){if(Q!=null){let A=m1(Q);return{networkV:A>=oH?A:void 0,v:C8.getNormalizedV(A)}}if(N!=null)return G(L9(N,32),"invalid yParityAndS"),{v:L0(N)[0]&128?28:27};if(q!=null){switch(a8(q,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}G(!1,"invalid yParity")}G(!1,"missing v")}(W.v,W.yParityAndS,W.yParity),U=new C8(YJ,Y,J,V);if(Z)U.#Y=Z;return G(W.yParity==null||a8(W.yParity,"sig.yParity")===U.yParity,"yParity mismatch"),G(W.yParityAndS==null||W.yParityAndS===U.yParityAndS,"yParityAndS mismatch"),U}}class n8{#W;constructor(W){a(o4(W)===32,"invalid private key","privateKey","[REDACTED]"),this.#W=C0(W)}get privateKey(){return this.#W}get publicKey(){return n8.computePublicKey(this.#W)}get compressedPublicKey(){return n8.computePublicKey(this.#W,!0)}sign(W){a(o4(W)===32,"invalid digest length","digest",W);let G=a4.sign(V7(W),V7(this.#W),{lowS:!0});return C8.from({r:U7(G.r,32),s:U7(G.s,32),v:G.recovery?28:27})}computeSharedSecret(W){let G=n8.computePublicKey(W);return C0(a4.getSharedSecret(V7(this.#W),L0(G),!1))}static computePublicKey(W,G){let X=L0(W,"key");if(X.length===32){let J=a4.getPublicKey(X,!!G);return C0(J)}if(X.length===64){let J=new Uint8Array(65);J[0]=4,J.set(X,1),X=J}let Y=a4.ProjectivePoint.fromHex(X);return C0(Y.toRawBytes(G))}static recoverPublicKey(W,G){a(o4(W)===32,"invalid digest length","digest",W);let X=C8.from(G),Y=a4.Signature.fromCompact(V7(W8([X.r,X.s])));Y=Y.addRecoveryBit(X.yParity);let J=Y.recoverPublicKey(V7(W));return a(J!=null,"invalid signature for digest","signature",G),"0x"+J.toHex(!1)}static addPoints(W,G,X){let Y=a4.ProjectivePoint.fromHex(n8.computePublicKey(W).substring(2)),J=a4.ProjectivePoint.fromHex(n8.computePublicKey(G).substring(2));return"0x"+Y.add(J).toHex(!!X)}}var As=BigInt(0),zs=BigInt(36);function X_(W){W=W.toLowerCase();let G=W.substring(2).split(""),X=new Uint8Array(40);for(let J=0;J<40;J++)X[J]=G[J].charCodeAt(0);let Y=L0(V8(X));for(let J=0;J<40;J+=2){if(Y[J>>1]>>4>=8)G[J]=G[J].toUpperCase();if((Y[J>>1]&15)>=8)G[J+1]=G[J+1].toUpperCase()}return"0x"+G.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 Y_=15;function Is(W){W=W.toUpperCase(),W=W.substring(4)+W.substring(0,2)+"00";let G=W.split("").map((Y)=>{return hO[Y]}).join("");while(G.length>=Y_){let Y=G.substring(0,Y_);G=parseInt(Y,10)%97+G.substring(Y.length)}let X=String(98-parseInt(G,10)%97);while(X.length<2)X="0"+X;return X}var ws=function(){let W={};for(let G=0;G<36;G++){let X="0123456789abcdefghijklmnopqrstuvwxyz"[G];W[X]=BigInt(G)}return W}();function js(W){W=W.toLowerCase();let G=As;for(let X=0;X<W.length;X++)G=G*zs+ws[W[X]];return G}function f1(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 G=X_(W);return a(!W.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||G===W,"bad address checksum","address",W),G}if(W.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){a(W.substring(2,4)===Is(W),"bad icap checksum","address",W);let G=js(W.substring(4)).toString(16);while(G.length<40)G="0"+G;return X_("0x"+G)}a(!1,"invalid address","address",W)}function mO(W){return W&&typeof W.getAddress==="function"}async function bO(W,G){let X=await G;if(X==null||X==="0x0000000000000000000000000000000000000000")X1(typeof W!=="string","unconfigured name","UNCONFIGURED_NAME",{value:W}),a(!1,"invalid AddressLike value; did not resolve to a value address","target",W);return f1(X)}function s4(W,G){if(typeof W==="string"){if(W.match(/^0x[0-9a-f]{40}$/i))return f1(W);return X1(G!=null,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),bO(W,G.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,G){return{address:f1(W),storageKeys:G.map((X,Y)=>{return a(L9(X,32),"invalid slot",`storageKeys[${Y}]`,X),X.toLowerCase()})}}function vG(W){if(Array.isArray(W))return W.map((X,Y)=>{if(Array.isArray(X))return a(X.length===2,"invalid slot set",`value[${Y}]`,X),fO(X[0],X[1]);return a(X!=null&&typeof X==="object","invalid address-slot set","value",W),fO(X.address,X.storageKeys)});a(W!=null&&typeof W==="object","invalid access list","value",W);let G=Object.keys(W).map((X)=>{let Y=W[X].reduce((J,Z)=>{return J[Z]=!0,J},{});return fO(X,Object.keys(Y).sort())});return G.sort((X,Y)=>X.address.localeCompare(Y.address)),G}function J_(W){return{address:f1(W.address),nonce:m1(W.nonce!=null?W.nonce:0),chainId:m1(W.chainId!=null?W.chainId:0),signature:C8.from(W.signature)}}function t4(W){let G;if(typeof W==="string")G=n8.computePublicKey(W,!1);else G=W.publicKey;return f1(V8("0x"+G.substring(4)).substring(26))}function TU(W,G){return t4(n8.recoverPublicKey(W,G))}var s8=BigInt(0),Ds=BigInt(2),Cs=BigInt(27),Ts=BigInt(28),Ms=BigInt(35),Rs=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),pO=131072;function Ps(W){return{blobToKzgCommitment:(Y)=>{if("computeBlobProof"in W){if("blobToKzgCommitment"in W&&typeof W.blobToKzgCommitment==="function")return L0(W.blobToKzgCommitment(C0(Y)))}else if("blobToKzgCommitment"in W&&typeof W.blobToKzgCommitment==="function")return L0(W.blobToKzgCommitment(Y));if("blobToKZGCommitment"in W&&typeof W.blobToKZGCommitment==="function")return L0(W.blobToKZGCommitment(C0(Y)));a(!1,"unsupported KZG library","kzg",W)},computeBlobKzgProof:(Y,J)=>{if("computeBlobProof"in W&&typeof W.computeBlobProof==="function")return L0(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 L0(W.computeBlobKZGProof(C0(Y),C0(J)));a(!1,"unsupported KZG library","kzg",W)}}}function Z_(W,G){let X=W.toString(16);while(X.length<2)X="0"+X;return X+=E9(G).substring(4),"0x"+X}function JJ(W){if(W==="0x")return null;return f1(W)}function nH(W,G){try{return vG(W)}catch(X){a(!1,X.message,G,W)}}function Ls(W,G){try{if(!Array.isArray(W))throw Error("authorizationList: invalid array");let X=[];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`);X.push({address:JJ(J[1]),nonce:U8(J[2],"nonce"),chainId:U8(J[0],"chainId"),signature:C8.from({yParity:gG(J[3],"yParity"),r:z5(J[4],32),s:z5(J[5],32)})})}return X}catch(X){a(!1,X.message,G,W)}}function gG(W,G){if(W==="0x")return 0;return a8(W,G)}function U8(W,G){if(W==="0x")return s8;let X=m1(W,G);return a(X<=Rs,"value exceeds uint size",G,X),X}function p1(W,G){let X=m1(W,"value"),Y=A8(X);return a(Y.length<=32,"value too large",`tx.${G}`,X),Y}function iH(W){return vG(W).map((G)=>[G.address,G.storageKeys])}function Bs(W){return W.map((G)=>{return[p1(G.chainId,"chainId"),G.address,p1(G.nonce,"nonce"),p1(G.signature.yParity,"yParity"),A8(G.signature.r),A8(G.signature.s)]})}function Es(W,G){a(Array.isArray(W),`invalid ${G}`,"value",W);for(let X=0;X<W.length;X++)a(L9(W[X],32),"invalid ${ param } hash",`value[${X}]`,W[X]);return W}function $s(W){let G=WW(W);a(Array.isArray(G)&&(G.length===9||G.length===6),"invalid field count for legacy transaction","data",W);let X={type:0,nonce:gG(G[0],"nonce"),gasPrice:U8(G[1],"gasPrice"),gasLimit:U8(G[2],"gasLimit"),to:JJ(G[3]),value:U8(G[4],"value"),data:C0(G[5]),chainId:s8};if(G.length===6)return X;let Y=U8(G[6],"v"),J=U8(G[7],"r"),Z=U8(G[8],"s");if(J===s8&&Z===s8)X.chainId=Y;else{let V=(Y-Ms)/Ds;if(V<s8)V=s8;X.chainId=V,a(V!==s8||(Y===Cs||Y===Ts),"non-canonical legacy v","v",G[6]),X.signature=C8.from({r:z5(G[7],32),s:z5(G[8],32),v:Y})}return X}function Fs(W,G){let X=[p1(W.nonce,"nonce"),p1(W.gasPrice||0,"gasPrice"),p1(W.gasLimit,"gasLimit"),W.to||"0x",p1(W.value,"value"),W.data],Y=s8;if(W.chainId!=s8)Y=m1(W.chainId,"tx.chainId"),a(!G||G.networkV==null||G.legacyChainId===Y,"tx.chainId/sig.v mismatch","sig",G);else if(W.signature){let Z=W.signature.legacyChainId;if(Z!=null)Y=Z}if(!G){if(Y!==s8)X.push(A8(Y)),X.push("0x"),X.push("0x");return F5(X)}let J=BigInt(27+G.yParity);if(Y!==s8)J=C8.getChainIdV(Y,G.v);else if(BigInt(G.v)!==J)a(!1,"tx.chainId/sig.v mismatch","sig",G);return X.push(A8(J)),X.push(A8(G.r)),X.push(A8(G.s)),F5(X)}function rH(W,G){let X;try{if(X=gG(G[0],"yParity"),X!==0&&X!==1)throw Error("bad yParity")}catch(V){a(!1,"invalid yParity","yParity",G[0])}let Y=z5(G[1],32),J=z5(G[2],32),Z=C8.from({r:Y,s:J,yParity:X});W.signature=Z}function Ss(W){let G=WW(L0(W).slice(1));a(Array.isArray(G)&&(G.length===9||G.length===12),"invalid field count for transaction type: 2","data",C0(W));let X={type:2,chainId:U8(G[0],"chainId"),nonce:gG(G[1],"nonce"),maxPriorityFeePerGas:U8(G[2],"maxPriorityFeePerGas"),maxFeePerGas:U8(G[3],"maxFeePerGas"),gasPrice:null,gasLimit:U8(G[4],"gasLimit"),to:JJ(G[5]),value:U8(G[6],"value"),data:C0(G[7]),accessList:nH(G[8],"accessList")};if(G.length===9)return X;return rH(X,G.slice(9)),X}function xs(W,G){let X=[p1(W.chainId,"chainId"),p1(W.nonce,"nonce"),p1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),p1(W.maxFeePerGas||0,"maxFeePerGas"),p1(W.gasLimit,"gasLimit"),W.to||"0x",p1(W.value,"value"),W.data,iH(W.accessList||[])];if(G)X.push(p1(G.yParity,"yParity")),X.push(A8(G.r)),X.push(A8(G.s));return W8(["0x02",F5(X)])}function ks(W){let G=WW(L0(W).slice(1));a(Array.isArray(G)&&(G.length===8||G.length===11),"invalid field count for transaction type: 1","data",C0(W));let X={type:1,chainId:U8(G[0],"chainId"),nonce:gG(G[1],"nonce"),gasPrice:U8(G[2],"gasPrice"),gasLimit:U8(G[3],"gasLimit"),to:JJ(G[4]),value:U8(G[5],"value"),data:C0(G[6]),accessList:nH(G[7],"accessList")};if(G.length===8)return X;return rH(X,G.slice(8)),X}function _s(W,G){let X=[p1(W.chainId,"chainId"),p1(W.nonce,"nonce"),p1(W.gasPrice||0,"gasPrice"),p1(W.gasLimit,"gasLimit"),W.to||"0x",p1(W.value,"value"),W.data,iH(W.accessList||[])];if(G)X.push(p1(G.yParity,"recoveryParam")),X.push(A8(G.r)),X.push(A8(G.s));return W8(["0x01",F5(X)])}function ys(W){let G=WW(L0(W).slice(1)),X="3",Y=null;if(G.length===4&&Array.isArray(G[0])){X="3 (network format)";let Z=G[1],V=G[2],U=G[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",G),a(Z.length===U.length,"invalid network format: blobs/proofs length mismatch","fields",G),Y=[];for(let Q=0;Q<G[1].length;Q++)Y.push({data:Z[Q],commitment:V[Q],proof:U[Q]});G=G[0]}a(Array.isArray(G)&&(G.length===11||G.length===14),`invalid field count for transaction type: ${X}`,"data",C0(W));let J={type:3,chainId:U8(G[0],"chainId"),nonce:gG(G[1],"nonce"),maxPriorityFeePerGas:U8(G[2],"maxPriorityFeePerGas"),maxFeePerGas:U8(G[3],"maxFeePerGas"),gasPrice:null,gasLimit:U8(G[4],"gasLimit"),to:JJ(G[5]),value:U8(G[6],"value"),data:C0(G[7]),accessList:nH(G[8],"accessList"),maxFeePerBlobGas:U8(G[9],"maxFeePerBlobGas"),blobVersionedHashes:G[10]};if(Y)J.blobs=Y;a(J.to!=null,`invalid address for transaction type: ${X}`,"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(G.length===11)return J;return rH(J,G.slice(11)),J}function vs(W,G,X){let Y=[p1(W.chainId,"chainId"),p1(W.nonce,"nonce"),p1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),p1(W.maxFeePerGas||0,"maxFeePerGas"),p1(W.gasLimit,"gasLimit"),W.to||gO,p1(W.value,"value"),W.data,iH(W.accessList||[]),p1(W.maxFeePerBlobGas||0,"maxFeePerBlobGas"),Es(W.blobVersionedHashes||[],"blobVersionedHashes")];if(G){if(Y.push(p1(G.yParity,"yParity")),Y.push(A8(G.r)),Y.push(A8(G.s)),X)return W8(["0x03",F5([Y,X.map((J)=>J.data),X.map((J)=>J.commitment),X.map((J)=>J.proof)])])}return W8(["0x03",F5(Y)])}function gs(W){let G=WW(L0(W).slice(1));a(Array.isArray(G)&&(G.length===10||G.length===13),"invalid field count for transaction type: 4","data",C0(W));let X={type:4,chainId:U8(G[0],"chainId"),nonce:gG(G[1],"nonce"),maxPriorityFeePerGas:U8(G[2],"maxPriorityFeePerGas"),maxFeePerGas:U8(G[3],"maxFeePerGas"),gasPrice:null,gasLimit:U8(G[4],"gasLimit"),to:JJ(G[5]),value:U8(G[6],"value"),data:C0(G[7]),accessList:nH(G[8],"accessList"),authorizationList:Ls(G[9],"authorizationList")};if(G.length===10)return X;return rH(X,G.slice(10)),X}function us(W,G){let X=[p1(W.chainId,"chainId"),p1(W.nonce,"nonce"),p1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),p1(W.maxFeePerGas||0,"maxFeePerGas"),p1(W.gasLimit,"gasLimit"),W.to||"0x",p1(W.value,"value"),W.data,iH(W.accessList||[]),Bs(W.authorizationList||[])];if(G)X.push(p1(G.yParity,"yParity")),X.push(A8(G.r)),X.push(A8(G.s));return W8(["0x04",F5(X)])}class e9{#W;#G;#X;#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.#G;if(W==null&&this.type===3)return gO;return W}set to(W){this.#G=W==null?null:f1(W)}get nonce(){return this.#Y}set nonce(W){this.#Y=a8(W,"value")}get gasLimit(){return this.#Q}set gasLimit(W){this.#Q=m1(W)}get gasPrice(){let W=this.#N;if(W==null&&(this.type===0||this.type===1))return s8;return W}set gasPrice(W){this.#N=W==null?null:m1(W,"gasPrice")}get maxPriorityFeePerGas(){let W=this.#q;if(W==null){if(this.type===2||this.type===3)return s8;return null}return W}set maxPriorityFeePerGas(W){this.#q=W==null?null:m1(W,"maxPriorityFeePerGas")}get maxFeePerGas(){let W=this.#H;if(W==null){if(this.type===2||this.type===3)return s8;return null}return W}set maxFeePerGas(W){this.#H=W==null?null:m1(W,"maxFeePerGas")}get data(){return this.#X}set data(W){this.#X=C0(W)}get value(){return this.#A}set value(W){this.#A=m1(W,"value")}get chainId(){return this.#z}set chainId(W){this.#z=m1(W)}get signature(){return this.#I||null}set signature(W){this.#I=W==null?null:C8.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:vG(W)}get authorizationList(){let W=this.#j||null;if(W==null){if(this.type===4)return[]}return W}set authorizationList(W){this.#j=W==null?null:W.map((G)=>J_(G))}get maxFeePerBlobGas(){let W=this.#U;if(W==null&&this.type===3)return s8;return W}set maxFeePerBlobGas(W){this.#U=W==null?null:m1(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 G=0;G<W.length;G++)a(L9(W[G],32),"invalid blobVersionedHash",`value[${G}]`,W[G])}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 G=[],X=[];for(let Y=0;Y<W.length;Y++){let J=W[Y];if(i7(J)){X1(this.#J,"adding a raw blob requires a KZG library","UNSUPPORTED_OPERATION",{operation:"set blobs()"});let Z=L0(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));G.push({data:C0(Z),commitment:C0(V),proof:U}),X.push(Z_(1,V))}else{let Z=C0(J.commitment);G.push({data:C0(J.data),commitment:Z,proof:C0(J.proof)}),X.push(Z_(1,Z))}}this.#V=G,this.#Z=X}get kzg(){return this.#J}set kzg(W){if(W==null)this.#J=null;else this.#J=Ps(W)}constructor(){this.#W=null,this.#G=null,this.#Y=0,this.#Q=s8,this.#N=null,this.#q=null,this.#H=null,this.#X="0x",this.#A=s8,this.#z=s8,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 V8(this.#K(!0,!1))}get unsignedHash(){return V8(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 n8.recoverPublicKey(this.unsignedHash,this.signature)}isSigned(){return this.signature!=null}#K(W,G){X1(!W||this.signature!=null,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"});let X=W?this.signature:null;switch(this.inferType()){case 0:return Fs(this,X);case 1:return _s(this,X);case 2:return xs(this,X);case 3:return vs(this,X,G?this.blobs:null);case 4:return us(this,X)}X1(!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,G=this.maxFeePerGas!=null||this.maxPriorityFeePerGas!=null,X=this.accessList!=null,Y=this.#U!=null||this.#Z;if(this.maxFeePerGas!=null&&this.maxPriorityFeePerGas!=null)X1(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this});X1(!G||this.type!==0&&this.type!==1,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),X1(this.type!==0||!X,"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(G)J.push(2);else if(W){if(J.push(1),!X)J.push(0)}else if(X)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=(G)=>{if(G==null)return null;return G.toString()};return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:W(this.gasLimit),gasPrice:W(this.gasPrice),maxPriorityFeePerGas:W(this.maxPriorityFeePerGas),maxFeePerGas:W(this.maxFeePerGas),value:W(this.value),chainId:W(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}static from(W){if(W==null)return new e9;if(typeof W==="string"){let X=L0(W);if(X[0]>=127)return e9.from($s(X));switch(X[0]){case 1:return e9.from(ks(X));case 2:return e9.from(Ss(X));case 3:return e9.from(ys(X));case 4:return e9.from(gs(X))}X1(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}let G=new e9;if(W.type!=null)G.type=W.type;if(W.to!=null)G.to=W.to;if(W.nonce!=null)G.nonce=W.nonce;if(W.gasLimit!=null)G.gasLimit=W.gasLimit;if(W.gasPrice!=null)G.gasPrice=W.gasPrice;if(W.maxPriorityFeePerGas!=null)G.maxPriorityFeePerGas=W.maxPriorityFeePerGas;if(W.maxFeePerGas!=null)G.maxFeePerGas=W.maxFeePerGas;if(W.maxFeePerBlobGas!=null)G.maxFeePerBlobGas=W.maxFeePerBlobGas;if(W.data!=null)G.data=W.data;if(W.value!=null)G.value=W.value;if(W.chainId!=null)G.chainId=W.chainId;if(W.signature!=null)G.signature=C8.from(W.signature);if(W.accessList!=null)G.accessList=W.accessList;if(W.authorizationList!=null)G.authorizationList=W.authorizationList;if(W.blobVersionedHashes!=null)G.blobVersionedHashes=W.blobVersionedHashes;if(W.kzg!=null)G.kzg=W.kzg;if(W.blobs!=null)G.blobs=W.blobs;if(W.hash!=null)a(G.isSigned(),"unsigned transaction cannot define '.hash'","tx",W),a(G.hash===W.hash,"hash mismatch","tx",W);if(W.from!=null)a(G.isSigned(),"unsigned transaction cannot define '.from'","tx",W),a(G.from.toLowerCase()===(W.from||"").toLowerCase(),"from mismatch","tx",W);return G}}function aH(W){return a(typeof W.address==="string","invalid address for hashAuthorization","auth.address",W),V8(W8(["0x05",F5([W.chainId!=null?A8(W.chainId):"0x",f1(W.address),W.nonce!=null?A8(W.nonce):"0x"])]))}function e4(W){return V8(U9(W))}function MU(W){if(typeof W==="string")W=U9(W);return V8(W8([U9(uO),U9(String(W.length)),W]))}function RU(W,G){let X=MU(W);return TU(X,G)}var N_=new Uint8Array(32);N_.fill(0);var hs=BigInt(-1),q_=BigInt(0),H_=BigInt(1),bs=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function ms(W){let G=L0(W),X=G.length%32;if(X)return W8([G,N_.slice(X)]);return C0(G)}var fs=U7(H_,32),ps=U7(q_,32),V_={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},cO=["name","version","chainId","verifyingContract","salt"];function U_(W){return function(G){return a(typeof G==="string",`invalid domain value for ${JSON.stringify(W)}`,`domain.${W}`,G),G}}var cs={name:U_("name"),version:U_("version"),chainId:function(W){let G=m1(W,"domain.chainId");if(a(G>=0,"invalid chain ID","domain.chainId",W),Number.isSafeInteger(G))return Number(G);return LH(G)},verifyingContract:function(W){try{return f1(W).toLowerCase()}catch(G){}a(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",W)},salt:function(W){let G=L0(W,"domain.salt");return a(G.length===32,'invalid domain value "salt"',"domain.salt",W),C0(G)}};function lO(W){{let G=W.match(/^(u?)int(\d+)$/);if(G){let X=G[1]==="",Y=parseInt(G[2]);a(Y%8===0&&Y!==0&&Y<=256&&G[2]===String(Y),"invalid numeric width","type",W);let J=PH(bs,X?Y-1:Y),Z=X?(J+H_)*hs:q_;return function(V){let U=m1(V,"value");return a(U>=Z&&U<=J,`value out-of-bounds for ${W}`,"value",U),U7(X?RH(U,256):U,32)}}}{let G=W.match(/^bytes(\d+)$/);if(G){let X=parseInt(G[1]);return a(X!==0&&X<=32&&G[1]===String(X),"invalid bytes width","type",W),function(Y){let J=L0(Y);return a(J.length===X,`invalid length for ${W}`,"value",Y),ms(Y)}}}switch(W){case"address":return function(G){return z5(f1(G),32)};case"bool":return function(G){return!G?ps:fs};case"bytes":return function(G){return V8(G)};case"string":return function(G){return e4(G)}}return null}function Q_(W,G){return`${W}(${G.map(({name:X,type:Y})=>Y+" "+X).join(",")})`}function sH(W){let G=W.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);if(G)return{base:G[1],index:G[2]+G[4],array:{base:G[1],prefix:G[1]+G[2],count:G[5]?parseInt(G[5]):-1}};return{base:W}}class F9{primaryType;#W;get types(){return JSON.parse(this.#W)}#G;#X;constructor(W){this.#G=new Map,this.#X=new Map;let G=new Map,X=new Map,Y=new Map,J={};Object.keys(W).forEach((U)=>{J[U]=W[U].map(({name:Q,type:N})=>{let{base:q,index:A}=sH(N);if(q==="int"&&!W.int)q="int256";if(q==="uint"&&!W.uint)q="uint256";return{name:Q,type:q+(A||"")}}),G.set(U,new Set),X.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=sH(N.type).base;if(a(q!==U,`circular type reference to ${JSON.stringify(q)}`,"types",W),lO(q))continue;a(X.has(q),`unknown type ${JSON.stringify(q)}`,"types",W),X.get(q).push(U),G.get(U).add(q)}}let Z=Array.from(X.keys()).filter((U)=>X.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),H8(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 G.get(U)){if(!X.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.#G.set(U,Q_(U,J[U])+N.map((q)=>Q_(q,J[q])).join(""))}}getEncoder(W){let G=this.#X.get(W);if(!G)G=this.#Y(W),this.#X.set(W,G);return G}#Y(W){{let Y=lO(W);if(Y)return Y}let G=sH(W).array;if(G){let Y=G.prefix,J=this.getEncoder(Y);return(Z)=>{a(G.count===-1||G.count===Z.length,`array length mismatch; expected length ${G.count}`,"value",Z);let V=Z.map(J);if(this.#G.has(Y))V=V.map(V8);return V8(W8(V))}}let X=this.types[W];if(X){let Y=e4(this.#G.get(W));return(J)=>{let Z=X.map(({name:V,type:U})=>{let Q=this.getEncoder(U)(J[V]);if(this.#G.has(U))return V8(Q);return Q});return Z.unshift(Y),W8(Z)}}a(!1,`unknown type: ${W}`,"type",W)}encodeType(W){let G=this.#G.get(W);return a(G,`unknown type: ${JSON.stringify(W)}`,"name",W),G}encodeData(W,G){return this.getEncoder(W)(G)}hashStruct(W,G){return V8(this.encodeData(W,G))}encode(W){return this.encodeData(this.primaryType,W)}hash(W){return this.hashStruct(this.primaryType,W)}_visit(W,G,X){if(lO(W))return X(W,G);let Y=sH(W).array;if(Y)return a(Y.count===-1||Y.count===G.length,`array length mismatch; expected length ${Y.count}`,"value",G),G.map((Z)=>this._visit(Y.prefix,Z,X));let J=this.types[W];if(J)return J.reduce((Z,{name:V,type:U})=>{return Z[V]=this._visit(U,G[V],X),Z},{});a(!1,`unknown type: ${W}`,"type",W)}visit(W,G){return this._visit(this.primaryType,W,G)}static from(W){return new F9(W)}static getPrimaryType(W){return F9.from(W).primaryType}static hashStruct(W,G,X){return F9.from(G).hashStruct(W,X)}static hashDomain(W){let G=[];for(let X in W){if(W[X]==null)continue;let Y=V_[X];a(Y,`invalid typed-data domain key: ${JSON.stringify(X)}`,"domain",W),G.push({name:X,type:Y})}return G.sort((X,Y)=>{return cO.indexOf(X.name)-cO.indexOf(Y.name)}),F9.hashStruct("EIP712Domain",{EIP712Domain:G},W)}static encode(W,G,X){return W8(["0x1901",F9.hashDomain(W),F9.from(G).hash(X)])}static hash(W,G,X){return V8(F9.encode(W,G,X))}static async resolveNames(W,G,X,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(G);Z.visit(X,(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 X=Z.visit(X,(V,U)=>{if(V==="address"&&J[U])return J[U];return U}),{domain:W,value:X}}static getPayload(W,G,X){F9.hashDomain(W);let Y={},J=[];cO.forEach((U)=>{let Q=W[U];if(Q==null)return;Y[U]=cs[U](Q),J.push({name:U,type:V_[U]})});let Z=F9.from(G);G=Z.types;let V=Object.assign({},G);return a(V.EIP712Domain==null,"types must not contain EIP712Domain type","types.EIP712Domain",G),V.EIP712Domain=J,Z.encode(X),{types:V,domain:Y,primaryType:Z.primaryType,message:Z.visit(X,(U,Q)=>{if(U.match(/^bytes(\d*)/))return C0(L0(Q));if(U.match(/^u?int/))return m1(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 A_=BigInt(0);function dO(W){if(W==null)return null;return W}function t8(W){if(W==null)return null;return W.toString()}function PU(W){let G={};if(W.to)G.to=W.to;if(W.from)G.from=W.from;if(W.data)G.data=C0(W.data);let X="chainId,gasLimit,gasPrice,maxFeePerBlobGas,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(let J of X){if(!(J in W)||W[J]==null)continue;G[J]=m1(W[J],`request.${J}`)}let Y="type,nonce".split(/,/);for(let J of Y){if(!(J in W)||W[J]==null)continue;G[J]=a8(W[J],`request.${J}`)}if(W.accessList)G.accessList=vG(W.accessList);if(W.authorizationList)G.authorizationList=W.authorizationList.slice();if("blockTag"in W)G.blockTag=W.blockTag;if("enableCcipRead"in W)G.enableCcipRead=!!W.enableCcipRead;if("customData"in W)G.customData=W.customData;if("blobVersionedHashes"in W&&W.blobVersionedHashes)G.blobVersionedHashes=W.blobVersionedHashes.slice();if("kzg"in W)G.kzg=W.kzg;if("blobs"in W&&W.blobs)G.blobs=W.blobs.map((J)=>{if(i7(J))return C0(J);return Object.assign({},J)});return G}class z_{provider;number;hash;timestamp;parentHash;parentBeaconBlockRoot;nonce;difficulty;gasLimit;gasUsed;stateRoot;receiptsRoot;blobGasUsed;excessBlobGas;miner;prevRandao;extraData;baseFeePerGas;#W;constructor(W,G){this.#W=W.transactions.map((X)=>{if(typeof X!=="string")return new tH(X,G);return X}),H8(this,{provider:G,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 X1(typeof W[0]==="object","transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),W}toJSON(){let{baseFeePerGas:W,difficulty:G,extraData:X,gasLimit:Y,gasUsed: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:t8(W),difficulty:t8(G),extraData:X,gasLimit:t8(Y),gasUsed:t8(J),blobGasUsed:t8(this.blobGasUsed),excessBlobGas:t8(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,G=this.transactions;return{next:()=>{if(W<this.length)return{value:G[W++],done:!1};return{value:void 0,done:!0}}}}get length(){return this.#W.length}get date(){if(this.timestamp==null)return null;return new Date(this.timestamp*1000)}async getTransaction(W){let G=void 0;if(typeof W==="number")G=this.#W[W];else{let X=W.toLowerCase();for(let Y of this.#W)if(typeof Y==="string"){if(Y!==X)continue;G=Y;break}else{if(Y.hash!==X)continue;G=Y;break}}if(G==null)throw Error("no such tx");if(typeof G==="string")return await this.provider.getTransaction(G);else return G}getPrefetchedTransaction(W){let G=this.prefetchedTransactions;if(typeof W==="number")return G[W];W=W.toLowerCase();for(let X of G)if(X.hash===W)return X;a(!1,"no matching transaction","indexOrHash",W)}isMined(){return!!this.hash}isLondon(){return!!this.baseFeePerGas}orphanedEvent(){if(!this.isMined())throw Error("");return os(this)}}class oO{provider;transactionHash;blockHash;blockNumber;removed;address;data;topics;index;transactionIndex;constructor(W,G){this.provider=G;let X=Object.freeze(W.topics.slice());H8(this,{transactionHash:W.transactionHash,blockHash:W.blockHash,blockNumber:W.blockNumber,removed:W.removed,address:W.address,data:W.data,topics:X,index:W.index,transactionIndex:W.transactionIndex})}toJSON(){let{address:W,blockHash:G,blockNumber:X,data:Y,index:J,removed:Z,topics:V,transactionHash:U,transactionIndex:Q}=this;return{_type:"log",address:W,blockHash:G,blockNumber:X,data:Y,index:J,removed:Z,topics:V,transactionHash:U,transactionIndex:Q}}async getBlock(){let W=await this.provider.getBlock(this.blockHash);return X1(!!W,"failed to find transaction","UNKNOWN_ERROR",{}),W}async getTransaction(){let W=await this.provider.getTransaction(this.transactionHash);return X1(!!W,"failed to find transaction","UNKNOWN_ERROR",{}),W}async getTransactionReceipt(){let W=await this.provider.getTransactionReceipt(this.transactionHash);return X1(!!W,"failed to find transaction receipt","UNKNOWN_ERROR",{}),W}removedEvent(){return ns(this)}}class I_{provider;to;from;contractAddress;hash;index;blockHash;blockNumber;logsBloom;gasUsed;blobGasUsed;cumulativeGasUsed;gasPrice;blobGasPrice;type;status;root;#W;constructor(W,G){this.#W=Object.freeze(W.logs.map((Y)=>{return new oO(Y,G)}));let X=A_;if(W.effectiveGasPrice!=null)X=W.effectiveGasPrice;else if(W.gasPrice!=null)X=W.gasPrice;H8(this,{provider:G,to:W.to,from:W.from,contractAddress:W.contractAddress,hash:W.hash,index:W.index,blockHash:W.blockHash,blockNumber:W.blockNumber,logsBloom:W.logsBloom,gasUsed:W.gasUsed,cumulativeGasUsed:W.cumulativeGasUsed,blobGasUsed:W.blobGasUsed,gasPrice:X,blobGasPrice:W.blobGasPrice,type:W.type,status:W.status,root:W.root})}get logs(){return this.#W}toJSON(){let{to:W,from:G,contractAddress:X,hash:Y,index:J,blockHash:Z,blockNumber:V,logsBloom:U,logs:Q,status:N,root:q}=this;return{_type:"TransactionReceipt",blockHash:Z,blockNumber:V,contractAddress:X,cumulativeGasUsed:t8(this.cumulativeGasUsed),from:G,gasPrice:t8(this.gasPrice),blobGasUsed:t8(this.blobGasUsed),blobGasPrice:t8(this.blobGasPrice),gasUsed:t8(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 j_(this)}reorderedEvent(W){return X1(!W||W.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),w_(this,W)}}class tH{provider;blockNumber;blockHash;index;hash;type;to;from;nonce;gasLimit;gasPrice;maxPriorityFeePerGas;maxFeePerGas;maxFeePerBlobGas;data;value;chainId;signature;accessList;blobVersionedHashes;authorizationList;#W;constructor(W,G){this.provider=G,this.blockNumber=W.blockNumber!=null?W.blockNumber:null,this.blockHash=W.blockHash!=null?W.blockHash:null,this.hash=W.hash,this.index=W.index,this.type=W.type,this.from=W.from,this.to=W.to||null,this.gasLimit=W.gasLimit,this.nonce=W.nonce,this.data=W.data,this.value=W.value,this.gasPrice=W.gasPrice,this.maxPriorityFeePerGas=W.maxPriorityFeePerGas!=null?W.maxPriorityFeePerGas:null,this.maxFeePerGas=W.maxFeePerGas!=null?W.maxFeePerGas:null,this.maxFeePerBlobGas=W.maxFeePerBlobGas!=null?W.maxFeePerBlobGas:null,this.chainId=W.chainId,this.signature=W.signature,this.accessList=W.accessList!=null?W.accessList:null,this.blobVersionedHashes=W.blobVersionedHashes!=null?W.blobVersionedHashes:null,this.authorizationList=W.authorizationList!=null?W.authorizationList:null,this.#W=-1}toJSON(){let{blockNumber:W,blockHash:G,index:X,hash:Y,type:J,to:Z,from:V,nonce:U,data:Q,signature:N,accessList:q,blobVersionedHashes:A}=this;return{_type:"TransactionResponse",accessList:q,blockNumber:W,blockHash:G,blobVersionedHashes:A,chainId:t8(this.chainId),data:Q,from:V,gasLimit:t8(this.gasLimit),gasPrice:t8(this.gasPrice),hash:Y,maxFeePerGas:t8(this.maxFeePerGas),maxPriorityFeePerGas:t8(this.maxPriorityFeePerGas),maxFeePerBlobGas:t8(this.maxFeePerBlobGas),nonce:U,signature:N,to:Z,index:X,type:J,value:t8(this.value)}}async getBlock(){let W=this.blockNumber;if(W==null){let X=await this.getTransaction();if(X)W=X.blockNumber}if(W==null)return null;let G=this.provider.getBlock(W);if(G==null)throw Error("TODO");return G}async getTransaction(){return this.provider.getTransaction(this.hash)}async confirmations(){if(this.blockNumber==null){let{tx:G,blockNumber:X}=await n7({tx:this.getTransaction(),blockNumber:this.provider.getBlockNumber()});if(G==null||G.blockNumber==null)return 0;return X-G.blockNumber+1}return await this.provider.getBlockNumber()-this.blockNumber+1}async wait(W,G){let X=W==null?1:W,Y=G==null?0:G,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 M=await w.getTransaction(O);if(M.from===this.from&&M.nonce===this.nonce){if(V)return null;let S=await this.provider.getTransactionReceipt(M.hash);if(S==null)return;if(A-S.blockNumber+1<X)return;let v="replaced";if(M.data===this.data&&M.to===this.to&&M.value===this.value)v="repriced";else if(M.data==="0x"&&M.from===M.to&&M.value===A_)v="cancelled";X1(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:v==="replaced"||v==="cancelled",reason:v,replacement:M.replaceableTransaction(J),hash:M.hash,receipt:S})}}Z++}return},Q=(A)=>{if(A==null||A.status!==0)return A;X1(!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(X===0)return Q(N);if(N){if(X===1||await N.confirmations()>=X)return Q(N)}else if(await U(),X===0)return null;return await new Promise((A,H)=>{let I=[],w=()=>{I.forEach((M)=>M())};if(I.push(()=>{V=!0}),Y>0){let M=setTimeout(()=>{w(),H(AU("wait for transaction timeout","TIMEOUT"))},Y);I.push(()=>{clearTimeout(M)})}let O=async(M)=>{if(await M.confirmations()>=X){w();try{A(Q(M))}catch(S){H(S)}}};if(I.push(()=>{this.provider.off(this.hash,O)}),this.provider.on(this.hash,O),J>=0){let M=async()=>{try{await U()}catch(S){if(MH(S,"TRANSACTION_REPLACED")){w(),H(S);return}}if(!V)this.provider.once("block",M)};I.push(()=>{this.provider.off("block",M)}),this.provider.once("block",M)}})}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 X1(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),j_(this)}reorderedEvent(W){return X1(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),X1(!W||W.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),w_(this,W)}replaceableTransaction(W){a(Number.isInteger(W)&&W>=0,"invalid startBlock","startBlock",W);let G=new tH(this,this.provider);return G.#W=W,G}}function os(W){return{orphan:"drop-block",hash:W.hash,number:W.number}}function w_(W,G){return{orphan:"reorder-transaction",tx:W,other:G}}function j_(W){return{orphan:"drop-transaction",tx:W}}function ns(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 uG(W,G){if(W.provider)return W.provider;X1(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:G})}async function K_(W,G){let X=PU(G);if(X.to!=null)X.to=s4(X.to,W);if(X.from!=null){let Y=X.from;X.from=Promise.all([W.getAddress(),s4(Y,W)]).then(([J,Z])=>{return a(J.toLowerCase()===Z.toLowerCase(),"transaction from mismatch","tx.from",Z),J})}else X.from=W.getAddress();return await n7(X)}class LU{provider;constructor(W){H8(this,{provider:W||null})}async getNonce(W){return uG(this,"getTransactionCount").getTransactionCount(await this.getAddress(),W)}async populateCall(W){return await K_(this,W)}async populateTransaction(W){let G=uG(this,"populateTransaction"),X=await K_(this,W);if(X.nonce==null)X.nonce=await this.getNonce("pending");if(X.gasLimit==null)X.gasLimit=await this.estimateGas(X);let Y=await this.provider.getNetwork();if(X.chainId!=null){let Z=m1(X.chainId);a(Z===Y.chainId,"transaction chainId mismatch","tx.chainId",W.chainId)}else X.chainId=Y.chainId;let J=X.maxFeePerGas!=null||X.maxPriorityFeePerGas!=null;if(X.gasPrice!=null&&(X.type===2||J))a(!1,"eip-1559 transaction do not support gasPrice","tx",W);else if((X.type===0||X.type===1)&&J)a(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",W);if((X.type===2||X.type==null)&&(X.maxFeePerGas!=null&&X.maxPriorityFeePerGas!=null))X.type=2;else if(X.type===0||X.type===1){let Z=await G.getFeeData();if(X1(Z.gasPrice!=null,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),X.gasPrice==null)X.gasPrice=Z.gasPrice}else{let Z=await G.getFeeData();if(X.type==null)if(Z.maxFeePerGas!=null&&Z.maxPriorityFeePerGas!=null){if(X.authorizationList&&X.authorizationList.length)X.type=4;else X.type=2;if(X.gasPrice!=null){let V=X.gasPrice;delete X.gasPrice,X.maxFeePerGas=V,X.maxPriorityFeePerGas=V}else{if(X.maxFeePerGas==null)X.maxFeePerGas=Z.maxFeePerGas;if(X.maxPriorityFeePerGas==null)X.maxPriorityFeePerGas=Z.maxPriorityFeePerGas}}else if(Z.gasPrice!=null){if(X1(!J,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),X.gasPrice==null)X.gasPrice=Z.gasPrice;X.type=0}else X1(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else if(X.type===2||X.type===3||X.type===4){if(X.maxFeePerGas==null)X.maxFeePerGas=Z.maxFeePerGas;if(X.maxPriorityFeePerGas==null)X.maxPriorityFeePerGas=Z.maxPriorityFeePerGas}}return await n7(X)}async populateAuthorization(W){let G=Object.assign({},W);if(G.chainId==null)G.chainId=(await uG(this,"getNetwork").getNetwork()).chainId;if(G.nonce==null)G.nonce=await this.getNonce();return G}async estimateGas(W){return uG(this,"estimateGas").estimateGas(await this.populateCall(W))}async call(W){return uG(this,"call").call(await this.populateCall(W))}async resolveName(W){return await uG(this,"resolveName").resolveName(W)}async sendTransaction(W){let G=uG(this,"sendTransaction"),X=await this.populateTransaction(W);delete X.from;let Y=e9.from(X);return await G.broadcastTransaction(await this.signTransaction(Y))}authorize(W){X1(!1,"authorization not implemented for this signer","UNSUPPORTED_OPERATION",{operation:"authorize"})}}class BU extends LU{address;constructor(W,G){super(G);H8(this,{address:W})}async getAddress(){return this.address}connect(W){return new BU(this.address,W)}#W(W,G){X1(!1,`VoidSigner cannot sign ${W}`,"UNSUPPORTED_OPERATION",{operation:G})}async signTransaction(W){this.#W("transactions","signTransaction")}async signMessage(W){this.#W("messages","signMessage")}async signTypedData(W,G,X){this.#W("typed-data","signTypedData")}}class hG extends LU{address;#W;constructor(W,G){super(G);a(W&&typeof W.sign==="function","invalid private key","privateKey","[ REDACTED ]"),this.#W=W;let X=t4(this.signingKey.publicKey);H8(this,{address:X})}get signingKey(){return this.#W}get privateKey(){return this.signingKey.privateKey}async getAddress(){return this.address}connect(W){return new hG(this.#W,W)}async signTransaction(W){W=PU(W);let{to:G,from:X}=await n7({to:W.to?s4(W.to,this):void 0,from:W.from?s4(W.from,this):void 0});if(G!=null)W.to=G;if(X!=null)W.from=X;if(W.from!=null)a(f1(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 G=this.signingKey.sign(aH(W));return Object.assign({},{address:f1(W.address),nonce:m1(W.nonce||0),chainId:m1(W.chainId||0)},{signature:G})}async authorize(W){return W=Object.assign({},W,{address:await s4(W.address,this)}),this.authorizeSync(await this.populateAuthorization(W))}async signTypedData(W,G,X){let Y=await F9.resolveNames(W,G,X,async(J)=>{X1(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 X1(Z!=null,"unconfigured ENS name","UNCONFIGURED_NAME",{value:J}),Z});return this.signingKey.sign(F9.hash(Y.domain,G,Y.value)).serialized}}var eH=" !#$%&'()*+,-./<=>?@[]^_`{|}~",is=/^[a-z]*$/i;function O_(W,G){let X=97;return W.reduce((Y,J)=>{if(J===G)X++;else if(J.match(is))Y.push(String.fromCharCode(X)+J);else X=97,Y.push(J);return Y},[])}function rs(W,G){for(let J=eH.length-1;J>=0;J--)W=W.split(eH[J]).join(G.substring(2*J,2*J+2));let X=[],Y=W.replace(/(:|([0-9])|([A-Z][a-z]*))/g,(J,Z,V,U)=>{if(V)for(let Q=parseInt(V);Q>=0;Q--)X.push(";");else X.push(Z.toLowerCase());return""});if(Y)throw Error(`leftovers: ${JSON.stringify(Y)}`);return O_(O_(X,";"),":")}function D_(W){return a(W[0]==="0","unsupported auwl data","data",W),rs(W.substring(1+2*eH.length),W.substring(1,1+2*eH.length))}class nO{locale;constructor(W){H8(this,{locale:W})}split(W){return W.toLowerCase().split(/\s+/g)}join(W){return W.join(" ")}}class iO extends nO{#W;#G;constructor(W,G,X){super(W);this.#W=G,this.#G=X,this.#X=null}get _data(){return this.#W}_decodeWords(){return D_(this.#W)}#X;#Y(){if(this.#X==null){let W=this._decodeWords();if(e4(W.join(`
248
+ `);return Y.forEach((J)=>{if(J.startsWith("m="))X.push([J]);else if(X.length>0)X[X.length-1].push(J);else G.push(J)}),[G,X]}function OK(W){if(W.includes(":")){let G=m4(W.slice(2),":");return[G[0],G[1]]}else return[W.slice(2),void 0]}function DK(W,G,X=(Y)=>Y.toString()){let Y=G.split(" ");if(Y.length>0)W.push(new oV(Y[0],Y.slice(1).map(X)))}function Qx(W){let G=DG.fromSdp(W);return eV(G)}var Fr=class{constructor(W,G){this.sdp=W,this.type=G}static isThis(W){if(typeof W?.sdp==="string")return!0}toSdp(){return{sdp:this.sdp,type:this.type}}};function NS(W,G){let Y=new Bq(ni(64)).toString().slice(0,8),J=0;G.origin=`- ${Y} 0 IN IP4 0.0.0.0`,G.msidSemantic.push(new oV("WMS",["*"])),G.type=W}function qH(W){let G={};return W.split(";").forEach((X)=>{if(X.includes("=")){let[Y,J]=m4(X,"=");if(Bi.includes(Y))G[Y]=Number(J);else G[Y]=J}else if(X.includes(":")){let[Y,J]=X.split(":");G[Y]=Number.isNaN(Number(J))?J:Number(J)}else G[X]=void 0}),G}var eK=class{ssrc;cname;msid;msLabel;label;constructor(W){Object.assign(this,W)}},yq=M1("werift:packages/webrtc/src/media/rtpReceiver.ts"),Nx=class{constructor(W,G,X){this.config=W,this.kind=G,this.rtcpSsrc=X}codecs={};get codecArray(){return Object.values(this.codecs).sort((W,G)=>W.payloadType-G.payloadType)}ssrcByRtx={};nack=new pi(this);audioRedHandler=new Xn;type="receiver";uuid=Di().toString();tracks=[];trackBySSRC={};trackByRID={};lastSRtimestamp={};receiveLastSRTimestamp={};onPacketLost=this.nack.onPacketLost;onRtcp=new c0;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===Hi().type)}get pliEnabled(){return this.codecArray[0]?.rtcpFeedback.find((W)=>W.type===QU().type)}prepareReceive(W){W.codecs.forEach((G)=>{this.codecs[G.payloadType]=G}),W.encodings.forEach((G)=>{if(G.rtx)this.ssrcByRtx[G.rtx.ssrc]=G.ssrc})}setupTWCC(W){if(this.twccEnabled&&!this.receiverTWCC)this.receiverTWCC=new di(this.dtlsTransport,this.rtcpSsrc,W)}addTrack(W){if(this.tracks.find((X)=>{if(X.rid)return X.rid===W.rid;if(X.ssrc)return X.ssrc===W.ssrc}))return!1;if(this.tracks.push(W),W.ssrc)this.trackBySSRC[W.ssrc]=W;if(W.rid)this.trackByRID[W.rid]=W;return!0}stop(){if(this.stopped=!0,this.rtcpRunning=!1,this.rtcpCancel.abort(),this.receiverTWCC)this.receiverTWCC.twccRunning=!1;this.nack.close()}async runRtcp(){if(this.rtcpRunning||this.stopped)return;this.rtcpRunning=!0;try{while(this.rtcpRunning){await wK(500+Math.random()*1000,void 0,{signal:this.rtcpCancel.signal});let W=Object.entries(this.remoteStreams).map(([X,Y])=>{let J=0,Z=0;if(this.lastSRtimestamp[X]){J=this.lastSRtimestamp[X];let V=QH()-this.receiveLastSRTimestamp[X];if(V>0&&V<65536)Z=lV(V*65536)}return new XO({ssrc:Number(X),fractionLost:Y.fraction_lost,packetsLost:Y.packets_lost,highestSequence:Y.max_seq,jitter:Y.jitter,lsr:J,dlsr:Z})}),G=new rV({ssrc:this.rtcpSsrc,reports:W});try{if(this.config.debug.receiverReportDelay)await wK(this.config.debug.receiverReportDelay);await this.dtlsTransport.sendRtcp([G])}catch(X){yq("sendRtcp failed",X),await wK(500+Math.random()*1000)}}}catch(W){}}async getStats(){let W=$G(),G=[];if(!this.dtlsTransport)return G;let X=Q8("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:Q8("inbound-rtp",Y.ssrc),timestamp:W,ssrc:Y.ssrc,kind:this.kind,transportId:X,codecId:this.codecs[0]?Q8("codec",this.codecs[0].payloadType,X):void 0,mid:this.sdesMid,trackIdentifier:Y.id,packetsReceived:J.packets_received,packetsLost:J.packets_lost,jitter:J.jitter};if(G.push(Z),this.lastSRtimestamp[Y.ssrc]){let V={type:"remote-outbound-rtp",id:Q8("remote-outbound-rtp",Y.ssrc),timestamp:W,ssrc:Y.ssrc,kind:this.kind,transportId:X,codecId:Z.codecId,localId:Z.id,remoteTimestamp:this.receiveLastSRTimestamp[Y.ssrc]*1000};G.push(V)}}return G}async sendRtcpPLI(W){if(!this.pliEnabled){yq("pli not supported",{mediaSsrc:W});return}if(this.stopped)return;yq("sendRtcpPLI",{mediaSsrc:W});let G=new iV({feedback:new YH({senderSsrc:this.rtcpSsrc,mediaSsrc:W})});try{await this.dtlsTransport.sendRtcp([G])}catch(X){yq(X)}}handleRtcpPacket(W){switch(W.type){case mY.type:{let G=W;this.lastSRtimestamp[G.ssrc]=i2(G.senderInfo.ntpTimestamp),this.receiveLastSRTimestamp[G.ssrc]=QH();let X=this.trackBySSRC[W.ssrc];if(X)X.onReceiveRtcp.execute(W)}break}this.onRtcp.execute(W)}handleRtpBySsrc=(W,G)=>{let X=this.trackBySSRC[W.header.ssrc];this.handleRTP(W,G,X)};handleRtpByRid=(W,G,X)=>{let Y=this.trackByRID[G];if(!this.trackBySSRC[W.header.ssrc])this.trackBySSRC[W.header.ssrc]=Y;this.handleRTP(W,X,Y)};handleRTP(W,G,X){if(this.stopped)return;let Y=this.codecs[W.header.payloadType];if(!Y)return;if(this.remoteStreams[W.header.ssrc]=this.remoteStreams[W.header.ssrc]??new oi(Y.clockRate),this.remoteStreams[W.header.ssrc].add(W),this.receiverTWCC){let Z=G[R9.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=qH(Y.parameters??""),U=this.codecs[V.apt];if(W.payload.length<2)return;W=Yn(W,U.payloadType,Z),X=this.trackBySSRC[Z]}let J;if(Y.name.toLowerCase()==="red"){if(J=V2.deSerialize(W.payload),!Object.keys(this.codecs).includes(J.header.fields[0].blockPT.toString()))return}if(X?.kind==="video"&&this.nackEnabled)this.nack.addPacket(W);if(X)if(J){if(X.kind==="audio"){let Z=this.audioRedHandler.push(J,W);for(let V of Z)X.onReceiveRtp.execute(V.clone(),G)}}else X.onReceiveRtp.execute(W.clone(),G);this.runRtcp()}},hV=M1("werift:packages/webrtc/src/media/router.ts"),Sr=class{ssrcTable={};ridTable={};extIdUriMap={};constructor(){}registerRtpSender(W){this.ssrcTable[W.ssrc]=W}registerRtpReceiver(W,G){hV("registerRtpReceiver",G),this.ssrcTable[G]=W}registerRtpReceiverBySsrc(W,G){hV("registerRtpReceiverBySsrc",G),G.encodings.filter((X)=>X.ssrc!=null).forEach((X,Y)=>{if(this.registerRtpReceiver(W.receiver,X.ssrc),W.addTrack(new hK({ssrc:X.ssrc,kind:W.kind,id:W.sender.trackId,remote:!0,codec:G.codecs[Y]})),X.rtx)this.registerRtpReceiver(W.receiver,X.rtx.ssrc)}),G.headerExtensions.forEach((X)=>{this.extIdUriMap[X.id]=X.uri})}registerRtpReceiverByRid(W,G,X){let[Y]=X.codecs;hV("registerRtpReceiverByRid",G),W.addTrack(new hK({rid:G.rid,kind:W.kind,id:W.sender.trackId,remote:!0,codec:Y})),this.ridTable[G.rid]=W.receiver}routeRtp=(W)=>{let G=fo(W.header.extensions,this.extIdUriMap),X=this.ssrcTable[W.header.ssrc],Y=G[R9.sdesRTPStreamID];if(typeof Y==="string")X=this.ridTable[Y],X.latestRid=Y,X.handleRtpByRid(W,Y,G);else if(X)X.handleRtpBySsrc(W,G);else if(X=Object.values(this.ridTable).filter((V)=>V instanceof Nx).find((V)=>V.trackBySSRC[W.header.ssrc]),X)hV("simulcast register receiver by ssrc",W.header.ssrc),this.registerRtpReceiver(X,W.header.ssrc),X.handleRtpBySsrc(W,G);if(!X){hV("ssrcReceiver not found");return}let J=G[R9.sdesMid];if(typeof J==="string")X.sdesMid=J;let Z=G[R9.repairedRtpStreamId];if(typeof Z==="string")X.latestRepairedRid=Z};routeRtcp=(W)=>{let G=[];switch(W.type){case mY.type:W=W,G.push(this.ssrcTable[W.ssrc]);break;case rV.type:W=W,W.reports.forEach((X)=>{G.push(this.ssrcTable[X.ssrc])});break;case UH.type:{let X=W}break;case bY.type:{let X=W;if(X.feedback)G.push(this.ssrcTable[X.feedback.mediaSourceSsrc])}break;case iV.type:{let X=W;switch(X.feedback.count){case JH.count:{let Y=X.feedback;G.push(this.ssrcTable[Y.ssrcFeedbacks[0]])}break;default:G.push(this.ssrcTable[X.feedback.senderSsrc]||this.ssrcTable[X.feedback.mediaSsrc])}}break}G.filter((X)=>X).forEach((X)=>X.handleRtcpPacket(W))}},xr=class{numPackets=0;totalSize=0;firstPacketSentAtMs=0;lastPacketSentAtMs=0;firstPacketReceivedAtMs=0;lastPacketReceivedAtMs=0;addPacket(W,G,X){if(this.numPackets===0)this.firstPacketSentAtMs=G,this.firstPacketReceivedAtMs=X,this.lastPacketSentAtMs=G,this.lastPacketReceivedAtMs=X;else{if(G<this.firstPacketSentAtMs)this.firstPacketSentAtMs=G;if(X<this.firstPacketReceivedAtMs)this.firstPacketReceivedAtMs=X;if(G>this.lastPacketSentAtMs)this.lastPacketSentAtMs=G;if(X>this.lastPacketReceivedAtMs)this.lastPacketReceivedAtMs=X}this.numPackets++,this.totalSize+=W}reset(){this.numPackets=0,this.totalSize=0,this.firstPacketSentAtMs=0,this.lastPacketSentAtMs=0,this.firstPacketReceivedAtMs=0,this.lastPacketReceivedAtMs=0}get receiveBitrate(){let W=this.lastPacketReceivedAtMs-this.firstPacketReceivedAtMs,G=this.totalSize/W*8*1000;return XH(G)}get sendBitrate(){let W=this.lastPacketSentAtMs-this.firstPacketSentAtMs,G=this.totalSize/W*8*1000;return XH(G)}},kY=20,kr=10,_r=class{congestion=!1;onAvailableBitrate=new c0;onCongestion=new c0;onCongestionScore=new c0;congestionCounter=0;cumulativeResult=new xr;sentInfos={};_congestionScore=1;get congestionScore(){return this._congestionScore}set congestionScore(W){this._congestionScore=W,this.onCongestionScore.execute(W)}_availableBitrate=0;get availableBitrate(){return this._availableBitrate}set availableBitrate(W){this._availableBitrate=W,this.onAvailableBitrate.execute(W)}constructor(){}receiveTWCC(W){let X=n2()-this.cumulativeResult.firstPacketSentAtMs;if(X>1000){if(this.cumulativeResult.reset(),this.congestionCounter<kY)this.congestionCounter++;else if(this.congestionScore<kr)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(X>=100&&this.cumulativeResult.numPackets>=20){if(this.availableBitrate=Math.min(this.cumulativeResult.sendBitrate,this.cumulativeResult.receiveBitrate),this.cumulativeResult.reset(),this.congestionCounter>-kY){let Y=XH(kY/2)+1,J=XH(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((G)=>Number(G)).sort().filter((G)=>G<W.wideSeq).forEach((G)=>{delete this.sentInfos[G]}),this.sentInfos[W.wideSeq]=W}},CK=M1("werift:packages/webrtc/src/media/rtpSender.ts"),zS=128,IS=0.85,yr=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=W8.Unpack("!L",qS(4))[0];rtxSsrc=W8.Unpack("!L",qS(4))[0];streamId=HS().toString();trackId=HS().toString();onReady=new c0;onRtcp=new c0;onPictureLossIndication=new c0;onGenericNack=new c0;senderBWE=new _r;cname;mid;rtpStreamId;repairedRtpStreamId;rtxPayloadType;rtxSequenceNumber=KS();redRedundantPayloadType;_redDistance=2;redEncoder=new Wn(this._redDistance);headerExtensions=[];disposeTrack;lastSRtimestamp;lastSentSRTimestamp;ntpTimestamp=0n;rtpTimestamp=0;octetCount=0;packetCount=0;rtt;receiverEstimatedMaxBitrate=0n;sequenceNumber;timestamp;timestampOffset=0;seqOffset=0;rtpCache=[];codec;dtlsTransport;dtlsDisposer=[];track;stopped=!1;rtcpRunning=!1;rtcpCancel=new AbortController;setDtlsTransport(W){if(this.dtlsTransport)this.dtlsDisposer.forEach((G)=>G());this.dtlsTransport=W,this.dtlsDisposer=[this.dtlsTransport.onStateChange.subscribe((G)=>{if(G==="connected")this.onReady.execute()}).unSubscribe]}get redDistance(){return this._redDistance}set redDistance(W){this._redDistance=W,this.redEncoder.distance=W}prepareSend(W){if(this.cname=W.rtcp?.cname,this.mid=W.muxId,this.headerExtensions=W.headerExtensions,this.rtpStreamId=W.rtpStreamId,this.repairedRtpStreamId=W.repairedRtpStreamId,this.codec=W.codecs[0],this.track)this.track.codec=this.codec;W.codecs.forEach((G)=>{let X=qH(G.parameters??"");if(G.name.toLowerCase()==="rtx"&&X.apt===this.codec?.payloadType)this.rtxPayloadType=G.payloadType;if(G.name.toLowerCase()==="red")this.redRedundantPayloadType=Number((G.parameters??"").split("/")[0])})}registerTrack(W){if(W.stopped)throw Error("track is ended");if(this.disposeTrack)this.disposeTrack();W.id=this.trackId;let{unSubscribe:G}=W.onReceiveRtp.subscribe(async(X)=>{await this.sendRtp(X)});if(this.track=W,this.disposeTrack=G,this.codec)W.codec=this.codec;W.onSourceChanged.subscribe((X)=>{this.replaceRTP(X)})}async replaceTrack(W){if(W===null)return;if(W.stopped)throw Error("track is ended");if(this.sequenceNumber!=null){let G=W.header||(await W.onReceiveRtp.asPromise())[0].header;this.replaceRTP(G)}this.registerTrack(W),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 AS(500+Math.random()*1000,void 0,{signal:this.rtcpCancel.signal});let W=[new mY({ssrc:this.ssrc,senderInfo:new Z2({ntpTimestamp:this.ntpTimestamp,rtpTimestamp:this.rtpTimestamp,packetCount:this.packetCount,octetCount:this.octetCount})})];if(this.lastSRtimestamp=i2(this.ntpTimestamp),this.lastSentSRTimestamp=QH(),this.cname)W.push(new UH({chunks:[new Y2({source:this.ssrc,items:[new J2({type:1,text:this.cname})]})]}));try{await this.dtlsTransport.sendRtcp(W)}catch(G){CK("sendRtcp failed",G),await AS(500+Math.random()*1000)}}}catch(W){}}replaceRTP({sequenceNumber:W,timestamp:G},X=!1){if(this.sequenceNumber!=null){if(this.seqOffset=P9(this.sequenceNumber,-W),X)this.seqOffset=P9(this.seqOffset,2)}if(this.timestamp!=null){if(this.timestampOffset=gY(this.timestamp,-G),X)this.timestampOffset=P9(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)?t6.deSerialize(W):W;let{header:G,payload:X}=W;G.ssrc=this.ssrc,G.payloadType=this.codec.payloadType,G.timestamp=gY(G.timestamp,this.timestampOffset),G.sequenceNumber=P9(G.sequenceNumber,this.seqOffset),this.timestamp=G.timestamp,this.sequenceNumber=G.sequenceNumber;let Y=hi(),J=[...G.extensions];G.extensions=this.headerExtensions.map((N)=>{let q=(()=>{switch(N.uri){case R9.sdesMid:if(this.mid)return po(this.mid);return;case R9.sdesRTPStreamID:if(this.rtpStreamId)return co(this.rtpStreamId);return;case R9.repairedRtpStreamId:if(this.repairedRtpStreamId)return lo(this.repairedRtpStreamId);return;case R9.transportWideCC:return this.dtlsTransport.transportSequenceNumber=P9(this.dtlsTransport.transportSequenceNumber,1),oo(this.dtlsTransport.transportSequenceNumber);case R9.absSendTime:return no(Y)}})();if(q)return{id:N.id,payload:q}}).filter((N)=>N);for(let N of J){let q=G.extensions.find((A)=>A.id===N.id);if(q)q.payload=N.payload;else G.extensions.push(N)}G.extensions=G.extensions.sort((N,q)=>N.id-q.id),this.ntpTimestamp=Y,this.rtpTimestamp=G.timestamp,this.octetCount+=X.length,this.packetCount=gY(this.packetCount,1),this.rtpCache[G.sequenceNumber%zS]=W;let Z=X;if(this.redRedundantPayloadType)this.redEncoder.push({block:Z,timestamp:G.timestamp,blockPT:this.redRedundantPayloadType}),Z=this.redEncoder.build().serialize();let V=await this.dtlsTransport.sendRtp(Z,G);this.runRtcp();let U=n2(),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((X)=>X.ssrc===this.ssrc).forEach((X)=>{if(this.lastSRtimestamp===X.lsr&&X.dlsr){if(this.lastSentSRTimestamp){let Y=QH()-this.lastSentSRTimestamp-X.dlsr/65536;if(this.rtt===void 0)this.rtt=Y;else this.rtt=IS*this.rtt+(1-IS)*Y}}});break;case bY.type:{let G=W;switch(G.feedback.count){case VH.count:{let X=G.feedback;this.senderBWE.receiveTWCC(X)}break;case ZH.count:{let X=G.feedback;X.lost.forEach(async(Y)=>{let J=this.rtpCache[Y%zS];if(J&&J.header.sequenceNumber!==Y)J=void 0;if(J){if(this.rtxPayloadType!=null)J=Jn(J,this.rtxPayloadType,this.rtxSequenceNumber,this.rtxSsrc),this.rtxSequenceNumber=P9(this.rtxSequenceNumber,1);await this.dtlsTransport.sendRtp(J.payload,J.header)}}),this.onGenericNack.execute(X)}break}}break;case iV.type:{let G=W;switch(G.feedback.count){case JH.count:{let X=G.feedback;this.receiverEstimatedMaxBitrate=X.bitrate}break;case YH.count:this.onPictureLossIndication.execute();break}}break}this.onRtcp.execute(W)}getParameters(){return{encodings:[]}}setParameters(W){}async getStats(){let W=$G(),G=[];if(!this.dtlsTransport)return G;let X=Q8("transport",this.dtlsTransport.id),Y={type:"outbound-rtp",id:Q8("outbound-rtp",this.ssrc),timestamp:W,ssrc:this.ssrc,kind:this.kind,transportId:X,codecId:this.codec?Q8("codec",this.codec.payloadType,X):void 0,mid:this.mid,packetsSent:this.packetCount,bytesSent:this.octetCount,rtxSsrc:this.rtxPayloadType?this.rtxSsrc:void 0};if(G.push(Y),this.track){let J={type:"media-source",id:Q8("media-source",this.trackId),timestamp:W,trackIdentifier:this.trackId,kind:this.kind};G.push(J)}if(this.rtt!==void 0){let J={type:"remote-inbound-rtp",id:Q8("remote-inbound-rtp",this.ssrc),timestamp:W,ssrc:this.ssrc,kind:this.kind,transportId:X,codecId:Y.codecId,localId:Y.id,roundTripTime:this.rtt};G.push(J)}return G}},gr=M1("werift:packages/webrtc/src/transport/sctpManager.ts"),ur=class{sctpTransport;sctpRemotePort;dataChannelsOpened=0;dataChannelsClosed=0;dataChannels=[];onDataChannel=new c0;constructor(){}createSctpTransport(W){let G=new Br(5000,W);return G.mid=void 0,G.onDataChannel.subscribe((X)=>{this.dataChannelsOpened++,this.dataChannels.push(X),this.onDataChannel.execute(X)}),this.sctpTransport=G,G}createDataChannel(W,G={}){let Y={...{protocol:"",ordered:!0,negotiated:!1},...G};if(Y.maxPacketLifeTime&&Y.maxRetransmits)throw Error("can not select both");if(!this.sctpTransport)this.sctpTransport=this.createSctpTransport();let J=new _2({id:Y.id,label:W,maxPacketLifeTime:Y.maxPacketLifeTime,maxRetransmits:Y.maxRetransmits,negotiated:Y.negotiated,ordered:Y.ordered,protocol:Y.protocol}),Z=new k2(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(),gr("sctp connected")}setRemoteSCTP(W,G){if(!this.sctpTransport)return;if(this.sctpTransport.setRemoteMaxMessageSize(W.sctpCapabilities?.maxMessageSize),this.sctpRemotePort=W.sctpPort,!this.sctpRemotePort)throw Error("sctpRemotePort not exist");if(this.sctpTransport.setRemotePort(this.sctpRemotePort),this.sctpTransport.mLineIndex=G,!this.sctpTransport.mid)this.sctpTransport.mid=W.rtp.muxId}async close(){if(this.sctpTransport)await this.sctpTransport.stop();this.onDataChannel.allUnsubscribe()}async getStats(){let W=$G(),G=[];for(let X of this.dataChannels){let Y={type:"data-channel",id:Q8("data-channel",X.id),timestamp:W,label:X.label,protocol:X.protocol,dataChannelIdentifier:X.id,state:X.readyState,messagesSent:X.messagesSent||0,bytesSent:X.bytesSent||0,messagesReceived:X.messagesReceived||0,bytesReceived:X.bytesReceived||0};G.push(Y)}return G}},hr=class{currentLocalDescription;currentRemoteDescription;pendingLocalDescription;pendingRemoteDescription;cname;midSuffix;bundlePolicy;seenMid=new Set;constructor({cname:W,midSuffix:G,bundlePolicy:X}){this.cname=W,this.midSuffix=G??!1,this.bundlePolicy=X}get localDescription(){if(!this._localDescription)return;return this._localDescription.toJSON()}get remoteDescription(){if(!this._remoteDescription)return;return this._remoteDescription.toJSON()}get _localDescription(){return this.pendingLocalDescription||this.currentLocalDescription}get _remoteDescription(){return this.pendingRemoteDescription||this.currentRemoteDescription}get inactiveRemoteMedia(){return this._remoteDescription?.media?.find?.((W)=>W.direction==="inactive")}createMediaDescriptionForTransceiver(W,G){let X=new sK(W.kind,9,"UDP/TLS/RTP/SAVPF",W.codecs.map((Y)=>Y.payloadType));if(X.direction=G,X.msid=W.msid,X.rtp={codecs:W.codecs,headerExtensions:W.headerExtensions,muxId:W.mid},X.rtcpHost="0.0.0.0",X.rtcpPort=9,X.rtcpMux=!0,X.ssrc=[new eK({ssrc:W.sender.ssrc,cname:this.cname})],W.options.simulcast)X.simulcastParameters=W.options.simulcast.map((Y)=>new y2(Y));if(X.rtp.codecs.find((Y)=>Y.name.toLowerCase()==="rtx"))X.ssrc.push(new eK({ssrc:W.sender.rtxSsrc,cname:this.cname})),X.ssrcGroup=[new oV("FID",[W.sender.ssrc.toString(),W.sender.rtxSsrc.toString()])];return this.addTransportDescription(X,W.dtlsTransport),X}createMediaDescriptionForSctp(W){let G=new sK("application",dF,"UDP/DTLS/SCTP",["webrtc-datachannel"]);return G.sctpPort=W.port,G.rtp.muxId=W.mid,G.sctpCapabilities=W.getCapabilities(),this.addTransportDescription(G,W.dtlsTransport),G}addTransportDescription(W,G){let X=G.iceTransport;if(W.iceCandidates=X.localCandidates,W.iceCandidatesComplete=X.gatheringState==="complete",W.iceParams=X.localParameters,W.iceOptions="trickle",W.host=Li,W.port=dF,W.direction==="inactive")W.port=0,W.msid=void 0;if(!W.dtlsParams){if(W.dtlsParams=G.localParameters,!W.dtlsParams.fingerprints)W.dtlsParams.fingerprints=G.localParameters.fingerprints}}allocateMid(W=""){let G="";for(let X=0;;)if(G=(X++).toString()+W,!this.seenMid.has(G))break;return this.seenMid.add(G),G}parseSdp({sdp:W,isLocal:G,signalingState:X,type:Y}){let J=iq.parse(W);return this.validateDescription({description:J,isLocal:G,signalingState:X}),J.type=Y,J}validateDescription({description:W,isLocal:G,signalingState:X}){if(G){if(W.type==="offer"){if(!["stable","have-local-offer"].includes(X))throw Error("Cannot handle offer in signaling state")}else if(W.type==="answer"){if(!["have-remote-offer","have-local-pranswer"].includes(X))throw Error("Cannot handle answer in signaling state")}}else if(W.type==="offer"){if(!["stable","have-remote-offer"].includes(X))throw Error("Cannot handle offer in signaling state")}else if(W.type==="answer"){if(!["have-local-offer","have-remote-pranswer"].includes(X))throw Error("Cannot handle answer in signaling state")}}buildOfferSdp(W,G){let X=new iq;NS("offer",X),(this.currentLocalDescription?.media??[]).forEach((J,Z)=>{let V=J.rtp.muxId;if(!V)return;if(J.kind==="application"){if(!G)throw Error("sctpTransport not found");G.mLineIndex=Z,X.media.push(this.createMediaDescriptionForSctp(G))}else{let U=W.find((Q)=>Q.mid===V);if(!U){if(J.direction==="inactive"){X.media.push(J);return}throw Error("transceiver not found")}U.mLineIndex=Z,X.media.push(this.createMediaDescriptionForTransceiver(U,U.direction))}});for(let J of W.filter((Z)=>!X.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=X.media.length,X.media.push(Z);else X.media[J.mLineIndex]=Z}if(G&&!X.media.find((J)=>J.kind==="application")){if(G.mLineIndex=X.media.length,G.mid==null)G.mid=this.allocateMid(this.midSuffix?"dc":"");X.media.push(this.createMediaDescriptionForSctp(G))}if(this.bundlePolicy!=="disable"){let J=X.media.map((Z)=>Z.rtp.muxId).filter((Z)=>Z);if(J.length){let Z=new oV("BUNDLE",J);X.group.push(Z)}}return X}buildAnswerSdp({transceivers:W,sctpTransport:G,signalingState:X}){if(!["have-remote-offer","have-local-pranswer"].includes(X))throw Error("createAnswer failed");if(!this._remoteDescription)throw Error("wrong state");let Y=new iq;NS("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,o2(U.direction,U.offerDirection)),Z=U.dtlsTransport}else if(J.kind==="application"){if(!G||!G.mid)throw Error("sctpTransport not found");V=this.createMediaDescriptionForSctp(G),Z=G.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,G){if(!W.sdp||!W.type||W.type==="rollback"||W.type==="pranswer")throw Error("invalid sessionDescription");let X=this.parseSdp({sdp:W.sdp,isLocal:!1,signalingState:G,type:W.type});if(X.type==="answer")this.currentRemoteDescription=X,this.pendingRemoteDescription=void 0;else this.pendingRemoteDescription=X;return X}registerMid(W){this.seenMid.add(W)}get remoteIsBundled(){let W=this._remoteDescription;if(!W)return;return W.group.find((X)=>X.semantic==="BUNDLE"&&this.bundlePolicy!=="disable")}setLocal(W,G,X){let Y=new Map(G.map((V)=>[V?.mLineIndex,V])),J=G.find((V)=>V?.dtlsTransport)?.dtlsTransport??X?.dtlsTransport;W.media.filter((V)=>["audio","video"].includes(V.kind)).forEach((V,U)=>{let N=(Y.get(U)??G[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(X&&Z)this.addTransportDescription(Z,X.dtlsTransport);this.setLocalDescription(W)}},bV=M1("werift:packages/webrtc/src/transport/secureTransportManager.ts"),br=class{connectionState="new";iceConnectionState="new";iceGatheringState="new";certificate;iceGatheringStateChange=new c0;iceConnectionStateChange=new c0;onIceCandidate=new c0;connectionStateChange=new c0;config;transceiverManager;sctpManager;constructor({config:W,transceiverManager:G,sctpManager:X}){if(this.config=W,this.transceiverManager=G,this.sctpManager=X,this.config.dtls){let{keys:Y}=this.config.dtls;if(Y)this.setupCertificate(Y)}}get dtlsTransports(){return[...this.transceiverManager.getTransceivers().map((G)=>G?.dtlsTransport),this.sctpManager.sctpTransport?.dtlsTransport].filter((G)=>G!=null).reduce((G,X)=>{if(!G.map((Y)=>Y.id).includes(X.id))G.push(X);return G},[])}get iceTransports(){return this.dtlsTransports.map((W)=>W.iceTransport)}setupCertificate(W){this.certificate=new r2(W.keyPem,W.certPem,W.signatureHash)}createTransport(){let W=this.iceTransports.find((J)=>J.state!=="closed"),G=new Yr({...bi(this.config.iceServers),forceTurn:this.config.iceTransportPolicy==="relay",portRange:this.config.icePortRange,interfaceAddresses:this.config.iceInterfaceAddresses,additionalHostAddresses:this.config.iceAdditionalHostAddresses,filterStunResponse:this.config.iceFilterStunResponse,filterCandidatePair:this.config.iceFilterCandidatePair,localPasswordPrefix:this.config.icePasswordPrefix,useIpv4:this.config.iceUseIpv4,useIpv6:this.config.iceUseIpv6,turnTransport:this.config.forceTurnTCP===!0?"tcp":"udp",useLinkLocalAddress:this.config.iceUseLinkLocalAddress});if(W)G.connection.localUsername=W.connection.localUsername,G.connection.localPassword=W.connection.localPassword;G.onGatheringStateChange.subscribe(()=>{this.updateIceGatheringState()}),this.updateIceGatheringState();let X=new Xr(G);return X.onStateChange.subscribe(()=>{this.updateIceConnectionState()}),new rF(this.config,X,this.certificate,mr)}handleNewIceCandidate({candidate:W,media:G,remoteIsBundled:X,transceiver:Y,sctpTransport:J,bundlePolicy:Z}){if(Z==="max-bundle"||X){if(W.sdpMLineIndex=0,G)W.sdpMid=G.rtp.muxId}else{if(Y)W.sdpMLineIndex=Y.mLineIndex,W.sdpMid=Y.mid;if(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,G){let X=a2.fromJSON(G);if(!X)return;let Y;if(typeof X.sdpMid==="number")Y=this.getTransportByMid(X.sdpMid);if(!Y&&typeof X.sdpMLineIndex==="number")Y=this.getTransportByMLineIndex(W,X.sdpMLineIndex);if(!Y)Y=this.iceTransports[0];if(Y)await Y.addRemoteCandidate(X);else bV("iceTransport not found for candidate",X)}getTransportByMid(W){let G,X=this.transceiverManager.getTransceivers().find((Y)=>Y.mid===W);if(X)G=X.dtlsTransport.iceTransport;else if(!G&&this.sctpManager.sctpTransport?.mid===W)G=this.sctpManager.sctpTransport.dtlsTransport.iceTransport;return G}getTransportByMLineIndex(W,G){let X=W.media[G];if(!X)return;return this.getTransportByMid(X.rtp.muxId)}restartIce(){for(let W of this.iceTransports)W.restart()}setLocalRole({type:W,role:G}){for(let X of this.dtlsTransports){let Y=X.iceTransport;if(W==="offer")Y.connection.iceControlling=!0;else Y.connection.iceControlling=!1;if(Y.connection.remoteIsLite)Y.connection.iceControlling=!0;if(W==="answer"){if(G)X.role=G}}}updateIceGatheringState(){let W=this.iceTransports;function G(...Y){return W.filter((J)=>Y.includes(J.gatheringState)).length===W.length}let X;if(W.length&&G("complete"))X="complete";else if(!W.length||G("new","complete"))X="new";else if(W.map((Y)=>Y.gatheringState).includes("gathering"))X="gathering";else X="new";if(this.iceGatheringState===X)return;this.iceGatheringState=X,this.iceGatheringStateChange.execute(X)}updateIceConnectionState(){let W=this.iceTransports,G;function X(...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")G="closed";else if(Y("failed"))G="failed";else if(Y("disconnected"))G="disconnected";else if(X("new","closed"))G="new";else if(Y("new","checking"))G="checking";else if(X("completed","closed"))G="completed";else if(X("connected","completed","closed"))G="connected";else G="new";if(this.iceConnectionState===G)return;bV("iceConnectionStateChange",G),this.iceConnectionState=G,this.iceConnectionStateChange.execute(G)}async gatherCandidates(W){let G=this.iceTransports.find((X)=>X.state==="connected"||X.state==="completed");if(W&&G)bV("skipping ICE gathering for bundled connection");else await Promise.allSettled(this.iceTransports.map((X)=>X.gather())).catch((X)=>{bV("gatherCandidates failed",X)})}setConnectionState(W){bV("connectionStateChange",W),this.connectionState=W,this.connectionStateChange.execute(W)}async getStats(){let W=[];for(let G of this.dtlsTransports){let X=await G.getStats();if(X)W.push(...X)}return W}async ensureCerts(){if(!this.certificate)this.certificate=await rF.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()}},mr=[nF.SRTP_AEAD_AES_128_GCM,nF.SRTP_AES128_CM_HMAC_SHA1_80],G7=M1("werift:packages/webrtc/src/peerConnection.ts"),qx=class extends NO{cname=vr().toString();config=Hx();signalingState="stable";negotiationneeded=!1;needRestart=!1;router=new Sr;sdpManager;transceiverManager;sctpManager;secureManager;isClosed=!1;shouldNegotiationneeded=!1;remoteBundleNegotiated=!1;iceGatheringStateChange=new c0;iceConnectionStateChange=new c0;signalingStateChange=new c0;connectionStateChange=new c0;onDataChannel=new c0;onRemoteTransceiverAdded=new c0;onTransceiverAdded=new c0;onIceCandidate=new c0;onNegotiationneeded=new c0;onTrack=new c0;ondatachannel;onicecandidate;onicecandidateerror;onicegatheringstatechange;onnegotiationneeded;onsignalingstatechange;ontrack;onconnectionstatechange;oniceconnectionstatechange;constructor(W={}){super();this.setConfiguration(W),this.sdpManager=new hr({cname:this.cname,bundlePolicy:this.config.bundlePolicy}),this.transceiverManager=new pr(this.cname,this.config,this.router),this.transceiverManager.onTransceiverAdded.pipe(this.onTransceiverAdded),this.transceiverManager.onRemoteTransceiverAdded.pipe(this.onRemoteTransceiverAdded),this.transceiverManager.onTrack.subscribe(({track:G,stream:X,transceiver:Y})=>{let J={track:G,streams:[X],transceiver:Y,receiver:Y.receiver};if(this.onTrack.execute(G),this.emit("track",J),this.ontrack)this.ontrack(J)}),this.transceiverManager.onNegotiationNeeded.subscribe(()=>this.needNegotiation()),this.sctpManager=new ur,this.sctpManager.onDataChannel.subscribe((G)=>{this.onDataChannel.execute(G);let X={channel:G};this.ondatachannel?.(X),this.emit("datachannel",X)}),this.secureManager=new br({config:this.config,sctpManager:this.sctpManager,transceiverManager:this.transceiverManager}),this.secureManager.iceGatheringStateChange.pipe(this.iceGatheringStateChange),this.secureManager.iceConnectionStateChange.subscribe((G)=>{if(G==="closed")this.close();this.iceConnectionStateChange.execute(G)}),this.secureManager.connectionStateChange.subscribe((G)=>{this.connectionStateChange.execute(G),this.onconnectionstatechange?.(),this.emit("connectionstatechange")}),this.secureManager.onIceCandidate.subscribe((G)=>{let X=G?G.toJSON():void 0;this.onIceCandidate.execute(X),this.onicecandidate?.({candidate:X}),this.emit("icecandidate",{candidate:X})})}get connectionState(){return this.secureManager.connectionState}get iceConnectionState(){return this.secureManager.iceConnectionState}get iceGathererState(){return this.secureManager.iceGatheringState}get iceGatheringState(){return this.secureManager.iceGatheringState}get dtlsTransports(){return this.secureManager.dtlsTransports}get sctpTransport(){return this.sctpManager.sctpTransport}get sctpRemotePort(){return this.sctpManager.sctpRemotePort}get iceTransports(){return this.secureManager.iceTransports}get extIdUriMap(){return this.router.extIdUriMap}get iceGeneration(){return this.iceTransports[0].connection.generation}get localDescription(){return this.sdpManager.localDescription}get remoteDescription(){return this.sdpManager.remoteDescription}get remoteIsBundled(){return this.sdpManager.remoteIsBundled}get _localDescription(){return this.sdpManager._localDescription}get _remoteDescription(){return this.sdpManager._remoteDescription}getTransceivers(){return this.transceiverManager.getTransceivers()}getSenders(){return this.transceiverManager.getSenders()}getReceivers(){return this.transceiverManager.getReceivers()}setConfiguration(W){if(mi(this.config,W),this.config.icePortRange){let[G,X]=this.config.icePortRange;if(G===X)throw Error("should not be same value");if(G>=X)throw Error("The min must be less than max")}if(!Number.isInteger(this.config.maxMessageSize)||this.config.maxMessageSize<0)throw Error("maxMessageSize must be a non-negative integer");if(this.sctpManager?.sctpTransport)this.sctpManager.sctpTransport.maxMessageSize=this.config.maxMessageSize;for(let[G,X]of mF([...this.config.codecs.audio||[],...this.config.codecs.video||[]])){if(X.payloadType!=null)continue;switch(X.payloadType=96+G,X.name.toLowerCase()){case"rtx":X.parameters=`apt=${X.payloadType-1}`;break;case"red":if(X.contentType==="audio"){let Y=X.payloadType+1;X.parameters=`${Y}/${Y}`,X.payloadType=63}break}}[...this.config.headerExtensions.audio||[],...this.config.headerExtensions.video||[]].forEach((G,X)=>{G.id=1+X})}getConfiguration(){return this.config}async createOffer({iceRestart:W}={}){if(W||this.needRestart)this.needRestart=!1,this.secureManager.restartIce();await this.secureManager.ensureCerts();for(let X of this.transceiverManager.getTransceivers()){if(X.codecs.length===0)this.transceiverManager.assignTransceiverCodecs(X);if(X.headerExtensions.length===0)X.headerExtensions=this.config.headerExtensions[X.kind]??[]}return this.sdpManager.buildOfferSdp(this.transceiverManager.getTransceivers(),this.sctpTransport).toJSON()}createSctpTransport(){let W=this.sctpManager.createSctpTransport(this.config.maxMessageSize),G=this.findOrCreateTransport();return W.setDtlsTransport(G),W}createDataChannel(W,G={}){if(!this.sctpTransport)this.createSctpTransport(),this.needNegotiation();let X=this.sctpManager.createDataChannel(W,G);if(!X.sctp.dtlsTransport){let Y=this.findOrCreateTransport();X.sctp.setDtlsTransport(Y)}return X}removeTrack(W){if(this.isClosed)throw Error("peer closed");this.transceiverManager.removeTrack(W),this.needNegotiation()}needNegotiation=async()=>{if(this.shouldNegotiationneeded=!0,this.negotiationneeded||this.signalingState!=="stable")return;this.shouldNegotiationneeded=!1,setImmediate(()=>{if(this.negotiationneeded=!0,this.onNegotiationneeded.execute(),this.onnegotiationneeded)this.onnegotiationneeded({})})};findOrCreateTransport(){let W=this.dtlsTransports.find((J)=>J.state!=="closed"),G=W?.iceTransport;if(this.sdpManager.bundlePolicy==="max-bundle"||this.sdpManager.bundlePolicy!=="disable"&&(this.remoteIsBundled||this.remoteBundleNegotiated)){if(W)return W}let X=this.secureManager.createTransport();X.onRtp.subscribe((J)=>{this.router.routeRtp(J)}),X.onRtcp.subscribe((J)=>{this.router.routeRtcp(J)});let Y=X.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})}),X}async setLocalDescription(W){W=W??(["stable","have-local-offer","have-remote-pranswer"].includes(this.signalingState)?await this.createOffer():await this.createAnswer());let X=this.sdpManager.parseSdp({sdp:W.sdp,isLocal:!0,signalingState:this.signalingState,type:W.type});if(X.type==="offer")this.setSignalingState("have-local-offer");else if(X.type==="answer")this.setSignalingState("stable");for(let[J,Z]of mF(X.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=X.media.find((J)=>J.dtlsParams)?.dtlsParams?.role;if(this.secureManager.setLocalRole({type:X.type,role:Y}),["answer","pranswer"].includes(X.type))for(let J of this.transceiverManager.getTransceivers()){let Z=o2(J.direction,J.offerDirection);J.setCurrentDirection(Z)}if(this.sdpManager.setLocal(X,this.transceiverManager.getTransceivers(),this.sctpTransport),await this.gatherCandidates().catch((J)=>{G7("gatherCandidates failed",J)}),X.type==="answer")this.connect().catch((J)=>{G7("connect failed",J),this.secureManager.setConnectionState("failed")});if(this.sdpManager.setLocal(X,this.transceiverManager.getTransceivers(),this.sctpTransport),this.shouldNegotiationneeded)this.needNegotiation();return X}async gatherCandidates(){await this.secureManager.gatherCandidates(!!this.sdpManager.remoteIsBundled)}async addIceCandidate(W){let G=this.sdpManager.buildOfferSdp(this.transceiverManager.getTransceivers(),this.sctpTransport);await this.secureManager.addIceCandidate(G,W)}async connect(){if(G7("start connect"),(await Promise.allSettled(this.dtlsTransports.map(async(G)=>{let{iceTransport:X}=G;if(X.state==="connected")return;let Y=()=>G.state==="connected";if(Y())return;if(this.secureManager.setConnectionState("connecting"),await X.start().catch((J)=>{throw G7("iceTransport.start failed",J),J}),Y())return;if(await G.start().catch((J)=>{throw G7("dtlsTransport.start failed",J),J}),this.sctpTransport&&this.sctpTransport.dtlsTransport.id===G.id)await this.sctpManager.connectSctp()}))).find((G)=>G.status==="rejected"))this.secureManager.setConnectionState("failed");else this.secureManager.setConnectionState("connected")}restartIce(){this.needRestart=!0,this.needNegotiation()}async setRemoteDescription(W){if(W instanceof iq)W=W.toSdp();let G=this.sdpManager.setRemoteDescription(W,this.signalingState);if(G.group.some((V)=>V.semantic==="BUNDLE"&&V.items.length>0))this.remoteBundleNegotiated=!0;let X,Y=(V,U)=>V.kind===U.kind&&[void 0,U.rtp.muxId].includes(V.mid),J=G.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(!X)X=q.dtlsTransport;else q.setDtlsTransport(X);Q=q.dtlsTransport,this.transceiverManager.setRemoteRTP(q,V,G.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(!X)X=q.dtlsTransport;else q.setDtlsTransport(X);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(G.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)=>G.media.find((U)=>Y(V,U))==null);if(W.type==="answer")for(let V of Z)V.stop(),V.stopped=!0;if(G.type==="offer")this.setSignalingState("have-remote-offer");else if(G.type==="answer")this.setSignalingState("stable");if(G.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,G={}){let X=this.findOrCreateTransport(),Y=this.transceiverManager.addTransceiver(W,X,G);return this.secureManager.updateIceConnectionState(),this.needNegotiation(),Y}addTrack(W,G){if(this.isClosed)throw Error("is closed");let X=this.transceiverManager.addTrack(W,G);if(!X.dtlsTransport){let Y=this.findOrCreateTransport();X.setDtlsTransport(Y)}return this.needNegotiation(),X.sender}async createAnswer(){return this.assertNotClosed(),await this.secureManager.ensureCerts(),this.sdpManager.buildAnswerSdp({transceivers:this.transceiverManager.getTransceivers(),sctpTransport:this.sctpTransport,signalingState:this.signalingState}).toJSON()}assertNotClosed(){if(this.isClosed)throw Error("RTCPeerConnection is closed")}setSignalingState(W){if(G7("signalingStateChange",W),this.signalingState=W,this.signalingStateChange.execute(W),this.onsignalingstatechange)this.onsignalingstatechange({})}createPeerConnectionStats(){let W=$G();return{type:"peer-connection",id:Q8("peer-connection"),timestamp:W,dataChannelsOpened:this.sctpManager.dataChannelsOpened,dataChannelsClosed:this.sctpManager.dataChannelsClosed}}async getStats(W){let G=[];G.push(this.createPeerConnectionStats());let X=await this.transceiverManager.getStats(W);G.push(...X);let Y=await this.secureManager.getStats();if(G.push(...Y),this.sctpTransport){let J=await this.sctpManager.getStats();if(J)G.push(...J)}return new $i(G)}async close(){if(this.isClosed)return;this.isClosed=!0,this.setSignalingState("closed"),this.transceiverManager.close(),await this.secureManager.close(),await this.sctpManager.close(),this.onDataChannel.allUnsubscribe(),this.iceGatheringStateChange.allUnsubscribe(),this.iceConnectionStateChange.allUnsubscribe(),this.signalingStateChange.allUnsubscribe(),this.onTransceiverAdded.allUnsubscribe(),this.onRemoteTransceiverAdded.allUnsubscribe(),this.onIceCandidate.allUnsubscribe(),G7("peerConnection closed")}},wS=(W,G)=>W.find((X)=>X.mimeType.toLowerCase()===G.mimeType.toLowerCase())?G:void 0;function Hx(){return{codecs:{audio:[g2(),u2()],video:[v2()]},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 FA0=Hx(),fr=M1("werift:packages/webrtc/src/media/rtpTransceiverManager.ts"),pr=class{constructor(W,G,X){this.cname=W,this.config=G,this.router=X}transceivers=[];onTransceiverAdded=new c0;onRemoteTransceiverAdded=new c0;onTrack=new c0;onNegotiationNeeded=new c0;getTransceivers(){return this.transceivers}getSenders(){return this.getTransceivers().map((W)=>W.sender)}getReceivers(){return this.getTransceivers().map((W)=>W.receiver)}getTransceiverByMLineIndex(W){return this.transceivers.find((G)=>G.mLineIndex===W)}pushTransceiver(W){this.transceivers.push(W)}replaceTransceiver(W,G){this.transceivers[G]=W}addTransceiver(W,G,X={}){let Y=typeof W==="string"?W:W.kind,J=X.direction||"sendrecv",Z=new yr(W),V=new Nx(this.config,Y,Z.ssrc),U=new Fi(Y,G,V,Z,J);U.options=X,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,G){if(this.getSenders().find((J)=>J.track?.uuid===W.uuid))throw Error("Track already added");let X=this.transceivers.find((J)=>J.sender.track==null&&J.kind===W.kind&&pq.includes(J.direction)===!0);if(X)return X.sender.registerTrack(W),X;let Y=this.transceivers.find((J)=>J.sender.track==null&&J.kind===W.kind&&pq.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:X})=>W.ssrc===X))throw Error("Sender does not exist");let G=this.transceivers.find(({sender:{ssrc:X}})=>W.ssrc===X);if(!G)throw Error("No matching transceiver found");if(W.stop(),G.currentDirection==="recvonly"){this.onNegotiationNeeded.execute();return}if(G.stopping||G.stopped)G.setDirection("inactive");else if(G.direction==="sendrecv")G.setDirection("recvonly");else if(G.direction==="sendonly"||G.direction==="recvonly")G.setDirection("inactive")}assignTransceiverCodecs(W){let G=this.config.codecs[W.kind].filter((X)=>{switch(X.direction){case"recvonly":{if(Ei.includes(W.direction))return!0;return!1}case"sendonly":{if(pq.includes(W.direction))return!0;return!1}case"sendrecv":{if([p2,f2,m2].includes(W.direction))return!0;return!1}case"all":return!0;default:return!1}});W.codecs=G}getLocalRtpParams(W){if(W.mid==null)throw Error("mid not assigned");return{codecs:W.codecs,muxId:W.mid,headerExtensions:W.headerExtensions,rtcp:{cname:this.cname,ssrc:W.sender.ssrc,mux:!0}}}getRemoteRtpParams(W,G){return{muxId:W.rtp.muxId,rtcp:W.rtp.rtcp,codecs:G.codecs,headerExtensions:G.headerExtensions,encodings:Object.values(G.codecs.reduce((Y,J)=>{if(J.name.toLowerCase()==="rtx"){let Z=qH(J.parameters??""),V=Y[Z.apt];if(V&&W.ssrc.length===2)V.rtx=new Ii({ssrc:W.ssrc[1].ssrc});return Y}return Y[J.payloadType]=new wi({ssrc:W.ssrc[0]?.ssrc,payloadType:J.payloadType}),Y},{}))}}setRemoteRTP(W,G,X,Y){if(!W.mid)W.mid=G.rtp.muxId;if(W.mLineIndex=Y,W.codecs=G.rtp.codecs.filter((U)=>{let Q=this.config.codecs[G.kind]||[],N=wS(Q,U);if(!N)return!1;if(N?.name.toLowerCase()==="rtx"){let A=qH(N.parameters??"").apt,H=G.rtp.codecs.find((I)=>I.payloadType===A);if(!H)return!1;return!!wS(Q,H)}return!0}),fr("negotiated codecs",W.codecs),W.codecs.length===0)throw Error("negotiate codecs failed.");W.headerExtensions=G.rtp.headerExtensions.filter((U)=>(this.config.headerExtensions[G.kind]||[]).find((Q)=>Q.uri===U.uri));let J=G.direction??"inactive",Z=vi(J);if(["answer","pranswer"].includes(X))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(G,W);for(let Q of G.simulcastParameters)this.router.registerRtpReceiverByRid(W,Q,U);W.receiver.prepareReceive(U),this.router.registerRtpReceiverBySsrc(W,U)}if(["sendonly","sendrecv"].includes(J)){if(G.msid){let[U,Q]=G.msid.split(" ");W.receiver.remoteStreamId=U,W.receiver.remoteTrackId=Q}this.onTrack.execute({track:W.receiver.track,transceiver:W,stream:new xi({id:W.receiver.remoteStreamId,tracks:[W.receiver.track]})})}if(G.ssrc[0]?.ssrc)W.receiver.setupTWCC(G.ssrc[0].ssrc)}async getStats(W){let G=[];for(let X of this.transceivers){let Y=!W||X.sender.track===W||X.receiver.track===W;if(X.sender){let J=await X.sender.getStats();if(J)for(let Z of J)if(Z.type==="outbound-rtp"||Z.type==="media-source"){if(Y)G.push(Z)}else G.push(Z)}if(X.receiver){let J=await X.receiver.getStats();if(J)for(let Z of J)if(Z.type==="inbound-rtp"||Z.type==="remote-outbound-rtp"){if(Y)G.push(Z)}else G.push(Z)}if(Y){let J=X.getCodecStats();if(J)G.push(...J)}}return G}close(){for(let W of this.transceivers)W.receiver.stop(),W.sender.stop();this.onTransceiverAdded.allUnsubscribe(),this.onRemoteTransceiverAdded.allUnsubscribe(),this.onTrack.allUnsubscribe(),this.onNegotiationNeeded.allUnsubscribe()}};class HO extends qx{toJSON(){return{}}createDataChannel(...W){let G=super.createDataChannel(...W);try{G.toJSON=()=>({})}catch{}return G}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var dY={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},cr={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},lr=BigInt(0),Ax=BigInt(1),AO=BigInt(2);function dr(W){let G=dY.p,X=BigInt(3),Y=BigInt(6),J=BigInt(11),Z=BigInt(22),V=BigInt(23),U=BigInt(44),Q=BigInt(88),N=W*W*W%G,q=N*N*W%G,A=N5(q,X,G)*q%G,H=N5(A,X,G)*q%G,I=N5(H,AO,G)*N%G,w=N5(I,J,G)*I%G,O=N5(w,Z,G)*w%G,M=N5(O,U,G)*O%G,S=N5(M,Q,G)*M%G,v=N5(S,U,G)*O%G,p=N5(v,X,G)*q%G,g=N5(p,V,G)*w%G,c=N5(g,Y,G)*N%G,l=N5(c,AO,G);if(!DH.eql(DH.sqr(l),W))throw Error("Cannot find square root");return l}var DH=E5(dY.p,{sqrt:dr}),wx=TY({...dY,Fp:DH,lowS:!0,endo:cr},OY),zx={};function CH(W,...G){let X=zx[W];if(X===void 0){let Y=OY(Hq(W));X=r9(Y,Y),zx[W]=X}return OY(r9(X,...G))}var IO=(W)=>W.toBytes(!0).slice(1),oY=(()=>wx.Point)(),wO=(W)=>W%AO===lr;function zO(W){let{Fn:G,BASE:X}=oY,Y=d6(G,W),J=X.multiply(Y);return{scalar:wO(J.y)?Y:G.neg(Y),bytes:IO(J)}}function jx(W){let G=DH;if(!G.isValidNot0(W))throw Error("invalid x: Fail if x \u2265 p");let X=G.create(W*W),Y=G.create(X*W+BigInt(7)),J=G.sqrt(Y);if(!wO(J))J=G.neg(J);let Z=oY.fromAffine({x:W,y:J});return Z.assertValidity(),Z}var HU=B4;function Kx(...W){return oY.Fn.create(HU(CH("BIP0340/challenge",...W)))}function Ix(W){return zO(W).bytes}function or(W,G,X=qG(32)){let{Fn:Y}=oY,J=$8("message",W),{bytes:Z,scalar:V}=zO(G),U=$8("auxRand",X,32),Q=Y.toBytes(V^HU(CH("BIP0340/aux",U))),N=CH("BIP0340/nonce",Q,Z,J),{bytes:q,scalar:A}=zO(N),H=Kx(q,Z,J),I=new Uint8Array(64);if(I.set(q,0),I.set(Y.toBytes(Y.create(A+H*V)),32),!Ox(I,J,Z))throw Error("sign: Invalid signature produced");return I}function Ox(W,G,X){let{Fn:Y,BASE:J}=oY,Z=$8("signature",W,64),V=$8("message",G),U=$8("publicKey",X,32);try{let Q=jx(HU(U)),N=HU(Z.subarray(0,32));if(!PV(N,Ax,dY.p))return!1;let q=HU(Z.subarray(32,64));if(!PV(q,Ax,dY.n))return!1;let A=Kx(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 Dx=(()=>{let X=(J=qG(48))=>{return jq(J,dY.n)};wx.utils.randomSecretKey;function Y(J){let Z=X(J);return{secretKey:Z,publicKey:Ix(Z)}}return{keygen:Y,getPublicKey:Ix,sign:or,verify:Ox,Point:oY,utils:{randomSecretKey:X,randomPrivateKey:X,taggedHash:CH,lift_x:jx,pointToBytes:IO,numberToBytesBE:KY,bytesToNumberBE:B4,mod:Q5},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})();var Cx=(W)=>Uint8Array.from(W.match(/.{2}/g).map((G)=>parseInt(G,16))),nr=(W)=>[...W].map((G)=>G.toString(16).padStart(2,"0")).join(""),ir=async(W)=>{try{if(typeof W.pubkey!=="string"||typeof W.sig!=="string"||typeof W.id!=="string")return!1;let G=new TextEncoder().encode(JSON.stringify([0,W.pubkey,W.created_at,W.kind,W.tags,W.content])),X=new Uint8Array(await crypto.subtle.digest("SHA-256",G));if(nr(X)!==W.id)return!1;return Dx.verify(Cx(W.sig),X,Cx(W.pubkey))}catch{return!1}},rr=(W,G)=>{if(W.kinds&&!W.kinds.includes(G.kind))return!1;if(W.since&&G.created_at<W.since-60)return!1;if(W["#x"]){let X=(G.tags??[]).filter((Y)=>Y?.[0]==="x").map((Y)=>Y[1]);if(!W["#x"].some((Y)=>X.includes(Y)))return!1}return!0};function Tx({port:W=Number(process.env.PORT)||8080}={}){let G=new Map,X=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:G.size,events:X,dropped:Y})},websocket:{open(Z){G.set(Z,new Map)},close(Z){G.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"){G.get(Z)?.set(N,q),Z.send(JSON.stringify(["EOSE",N]));return}if(Q==="CLOSE"&&typeof N==="string"){G.get(Z)?.delete(N);return}if(Q==="EVENT"&&N&&typeof N==="object"){if(!await ir(N)){Y++,Z.send(JSON.stringify(["OK",N.id??"",!1,"invalid: bad signature"]));return}X++,Z.send(JSON.stringify(["OK",N.id,!0,""]));for(let[A,H]of G)for(let[I,w]of H)if(rr(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:G.size,events:X,dropped:Y}),stop:()=>J.stop(!0)}}var TH="6.15.0";function ar(W,G,X){let Y=G.split("|").map((Z)=>Z.trim());for(let Z=0;Z<Y.length;Z++)switch(G){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof W===G)return}let J=Error(`invalid value for type ${G}`);throw J.code="INVALID_ARGUMENT",J.argument=`value.${X}`,J.value=W,J}async function n7(W){let G=Object.keys(W);return(await Promise.all(G.map((Y)=>Promise.resolve(W[Y])))).reduce((Y,J,Z)=>{return Y[G[Z]]=J,Y},{})}function H8(W,G,X){for(let Y in G){let J=G[Y],Z=X?X[Y]:null;if(Z)ar(J,Z,Y);Object.defineProperty(W,Y,{enumerable:!0,value:J,writable:!1})}}function nY(W,G){if(W==null)return"null";if(G==null)G=new Set;if(typeof W==="object"){if(G.has(W))return"[Circular]";G.add(W)}if(Array.isArray(W))return"[ "+W.map((X)=>nY(X,G)).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(),G);switch(typeof W){case"boolean":case"number":case"symbol":return W.toString();case"bigint":return BigInt(W).toString();case"string":return JSON.stringify(W);case"object":{let X=Object.keys(W);return X.sort(),"{ "+X.map((Y)=>`${nY(Y,G)}: ${nY(W[Y],G)}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function MH(W,G){return W&&W.code===G}function AU(W,G,X){let Y=W;{let Z=[];if(X){if("message"in X||"code"in X||"name"in X)throw Error(`value will overwrite populated values: ${nY(X)}`);for(let V in X){if(V==="shortMessage")continue;let U=X[V];Z.push(V+"="+nY(U))}}if(Z.push(`code=${G}`),Z.push(`version=${TH}`),Z.length)W+=" ("+Z.join(", ")+")"}let J;switch(G){case"INVALID_ARGUMENT":J=TypeError(W);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":J=RangeError(W);break;default:J=Error(W)}if(H8(J,{code:G}),X)Object.assign(J,X);if(J.shortMessage==null)H8(J,{shortMessage:Y});return J}function X1(W,G,X,Y){if(!W)throw AU(G,X,Y)}function a(W,G,X,Y){X1(W,G,"INVALID_ARGUMENT",{argument:X,value:Y})}var sr=["NFD","NFC","NFKD","NFKC"].reduce((W,G)=>{try{if("test".normalize(G)!=="test")throw Error("bad");if(G==="NFD"){let X=String.fromCharCode(233).normalize("NFD"),Y=String.fromCharCode(101,769);if(X!==Y)throw Error("broken")}W.push(G)}catch(X){}return W},[]);function iY(W){X1(sr.indexOf(W)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:W}})}function d4(W,G,X){if(X==null)X="";if(W!==G){let Y=X,J="new";if(X)Y+=".",J+=" "+X;X1(!1,`private constructor; use ${Y}from* methods`,"UNSUPPORTED_OPERATION",{operation:J})}}function Rx(W,G,X){if(W instanceof Uint8Array){if(X)return new Uint8Array(W);return W}if(typeof W==="string"&&W.match(/^0x(?:[0-9a-f][0-9a-f])*$/i)){let Y=new Uint8Array((W.length-2)/2),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",G||"value",W)}function L0(W,G){return Rx(W,G,!1)}function V7(W,G){return Rx(W,G,!0)}function L9(W,G){if(typeof W!=="string"||!W.match(/^0x[0-9A-Fa-f]*$/))return!1;if(typeof G==="number"&&W.length!==2+2*G)return!1;if(G===!0&&W.length%2!==0)return!1;return!0}function i7(W){return L9(W,!0)||W instanceof Uint8Array}var Mx="0123456789abcdef";function C0(W){let G=L0(W),X="0x";for(let Y=0;Y<G.length;Y++){let J=G[Y];X+=Mx[(J&240)>>4]+Mx[J&15]}return X}function G8(W){return"0x"+W.map((G)=>C0(G).substring(2)).join("")}function o4(W){if(L9(W,!0))return(W.length-2)/2;return L0(W).length}function rY(W,G,X){let Y=L0(W);if(X!=null&&X>Y.length)X1(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:Y,length:Y.length,offset:X});return C0(Y.slice(G==null?0:G,X==null?Y.length:X))}function tr(W,G,X){let Y=L0(W);X1(G>=Y.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(Y),length:G,offset:G+1});let J=new Uint8Array(G);if(J.fill(0),X)J.set(Y,G-Y.length);else J.set(Y,0);return C0(J)}function z5(W,G){return tr(W,G,!0)}var jO=BigInt(0),FG=BigInt(1),aY=9007199254740991;function RH(W,G){let X=m1(W,"value"),Y=BigInt(a8(G,"width")),J=FG<<Y-FG;if(X<jO){X=-X,X1(X<=J,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:W});let Z=(FG<<Y)-FG;return(~X&Z)+FG}else X1(X<J,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:W});return X}function PH(W,G){let X=zU(W,"value"),Y=BigInt(a8(G,"bits"));return X&(FG<<Y)-FG}function m1(W,G){switch(typeof W){case"bigint":return W;case"number":return a(Number.isInteger(W),"underflow",G||"value",W),a(W>=-aY&&W<=aY,"overflow",G||"value",W),BigInt(W);case"string":try{if(W==="")throw Error("empty string");if(W[0]==="-"&&W[1]!=="-")return-BigInt(W.substring(1));return BigInt(W)}catch(X){a(!1,`invalid BigNumberish string: ${X.message}`,G||"value",W)}}a(!1,"invalid BigNumberish value",G||"value",W)}function zU(W,G){let X=m1(W,G);return X1(X>=jO,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:W}),X}var Px="0123456789abcdef";function sY(W){if(W instanceof Uint8Array){let G="0x0";for(let X of W)G+=Px[X>>4],G+=Px[X&15];return BigInt(G)}return m1(W)}function a8(W,G){switch(typeof W){case"bigint":return a(W>=-aY&&W<=aY,"overflow",G||"value",W),Number(W);case"number":return a(Number.isInteger(W),"underflow",G||"value",W),a(W>=-aY&&W<=aY,"overflow",G||"value",W),W;case"string":try{if(W==="")throw Error("empty string");return a8(BigInt(W),G)}catch(X){a(!1,`invalid numeric string: ${X.message}`,G||"value",W)}}a(!1,"invalid numeric value",G||"value",W)}function U7(W,G){let Y=zU(W,"value").toString(16);if(G==null){if(Y.length%2)Y="0"+Y}else{let J=a8(G,"width");X1(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 A8(W){let G=zU(W,"value");if(G===jO)return new Uint8Array([]);let X=G.toString(16);if(X.length%2)X="0"+X;let Y=new Uint8Array(X.length/2);for(let J=0;J<Y.length;J++){let Z=J*2;Y[J]=parseInt(X.substring(Z,Z+2),16)}return Y}function LH(W){let G=C0(i7(W)?W:A8(W)).substring(2);while(G.startsWith("0"))G=G.substring(1);if(G==="")G="0";return"0x"+G}var EH="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",BH=null;function er(W){if(BH==null){BH={};for(let X=0;X<EH.length;X++)BH[EH[X]]=BigInt(X)}let G=BH[W];return a(G!=null,"invalid base58 value","letter",W),G}var Wa=BigInt(0),KO=BigInt(58);function $H(W){let G=L0(W),X=sY(G),Y="";while(X)Y=EH[Number(X%KO)]+Y,X/=KO;for(let J=0;J<G.length;J++){if(G[J])break;Y=EH[0]+Y}return Y}function FH(W){let G=Wa;for(let X=0;X<W.length;X++)G*=KO,G+=er(W[X]);return G}function Ga(W,G,X,Y,J){a(!1,`invalid codepoint at offset ${G}; ${W}`,"bytes",X)}function Lx(W,G,X,Y,J){if(W==="BAD_PREFIX"||W==="UNEXPECTED_CONTINUE"){let Z=0;for(let V=G+1;V<X.length;V++){if(X[V]>>6!==2)break;Z++}return Z}if(W==="OVERRUN")return X.length-G-1;return 0}function Xa(W,G,X,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),Lx(W,G,X,Y,J)}var Bx=Object.freeze({error:Ga,ignore:Lx,replace:Xa});function U9(W,G){if(a(typeof W==="string","invalid string value","str",W),G!=null)iY(G),W=W.normalize(G);let X=[];for(let Y=0;Y<W.length;Y++){let J=W.charCodeAt(Y);if(J<128)X.push(J);else if(J<2048)X.push(J>>6|192),X.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);X.push(V>>18|240),X.push(V>>12&63|128),X.push(V>>6&63|128),X.push(V&63|128)}else X.push(J>>12|224),X.push(J>>6&63|128),X.push(J&63|128)}return new Uint8Array(X)}function Ya(W){let G=W.toString(16);while(G.length<2)G="0"+G;return"0x"+G}function Ex(W,G,X){let Y=0;for(let J=0;J<X;J++)Y=Y*256+W[G+J];return Y}function $x(W,G,X,Y){let J=[];while(X<G+1+Y){let Z=Fx(W,X);J.push(Z.result),X+=Z.consumed,X1(X<=G+1+Y,"child data too short","BUFFER_OVERRUN",{buffer:W,length:Y,offset:G})}return{consumed:1+Y,result:J}}function Fx(W,G){X1(W.length!==0,"data too short","BUFFER_OVERRUN",{buffer:W,length:0,offset:1});let X=(Y)=>{X1(Y<=W.length,"data short segment too short","BUFFER_OVERRUN",{buffer:W,length:W.length,offset:Y})};if(W[G]>=248){let Y=W[G]-247;X(G+1+Y);let J=Ex(W,G+1,Y);return X(G+1+Y+J),$x(W,G,G+1+Y,Y+J)}else if(W[G]>=192){let Y=W[G]-192;return X(G+1+Y),$x(W,G,G+1,Y)}else if(W[G]>=184){let Y=W[G]-183;X(G+1+Y);let J=Ex(W,G+1,Y);X(G+1+Y+J);let Z=C0(W.slice(G+1+Y,G+1+Y+J));return{consumed:1+Y+J,result:Z}}else if(W[G]>=128){let Y=W[G]-128;X(G+1+Y);let J=C0(W.slice(G+1,G+1+Y));return{consumed:1+Y,result:J}}return{consumed:1,result:Ya(W[G])}}function WW(W){let G=L0(W,"data"),X=Fx(G,0);return a(X.consumed===G.length,"unexpected junk after rlp payload","data",W),X.result}function Sx(W){let G=[];while(W)G.unshift(W&255),W>>=8;return G}function kx(W){if(Array.isArray(W)){let Y=[];if(W.forEach(function(Z){Y=Y.concat(kx(Z))}),Y.length<=55)return Y.unshift(192+Y.length),Y;let J=Sx(Y.length);return J.unshift(247+J.length),J.concat(Y)}let G=Array.prototype.slice.call(L0(W,"object"));if(G.length===1&&G[0]<=127)return G;else if(G.length<=55)return G.unshift(128+G.length),G;let X=Sx(G.length);return X.unshift(183+X.length),X.concat(G)}var xx="0123456789abcdef";function F5(W){let G="0x";for(let X of kx(W))G+=xx[X>>4],G+=xx[X&15];return G}function SH(W){let G=L0(W,"randomBytes");G[6]=G[6]&15|64,G[8]=G[8]&63|128;let X=C0(G);return[X.substring(2,10),X.substring(10,14),X.substring(14,18),X.substring(18,22),X.substring(22,34)].join("-")}import{createHash as OO,createHmac as _x,pbkdf2Sync as yx,randomBytes as vx}from"crypto";var gx=!1,ux=function(W,G,X){return _x(W,G).update(X).digest()},hx=ux;function GW(W,G,X){let Y=L0(G,"key"),J=L0(X,"data");return C0(hx(W,Y,J))}GW._=ux;GW.lock=function(){gx=!0};GW.register=function(W){if(gx)throw Error("computeHmac is locked");hx=W};Object.freeze(GW);function B9(W){if(!Number.isSafeInteger(W)||W<0)throw Error(`Wrong positive integer: ${W}`)}function IU(W,...G){if(!(W instanceof Uint8Array))throw Error("Expected Uint8Array");if(G.length>0&&!G.includes(W.length))throw Error(`Expected Uint8Array of length ${G}, not of length=${W.length}`)}function xH(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 n4(W,G=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(G&&W.finished)throw Error("Hash#digest() has already been called")}function kH(W,G){IU(W);let X=G.outputLen;if(W.length<X)throw Error(`digestInto() expects output buffer of length at least ${X}`)}var _H=BigInt(4294967295),bx=BigInt(32);function Aa(W,G=!1){if(G)return{h:Number(W&_H),l:Number(W>>bx&_H)};return{h:Number(W>>bx&_H)|0,l:Number(W&_H)|0}}function mx(W,G=!1){let X=new Uint32Array(W.length),Y=new Uint32Array(W.length);for(let J=0;J<W.length;J++){let{h:Z,l:V}=Aa(W[J],G);[X[J],Y[J]]=[Z,V]}return[X,Y]}var fx=(W,G,X)=>W<<X|G>>>32-X,px=(W,G,X)=>G<<X|W>>>32-X,cx=(W,G,X)=>G<<X-32|W>>>64-X,lx=(W,G,X)=>W<<X-32|G>>>64-X;import*as wU from"crypto";var yH=wU&&typeof wU==="object"&&"webcrypto"in wU?wU.webcrypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */var dx=(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),Q7=(W,G)=>W<<32-G|W>>>G,za=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!za)throw Error("Non little-endian hardware is not supported");var Ia=async()=>{};async function vH(W,G,X){let Y=Date.now();for(let J=0;J<W;J++){X(J);let Z=Date.now()-Y;if(Z>=0&&Z<G)continue;await Ia(),Y+=Z}}function wa(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=wa(W);if(!dx(W))throw Error(`expected Uint8Array, got ${typeof W}`);return W}function ox(...W){let G=new Uint8Array(W.reduce((Y,J)=>Y+J.length,0)),X=0;return W.forEach((Y)=>{if(!dx(Y))throw Error("Uint8Array expected");G.set(Y,X),X+=Y.length}),G}class SG{clone(){return this._cloneInto()}}var ja={}.toString;function gH(W,G){if(G!==void 0&&ja.call(G)!=="[object Object]")throw Error("Options should be object or undefined");return Object.assign(W,G)}function WJ(W){let G=(Y)=>W().update(r7(Y)).digest(),X=W();return G.outputLen=X.outputLen,G.blockLen=X.blockLen,G.create=()=>W(),G}function nx(W=32){if(yH&&typeof yH.getRandomValues==="function")return yH.getRandomValues(new Uint8Array(W));throw Error("crypto.getRandomValues must be defined")}var[ax,sx,tx]=[[],[],[]],Ka=BigInt(0),jU=BigInt(1),Oa=BigInt(2),Da=BigInt(7),Ca=BigInt(256),Ta=BigInt(113);for(let W=0,G=jU,X=1,Y=0;W<24;W++){[X,Y]=[Y,(2*X+3*Y)%5],ax.push(2*(5*Y+X)),sx.push((W+1)*(W+2)/2%64);let J=Ka;for(let Z=0;Z<7;Z++)if(G=(G<<jU^(G>>Da)*Ta)%Ca,G&Oa)J^=jU<<(jU<<BigInt(Z))-jU;tx.push(J)}var[Ma,Ra]=mx(tx,!0),ix=(W,G,X)=>X>32?cx(W,G,X):fx(W,G,X),rx=(W,G,X)=>X>32?lx(W,G,X):px(W,G,X);function Pa(W,G=24){let X=new Uint32Array(10);for(let Y=24-G;Y<24;Y++){for(let V=0;V<10;V++)X[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=X[Q],q=X[Q+1],A=ix(N,q,1)^X[U],H=rx(N,q,1)^X[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=sx[V],Q=ix(J,Z,U),N=rx(J,Z,U),q=ax[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++)X[U]=W[V+U];for(let U=0;U<10;U++)W[V+U]^=~X[(U+2)%10]&X[(U+4)%10]}W[0]^=Ma[Y],W[1]^=Ra[Y]}X.fill(0)}class DO extends SG{constructor(W,G,X,Y=!1,J=24){super();if(this.blockLen=W,this.suffix=G,this.outputLen=X,this.enableXOF=Y,this.rounds=J,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,B9(X),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(){Pa(this.state32,this.rounds),this.posOut=0,this.pos=0}update(W){n4(this);let{blockLen:G,state:X}=this;W=r7(W);let Y=W.length;for(let J=0;J<Y;){let Z=Math.min(G-this.pos,Y-J);for(let V=0;V<Z;V++)X[this.pos++]^=W[J++];if(this.pos===G)this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:W,suffix:G,pos:X,blockLen:Y}=this;if(W[X]^=G,(G&128)!==0&&X===Y-1)this.keccak();W[Y-1]^=128,this.keccak()}writeInto(W){n4(this,!1),IU(W),this.finish();let G=this.state,{blockLen:X}=this;for(let Y=0,J=W.length;Y<J;){if(this.posOut>=X)this.keccak();let Z=Math.min(X-this.posOut,J-Y);W.set(G.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(kH(W,this),this.finished)throw Error("digest() was already called");return this.writeInto(W),this.destroy(),W}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(W){let{blockLen:G,suffix:X,outputLen:Y,rounds:J,enableXOF:Z}=this;return W||(W=new DO(G,X,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=X,W.outputLen=Y,W.enableXOF=Z,W.destroyed=this.destroyed,W}}var La=(W,G,X)=>WJ(()=>new DO(G,W,X));var ex=La(1,136,32);var Wk=!1,Gk=function(W){return ex(W)},Xk=Gk;function V8(W){let G=L0(W,"data");return C0(Xk(G))}V8._=Gk;V8.lock=function(){Wk=!0};V8.register=function(W){if(Wk)throw TypeError("keccak256 is locked");Xk=W};Object.freeze(V8);function Ba(W,G,X,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(G,X,Y);let J=BigInt(32),Z=BigInt(4294967295),V=Number(X>>J&Z),U=Number(X&Z),Q=Y?4:0,N=Y?0:4;W.setUint32(G+Q,V,Y),W.setUint32(G+N,U,Y)}class KU extends SG{constructor(W,G,X,Y){super();this.blockLen=W,this.outputLen=G,this.padOffset=X,this.isLE=Y,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(W),this.view=eY(this.buffer)}update(W){n4(this);let{view:G,buffer:X,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(X.set(W.subarray(Z,Z+V),this.pos),this.pos+=V,Z+=V,this.pos===Y)this.process(G,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){n4(this),kH(W,this),this.finished=!0;let{buffer:G,view:X,blockLen:Y,isLE:J}=this,{pos:Z}=this;if(G[Z++]=128,this.buffer.subarray(Z).fill(0),this.padOffset>Y-Z)this.process(X,0),Z=0;for(let q=Z;q<Y;q++)G[q]=0;Ba(X,Y-8,BigInt(this.length*8),J),this.process(X,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:G}=this;this.digestInto(W);let X=W.slice(0,G);return this.destroy(),X}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:G,buffer:X,length:Y,finished:J,destroyed:Z,pos:V}=this;if(W.length=Y,W.pos=V,W.finished=J,W.destroyed=Z,Y%G)W.buffer.set(X);return W}}var Ea=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),Jk=Uint8Array.from({length:16},(W,G)=>G),$a=Jk.map((W)=>(9*W+5)%16),CO=[Jk],TO=[$a];for(let W=0;W<4;W++)for(let G of[CO,TO])G.push(G[W].map((X)=>Ea[X]));var Zk=[[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)),Fa=CO.map((W,G)=>W.map((X)=>Zk[G][X])),Sa=TO.map((W,G)=>W.map((X)=>Zk[G][X])),xa=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),ka=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),uH=(W,G)=>W<<G|W>>>32-G;function Yk(W,G,X,Y){if(W===0)return G^X^Y;else if(W===1)return G&X|~G&Y;else if(W===2)return(G|~X)^Y;else if(W===3)return G&Y|X&~Y;else return G^(X|~Y)}var hH=new Uint32Array(16);class Vk 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:G,h2:X,h3:Y,h4:J}=this;return[W,G,X,Y,J]}set(W,G,X,Y,J){this.h0=W|0,this.h1=G|0,this.h2=X|0,this.h3=Y|0,this.h4=J|0}process(W,G){for(let H=0;H<16;H++,G+=4)hH[H]=W.getUint32(G,!0);let X=this.h0|0,Y=X,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=xa[H],O=ka[H],M=CO[H],S=TO[H],v=Fa[H],p=Sa[H];for(let g=0;g<16;g++){let c=uH(X+Yk(H,J,V,Q)+hH[M[g]]+w,v[g])+q|0;X=q,q=Q,Q=uH(V,10)|0,V=J,J=c}for(let g=0;g<16;g++){let c=uH(Y+Yk(I,Z,U,N)+hH[S[g]]+O,p[g])+A|0;Y=A,A=N,N=uH(U,10)|0,U=Z,Z=c}}this.set(this.h1+V+N|0,this.h2+Q+A|0,this.h3+q+Y|0,this.h4+X+Z|0,this.h0+J+U|0)}roundClean(){hH.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}}var Uk=WJ(()=>new Vk);var Qk=!1,Nk=function(W){return Uk(W)},qk=Nk;function XW(W){let G=L0(W,"data");return C0(qk(G))}XW._=Nk;XW.lock=function(){Qk=!0};XW.register=function(W){if(Qk)throw TypeError("ripemd160 is locked");qk=W};Object.freeze(XW);var Hk=!1,Ak=function(W,G,X,Y,J){return yx(W,G,X,Y,J)},zk=Ak;function S5(W,G,X,Y,J){let Z=L0(W,"password"),V=L0(G,"salt");return C0(zk(Z,V,X,Y,J))}S5._=Ak;S5.lock=function(){Hk=!0};S5.register=function(W){if(Hk)throw Error("pbkdf2 is locked");zk=W};Object.freeze(S5);var Ik=!1,wk=function(W){return new Uint8Array(vx(W))},jk=wk;function x5(W){return jk(W)}x5._=wk;x5.lock=function(){Ik=!0};x5.register=function(W){if(Ik)throw Error("randomBytes is locked");jk=W};Object.freeze(x5);var _a=(W,G,X)=>W&G^~W&X,ya=(W,G,X)=>W&G^W&X^G&X,va=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),YW=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),JW=new Uint32Array(64);class Kk extends KU{constructor(){super(64,32,8,!1);this.A=YW[0]|0,this.B=YW[1]|0,this.C=YW[2]|0,this.D=YW[3]|0,this.E=YW[4]|0,this.F=YW[5]|0,this.G=YW[6]|0,this.H=YW[7]|0}get(){let{A:W,B:G,C:X,D:Y,E:J,F:Z,G:V,H:U}=this;return[W,G,X,Y,J,Z,V,U]}set(W,G,X,Y,J,Z,V,U){this.A=W|0,this.B=G|0,this.C=X|0,this.D=Y|0,this.E=J|0,this.F=Z|0,this.G=V|0,this.H=U|0}process(W,G){for(let q=0;q<16;q++,G+=4)JW[q]=W.getUint32(G,!1);for(let q=16;q<64;q++){let A=JW[q-15],H=JW[q-2],I=Q7(A,7)^Q7(A,18)^A>>>3,w=Q7(H,17)^Q7(H,19)^H>>>10;JW[q]=w+JW[q-7]+I+JW[q-16]|0}let{A:X,B:Y,C:J,D:Z,E:V,F:U,G:Q,H:N}=this;for(let q=0;q<64;q++){let A=Q7(V,6)^Q7(V,11)^Q7(V,25),H=N+A+_a(V,U,Q)+va[q]+JW[q]|0,w=(Q7(X,2)^Q7(X,13)^Q7(X,22))+ya(X,Y,J)|0;N=Q,Q=U,U=V,V=Z+H|0,Z=J,J=Y,Y=X,X=H+w|0}X=X+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(X,Y,J,Z,V,U,Q,N)}roundClean(){JW.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}var OU=WJ(()=>new Kk);class MO extends SG{constructor(W,G){super();this.finished=!1,this.destroyed=!1,xH(W);let X=r7(G);if(this.iHash=W.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let Y=this.blockLen,J=new Uint8Array(Y);J.set(X.length>Y?W.create().update(X).digest():X);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 n4(this),this.iHash.update(W),this}digestInto(W){n4(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:G,iHash:X,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=G._cloneInto(W.oHash),W.iHash=X._cloneInto(W.iHash),W}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var DU=(W,G,X)=>new MO(W,G).update(X).digest();DU.create=(W,G)=>new MO(W,G);function ga(W,G,X,Y){xH(W);let J=gH({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(G),N=r7(X),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 ua(W,G,X,Y,J){if(W.destroy(),G.destroy(),Y)Y.destroy();return J.fill(0),X}function RO(W,G,X,Y){let{c:J,dkLen:Z,DK:V,PRF:U,PRFSalt:Q}=ga(W,G,X,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 M=1;M<J;M++){U._cloneInto(N).update(H).digestInto(H);for(let S=0;S<O.length;S++)O[S]^=H[S]}}return ua(U,Q,V,N,H)}var a1=(W,G)=>W<<G|W>>>32-G;function Ok(W,G,X,Y,J,Z){let V=W[G++]^X[Y++],U=W[G++]^X[Y++],Q=W[G++]^X[Y++],N=W[G++]^X[Y++],q=W[G++]^X[Y++],A=W[G++]^X[Y++],H=W[G++]^X[Y++],I=W[G++]^X[Y++],w=W[G++]^X[Y++],O=W[G++]^X[Y++],M=W[G++]^X[Y++],S=W[G++]^X[Y++],v=W[G++]^X[Y++],p=W[G++]^X[Y++],g=W[G++]^X[Y++],c=W[G++]^X[Y++],l=V,h=U,e=Q,m=N,G0=q,H0=A,k=H,i=I,L=w,B=O,b=M,s=S,o=v,E=p,$=g,_=c;for(let x=0;x<8;x+=2)G0^=a1(l+o|0,7),L^=a1(G0+l|0,9),o^=a1(L+G0|0,13),l^=a1(o+L|0,18),B^=a1(H0+h|0,7),E^=a1(B+H0|0,9),h^=a1(E+B|0,13),H0^=a1(h+E|0,18),$^=a1(b+k|0,7),e^=a1($+b|0,9),k^=a1(e+$|0,13),b^=a1(k+e|0,18),m^=a1(_+s|0,7),i^=a1(m+_|0,9),s^=a1(i+m|0,13),_^=a1(s+i|0,18),h^=a1(l+m|0,7),e^=a1(h+l|0,9),m^=a1(e+h|0,13),l^=a1(m+e|0,18),k^=a1(H0+G0|0,7),i^=a1(k+H0|0,9),G0^=a1(i+k|0,13),H0^=a1(G0+i|0,18),s^=a1(b+B|0,7),L^=a1(s+b|0,9),B^=a1(L+s|0,13),b^=a1(B+L|0,18),o^=a1(_+$|0,7),E^=a1(o+_|0,9),$^=a1(E+o|0,13),_^=a1($+E|0,18);J[Z++]=V+l|0,J[Z++]=U+h|0,J[Z++]=Q+e|0,J[Z++]=N+m|0,J[Z++]=q+G0|0,J[Z++]=A+H0|0,J[Z++]=H+k|0,J[Z++]=I+i|0,J[Z++]=w+L|0,J[Z++]=O+B|0,J[Z++]=M+b|0,J[Z++]=S+s|0,J[Z++]=v+o|0,J[Z++]=p+E|0,J[Z++]=g+$|0,J[Z++]=c+_|0}function GJ(W,G,X,Y,J){let Z=Y+0,V=Y+16*J;for(let U=0;U<16;U++)X[V+U]=W[G+(2*J-1)*16+U];for(let U=0;U<J;U++,Z+=16,G+=16){if(Ok(X,V,W,G,X,Z),U>0)V+=16;Ok(X,Z,W,G+=16,X,V)}}function Dk(W,G,X){let Y=gH({dkLen:32,asyncTick:10,maxmem:1073742848},X),{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=RO(OU,W,G,{c:1,dkLen:A*V}),O=tY(w),M=tY(new Uint8Array(A*J)),S=tY(new Uint8Array(A)),v=()=>{};if(q){let p=2*J*V,g=Math.max(Math.floor(p/1e4),1),c=0;v=()=>{if(c++,q&&(!(c%g)||c===p))q(c/p)}}return{N:J,r:Z,p:V,dkLen:U,blockSize32:H,V:M,B32:O,B:w,tmp:S,blockMixCb:v,asyncTick:Q}}function Ck(W,G,X,Y,J){let Z=RO(OU,W,X,{c:1,dkLen:G});return X.fill(0),Y.fill(0),J.fill(0),Z}function Tk(W,G,X){let{N:Y,r:J,p:Z,dkLen:V,blockSize32:U,V:Q,B32:N,B:q,tmp:A,blockMixCb:H}=Dk(W,G,X);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,M=0;O<Y-1;O++)GJ(Q,M,Q,M+=U,J),H();GJ(Q,(Y-1)*U,N,w,J),H();for(let O=0;O<Y;O++){let M=N[w+U-16]%Y;for(let S=0;S<U;S++)A[S]=N[w+S]^Q[M*U+S];GJ(A,0,N,w,J),H()}}return Ck(W,V,q,Q,A)}async function Mk(W,G,X){let{N:Y,r:J,p:Z,dkLen:V,blockSize32:U,V:Q,B32:N,B:q,tmp:A,blockMixCb:H,asyncTick:I}=Dk(W,G,X);for(let w=0;w<Z;w++){let O=U*w;for(let S=0;S<U;S++)Q[S]=N[O+S];let M=0;await vH(Y-1,I,()=>{GJ(Q,M,Q,M+=U,J),H()}),GJ(Q,(Y-1)*U,N,O,J),H(),await vH(Y,I,()=>{let S=N[O+U-16]%Y;for(let v=0;v<U;v++)A[v]=N[O+v]^Q[S*U+v];GJ(A,0,N,O,J),H()})}return Ck(W,V,q,Q,A)}var Rk=!1,Pk=!1,Lk=async function(W,G,X,Y,J,Z,V){return await Mk(W,G,{N:X,r:Y,p:J,dkLen:Z,onProgress:V})},Bk=function(W,G,X,Y,J,Z){return Tk(W,G,{N:X,r:Y,p:J,dkLen:Z})},Ek=Lk,$k=Bk;async function ZW(W,G,X,Y,J,Z,V){let U=L0(W,"passwd"),Q=L0(G,"salt");return C0(await Ek(U,Q,X,Y,J,Z,V))}ZW._=Lk;ZW.lock=function(){Pk=!0};ZW.register=function(W){if(Pk)throw Error("scrypt is locked");Ek=W};Object.freeze(ZW);function VW(W,G,X,Y,J,Z){let V=L0(W,"passwd"),U=L0(G,"salt");return C0($k(V,U,X,Y,J,Z))}VW._=Bk;VW.lock=function(){Rk=!0};VW.register=function(W){if(Rk)throw Error("scryptSync is locked");$k=W};Object.freeze(VW);var Fk=function(W){return OO("sha256").update(W).digest()},Sk=function(W){return OO("sha512").update(W).digest()},xk=Fk,kk=Sk,_k=!1,yk=!1;function E9(W){let G=L0(W,"data");return C0(xk(G))}E9._=Fk;E9.lock=function(){_k=!0};E9.register=function(W){if(_k)throw Error("sha256 is locked");xk=W};Object.freeze(E9);function bH(W){let G=L0(W,"data");return C0(kk(G))}bH._=Sk;bH.lock=function(){yk=!0};bH.register=function(W){if(yk)throw Error("sha512 is locked");kk=W};Object.freeze(E9);var EO={};AA(EO,{validateObject:()=>QW,utf8ToBytes:()=>pa,numberToVarBytesBE:()=>ma,numberToHexUnpadded:()=>uk,numberToBytesLE:()=>cH,numberToBytesBE:()=>UW,hexToNumber:()=>LO,hexToBytes:()=>kG,equalBytes:()=>fa,ensureBytes:()=>I5,createHmacDrbg:()=>BO,concatBytes:()=>XJ,bytesToNumberLE:()=>pH,bytesToNumberBE:()=>i4,bytesToHex:()=>xG,bitSet:()=>da,bitMask:()=>CU,bitLen:()=>ca,bitGet:()=>la});/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var gk=BigInt(0),mH=BigInt(1),ha=BigInt(2),fH=(W)=>W instanceof Uint8Array,ba=Array.from({length:256},(W,G)=>G.toString(16).padStart(2,"0"));function xG(W){if(!fH(W))throw Error("Uint8Array expected");let G="";for(let X=0;X<W.length;X++)G+=ba[W[X]];return G}function uk(W){let G=W.toString(16);return G.length&1?`0${G}`:G}function LO(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return BigInt(W===""?"0":`0x${W}`)}function kG(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);let G=W.length;if(G%2)throw Error("padded hex string expected, got unpadded hex of length "+G);let X=new Uint8Array(G/2);for(let Y=0;Y<X.length;Y++){let 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");X[Y]=V}return X}function i4(W){return LO(xG(W))}function pH(W){if(!fH(W))throw Error("Uint8Array expected");return LO(xG(Uint8Array.from(W).reverse()))}function UW(W,G){return kG(W.toString(16).padStart(G*2,"0"))}function cH(W,G){return UW(W,G).reverse()}function ma(W){return kG(uk(W))}function I5(W,G,X){let Y;if(typeof G==="string")try{Y=kG(G)}catch(Z){throw Error(`${W} must be valid hex string, got "${G}". Cause: ${Z}`)}else if(fH(G))Y=Uint8Array.from(G);else throw Error(`${W} must be hex string or Uint8Array`);let J=Y.length;if(typeof X==="number"&&J!==X)throw Error(`${W} expected ${X} bytes, got ${J}`);return Y}function XJ(...W){let G=new Uint8Array(W.reduce((Y,J)=>Y+J.length,0)),X=0;return W.forEach((Y)=>{if(!fH(Y))throw Error("Uint8Array expected");G.set(Y,X),X+=Y.length}),G}function fa(W,G){if(W.length!==G.length)return!1;for(let X=0;X<W.length;X++)if(W[X]!==G[X])return!1;return!0}function pa(W){if(typeof W!=="string")throw Error(`utf8ToBytes expected string, got ${typeof W}`);return new Uint8Array(new TextEncoder().encode(W))}function ca(W){let G;for(G=0;W>gk;W>>=mH,G+=1);return G}function la(W,G){return W>>BigInt(G)&mH}var da=(W,G,X)=>{return W|(X?mH:gk)<<BigInt(G)},CU=(W)=>(ha<<BigInt(W-1))-mH,PO=(W)=>new Uint8Array(W),vk=(W)=>Uint8Array.from(W);function BO(W,G,X){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof G!=="number"||G<2)throw Error("qByteLen must be a number");if(typeof X!=="function")throw Error("hmacFn must be a function");let Y=PO(W),J=PO(W),Z=0,V=()=>{Y.fill(1),J.fill(0),Z=0},U=(...A)=>X(J,Y,...A),Q=(A=PO())=>{if(J=U(vk([0]),A),Y=U(),A.length===0)return;J=U(vk([1]),A),Y=U()},N=()=>{if(Z++>=1000)throw Error("drbg: tried 1000 values");let A=0,H=[];while(A<G){Y=U();let I=Y.slice();H.push(I),A+=Y.length}return XJ(...H)};return(A,H)=>{V(),Q(A);let I=void 0;while(!(I=H(N())))Q();return V(),I}}var oa={bigint:(W)=>typeof W==="bigint",function:(W)=>typeof W==="function",boolean:(W)=>typeof W==="boolean",string:(W)=>typeof W==="string",stringOrUint8Array:(W)=>typeof W==="string"||W instanceof Uint8Array,isSafeInteger:(W)=>Number.isSafeInteger(W),array:(W)=>Array.isArray(W),field:(W,G)=>G.Fp.isValid(W),hash:(W)=>typeof W==="function"&&Number.isSafeInteger(W.outputLen)};function QW(W,G,X={}){let Y=(J,Z,V)=>{let U=oa[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(G))Y(J,Z,!1);for(let[J,Z]of Object.entries(X))Y(J,Z,!0);return W}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var o8=BigInt(0),S8=BigInt(1),_G=BigInt(2),na=BigInt(3),$O=BigInt(4),hk=BigInt(5),bk=BigInt(8),ia=BigInt(9),ra=BigInt(16);function $9(W,G){let X=W%G;return X>=o8?X:G+X}function aa(W,G,X){if(X<=o8||G<o8)throw Error("Expected power/modulo > 0");if(X===S8)return o8;let Y=S8;while(G>o8){if(G&S8)Y=Y*W%X;W=W*W%X,G>>=S8}return Y}function w5(W,G,X){let Y=W;while(G-- >o8)Y*=Y,Y%=X;return Y}function lH(W,G){if(W===o8||G<=o8)throw Error(`invert: expected positive integers, got n=${W} mod=${G}`);let X=$9(W,G),Y=G,J=o8,Z=S8,V=S8,U=o8;while(X!==o8){let N=Y/X,q=Y%X,A=J-V*N,H=Z-U*N;Y=X,X=q,J=V,Z=U,V=A,U=H}if(Y!==S8)throw Error("invert: does not exist");return $9(J,G)}function sa(W){let G=(W-S8)/_G,X,Y,J;for(X=W-S8,Y=0;X%_G===o8;X/=_G,Y++);for(J=_G;J<W&&aa(J,G,W)!==W-S8;J++);if(Y===1){let V=(W+S8)/$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=(X+S8)/_G;return function(U,Q){if(U.pow(Q,G)===U.neg(U.ONE))throw Error("Cannot find square root");let N=Y,q=U.pow(U.mul(U.ONE,J),X),A=U.pow(Q,Z),H=U.pow(Q,X);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,S8<<BigInt(N-I-1));q=U.sqr(w),A=U.mul(A,w),H=U.mul(H,q),N=I}return A}}function ta(W){if(W%$O===na){let G=(W+S8)/$O;return function(Y,J){let Z=Y.pow(J,G);if(!Y.eql(Y.sqr(Z),J))throw Error("Cannot find square root");return Z}}if(W%bk===hk){let G=(W-hk)/bk;return function(Y,J){let Z=Y.mul(J,_G),V=Y.pow(Z,G),U=Y.mul(J,V),Q=Y.mul(Y.mul(U,_G),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%ra===ia);return sa(W)}var ea=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function FO(W){let G={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},X=ea.reduce((Y,J)=>{return Y[J]="function",Y},G);return QW(W,X)}function Ws(W,G,X){if(X<o8)throw Error("Expected power > 0");if(X===o8)return W.ONE;if(X===S8)return G;let Y=W.ONE,J=G;while(X>o8){if(X&S8)Y=W.mul(Y,J);J=W.sqr(J),X>>=S8}return Y}function Gs(W,G){let X=Array(G.length),Y=G.reduce((Z,V,U)=>{if(W.is0(V))return Z;return X[U]=Z,W.mul(Z,V)},W.ONE),J=W.inv(Y);return G.reduceRight((Z,V,U)=>{if(W.is0(V))return Z;return X[U]=W.mul(Z,X[U]),W.mul(Z,V)},J),X}function SO(W,G){let X=G!==void 0?G:W.toString(2).length,Y=Math.ceil(X/8);return{nBitLength:X,nByteLength:Y}}function mk(W,G,X=!1,Y={}){if(W<=o8)throw Error(`Expected Field ORDER > 0, got ${W}`);let{nBitLength:J,nByteLength:Z}=SO(W,G);if(Z>2048)throw Error("Field lengths over 2048 bytes are not supported");let V=ta(W),U=Object.freeze({ORDER:W,BITS:J,BYTES:Z,MASK:CU(J),ZERO:o8,ONE:S8,create:(Q)=>$9(Q,W),isValid:(Q)=>{if(typeof Q!=="bigint")throw Error(`Invalid field element: expected bigint, got ${typeof Q}`);return o8<=Q&&Q<W},is0:(Q)=>Q===o8,isOdd:(Q)=>(Q&S8)===S8,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)=>Ws(U,Q,N),div:(Q,N)=>$9(Q*lH(N,W),W),sqrN:(Q)=>Q*Q,addN:(Q,N)=>Q+N,subN:(Q,N)=>Q-N,mulN:(Q,N)=>Q*N,inv:(Q)=>lH(Q,W),sqrt:Y.sqrt||((Q)=>V(U,Q)),invertBatch:(Q)=>Gs(U,Q),cmov:(Q,N,q)=>q?N:Q,toBytes:(Q)=>X?cH(Q,Z):UW(Q,Z),fromBytes:(Q)=>{if(Q.length!==Z)throw Error(`Fp.fromBytes: expected ${Z}, got ${Q.length}`);return X?pH(Q):i4(Q)}});return Object.freeze(U)}function fk(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let G=W.toString(2).length;return Math.ceil(G/8)}function xO(W){let G=fk(W);return G+Math.ceil(G/2)}function pk(W,G,X=!1){let Y=W.length,J=fk(G),Z=xO(G);if(Y<16||Y<Z||Y>1024)throw Error(`expected ${Z}-1024 bytes of input, got ${Y}`);let V=X?i4(W):pH(W),U=$9(V,G-S8)+S8;return X?cH(U,J):UW(U,J)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Ys=BigInt(0),kO=BigInt(1);function ck(W,G){let X=(J,Z)=>{let V=Z.negate();return J?V:Z},Y=(J)=>{let Z=Math.ceil(G/J)+1,V=2**(J-1);return{windows:Z,windowSize:V}};return{constTimeNegate:X,unsafeLadder(J,Z){let V=W.ZERO,U=J;while(Z>Ys){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,M=Number(V&A);if(V>>=I,M>Q)M-=H,V+=kO;let S=O,v=O+Math.abs(M)-1,p=w%2!==0,g=M<0;if(M===0)q=q.add(X(p,Z[S]));else N=N.add(X(g,Z[v]))}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),QW(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 Js(W){let G=_O(W);QW(G,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:X,Fp:Y,a:J}=G;if(X){if(!Y.eql(J,Y.ZERO))throw Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof X!=="object"||typeof X.beta!=="bigint"||typeof X.splitScalar!=="function")throw Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...G})}var{bytesToNumberBE:Zs,hexToBytes:Vs}=EO,yG={Err:class extends Error{constructor(G=""){super(G)}},_parseInt(W){let{Err:G}=yG;if(W.length<2||W[0]!==2)throw new G("Invalid signature integer tag");let X=W[1],Y=W.subarray(2,X+2);if(!X||Y.length!==X)throw new G("Invalid signature integer: wrong length");if(Y[0]&128)throw new G("Invalid signature integer: negative");if(Y[0]===0&&!(Y[1]&128))throw new G("Invalid signature integer: unnecessary leading zero");return{d:Zs(Y),l:W.subarray(X+2)}},toSig(W){let{Err:G}=yG,X=typeof W==="string"?Vs(W):W;if(!(X instanceof Uint8Array))throw Error("ui8a expected");let Y=X.length;if(Y<2||X[0]!=48)throw new G("Invalid signature tag");if(X[1]!==Y-2)throw new G("Invalid signature: incorrect length");let{d:J,l:Z}=yG._parseInt(X.subarray(2)),{d:V,l:U}=yG._parseInt(Z);if(U.length)throw new G("Invalid signature: left bytes after parsing");return{r:J,s:V}},hexFromSig(W){let G=(N)=>Number.parseInt(N[0],16)&8?"00"+N:N,X=(N)=>{let q=N.toString(16);return q.length&1?`0${q}`:q},Y=G(X(W.s)),J=G(X(W.r)),Z=Y.length/2,V=J.length/2,U=X(Z),Q=X(V);return`30${X(V+Z+4)}02${Q}${J}02${U}${Y}`}},r4=BigInt(0),k5=BigInt(1),Hj0=BigInt(2),lk=BigInt(3),Aj0=BigInt(4);function Us(W){let G=Js(W),{Fp:X}=G,Y=G.toBytes||((w,O,M)=>{let S=O.toAffine();return XJ(Uint8Array.from([4]),X.toBytes(S.x),X.toBytes(S.y))}),J=G.fromBytes||((w)=>{let O=w.subarray(1),M=X.fromBytes(O.subarray(0,X.BYTES)),S=X.fromBytes(O.subarray(X.BYTES,2*X.BYTES));return{x:M,y:S}});function Z(w){let{a:O,b:M}=G,S=X.sqr(w),v=X.mul(S,w);return X.add(X.add(v,X.mul(w,O)),M)}if(!X.eql(X.sqr(G.Gy),Z(G.Gx)))throw Error("bad generator point: equation left != right");function V(w){return typeof w==="bigint"&&r4<w&&w<G.n}function U(w){if(!V(w))throw Error("Expected valid bigint: 0 < bigint < curve.n")}function Q(w){let{allowedPrivateKeyLengths:O,nByteLength:M,wrapPrivateKey:S,n:v}=G;if(O&&typeof w!=="bigint"){if(w instanceof Uint8Array)w=xG(w);if(typeof w!=="string"||!O.includes(w.length))throw Error("Invalid key");w=w.padStart(M*2,"0")}let p;try{p=typeof w==="bigint"?w:i4(I5("private key",w,M))}catch(g){throw Error(`private key must be ${M} bytes, hex or bigint, not ${typeof w}`)}if(S)p=$9(p,v);return U(p),p}let N=new Map;function q(w){if(!(w instanceof A))throw Error("ProjectivePoint expected")}class A{constructor(w,O,M){if(this.px=w,this.py=O,this.pz=M,w==null||!X.isValid(w))throw Error("x required");if(O==null||!X.isValid(O))throw Error("y required");if(M==null||!X.isValid(M))throw Error("z required")}static fromAffine(w){let{x:O,y:M}=w||{};if(!w||!X.isValid(O)||!X.isValid(M))throw Error("invalid affine point");if(w instanceof A)throw Error("projective point not allowed");let S=(v)=>X.eql(v,X.ZERO);if(S(O)&&S(M))return A.ZERO;return new A(O,M,X.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(w){let O=X.invertBatch(w.map((M)=>M.pz));return w.map((M,S)=>M.toAffine(O[S])).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(G.allowInfinityPoint&&!X.is0(this.py))return;throw Error("bad point: ZERO")}let{x:w,y:O}=this.toAffine();if(!X.isValid(w)||!X.isValid(O))throw Error("bad point: x or y not FE");let M=X.sqr(O),S=Z(w);if(!X.eql(M,S))throw Error("bad point: equation left != right");if(!this.isTorsionFree())throw Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:w}=this.toAffine();if(X.isOdd)return!X.isOdd(w);throw Error("Field doesn't support isOdd")}equals(w){q(w);let{px:O,py:M,pz:S}=this,{px:v,py:p,pz:g}=w,c=X.eql(X.mul(O,g),X.mul(v,S)),l=X.eql(X.mul(M,g),X.mul(p,S));return c&&l}negate(){return new A(this.px,X.neg(this.py),this.pz)}double(){let{a:w,b:O}=G,M=X.mul(O,lk),{px:S,py:v,pz:p}=this,g=X.ZERO,c=X.ZERO,l=X.ZERO,h=X.mul(S,S),e=X.mul(v,v),m=X.mul(p,p),G0=X.mul(S,v);return G0=X.add(G0,G0),l=X.mul(S,p),l=X.add(l,l),g=X.mul(w,l),c=X.mul(M,m),c=X.add(g,c),g=X.sub(e,c),c=X.add(e,c),c=X.mul(g,c),g=X.mul(G0,g),l=X.mul(M,l),m=X.mul(w,m),G0=X.sub(h,m),G0=X.mul(w,G0),G0=X.add(G0,l),l=X.add(h,h),h=X.add(l,h),h=X.add(h,m),h=X.mul(h,G0),c=X.add(c,h),m=X.mul(v,p),m=X.add(m,m),h=X.mul(m,G0),g=X.sub(g,h),l=X.mul(m,e),l=X.add(l,l),l=X.add(l,l),new A(g,c,l)}add(w){q(w);let{px:O,py:M,pz:S}=this,{px:v,py:p,pz:g}=w,c=X.ZERO,l=X.ZERO,h=X.ZERO,e=G.a,m=X.mul(G.b,lk),G0=X.mul(O,v),H0=X.mul(M,p),k=X.mul(S,g),i=X.add(O,M),L=X.add(v,p);i=X.mul(i,L),L=X.add(G0,H0),i=X.sub(i,L),L=X.add(O,S);let B=X.add(v,g);return L=X.mul(L,B),B=X.add(G0,k),L=X.sub(L,B),B=X.add(M,S),c=X.add(p,g),B=X.mul(B,c),c=X.add(H0,k),B=X.sub(B,c),h=X.mul(e,L),c=X.mul(m,k),h=X.add(c,h),c=X.sub(H0,h),h=X.add(H0,h),l=X.mul(c,h),H0=X.add(G0,G0),H0=X.add(H0,G0),k=X.mul(e,k),L=X.mul(m,L),H0=X.add(H0,k),k=X.sub(G0,k),k=X.mul(e,k),L=X.add(L,k),G0=X.mul(H0,L),l=X.add(l,G0),G0=X.mul(B,L),c=X.mul(i,c),c=X.sub(c,G0),G0=X.mul(i,H0),h=X.mul(B,h),h=X.add(h,G0),new A(c,l,h)}subtract(w){return this.add(w.negate())}is0(){return this.equals(A.ZERO)}wNAF(w){return I.wNAFCached(this,N,w,(O)=>{let M=X.invertBatch(O.map((S)=>S.pz));return O.map((S,v)=>S.toAffine(M[v])).map(A.fromAffine)})}multiplyUnsafe(w){let O=A.ZERO;if(w===r4)return O;if(U(w),w===k5)return this;let{endo:M}=G;if(!M)return I.unsafeLadder(this,w);let{k1neg:S,k1:v,k2neg:p,k2:g}=M.splitScalar(w),c=O,l=O,h=this;while(v>r4||g>r4){if(v&k5)c=c.add(h);if(g&k5)l=l.add(h);h=h.double(),v>>=k5,g>>=k5}if(S)c=c.negate();if(p)l=l.negate();return l=new A(X.mul(l.px,M.beta),l.py,l.pz),c.add(l)}multiply(w){U(w);let O=w,M,S,{endo:v}=G;if(v){let{k1neg:p,k1:g,k2neg:c,k2:l}=v.splitScalar(O),{p:h,f:e}=this.wNAF(g),{p:m,f:G0}=this.wNAF(l);h=I.constTimeNegate(p,h),m=I.constTimeNegate(c,m),m=new A(X.mul(m.px,v.beta),m.py,m.pz),M=h.add(m),S=e.add(G0)}else{let{p,f:g}=this.wNAF(O);M=p,S=g}return A.normalizeZ([M,S])[0]}multiplyAndAddUnsafe(w,O,M){let S=A.BASE,v=(g,c)=>c===r4||c===k5||!g.equals(S)?g.multiplyUnsafe(c):g.multiply(c),p=v(this,O).add(v(w,M));return p.is0()?void 0:p}toAffine(w){let{px:O,py:M,pz:S}=this,v=this.is0();if(w==null)w=v?X.ONE:X.inv(S);let p=X.mul(O,w),g=X.mul(M,w),c=X.mul(S,w);if(v)return{x:X.ZERO,y:X.ZERO};if(!X.eql(c,X.ONE))throw Error("invZ was invalid");return{x:p,y:g}}isTorsionFree(){let{h:w,isTorsionFree:O}=G;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}=G;if(w===k5)return this;if(O)return O(A,this);return this.multiplyUnsafe(G.h)}toRawBytes(w=!0){return this.assertValidity(),Y(A,this,w)}toHex(w=!0){return xG(this.toRawBytes(w))}}A.BASE=new A(G.Gx,G.Gy,X.ONE),A.ZERO=new A(X.ZERO,X.ONE,X.ZERO);let H=G.nBitLength,I=ck(A,G.endo?Math.ceil(H/2):H);return{CURVE:G,ProjectivePoint:A,normPrivateKeyToScalar:Q,weierstrassEquation:Z,isWithinCurveOrder:V}}function Qs(W){let G=_O(W);return QW(G,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...G})}function dk(W){let G=Qs(W),{Fp:X,n:Y}=G,J=X.BYTES+1,Z=2*X.BYTES+1;function V(B){return r4<B&&B<X.ORDER}function U(B){return $9(B,Y)}function Q(B){return lH(B,Y)}let{ProjectivePoint:N,normPrivateKeyToScalar:q,weierstrassEquation:A,isWithinCurveOrder:H}=Us({...G,toBytes(B,b,s){let o=b.toAffine(),E=X.toBytes(o.x),$=XJ;if(s)return $(Uint8Array.from([b.hasEvenY()?2:3]),E);else return $(Uint8Array.from([4]),E,X.toBytes(o.y))},fromBytes(B){let b=B.length,s=B[0],o=B.subarray(1);if(b===J&&(s===2||s===3)){let E=i4(o);if(!V(E))throw Error("Point is not on curve");let $=A(E),_=X.sqrt($),x=(_&k5)===k5;if((s&1)===1!==x)_=X.neg(_);return{x:E,y:_}}else if(b===Z&&s===4){let E=X.fromBytes(o.subarray(0,X.BYTES)),$=X.fromBytes(o.subarray(X.BYTES,2*X.BYTES));return{x:E,y:$}}else throw Error(`Point of length ${b} was invalid. Expected ${J} compressed bytes or ${Z} uncompressed bytes`)}}),I=(B)=>xG(UW(B,G.nByteLength));function w(B){let b=Y>>k5;return B>b}function O(B){return w(B)?U(-B):B}let M=(B,b,s)=>i4(B.slice(b,s));class S{constructor(B,b,s){this.r=B,this.s=b,this.recovery=s,this.assertValidity()}static fromCompact(B){let b=G.nByteLength;return B=I5("compactSignature",B,b*2),new S(M(B,0,b),M(B,b,2*b))}static fromDER(B){let{r:b,s}=yG.toSig(I5("DER",B));return new S(b,s)}assertValidity(){if(!H(this.r))throw Error("r must be 0 < r < CURVE.n");if(!H(this.s))throw Error("s must be 0 < s < CURVE.n")}addRecoveryBit(B){return new S(this.r,this.s,B)}recoverPublicKey(B){let{r:b,s,recovery:o}=this,E=h(I5("msgHash",B));if(o==null||![0,1,2,3].includes(o))throw Error("recovery id invalid");let $=o===2||o===3?b+G.n:b;if($>=X.ORDER)throw Error("recovery id 2 or 3 invalid");let _=(o&1)===0?"02":"03",x=N.fromHex(_+I($)),R=Q($),u=U(-E*R),J0=U(s*R),V0=N.BASE.multiplyAndAddUnsafe(x,u,J0);if(!V0)throw Error("point at infinify");return V0.assertValidity(),V0}hasHighS(){return w(this.s)}normalizeS(){return this.hasHighS()?new S(this.r,U(-this.s),this.recovery):this}toDERRawBytes(){return kG(this.toDERHex())}toDERHex(){return yG.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return kG(this.toCompactHex())}toCompactHex(){return I(this.r)+I(this.s)}}let v={isValidPrivateKey(B){try{return q(B),!0}catch(b){return!1}},normPrivateKeyToScalar:q,randomPrivateKey:()=>{let B=xO(G.n);return pk(G.randomBytes(B),G.n)},precompute(B=8,b=N.BASE){return b._setWindowSize(B),b.multiply(BigInt(3)),b}};function p(B,b=!0){return N.fromPrivateKey(B).toRawBytes(b)}function g(B){let b=B instanceof Uint8Array,s=typeof B==="string",o=(b||s)&&B.length;if(b)return o===J||o===Z;if(s)return o===2*J||o===2*Z;if(B instanceof N)return!0;return!1}function c(B,b,s=!0){if(g(B))throw Error("first arg must be private key");if(!g(b))throw Error("second arg must be public key");return N.fromHex(b).multiply(q(B)).toRawBytes(s)}let l=G.bits2int||function(B){let b=i4(B),s=B.length*8-G.nBitLength;return s>0?b>>BigInt(s):b},h=G.bits2int_modN||function(B){return U(l(B))},e=CU(G.nBitLength);function m(B){if(typeof B!=="bigint")throw Error("bigint expected");if(!(r4<=B&&B<e))throw Error(`bigint expected < 2^${G.nBitLength}`);return UW(B,G.nByteLength)}function G0(B,b,s=H0){if(["recovered","canonical"].some((v0)=>(v0 in s)))throw Error("sign() legacy options not supported");let{hash:o,randomBytes:E}=G,{lowS:$,prehash:_,extraEntropy:x}=s;if($==null)$=!0;if(B=I5("msgHash",B),_)B=I5("prehashed msgHash",o(B));let R=h(B),u=q(b),J0=[m(u),m(R)];if(x!=null){let v0=x===!0?E(X.BYTES):x;J0.push(I5("extraEntropy",v0))}let V0=XJ(...J0),Q0=R;function B0(v0){let N1=l(v0);if(!H(N1))return;let u1=Q(N1),k0=N.BASE.multiply(N1).toAffine(),h1=U(k0.x);if(h1===r4)return;let R1=U(u1*U(Q0+h1*u));if(R1===r4)return;let f=(k0.x===h1?0:2)|Number(k0.y&k5),X0=R1;if($&&w(R1))X0=O(R1),f^=1;return new S(h1,X0,f)}return{seed:V0,k2sig:B0}}let H0={lowS:G.lowS,prehash:!1},k={lowS:G.lowS,prehash:!1};function i(B,b,s=H0){let{seed:o,k2sig:E}=G0(B,b,s),$=G;return BO($.hash.outputLen,$.nByteLength,$.hmac)(o,E)}N.BASE._setWindowSize(8);function L(B,b,s,o=k){let E=B;if(b=I5("msgHash",b),s=I5("publicKey",s),"strict"in o)throw Error("options.strict was renamed to lowS");let{lowS:$,prehash:_}=o,x=void 0,R;try{if(typeof E==="string"||E instanceof Uint8Array)try{x=S.fromDER(E)}catch(k0){if(!(k0 instanceof yG.Err))throw k0;x=S.fromCompact(E)}else if(typeof E==="object"&&typeof E.r==="bigint"&&typeof E.s==="bigint"){let{r:k0,s:h1}=E;x=new S(k0,h1)}else throw Error("PARSE");R=N.fromHex(s)}catch(k0){if(k0.message==="PARSE")throw Error("signature must be Signature instance, Uint8Array or hex string");return!1}if($&&x.hasHighS())return!1;if(_)b=G.hash(b);let{r:u,s:J0}=x,V0=h(b),Q0=Q(J0),B0=U(V0*Q0),v0=U(u*Q0),N1=N.BASE.multiplyAndAddUnsafe(R,B0,v0)?.toAffine();if(!N1)return!1;return U(N1.x)===u}return{CURVE:G,getPublicKey:p,getSharedSecret:c,sign:i,verify:L,ProjectivePoint:N,Signature:S,utils:v}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Ns(W){return{hash:W,hmac:(G,...X)=>DU(W,G,ox(...X)),randomBytes:nx}}function ok(W,G){let X=(Y)=>dk({...W,...Ns(Y)});return Object.freeze({...X(G),create:X})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var rk=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),nk=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),qs=BigInt(1),yO=BigInt(2),ik=(W,G)=>(W+G/yO)/G;function Hs(W){let G=rk,X=BigInt(3),Y=BigInt(6),J=BigInt(11),Z=BigInt(22),V=BigInt(23),U=BigInt(44),Q=BigInt(88),N=W*W*W%G,q=N*N*W%G,A=w5(q,X,G)*q%G,H=w5(A,X,G)*q%G,I=w5(H,yO,G)*N%G,w=w5(I,J,G)*I%G,O=w5(w,Z,G)*w%G,M=w5(O,U,G)*O%G,S=w5(M,Q,G)*M%G,v=w5(S,U,G)*O%G,p=w5(v,X,G)*q%G,g=w5(p,V,G)*w%G,c=w5(g,Y,G)*N%G,l=w5(c,yO,G);if(!vO.eql(vO.sqr(l),W))throw Error("Cannot find square root");return l}var vO=mk(rk,void 0,void 0,{sqrt:Hs}),a4=ok({a:BigInt(0),b:BigInt(7),Fp:vO,n:nk,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:(W)=>{let G=nk,X=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),Y=-qs*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),J=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),Z=X,V=BigInt("0x100000000000000000000000000000000"),U=ik(Z*W,G),Q=ik(-Y*W,G),N=$9(W-U*X-Q*J,G),q=$9(-U*Y-Q*Z,G),A=N>V,H=q>V;if(A)N=G-N;if(H)q=G-q;if(N>V||q>V)throw Error("splitScalar: Endomorphism failed, k="+W);return{k1neg:A,k1:N,k2neg:H,k2:q}}}},OU),Tj0=BigInt(0);var Mj0=a4.ProjectivePoint;var gO="0x0000000000000000000000000000000000000000";var dH="0x0000000000000000000000000000000000000000000000000000000000000000";var uO=`\x19Ethereum Signed Message:
249
+ `;var ak=BigInt(0),sk=BigInt(1),tk=BigInt(2),ek=BigInt(27),W_=BigInt(28),oH=BigInt(35),YJ={};function G_(W){return z5(A8(W),32)}class C8{#W;#G;#X;#Y;get r(){return this.#W}set r(W){a(o4(W)===32,"invalid r","value",W),this.#W=C0(W)}get s(){return a(parseInt(this.#G.substring(0,3))<8,"non-canonical s; use ._s","s",this.#G),this.#G}set s(W){a(o4(W)===32,"invalid s","value",W),this.#G=C0(W)}get _s(){return this.#G}isValid(){return parseInt(this.#G.substring(0,3))<8}get v(){return this.#X}set v(W){let G=a8(W,"value");a(G===27||G===28,"invalid v","v",W),this.#X=G}get networkV(){return this.#Y}get legacyChainId(){let W=this.networkV;if(W==null)return null;return C8.getChainId(W)}get yParity(){return this.v===27?0:1}get yParityAndS(){let W=L0(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,G,X,Y){d4(W,YJ,"Signature"),this.#W=G,this.#G=X,this.#X=Y,this.#Y=null}[Symbol.for("nodejs.util.inspect.custom")](){return`Signature { r: "${this.r}", s: "${this._s}"${this.isValid()?"":', valid: "false"'}, yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){let W=new C8(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 G=m1(W,"v");if(G==ek||G==W_)return ak;return a(G>=oH,"invalid EIP-155 v","v",W),(G-oH)/tk}static getChainIdV(W,G){return m1(W)*tk+BigInt(35+G-27)}static getNormalizedV(W){let G=m1(W);if(G===ak||G===ek)return 27;if(G===sk||G===W_)return 28;return a(G>=oH,"invalid v","v",W),G&sk?27:28}static from(W){function G(Q,N){a(Q,N,"signature",W)}if(W==null)return new C8(YJ,dH,dH,27);if(typeof W==="string"){let Q=L0(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 C8(YJ,N,C0(q),A)}if(Q.length===65){let N=C0(Q.slice(0,32)),q=C0(Q.slice(32,64)),A=C8.getNormalizedV(Q[64]);return new C8(YJ,N,q,A)}G(!1,"invalid raw signature length")}if(W instanceof C8)return W.clone();let X=W.r;G(X!=null,"missing r");let Y=G_(X),J=function(Q,N){if(Q!=null)return G_(Q);if(N!=null){G(L9(N,32),"invalid yParityAndS");let q=L0(N);return q[0]&=127,C0(q)}G(!1,"missing s")}(W.s,W.yParityAndS),{networkV:Z,v:V}=function(Q,N,q){if(Q!=null){let A=m1(Q);return{networkV:A>=oH?A:void 0,v:C8.getNormalizedV(A)}}if(N!=null)return G(L9(N,32),"invalid yParityAndS"),{v:L0(N)[0]&128?28:27};if(q!=null){switch(a8(q,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}G(!1,"invalid yParity")}G(!1,"missing v")}(W.v,W.yParityAndS,W.yParity),U=new C8(YJ,Y,J,V);if(Z)U.#Y=Z;return G(W.yParity==null||a8(W.yParity,"sig.yParity")===U.yParity,"yParity mismatch"),G(W.yParityAndS==null||W.yParityAndS===U.yParityAndS,"yParityAndS mismatch"),U}}class n8{#W;constructor(W){a(o4(W)===32,"invalid private key","privateKey","[REDACTED]"),this.#W=C0(W)}get privateKey(){return this.#W}get publicKey(){return n8.computePublicKey(this.#W)}get compressedPublicKey(){return n8.computePublicKey(this.#W,!0)}sign(W){a(o4(W)===32,"invalid digest length","digest",W);let G=a4.sign(V7(W),V7(this.#W),{lowS:!0});return C8.from({r:U7(G.r,32),s:U7(G.s,32),v:G.recovery?28:27})}computeSharedSecret(W){let G=n8.computePublicKey(W);return C0(a4.getSharedSecret(V7(this.#W),L0(G),!1))}static computePublicKey(W,G){let X=L0(W,"key");if(X.length===32){let J=a4.getPublicKey(X,!!G);return C0(J)}if(X.length===64){let J=new Uint8Array(65);J[0]=4,J.set(X,1),X=J}let Y=a4.ProjectivePoint.fromHex(X);return C0(Y.toRawBytes(G))}static recoverPublicKey(W,G){a(o4(W)===32,"invalid digest length","digest",W);let X=C8.from(G),Y=a4.Signature.fromCompact(V7(G8([X.r,X.s])));Y=Y.addRecoveryBit(X.yParity);let J=Y.recoverPublicKey(V7(W));return a(J!=null,"invalid signature for digest","signature",G),"0x"+J.toHex(!1)}static addPoints(W,G,X){let Y=a4.ProjectivePoint.fromHex(n8.computePublicKey(W).substring(2)),J=a4.ProjectivePoint.fromHex(n8.computePublicKey(G).substring(2));return"0x"+Y.add(J).toHex(!!X)}}var As=BigInt(0),zs=BigInt(36);function X_(W){W=W.toLowerCase();let G=W.substring(2).split(""),X=new Uint8Array(40);for(let J=0;J<40;J++)X[J]=G[J].charCodeAt(0);let Y=L0(V8(X));for(let J=0;J<40;J+=2){if(Y[J>>1]>>4>=8)G[J]=G[J].toUpperCase();if((Y[J>>1]&15)>=8)G[J+1]=G[J+1].toUpperCase()}return"0x"+G.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 Y_=15;function Is(W){W=W.toUpperCase(),W=W.substring(4)+W.substring(0,2)+"00";let G=W.split("").map((Y)=>{return hO[Y]}).join("");while(G.length>=Y_){let Y=G.substring(0,Y_);G=parseInt(Y,10)%97+G.substring(Y.length)}let X=String(98-parseInt(G,10)%97);while(X.length<2)X="0"+X;return X}var ws=function(){let W={};for(let G=0;G<36;G++){let X="0123456789abcdefghijklmnopqrstuvwxyz"[G];W[X]=BigInt(G)}return W}();function js(W){W=W.toLowerCase();let G=As;for(let X=0;X<W.length;X++)G=G*zs+ws[W[X]];return G}function f1(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 G=X_(W);return a(!W.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||G===W,"bad address checksum","address",W),G}if(W.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){a(W.substring(2,4)===Is(W),"bad icap checksum","address",W);let G=js(W.substring(4)).toString(16);while(G.length<40)G="0"+G;return X_("0x"+G)}a(!1,"invalid address","address",W)}function mO(W){return W&&typeof W.getAddress==="function"}async function bO(W,G){let X=await G;if(X==null||X==="0x0000000000000000000000000000000000000000")X1(typeof W!=="string","unconfigured name","UNCONFIGURED_NAME",{value:W}),a(!1,"invalid AddressLike value; did not resolve to a value address","target",W);return f1(X)}function s4(W,G){if(typeof W==="string"){if(W.match(/^0x[0-9a-f]{40}$/i))return f1(W);return X1(G!=null,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),bO(W,G.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,G){return{address:f1(W),storageKeys:G.map((X,Y)=>{return a(L9(X,32),"invalid slot",`storageKeys[${Y}]`,X),X.toLowerCase()})}}function vG(W){if(Array.isArray(W))return W.map((X,Y)=>{if(Array.isArray(X))return a(X.length===2,"invalid slot set",`value[${Y}]`,X),fO(X[0],X[1]);return a(X!=null&&typeof X==="object","invalid address-slot set","value",W),fO(X.address,X.storageKeys)});a(W!=null&&typeof W==="object","invalid access list","value",W);let G=Object.keys(W).map((X)=>{let Y=W[X].reduce((J,Z)=>{return J[Z]=!0,J},{});return fO(X,Object.keys(Y).sort())});return G.sort((X,Y)=>X.address.localeCompare(Y.address)),G}function J_(W){return{address:f1(W.address),nonce:m1(W.nonce!=null?W.nonce:0),chainId:m1(W.chainId!=null?W.chainId:0),signature:C8.from(W.signature)}}function t4(W){let G;if(typeof W==="string")G=n8.computePublicKey(W,!1);else G=W.publicKey;return f1(V8("0x"+G.substring(4)).substring(26))}function TU(W,G){return t4(n8.recoverPublicKey(W,G))}var s8=BigInt(0),Ds=BigInt(2),Cs=BigInt(27),Ts=BigInt(28),Ms=BigInt(35),Rs=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),pO=131072;function Ps(W){return{blobToKzgCommitment:(Y)=>{if("computeBlobProof"in W){if("blobToKzgCommitment"in W&&typeof W.blobToKzgCommitment==="function")return L0(W.blobToKzgCommitment(C0(Y)))}else if("blobToKzgCommitment"in W&&typeof W.blobToKzgCommitment==="function")return L0(W.blobToKzgCommitment(Y));if("blobToKZGCommitment"in W&&typeof W.blobToKZGCommitment==="function")return L0(W.blobToKZGCommitment(C0(Y)));a(!1,"unsupported KZG library","kzg",W)},computeBlobKzgProof:(Y,J)=>{if("computeBlobProof"in W&&typeof W.computeBlobProof==="function")return L0(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 L0(W.computeBlobKZGProof(C0(Y),C0(J)));a(!1,"unsupported KZG library","kzg",W)}}}function Z_(W,G){let X=W.toString(16);while(X.length<2)X="0"+X;return X+=E9(G).substring(4),"0x"+X}function JJ(W){if(W==="0x")return null;return f1(W)}function nH(W,G){try{return vG(W)}catch(X){a(!1,X.message,G,W)}}function Ls(W,G){try{if(!Array.isArray(W))throw Error("authorizationList: invalid array");let X=[];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`);X.push({address:JJ(J[1]),nonce:U8(J[2],"nonce"),chainId:U8(J[0],"chainId"),signature:C8.from({yParity:gG(J[3],"yParity"),r:z5(J[4],32),s:z5(J[5],32)})})}return X}catch(X){a(!1,X.message,G,W)}}function gG(W,G){if(W==="0x")return 0;return a8(W,G)}function U8(W,G){if(W==="0x")return s8;let X=m1(W,G);return a(X<=Rs,"value exceeds uint size",G,X),X}function p1(W,G){let X=m1(W,"value"),Y=A8(X);return a(Y.length<=32,"value too large",`tx.${G}`,X),Y}function iH(W){return vG(W).map((G)=>[G.address,G.storageKeys])}function Bs(W){return W.map((G)=>{return[p1(G.chainId,"chainId"),G.address,p1(G.nonce,"nonce"),p1(G.signature.yParity,"yParity"),A8(G.signature.r),A8(G.signature.s)]})}function Es(W,G){a(Array.isArray(W),`invalid ${G}`,"value",W);for(let X=0;X<W.length;X++)a(L9(W[X],32),"invalid ${ param } hash",`value[${X}]`,W[X]);return W}function $s(W){let G=WW(W);a(Array.isArray(G)&&(G.length===9||G.length===6),"invalid field count for legacy transaction","data",W);let X={type:0,nonce:gG(G[0],"nonce"),gasPrice:U8(G[1],"gasPrice"),gasLimit:U8(G[2],"gasLimit"),to:JJ(G[3]),value:U8(G[4],"value"),data:C0(G[5]),chainId:s8};if(G.length===6)return X;let Y=U8(G[6],"v"),J=U8(G[7],"r"),Z=U8(G[8],"s");if(J===s8&&Z===s8)X.chainId=Y;else{let V=(Y-Ms)/Ds;if(V<s8)V=s8;X.chainId=V,a(V!==s8||(Y===Cs||Y===Ts),"non-canonical legacy v","v",G[6]),X.signature=C8.from({r:z5(G[7],32),s:z5(G[8],32),v:Y})}return X}function Fs(W,G){let X=[p1(W.nonce,"nonce"),p1(W.gasPrice||0,"gasPrice"),p1(W.gasLimit,"gasLimit"),W.to||"0x",p1(W.value,"value"),W.data],Y=s8;if(W.chainId!=s8)Y=m1(W.chainId,"tx.chainId"),a(!G||G.networkV==null||G.legacyChainId===Y,"tx.chainId/sig.v mismatch","sig",G);else if(W.signature){let Z=W.signature.legacyChainId;if(Z!=null)Y=Z}if(!G){if(Y!==s8)X.push(A8(Y)),X.push("0x"),X.push("0x");return F5(X)}let J=BigInt(27+G.yParity);if(Y!==s8)J=C8.getChainIdV(Y,G.v);else if(BigInt(G.v)!==J)a(!1,"tx.chainId/sig.v mismatch","sig",G);return X.push(A8(J)),X.push(A8(G.r)),X.push(A8(G.s)),F5(X)}function rH(W,G){let X;try{if(X=gG(G[0],"yParity"),X!==0&&X!==1)throw Error("bad yParity")}catch(V){a(!1,"invalid yParity","yParity",G[0])}let Y=z5(G[1],32),J=z5(G[2],32),Z=C8.from({r:Y,s:J,yParity:X});W.signature=Z}function Ss(W){let G=WW(L0(W).slice(1));a(Array.isArray(G)&&(G.length===9||G.length===12),"invalid field count for transaction type: 2","data",C0(W));let X={type:2,chainId:U8(G[0],"chainId"),nonce:gG(G[1],"nonce"),maxPriorityFeePerGas:U8(G[2],"maxPriorityFeePerGas"),maxFeePerGas:U8(G[3],"maxFeePerGas"),gasPrice:null,gasLimit:U8(G[4],"gasLimit"),to:JJ(G[5]),value:U8(G[6],"value"),data:C0(G[7]),accessList:nH(G[8],"accessList")};if(G.length===9)return X;return rH(X,G.slice(9)),X}function xs(W,G){let X=[p1(W.chainId,"chainId"),p1(W.nonce,"nonce"),p1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),p1(W.maxFeePerGas||0,"maxFeePerGas"),p1(W.gasLimit,"gasLimit"),W.to||"0x",p1(W.value,"value"),W.data,iH(W.accessList||[])];if(G)X.push(p1(G.yParity,"yParity")),X.push(A8(G.r)),X.push(A8(G.s));return G8(["0x02",F5(X)])}function ks(W){let G=WW(L0(W).slice(1));a(Array.isArray(G)&&(G.length===8||G.length===11),"invalid field count for transaction type: 1","data",C0(W));let X={type:1,chainId:U8(G[0],"chainId"),nonce:gG(G[1],"nonce"),gasPrice:U8(G[2],"gasPrice"),gasLimit:U8(G[3],"gasLimit"),to:JJ(G[4]),value:U8(G[5],"value"),data:C0(G[6]),accessList:nH(G[7],"accessList")};if(G.length===8)return X;return rH(X,G.slice(8)),X}function _s(W,G){let X=[p1(W.chainId,"chainId"),p1(W.nonce,"nonce"),p1(W.gasPrice||0,"gasPrice"),p1(W.gasLimit,"gasLimit"),W.to||"0x",p1(W.value,"value"),W.data,iH(W.accessList||[])];if(G)X.push(p1(G.yParity,"recoveryParam")),X.push(A8(G.r)),X.push(A8(G.s));return G8(["0x01",F5(X)])}function ys(W){let G=WW(L0(W).slice(1)),X="3",Y=null;if(G.length===4&&Array.isArray(G[0])){X="3 (network format)";let Z=G[1],V=G[2],U=G[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",G),a(Z.length===U.length,"invalid network format: blobs/proofs length mismatch","fields",G),Y=[];for(let Q=0;Q<G[1].length;Q++)Y.push({data:Z[Q],commitment:V[Q],proof:U[Q]});G=G[0]}a(Array.isArray(G)&&(G.length===11||G.length===14),`invalid field count for transaction type: ${X}`,"data",C0(W));let J={type:3,chainId:U8(G[0],"chainId"),nonce:gG(G[1],"nonce"),maxPriorityFeePerGas:U8(G[2],"maxPriorityFeePerGas"),maxFeePerGas:U8(G[3],"maxFeePerGas"),gasPrice:null,gasLimit:U8(G[4],"gasLimit"),to:JJ(G[5]),value:U8(G[6],"value"),data:C0(G[7]),accessList:nH(G[8],"accessList"),maxFeePerBlobGas:U8(G[9],"maxFeePerBlobGas"),blobVersionedHashes:G[10]};if(Y)J.blobs=Y;a(J.to!=null,`invalid address for transaction type: ${X}`,"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(G.length===11)return J;return rH(J,G.slice(11)),J}function vs(W,G,X){let Y=[p1(W.chainId,"chainId"),p1(W.nonce,"nonce"),p1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),p1(W.maxFeePerGas||0,"maxFeePerGas"),p1(W.gasLimit,"gasLimit"),W.to||gO,p1(W.value,"value"),W.data,iH(W.accessList||[]),p1(W.maxFeePerBlobGas||0,"maxFeePerBlobGas"),Es(W.blobVersionedHashes||[],"blobVersionedHashes")];if(G){if(Y.push(p1(G.yParity,"yParity")),Y.push(A8(G.r)),Y.push(A8(G.s)),X)return G8(["0x03",F5([Y,X.map((J)=>J.data),X.map((J)=>J.commitment),X.map((J)=>J.proof)])])}return G8(["0x03",F5(Y)])}function gs(W){let G=WW(L0(W).slice(1));a(Array.isArray(G)&&(G.length===10||G.length===13),"invalid field count for transaction type: 4","data",C0(W));let X={type:4,chainId:U8(G[0],"chainId"),nonce:gG(G[1],"nonce"),maxPriorityFeePerGas:U8(G[2],"maxPriorityFeePerGas"),maxFeePerGas:U8(G[3],"maxFeePerGas"),gasPrice:null,gasLimit:U8(G[4],"gasLimit"),to:JJ(G[5]),value:U8(G[6],"value"),data:C0(G[7]),accessList:nH(G[8],"accessList"),authorizationList:Ls(G[9],"authorizationList")};if(G.length===10)return X;return rH(X,G.slice(10)),X}function us(W,G){let X=[p1(W.chainId,"chainId"),p1(W.nonce,"nonce"),p1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),p1(W.maxFeePerGas||0,"maxFeePerGas"),p1(W.gasLimit,"gasLimit"),W.to||"0x",p1(W.value,"value"),W.data,iH(W.accessList||[]),Bs(W.authorizationList||[])];if(G)X.push(p1(G.yParity,"yParity")),X.push(A8(G.r)),X.push(A8(G.s));return G8(["0x04",F5(X)])}class e9{#W;#G;#X;#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.#G;if(W==null&&this.type===3)return gO;return W}set to(W){this.#G=W==null?null:f1(W)}get nonce(){return this.#Y}set nonce(W){this.#Y=a8(W,"value")}get gasLimit(){return this.#Q}set gasLimit(W){this.#Q=m1(W)}get gasPrice(){let W=this.#N;if(W==null&&(this.type===0||this.type===1))return s8;return W}set gasPrice(W){this.#N=W==null?null:m1(W,"gasPrice")}get maxPriorityFeePerGas(){let W=this.#q;if(W==null){if(this.type===2||this.type===3)return s8;return null}return W}set maxPriorityFeePerGas(W){this.#q=W==null?null:m1(W,"maxPriorityFeePerGas")}get maxFeePerGas(){let W=this.#H;if(W==null){if(this.type===2||this.type===3)return s8;return null}return W}set maxFeePerGas(W){this.#H=W==null?null:m1(W,"maxFeePerGas")}get data(){return this.#X}set data(W){this.#X=C0(W)}get value(){return this.#A}set value(W){this.#A=m1(W,"value")}get chainId(){return this.#z}set chainId(W){this.#z=m1(W)}get signature(){return this.#I||null}set signature(W){this.#I=W==null?null:C8.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:vG(W)}get authorizationList(){let W=this.#j||null;if(W==null){if(this.type===4)return[]}return W}set authorizationList(W){this.#j=W==null?null:W.map((G)=>J_(G))}get maxFeePerBlobGas(){let W=this.#U;if(W==null&&this.type===3)return s8;return W}set maxFeePerBlobGas(W){this.#U=W==null?null:m1(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 G=0;G<W.length;G++)a(L9(W[G],32),"invalid blobVersionedHash",`value[${G}]`,W[G])}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 G=[],X=[];for(let Y=0;Y<W.length;Y++){let J=W[Y];if(i7(J)){X1(this.#J,"adding a raw blob requires a KZG library","UNSUPPORTED_OPERATION",{operation:"set blobs()"});let Z=L0(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));G.push({data:C0(Z),commitment:C0(V),proof:U}),X.push(Z_(1,V))}else{let Z=C0(J.commitment);G.push({data:C0(J.data),commitment:Z,proof:C0(J.proof)}),X.push(Z_(1,Z))}}this.#V=G,this.#Z=X}get kzg(){return this.#J}set kzg(W){if(W==null)this.#J=null;else this.#J=Ps(W)}constructor(){this.#W=null,this.#G=null,this.#Y=0,this.#Q=s8,this.#N=null,this.#q=null,this.#H=null,this.#X="0x",this.#A=s8,this.#z=s8,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 V8(this.#K(!0,!1))}get unsignedHash(){return V8(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 n8.recoverPublicKey(this.unsignedHash,this.signature)}isSigned(){return this.signature!=null}#K(W,G){X1(!W||this.signature!=null,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"});let X=W?this.signature:null;switch(this.inferType()){case 0:return Fs(this,X);case 1:return _s(this,X);case 2:return xs(this,X);case 3:return vs(this,X,G?this.blobs:null);case 4:return us(this,X)}X1(!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,G=this.maxFeePerGas!=null||this.maxPriorityFeePerGas!=null,X=this.accessList!=null,Y=this.#U!=null||this.#Z;if(this.maxFeePerGas!=null&&this.maxPriorityFeePerGas!=null)X1(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this});X1(!G||this.type!==0&&this.type!==1,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),X1(this.type!==0||!X,"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(G)J.push(2);else if(W){if(J.push(1),!X)J.push(0)}else if(X)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=(G)=>{if(G==null)return null;return G.toString()};return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:W(this.gasLimit),gasPrice:W(this.gasPrice),maxPriorityFeePerGas:W(this.maxPriorityFeePerGas),maxFeePerGas:W(this.maxFeePerGas),value:W(this.value),chainId:W(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}static from(W){if(W==null)return new e9;if(typeof W==="string"){let X=L0(W);if(X[0]>=127)return e9.from($s(X));switch(X[0]){case 1:return e9.from(ks(X));case 2:return e9.from(Ss(X));case 3:return e9.from(ys(X));case 4:return e9.from(gs(X))}X1(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}let G=new e9;if(W.type!=null)G.type=W.type;if(W.to!=null)G.to=W.to;if(W.nonce!=null)G.nonce=W.nonce;if(W.gasLimit!=null)G.gasLimit=W.gasLimit;if(W.gasPrice!=null)G.gasPrice=W.gasPrice;if(W.maxPriorityFeePerGas!=null)G.maxPriorityFeePerGas=W.maxPriorityFeePerGas;if(W.maxFeePerGas!=null)G.maxFeePerGas=W.maxFeePerGas;if(W.maxFeePerBlobGas!=null)G.maxFeePerBlobGas=W.maxFeePerBlobGas;if(W.data!=null)G.data=W.data;if(W.value!=null)G.value=W.value;if(W.chainId!=null)G.chainId=W.chainId;if(W.signature!=null)G.signature=C8.from(W.signature);if(W.accessList!=null)G.accessList=W.accessList;if(W.authorizationList!=null)G.authorizationList=W.authorizationList;if(W.blobVersionedHashes!=null)G.blobVersionedHashes=W.blobVersionedHashes;if(W.kzg!=null)G.kzg=W.kzg;if(W.blobs!=null)G.blobs=W.blobs;if(W.hash!=null)a(G.isSigned(),"unsigned transaction cannot define '.hash'","tx",W),a(G.hash===W.hash,"hash mismatch","tx",W);if(W.from!=null)a(G.isSigned(),"unsigned transaction cannot define '.from'","tx",W),a(G.from.toLowerCase()===(W.from||"").toLowerCase(),"from mismatch","tx",W);return G}}function aH(W){return a(typeof W.address==="string","invalid address for hashAuthorization","auth.address",W),V8(G8(["0x05",F5([W.chainId!=null?A8(W.chainId):"0x",f1(W.address),W.nonce!=null?A8(W.nonce):"0x"])]))}function e4(W){return V8(U9(W))}function MU(W){if(typeof W==="string")W=U9(W);return V8(G8([U9(uO),U9(String(W.length)),W]))}function RU(W,G){let X=MU(W);return TU(X,G)}var N_=new Uint8Array(32);N_.fill(0);var hs=BigInt(-1),q_=BigInt(0),H_=BigInt(1),bs=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function ms(W){let G=L0(W),X=G.length%32;if(X)return G8([G,N_.slice(X)]);return C0(G)}var fs=U7(H_,32),ps=U7(q_,32),V_={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},cO=["name","version","chainId","verifyingContract","salt"];function U_(W){return function(G){return a(typeof G==="string",`invalid domain value for ${JSON.stringify(W)}`,`domain.${W}`,G),G}}var cs={name:U_("name"),version:U_("version"),chainId:function(W){let G=m1(W,"domain.chainId");if(a(G>=0,"invalid chain ID","domain.chainId",W),Number.isSafeInteger(G))return Number(G);return LH(G)},verifyingContract:function(W){try{return f1(W).toLowerCase()}catch(G){}a(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",W)},salt:function(W){let G=L0(W,"domain.salt");return a(G.length===32,'invalid domain value "salt"',"domain.salt",W),C0(G)}};function lO(W){{let G=W.match(/^(u?)int(\d+)$/);if(G){let X=G[1]==="",Y=parseInt(G[2]);a(Y%8===0&&Y!==0&&Y<=256&&G[2]===String(Y),"invalid numeric width","type",W);let J=PH(bs,X?Y-1:Y),Z=X?(J+H_)*hs:q_;return function(V){let U=m1(V,"value");return a(U>=Z&&U<=J,`value out-of-bounds for ${W}`,"value",U),U7(X?RH(U,256):U,32)}}}{let G=W.match(/^bytes(\d+)$/);if(G){let X=parseInt(G[1]);return a(X!==0&&X<=32&&G[1]===String(X),"invalid bytes width","type",W),function(Y){let J=L0(Y);return a(J.length===X,`invalid length for ${W}`,"value",Y),ms(Y)}}}switch(W){case"address":return function(G){return z5(f1(G),32)};case"bool":return function(G){return!G?ps:fs};case"bytes":return function(G){return V8(G)};case"string":return function(G){return e4(G)}}return null}function Q_(W,G){return`${W}(${G.map(({name:X,type:Y})=>Y+" "+X).join(",")})`}function sH(W){let G=W.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);if(G)return{base:G[1],index:G[2]+G[4],array:{base:G[1],prefix:G[1]+G[2],count:G[5]?parseInt(G[5]):-1}};return{base:W}}class F9{primaryType;#W;get types(){return JSON.parse(this.#W)}#G;#X;constructor(W){this.#G=new Map,this.#X=new Map;let G=new Map,X=new Map,Y=new Map,J={};Object.keys(W).forEach((U)=>{J[U]=W[U].map(({name:Q,type:N})=>{let{base:q,index:A}=sH(N);if(q==="int"&&!W.int)q="int256";if(q==="uint"&&!W.uint)q="uint256";return{name:Q,type:q+(A||"")}}),G.set(U,new Set),X.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=sH(N.type).base;if(a(q!==U,`circular type reference to ${JSON.stringify(q)}`,"types",W),lO(q))continue;a(X.has(q),`unknown type ${JSON.stringify(q)}`,"types",W),X.get(q).push(U),G.get(U).add(q)}}let Z=Array.from(X.keys()).filter((U)=>X.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),H8(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 G.get(U)){if(!X.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.#G.set(U,Q_(U,J[U])+N.map((q)=>Q_(q,J[q])).join(""))}}getEncoder(W){let G=this.#X.get(W);if(!G)G=this.#Y(W),this.#X.set(W,G);return G}#Y(W){{let Y=lO(W);if(Y)return Y}let G=sH(W).array;if(G){let Y=G.prefix,J=this.getEncoder(Y);return(Z)=>{a(G.count===-1||G.count===Z.length,`array length mismatch; expected length ${G.count}`,"value",Z);let V=Z.map(J);if(this.#G.has(Y))V=V.map(V8);return V8(G8(V))}}let X=this.types[W];if(X){let Y=e4(this.#G.get(W));return(J)=>{let Z=X.map(({name:V,type:U})=>{let Q=this.getEncoder(U)(J[V]);if(this.#G.has(U))return V8(Q);return Q});return Z.unshift(Y),G8(Z)}}a(!1,`unknown type: ${W}`,"type",W)}encodeType(W){let G=this.#G.get(W);return a(G,`unknown type: ${JSON.stringify(W)}`,"name",W),G}encodeData(W,G){return this.getEncoder(W)(G)}hashStruct(W,G){return V8(this.encodeData(W,G))}encode(W){return this.encodeData(this.primaryType,W)}hash(W){return this.hashStruct(this.primaryType,W)}_visit(W,G,X){if(lO(W))return X(W,G);let Y=sH(W).array;if(Y)return a(Y.count===-1||Y.count===G.length,`array length mismatch; expected length ${Y.count}`,"value",G),G.map((Z)=>this._visit(Y.prefix,Z,X));let J=this.types[W];if(J)return J.reduce((Z,{name:V,type:U})=>{return Z[V]=this._visit(U,G[V],X),Z},{});a(!1,`unknown type: ${W}`,"type",W)}visit(W,G){return this._visit(this.primaryType,W,G)}static from(W){return new F9(W)}static getPrimaryType(W){return F9.from(W).primaryType}static hashStruct(W,G,X){return F9.from(G).hashStruct(W,X)}static hashDomain(W){let G=[];for(let X in W){if(W[X]==null)continue;let Y=V_[X];a(Y,`invalid typed-data domain key: ${JSON.stringify(X)}`,"domain",W),G.push({name:X,type:Y})}return G.sort((X,Y)=>{return cO.indexOf(X.name)-cO.indexOf(Y.name)}),F9.hashStruct("EIP712Domain",{EIP712Domain:G},W)}static encode(W,G,X){return G8(["0x1901",F9.hashDomain(W),F9.from(G).hash(X)])}static hash(W,G,X){return V8(F9.encode(W,G,X))}static async resolveNames(W,G,X,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(G);Z.visit(X,(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 X=Z.visit(X,(V,U)=>{if(V==="address"&&J[U])return J[U];return U}),{domain:W,value:X}}static getPayload(W,G,X){F9.hashDomain(W);let Y={},J=[];cO.forEach((U)=>{let Q=W[U];if(Q==null)return;Y[U]=cs[U](Q),J.push({name:U,type:V_[U]})});let Z=F9.from(G);G=Z.types;let V=Object.assign({},G);return a(V.EIP712Domain==null,"types must not contain EIP712Domain type","types.EIP712Domain",G),V.EIP712Domain=J,Z.encode(X),{types:V,domain:Y,primaryType:Z.primaryType,message:Z.visit(X,(U,Q)=>{if(U.match(/^bytes(\d*)/))return C0(L0(Q));if(U.match(/^u?int/))return m1(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 A_=BigInt(0);function dO(W){if(W==null)return null;return W}function t8(W){if(W==null)return null;return W.toString()}function PU(W){let G={};if(W.to)G.to=W.to;if(W.from)G.from=W.from;if(W.data)G.data=C0(W.data);let X="chainId,gasLimit,gasPrice,maxFeePerBlobGas,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(let J of X){if(!(J in W)||W[J]==null)continue;G[J]=m1(W[J],`request.${J}`)}let Y="type,nonce".split(/,/);for(let J of Y){if(!(J in W)||W[J]==null)continue;G[J]=a8(W[J],`request.${J}`)}if(W.accessList)G.accessList=vG(W.accessList);if(W.authorizationList)G.authorizationList=W.authorizationList.slice();if("blockTag"in W)G.blockTag=W.blockTag;if("enableCcipRead"in W)G.enableCcipRead=!!W.enableCcipRead;if("customData"in W)G.customData=W.customData;if("blobVersionedHashes"in W&&W.blobVersionedHashes)G.blobVersionedHashes=W.blobVersionedHashes.slice();if("kzg"in W)G.kzg=W.kzg;if("blobs"in W&&W.blobs)G.blobs=W.blobs.map((J)=>{if(i7(J))return C0(J);return Object.assign({},J)});return G}class z_{provider;number;hash;timestamp;parentHash;parentBeaconBlockRoot;nonce;difficulty;gasLimit;gasUsed;stateRoot;receiptsRoot;blobGasUsed;excessBlobGas;miner;prevRandao;extraData;baseFeePerGas;#W;constructor(W,G){this.#W=W.transactions.map((X)=>{if(typeof X!=="string")return new tH(X,G);return X}),H8(this,{provider:G,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 X1(typeof W[0]==="object","transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),W}toJSON(){let{baseFeePerGas:W,difficulty:G,extraData:X,gasLimit:Y,gasUsed: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:t8(W),difficulty:t8(G),extraData:X,gasLimit:t8(Y),gasUsed:t8(J),blobGasUsed:t8(this.blobGasUsed),excessBlobGas:t8(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,G=this.transactions;return{next:()=>{if(W<this.length)return{value:G[W++],done:!1};return{value:void 0,done:!0}}}}get length(){return this.#W.length}get date(){if(this.timestamp==null)return null;return new Date(this.timestamp*1000)}async getTransaction(W){let G=void 0;if(typeof W==="number")G=this.#W[W];else{let X=W.toLowerCase();for(let Y of this.#W)if(typeof Y==="string"){if(Y!==X)continue;G=Y;break}else{if(Y.hash!==X)continue;G=Y;break}}if(G==null)throw Error("no such tx");if(typeof G==="string")return await this.provider.getTransaction(G);else return G}getPrefetchedTransaction(W){let G=this.prefetchedTransactions;if(typeof W==="number")return G[W];W=W.toLowerCase();for(let X of G)if(X.hash===W)return X;a(!1,"no matching transaction","indexOrHash",W)}isMined(){return!!this.hash}isLondon(){return!!this.baseFeePerGas}orphanedEvent(){if(!this.isMined())throw Error("");return os(this)}}class oO{provider;transactionHash;blockHash;blockNumber;removed;address;data;topics;index;transactionIndex;constructor(W,G){this.provider=G;let X=Object.freeze(W.topics.slice());H8(this,{transactionHash:W.transactionHash,blockHash:W.blockHash,blockNumber:W.blockNumber,removed:W.removed,address:W.address,data:W.data,topics:X,index:W.index,transactionIndex:W.transactionIndex})}toJSON(){let{address:W,blockHash:G,blockNumber:X,data:Y,index:J,removed:Z,topics:V,transactionHash:U,transactionIndex:Q}=this;return{_type:"log",address:W,blockHash:G,blockNumber:X,data:Y,index:J,removed:Z,topics:V,transactionHash:U,transactionIndex:Q}}async getBlock(){let W=await this.provider.getBlock(this.blockHash);return X1(!!W,"failed to find transaction","UNKNOWN_ERROR",{}),W}async getTransaction(){let W=await this.provider.getTransaction(this.transactionHash);return X1(!!W,"failed to find transaction","UNKNOWN_ERROR",{}),W}async getTransactionReceipt(){let W=await this.provider.getTransactionReceipt(this.transactionHash);return X1(!!W,"failed to find transaction receipt","UNKNOWN_ERROR",{}),W}removedEvent(){return ns(this)}}class I_{provider;to;from;contractAddress;hash;index;blockHash;blockNumber;logsBloom;gasUsed;blobGasUsed;cumulativeGasUsed;gasPrice;blobGasPrice;type;status;root;#W;constructor(W,G){this.#W=Object.freeze(W.logs.map((Y)=>{return new oO(Y,G)}));let X=A_;if(W.effectiveGasPrice!=null)X=W.effectiveGasPrice;else if(W.gasPrice!=null)X=W.gasPrice;H8(this,{provider:G,to:W.to,from:W.from,contractAddress:W.contractAddress,hash:W.hash,index:W.index,blockHash:W.blockHash,blockNumber:W.blockNumber,logsBloom:W.logsBloom,gasUsed:W.gasUsed,cumulativeGasUsed:W.cumulativeGasUsed,blobGasUsed:W.blobGasUsed,gasPrice:X,blobGasPrice:W.blobGasPrice,type:W.type,status:W.status,root:W.root})}get logs(){return this.#W}toJSON(){let{to:W,from:G,contractAddress:X,hash:Y,index:J,blockHash:Z,blockNumber:V,logsBloom:U,logs:Q,status:N,root:q}=this;return{_type:"TransactionReceipt",blockHash:Z,blockNumber:V,contractAddress:X,cumulativeGasUsed:t8(this.cumulativeGasUsed),from:G,gasPrice:t8(this.gasPrice),blobGasUsed:t8(this.blobGasUsed),blobGasPrice:t8(this.blobGasPrice),gasUsed:t8(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 j_(this)}reorderedEvent(W){return X1(!W||W.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),w_(this,W)}}class tH{provider;blockNumber;blockHash;index;hash;type;to;from;nonce;gasLimit;gasPrice;maxPriorityFeePerGas;maxFeePerGas;maxFeePerBlobGas;data;value;chainId;signature;accessList;blobVersionedHashes;authorizationList;#W;constructor(W,G){this.provider=G,this.blockNumber=W.blockNumber!=null?W.blockNumber:null,this.blockHash=W.blockHash!=null?W.blockHash:null,this.hash=W.hash,this.index=W.index,this.type=W.type,this.from=W.from,this.to=W.to||null,this.gasLimit=W.gasLimit,this.nonce=W.nonce,this.data=W.data,this.value=W.value,this.gasPrice=W.gasPrice,this.maxPriorityFeePerGas=W.maxPriorityFeePerGas!=null?W.maxPriorityFeePerGas:null,this.maxFeePerGas=W.maxFeePerGas!=null?W.maxFeePerGas:null,this.maxFeePerBlobGas=W.maxFeePerBlobGas!=null?W.maxFeePerBlobGas:null,this.chainId=W.chainId,this.signature=W.signature,this.accessList=W.accessList!=null?W.accessList:null,this.blobVersionedHashes=W.blobVersionedHashes!=null?W.blobVersionedHashes:null,this.authorizationList=W.authorizationList!=null?W.authorizationList:null,this.#W=-1}toJSON(){let{blockNumber:W,blockHash:G,index:X,hash:Y,type:J,to:Z,from:V,nonce:U,data:Q,signature:N,accessList:q,blobVersionedHashes:A}=this;return{_type:"TransactionResponse",accessList:q,blockNumber:W,blockHash:G,blobVersionedHashes:A,chainId:t8(this.chainId),data:Q,from:V,gasLimit:t8(this.gasLimit),gasPrice:t8(this.gasPrice),hash:Y,maxFeePerGas:t8(this.maxFeePerGas),maxPriorityFeePerGas:t8(this.maxPriorityFeePerGas),maxFeePerBlobGas:t8(this.maxFeePerBlobGas),nonce:U,signature:N,to:Z,index:X,type:J,value:t8(this.value)}}async getBlock(){let W=this.blockNumber;if(W==null){let X=await this.getTransaction();if(X)W=X.blockNumber}if(W==null)return null;let G=this.provider.getBlock(W);if(G==null)throw Error("TODO");return G}async getTransaction(){return this.provider.getTransaction(this.hash)}async confirmations(){if(this.blockNumber==null){let{tx:G,blockNumber:X}=await n7({tx:this.getTransaction(),blockNumber:this.provider.getBlockNumber()});if(G==null||G.blockNumber==null)return 0;return X-G.blockNumber+1}return await this.provider.getBlockNumber()-this.blockNumber+1}async wait(W,G){let X=W==null?1:W,Y=G==null?0:G,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 M=await w.getTransaction(O);if(M.from===this.from&&M.nonce===this.nonce){if(V)return null;let S=await this.provider.getTransactionReceipt(M.hash);if(S==null)return;if(A-S.blockNumber+1<X)return;let v="replaced";if(M.data===this.data&&M.to===this.to&&M.value===this.value)v="repriced";else if(M.data==="0x"&&M.from===M.to&&M.value===A_)v="cancelled";X1(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:v==="replaced"||v==="cancelled",reason:v,replacement:M.replaceableTransaction(J),hash:M.hash,receipt:S})}}Z++}return},Q=(A)=>{if(A==null||A.status!==0)return A;X1(!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(X===0)return Q(N);if(N){if(X===1||await N.confirmations()>=X)return Q(N)}else if(await U(),X===0)return null;return await new Promise((A,H)=>{let I=[],w=()=>{I.forEach((M)=>M())};if(I.push(()=>{V=!0}),Y>0){let M=setTimeout(()=>{w(),H(AU("wait for transaction timeout","TIMEOUT"))},Y);I.push(()=>{clearTimeout(M)})}let O=async(M)=>{if(await M.confirmations()>=X){w();try{A(Q(M))}catch(S){H(S)}}};if(I.push(()=>{this.provider.off(this.hash,O)}),this.provider.on(this.hash,O),J>=0){let M=async()=>{try{await U()}catch(S){if(MH(S,"TRANSACTION_REPLACED")){w(),H(S);return}}if(!V)this.provider.once("block",M)};I.push(()=>{this.provider.off("block",M)}),this.provider.once("block",M)}})}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 X1(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),j_(this)}reorderedEvent(W){return X1(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),X1(!W||W.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),w_(this,W)}replaceableTransaction(W){a(Number.isInteger(W)&&W>=0,"invalid startBlock","startBlock",W);let G=new tH(this,this.provider);return G.#W=W,G}}function os(W){return{orphan:"drop-block",hash:W.hash,number:W.number}}function w_(W,G){return{orphan:"reorder-transaction",tx:W,other:G}}function j_(W){return{orphan:"drop-transaction",tx:W}}function ns(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 uG(W,G){if(W.provider)return W.provider;X1(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:G})}async function K_(W,G){let X=PU(G);if(X.to!=null)X.to=s4(X.to,W);if(X.from!=null){let Y=X.from;X.from=Promise.all([W.getAddress(),s4(Y,W)]).then(([J,Z])=>{return a(J.toLowerCase()===Z.toLowerCase(),"transaction from mismatch","tx.from",Z),J})}else X.from=W.getAddress();return await n7(X)}class LU{provider;constructor(W){H8(this,{provider:W||null})}async getNonce(W){return uG(this,"getTransactionCount").getTransactionCount(await this.getAddress(),W)}async populateCall(W){return await K_(this,W)}async populateTransaction(W){let G=uG(this,"populateTransaction"),X=await K_(this,W);if(X.nonce==null)X.nonce=await this.getNonce("pending");if(X.gasLimit==null)X.gasLimit=await this.estimateGas(X);let Y=await this.provider.getNetwork();if(X.chainId!=null){let Z=m1(X.chainId);a(Z===Y.chainId,"transaction chainId mismatch","tx.chainId",W.chainId)}else X.chainId=Y.chainId;let J=X.maxFeePerGas!=null||X.maxPriorityFeePerGas!=null;if(X.gasPrice!=null&&(X.type===2||J))a(!1,"eip-1559 transaction do not support gasPrice","tx",W);else if((X.type===0||X.type===1)&&J)a(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",W);if((X.type===2||X.type==null)&&(X.maxFeePerGas!=null&&X.maxPriorityFeePerGas!=null))X.type=2;else if(X.type===0||X.type===1){let Z=await G.getFeeData();if(X1(Z.gasPrice!=null,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),X.gasPrice==null)X.gasPrice=Z.gasPrice}else{let Z=await G.getFeeData();if(X.type==null)if(Z.maxFeePerGas!=null&&Z.maxPriorityFeePerGas!=null){if(X.authorizationList&&X.authorizationList.length)X.type=4;else X.type=2;if(X.gasPrice!=null){let V=X.gasPrice;delete X.gasPrice,X.maxFeePerGas=V,X.maxPriorityFeePerGas=V}else{if(X.maxFeePerGas==null)X.maxFeePerGas=Z.maxFeePerGas;if(X.maxPriorityFeePerGas==null)X.maxPriorityFeePerGas=Z.maxPriorityFeePerGas}}else if(Z.gasPrice!=null){if(X1(!J,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),X.gasPrice==null)X.gasPrice=Z.gasPrice;X.type=0}else X1(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else if(X.type===2||X.type===3||X.type===4){if(X.maxFeePerGas==null)X.maxFeePerGas=Z.maxFeePerGas;if(X.maxPriorityFeePerGas==null)X.maxPriorityFeePerGas=Z.maxPriorityFeePerGas}}return await n7(X)}async populateAuthorization(W){let G=Object.assign({},W);if(G.chainId==null)G.chainId=(await uG(this,"getNetwork").getNetwork()).chainId;if(G.nonce==null)G.nonce=await this.getNonce();return G}async estimateGas(W){return uG(this,"estimateGas").estimateGas(await this.populateCall(W))}async call(W){return uG(this,"call").call(await this.populateCall(W))}async resolveName(W){return await uG(this,"resolveName").resolveName(W)}async sendTransaction(W){let G=uG(this,"sendTransaction"),X=await this.populateTransaction(W);delete X.from;let Y=e9.from(X);return await G.broadcastTransaction(await this.signTransaction(Y))}authorize(W){X1(!1,"authorization not implemented for this signer","UNSUPPORTED_OPERATION",{operation:"authorize"})}}class BU extends LU{address;constructor(W,G){super(G);H8(this,{address:W})}async getAddress(){return this.address}connect(W){return new BU(this.address,W)}#W(W,G){X1(!1,`VoidSigner cannot sign ${W}`,"UNSUPPORTED_OPERATION",{operation:G})}async signTransaction(W){this.#W("transactions","signTransaction")}async signMessage(W){this.#W("messages","signMessage")}async signTypedData(W,G,X){this.#W("typed-data","signTypedData")}}class hG extends LU{address;#W;constructor(W,G){super(G);a(W&&typeof W.sign==="function","invalid private key","privateKey","[ REDACTED ]"),this.#W=W;let X=t4(this.signingKey.publicKey);H8(this,{address:X})}get signingKey(){return this.#W}get privateKey(){return this.signingKey.privateKey}async getAddress(){return this.address}connect(W){return new hG(this.#W,W)}async signTransaction(W){W=PU(W);let{to:G,from:X}=await n7({to:W.to?s4(W.to,this):void 0,from:W.from?s4(W.from,this):void 0});if(G!=null)W.to=G;if(X!=null)W.from=X;if(W.from!=null)a(f1(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 G=this.signingKey.sign(aH(W));return Object.assign({},{address:f1(W.address),nonce:m1(W.nonce||0),chainId:m1(W.chainId||0)},{signature:G})}async authorize(W){return W=Object.assign({},W,{address:await s4(W.address,this)}),this.authorizeSync(await this.populateAuthorization(W))}async signTypedData(W,G,X){let Y=await F9.resolveNames(W,G,X,async(J)=>{X1(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 X1(Z!=null,"unconfigured ENS name","UNCONFIGURED_NAME",{value:J}),Z});return this.signingKey.sign(F9.hash(Y.domain,G,Y.value)).serialized}}var eH=" !#$%&'()*+,-./<=>?@[]^_`{|}~",is=/^[a-z]*$/i;function O_(W,G){let X=97;return W.reduce((Y,J)=>{if(J===G)X++;else if(J.match(is))Y.push(String.fromCharCode(X)+J);else X=97,Y.push(J);return Y},[])}function rs(W,G){for(let J=eH.length-1;J>=0;J--)W=W.split(eH[J]).join(G.substring(2*J,2*J+2));let X=[],Y=W.replace(/(:|([0-9])|([A-Z][a-z]*))/g,(J,Z,V,U)=>{if(V)for(let Q=parseInt(V);Q>=0;Q--)X.push(";");else X.push(Z.toLowerCase());return""});if(Y)throw Error(`leftovers: ${JSON.stringify(Y)}`);return O_(O_(X,";"),":")}function D_(W){return a(W[0]==="0","unsupported auwl data","data",W),rs(W.substring(1+2*eH.length),W.substring(1,1+2*eH.length))}class nO{locale;constructor(W){H8(this,{locale:W})}split(W){return W.toLowerCase().split(/\s+/g)}join(W){return W.join(" ")}}class iO extends nO{#W;#G;constructor(W,G,X){super(W);this.#W=G,this.#G=X,this.#X=null}get _data(){return this.#W}_decodeWords(){return D_(this.#W)}#X;#Y(){if(this.#X==null){let W=this._decodeWords();if(e4(W.join(`
250
250
  `)+`
251
- `)!==this.#G)throw Error(`BIP39 Wordlist for ${this.locale} FAILED`);this.#X=W}return this.#X}getWord(W){let G=this.#Y();return a(W>=0&&W<G.length,`invalid word index: ${W}`,"index",W),G[W]}getWordIndex(W){return this.#Y().indexOf(W)}}var as="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",ss="0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60",rO=null;class W6 extends iO{constructor(){super("en",as,ss)}static wordlist(){if(rO==null)rO=new W6;return rO}}function C_(W){return(1<<W)-1<<8-W&255}function ts(W){return(1<<W)-1&255}function aO(W,G){if(iY("NFKD"),G==null)G=W6.wordlist();let X=G.split(W);a(X.length%3===0&&X.length>=12&&X.length<=24,"invalid mnemonic length","mnemonic","[ REDACTED ]");let Y=new Uint8Array(Math.ceil(11*X.length/8)),J=0;for(let N=0;N<X.length;N++){let q=G.getWordIndex(X[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*X.length/3,V=X.length/3,U=C_(V),Q=L0(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,G){if(a(W.length%4===0&&W.length>=16&&W.length<=32,"invalid entropy size","entropy","[ REDACTED ]"),G==null)G=W6.wordlist();let X=[0],Y=11;for(let V=0;V<W.length;V++)if(Y>8)X[X.length-1]<<=8,X[X.length-1]|=W[V],Y-=8;else X[X.length-1]<<=Y,X[X.length-1]|=W[V]>>8-Y,X.push(W[V]&ts(8-Y)),Y+=3;let J=W.length/4,Z=parseInt(E9(W).substring(2,4),16)&C_(J);return X[X.length-1]<<=J,X[X.length-1]|=Z>>8-J,G.join(X.map((V)=>G.getWord(V)))}var tO={};class G6{phrase;password;wordlist;entropy;constructor(W,G,X,Y,J){if(Y==null)Y="";if(J==null)J=W6.wordlist();d4(W,tO,"Mnemonic"),H8(this,{phrase:X,password:Y,wordlist:J,entropy:G})}computeSeed(){let W=U9("mnemonic"+this.password,"NFKD");return S5(U9(this.phrase,"NFKD"),W,2048,64,"sha512")}static fromPhrase(W,G,X){let Y=aO(W,X);return W=sO(L0(Y),X),new G6(tO,Y,W,G,X)}static fromEntropy(W,G,X){let Y=L0(W,"entropy"),J=sO(Y,X);return new G6(tO,C0(Y),J,G,X)}static entropyToPhrase(W,G){let X=L0(W,"entropy");return sO(X,G)}static phraseToEntropy(W,G){return aO(W,G)}static isValidMnemonic(W,G){try{return aO(W,G),!0}catch(X){}return!1}}/*! MIT License. Copyright 2015-2022 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */var Q9=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},eO=function(W,G,X,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 G==="function"?W!==G||!J:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,X):J?J.value=X:G.set(W,X),X},GA,y5,a7,es={16:10,24:12,32:14},Wt=[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],WA=[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],Gt=[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],Xt=[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],Yt=[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],Jt=[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],Zt=[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],Vt=[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],Ut=[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],Qt=[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],Nt=[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],qt=[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],Ht=[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],At=[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 G=[];for(let X=0;X<W.length;X+=4)G.push(W[X]<<24|W[X+1]<<16|W[X+2]<<8|W[X+3]);return G}class XA{get key(){return Q9(this,GA,"f").slice()}constructor(W){if(GA.set(this,void 0),y5.set(this,void 0),a7.set(this,void 0),!(this instanceof XA))throw Error("AES must be instanitated with `new`");eO(this,GA,new Uint8Array(W),"f");let G=es[this.key.length];if(G==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<=G;N++)Q9(this,a7,"f").push([0,0,0,0]),Q9(this,y5,"f").push([0,0,0,0]);let X=(G+1)*4,Y=this.key.length/4,J=WD(this.key),Z;for(let N=0;N<Y;N++)Z=N>>2,Q9(this,a7,"f")[Z][N%4]=J[N],Q9(this,y5,"f")[G-Z][N%4]=J[N];let V=0,U=Y,Q;while(U<X){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]^Wt[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<X)q=U>>2,A=U%4,Q9(this,a7,"f")[q][A]=J[N],Q9(this,y5,"f")[G-q][A]=J[N++],U++}for(let N=1;N<G;N++)for(let q=0;q<4;q++)Q=Q9(this,y5,"f")[N][q],Q9(this,y5,"f")[N][q]=Nt[Q>>24&255]^qt[Q>>16&255]^Ht[Q>>8&255]^At[Q&255]}encrypt(W){if(W.length!=16)throw TypeError("invalid plaintext size (must be 16 bytes)");let G=Q9(this,a7,"f").length-1,X=[0,0,0,0],Y=WD(W);for(let V=0;V<4;V++)Y[V]^=Q9(this,a7,"f")[0][V];for(let V=1;V<G;V++){for(let U=0;U<4;U++)X[U]=Gt[Y[U]>>24&255]^Xt[Y[(U+1)%4]>>16&255]^Yt[Y[(U+2)%4]>>8&255]^Jt[Y[(U+3)%4]&255]^Q9(this,a7,"f")[V][U];Y=X.slice()}let J=new Uint8Array(16),Z=0;for(let V=0;V<4;V++)Z=Q9(this,a7,"f")[G][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 G=Q9(this,y5,"f").length-1,X=[0,0,0,0],Y=WD(W);for(let V=0;V<4;V++)Y[V]^=Q9(this,y5,"f")[0][V];for(let V=1;V<G;V++){for(let U=0;U<4;U++)X[U]=Zt[Y[U]>>24&255]^Vt[Y[(U+3)%4]>>16&255]^Ut[Y[(U+2)%4]>>8&255]^Qt[Y[(U+1)%4]&255]^Q9(this,y5,"f")[V][U];Y=X.slice()}let J=new Uint8Array(16),Z=0;for(let V=0;V<4;V++)Z=Q9(this,y5,"f")[G][V],J[4*V]=(WA[Y[V]>>24&255]^Z>>24)&255,J[4*V+1]=(WA[Y[(V+3)%4]>>16&255]^Z>>16)&255,J[4*V+2]=(WA[Y[(V+2)%4]>>8&255]^Z>>8)&255,J[4*V+3]=(WA[Y[(V+1)%4]&255]^Z)&255;return J}}GA=new WeakMap,y5=new WeakMap,a7=new WeakMap;class EU{constructor(W,G,X){if(X&&!(this instanceof X))throw Error(`${W} must be instantiated with "new"`);Object.defineProperties(this,{aes:{enumerable:!0,value:new XA(G)},name:{enumerable:!0,value:W}})}}var YA=function(W,G,X,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 G==="function"?W!==G||!J:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,X):J?J.value=X:G.set(W,X),X},ZJ=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},$U,X6;class FU extends EU{constructor(W,G){super("ECC",W,FU);if($U.set(this,void 0),X6.set(this,void 0),G){if(G.length%16)throw TypeError("invalid iv size (must be 16 bytes)");YA(this,$U,new Uint8Array(G),"f")}else YA(this,$U,new Uint8Array(16),"f");YA(this,X6,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 G=new Uint8Array(W.length);for(let X=0;X<W.length;X+=16){for(let Y=0;Y<16;Y++)ZJ(this,X6,"f")[Y]^=W[X+Y];YA(this,X6,this.aes.encrypt(ZJ(this,X6,"f")),"f"),G.set(ZJ(this,X6,"f"),X)}return G}decrypt(W){if(W.length%16)throw TypeError("invalid ciphertext size (must be multiple of 16 bytes)");let G=new Uint8Array(W.length);for(let X=0;X<W.length;X+=16){let Y=this.aes.decrypt(W.subarray(X,X+16));for(let J=0;J<16;J++)G[X+J]=Y[J]^ZJ(this,X6,"f")[J],ZJ(this,X6,"f")[J]=W[X+J]}return G}}$U=new WeakMap,X6=new WeakMap;var VJ=function(W,G,X,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 G==="function"?W!==G||!J:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,X):J?J.value=X:G.set(W,X),X},v5=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},SU,bG,g5;class NW extends EU{constructor(W,G){super("CTR",W,NW);if(SU.set(this,void 0),bG.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,bG,16,"f"),G==null)G=1;if(typeof G==="number")this.setCounterValue(G);else this.setCounterBytes(G)}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 G=15;G>=0;--G)v5(this,g5,"f")[G]=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 G,X;let Y=new Uint8Array(W);for(let J=0;J<Y.length;J++){if(v5(this,bG,"f")===16)VJ(this,SU,this.aes.encrypt(v5(this,g5,"f")),"f"),VJ(this,bG,0,"f"),this.increment();Y[J]^=v5(this,SU,"f")[VJ(this,bG,(X=v5(this,bG,"f"),G=X++,X),"f"),G]}return Y}decrypt(W){return this.encrypt(W)}}SU=new WeakMap,bG=new WeakMap,g5=new WeakMap;function GD(W){if(W.length<16)throw TypeError("PKCS#7 invalid length");let G=W[W.length-1];if(G>16)throw TypeError("PKCS#7 padding byte out of range");let X=W.length-G;for(let Y=0;Y<G;Y++)if(W[X+Y]!==G)throw TypeError("PKCS#7 invalid padding byte");return new Uint8Array(W.subarray(0,X))}function XD(W){if(typeof W==="string"&&!W.startsWith("0x"))W="0x"+W;return V7(W)}function UJ(W,G){W=String(W);while(W.length<G)W="0"+W;return W}function mG(W){if(typeof W==="string")return U9(W,"NFKC");return V7(W)}function T8(W,G){let X=G.match(/^([a-z0-9$_.-]*)(:([a-z]+))?(!)?$/i);a(X!=null,"invalid path","path",G);let Y=X[1],J=X[3],Z=X[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 XD(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 M_="m/44'/60'/0'/0/0";function ZA(W){try{let G=JSON.parse(W);if((G.version!=null?parseInt(G.version):0)===3)return!0}catch(G){}return!1}function zt(W,G,X){if(T8(W,"crypto.cipher:string")==="aes-128-ctr"){let J=T8(W,"crypto.cipherparams.iv:data!"),Z=new NW(G,J);return C0(Z.decrypt(X))}X1(!1,"unsupported cipher","UNSUPPORTED_OPERATION",{operation:"decrypt"})}function JA(W,G){let X=L0(G),Y=T8(W,"crypto.ciphertext:data!"),J=C0(V8(W8([X.slice(16,32),Y]))).substring(2);a(J===T8(W,"crypto.mac:string!").toLowerCase(),"incorrect password","password","[ REDACTED ]");let Z=zt(W,X.slice(0,16),Y),V=t4(Z);if(W.address){let N=W.address.toLowerCase();if(!N.startsWith("0x"))N="0x"+N;a(f1(N)===V,"keystore address/privateKey mismatch","address",W.address)}let U={address:V,privateKey:Z};if(T8(W,"x-ethers.version:string")==="0.1"){let N=X.slice(32,64),q=T8(W,"x-ethers.mnemonicCiphertext:data!"),A=T8(W,"x-ethers.mnemonicCounter:data!"),H=new NW(N,A);U.mnemonic={path:T8(W,"x-ethers.path:string")||M_,locale:T8(W,"x-ethers.locale:string")||"en",entropy:C0(L0(H.decrypt(q)))}}return U}function R_(W){let G=T8(W,"crypto.kdf:string");if(G&&typeof G==="string"){if(G.toLowerCase()==="scrypt"){let X=T8(W,"crypto.kdfparams.salt:data!"),Y=T8(W,"crypto.kdfparams.n:int!"),J=T8(W,"crypto.kdfparams.r:int!"),Z=T8(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",G);let V=T8(W,"crypto.kdfparams.dklen:int!");return a(V===32,"invalid kdf.dklen","kdf.dflen",V),{name:"scrypt",salt:X,N:Y,r:J,p:Z,dkLen:64}}else if(G.toLowerCase()==="pbkdf2"){let X=T8(W,"crypto.kdfparams.salt:data!"),Y=T8(W,"crypto.kdfparams.prf:string!"),J=Y.split("-").pop();a(J==="sha256"||J==="sha512","invalid kdf.pdf","kdf.pdf",Y);let Z=T8(W,"crypto.kdfparams.c:int!"),V=T8(W,"crypto.kdfparams.dklen:int!");return a(V===32,"invalid kdf.dklen","kdf.dklen",V),{name:"pbkdf2",salt:X,count:Z,dkLen:V,algorithm:J}}}a(!1,"unsupported key-derivation function","kdf",G)}function YD(W,G){let X=JSON.parse(W),Y=mG(G),J=R_(X);if(J.name==="pbkdf2"){let{salt:A,count:H,dkLen:I,algorithm:w}=J,O=S5(Y,A,H,I,w);return JA(X,O)}X1(J.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:J});let{salt:Z,N:V,r:U,p:Q,dkLen:N}=J,q=VW(Y,Z,V,U,Q,N);return JA(X,q)}function T_(W){return new Promise((G)=>{setTimeout(()=>{G()},W)})}async function JD(W,G,X){let Y=JSON.parse(W),J=mG(G),Z=R_(Y);if(Z.name==="pbkdf2"){if(X)X(0),await T_(0);let{salt:H,count:I,dkLen:w,algorithm:O}=Z,M=S5(J,H,I,w,O);if(X)X(1),await T_(0);return JA(Y,M)}X1(Z.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:Z});let{salt:V,N:U,r:Q,p:N,dkLen:q}=Z,A=await ZW(J,V,U,Q,N,q,X);return JA(Y,A)}function P_(W){let G=W.salt!=null?L0(W.salt,"options.salt"):x5(32),X=131072,Y=8,J=1;if(W.scrypt){if(W.scrypt.N)X=W.scrypt.N;if(W.scrypt.r)Y=W.scrypt.r;if(W.scrypt.p)J=W.scrypt.p}return a(typeof X==="number"&&X>0&&Number.isSafeInteger(X)&&(BigInt(X)&BigInt(X-1))===BigInt(0),"invalid scrypt N parameter","options.N",X),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:G,N:X,r:Y,p:J}}function L_(W,G,X,Y){let J=L0(X.privateKey,"privateKey"),Z=Y.iv!=null?L0(Y.iv,"options.iv"):x5(16);a(Z.length===16,"invalid options.iv length","options.iv",Y.iv);let V=Y.uuid!=null?L0(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 NW(U,Z),q=L0(N.encrypt(J)),A=V8(W8([Q,q])),H={address:X.address.substring(2).toLowerCase(),id:SH(V),version:3,Crypto:{cipher:"aes-128-ctr",cipherparams:{iv:C0(Z).substring(2)},ciphertext:C0(q).substring(2),kdf:"scrypt",kdfparams:{salt:C0(G.salt).substring(2),n:G.N,dklen:32,p:G.p,r:G.r},mac:A.substring(2)}};if(X.mnemonic){let I=Y.client!=null?Y.client:`ethers/${TH}`,w=X.mnemonic.path||M_,O=X.mnemonic.locale||"en",M=W.slice(32,64),S=L0(X.mnemonic.entropy,"account.mnemonic.entropy"),v=x5(16),f=new NW(M,v),g=L0(f.encrypt(S)),c=new Date,h="UTC--"+(c.getUTCFullYear()+"-"+UJ(c.getUTCMonth()+1,2)+"-"+UJ(c.getUTCDate(),2)+"T"+UJ(c.getUTCHours(),2)+"-"+UJ(c.getUTCMinutes(),2)+"-"+UJ(c.getUTCSeconds(),2)+".0Z")+"--"+H.address;H["x-ethers"]={client:I,gethFilename:h,path:w,locale:O,mnemonicCounter:C0(v).substring(2),mnemonicCiphertext:C0(g).substring(2),version:"0.1"}}return JSON.stringify(H)}function xU(W,G,X){if(X==null)X={};let Y=mG(G),J=P_(X),Z=VW(Y,J.salt,J.N,J.r,J.p,64);return L_(L0(Z),J,W,X)}async function kU(W,G,X){if(X==null)X={};let Y=mG(G),J=P_(X),Z=await ZW(Y,J.salt,J.N,J.r,J.p,64,X.progressCallback);return L_(L0(Z),J,W,X)}var _U="m/44'/60'/0'/0/0",It=new Uint8Array([66,105,116,99,111,105,110,32,115,101,101,100]),qW=2147483648,wt=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),jt="0123456789abcdef";function VA(W,G){let X="";while(W)X=jt[W%16]+X,W=Math.trunc(W/16);while(X.length<G*2)X="0"+X;return"0x"+X}function ZD(W){let G=L0(W),X=rY(E9(E9(G)),0,4),Y=W8([G,X]);return $H(Y)}var s7={};function B_(W,G,X,Y){let J=new Uint8Array(37);if(W&qW)X1(Y!=null,"cannot derive child of neutered node","UNSUPPORTED_OPERATION",{operation:"deriveChild"}),J.set(L0(Y),1);else J.set(L0(X));for(let V=24;V>=0;V-=8)J[33+(V>>3)]=W>>24-V&255;let Z=L0(GW("sha512",G,J));return{IL:Z.slice(0,32),IR:Z.slice(32)}}function E_(W,G){let X=G.split("/");if(a(X.length>0,"invalid path","path",G),X[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",G),X.shift();let Y=W;for(let J=0;J<X.length;J++){let Z=X[J];if(Z.match(/^[0-9]+'$/)){let V=parseInt(Z.substring(0,Z.length-1));a(V<qW,"invalid path index",`path[${J}]`,Z),Y=Y.deriveChild(qW+V)}else if(Z.match(/^[0-9]+$/)){let V=parseInt(Z);a(V<qW,"invalid path index",`path[${J}]`,Z),Y=Y.deriveChild(V)}else a(!1,"invalid path component",`path[${J}]`,Z)}return Y}class N9 extends hG{publicKey;fingerprint;parentFingerprint;mnemonic;chainCode;path;index;depth;constructor(W,G,X,Y,J,Z,V,U,Q){super(G,Q);d4(W,s7,"HDNodeWallet"),H8(this,{publicKey:G.compressedPublicKey});let N=rY(XW(E9(this.publicKey)),0,4);H8(this,{parentFingerprint:X,fingerprint:N,chainCode:Y,path:J,index:Z,depth:V}),H8(this,{mnemonic:U})}connect(W){return new N9(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},G=this.mnemonic;if(this.path&&G&&G.wordlist.locale==="en"&&G.password==="")W.mnemonic={path:this.path,locale:"en",entropy:G.entropy};return W}async encrypt(W,G){return await kU(this.#W(),W,{progressCallback:G})}encryptSync(W){return xU(this.#W(),W)}get extendedKey(){return X1(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),ZD(W8(["0x0488ADE4",VA(this.depth,1),this.parentFingerprint,VA(this.index,4),this.chainCode,W8(["0x00",this.privateKey])]))}hasPath(){return this.path!=null}neuter(){return new fG(s7,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.provider)}deriveChild(W){let G=a8(W,"index");a(G<=4294967295,"invalid index","index",G);let X=this.path;if(X){if(X+="/"+(G&~qW),G&qW)X+="'"}let{IR:Y,IL:J}=B_(G,this.chainCode,this.publicKey,this.privateKey),Z=new n8(U7((sY(J)+BigInt(this.privateKey))%wt,32));return new N9(s7,Z,this.fingerprint,C0(Y),X,G,this.depth+1,this.mnemonic,this.provider)}derivePath(W){return E_(this,W)}static#G(W,G){a(i7(W),"invalid seed","seed","[REDACTED]");let X=L0(W,"seed");a(X.length>=16&&X.length<=64,"invalid seed","seed","[REDACTED]");let Y=L0(GW("sha512",It,X)),J=new n8(C0(Y.slice(0,32)));return new N9(s7,J,"0x00000000",C0(Y.slice(32)),"m",0,0,G,null)}static fromExtendedKey(W){let G=A8(FH(W));a(G.length===82||ZD(G.slice(0,78))===W,"invalid extended key","extendedKey","[ REDACTED ]");let X=G[4],Y=C0(G.slice(5,9)),J=parseInt(C0(G.slice(9,13)).substring(2),16),Z=C0(G.slice(13,45)),V=G.slice(45,78);switch(C0(G.slice(0,4))){case"0x0488b21e":case"0x043587cf":{let U=C0(V);return new fG(s7,t4(U),U,Y,Z,null,J,X,null)}case"0x0488ade4":case"0x04358394 ":if(V[0]!==0)break;return new N9(s7,new n8(V.slice(1)),Y,Z,null,J,X,null,null)}a(!1,"invalid extended key prefix","extendedKey","[ REDACTED ]")}static createRandom(W,G,X){if(W==null)W="";if(G==null)G=_U;if(X==null)X=W6.wordlist();let Y=G6.fromEntropy(x5(16),W,X);return N9.#G(Y.computeSeed(),Y).derivePath(G)}static fromMnemonic(W,G){if(!G)G=_U;return N9.#G(W.computeSeed(),W).derivePath(G)}static fromPhrase(W,G,X,Y){if(G==null)G="";if(X==null)X=_U;if(Y==null)Y=W6.wordlist();let J=G6.fromPhrase(W,G,Y);return N9.#G(J.computeSeed(),J).derivePath(X)}static fromSeed(W){return N9.#G(W,null)}}class fG extends BU{publicKey;fingerprint;parentFingerprint;chainCode;path;index;depth;constructor(W,G,X,Y,J,Z,V,U,Q){super(G,Q);d4(W,s7,"HDNodeVoidWallet"),H8(this,{publicKey:X});let N=rY(XW(E9(X)),0,4);H8(this,{publicKey:X,fingerprint:N,parentFingerprint:Y,chainCode:J,path:Z,index:V,depth:U})}connect(W){return new fG(s7,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,W)}get extendedKey(){return X1(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),ZD(W8(["0x0488B21E",VA(this.depth,1),this.parentFingerprint,VA(this.index,4),this.chainCode,this.publicKey]))}hasPath(){return this.path!=null}deriveChild(W){let G=a8(W,"index");a(G<=4294967295,"invalid index","index",G);let X=this.path;if(X){if(X+="/"+(G&~qW),G&qW)X+="'"}let{IR:Y,IL:J}=B_(G,this.chainCode,this.publicKey,null),Z=n8.addPoints(J,this.publicKey,!0),V=t4(Z);return new fG(s7,V,Z,this.fingerprint,C0(Y),X,G,this.depth+1,this.provider)}derivePath(W){return E_(this,W)}}function UA(W){try{if(JSON.parse(W).encseed)return!0}catch(G){}return!1}function QA(W,G){let X=JSON.parse(W),Y=mG(G),J=f1(T8(X,"ethaddr:string!")),Z=XD(T8(X,"encseed:string!"));a(Z&&Z.length%16===0,"invalid encseed","json",W);let V=L0(S5(Y,Y,2000,32,"sha256")).slice(0,16),U=Z.slice(0,16),Q=Z.slice(16),N=new FU(V,U),q=GD(L0(N.decrypt(Q))),A="";for(let H=0;H<q.length;H++)A+=String.fromCharCode(q[H]);return{address:J,privateKey:e4(A)}}function $_(W){return new Promise((G)=>{setTimeout(()=>{G()},W)})}class Y6 extends hG{constructor(W,G){if(typeof W==="string"&&!W.startsWith("0x"))W="0x"+W;let X=typeof W==="string"?new n8(W):W;super(X,G)}connect(W){return new Y6(this.signingKey,W)}async encrypt(W,G){let X={address:this.address,privateKey:this.privateKey};return await kU(X,W,{progressCallback:G})}encryptSync(W){let G={address:this.address,privateKey:this.privateKey};return xU(G,W)}static#W(W){if(a(W,"invalid JSON wallet","json","[ REDACTED ]"),"mnemonic"in W&&W.mnemonic&&W.mnemonic.locale==="en"){let X=G6.fromEntropy(W.mnemonic.entropy),Y=N9.fromMnemonic(X,W.mnemonic.path);if(Y.address===W.address&&Y.privateKey===W.privateKey)return Y;console.log("WARNING: JSON mismatch address/privateKey != mnemonic; fallback onto private key")}let G=new Y6(W.privateKey);return a(G.address===W.address,"address/privateKey mismatch","json","[ REDACTED ]"),G}static async fromEncryptedJson(W,G,X){let Y=null;if(ZA(W))Y=await JD(W,G,X);else if(UA(W)){if(X)X(0),await $_(0);if(Y=QA(W,G),X)X(1),await $_(0)}return Y6.#W(Y)}static fromEncryptedJsonSync(W,G){let X=null;if(ZA(W))X=YD(W,G);else if(UA(W))X=QA(W,G);else a(!1,"invalid JSON wallet","json","[ REDACTED ]");return Y6.#W(X)}static createRandom(W){let G=N9.createRandom();if(W)return G.connect(W);return G}static fromPhrase(W,G){let X=N9.fromPhrase(W);if(G)return X.connect(G);return X}}var NA=(W)=>{let G=(X)=>X&&typeof X==="object"&&!Array.isArray(X)?Object.keys(X).sort().reduce((Y,J)=>(Y[J]=G(X[J]),Y),{}):Array.isArray(X)?X.map(G):X;return JSON.stringify(G(W))},Dt=(W,G)=>{try{return f1(RU(U9(NA(W)),G))}catch{return null}},F_=()=>{let W=new Map,G=(V,U)=>{if(W.size>4096)W.clear();if(!W.has(U))W.set(U,Dt(V,U));return W.get(U)},X=(V)=>V?.owner??V?._meta?.owner,Y=(V,U,Q)=>V===U||["write","delete"].includes(Q?.[V]),J=(V,U,Q)=>V===U||Q?.[V]==="delete",Z=(V,U,Q,N)=>{let q=U?G(V,U):null;if(!q)return!X(V?.value)&&!X(Q?.value);if(q!==V.originUser)return!1;let A=N==="remove"?J:Y,H=X(Q?.value);if(H)return A(q,H,Q.value.collaborators);let I=X(V.value);if(I)return q===I;return!0};return{op(V,U){if(!X(U?.value)&&!X(V.value))return!0;let Q={type:V.type,id:V.id,value:V.value,timestamp:V.timestamp,originUser:V.originUser};return Z(Q,V.signature,U,V.type==="remove"?"remove":"write")},node(V,U){if(!X(V?.value)&&!X(U?.value))return!0;let Q=V?.meta;if(!Q?.sig||!Q?.signedPayload)return!1;return Z(Q.signedPayload,Q.sig,U,"write")},removal(V){return!X(V?.value)},isOwned:(V)=>!!X(V)}};function S_(W,G=[]){let X=String(W??"").trim();if(!X)throw Error("sm-server: signing key required (GDB_SM_KEY)");let Y=X.includes(" ")?N9.fromPhrase(X):new Y6(X),J=f1(Y.address),Z=new Set([...G,J].map((N)=>{try{return f1(N)}catch{return null}}).filter(Boolean));return{address:J,superAdmins:Z,canonicalize:NA,signOps:async(N)=>{let q=[];for(let A of N){if(A?.signature&&A?.originEthAddress&&A?.originUser){q.push(A);continue}let H={...A,originUser:J},I=await Y.signMessage(U9(NA(H)));q.push({...A,originUser:J,originEthAddress:J,signature:I})}return q},verifyOp:(N)=>{if(!N?.signature||!N?.originEthAddress||!N?.originUser)return{ok:!1,reason:"missing-fields"};let q;try{if(q=f1(N.originEthAddress),f1(N.originUser)!==q)return{ok:!1,reason:"address-mismatch"}}catch{return{ok:!1,reason:"invalid-address"}}let{signature:A,originEthAddress:H,...I}=N;try{let w=RU(U9(NA(I)),A);if(f1(w)!==q)return{ok:!1,reason:"invalid-signature"};let{originUser:O,...M}=I;return{ok:!0,normalizedOriginEthAddress:q,payload:M}}catch(w){return{ok:!1,reason:"verify-error",error:w}}},isSuperAdmin:(N)=>{try{return Z.has(f1(N))}catch{return!1}}}}var Ct=["guest","user","manager","admin","superadmin"];function x_(W,G,X,{intervalMs:Y=4000,settleMs:J=15000,customRoles:Z=null}={}){let V=new Set([...Ct,...Object.keys(Z??{})]),U=async(A,H,I=null)=>{let w=f1(A);if(!V.has(H))throw Error(`Role '${H}' is not a defined role.`);let O=`user:${w}`,M=(await W.get(O)).result?.value||{};await W.put({...M,ethAddress:w,role:H,assignedByEthAddress:G.address,expiresAt:I?new Date(I).toISOString():null,priority:!0},O)},Q=async()=>{let A=new Map;for(let H of X){let I=H.then?.assignRole;if(!I)continue;let w=[];try{({results:w=[]}=W.map({query:H.if}))}catch(O){console.error("\u274C GOVERNANCE: rule evaluation failed:",O.message);continue}for(let O of w){if(!O.id.startsWith("user:"))continue;if(G.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 ${X.length} rule(s), every ${Y} ms.`)},J);return{assignRole:U,stop:()=>{if(clearTimeout(q),N)clearInterval(N)}}}var UD=(W)=>W&&typeof W==="object"?structuredClone(W):W,VD=(W,G=16)=>{let X=null,Y=null;return(...J)=>{if(Y??=Promise.withResolvers(),X!==null)clearTimeout(X);return X=setTimeout(async()=>{X=null;try{Y.resolve(await W(...J))}catch(Z){Y.reject(Z)}finally{Y=null}},G),Y.promise}},Pt=(W)=>{let G=!1;return()=>{if(G)return;G=!0,setImmediate(()=>{G=!1,W()})}};function Lt(W=1000){let G=[];return{add(X){if(X?.timestamp){if(G.push(X),G.length>W)G.splice(0,G.length-W)}},getOldest:()=>G[0]??null,getDelta:(X,Y)=>X?G.filter((J)=>Y(J.timestamp,X)>0):[...G],clear(){G=[]},entries:()=>[...G],setEntries(X=[]){if(G=Array.isArray(X)?[...X]:[],G.length>W)G.splice(0,G.length-W)}}}function Bt(){let W={nodes:{}};return{get nodes(){return W.nodes},set nodes(G){W.nodes=G??{}},upsert(G,X,Y){let J=W.nodes[G];W.nodes[G]={id:G,value:UD(X),edges:J?.edges?[...J.edges]:[],timestamp:Y}},get:(G)=>W.nodes[G]??null,link(G,X,Y){let J=W.nodes[G],Z=W.nodes[X];if(J&&Z&&!J.edges.includes(X))W.nodes[G]={...J,edges:[...J.edges,X],timestamp:Y}},unlink(G,X,Y){let J=W.nodes[G];if(J?.edges.includes(X))W.nodes[G]={...J,edges:J.edges.filter((Z)=>Z!==X),timestamp:Y}},getAllNodes:()=>Object.values(W.nodes),serialize:()=>WX.deflate(hU(W.nodes)),deserialize(G){let X=G instanceof Uint8Array?G:new Uint8Array(G);W.nodes=HW(WX.inflate(X))}}}function Et(W,G){let X=Rt(W);if(X&&X!==".")Mt(X,{recursive:!0});let Y=new Tt(W);Y.exec("PRAGMA journal_mode = WAL"),Y.exec("PRAGMA synchronous = NORMAL"),Y.exec(`
251
+ `)!==this.#G)throw Error(`BIP39 Wordlist for ${this.locale} FAILED`);this.#X=W}return this.#X}getWord(W){let G=this.#Y();return a(W>=0&&W<G.length,`invalid word index: ${W}`,"index",W),G[W]}getWordIndex(W){return this.#Y().indexOf(W)}}var as="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",ss="0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60",rO=null;class W6 extends iO{constructor(){super("en",as,ss)}static wordlist(){if(rO==null)rO=new W6;return rO}}function C_(W){return(1<<W)-1<<8-W&255}function ts(W){return(1<<W)-1&255}function aO(W,G){if(iY("NFKD"),G==null)G=W6.wordlist();let X=G.split(W);a(X.length%3===0&&X.length>=12&&X.length<=24,"invalid mnemonic length","mnemonic","[ REDACTED ]");let Y=new Uint8Array(Math.ceil(11*X.length/8)),J=0;for(let N=0;N<X.length;N++){let q=G.getWordIndex(X[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*X.length/3,V=X.length/3,U=C_(V),Q=L0(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,G){if(a(W.length%4===0&&W.length>=16&&W.length<=32,"invalid entropy size","entropy","[ REDACTED ]"),G==null)G=W6.wordlist();let X=[0],Y=11;for(let V=0;V<W.length;V++)if(Y>8)X[X.length-1]<<=8,X[X.length-1]|=W[V],Y-=8;else X[X.length-1]<<=Y,X[X.length-1]|=W[V]>>8-Y,X.push(W[V]&ts(8-Y)),Y+=3;let J=W.length/4,Z=parseInt(E9(W).substring(2,4),16)&C_(J);return X[X.length-1]<<=J,X[X.length-1]|=Z>>8-J,G.join(X.map((V)=>G.getWord(V)))}var tO={};class G6{phrase;password;wordlist;entropy;constructor(W,G,X,Y,J){if(Y==null)Y="";if(J==null)J=W6.wordlist();d4(W,tO,"Mnemonic"),H8(this,{phrase:X,password:Y,wordlist:J,entropy:G})}computeSeed(){let W=U9("mnemonic"+this.password,"NFKD");return S5(U9(this.phrase,"NFKD"),W,2048,64,"sha512")}static fromPhrase(W,G,X){let Y=aO(W,X);return W=sO(L0(Y),X),new G6(tO,Y,W,G,X)}static fromEntropy(W,G,X){let Y=L0(W,"entropy"),J=sO(Y,X);return new G6(tO,C0(Y),J,G,X)}static entropyToPhrase(W,G){let X=L0(W,"entropy");return sO(X,G)}static phraseToEntropy(W,G){return aO(W,G)}static isValidMnemonic(W,G){try{return aO(W,G),!0}catch(X){}return!1}}/*! MIT License. Copyright 2015-2022 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */var Q9=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},eO=function(W,G,X,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 G==="function"?W!==G||!J:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,X):J?J.value=X:G.set(W,X),X},GA,y5,a7,es={16:10,24:12,32:14},Wt=[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],WA=[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],Gt=[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],Xt=[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],Yt=[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],Jt=[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],Zt=[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],Vt=[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],Ut=[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],Qt=[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],Nt=[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],qt=[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],Ht=[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],At=[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 G=[];for(let X=0;X<W.length;X+=4)G.push(W[X]<<24|W[X+1]<<16|W[X+2]<<8|W[X+3]);return G}class XA{get key(){return Q9(this,GA,"f").slice()}constructor(W){if(GA.set(this,void 0),y5.set(this,void 0),a7.set(this,void 0),!(this instanceof XA))throw Error("AES must be instanitated with `new`");eO(this,GA,new Uint8Array(W),"f");let G=es[this.key.length];if(G==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<=G;N++)Q9(this,a7,"f").push([0,0,0,0]),Q9(this,y5,"f").push([0,0,0,0]);let X=(G+1)*4,Y=this.key.length/4,J=WD(this.key),Z;for(let N=0;N<Y;N++)Z=N>>2,Q9(this,a7,"f")[Z][N%4]=J[N],Q9(this,y5,"f")[G-Z][N%4]=J[N];let V=0,U=Y,Q;while(U<X){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]^Wt[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<X)q=U>>2,A=U%4,Q9(this,a7,"f")[q][A]=J[N],Q9(this,y5,"f")[G-q][A]=J[N++],U++}for(let N=1;N<G;N++)for(let q=0;q<4;q++)Q=Q9(this,y5,"f")[N][q],Q9(this,y5,"f")[N][q]=Nt[Q>>24&255]^qt[Q>>16&255]^Ht[Q>>8&255]^At[Q&255]}encrypt(W){if(W.length!=16)throw TypeError("invalid plaintext size (must be 16 bytes)");let G=Q9(this,a7,"f").length-1,X=[0,0,0,0],Y=WD(W);for(let V=0;V<4;V++)Y[V]^=Q9(this,a7,"f")[0][V];for(let V=1;V<G;V++){for(let U=0;U<4;U++)X[U]=Gt[Y[U]>>24&255]^Xt[Y[(U+1)%4]>>16&255]^Yt[Y[(U+2)%4]>>8&255]^Jt[Y[(U+3)%4]&255]^Q9(this,a7,"f")[V][U];Y=X.slice()}let J=new Uint8Array(16),Z=0;for(let V=0;V<4;V++)Z=Q9(this,a7,"f")[G][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 G=Q9(this,y5,"f").length-1,X=[0,0,0,0],Y=WD(W);for(let V=0;V<4;V++)Y[V]^=Q9(this,y5,"f")[0][V];for(let V=1;V<G;V++){for(let U=0;U<4;U++)X[U]=Zt[Y[U]>>24&255]^Vt[Y[(U+3)%4]>>16&255]^Ut[Y[(U+2)%4]>>8&255]^Qt[Y[(U+1)%4]&255]^Q9(this,y5,"f")[V][U];Y=X.slice()}let J=new Uint8Array(16),Z=0;for(let V=0;V<4;V++)Z=Q9(this,y5,"f")[G][V],J[4*V]=(WA[Y[V]>>24&255]^Z>>24)&255,J[4*V+1]=(WA[Y[(V+3)%4]>>16&255]^Z>>16)&255,J[4*V+2]=(WA[Y[(V+2)%4]>>8&255]^Z>>8)&255,J[4*V+3]=(WA[Y[(V+1)%4]&255]^Z)&255;return J}}GA=new WeakMap,y5=new WeakMap,a7=new WeakMap;class EU{constructor(W,G,X){if(X&&!(this instanceof X))throw Error(`${W} must be instantiated with "new"`);Object.defineProperties(this,{aes:{enumerable:!0,value:new XA(G)},name:{enumerable:!0,value:W}})}}var YA=function(W,G,X,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 G==="function"?W!==G||!J:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,X):J?J.value=X:G.set(W,X),X},ZJ=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},$U,X6;class FU extends EU{constructor(W,G){super("ECC",W,FU);if($U.set(this,void 0),X6.set(this,void 0),G){if(G.length%16)throw TypeError("invalid iv size (must be 16 bytes)");YA(this,$U,new Uint8Array(G),"f")}else YA(this,$U,new Uint8Array(16),"f");YA(this,X6,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 G=new Uint8Array(W.length);for(let X=0;X<W.length;X+=16){for(let Y=0;Y<16;Y++)ZJ(this,X6,"f")[Y]^=W[X+Y];YA(this,X6,this.aes.encrypt(ZJ(this,X6,"f")),"f"),G.set(ZJ(this,X6,"f"),X)}return G}decrypt(W){if(W.length%16)throw TypeError("invalid ciphertext size (must be multiple of 16 bytes)");let G=new Uint8Array(W.length);for(let X=0;X<W.length;X+=16){let Y=this.aes.decrypt(W.subarray(X,X+16));for(let J=0;J<16;J++)G[X+J]=Y[J]^ZJ(this,X6,"f")[J],ZJ(this,X6,"f")[J]=W[X+J]}return G}}$U=new WeakMap,X6=new WeakMap;var VJ=function(W,G,X,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 G==="function"?W!==G||!J:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,X):J?J.value=X:G.set(W,X),X},v5=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},SU,bG,g5;class NW extends EU{constructor(W,G){super("CTR",W,NW);if(SU.set(this,void 0),bG.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,bG,16,"f"),G==null)G=1;if(typeof G==="number")this.setCounterValue(G);else this.setCounterBytes(G)}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 G=15;G>=0;--G)v5(this,g5,"f")[G]=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 G,X;let Y=new Uint8Array(W);for(let J=0;J<Y.length;J++){if(v5(this,bG,"f")===16)VJ(this,SU,this.aes.encrypt(v5(this,g5,"f")),"f"),VJ(this,bG,0,"f"),this.increment();Y[J]^=v5(this,SU,"f")[VJ(this,bG,(X=v5(this,bG,"f"),G=X++,X),"f"),G]}return Y}decrypt(W){return this.encrypt(W)}}SU=new WeakMap,bG=new WeakMap,g5=new WeakMap;function GD(W){if(W.length<16)throw TypeError("PKCS#7 invalid length");let G=W[W.length-1];if(G>16)throw TypeError("PKCS#7 padding byte out of range");let X=W.length-G;for(let Y=0;Y<G;Y++)if(W[X+Y]!==G)throw TypeError("PKCS#7 invalid padding byte");return new Uint8Array(W.subarray(0,X))}function XD(W){if(typeof W==="string"&&!W.startsWith("0x"))W="0x"+W;return V7(W)}function UJ(W,G){W=String(W);while(W.length<G)W="0"+W;return W}function mG(W){if(typeof W==="string")return U9(W,"NFKC");return V7(W)}function T8(W,G){let X=G.match(/^([a-z0-9$_.-]*)(:([a-z]+))?(!)?$/i);a(X!=null,"invalid path","path",G);let Y=X[1],J=X[3],Z=X[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 XD(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 M_="m/44'/60'/0'/0/0";function ZA(W){try{let G=JSON.parse(W);if((G.version!=null?parseInt(G.version):0)===3)return!0}catch(G){}return!1}function zt(W,G,X){if(T8(W,"crypto.cipher:string")==="aes-128-ctr"){let J=T8(W,"crypto.cipherparams.iv:data!"),Z=new NW(G,J);return C0(Z.decrypt(X))}X1(!1,"unsupported cipher","UNSUPPORTED_OPERATION",{operation:"decrypt"})}function JA(W,G){let X=L0(G),Y=T8(W,"crypto.ciphertext:data!"),J=C0(V8(G8([X.slice(16,32),Y]))).substring(2);a(J===T8(W,"crypto.mac:string!").toLowerCase(),"incorrect password","password","[ REDACTED ]");let Z=zt(W,X.slice(0,16),Y),V=t4(Z);if(W.address){let N=W.address.toLowerCase();if(!N.startsWith("0x"))N="0x"+N;a(f1(N)===V,"keystore address/privateKey mismatch","address",W.address)}let U={address:V,privateKey:Z};if(T8(W,"x-ethers.version:string")==="0.1"){let N=X.slice(32,64),q=T8(W,"x-ethers.mnemonicCiphertext:data!"),A=T8(W,"x-ethers.mnemonicCounter:data!"),H=new NW(N,A);U.mnemonic={path:T8(W,"x-ethers.path:string")||M_,locale:T8(W,"x-ethers.locale:string")||"en",entropy:C0(L0(H.decrypt(q)))}}return U}function R_(W){let G=T8(W,"crypto.kdf:string");if(G&&typeof G==="string"){if(G.toLowerCase()==="scrypt"){let X=T8(W,"crypto.kdfparams.salt:data!"),Y=T8(W,"crypto.kdfparams.n:int!"),J=T8(W,"crypto.kdfparams.r:int!"),Z=T8(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",G);let V=T8(W,"crypto.kdfparams.dklen:int!");return a(V===32,"invalid kdf.dklen","kdf.dflen",V),{name:"scrypt",salt:X,N:Y,r:J,p:Z,dkLen:64}}else if(G.toLowerCase()==="pbkdf2"){let X=T8(W,"crypto.kdfparams.salt:data!"),Y=T8(W,"crypto.kdfparams.prf:string!"),J=Y.split("-").pop();a(J==="sha256"||J==="sha512","invalid kdf.pdf","kdf.pdf",Y);let Z=T8(W,"crypto.kdfparams.c:int!"),V=T8(W,"crypto.kdfparams.dklen:int!");return a(V===32,"invalid kdf.dklen","kdf.dklen",V),{name:"pbkdf2",salt:X,count:Z,dkLen:V,algorithm:J}}}a(!1,"unsupported key-derivation function","kdf",G)}function YD(W,G){let X=JSON.parse(W),Y=mG(G),J=R_(X);if(J.name==="pbkdf2"){let{salt:A,count:H,dkLen:I,algorithm:w}=J,O=S5(Y,A,H,I,w);return JA(X,O)}X1(J.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:J});let{salt:Z,N:V,r:U,p:Q,dkLen:N}=J,q=VW(Y,Z,V,U,Q,N);return JA(X,q)}function T_(W){return new Promise((G)=>{setTimeout(()=>{G()},W)})}async function JD(W,G,X){let Y=JSON.parse(W),J=mG(G),Z=R_(Y);if(Z.name==="pbkdf2"){if(X)X(0),await T_(0);let{salt:H,count:I,dkLen:w,algorithm:O}=Z,M=S5(J,H,I,w,O);if(X)X(1),await T_(0);return JA(Y,M)}X1(Z.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:Z});let{salt:V,N:U,r:Q,p:N,dkLen:q}=Z,A=await ZW(J,V,U,Q,N,q,X);return JA(Y,A)}function P_(W){let G=W.salt!=null?L0(W.salt,"options.salt"):x5(32),X=131072,Y=8,J=1;if(W.scrypt){if(W.scrypt.N)X=W.scrypt.N;if(W.scrypt.r)Y=W.scrypt.r;if(W.scrypt.p)J=W.scrypt.p}return a(typeof X==="number"&&X>0&&Number.isSafeInteger(X)&&(BigInt(X)&BigInt(X-1))===BigInt(0),"invalid scrypt N parameter","options.N",X),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:G,N:X,r:Y,p:J}}function L_(W,G,X,Y){let J=L0(X.privateKey,"privateKey"),Z=Y.iv!=null?L0(Y.iv,"options.iv"):x5(16);a(Z.length===16,"invalid options.iv length","options.iv",Y.iv);let V=Y.uuid!=null?L0(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 NW(U,Z),q=L0(N.encrypt(J)),A=V8(G8([Q,q])),H={address:X.address.substring(2).toLowerCase(),id:SH(V),version:3,Crypto:{cipher:"aes-128-ctr",cipherparams:{iv:C0(Z).substring(2)},ciphertext:C0(q).substring(2),kdf:"scrypt",kdfparams:{salt:C0(G.salt).substring(2),n:G.N,dklen:32,p:G.p,r:G.r},mac:A.substring(2)}};if(X.mnemonic){let I=Y.client!=null?Y.client:`ethers/${TH}`,w=X.mnemonic.path||M_,O=X.mnemonic.locale||"en",M=W.slice(32,64),S=L0(X.mnemonic.entropy,"account.mnemonic.entropy"),v=x5(16),p=new NW(M,v),g=L0(p.encrypt(S)),c=new Date,h="UTC--"+(c.getUTCFullYear()+"-"+UJ(c.getUTCMonth()+1,2)+"-"+UJ(c.getUTCDate(),2)+"T"+UJ(c.getUTCHours(),2)+"-"+UJ(c.getUTCMinutes(),2)+"-"+UJ(c.getUTCSeconds(),2)+".0Z")+"--"+H.address;H["x-ethers"]={client:I,gethFilename:h,path:w,locale:O,mnemonicCounter:C0(v).substring(2),mnemonicCiphertext:C0(g).substring(2),version:"0.1"}}return JSON.stringify(H)}function xU(W,G,X){if(X==null)X={};let Y=mG(G),J=P_(X),Z=VW(Y,J.salt,J.N,J.r,J.p,64);return L_(L0(Z),J,W,X)}async function kU(W,G,X){if(X==null)X={};let Y=mG(G),J=P_(X),Z=await ZW(Y,J.salt,J.N,J.r,J.p,64,X.progressCallback);return L_(L0(Z),J,W,X)}var _U="m/44'/60'/0'/0/0",It=new Uint8Array([66,105,116,99,111,105,110,32,115,101,101,100]),qW=2147483648,wt=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),jt="0123456789abcdef";function VA(W,G){let X="";while(W)X=jt[W%16]+X,W=Math.trunc(W/16);while(X.length<G*2)X="0"+X;return"0x"+X}function ZD(W){let G=L0(W),X=rY(E9(E9(G)),0,4),Y=G8([G,X]);return $H(Y)}var s7={};function B_(W,G,X,Y){let J=new Uint8Array(37);if(W&qW)X1(Y!=null,"cannot derive child of neutered node","UNSUPPORTED_OPERATION",{operation:"deriveChild"}),J.set(L0(Y),1);else J.set(L0(X));for(let V=24;V>=0;V-=8)J[33+(V>>3)]=W>>24-V&255;let Z=L0(GW("sha512",G,J));return{IL:Z.slice(0,32),IR:Z.slice(32)}}function E_(W,G){let X=G.split("/");if(a(X.length>0,"invalid path","path",G),X[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",G),X.shift();let Y=W;for(let J=0;J<X.length;J++){let Z=X[J];if(Z.match(/^[0-9]+'$/)){let V=parseInt(Z.substring(0,Z.length-1));a(V<qW,"invalid path index",`path[${J}]`,Z),Y=Y.deriveChild(qW+V)}else if(Z.match(/^[0-9]+$/)){let V=parseInt(Z);a(V<qW,"invalid path index",`path[${J}]`,Z),Y=Y.deriveChild(V)}else a(!1,"invalid path component",`path[${J}]`,Z)}return Y}class N9 extends hG{publicKey;fingerprint;parentFingerprint;mnemonic;chainCode;path;index;depth;constructor(W,G,X,Y,J,Z,V,U,Q){super(G,Q);d4(W,s7,"HDNodeWallet"),H8(this,{publicKey:G.compressedPublicKey});let N=rY(XW(E9(this.publicKey)),0,4);H8(this,{parentFingerprint:X,fingerprint:N,chainCode:Y,path:J,index:Z,depth:V}),H8(this,{mnemonic:U})}connect(W){return new N9(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},G=this.mnemonic;if(this.path&&G&&G.wordlist.locale==="en"&&G.password==="")W.mnemonic={path:this.path,locale:"en",entropy:G.entropy};return W}async encrypt(W,G){return await kU(this.#W(),W,{progressCallback:G})}encryptSync(W){return xU(this.#W(),W)}get extendedKey(){return X1(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),ZD(G8(["0x0488ADE4",VA(this.depth,1),this.parentFingerprint,VA(this.index,4),this.chainCode,G8(["0x00",this.privateKey])]))}hasPath(){return this.path!=null}neuter(){return new fG(s7,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.provider)}deriveChild(W){let G=a8(W,"index");a(G<=4294967295,"invalid index","index",G);let X=this.path;if(X){if(X+="/"+(G&~qW),G&qW)X+="'"}let{IR:Y,IL:J}=B_(G,this.chainCode,this.publicKey,this.privateKey),Z=new n8(U7((sY(J)+BigInt(this.privateKey))%wt,32));return new N9(s7,Z,this.fingerprint,C0(Y),X,G,this.depth+1,this.mnemonic,this.provider)}derivePath(W){return E_(this,W)}static#G(W,G){a(i7(W),"invalid seed","seed","[REDACTED]");let X=L0(W,"seed");a(X.length>=16&&X.length<=64,"invalid seed","seed","[REDACTED]");let Y=L0(GW("sha512",It,X)),J=new n8(C0(Y.slice(0,32)));return new N9(s7,J,"0x00000000",C0(Y.slice(32)),"m",0,0,G,null)}static fromExtendedKey(W){let G=A8(FH(W));a(G.length===82||ZD(G.slice(0,78))===W,"invalid extended key","extendedKey","[ REDACTED ]");let X=G[4],Y=C0(G.slice(5,9)),J=parseInt(C0(G.slice(9,13)).substring(2),16),Z=C0(G.slice(13,45)),V=G.slice(45,78);switch(C0(G.slice(0,4))){case"0x0488b21e":case"0x043587cf":{let U=C0(V);return new fG(s7,t4(U),U,Y,Z,null,J,X,null)}case"0x0488ade4":case"0x04358394 ":if(V[0]!==0)break;return new N9(s7,new n8(V.slice(1)),Y,Z,null,J,X,null,null)}a(!1,"invalid extended key prefix","extendedKey","[ REDACTED ]")}static createRandom(W,G,X){if(W==null)W="";if(G==null)G=_U;if(X==null)X=W6.wordlist();let Y=G6.fromEntropy(x5(16),W,X);return N9.#G(Y.computeSeed(),Y).derivePath(G)}static fromMnemonic(W,G){if(!G)G=_U;return N9.#G(W.computeSeed(),W).derivePath(G)}static fromPhrase(W,G,X,Y){if(G==null)G="";if(X==null)X=_U;if(Y==null)Y=W6.wordlist();let J=G6.fromPhrase(W,G,Y);return N9.#G(J.computeSeed(),J).derivePath(X)}static fromSeed(W){return N9.#G(W,null)}}class fG extends BU{publicKey;fingerprint;parentFingerprint;chainCode;path;index;depth;constructor(W,G,X,Y,J,Z,V,U,Q){super(G,Q);d4(W,s7,"HDNodeVoidWallet"),H8(this,{publicKey:X});let N=rY(XW(E9(X)),0,4);H8(this,{publicKey:X,fingerprint:N,parentFingerprint:Y,chainCode:J,path:Z,index:V,depth:U})}connect(W){return new fG(s7,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,W)}get extendedKey(){return X1(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),ZD(G8(["0x0488B21E",VA(this.depth,1),this.parentFingerprint,VA(this.index,4),this.chainCode,this.publicKey]))}hasPath(){return this.path!=null}deriveChild(W){let G=a8(W,"index");a(G<=4294967295,"invalid index","index",G);let X=this.path;if(X){if(X+="/"+(G&~qW),G&qW)X+="'"}let{IR:Y,IL:J}=B_(G,this.chainCode,this.publicKey,null),Z=n8.addPoints(J,this.publicKey,!0),V=t4(Z);return new fG(s7,V,Z,this.fingerprint,C0(Y),X,G,this.depth+1,this.provider)}derivePath(W){return E_(this,W)}}function UA(W){try{if(JSON.parse(W).encseed)return!0}catch(G){}return!1}function QA(W,G){let X=JSON.parse(W),Y=mG(G),J=f1(T8(X,"ethaddr:string!")),Z=XD(T8(X,"encseed:string!"));a(Z&&Z.length%16===0,"invalid encseed","json",W);let V=L0(S5(Y,Y,2000,32,"sha256")).slice(0,16),U=Z.slice(0,16),Q=Z.slice(16),N=new FU(V,U),q=GD(L0(N.decrypt(Q))),A="";for(let H=0;H<q.length;H++)A+=String.fromCharCode(q[H]);return{address:J,privateKey:e4(A)}}function $_(W){return new Promise((G)=>{setTimeout(()=>{G()},W)})}class Y6 extends hG{constructor(W,G){if(typeof W==="string"&&!W.startsWith("0x"))W="0x"+W;let X=typeof W==="string"?new n8(W):W;super(X,G)}connect(W){return new Y6(this.signingKey,W)}async encrypt(W,G){let X={address:this.address,privateKey:this.privateKey};return await kU(X,W,{progressCallback:G})}encryptSync(W){let G={address:this.address,privateKey:this.privateKey};return xU(G,W)}static#W(W){if(a(W,"invalid JSON wallet","json","[ REDACTED ]"),"mnemonic"in W&&W.mnemonic&&W.mnemonic.locale==="en"){let X=G6.fromEntropy(W.mnemonic.entropy),Y=N9.fromMnemonic(X,W.mnemonic.path);if(Y.address===W.address&&Y.privateKey===W.privateKey)return Y;console.log("WARNING: JSON mismatch address/privateKey != mnemonic; fallback onto private key")}let G=new Y6(W.privateKey);return a(G.address===W.address,"address/privateKey mismatch","json","[ REDACTED ]"),G}static async fromEncryptedJson(W,G,X){let Y=null;if(ZA(W))Y=await JD(W,G,X);else if(UA(W)){if(X)X(0),await $_(0);if(Y=QA(W,G),X)X(1),await $_(0)}return Y6.#W(Y)}static fromEncryptedJsonSync(W,G){let X=null;if(ZA(W))X=YD(W,G);else if(UA(W))X=QA(W,G);else a(!1,"invalid JSON wallet","json","[ REDACTED ]");return Y6.#W(X)}static createRandom(W){let G=N9.createRandom();if(W)return G.connect(W);return G}static fromPhrase(W,G){let X=N9.fromPhrase(W);if(G)return X.connect(G);return X}}var NA=(W)=>{let G=(X)=>X&&typeof X==="object"&&!Array.isArray(X)?Object.keys(X).sort().reduce((Y,J)=>(Y[J]=G(X[J]),Y),{}):Array.isArray(X)?X.map(G):X;return JSON.stringify(G(W))},Dt=(W,G)=>{try{return f1(RU(U9(NA(W)),G))}catch{return null}},F_=()=>{let W=new Map,G=(V,U)=>{if(W.size>4096)W.clear();if(!W.has(U))W.set(U,Dt(V,U));return W.get(U)},X=(V)=>V?.owner??V?._meta?.owner,Y=(V,U,Q)=>V===U||["write","delete"].includes(Q?.[V]),J=(V,U,Q)=>V===U||Q?.[V]==="delete",Z=(V,U,Q,N)=>{let q=U?G(V,U):null;if(!q)return!X(V?.value)&&!X(Q?.value);if(q!==V.originUser)return!1;let A=N==="remove"?J:Y,H=X(Q?.value);if(H)return A(q,H,Q.value.collaborators);let I=X(V.value);if(I)return q===I;return!0};return{op(V,U){if(!X(U?.value)&&!X(V.value))return!0;let Q={type:V.type,id:V.id,value:V.value,timestamp:V.timestamp,originUser:V.originUser};return Z(Q,V.signature,U,V.type==="remove"?"remove":"write")},node(V,U){if(!X(V?.value)&&!X(U?.value))return!0;let Q=V?.meta;if(!Q?.sig||!Q?.signedPayload)return!1;return Z(Q.signedPayload,Q.sig,U,"write")},removal(V){return!X(V?.value)},isOwned:(V)=>!!X(V)}};function S_(W,G=[]){let X=String(W??"").trim();if(!X)throw Error("sm-server: signing key required (GDB_SM_KEY)");let Y=X.includes(" ")?N9.fromPhrase(X):new Y6(X),J=f1(Y.address),Z=new Set([...G,J].map((N)=>{try{return f1(N)}catch{return null}}).filter(Boolean));return{address:J,superAdmins:Z,canonicalize:NA,signOps:async(N)=>{let q=[];for(let A of N){if(A?.signature&&A?.originEthAddress&&A?.originUser){q.push(A);continue}let H={...A,originUser:J},I=await Y.signMessage(U9(NA(H)));q.push({...A,originUser:J,originEthAddress:J,signature:I})}return q},verifyOp:(N)=>{if(!N?.signature||!N?.originEthAddress||!N?.originUser)return{ok:!1,reason:"missing-fields"};let q;try{if(q=f1(N.originEthAddress),f1(N.originUser)!==q)return{ok:!1,reason:"address-mismatch"}}catch{return{ok:!1,reason:"invalid-address"}}let{signature:A,originEthAddress:H,...I}=N;try{let w=RU(U9(NA(I)),A);if(f1(w)!==q)return{ok:!1,reason:"invalid-signature"};let{originUser:O,...M}=I;return{ok:!0,normalizedOriginEthAddress:q,payload:M}}catch(w){return{ok:!1,reason:"verify-error",error:w}}},isSuperAdmin:(N)=>{try{return Z.has(f1(N))}catch{return!1}}}}var Ct=["guest","user","manager","admin","superadmin"];function x_(W,G,X,{intervalMs:Y=4000,settleMs:J=15000,customRoles:Z=null}={}){let V=new Set([...Ct,...Object.keys(Z??{})]),U=async(A,H,I=null)=>{let w=f1(A);if(!V.has(H))throw Error(`Role '${H}' is not a defined role.`);let O=`user:${w}`,M=(await W.get(O)).result?.value||{};await W.put({...M,ethAddress:w,role:H,assignedByEthAddress:G.address,expiresAt:I?new Date(I).toISOString():null,priority:!0},O)},Q=async()=>{let A=new Map;for(let H of X){let I=H.then?.assignRole;if(!I)continue;let w=[];try{({results:w=[]}=W.map({query:H.if}))}catch(O){console.error("\u274C GOVERNANCE: rule evaluation failed:",O.message);continue}for(let O of w){if(!O.id.startsWith("user:"))continue;if(G.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 ${X.length} rule(s), every ${Y} ms.`)},J);return{assignRole:U,stop:()=>{if(clearTimeout(q),N)clearInterval(N)}}}var UD=(W)=>W&&typeof W==="object"?structuredClone(W):W,VD=(W,G=16)=>{let X=null,Y=null;return(...J)=>{if(Y??=Promise.withResolvers(),X!==null)clearTimeout(X);return X=setTimeout(async()=>{X=null;try{Y.resolve(await W(...J))}catch(Z){Y.reject(Z)}finally{Y=null}},G),Y.promise}},Pt=(W)=>{let G=!1;return()=>{if(G)return;G=!0,setImmediate(()=>{G=!1,W()})}};function Lt(W=1000){let G=[];return{add(X){if(X?.timestamp){if(G.push(X),G.length>W)G.splice(0,G.length-W)}},getOldest:()=>G[0]??null,getDelta:(X,Y)=>X?G.filter((J)=>Y(J.timestamp,X)>0):[...G],clear(){G=[]},entries:()=>[...G],setEntries(X=[]){if(G=Array.isArray(X)?[...X]:[],G.length>W)G.splice(0,G.length-W)}}}function Bt(){let W={nodes:{}};return{get nodes(){return W.nodes},set nodes(G){W.nodes=G??{}},upsert(G,X,Y){let J=W.nodes[G];W.nodes[G]={id:G,value:UD(X),edges:J?.edges?[...J.edges]:[],timestamp:Y}},get:(G)=>W.nodes[G]??null,link(G,X,Y){let J=W.nodes[G],Z=W.nodes[X];if(J&&Z&&!J.edges.includes(X))W.nodes[G]={...J,edges:[...J.edges,X],timestamp:Y}},unlink(G,X,Y){let J=W.nodes[G];if(J?.edges.includes(X))W.nodes[G]={...J,edges:J.edges.filter((Z)=>Z!==X),timestamp:Y}},getAllNodes:()=>Object.values(W.nodes),serialize:()=>WX.deflate(hU(W.nodes)),deserialize(G){let X=G instanceof Uint8Array?G:new Uint8Array(G);W.nodes=HW(WX.inflate(X))}}}function Et(W,G){let X=Rt(W);if(X&&X!==".")Mt(X,{recursive:!0});let Y=new Tt(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=G;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 $t(W=process.env.GDB_ROOM||process.argv.slice(2).find((Y)=>!Y.startsWith("--"))||"default",G={},X=process.env.GDB_DB_PATH||"./data.sqlite"){console.info(`\u26A1 GDBServer [${W}] initializing (bun:sqlite)`);let{password:Y,saveDelay:J=200,oplogSize:Z=1000,rtcPolyfill:V=null,rtc:U=!0,room:Q=null,sm:N=null,relay:q=null}=G,A=U?.constructor===Object?U:{},{turnConfig:H=null}=A,I=A.relayUrls??((process.env.GDB_RELAY_URLS??"").split(",").map((p)=>p.trim()).filter(Boolean).length?process.env.GDB_RELAY_URLS.split(",").map((p)=>p.trim()).filter(Boolean):null),w=q??(process.argv.includes("--relay")||["1","true"].includes(process.env.GDB_RELAY??"")),O=null;if(w)O=Tx(q?.constructor===Object?q:{}),I=[...I??[],`ws://127.0.0.1:${O.port}`];let M=A.cells??(process.argv.includes("--cells")||["1","true"].includes(process.env.GDB_CELLS??"")),S=Q??process.argv.includes("--room"),v=N?.constructor===Object?N:null,f=v?.key??process.env.GDB_SM_KEY??null,g=v?.superAdmins??(process.env.GDB_SUPERADMINS??"").split(",").map((p)=>p.trim()).filter(Boolean),c=null;if(f)c=S_(f,g),console.info(`\uD83D\uDEE1\uFE0F SM: signing as ${c.address}`);else if(v)console.warn("\u26A0\uFE0F SM: sm configured but no signing key (GDB_SM_KEY) \u2014 running unsigned, memory-only role.");let l=F_(),h=Bt(),e=uC(),m=(p,X0)=>{p.meta={author:X0.originEthAddress,sig:X0.signature,signedPayload:{type:"upsert",id:X0.id,value:X0.value,timestamp:X0.timestamp,originUser:X0.originUser}}},W0=Lt(Z),H0=Et(X,W),k=[],i=[],B=[],L=null,b=null,s=null,o={},E=()=>{let p=H0.getBlob("graph");if(p?.byteLength)h.deserialize(p),console.info(`\u2705 Graph loaded: ${h.getAllNodes().length} nodes`)},$=()=>{H0.putBlob("graph",h.serialize())},_=()=>{let p=H0.getText("timestamp");if(p){let X0=JSON.parse(p);if(X0?.physical&&X0?.logical)L=X0,e.update(L)}},x=()=>{H0.putText("timestamp",JSON.stringify(L??null))},R=()=>{let p=H0.getBlob("oplog");if(p?.byteLength){let X0=HW(WX.inflate(p));if(Array.isArray(X0))W0.setEntries(X0),console.info(`\u2705 Oplog loaded: ${X0.length} ops`)}},u=()=>{H0.putBlob("oplog",WX.deflate(hU(W0.entries())))},J0=(p)=>{if(!p)return;if(!L||e.compare(p,L)>0)L=p,x()},V0=()=>{let p=0,X0=0;for(let[A0,F0]of Object.entries(h.nodes)){let j1=`${A0}\x00${F0.timestamp.physical}\x00${F0.timestamp.logical}`,l0=2166136261,N0=3386659096;for(let E0=0;E0<j1.length;E0++)l0=Math.imul(l0^j1.charCodeAt(E0),16777619),N0=Math.imul(N0^j1.charCodeAt(E0),16777619);p^=l0,X0^=N0}return`${p>>>0}.${X0>>>0}`},Q0=VD(()=>$(),J),B0=VD(()=>u(),J),v0=()=>{let p={...h.nodes};k.forEach((X0)=>X0(p))},Q1=Pt(()=>v0()),u1=async(p)=>{if(!p?.length||!b)return!1;try{return await b.send(p),!0}catch(X0){return console.error("\u274C safeSend failed:",X0?.message),!1}},k0=async(p)=>{let X0=await u1(p);return setTimeout(()=>u1(p),2500),X0},h1=async(p)=>{let X0=!1,A0=null,F0=(N0)=>{if(N0&&(!A0||e.compare(N0,A0)>0))A0=N0},j1=(N0)=>{try{if(N0 instanceof Uint8Array||N0 instanceof ArrayBuffer){let E0=HW(N0);return Array.isArray(E0)?E0:[E0]}if(Array.isArray(N0))return N0;if(N0&&typeof N0==="object")return HW(WX.inflate(new Uint8Array(Object.values(N0))))}catch(E0){console.error("\u274C decode failed",E0)}return null},l0={upsert(N0){let E0=h.get(N0.id);if(!E0){for(let f0 of W0.getDelta(null))if(f0.type==="remove"&&f0.id===N0.id&&e.compare(f0.timestamp,N0.timestamp)>=0)return}if(!l.op(N0,E0))return console.warn(`\u26A0\uFE0F [SYNC-AUTH] upsert denied: ${N0.id}`);let{resolved:R1,value:F1,timestamp:v1}=hC(E0,N0,e);if(!R1)return;if(h.upsert(N0.id,F1,v1),N0.signature&&l.isOwned(F1))m(h.get(N0.id),N0);e.update(v1),W0.add({type:"upsert",id:N0.id,timestamp:v1}),X0=!0,F0(v1)},remove(N0){let E0=h.get(N0.id);if(!E0||e.compare(E0.timestamp,N0.timestamp)>=0)return;if(!l.op(N0,E0))return console.warn(`\u26A0\uFE0F [SYNC-AUTH] remove denied: ${N0.id}`);delete h.nodes[N0.id],Object.values(h.nodes).forEach((R1)=>{R1.edges=(R1.edges??[]).filter((F1)=>F1!==N0.id)}),e.update(N0.timestamp),W0.add({type:"remove",id:N0.id,timestamp:N0.timestamp}),X0=!0,F0(N0.timestamp)},link(N0){let E0=h.get(N0.sourceId),R1=h.get(N0.targetId);if(!E0||!R1||e.compare(E0.timestamp,N0.timestamp)>=0)return;h.link(N0.sourceId,N0.targetId,N0.timestamp),e.update(N0.timestamp),W0.add({type:"link",...N0}),X0=!0,F0(N0.timestamp)},unlink(N0){let E0=h.get(N0.sourceId);if(!E0||e.compare(E0.timestamp,N0.timestamp)>=0)return;h.unlink(N0.sourceId,N0.targetId,N0.timestamp),e.update(N0.timestamp),W0.add({type:"unlink",...N0}),X0=!0,F0(N0.timestamp)},async sync({timestamp:N0,digest:E0}){if(E0&&E0===V0())return console.info("\uD83D\uDFF0 State digests match \u2014 nothing to send.");let R1=W0.getOldest();if(N0==null||R1&&e.compare(N0,R1.timestamp)<0){console.info("\uD83D\uDCA5 Sending FULL state sync:",h.getAllNodes().length,"nodes"),await k0([{type:"fullStateSync",graphData:h.nodes,removals:W0.getDelta(null).filter((g0)=>g0.type==="remove"),timestamp:L}]);return}let v1=W0.getDelta(null);if(!v1.length)return;let f0=v1.flatMap((g0)=>{if(g0.type!=="upsert")return[g0];let N1=h.get(g0.id);if(!N1)return[];if(N1.meta)return[{...N1.meta.signedPayload,originEthAddress:N1.meta.author,signature:N1.meta.sig}];return[{...g0,value:N1.value}]});console.info("\uD83D\uDE80 Sending DELTA sync:",f0.length,"ops"),await k0([{type:"deltaSync",operations:f0,timestamp:L}])},deltaSync({operations:N0}){let E0=j1(N0);if(!Array.isArray(E0))return;console.info("\uD83D\uDCE5 deltaSync:",E0.length,"ops");for(let R1 of E0)if(R1&&l0[R1.type])l0[R1.type](R1)},async fullStateSync({graphData:N0,removals:E0,timestamp:R1}){if(!N0||typeof N0!=="object")return;let F1=N0,v1=new Map;for(let g0 of W0.getDelta(null))if(g0.type==="remove")v1.set(g0.id,g0.timestamp);for(let[g0,N1]of Object.entries(F1)){let Y8=h.nodes[g0],q9=N1.meta?.signedPayload?.timestamp??N1.timestamp,d=Y8?.timestamp??v1.get(g0);if(!d||e.compare(d,q9)<0){if(!l.node(N1,Y8)){console.warn(`\u26A0\uFE0F [SYNC-AUTH] fullStateSync upsert denied: ${g0}`);continue}h.nodes[g0]=N1.meta?{...N1,value:N1.meta.signedPayload.value,timestamp:q9}:N1,W0.add({type:"upsert",id:g0,timestamp:q9})}}for(let g0 of E0??[]){let N1=h.nodes[g0.id];if(N1&&e.compare(N1.timestamp,g0.timestamp)<0){if(!l.removal(N1)){console.warn(`\u26A0\uFE0F [SYNC-AUTH] fullStateSync removal denied: ${g0.id}`);continue}delete h.nodes[g0.id],W0.add({type:"remove",id:g0.id,timestamp:g0.timestamp})}}let f0=new Set(Object.keys(F1));if(Object.keys(h.nodes).some((g0)=>!f0.has(g0)))await k0([{type:"fullStateSync",graphData:h.nodes,removals:W0.getDelta(null).filter((g0)=>g0.type==="remove"),timestamp:L}]);if(X0=!0,console.info("\u2705 fullStateSync merged:",h.getAllNodes().length,"nodes"),R1)F0(R1),e.update(R1)}};for(let N0 of p)if(l0[N0.type])await l0[N0.type](N0);if(A0&&(!L||e.compare(A0,L)>0))J0(A0);if(X0)await Promise.all([Q0(),B0()]),Q1()},E1=VD(async()=>{let p=B.splice(0);return p.length?await u1(p):!1},16);Object.assign(o,{use(p){if(typeof p==="function")i.push(p)},async put(p,X0){let A0=e.now();J0(A0),X0??=crypto.randomUUID(),h.upsert(X0,p,A0),W0.add({type:"upsert",id:X0,timestamp:A0}),Q0(),B0();try{B.push({type:"upsert",id:X0,value:p,timestamp:A0}),E1().catch(()=>{})}finally{Q1()}return X0},async get(p){if(typeof p!=="string")return{result:null};let X0=h.get(p);if(!X0)return{result:null};return{result:{...X0,value:UD(X0.value)}}},map(...p){let A0={...{realtime:!1,query:{},field:null,order:"asc",$limit:null,$after:null,$before:null}},F0=null,j1=!1;p.forEach((E0)=>typeof E0==="function"?F0=E0:E0&&typeof E0==="object"&&(j1=j1||("realtime"in E0),Object.assign(A0,E0))),F0&&!j1&&(A0.realtime=!0);let l0=nA(h.nodes,A0),N0=null;if(F0){if(l0.forEach((E0)=>F0({id:E0.id,value:E0.value,edges:E0.edges,timestamp:E0.timestamp,action:"initial"})),A0.realtime){let E0=(R1)=>`${R1.id}:${R1.timestamp?.physical??0}:${R1.timestamp?.logical??0}:${(R1.edges??[]).join(",")}`;N0=(R1)=>{let F1=nA(R1,A0),v1=new Map(l0.map((g0)=>[g0.id,g0])),f0=new Map(F1.map((g0)=>[g0.id,g0]));if(F1.length!==l0.length||!F1.map(E0).every((g0,N1)=>g0===l0.map(E0)[N1])){for(let[g0,N1]of f0){let Y8=v1.get(g0);if(!Y8)F0({id:g0,value:N1.value,edges:N1.edges,timestamp:N1.timestamp,action:"added"});else if(E0(N1)!==E0(Y8))F0({id:g0,value:N1.value,edges:N1.edges,timestamp:N1.timestamp,action:"updated"})}for(let[g0,N1]of v1)if(!f0.has(g0))F0({id:g0,value:null,edges:N1.edges,timestamp:N1.timestamp,action:"removed"});l0=F1}},k.push(N0)}}return{results:l0,...A0.realtime&&F0&&N0&&{unsubscribe:()=>{let E0=k.indexOf(N0);if(E0>=0)k.splice(E0,1)}}}},async link(p,X0){if(!h.nodes[p]||!h.nodes[X0])return;let A0=e.now();h.link(p,X0,A0),W0.add({type:"link",sourceId:p,targetId:X0,timestamp:A0}),Q0(),B0(),J0(A0);try{B.push({type:"link",sourceId:p,targetId:X0,timestamp:A0}),E1().catch(()=>{})}finally{Q1()}},async unlink(p,X0){if(!h.nodes[p]?.edges.includes(X0))return;let A0=e.now();h.unlink(p,X0,A0),W0.add({type:"unlink",sourceId:p,targetId:X0,timestamp:A0}),Q0(),B0(),J0(A0);try{B.push({type:"unlink",sourceId:p,targetId:X0,timestamp:A0}),E1().catch(()=>{})}finally{Q1()}},async remove(p){let X0=h.get(p);if(!X0)return;let A0=e.now();delete h.nodes[p],Object.values(h.nodes).forEach((F0)=>{F0.edges=(F0.edges??[]).filter((j1)=>j1!==p)}),W0.add({type:"remove",id:p,timestamp:A0}),Q0(),B0(),J0(A0);try{B.push({type:"remove",id:p,value:X0.value,timestamp:A0}),E1().catch(()=>{})}finally{Q1()}},async clear(){h.nodes={},W0.clear(),H0.del("graph"),H0.del("oplog"),v0()},on(p){return k.push(p),()=>{let X0=k.indexOf(p);if(X0>=0)k.splice(X0,1)}},close(){H0.close()}});try{let p=`graph-sync-room-${W}`,X0={appId:"1234",type:"superpeer",...Y&&{password:Y},...I&&{relayUrls:I},...H&&{turnConfig:H},...M&&{cells:!0},...M&&M!==!0&&{overlay:M},rtcPolyfill:V??HO};if(s=Pz(X0,p),b=s.channel("syncGraph"),console.info(`\u26A1 Transport: ${M?"cellular mesh":"full mesh"}`),c){let A0=b.send;b={...b,send:async(F0)=>{let j1=await c.signOps(F0),l0=!1;for(let N0 of j1??[]){if(N0?.type!=="upsert"||!N0.signature||!l.isOwned(N0.value))continue;let E0=h.get(N0.id);if(!E0||e.compare(E0.timestamp,N0.timestamp)!==0)continue;m(E0,N0),l0=!0}if(l0)Q0();return A0(j1)}},o.sm=c}if(!M){let A0=!1;s.channel("c0").on("message",()=>{if(A0)return;A0=!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(S)o.room=Pz(X0,`app-sync-${W}`),console.info("\u26A1 db.room joined \u2014 visible to monitors/presence");s.on("peer:join",(A0)=>{console.info("\u26A1 Peer connected:",A0);for(let F0 of[0,1500,4000,9000])setTimeout(()=>u1([{type:"sync",timestamp:L,digest:V0()}]),F0)}),s.on("peer:leave",(A0)=>console.info("\u26A1 Peer disconnected:",A0)),b.on("message",async(A0)=>{let F0;try{F0=A0 instanceof Uint8Array||A0 instanceof ArrayBuffer?(()=>{let l0=HW(A0);return Array.isArray(l0)?l0:[l0]})():Array.isArray(A0)?A0:[A0]}catch(l0){return console.error("\u274C decode failed:",l0)}let j1=new Map([...new Set(F0.flatMap((l0)=>["id","sourceId","targetId"].map((N0)=>l0?.[N0]).filter(Boolean)))].map((l0)=>h.get(l0)?[l0,UD(h.get(l0))]:null).filter(Boolean));for(let l0 of i)try{if(F0=await l0(F0,j1),!F0?.length)return}catch(N0){console.error("\u274C Middleware error:",N0);return}await h1(F0)}),console.info("\u2705 GenosRTC sync enabled")}catch(p){console.warn("\u26A0\uFE0F GenosRTC not available:",p.message)}if(E(),_(),R(),c){let p=v?.governanceRules??null;if(!p&&process.env.GDB_SM_RULES){let X0=process.env.GDB_SM_RULES.trim();try{if(X0.startsWith("["))p=JSON.parse(X0);else if(X0.startsWith("{"))p=[JSON.parse(X0)];else p=(await import(new URL(X0,`file://${process.cwd()}/`).href)).default}catch(A0){console.error("\u274C GOVERNANCE: could not load GDB_SM_RULES:",A0.message)}}if(Array.isArray(p)&&p.length)o.governance=x_(o,c,p,{customRoles:v?.customRoles??null})}if(O)o.relay=O;return Object.defineProperties(o,{syncChannel:{get:()=>b},hybridClock:{get:()=>e},graph:{get:()=>({getAllNodes:()=>h.getAllNodes(),get:(p)=>h.get(p)})}}),console.info(`\u2705 GDBServer [${W}] ready (bun:sqlite)`),o}if(import.meta.main){let W=new Set(["ECONNREFUSED","ECONNRESET","EHOSTUNREACH","ENETUNREACH","EADDRNOTAVAIL","ETIMEDOUT","EPIPE"]),G=(Z)=>W.has(Z?.code)||W.has(Z?.errno),X=new Map,Y=null,J=(Z="UNKNOWN")=>{let V=(X.get(Z)??0)+1;if(X.set(Z,V),V===1)console.warn("\u26A0\uFE0F Transient network error (ignored):",Z);Y??=setTimeout(()=>{Y=null;let U=[...X].filter(([,Q])=>Q>1).map(([Q,N])=>`${Q} \xD7${N}`).join(", ");if(U)console.warn("\u26A0\uFE0F Transient network errors (ignored, last 60s):",U);X.clear()},60000)};process.on("uncaughtException",(Z)=>{if(G(Z))return J(Z?.code??Z?.errno);console.error("\u274C Fatal:",Z?.message??Z),process.exit(1)}),process.on("unhandledRejection",(Z)=>{if(G(Z))return J(Z?.code??Z?.errno);console.error("\u274C Fatal (rejection):",Z?.message??Z),process.exit(1)}),$t().catch((Z)=>{console.error("\u274C Fatal:",Z.message),process.exit(1)})}export{$t 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=G;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 $t(W=process.env.GDB_ROOM||process.argv.slice(2).find((Y)=>!Y.startsWith("--"))||"default",G={},X=process.env.GDB_DB_PATH||"./data.sqlite"){console.info(`\u26A1 GDBServer [${W}] initializing (bun:sqlite)`);let{password:Y,saveDelay:J=200,oplogSize:Z=1000,rtcPolyfill:V=null,rtc:U=!0,room:Q=null,sm:N=null,relay:q=null}=G,A=U?.constructor===Object?U:{},{turnConfig:H=null}=A,I=A.relayUrls??((process.env.GDB_RELAY_URLS??"").split(",").map((f)=>f.trim()).filter(Boolean).length?process.env.GDB_RELAY_URLS.split(",").map((f)=>f.trim()).filter(Boolean):null),w=q??(process.argv.includes("--relay")||["1","true"].includes(process.env.GDB_RELAY??"")),O=null;if(w)O=Tx(q?.constructor===Object?q:{}),I=[...I??[],`ws://127.0.0.1:${O.port}`];let M=A.cells??(process.argv.includes("--cells")||["1","true"].includes(process.env.GDB_CELLS??"")),S=Q??process.argv.includes("--room"),v=N?.constructor===Object?N:null,p=v?.key??process.env.GDB_SM_KEY??null,g=v?.superAdmins??(process.env.GDB_SUPERADMINS??"").split(",").map((f)=>f.trim()).filter(Boolean),c=null;if(p)c=S_(p,g),console.info(`\uD83D\uDEE1\uFE0F SM: signing as ${c.address}`);else if(v)console.warn("\u26A0\uFE0F SM: sm configured but no signing key (GDB_SM_KEY) \u2014 running unsigned, memory-only role.");let l=F_(),h=Bt(),e=uC(),m=(f,X0)=>{f.meta={author:X0.originEthAddress,sig:X0.signature,signedPayload:{type:"upsert",id:X0.id,value:X0.value,timestamp:X0.timestamp,originUser:X0.originUser}}},G0=Lt(Z),H0=Et(X,W),k=[],i=[],L=[],B=null,b=null,s=null,o={},E=()=>{let f=H0.getBlob("graph");if(f?.byteLength)h.deserialize(f),console.info(`\u2705 Graph loaded: ${h.getAllNodes().length} nodes`)},$=()=>{H0.putBlob("graph",h.serialize())},_=()=>{let f=H0.getText("timestamp");if(f){let X0=JSON.parse(f);if(X0?.physical&&X0?.logical)B=X0,e.update(B)}},x=()=>{H0.putText("timestamp",JSON.stringify(B??null))},R=()=>{let f=H0.getBlob("oplog");if(f?.byteLength){let X0=HW(WX.inflate(f));if(Array.isArray(X0))G0.setEntries(X0),console.info(`\u2705 Oplog loaded: ${X0.length} ops`)}},u=()=>{H0.putBlob("oplog",WX.deflate(hU(G0.entries())))},J0=(f)=>{if(!f)return;if(!B||e.compare(f,B)>0)B=f,x()},V0=()=>{let f=0,X0=0;for(let[A0,F0]of Object.entries(h.nodes)){let j1=`${A0}\x00${F0.timestamp.physical}\x00${F0.timestamp.logical}`,l0=2166136261,N0=3386659096;for(let E0=0;E0<j1.length;E0++)l0=Math.imul(l0^j1.charCodeAt(E0),16777619),N0=Math.imul(N0^j1.charCodeAt(E0),16777619);f^=l0,X0^=N0}return`${f>>>0}.${X0>>>0}`},Q0=VD(()=>$(),J),B0=VD(()=>u(),J),v0=()=>{let f={...h.nodes};k.forEach((X0)=>X0(f))},N1=Pt(()=>v0()),u1=async(f)=>{if(!f?.length||!b)return!1;try{return await b.send(f),!0}catch(X0){return console.error("\u274C safeSend failed:",X0?.message),!1}},k0=async(f)=>{let X0=await u1(f);return setTimeout(()=>u1(f),2500),X0},h1=async(f)=>{let X0=!1,A0=null,F0=(N0)=>{if(N0&&(!A0||e.compare(N0,A0)>0))A0=N0},j1=(N0)=>{try{if(N0 instanceof Uint8Array||N0 instanceof ArrayBuffer){let E0=HW(N0);return Array.isArray(E0)?E0:[E0]}if(Array.isArray(N0))return N0;if(N0&&typeof N0==="object")return HW(WX.inflate(new Uint8Array(Object.values(N0))))}catch(E0){console.error("\u274C decode failed",E0)}return null},l0={upsert(N0){let E0=h.get(N0.id);if(!E0){for(let f0 of G0.getDelta(null))if(f0.type==="remove"&&f0.id===N0.id&&e.compare(f0.timestamp,N0.timestamp)>=0)return}if(!l.op(N0,E0))return console.warn(`\u26A0\uFE0F [SYNC-AUTH] upsert denied: ${N0.id}`);let{resolved:P1,value:F1,timestamp:v1}=hC(E0,N0,e);if(!P1)return;if(h.upsert(N0.id,F1,v1),N0.signature&&l.isOwned(F1))m(h.get(N0.id),N0);e.update(v1),G0.add({type:"upsert",id:N0.id,timestamp:v1}),X0=!0,F0(v1)},remove(N0){let E0=h.get(N0.id);if(!E0||e.compare(E0.timestamp,N0.timestamp)>=0)return;if(!l.op(N0,E0))return console.warn(`\u26A0\uFE0F [SYNC-AUTH] remove denied: ${N0.id}`);delete h.nodes[N0.id],Object.values(h.nodes).forEach((P1)=>{P1.edges=(P1.edges??[]).filter((F1)=>F1!==N0.id)}),e.update(N0.timestamp),G0.add({type:"remove",id:N0.id,timestamp:N0.timestamp}),X0=!0,F0(N0.timestamp)},link(N0){let E0=h.get(N0.sourceId),P1=h.get(N0.targetId);if(!E0||!P1||e.compare(E0.timestamp,N0.timestamp)>=0)return;h.link(N0.sourceId,N0.targetId,N0.timestamp),e.update(N0.timestamp),G0.add({type:"link",...N0}),X0=!0,F0(N0.timestamp)},unlink(N0){let E0=h.get(N0.sourceId);if(!E0||e.compare(E0.timestamp,N0.timestamp)>=0)return;h.unlink(N0.sourceId,N0.targetId,N0.timestamp),e.update(N0.timestamp),G0.add({type:"unlink",...N0}),X0=!0,F0(N0.timestamp)},async sync({timestamp:N0,digest:E0}){if(E0&&E0===V0())return console.info("\uD83D\uDFF0 State digests match \u2014 nothing to send.");let P1=G0.getOldest();if(N0==null||P1&&e.compare(N0,P1.timestamp)<0){console.info("\uD83D\uDCA5 Sending FULL state sync:",h.getAllNodes().length,"nodes"),await k0([{type:"fullStateSync",graphData:h.nodes,removals:G0.getDelta(null).filter((g0)=>g0.type==="remove"),timestamp:B}]);return}let v1=G0.getDelta(null);if(!v1.length)return;let f0=v1.flatMap((g0)=>{if(g0.type!=="upsert")return[g0];let U1=h.get(g0.id);if(!U1)return[];if(U1.meta)return[{...U1.meta.signedPayload,originEthAddress:U1.meta.author,signature:U1.meta.sig}];return[{...g0,value:U1.value}]});console.info("\uD83D\uDE80 Sending DELTA sync:",f0.length,"ops"),await k0([{type:"deltaSync",operations:f0,timestamp:B}])},deltaSync({operations:N0}){let E0=j1(N0);if(!Array.isArray(E0))return;console.info("\uD83D\uDCE5 deltaSync:",E0.length,"ops");for(let P1 of E0)if(P1&&l0[P1.type])l0[P1.type](P1)},async fullStateSync({graphData:N0,removals:E0,timestamp:P1}){if(!N0||typeof N0!=="object")return;let F1=N0,v1=new Map;for(let g0 of G0.getDelta(null))if(g0.type==="remove")v1.set(g0.id,g0.timestamp);for(let[g0,U1]of Object.entries(F1)){let e1=h.nodes[g0],q9=U1.meta?.signedPayload?.timestamp??U1.timestamp,d=e1?.timestamp??v1.get(g0),W0=d?e.compare(d,q9):-1,q0=W0===0&&e1&&JSON.stringify(U1.meta?U1.meta.signedPayload.value:U1.value)>JSON.stringify(e1.value);if(W0<0||q0){if(!l.node(U1,e1)){console.warn(`\u26A0\uFE0F [SYNC-AUTH] fullStateSync upsert denied: ${g0}`);continue}h.nodes[g0]=U1.meta?{...U1,value:U1.meta.signedPayload.value,timestamp:q9}:U1,G0.add({type:"upsert",id:g0,timestamp:q9})}}for(let g0 of E0??[]){let U1=h.nodes[g0.id];if(U1&&e.compare(U1.timestamp,g0.timestamp)<0){if(!l.removal(U1)){console.warn(`\u26A0\uFE0F [SYNC-AUTH] fullStateSync removal denied: ${g0.id}`);continue}delete h.nodes[g0.id],G0.add({type:"remove",id:g0.id,timestamp:g0.timestamp})}}let f0=new Set(Object.keys(F1));if(Object.keys(h.nodes).some((g0)=>!f0.has(g0)))await k0([{type:"fullStateSync",graphData:h.nodes,removals:G0.getDelta(null).filter((g0)=>g0.type==="remove"),timestamp:B}]);if(X0=!0,console.info("\u2705 fullStateSync merged:",h.getAllNodes().length,"nodes"),P1)F0(P1),e.update(P1)}};for(let N0 of f)if(l0[N0.type])await l0[N0.type](N0);if(A0&&(!B||e.compare(A0,B)>0))J0(A0);if(X0)await Promise.all([Q0(),B0()]),N1()},R1=VD(async()=>{let f=L.splice(0);if(!f.length)return!1;let X0=await u1(f);if(!X0)L.unshift(...f),setTimeout(()=>R1().catch(()=>{}),1000);return X0},16);Object.assign(o,{use(f){if(typeof f==="function")i.push(f)},async put(f,X0){let A0=e.now();J0(A0),X0??=crypto.randomUUID(),h.upsert(X0,f,A0),G0.add({type:"upsert",id:X0,timestamp:A0}),Q0(),B0();try{L.push({type:"upsert",id:X0,value:f,timestamp:A0}),R1().catch(()=>{})}finally{N1()}return X0},async get(f){if(typeof f!=="string")return{result:null};let X0=h.get(f);if(!X0)return{result:null};return{result:{...X0,value:UD(X0.value)}}},map(...f){let A0={...{realtime:!1,query:{},field:null,order:"asc",$limit:null,$after:null,$before:null}},F0=null,j1=!1;f.forEach((E0)=>typeof E0==="function"?F0=E0:E0&&typeof E0==="object"&&(j1=j1||("realtime"in E0),Object.assign(A0,E0))),F0&&!j1&&(A0.realtime=!0);let l0=nA(h.nodes,A0),N0=null;if(F0){if(l0.forEach((E0)=>F0({id:E0.id,value:E0.value,edges:E0.edges,timestamp:E0.timestamp,action:"initial"})),A0.realtime){let E0=(P1)=>`${P1.id}:${P1.timestamp?.physical??0}:${P1.timestamp?.logical??0}:${(P1.edges??[]).join(",")}`;N0=(P1)=>{let F1=nA(P1,A0),v1=new Map(l0.map((g0)=>[g0.id,g0])),f0=new Map(F1.map((g0)=>[g0.id,g0]));if(F1.length!==l0.length||!F1.map(E0).every((g0,U1)=>g0===l0.map(E0)[U1])){for(let[g0,U1]of f0){let e1=v1.get(g0);if(!e1)F0({id:g0,value:U1.value,edges:U1.edges,timestamp:U1.timestamp,action:"added"});else if(E0(U1)!==E0(e1))F0({id:g0,value:U1.value,edges:U1.edges,timestamp:U1.timestamp,action:"updated"})}for(let[g0,U1]of v1)if(!f0.has(g0))F0({id:g0,value:null,edges:U1.edges,timestamp:U1.timestamp,action:"removed"});l0=F1}},k.push(N0)}}return{results:l0,...A0.realtime&&F0&&N0&&{unsubscribe:()=>{let E0=k.indexOf(N0);if(E0>=0)k.splice(E0,1)}}}},async link(f,X0){if(!h.nodes[f]||!h.nodes[X0])return;let A0=e.now();h.link(f,X0,A0),G0.add({type:"link",sourceId:f,targetId:X0,timestamp:A0}),Q0(),B0(),J0(A0);try{L.push({type:"link",sourceId:f,targetId:X0,timestamp:A0}),R1().catch(()=>{})}finally{N1()}},async unlink(f,X0){if(!h.nodes[f]?.edges.includes(X0))return;let A0=e.now();h.unlink(f,X0,A0),G0.add({type:"unlink",sourceId:f,targetId:X0,timestamp:A0}),Q0(),B0(),J0(A0);try{L.push({type:"unlink",sourceId:f,targetId:X0,timestamp:A0}),R1().catch(()=>{})}finally{N1()}},async remove(f){let X0=h.get(f);if(!X0)return;let A0=e.now();delete h.nodes[f],Object.values(h.nodes).forEach((F0)=>{F0.edges=(F0.edges??[]).filter((j1)=>j1!==f)}),G0.add({type:"remove",id:f,timestamp:A0}),Q0(),B0(),J0(A0);try{L.push({type:"remove",id:f,value:X0.value,timestamp:A0}),R1().catch(()=>{})}finally{N1()}},async clear(){h.nodes={},G0.clear(),H0.del("graph"),H0.del("oplog"),v0()},on(f){return k.push(f),()=>{let X0=k.indexOf(f);if(X0>=0)k.splice(X0,1)}},close(){H0.close()}});try{let f=`graph-sync-room-${W}`,X0={appId:"1234",type:"superpeer",...Y&&{password:Y},...I&&{relayUrls:I},...H&&{turnConfig:H},...M&&{cells:!0},...M&&M!==!0&&{overlay:M},rtcPolyfill:V??HO};if(s=Pz(X0,f),b=s.channel("syncGraph"),console.info(`\u26A1 Transport: ${M?"cellular mesh":"full mesh"}`),c){let A0=b.send;b={...b,send:async(F0)=>{let j1=await c.signOps(F0),l0=!1;for(let N0 of j1??[]){if(N0?.type!=="upsert"||!N0.signature||!l.isOwned(N0.value))continue;let E0=h.get(N0.id);if(!E0||e.compare(E0.timestamp,N0.timestamp)!==0)continue;m(E0,N0),l0=!0}if(l0)Q0();return A0(j1)}},o.sm=c}if(!M){let A0=!1;s.channel("c0").on("message",()=>{if(A0)return;A0=!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(S)o.room=Pz(X0,`app-sync-${W}`),console.info("\u26A1 db.room joined \u2014 visible to monitors/presence");s.on("peer:join",(A0)=>{console.info("\u26A1 Peer connected:",A0);for(let F0 of[0,1500,4000,9000])setTimeout(()=>u1([{type:"sync",timestamp:B,digest:V0()}]),F0)}),s.on("peer:leave",(A0)=>console.info("\u26A1 Peer disconnected:",A0)),b.on("message",async(A0)=>{let F0;try{F0=A0 instanceof Uint8Array||A0 instanceof ArrayBuffer?(()=>{let l0=HW(A0);return Array.isArray(l0)?l0:[l0]})():Array.isArray(A0)?A0:[A0]}catch(l0){return console.error("\u274C decode failed:",l0)}let j1=new Map([...new Set(F0.flatMap((l0)=>["id","sourceId","targetId"].map((N0)=>l0?.[N0]).filter(Boolean)))].map((l0)=>h.get(l0)?[l0,UD(h.get(l0))]:null).filter(Boolean));for(let l0 of i)try{if(F0=await l0(F0,j1),!F0?.length)return}catch(N0){console.error("\u274C Middleware error:",N0);return}await h1(F0)}),console.info("\u2705 GenosRTC sync enabled")}catch(f){console.warn("\u26A0\uFE0F GenosRTC not available:",f.message)}if(E(),_(),R(),c){let f=v?.governanceRules??null;if(!f&&process.env.GDB_SM_RULES){let X0=process.env.GDB_SM_RULES.trim();try{if(X0.startsWith("["))f=JSON.parse(X0);else if(X0.startsWith("{"))f=[JSON.parse(X0)];else f=(await import(new URL(X0,`file://${process.cwd()}/`).href)).default}catch(A0){console.error("\u274C GOVERNANCE: could not load GDB_SM_RULES:",A0.message)}}if(Array.isArray(f)&&f.length)o.governance=x_(o,c,f,{customRoles:v?.customRoles??null})}if(O)o.relay=O;return Object.defineProperties(o,{syncChannel:{get:()=>b},hybridClock:{get:()=>e},graph:{get:()=>({getAllNodes:()=>h.getAllNodes(),get:(f)=>h.get(f)})}}),console.info(`\u2705 GDBServer [${W}] ready (bun:sqlite)`),o}if(import.meta.main){let W=new Set(["ECONNREFUSED","ECONNRESET","EHOSTUNREACH","ENETUNREACH","EADDRNOTAVAIL","ETIMEDOUT","EPIPE"]),G=(Z)=>W.has(Z?.code)||W.has(Z?.errno),X=new Map,Y=null,J=(Z="UNKNOWN")=>{let V=(X.get(Z)??0)+1;if(X.set(Z,V),V===1)console.warn("\u26A0\uFE0F Transient network error (ignored):",Z);Y??=setTimeout(()=>{Y=null;let U=[...X].filter(([,Q])=>Q>1).map(([Q,N])=>`${Q} \xD7${N}`).join(", ");if(U)console.warn("\u26A0\uFE0F Transient network errors (ignored, last 60s):",U);X.clear()},60000)};process.on("uncaughtException",(Z)=>{if(G(Z))return J(Z?.code??Z?.errno);console.error("\u274C Fatal:",Z?.message??Z),process.exit(1)}),process.on("unhandledRejection",(Z)=>{if(G(Z))return J(Z?.code??Z?.errno);console.error("\u274C Fatal (rejection):",Z?.message??Z),process.exit(1)}),$t().catch((Z)=>{console.error("\u274C Fatal:",Z.message),process.exit(1)})}export{$t as gdbServer};