@libp2p/circuit-relay-v2 1.1.5-dd7b329c4 → 1.1.5-df330695a

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. package/dist/index.min.js +4 -5
  2. package/dist/src/constants.d.ts +0 -4
  3. package/dist/src/constants.d.ts.map +1 -1
  4. package/dist/src/constants.js +0 -4
  5. package/dist/src/constants.js.map +1 -1
  6. package/dist/src/errors.d.ts +13 -0
  7. package/dist/src/errors.d.ts.map +1 -0
  8. package/dist/src/errors.js +19 -0
  9. package/dist/src/errors.js.map +1 -0
  10. package/dist/src/pb/index.d.ts.map +1 -1
  11. package/dist/src/pb/index.js +3 -3
  12. package/dist/src/pb/index.js.map +1 -1
  13. package/dist/src/server/index.d.ts +2 -1
  14. package/dist/src/server/index.d.ts.map +1 -1
  15. package/dist/src/server/index.js +9 -6
  16. package/dist/src/server/index.js.map +1 -1
  17. package/dist/src/server/reservation-voucher.js +2 -2
  18. package/dist/src/server/reservation-voucher.js.map +1 -1
  19. package/dist/src/transport/listener.js +2 -2
  20. package/dist/src/transport/listener.js.map +1 -1
  21. package/dist/src/transport/reservation-store.js +2 -2
  22. package/dist/src/transport/reservation-store.js.map +1 -1
  23. package/dist/src/transport/transport.d.ts.map +1 -1
  24. package/dist/src/transport/transport.js +21 -13
  25. package/dist/src/transport/transport.js.map +1 -1
  26. package/dist/src/utils.d.ts +9 -1
  27. package/dist/src/utils.d.ts.map +1 -1
  28. package/dist/src/utils.js +50 -5
  29. package/dist/src/utils.js.map +1 -1
  30. package/package.json +8 -11
  31. package/src/constants.ts +0 -5
  32. package/src/errors.ts +19 -0
  33. package/src/pb/index.ts +3 -3
  34. package/src/server/index.ts +11 -7
  35. package/src/server/reservation-voucher.ts +2 -2
  36. package/src/transport/listener.ts +2 -2
  37. package/src/transport/reservation-store.ts +2 -2
  38. package/src/transport/transport.ts +23 -13
  39. package/src/utils.ts +66 -6
package/dist/index.min.js CHANGED
@@ -1,10 +1,9 @@
1
1
  (function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Libp2PCircuitRelayV2 = factory()}(typeof self !== 'undefined' ? self : this, function () {
2
- "use strict";var Libp2PCircuitRelayV2=(()=>{var ff=Object.create;var Cn=Object.defineProperty;var hf=Object.getOwnPropertyDescriptor;var df=Object.getOwnPropertyNames;var pf=Object.getPrototypeOf,gf=Object.prototype.hasOwnProperty;var xi=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ge=(r,e)=>{for(var t in e)Cn(r,t,{get:e[t],enumerable:!0})},Ha=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of df(e))!gf.call(r,s)&&s!==t&&Cn(r,s,{get:()=>e[s],enumerable:!(n=hf(e,s))||n.enumerable});return r};var vi=(r,e,t)=>(t=r!=null?ff(pf(r)):{},Ha(e||!r||!r.__esModule?Cn(t,"default",{value:r,enumerable:!0}):t,r)),mf=r=>Ha(Cn({},"__esModule",{value:!0}),r);var Xc=xi(Mr=>{"use strict";var Yd="[object ArrayBuffer]",Et=class r{static isArrayBuffer(e){return Object.prototype.toString.call(e)===Yd}static toArrayBuffer(e){return this.isArrayBuffer(e)?e:e.byteLength===e.buffer.byteLength||e.byteOffset===0&&e.byteLength===e.buffer.byteLength?e.buffer:this.toUint8Array(e.buffer).slice(e.byteOffset,e.byteOffset+e.byteLength).buffer}static toUint8Array(e){return this.toView(e,Uint8Array)}static toView(e,t){if(e.constructor===t)return e;if(this.isArrayBuffer(e))return new t(e);if(this.isArrayBufferView(e))return new t(e.buffer,e.byteOffset,e.byteLength);throw new TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView)'")}static isBufferSource(e){return this.isArrayBufferView(e)||this.isArrayBuffer(e)}static isArrayBufferView(e){return ArrayBuffer.isView(e)||e&&this.isArrayBuffer(e.buffer)}static isEqual(e,t){let n=r.toUint8Array(e),s=r.toUint8Array(t);if(n.length!==s.byteLength)return!1;for(let i=0;i<n.length;i++)if(n[i]!==s[i])return!1;return!0}static concat(...e){let t;Array.isArray(e[0])&&!(e[1]instanceof Function)||Array.isArray(e[0])&&e[1]instanceof Function?t=e[0]:e[e.length-1]instanceof Function?t=e.slice(0,e.length-1):t=e;let n=0;for(let o of t)n+=o.byteLength;let s=new Uint8Array(n),i=0;for(let o of t){let a=this.toUint8Array(o);s.set(a,i),i+=a.length}return e[e.length-1]instanceof Function?this.toView(s,e[e.length-1]):s.buffer}},Co="string",Zd=/^[0-9a-f]+$/i,Xd=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,Jd=/^[a-zA-Z0-9-_]+$/,Jn=class{static fromString(e){let t=unescape(encodeURIComponent(e)),n=new Uint8Array(t.length);for(let s=0;s<t.length;s++)n[s]=t.charCodeAt(s);return n.buffer}static toString(e){let t=Et.toUint8Array(e),n="";for(let i=0;i<t.length;i++)n+=String.fromCharCode(t[i]);return decodeURIComponent(escape(n))}},We=class{static toString(e,t=!1){let n=Et.toArrayBuffer(e),s=new DataView(n),i="";for(let o=0;o<n.byteLength;o+=2){let a=s.getUint16(o,t);i+=String.fromCharCode(a)}return i}static fromString(e,t=!1){let n=new ArrayBuffer(e.length*2),s=new DataView(n);for(let i=0;i<e.length;i++)s.setUint16(i*2,e.charCodeAt(i),t);return n}},Qn=class r{static isHex(e){return typeof e===Co&&Zd.test(e)}static isBase64(e){return typeof e===Co&&Xd.test(e)}static isBase64Url(e){return typeof e===Co&&Jd.test(e)}static ToString(e,t="utf8"){let n=Et.toUint8Array(e);switch(t.toLowerCase()){case"utf8":return this.ToUtf8String(n);case"binary":return this.ToBinary(n);case"hex":return this.ToHex(n);case"base64":return this.ToBase64(n);case"base64url":return this.ToBase64Url(n);case"utf16le":return We.toString(n,!0);case"utf16":case"utf16be":return We.toString(n);default:throw new Error(`Unknown type of encoding '${t}'`)}}static FromString(e,t="utf8"){if(!e)return new ArrayBuffer(0);switch(t.toLowerCase()){case"utf8":return this.FromUtf8String(e);case"binary":return this.FromBinary(e);case"hex":return this.FromHex(e);case"base64":return this.FromBase64(e);case"base64url":return this.FromBase64Url(e);case"utf16le":return We.fromString(e,!0);case"utf16":case"utf16be":return We.fromString(e);default:throw new Error(`Unknown type of encoding '${t}'`)}}static ToBase64(e){let t=Et.toUint8Array(e);if(typeof btoa<"u"){let n=this.ToString(t,"binary");return btoa(n)}else return Buffer.from(t).toString("base64")}static FromBase64(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!r.isBase64(t))throw new TypeError("Argument 'base64Text' is not Base64 encoded");return typeof atob<"u"?this.FromBinary(atob(t)):new Uint8Array(Buffer.from(t,"base64")).buffer}static FromBase64Url(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!r.isBase64Url(t))throw new TypeError("Argument 'base64url' is not Base64Url encoded");return this.FromBase64(this.Base64Padding(t.replace(/\-/g,"+").replace(/\_/g,"/")))}static ToBase64Url(e){return this.ToBase64(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}static FromUtf8String(e,t=r.DEFAULT_UTF8_ENCODING){switch(t){case"ascii":return this.FromBinary(e);case"utf8":return Jn.fromString(e);case"utf16":case"utf16be":return We.fromString(e);case"utf16le":case"usc2":return We.fromString(e,!0);default:throw new Error(`Unknown type of encoding '${t}'`)}}static ToUtf8String(e,t=r.DEFAULT_UTF8_ENCODING){switch(t){case"ascii":return this.ToBinary(e);case"utf8":return Jn.toString(e);case"utf16":case"utf16be":return We.toString(e);case"utf16le":case"usc2":return We.toString(e,!0);default:throw new Error(`Unknown type of encoding '${t}'`)}}static FromBinary(e){let t=e.length,n=new Uint8Array(t);for(let s=0;s<t;s++)n[s]=e.charCodeAt(s);return n.buffer}static ToBinary(e){let t=Et.toUint8Array(e),n="";for(let s=0;s<t.length;s++)n+=String.fromCharCode(t[s]);return n}static ToHex(e){let t=Et.toUint8Array(e),n="",s=t.length;for(let i=0;i<s;i++){let o=t[i];o<16&&(n+="0"),n+=o.toString(16)}return n}static FromHex(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!r.isHex(t))throw new TypeError("Argument 'hexString' is not HEX encoded");t.length%2&&(t=`0${t}`);let n=new Uint8Array(t.length/2);for(let s=0;s<t.length;s=s+2){let i=t.slice(s,s+2);n[s/2]=parseInt(i,16)}return n.buffer}static ToUtf16String(e,t=!1){return We.toString(e,t)}static FromUtf16String(e,t=!1){return We.fromString(e,t)}static Base64Padding(e){let t=4-e.length%4;if(t<4)for(let n=0;n<t;n++)e+="=";return e}static formatString(e){return e?.replace(/[\n\r\t ]/g,"")||""}};Qn.DEFAULT_UTF8_ENCODING="utf8";function Qd(r,...e){let t=arguments[0];for(let n=1;n<arguments.length;n++){let s=arguments[n];for(let i in s)t[i]=s[i]}return t}function ep(...r){let e=r.map(s=>s.byteLength).reduce((s,i)=>s+i),t=new Uint8Array(e),n=0;return r.map(s=>new Uint8Array(s)).forEach(s=>{for(let i of s)t[n++]=i}),t.buffer}function tp(r,e){if(!(r&&e)||r.byteLength!==e.byteLength)return!1;let t=new Uint8Array(r),n=new Uint8Array(e);for(let s=0;s<r.byteLength;s++)if(t[s]!==n[s])return!1;return!0}Mr.BufferSourceConverter=Et;Mr.Convert=Qn;Mr.assign=Qd;Mr.combine=ep;Mr.isEqual=tp});var Pu=xi((Rn,ti)=>{(function(r,e){"use strict";var t={version:"3.0.0",x86:{},x64:{},inputValidation:!0};function n(l){if(!Array.isArray(l)&&!ArrayBuffer.isView(l))return!1;for(var p=0;p<l.length;p++)if(!Number.isInteger(l[p])||l[p]<0||l[p]>255)return!1;return!0}function s(l,p){return(l&65535)*p+(((l>>>16)*p&65535)<<16)}function i(l,p){return l<<p|l>>>32-p}function o(l){return l^=l>>>16,l=s(l,2246822507),l^=l>>>13,l=s(l,3266489909),l^=l>>>16,l}function a(l,p){l=[l[0]>>>16,l[0]&65535,l[1]>>>16,l[1]&65535],p=[p[0]>>>16,p[0]&65535,p[1]>>>16,p[1]&65535];var m=[0,0,0,0];return m[3]+=l[3]+p[3],m[2]+=m[3]>>>16,m[3]&=65535,m[2]+=l[2]+p[2],m[1]+=m[2]>>>16,m[2]&=65535,m[1]+=l[1]+p[1],m[0]+=m[1]>>>16,m[1]&=65535,m[0]+=l[0]+p[0],m[0]&=65535,[m[0]<<16|m[1],m[2]<<16|m[3]]}function c(l,p){l=[l[0]>>>16,l[0]&65535,l[1]>>>16,l[1]&65535],p=[p[0]>>>16,p[0]&65535,p[1]>>>16,p[1]&65535];var m=[0,0,0,0];return m[3]+=l[3]*p[3],m[2]+=m[3]>>>16,m[3]&=65535,m[2]+=l[2]*p[3],m[1]+=m[2]>>>16,m[2]&=65535,m[2]+=l[3]*p[2],m[1]+=m[2]>>>16,m[2]&=65535,m[1]+=l[1]*p[3],m[0]+=m[1]>>>16,m[1]&=65535,m[1]+=l[2]*p[2],m[0]+=m[1]>>>16,m[1]&=65535,m[1]+=l[3]*p[1],m[0]+=m[1]>>>16,m[1]&=65535,m[0]+=l[0]*p[3]+l[1]*p[2]+l[2]*p[1]+l[3]*p[0],m[0]&=65535,[m[0]<<16|m[1],m[2]<<16|m[3]]}function h(l,p){return p%=64,p===32?[l[1],l[0]]:p<32?[l[0]<<p|l[1]>>>32-p,l[1]<<p|l[0]>>>32-p]:(p-=32,[l[1]<<p|l[0]>>>32-p,l[0]<<p|l[1]>>>32-p])}function f(l,p){return p%=64,p===0?l:p<32?[l[0]<<p|l[1]>>>32-p,l[1]<<p]:[l[1]<<p-32,0]}function u(l,p){return[l[0]^p[0],l[1]^p[1]]}function d(l){return l=u(l,[0,l[0]>>>1]),l=c(l,[4283543511,3981806797]),l=u(l,[0,l[0]>>>1]),l=c(l,[3301882366,444984403]),l=u(l,[0,l[0]>>>1]),l}t.x86.hash32=function(l,p){if(t.inputValidation&&!n(l))return e;p=p||0;for(var m=l.length%4,b=l.length-m,y=p,w=0,g=3432918353,x=461845907,S=0;S<b;S=S+4)w=l[S]|l[S+1]<<8|l[S+2]<<16|l[S+3]<<24,w=s(w,g),w=i(w,15),w=s(w,x),y^=w,y=i(y,13),y=s(y,5)+3864292196;switch(w=0,m){case 3:w^=l[S+2]<<16;case 2:w^=l[S+1]<<8;case 1:w^=l[S],w=s(w,g),w=i(w,15),w=s(w,x),y^=w}return y^=l.length,y=o(y),y>>>0},t.x86.hash128=function(l,p){if(t.inputValidation&&!n(l))return e;p=p||0;for(var m=l.length%16,b=l.length-m,y=p,w=p,g=p,x=p,S=0,_=0,v=0,B=0,N=597399067,te=2869860233,K=951274213,F=2716044179,U=0;U<b;U=U+16)S=l[U]|l[U+1]<<8|l[U+2]<<16|l[U+3]<<24,_=l[U+4]|l[U+5]<<8|l[U+6]<<16|l[U+7]<<24,v=l[U+8]|l[U+9]<<8|l[U+10]<<16|l[U+11]<<24,B=l[U+12]|l[U+13]<<8|l[U+14]<<16|l[U+15]<<24,S=s(S,N),S=i(S,15),S=s(S,te),y^=S,y=i(y,19),y+=w,y=s(y,5)+1444728091,_=s(_,te),_=i(_,16),_=s(_,K),w^=_,w=i(w,17),w+=g,w=s(w,5)+197830471,v=s(v,K),v=i(v,17),v=s(v,F),g^=v,g=i(g,15),g+=x,g=s(g,5)+2530024501,B=s(B,F),B=i(B,18),B=s(B,N),x^=B,x=i(x,13),x+=y,x=s(x,5)+850148119;switch(S=0,_=0,v=0,B=0,m){case 15:B^=l[U+14]<<16;case 14:B^=l[U+13]<<8;case 13:B^=l[U+12],B=s(B,F),B=i(B,18),B=s(B,N),x^=B;case 12:v^=l[U+11]<<24;case 11:v^=l[U+10]<<16;case 10:v^=l[U+9]<<8;case 9:v^=l[U+8],v=s(v,K),v=i(v,17),v=s(v,F),g^=v;case 8:_^=l[U+7]<<24;case 7:_^=l[U+6]<<16;case 6:_^=l[U+5]<<8;case 5:_^=l[U+4],_=s(_,te),_=i(_,16),_=s(_,K),w^=_;case 4:S^=l[U+3]<<24;case 3:S^=l[U+2]<<16;case 2:S^=l[U+1]<<8;case 1:S^=l[U],S=s(S,N),S=i(S,15),S=s(S,te),y^=S}return y^=l.length,w^=l.length,g^=l.length,x^=l.length,y+=w,y+=g,y+=x,w+=y,g+=y,x+=y,y=o(y),w=o(w),g=o(g),x=o(x),y+=w,y+=g,y+=x,w+=y,g+=y,x+=y,("00000000"+(y>>>0).toString(16)).slice(-8)+("00000000"+(w>>>0).toString(16)).slice(-8)+("00000000"+(g>>>0).toString(16)).slice(-8)+("00000000"+(x>>>0).toString(16)).slice(-8)},t.x64.hash128=function(l,p){if(t.inputValidation&&!n(l))return e;p=p||0;for(var m=l.length%16,b=l.length-m,y=[0,p],w=[0,p],g=[0,0],x=[0,0],S=[2277735313,289559509],_=[1291169091,658871167],v=0;v<b;v=v+16)g=[l[v+4]|l[v+5]<<8|l[v+6]<<16|l[v+7]<<24,l[v]|l[v+1]<<8|l[v+2]<<16|l[v+3]<<24],x=[l[v+12]|l[v+13]<<8|l[v+14]<<16|l[v+15]<<24,l[v+8]|l[v+9]<<8|l[v+10]<<16|l[v+11]<<24],g=c(g,S),g=h(g,31),g=c(g,_),y=u(y,g),y=h(y,27),y=a(y,w),y=a(c(y,[0,5]),[0,1390208809]),x=c(x,_),x=h(x,33),x=c(x,S),w=u(w,x),w=h(w,31),w=a(w,y),w=a(c(w,[0,5]),[0,944331445]);switch(g=[0,0],x=[0,0],m){case 15:x=u(x,f([0,l[v+14]],48));case 14:x=u(x,f([0,l[v+13]],40));case 13:x=u(x,f([0,l[v+12]],32));case 12:x=u(x,f([0,l[v+11]],24));case 11:x=u(x,f([0,l[v+10]],16));case 10:x=u(x,f([0,l[v+9]],8));case 9:x=u(x,[0,l[v+8]]),x=c(x,_),x=h(x,33),x=c(x,S),w=u(w,x);case 8:g=u(g,f([0,l[v+7]],56));case 7:g=u(g,f([0,l[v+6]],48));case 6:g=u(g,f([0,l[v+5]],40));case 5:g=u(g,f([0,l[v+4]],32));case 4:g=u(g,f([0,l[v+3]],24));case 3:g=u(g,f([0,l[v+2]],16));case 2:g=u(g,f([0,l[v+1]],8));case 1:g=u(g,[0,l[v]]),g=c(g,S),g=h(g,31),g=c(g,_),y=u(y,g)}return y=u(y,[0,l.length]),w=u(w,[0,l.length]),y=a(y,w),w=a(w,y),y=d(y),w=d(w),y=a(y,w),w=a(w,y),("00000000"+(y[0]>>>0).toString(16)).slice(-8)+("00000000"+(y[1]>>>0).toString(16)).slice(-8)+("00000000"+(w[0]>>>0).toString(16)).slice(-8)+("00000000"+(w[1]>>>0).toString(16)).slice(-8)},typeof Rn<"u"?(typeof ti<"u"&&ti.exports&&(Rn=ti.exports=t),Rn.murmurHash3=t):typeof define=="function"&&define.amd?define([],function(){return t}):(t._murmurHash3=r.murmurHash3,t.noConflict=function(){return r.murmurHash3=t._murmurHash3,t._murmurHash3=e,t.noConflict=e,t},r.murmurHash3=t)})(Rn)});var pa=xi((bx,Mu)=>{Mu.exports=Pu()});var N0={};ge(N0,{RELAY_V2_HOP_CODEC:()=>Ye,RELAY_V2_STOP_CODEC:()=>dr,circuitRelayServer:()=>qu,circuitRelayTransport:()=>tf});var Ei=Symbol.for("@libp2p/peer-id");var Ka=Symbol.for("@libp2p/transport");var Fa;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(Fa||(Fa={}));var Lt=class r extends Error{code;type;constructor(e="The operation was aborted"){super(e),this.name="AbortError",this.code=r.code,this.type=r.type}static code="ABORT_ERR";static type="aborted"},D=class extends Error{code;props;constructor(e,t,n){super(e),this.code=t,this.name=n?.name??"CodeError",this.props=n??{}}};var ze=(r,...e)=>{try{[...e]}catch{}};var $e=class extends EventTarget{#e=new Map;constructor(){super(),ze(1/0,this)}listenerCount(e){let t=this.#e.get(e);return t==null?0:t.length}addEventListener(e,t,n){super.addEventListener(e,t,n);let s=this.#e.get(e);s==null&&(s=[],this.#e.set(e,s)),s.push({callback:t,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,t,n){super.removeEventListener(e.toString(),t??null,n);let s=this.#e.get(e);s!=null&&(s=s.filter(({callback:i})=>i!==t),this.#e.set(e,s))}dispatchEvent(e){let t=super.dispatchEvent(e),n=this.#e.get(e.type);return n==null||(n=n.filter(({once:s})=>!s),this.#e.set(e.type,n)),t}safeDispatchEvent(e,t={}){return this.dispatchEvent(new yf(e,t))}},yf=globalThis.CustomEvent;function qa(r){return r!=null&&typeof r.start=="function"&&typeof r.stop=="function"}async function za(...r){let e=[];for(let t of r)qa(t)&&e.push(t);await Promise.all(e.map(async t=>{t.beforeStart!=null&&await t.beforeStart()})),await Promise.all(e.map(async t=>{await t.start()})),await Promise.all(e.map(async t=>{t.afterStart!=null&&await t.afterStart()}))}async function $a(...r){let e=[];for(let t of r)qa(t)&&e.push(t);await Promise.all(e.map(async t=>{t.beforeStop!=null&&await t.beforeStop()})),await Promise.all(e.map(async t=>{await t.stop()})),await Promise.all(e.map(async t=>{t.afterStop!=null&&await t.afterStop()}))}var Ga=Symbol.for("@libp2p/service-capabilities"),ja=Symbol.for("@libp2p/service-dependencies");var Ii={};ge(Ii,{base58btc:()=>fe,base58flickr:()=>Af});var lg=new Uint8Array(0);function Wa(r,e){if(r===e)return!0;if(r.byteLength!==e.byteLength)return!1;for(let t=0;t<r.byteLength;t++)if(r[t]!==e[t])return!1;return!0}function dt(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error("Unknown type, must be binary type")}function Ya(r){return new TextEncoder().encode(r)}function Za(r){return new TextDecoder().decode(r)}function bf(r,e){if(r.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),n=0;n<t.length;n++)t[n]=255;for(var s=0;s<r.length;s++){var i=r.charAt(s),o=i.charCodeAt(0);if(t[o]!==255)throw new TypeError(i+" is ambiguous");t[o]=s}var a=r.length,c=r.charAt(0),h=Math.log(a)/Math.log(256),f=Math.log(256)/Math.log(a);function u(p){if(p instanceof Uint8Array||(ArrayBuffer.isView(p)?p=new Uint8Array(p.buffer,p.byteOffset,p.byteLength):Array.isArray(p)&&(p=Uint8Array.from(p))),!(p instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(p.length===0)return"";for(var m=0,b=0,y=0,w=p.length;y!==w&&p[y]===0;)y++,m++;for(var g=(w-y)*f+1>>>0,x=new Uint8Array(g);y!==w;){for(var S=p[y],_=0,v=g-1;(S!==0||_<b)&&v!==-1;v--,_++)S+=256*x[v]>>>0,x[v]=S%a>>>0,S=S/a>>>0;if(S!==0)throw new Error("Non-zero carry");b=_,y++}for(var B=g-b;B!==g&&x[B]===0;)B++;for(var N=c.repeat(m);B<g;++B)N+=r.charAt(x[B]);return N}function d(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var m=0;if(p[m]!==" "){for(var b=0,y=0;p[m]===c;)b++,m++;for(var w=(p.length-m)*h+1>>>0,g=new Uint8Array(w);p[m];){var x=t[p.charCodeAt(m)];if(x===255)return;for(var S=0,_=w-1;(x!==0||S<y)&&_!==-1;_--,S++)x+=a*g[_]>>>0,g[_]=x%256>>>0,x=x/256>>>0;if(x!==0)throw new Error("Non-zero carry");y=S,m++}if(p[m]!==" "){for(var v=w-y;v!==w&&g[v]===0;)v++;for(var B=new Uint8Array(b+(w-v)),N=b;v!==w;)B[N++]=g[v++];return B}}}function l(p){var m=d(p);if(m)return m;throw new Error(`Non-${e} character`)}return{encode:u,decodeUnsafe:d,decode:l}}var wf=bf,xf=wf,Ja=xf;var Ai=class{name;prefix;baseEncode;constructor(e,t,n){this.name=e,this.prefix=t,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},Si=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,t,n){if(this.name=e,this.prefix=t,t.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=n}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return Qa(this,e)}},Bi=class{decoders;constructor(e){this.decoders=e}or(e){return Qa(this,e)}decode(e){let t=e[0],n=this.decoders[t];if(n!=null)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function Qa(r,e){return new Bi({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var _i=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,t,n,s){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=s,this.encoder=new Ai(e,t,n),this.decoder=new Si(e,t,s)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function br({name:r,prefix:e,encode:t,decode:n}){return new _i(r,e,t,n)}function Ct({name:r,prefix:e,alphabet:t}){let{encode:n,decode:s}=Ja(t,r);return br({prefix:e,name:r,encode:n,decode:i=>dt(s(i))})}function vf(r,e,t,n){let s={};for(let f=0;f<e.length;++f)s[e[f]]=f;let i=r.length;for(;r[i-1]==="=";)--i;let o=new Uint8Array(i*t/8|0),a=0,c=0,h=0;for(let f=0;f<i;++f){let u=s[r[f]];if(u===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<t|u,a+=t,a>=8&&(a-=8,o[h++]=255&c>>a)}if(a>=t||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o}function Ef(r,e,t){let n=e[e.length-1]==="=",s=(1<<t)-1,i="",o=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],o+=8;o>t;)o-=t,i+=e[s&a>>o];if(o!==0&&(i+=e[s&a<<t-o]),n)for(;i.length*t&7;)i+="=";return i}function ie({name:r,prefix:e,bitsPerChar:t,alphabet:n}){return br({prefix:e,name:r,encode(s){return Ef(s,n,t)},decode(s){return vf(s,n,t,r)}})}var fe=Ct({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Af=Ct({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var ki={};ge(ki,{base10:()=>Sf});var Sf=Ct({prefix:"9",name:"base10",alphabet:"0123456789"});var Ti={};ge(Ti,{base16:()=>Bf,base16upper:()=>_f});var Bf=ie({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),_f=ie({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Ri={};ge(Ri,{base2:()=>If});var If=ie({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ni={};ge(Ni,{base256emoji:()=>Lf});var ec=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),kf=ec.reduce((r,e,t)=>(r[t]=e,r),[]),Tf=ec.reduce((r,e,t)=>(r[e.codePointAt(0)]=t,r),[]);function Rf(r){return r.reduce((e,t)=>(e+=kf[t],e),"")}function Nf(r){let e=[];for(let t of r){let n=Tf[t.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${t}`);e.push(n)}return new Uint8Array(e)}var Lf=br({prefix:"\u{1F680}",name:"base256emoji",encode:Rf,decode:Nf});var Li={};ge(Li,{base32:()=>pt,base32hex:()=>Of,base32hexpad:()=>Mf,base32hexpadupper:()=>Vf,base32hexupper:()=>Pf,base32pad:()=>Uf,base32padupper:()=>Df,base32upper:()=>Cf,base32z:()=>Hf});var pt=ie({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Cf=ie({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Uf=ie({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Df=ie({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Of=ie({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Pf=ie({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Mf=ie({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Vf=ie({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Hf=ie({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Ci={};ge(Ci,{base36:()=>Ff,base36upper:()=>Kf});var Ff=Ct({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Kf=Ct({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Di={};ge(Di,{base64:()=>Ui,base64pad:()=>qf,base64url:()=>zf,base64urlpad:()=>$f});var Ui=ie({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),qf=ie({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),zf=ie({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),$f=ie({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Oi={};ge(Oi,{base8:()=>Gf});var Gf=ie({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Pi={};ge(Pi,{identity:()=>jf});var jf=br({prefix:"\0",name:"identity",encode:r=>Za(r),decode:r=>Ya(r)});var Bg=new TextEncoder,_g=new TextDecoder;var Vi={};ge(Vi,{identity:()=>gt});var Zf=nc,tc=128,Xf=127,Jf=~Xf,Qf=Math.pow(2,31);function nc(r,e,t){e=e||[],t=t||0;for(var n=t;r>=Qf;)e[t++]=r&255|tc,r/=128;for(;r&Jf;)e[t++]=r&255|tc,r>>>=7;return e[t]=r|0,nc.bytes=t-n+1,e}var eh=Mi,th=128,rc=127;function Mi(r,n){var t=0,n=n||0,s=0,i=n,o,a=r.length;do{if(i>=a)throw Mi.bytes=0,new RangeError("Could not decode varint");o=r[i++],t+=s<28?(o&rc)<<s:(o&rc)*Math.pow(2,s),s+=7}while(o>=th);return Mi.bytes=i-n,t}var rh=Math.pow(2,7),nh=Math.pow(2,14),sh=Math.pow(2,21),ih=Math.pow(2,28),oh=Math.pow(2,35),ah=Math.pow(2,42),ch=Math.pow(2,49),lh=Math.pow(2,56),uh=Math.pow(2,63),fh=function(r){return r<rh?1:r<nh?2:r<sh?3:r<ih?4:r<oh?5:r<ah?6:r<ch?7:r<lh?8:r<uh?9:10},hh={encode:Zf,decode:eh,encodingLength:fh},dh=hh,Qr=dh;function en(r,e=0){return[Qr.decode(r,e),Qr.decode.bytes]}function wr(r,e,t=0){return Qr.encode(r,e,t),e}function xr(r){return Qr.encodingLength(r)}function st(r,e){let t=e.byteLength,n=xr(r),s=n+xr(t),i=new Uint8Array(s+t);return wr(r,i,0),wr(t,i,n),i.set(e,s),new vr(r,t,e,i)}function Qt(r){let e=dt(r),[t,n]=en(e),[s,i]=en(e.subarray(n)),o=e.subarray(n+i);if(o.byteLength!==s)throw new Error("Incorrect length");return new vr(t,s,o,e)}function sc(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&Wa(r.bytes,t.bytes)}}var vr=class{code;size;digest;bytes;constructor(e,t,n,s){this.code=e,this.size=t,this.digest=n,this.bytes=s}};var ic=0,ph="identity",oc=dt;function gh(r){return st(ic,oc(r))}var gt={code:ic,name:ph,encode:oc,digest:gh};var Ki={};ge(Ki,{sha256:()=>me,sha512:()=>mh});function Fi({name:r,code:e,encode:t}){return new Hi(r,e,t)}var Hi=class{name;code;encode;constructor(e,t,n){this.name=e,this.code=t,this.encode=n}digest(e){if(e instanceof Uint8Array){let t=this.encode(e);return t instanceof Uint8Array?st(this.code,t):t.then(n=>st(this.code,n))}else throw Error("Unknown type, must be binary type")}};function cc(r){return async e=>new Uint8Array(await crypto.subtle.digest(r,e))}var me=Fi({name:"sha2-256",code:18,encode:cc("SHA-256")}),mh=Fi({name:"sha2-512",code:19,encode:cc("SHA-512")});function lc(r,e){let{bytes:t,version:n}=r;switch(n){case 0:return bh(t,qi(r),e??fe.encoder);default:return wh(t,qi(r),e??pt.encoder)}}var uc=new WeakMap;function qi(r){let e=uc.get(r);if(e==null){let t=new Map;return uc.set(r,t),t}return e}var Oe=class r{code;version;multihash;bytes;"/";constructor(e,t,n,s){this.code=t,this.version=e,this.multihash=n,this.bytes=s,this["/"]=s}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:e,multihash:t}=this;if(e!==tn)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==xh)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return r.createV0(t)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:e,digest:t}=this.multihash,n=st(e,t);return r.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(e){return r.equals(this,e)}static equals(e,t){let n=t;return n!=null&&e.code===n.code&&e.version===n.version&&sc(e.multihash,n.multihash)}toString(e){return lc(this,e)}toJSON(){return{"/":lc(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let t=e;if(t instanceof r)return t;if(t["/"]!=null&&t["/"]===t.bytes||t.asCID===t){let{version:n,code:s,multihash:i,bytes:o}=t;return new r(n,s,i,o??fc(n,s,i.bytes))}else if(t[vh]===!0){let{version:n,multihash:s,code:i}=t,o=Qt(s);return r.create(n,i,o)}else return null}static create(e,t,n){if(typeof t!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:{if(t!==tn)throw new Error(`Version 0 CID must use dag-pb (code: ${tn}) block encoding`);return new r(e,t,n,n.bytes)}case 1:{let s=fc(e,t,n.bytes);return new r(e,t,n,s)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,tn,e)}static createV1(e,t){return r.create(1,e,t)}static decode(e){let[t,n]=r.decodeFirst(e);if(n.length!==0)throw new Error("Incorrect length");return t}static decodeFirst(e){let t=r.inspectBytes(e),n=t.size-t.multihashSize,s=dt(e.subarray(n,n+t.multihashSize));if(s.byteLength!==t.multihashSize)throw new Error("Incorrect length");let i=s.subarray(t.multihashSize-t.digestSize),o=new vr(t.multihashCode,t.digestSize,i,s);return[t.version===0?r.createV0(o):r.createV1(t.codec,o),e.subarray(t.size)]}static inspectBytes(e){let t=0,n=()=>{let[u,d]=en(e.subarray(t));return t+=d,u},s=n(),i=tn;if(s===18?(s=0,t=0):i=n(),s!==0&&s!==1)throw new RangeError(`Invalid CID version ${s}`);let o=t,a=n(),c=n(),h=t+c,f=h-o;return{version:s,codec:i,multihashCode:a,digestSize:c,multihashSize:f,size:h}}static parse(e,t){let[n,s]=yh(e,t),i=r.decode(s);if(i.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return qi(i).set(n,e),i}};function yh(r,e){switch(r[0]){case"Q":{let t=e??fe;return[fe.prefix,t.decode(`${fe.prefix}${r}`)]}case fe.prefix:{let t=e??fe;return[fe.prefix,t.decode(r)]}case pt.prefix:{let t=e??pt;return[pt.prefix,t.decode(r)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[r[0],e.decode(r)]}}}function bh(r,e,t){let{prefix:n}=t;if(n!==fe.prefix)throw Error(`Cannot string encode V0 in ${t.name} encoding`);let s=e.get(n);if(s==null){let i=t.encode(r).slice(1);return e.set(n,i),i}else return s}function wh(r,e,t){let{prefix:n}=t,s=e.get(n);if(s==null){let i=t.encode(r);return e.set(n,i),i}else return s}var tn=112,xh=18;function fc(r,e,t){let n=xr(r),s=n+xr(e),i=new Uint8Array(s+t.byteLength);return wr(r,i,0),wr(e,i,n),i.set(t,s),i}var vh=Symbol.for("@ipld/js-cid/CID");var Ut={...Pi,...Ri,...Oi,...ki,...Ti,...Li,...Ci,...Ii,...Di,...Ni},jg={...Ki,...Vi};function oe(r,e){if(r===e)return!0;if(r.byteLength!==e.byteLength)return!1;for(let t=0;t<r.byteLength;t++)if(r[t]!==e[t])return!1;return!0}function xe(r=0){return new Uint8Array(r)}function Le(r=0){return new Uint8Array(r)}function dc(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var hc=dc("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),zi=dc("ascii","a",r=>{let e="a";for(let t=0;t<r.length;t++)e+=String.fromCharCode(r[t]);return e},r=>{r=r.substring(1);let e=Le(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),Eh={utf8:hc,"utf-8":hc,hex:Ut.base16,latin1:zi,ascii:zi,binary:zi,...Ut},Dn=Eh;function V(r,e="utf8"){let t=Dn[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.decoder.decode(`${t.prefix}${r}`)}function W(r,e="utf8"){let t=Dn[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.encoder.encode(r).substring(1)}var gc=Symbol.for("nodejs.util.inspect.custom"),pc=Object.values(Ut).map(r=>r.decoder).reduce((r,e)=>r.or(e),Ut.identity.decoder),mc=114,ji=36,Wi=37,rn=class{type;multihash;privateKey;publicKey;string;constructor(e){this.type=e.type,this.multihash=e.multihash,this.privateKey=e.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[Ei]=!0;toString(){return this.string==null&&(this.string=fe.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return Oe.createV1(mc,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){if(e==null)return!1;if(e instanceof Uint8Array)return oe(this.multihash.bytes,e);if(typeof e=="string")return Dt(e).equals(this);if(e?.multihash?.bytes!=null)return oe(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[gc](){return`PeerId(${this.toString()})`}},Er=class extends rn{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},Ar=class extends rn{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.multihash.digest}},Sr=class extends rn{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.multihash.digest}},$i=2336,Gi=class{type="url";multihash;privateKey;publicKey;url;constructor(e){this.url=e.toString(),this.multihash=gt.digest(V(this.url))}[gc](){return`PeerId(${this.url})`}[Ei]=!0;toString(){return this.toCID().toString()}toCID(){return Oe.createV1($i,this.multihash)}toBytes(){return this.toCID().bytes}equals(e){return e==null?!1:(e instanceof Uint8Array&&(e=W(e)),e.toString()===this.toString())}};function Dt(r,e){if(e=e??pc,r.charAt(0)==="1"||r.charAt(0)==="Q"){let t=Qt(fe.decode(`z${r}`));return r.startsWith("12D")?new Ar({multihash:t}):r.startsWith("16U")?new Sr({multihash:t}):new Er({multihash:t})}return nn(pc.decode(r))}function nn(r){try{let e=Qt(r);if(e.code===gt.code){if(e.digest.length===ji)return new Ar({multihash:e});if(e.digest.length===Wi)return new Sr({multihash:e})}if(e.code===me.code)return new Er({multihash:e})}catch{return Ah(Oe.decode(r))}throw new Error("Supplied PeerID CID is invalid")}function Ah(r){if(r?.multihash==null||r.version==null||r.version===1&&r.code!==mc&&r.code!==$i)throw new Error("Supplied PeerID CID is invalid");if(r.code===$i){let t=W(r.multihash.digest);return new Gi(new URL(t))}let e=r.multihash;if(e.code===me.code)return new Er({multihash:r.multihash});if(e.code===gt.code){if(e.digest.length===ji)return new Ar({multihash:r.multihash});if(e.digest.length===Wi)return new Sr({multihash:r.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function yc(r,e){return r.length===ji?new Ar({multihash:st(gt.code,r),privateKey:e}):r.length===Wi?new Sr({multihash:st(gt.code,r),privateKey:e}):new Er({multihash:await me.digest(r),publicKey:r,privateKey:e})}var No={};ge(No,{Ed25519PrivateKey:()=>ur,Ed25519PublicKey:()=>hn,generateKeyPair:()=>Gd,generateKeyPairFromSeed:()=>Zc,unmarshalEd25519PrivateKey:()=>zd,unmarshalEd25519PublicKey:()=>$d});function ke(r,e){e==null&&(e=r.reduce((s,i)=>s+i.length,0));let t=Le(e),n=0;for(let s of r)t.set(s,n),n+=s.length;return t}function Ge(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}function Br(r){if(!Number.isSafeInteger(r)||r<0)throw new Error(`positive integer expected, not ${r}`)}function Sh(r){return r instanceof Uint8Array||r!=null&&typeof r=="object"&&r.constructor.name==="Uint8Array"}function _r(r,...e){if(!Sh(r))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(r.length))throw new Error(`Uint8Array expected of length ${e}, not of length=${r.length}`)}function On(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Br(r.outputLen),Br(r.blockLen)}function Ir(r,e=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(e&&r.finished)throw new Error("Hash#digest() has already been called")}function bc(r,e){_r(r);let t=e.outputLen;if(r.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}var tr=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var Tr=r=>new DataView(r.buffer,r.byteOffset,r.byteLength),Ze=(r,e)=>r<<32-e|r>>>e;var _m=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;var Bh=async()=>{};async function wc(r,e,t){let n=Date.now();for(let s=0;s<r;s++){t(s);let i=Date.now()-n;i>=0&&i<e||(await Bh(),n+=i)}}function xc(r){if(typeof r!="string")throw new Error(`utf8ToBytes expected string, got ${typeof r}`);return new Uint8Array(new TextEncoder().encode(r))}function Ot(r){return typeof r=="string"&&(r=xc(r)),_r(r),r}function Yi(...r){let e=0;for(let n=0;n<r.length;n++){let s=r[n];_r(s),e+=s.length}let t=new Uint8Array(e);for(let n=0,s=0;n<r.length;n++){let i=r[n];t.set(i,s),s+=i.length}return t}var kr=class{clone(){return this._cloneInto()}},_h={}.toString;function vc(r,e){if(e!==void 0&&_h.call(e)!=="[object Object]")throw new Error("Options should be object or undefined");return Object.assign(r,e)}function Pn(r){let e=n=>r().update(Ot(n)).digest(),t=r();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>r(),e}function Rr(r=32){if(tr&&typeof tr.getRandomValues=="function")return tr.getRandomValues(new Uint8Array(r));if(tr&&typeof tr.randomBytes=="function")return tr.randomBytes(r);throw new Error("crypto.getRandomValues must be defined")}function Ih(r,e,t,n){if(typeof r.setBigUint64=="function")return r.setBigUint64(e,t,n);let s=BigInt(32),i=BigInt(4294967295),o=Number(t>>s&i),a=Number(t&i),c=n?4:0,h=n?0:4;r.setUint32(e+c,o,n),r.setUint32(e+h,a,n)}var Ec=(r,e,t)=>r&e^~r&t,Ac=(r,e,t)=>r&e^r&t^e&t,Nr=class extends kr{constructor(e,t,n,s){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=Tr(this.buffer)}update(e){Ir(this);let{view:t,buffer:n,blockLen:s}=this;e=Ot(e);let i=e.length;for(let o=0;o<i;){let a=Math.min(s-this.pos,i-o);if(a===s){let c=Tr(e);for(;s<=i-o;o+=s)this.process(c,o);continue}n.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===s&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Ir(this),bc(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:s,isLE:i}=this,{pos:o}=this;t[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>s-o&&(this.process(n,0),o=0);for(let u=o;u<s;u++)t[u]=0;Ih(n,s-8,BigInt(this.length*8),i),this.process(n,0);let a=Tr(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let h=c/4,f=this.get();if(h>f.length)throw new Error("_sha2: outputLen bigger than state");for(let u=0;u<h;u++)a.setUint32(4*u,f[u],i)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:t,buffer:n,length:s,finished:i,destroyed:o,pos:a}=this;return e.length=s,e.pos=a,e.finished=i,e.destroyed=o,s%t&&e.buffer.set(n),e}};var Mn=BigInt(4294967295),Zi=BigInt(32);function Sc(r,e=!1){return e?{h:Number(r&Mn),l:Number(r>>Zi&Mn)}:{h:Number(r>>Zi&Mn)|0,l:Number(r&Mn)|0}}function kh(r,e=!1){let t=new Uint32Array(r.length),n=new Uint32Array(r.length);for(let s=0;s<r.length;s++){let{h:i,l:o}=Sc(r[s],e);[t[s],n[s]]=[i,o]}return[t,n]}var Th=(r,e)=>BigInt(r>>>0)<<Zi|BigInt(e>>>0),Rh=(r,e,t)=>r>>>t,Nh=(r,e,t)=>r<<32-t|e>>>t,Lh=(r,e,t)=>r>>>t|e<<32-t,Ch=(r,e,t)=>r<<32-t|e>>>t,Uh=(r,e,t)=>r<<64-t|e>>>t-32,Dh=(r,e,t)=>r>>>t-32|e<<64-t,Oh=(r,e)=>e,Ph=(r,e)=>r,Mh=(r,e,t)=>r<<t|e>>>32-t,Vh=(r,e,t)=>e<<t|r>>>32-t,Hh=(r,e,t)=>e<<t-32|r>>>64-t,Fh=(r,e,t)=>r<<t-32|e>>>64-t;function Kh(r,e,t,n){let s=(e>>>0)+(n>>>0);return{h:r+t+(s/2**32|0)|0,l:s|0}}var qh=(r,e,t)=>(r>>>0)+(e>>>0)+(t>>>0),zh=(r,e,t,n)=>e+t+n+(r/2**32|0)|0,$h=(r,e,t,n)=>(r>>>0)+(e>>>0)+(t>>>0)+(n>>>0),Gh=(r,e,t,n,s)=>e+t+n+s+(r/2**32|0)|0,jh=(r,e,t,n,s)=>(r>>>0)+(e>>>0)+(t>>>0)+(n>>>0)+(s>>>0),Wh=(r,e,t,n,s,i)=>e+t+n+s+i+(r/2**32|0)|0;var Yh={fromBig:Sc,split:kh,toBig:Th,shrSH:Rh,shrSL:Nh,rotrSH:Lh,rotrSL:Ch,rotrBH:Uh,rotrBL:Dh,rotr32H:Oh,rotr32L:Ph,rotlSH:Mh,rotlSL:Vh,rotlBH:Hh,rotlBL:Fh,add:Kh,add3L:qh,add3H:zh,add4L:$h,add4H:Gh,add5H:Wh,add5L:jh},H=Yh;var[Zh,Xh]=H.split(["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(r=>BigInt(r))),Pt=new Uint32Array(80),Mt=new Uint32Array(80),Xi=class extends Nr{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){let{Ah:e,Al:t,Bh:n,Bl:s,Ch:i,Cl:o,Dh:a,Dl:c,Eh:h,El:f,Fh:u,Fl:d,Gh:l,Gl:p,Hh:m,Hl:b}=this;return[e,t,n,s,i,o,a,c,h,f,u,d,l,p,m,b]}set(e,t,n,s,i,o,a,c,h,f,u,d,l,p,m,b){this.Ah=e|0,this.Al=t|0,this.Bh=n|0,this.Bl=s|0,this.Ch=i|0,this.Cl=o|0,this.Dh=a|0,this.Dl=c|0,this.Eh=h|0,this.El=f|0,this.Fh=u|0,this.Fl=d|0,this.Gh=l|0,this.Gl=p|0,this.Hh=m|0,this.Hl=b|0}process(e,t){for(let g=0;g<16;g++,t+=4)Pt[g]=e.getUint32(t),Mt[g]=e.getUint32(t+=4);for(let g=16;g<80;g++){let x=Pt[g-15]|0,S=Mt[g-15]|0,_=H.rotrSH(x,S,1)^H.rotrSH(x,S,8)^H.shrSH(x,S,7),v=H.rotrSL(x,S,1)^H.rotrSL(x,S,8)^H.shrSL(x,S,7),B=Pt[g-2]|0,N=Mt[g-2]|0,te=H.rotrSH(B,N,19)^H.rotrBH(B,N,61)^H.shrSH(B,N,6),K=H.rotrSL(B,N,19)^H.rotrBL(B,N,61)^H.shrSL(B,N,6),F=H.add4L(v,K,Mt[g-7],Mt[g-16]),U=H.add4H(F,_,te,Pt[g-7],Pt[g-16]);Pt[g]=U|0,Mt[g]=F|0}let{Ah:n,Al:s,Bh:i,Bl:o,Ch:a,Cl:c,Dh:h,Dl:f,Eh:u,El:d,Fh:l,Fl:p,Gh:m,Gl:b,Hh:y,Hl:w}=this;for(let g=0;g<80;g++){let x=H.rotrSH(u,d,14)^H.rotrSH(u,d,18)^H.rotrBH(u,d,41),S=H.rotrSL(u,d,14)^H.rotrSL(u,d,18)^H.rotrBL(u,d,41),_=u&l^~u&m,v=d&p^~d&b,B=H.add5L(w,S,v,Xh[g],Mt[g]),N=H.add5H(B,y,x,_,Zh[g],Pt[g]),te=B|0,K=H.rotrSH(n,s,28)^H.rotrBH(n,s,34)^H.rotrBH(n,s,39),F=H.rotrSL(n,s,28)^H.rotrBL(n,s,34)^H.rotrBL(n,s,39),U=n&i^n&a^i&a,T=s&o^s&c^o&c;y=m|0,w=b|0,m=l|0,b=p|0,l=u|0,p=d|0,{h:u,l:d}=H.add(h|0,f|0,N|0,te|0),h=a|0,f=c|0,a=i|0,c=o|0,i=n|0,o=s|0;let L=H.add3L(te,F,T);n=H.add3H(L,N,K,U),s=L|0}({h:n,l:s}=H.add(this.Ah|0,this.Al|0,n|0,s|0)),{h:i,l:o}=H.add(this.Bh|0,this.Bl|0,i|0,o|0),{h:a,l:c}=H.add(this.Ch|0,this.Cl|0,a|0,c|0),{h,l:f}=H.add(this.Dh|0,this.Dl|0,h|0,f|0),{h:u,l:d}=H.add(this.Eh|0,this.El|0,u|0,d|0),{h:l,l:p}=H.add(this.Fh|0,this.Fl|0,l|0,p|0),{h:m,l:b}=H.add(this.Gh|0,this.Gl|0,m|0,b|0),{h:y,l:w}=H.add(this.Hh|0,this.Hl|0,y|0,w|0),this.set(n,s,i,o,a,c,h,f,u,d,l,p,m,b,y,w)}roundClean(){Pt.fill(0),Mt.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};var sn=Pn(()=>new Xi);var Hn={};ge(Hn,{aInRange:()=>Ce,abool:()=>Xe,abytes:()=>Lr,bitGet:()=>nd,bitLen:()=>ro,bitMask:()=>an,bitSet:()=>sd,bytesToHex:()=>yt,bytesToNumberBE:()=>bt,bytesToNumberLE:()=>Ht,concatBytes:()=>wt,createHmacDrbg:()=>no,ensureBytes:()=>ae,equalBytes:()=>td,hexToBytes:()=>nr,hexToNumber:()=>to,inRange:()=>on,isBytes:()=>Vt,memoized:()=>ir,notImplemented:()=>od,numberToBytesBE:()=>Ft,numberToBytesLE:()=>sr,numberToHexUnpadded:()=>rr,numberToVarBytesBE:()=>ed,utf8ToBytes:()=>rd,validateObject:()=>it});var eo=BigInt(0),Vn=BigInt(1),Jh=BigInt(2);function Vt(r){return r instanceof Uint8Array||r!=null&&typeof r=="object"&&r.constructor.name==="Uint8Array"}function Lr(r){if(!Vt(r))throw new Error("Uint8Array expected")}function Xe(r,e){if(typeof e!="boolean")throw new Error(`${r} must be valid boolean, got "${e}".`)}var Qh=Array.from({length:256},(r,e)=>e.toString(16).padStart(2,"0"));function yt(r){Lr(r);let e="";for(let t=0;t<r.length;t++)e+=Qh[r[t]];return e}function rr(r){let e=r.toString(16);return e.length&1?`0${e}`:e}function to(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);return BigInt(r===""?"0":`0x${r}`)}var mt={_0:48,_9:57,_A:65,_F:70,_a:97,_f:102};function Bc(r){if(r>=mt._0&&r<=mt._9)return r-mt._0;if(r>=mt._A&&r<=mt._F)return r-(mt._A-10);if(r>=mt._a&&r<=mt._f)return r-(mt._a-10)}function nr(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);let e=r.length,t=e/2;if(e%2)throw new Error("padded hex string expected, got unpadded hex of length "+e);let n=new Uint8Array(t);for(let s=0,i=0;s<t;s++,i+=2){let o=Bc(r.charCodeAt(i)),a=Bc(r.charCodeAt(i+1));if(o===void 0||a===void 0){let c=r[i]+r[i+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+i)}n[s]=o*16+a}return n}function bt(r){return to(yt(r))}function Ht(r){return Lr(r),to(yt(Uint8Array.from(r).reverse()))}function Ft(r,e){return nr(r.toString(16).padStart(e*2,"0"))}function sr(r,e){return Ft(r,e).reverse()}function ed(r){return nr(rr(r))}function ae(r,e,t){let n;if(typeof e=="string")try{n=nr(e)}catch(i){throw new Error(`${r} must be valid hex string, got "${e}". Cause: ${i}`)}else if(Vt(e))n=Uint8Array.from(e);else throw new Error(`${r} must be hex string or Uint8Array`);let s=n.length;if(typeof t=="number"&&s!==t)throw new Error(`${r} expected ${t} bytes, got ${s}`);return n}function wt(...r){let e=0;for(let n=0;n<r.length;n++){let s=r[n];Lr(s),e+=s.length}let t=new Uint8Array(e);for(let n=0,s=0;n<r.length;n++){let i=r[n];t.set(i,s),s+=i.length}return t}function td(r,e){if(r.length!==e.length)return!1;let t=0;for(let n=0;n<r.length;n++)t|=r[n]^e[n];return t===0}function rd(r){if(typeof r!="string")throw new Error(`utf8ToBytes expected string, got ${typeof r}`);return new Uint8Array(new TextEncoder().encode(r))}var Ji=r=>typeof r=="bigint"&&eo<=r;function on(r,e,t){return Ji(r)&&Ji(e)&&Ji(t)&&e<=r&&r<t}function Ce(r,e,t,n){if(!on(e,t,n))throw new Error(`expected valid ${r}: ${t} <= n < ${n}, got ${typeof e} ${e}`)}function ro(r){let e;for(e=0;r>eo;r>>=Vn,e+=1);return e}function nd(r,e){return r>>BigInt(e)&Vn}function sd(r,e,t){return r|(t?Vn:eo)<<BigInt(e)}var an=r=>(Jh<<BigInt(r-1))-Vn,Qi=r=>new Uint8Array(r),_c=r=>Uint8Array.from(r);function no(r,e,t){if(typeof r!="number"||r<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof t!="function")throw new Error("hmacFn must be a function");let n=Qi(r),s=Qi(r),i=0,o=()=>{n.fill(1),s.fill(0),i=0},a=(...u)=>t(s,n,...u),c=(u=Qi())=>{s=a(_c([0]),u),n=a(),u.length!==0&&(s=a(_c([1]),u),n=a())},h=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let u=0,d=[];for(;u<e;){n=a();let l=n.slice();d.push(l),u+=n.length}return wt(...d)};return(u,d)=>{o(),c(u);let l;for(;!(l=d(h()));)c();return o(),l}}var id={bigint:r=>typeof r=="bigint",function:r=>typeof r=="function",boolean:r=>typeof r=="boolean",string:r=>typeof r=="string",stringOrUint8Array:r=>typeof r=="string"||Vt(r),isSafeInteger:r=>Number.isSafeInteger(r),array:r=>Array.isArray(r),field:(r,e)=>e.Fp.isValid(r),hash:r=>typeof r=="function"&&Number.isSafeInteger(r.outputLen)};function it(r,e,t={}){let n=(s,i,o)=>{let a=id[i];if(typeof a!="function")throw new Error(`Invalid validator "${i}", expected function`);let c=r[s];if(!(o&&c===void 0)&&!a(c,r))throw new Error(`Invalid param ${String(s)}=${c} (${typeof c}), expected ${i}`)};for(let[s,i]of Object.entries(e))n(s,i,!1);for(let[s,i]of Object.entries(t))n(s,i,!0);return r}var od=()=>{throw new Error("not implemented")};function ir(r){let e=new WeakMap;return(t,...n)=>{let s=e.get(t);if(s!==void 0)return s;let i=r(t,...n);return e.set(t,i),i}}var he=BigInt(0),re=BigInt(1),or=BigInt(2),ad=BigInt(3),so=BigInt(4),Ic=BigInt(5),kc=BigInt(8),cd=BigInt(9),ld=BigInt(16);function J(r,e){let t=r%e;return t>=he?t:e+t}function ud(r,e,t){if(t<=he||e<he)throw new Error("Expected power/modulo > 0");if(t===re)return he;let n=re;for(;e>he;)e&re&&(n=n*r%t),r=r*r%t,e>>=re;return n}function ne(r,e,t){let n=r;for(;e-- >he;)n*=n,n%=t;return n}function Fn(r,e){if(r===he||e<=he)throw new Error(`invert: expected positive integers, got n=${r} mod=${e}`);let t=J(r,e),n=e,s=he,i=re,o=re,a=he;for(;t!==he;){let h=n/t,f=n%t,u=s-o*h,d=i-a*h;n=t,t=f,s=o,i=a,o=u,a=d}if(n!==re)throw new Error("invert: does not exist");return J(s,e)}function fd(r){let e=(r-re)/or,t,n,s;for(t=r-re,n=0;t%or===he;t/=or,n++);for(s=or;s<r&&ud(s,e,r)!==r-re;s++);if(n===1){let o=(r+re)/so;return function(c,h){let f=c.pow(h,o);if(!c.eql(c.sqr(f),h))throw new Error("Cannot find square root");return f}}let i=(t+re)/or;return function(a,c){if(a.pow(c,e)===a.neg(a.ONE))throw new Error("Cannot find square root");let h=n,f=a.pow(a.mul(a.ONE,s),t),u=a.pow(c,i),d=a.pow(c,t);for(;!a.eql(d,a.ONE);){if(a.eql(d,a.ZERO))return a.ZERO;let l=1;for(let m=a.sqr(d);l<h&&!a.eql(m,a.ONE);l++)m=a.sqr(m);let p=a.pow(f,re<<BigInt(h-l-1));f=a.sqr(p),u=a.mul(u,p),d=a.mul(d,f),h=l}return u}}function hd(r){if(r%so===ad){let e=(r+re)/so;return function(n,s){let i=n.pow(s,e);if(!n.eql(n.sqr(i),s))throw new Error("Cannot find square root");return i}}if(r%kc===Ic){let e=(r-Ic)/kc;return function(n,s){let i=n.mul(s,or),o=n.pow(i,e),a=n.mul(s,o),c=n.mul(n.mul(a,or),o),h=n.mul(a,n.sub(c,n.ONE));if(!n.eql(n.sqr(h),s))throw new Error("Cannot find square root");return h}}return r%ld,fd(r)}var Tc=(r,e)=>(J(r,e)&re)===re,dd=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function io(r){let e={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},t=dd.reduce((n,s)=>(n[s]="function",n),e);return it(r,t)}function pd(r,e,t){if(t<he)throw new Error("Expected power > 0");if(t===he)return r.ONE;if(t===re)return e;let n=r.ONE,s=e;for(;t>he;)t&re&&(n=r.mul(n,s)),s=r.sqr(s),t>>=re;return n}function gd(r,e){let t=new Array(e.length),n=e.reduce((i,o,a)=>r.is0(o)?i:(t[a]=i,r.mul(i,o)),r.ONE),s=r.inv(n);return e.reduceRight((i,o,a)=>r.is0(o)?i:(t[a]=r.mul(i,t[a]),r.mul(i,o)),s),t}function oo(r,e){let t=e!==void 0?e:r.toString(2).length,n=Math.ceil(t/8);return{nBitLength:t,nByteLength:n}}function Kt(r,e,t=!1,n={}){if(r<=he)throw new Error(`Expected Field ORDER > 0, got ${r}`);let{nBitLength:s,nByteLength:i}=oo(r,e);if(i>2048)throw new Error("Field lengths over 2048 bytes are not supported");let o=hd(r),a=Object.freeze({ORDER:r,BITS:s,BYTES:i,MASK:an(s),ZERO:he,ONE:re,create:c=>J(c,r),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return he<=c&&c<r},is0:c=>c===he,isOdd:c=>(c&re)===re,neg:c=>J(-c,r),eql:(c,h)=>c===h,sqr:c=>J(c*c,r),add:(c,h)=>J(c+h,r),sub:(c,h)=>J(c-h,r),mul:(c,h)=>J(c*h,r),pow:(c,h)=>pd(a,c,h),div:(c,h)=>J(c*Fn(h,r),r),sqrN:c=>c*c,addN:(c,h)=>c+h,subN:(c,h)=>c-h,mulN:(c,h)=>c*h,inv:c=>Fn(c,r),sqrt:n.sqrt||(c=>o(a,c)),invertBatch:c=>gd(a,c),cmov:(c,h,f)=>f?h:c,toBytes:c=>t?sr(c,i):Ft(c,i),fromBytes:c=>{if(c.length!==i)throw new Error(`Fp.fromBytes: expected ${i}, got ${c.length}`);return t?Ht(c):bt(c)}});return Object.freeze(a)}function Rc(r){if(typeof r!="bigint")throw new Error("field order must be bigint");let e=r.toString(2).length;return Math.ceil(e/8)}function ao(r){let e=Rc(r);return e+Math.ceil(e/2)}function Nc(r,e,t=!1){let n=r.length,s=Rc(e),i=ao(e);if(n<16||n<i||n>1024)throw new Error(`expected ${i}-1024 bytes of input, got ${n}`);let o=t?bt(r):Ht(r),a=J(o,e-re)+re;return t?sr(a,s):Ft(a,s)}var yd=BigInt(0),co=BigInt(1),lo=new WeakMap,Lc=new WeakMap;function Kn(r,e){let t=(i,o)=>{let a=o.negate();return i?a:o},n=i=>{if(!Number.isSafeInteger(i)||i<=0||i>e)throw new Error(`Wrong window size=${i}, should be [1..${e}]`)},s=i=>{n(i);let o=Math.ceil(e/i)+1,a=2**(i-1);return{windows:o,windowSize:a}};return{constTimeNegate:t,unsafeLadder(i,o){let a=r.ZERO,c=i;for(;o>yd;)o&co&&(a=a.add(c)),c=c.double(),o>>=co;return a},precomputeWindow(i,o){let{windows:a,windowSize:c}=s(o),h=[],f=i,u=f;for(let d=0;d<a;d++){u=f,h.push(u);for(let l=1;l<c;l++)u=u.add(f),h.push(u);f=u.double()}return h},wNAF(i,o,a){let{windows:c,windowSize:h}=s(i),f=r.ZERO,u=r.BASE,d=BigInt(2**i-1),l=2**i,p=BigInt(i);for(let m=0;m<c;m++){let b=m*h,y=Number(a&d);a>>=p,y>h&&(y-=l,a+=co);let w=b,g=b+Math.abs(y)-1,x=m%2!==0,S=y<0;y===0?u=u.add(t(x,o[w])):f=f.add(t(S,o[g]))}return{p:f,f:u}},wNAFCached(i,o,a){let c=Lc.get(i)||1,h=lo.get(i);return h||(h=this.precomputeWindow(i,c),c!==1&&lo.set(i,a(h))),this.wNAF(c,h,o)},setWindowSize(i,o){n(o),Lc.set(i,o),lo.delete(i)}}}function qn(r,e,t,n){if(!Array.isArray(t)||!Array.isArray(n)||n.length!==t.length)throw new Error("arrays of points and scalars must have equal length");n.forEach((f,u)=>{if(!e.isValid(f))throw new Error(`wrong scalar at index ${u}`)}),t.forEach((f,u)=>{if(!(f instanceof r))throw new Error(`wrong point at index ${u}`)});let s=ro(BigInt(t.length)),i=s>12?s-3:s>4?s-2:s?2:1,o=(1<<i)-1,a=new Array(o+1).fill(r.ZERO),c=Math.floor((e.BITS-1)/i)*i,h=r.ZERO;for(let f=c;f>=0;f-=i){a.fill(r.ZERO);for(let d=0;d<n.length;d++){let l=n[d],p=Number(l>>BigInt(f)&BigInt(o));a[p]=a[p].add(t[d])}let u=r.ZERO;for(let d=a.length-1,l=r.ZERO;d>0;d--)l=l.add(a[d]),u=u.add(l);if(h=h.add(u),f!==0)for(let d=0;d<i;d++)h=h.double()}return h}function cn(r){return io(r.Fp),it(r,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...oo(r.n,r.nBitLength),...r,p:r.Fp.ORDER})}var Je=BigInt(0),Ue=BigInt(1),zn=BigInt(2),bd=BigInt(8),wd={zip215:!0};function xd(r){let e=cn(r);return it(r,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...e})}function Cc(r){let e=xd(r),{Fp:t,n,prehash:s,hash:i,randomBytes:o,nByteLength:a,h:c}=e,h=zn<<BigInt(a*8)-Ue,f=t.create,u=Kt(e.n,e.nBitLength),d=e.uvRatio||((A,E)=>{try{return{isValid:!0,value:t.sqrt(A*t.inv(E))}}catch{return{isValid:!1,value:Je}}}),l=e.adjustScalarBytes||(A=>A),p=e.domain||((A,E,I)=>{if(Xe("phflag",I),E.length||I)throw new Error("Contexts/pre-hash are not supported");return A});function m(A,E){Ce("coordinate "+A,E,Je,h)}function b(A){if(!(A instanceof g))throw new Error("ExtendedPoint expected")}let y=ir((A,E)=>{let{ex:I,ey:C,ez:P}=A,M=A.is0();E==null&&(E=M?bd:t.inv(P));let z=f(I*E),j=f(C*E),$=f(P*E);if(M)return{x:Je,y:Ue};if($!==Ue)throw new Error("invZ was invalid");return{x:z,y:j}}),w=ir(A=>{let{a:E,d:I}=e;if(A.is0())throw new Error("bad point: ZERO");let{ex:C,ey:P,ez:M,et:z}=A,j=f(C*C),$=f(P*P),X=f(M*M),ee=f(X*X),de=f(j*E),pe=f(X*f(de+$)),we=f(ee+f(I*f(j*$)));if(pe!==we)throw new Error("bad point: equation left != right (1)");let Ie=f(C*P),ue=f(M*z);if(Ie!==ue)throw new Error("bad point: equation left != right (2)");return!0});class g{constructor(E,I,C,P){this.ex=E,this.ey=I,this.ez=C,this.et=P,m("x",E),m("y",I),m("z",C),m("t",P),Object.freeze(this)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(E){if(E instanceof g)throw new Error("extended point not allowed");let{x:I,y:C}=E||{};return m("x",I),m("y",C),new g(I,C,Ue,f(I*C))}static normalizeZ(E){let I=t.invertBatch(E.map(C=>C.ez));return E.map((C,P)=>C.toAffine(I[P])).map(g.fromAffine)}static msm(E,I){return qn(g,u,E,I)}_setWindowSize(E){_.setWindowSize(this,E)}assertValidity(){w(this)}equals(E){b(E);let{ex:I,ey:C,ez:P}=this,{ex:M,ey:z,ez:j}=E,$=f(I*j),X=f(M*P),ee=f(C*j),de=f(z*P);return $===X&&ee===de}is0(){return this.equals(g.ZERO)}negate(){return new g(f(-this.ex),this.ey,this.ez,f(-this.et))}double(){let{a:E}=e,{ex:I,ey:C,ez:P}=this,M=f(I*I),z=f(C*C),j=f(zn*f(P*P)),$=f(E*M),X=I+C,ee=f(f(X*X)-M-z),de=$+z,pe=de-j,we=$-z,Ie=f(ee*pe),ue=f(de*we),Ne=f(ee*we),ht=f(pe*de);return new g(Ie,ue,ht,Ne)}add(E){b(E);let{a:I,d:C}=e,{ex:P,ey:M,ez:z,et:j}=this,{ex:$,ey:X,ez:ee,et:de}=E;if(I===BigInt(-1)){let Ca=f((M-P)*(X+$)),Ua=f((M+P)*(X-$)),wi=f(Ua-Ca);if(wi===Je)return this.double();let Da=f(z*zn*de),Oa=f(j*zn*ee),Pa=Oa+Da,Ma=Ua+Ca,Va=Oa-Da,af=f(Pa*wi),cf=f(Ma*Va),lf=f(Pa*Va),uf=f(wi*Ma);return new g(af,cf,uf,lf)}let pe=f(P*$),we=f(M*X),Ie=f(j*C*de),ue=f(z*ee),Ne=f((P+M)*($+X)-pe-we),ht=ue-Ie,Xr=ue+Ie,Jr=f(we-I*pe),rf=f(Ne*ht),nf=f(Xr*Jr),sf=f(Ne*Jr),of=f(ht*Xr);return new g(rf,nf,of,sf)}subtract(E){return this.add(E.negate())}wNAF(E){return _.wNAFCached(this,E,g.normalizeZ)}multiply(E){let I=E;Ce("scalar",I,Ue,n);let{p:C,f:P}=this.wNAF(I);return g.normalizeZ([C,P])[0]}multiplyUnsafe(E){let I=E;return Ce("scalar",I,Je,n),I===Je?S:this.equals(S)||I===Ue?this:this.equals(x)?this.wNAF(I).p:_.unsafeLadder(this,I)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return _.unsafeLadder(this,n).is0()}toAffine(E){return y(this,E)}clearCofactor(){let{h:E}=e;return E===Ue?this:this.multiplyUnsafe(E)}static fromHex(E,I=!1){let{d:C,a:P}=e,M=t.BYTES;E=ae("pointHex",E,M),Xe("zip215",I);let z=E.slice(),j=E[M-1];z[M-1]=j&-129;let $=Ht(z),X=I?h:t.ORDER;Ce("pointHex.y",$,Je,X);let ee=f($*$),de=f(ee-Ue),pe=f(C*ee-P),{isValid:we,value:Ie}=d(de,pe);if(!we)throw new Error("Point.fromHex: invalid y coordinate");let ue=(Ie&Ue)===Ue,Ne=(j&128)!==0;if(!I&&Ie===Je&&Ne)throw new Error("Point.fromHex: x=0 and x_0=1");return Ne!==ue&&(Ie=f(-Ie)),g.fromAffine({x:Ie,y:$})}static fromPrivateKey(E){return N(E).point}toRawBytes(){let{x:E,y:I}=this.toAffine(),C=sr(I,t.BYTES);return C[C.length-1]|=E&Ue?128:0,C}toHex(){return yt(this.toRawBytes())}}g.BASE=new g(e.Gx,e.Gy,Ue,f(e.Gx*e.Gy)),g.ZERO=new g(Je,Ue,Ue,Je);let{BASE:x,ZERO:S}=g,_=Kn(g,a*8);function v(A){return J(A,n)}function B(A){return v(Ht(A))}function N(A){let E=a;A=ae("private key",A,E);let I=ae("hashed private key",i(A),2*E),C=l(I.slice(0,E)),P=I.slice(E,2*E),M=B(C),z=x.multiply(M),j=z.toRawBytes();return{head:C,prefix:P,scalar:M,point:z,pointBytes:j}}function te(A){return N(A).pointBytes}function K(A=new Uint8Array,...E){let I=wt(...E);return B(i(p(I,ae("context",A),!!s)))}function F(A,E,I={}){A=ae("message",A),s&&(A=s(A));let{prefix:C,scalar:P,pointBytes:M}=N(E),z=K(I.context,C,A),j=x.multiply(z).toRawBytes(),$=K(I.context,j,M,A),X=v(z+$*P);Ce("signature.s",X,Je,n);let ee=wt(j,sr(X,t.BYTES));return ae("result",ee,a*2)}let U=wd;function T(A,E,I,C=U){let{context:P,zip215:M}=C,z=t.BYTES;A=ae("signature",A,2*z),E=ae("message",E),M!==void 0&&Xe("zip215",M),s&&(E=s(E));let j=Ht(A.slice(z,2*z)),$,X,ee;try{$=g.fromHex(I,M),X=g.fromHex(A.slice(0,z),M),ee=x.multiplyUnsafe(j)}catch{return!1}if(!M&&$.isSmallOrder())return!1;let de=K(P,X.toRawBytes(),$.toRawBytes(),E);return X.add($.multiplyUnsafe(de)).subtract(ee).clearCofactor().equals(g.ZERO)}return x._setWindowSize(8),{CURVE:e,getPublicKey:te,sign:F,verify:T,ExtendedPoint:g,utils:{getExtendedPublicKey:N,randomPrivateKey:()=>o(t.BYTES),precompute(A=8,E=g.BASE){return E._setWindowSize(A),E.multiply(BigInt(3)),E}}}}var uo=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),Uc=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),Ym=BigInt(0),vd=BigInt(1),Dc=BigInt(2),Zm=BigInt(3),Ed=BigInt(5),Ad=BigInt(8);function Sd(r){let e=BigInt(10),t=BigInt(20),n=BigInt(40),s=BigInt(80),i=uo,a=r*r%i*r%i,c=ne(a,Dc,i)*a%i,h=ne(c,vd,i)*r%i,f=ne(h,Ed,i)*h%i,u=ne(f,e,i)*f%i,d=ne(u,t,i)*u%i,l=ne(d,n,i)*d%i,p=ne(l,s,i)*l%i,m=ne(p,s,i)*l%i,b=ne(m,e,i)*f%i;return{pow_p_5_8:ne(b,Dc,i)*r%i,b2:a}}function Bd(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}function _d(r,e){let t=uo,n=J(e*e*e,t),s=J(n*n*e,t),i=Sd(r*s).pow_p_5_8,o=J(r*n*i,t),a=J(e*o*o,t),c=o,h=J(o*Uc,t),f=a===r,u=a===J(-r,t),d=a===J(-r*Uc,t);return f&&(o=c),(u||d)&&(o=h),Tc(o,t)&&(o=J(-o,t)),{isValid:f||u,value:o}}var Id=Kt(uo,void 0,!0),kd={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:Id,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:Ad,Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:sn,randomBytes:Rr,adjustScalarBytes:Bd,uvRatio:_d},Cr=Cc(kd);var Ur=32,xt=64,$n=32;function Oc(){let r=Cr.utils.randomPrivateKey(),e=Cr.getPublicKey(r);return{privateKey:Hc(r,e),publicKey:e}}function Pc(r){if(r.length!==$n)throw new TypeError('"seed" must be 32 bytes in length.');if(!(r instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let e=r,t=Cr.getPublicKey(e);return{privateKey:Hc(e,t),publicKey:t}}function Mc(r,e){let t=r.subarray(0,$n);return Cr.sign(e instanceof Uint8Array?e:e.subarray(),t)}function Vc(r,e,t){return Cr.verify(e,t instanceof Uint8Array?t:t.subarray(),r)}function Hc(r,e){let t=new Uint8Array(xt);for(let n=0;n<$n;n++)t[n]=r[n],t[$n+n]=e[n];return t}var Te={get(r=globalThis){let e=r.crypto;if(e?.subtle==null)throw Object.assign(new Error("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p/blob/main/packages/crypto/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return e}};var fo={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function Fc(r){let e=r?.algorithm??"AES-GCM",t=r?.keyLength??16,n=r?.nonceLength??12,s=r?.digest??"SHA-256",i=r?.saltLength??16,o=r?.iterations??32767,a=Te.get();t*=8;async function c(u,d){let l=a.getRandomValues(new Uint8Array(i)),p=a.getRandomValues(new Uint8Array(n)),m={name:e,iv:p};typeof d=="string"&&(d=V(d));let b;if(d.length===0){b=await a.subtle.importKey("jwk",fo,{name:"AES-GCM"},!0,["encrypt"]);try{let w={name:"PBKDF2",salt:l,iterations:o,hash:{name:s}},g=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey"]);b=await a.subtle.deriveKey(w,g,{name:e,length:t},!0,["encrypt"])}catch{b=await a.subtle.importKey("jwk",fo,{name:"AES-GCM"},!0,["encrypt"])}}else{let w={name:"PBKDF2",salt:l,iterations:o,hash:{name:s}},g=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey"]);b=await a.subtle.deriveKey(w,g,{name:e,length:t},!0,["encrypt"])}let y=await a.subtle.encrypt(m,b,u);return ke([l,m.iv,new Uint8Array(y)])}async function h(u,d){let l=u.subarray(0,i),p=u.subarray(i,i+n),m=u.subarray(i+n),b={name:e,iv:p};typeof d=="string"&&(d=V(d));let y;if(d.length===0)try{let g={name:"PBKDF2",salt:l,iterations:o,hash:{name:s}},x=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(g,x,{name:e,length:t},!0,["decrypt"])}catch{y=await a.subtle.importKey("jwk",fo,{name:"AES-GCM"},!0,["decrypt"])}else{let g={name:"PBKDF2",salt:l,iterations:o,hash:{name:s}},x=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(g,x,{name:e,length:t},!0,["decrypt"])}let w=await a.subtle.decrypt(b,y,m);return new Uint8Array(w)}return{encrypt:c,decrypt:h}}async function Dr(r,e){let n=await Fc().encrypt(r,e);return Ui.encode(n)}var Nd=Math.pow(2,7),Ld=Math.pow(2,14),Cd=Math.pow(2,21),ho=Math.pow(2,28),po=Math.pow(2,35),go=Math.pow(2,42),mo=Math.pow(2,49),Y=128,Ae=127;function Se(r){if(r<Nd)return 1;if(r<Ld)return 2;if(r<Cd)return 3;if(r<ho)return 4;if(r<po)return 5;if(r<go)return 6;if(r<mo)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function yo(r,e,t=0){switch(Se(r)){case 8:e[t++]=r&255|Y,r/=128;case 7:e[t++]=r&255|Y,r/=128;case 6:e[t++]=r&255|Y,r/=128;case 5:e[t++]=r&255|Y,r/=128;case 4:e[t++]=r&255|Y,r>>>=7;case 3:e[t++]=r&255|Y,r>>>=7;case 2:e[t++]=r&255|Y,r>>>=7;case 1:{e[t++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return e}function Ud(r,e,t=0){switch(Se(r)){case 8:e.set(t++,r&255|Y),r/=128;case 7:e.set(t++,r&255|Y),r/=128;case 6:e.set(t++,r&255|Y),r/=128;case 5:e.set(t++,r&255|Y),r/=128;case 4:e.set(t++,r&255|Y),r>>>=7;case 3:e.set(t++,r&255|Y),r>>>=7;case 2:e.set(t++,r&255|Y),r>>>=7;case 1:{e.set(t++,r&255),r>>>=7;break}default:throw new Error("unreachable")}return e}function bo(r,e){let t=r[e],n=0;if(n+=t&Ae,t<Y||(t=r[e+1],n+=(t&Ae)<<7,t<Y)||(t=r[e+2],n+=(t&Ae)<<14,t<Y)||(t=r[e+3],n+=(t&Ae)<<21,t<Y)||(t=r[e+4],n+=(t&Ae)*ho,t<Y)||(t=r[e+5],n+=(t&Ae)*po,t<Y)||(t=r[e+6],n+=(t&Ae)*go,t<Y)||(t=r[e+7],n+=(t&Ae)*mo,t<Y))return n;throw new RangeError("Could not decode varint")}function Dd(r,e){let t=r.get(e),n=0;if(n+=t&Ae,t<Y||(t=r.get(e+1),n+=(t&Ae)<<7,t<Y)||(t=r.get(e+2),n+=(t&Ae)<<14,t<Y)||(t=r.get(e+3),n+=(t&Ae)<<21,t<Y)||(t=r.get(e+4),n+=(t&Ae)*ho,t<Y)||(t=r.get(e+5),n+=(t&Ae)*po,t<Y)||(t=r.get(e+6),n+=(t&Ae)*go,t<Y)||(t=r.get(e+7),n+=(t&Ae)*mo,t<Y))return n;throw new RangeError("Could not decode varint")}function je(r,e,t=0){return e==null&&(e=Le(Se(r))),e instanceof Uint8Array?yo(r,e,t):Ud(r,e,t)}function vt(r,e=0){return r instanceof Uint8Array?bo(r,e):Dd(r,e)}var wo=new Float32Array([-0]),qt=new Uint8Array(wo.buffer);function Kc(r,e,t){wo[0]=r,e[t]=qt[0],e[t+1]=qt[1],e[t+2]=qt[2],e[t+3]=qt[3]}function qc(r,e){return qt[0]=r[e],qt[1]=r[e+1],qt[2]=r[e+2],qt[3]=r[e+3],wo[0]}var xo=new Float64Array([-0]),Be=new Uint8Array(xo.buffer);function zc(r,e,t){xo[0]=r,e[t]=Be[0],e[t+1]=Be[1],e[t+2]=Be[2],e[t+3]=Be[3],e[t+4]=Be[4],e[t+5]=Be[5],e[t+6]=Be[6],e[t+7]=Be[7]}function $c(r,e){return Be[0]=r[e],Be[1]=r[e+1],Be[2]=r[e+2],Be[3]=r[e+3],Be[4]=r[e+4],Be[5]=r[e+5],Be[6]=r[e+6],Be[7]=r[e+7],xo[0]}var Od=BigInt(Number.MAX_SAFE_INTEGER),Pd=BigInt(Number.MIN_SAFE_INTEGER),Pe=class r{lo;hi;constructor(e,t){this.lo=e|0,this.hi=t|0}toNumber(e=!1){if(!e&&this.hi>>>31>0){let t=~this.lo+1>>>0,n=~this.hi>>>0;return t===0&&(n=n+1>>>0),-(t+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(e=!1){if(e)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let t=~this.lo+1>>>0,n=~this.hi>>>0;return t===0&&(n=n+1>>>0),-(BigInt(t)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(e=!1){return this.toBigInt(e).toString()}zzEncode(){let e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this}zzDecode(){let e=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this}length(){let e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?t===0?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:n<128?9:10}static fromBigInt(e){if(e===0n)return ar;if(e<Od&&e>Pd)return this.fromNumber(Number(e));let t=e<0n;t&&(e=-e);let n=e>>32n,s=e-(n<<32n);return t&&(n=~n|0n,s=~s|0n,++s>Gc&&(s=0n,++n>Gc&&(n=0n))),new r(Number(s),Number(n))}static fromNumber(e){if(e===0)return ar;let t=e<0;t&&(e=-e);let n=e>>>0,s=(e-n)/4294967296>>>0;return t&&(s=~s>>>0,n=~n>>>0,++n>4294967295&&(n=0,++s>4294967295&&(s=0))),new r(n,s)}static from(e){return typeof e=="number"?r.fromNumber(e):typeof e=="bigint"?r.fromBigInt(e):typeof e=="string"?r.fromBigInt(BigInt(e)):e.low!=null||e.high!=null?new r(e.low>>>0,e.high>>>0):ar}},ar=new Pe(0,0);ar.toBigInt=function(){return 0n};ar.zzEncode=ar.zzDecode=function(){return this};ar.length=function(){return 1};var Gc=4294967296n;function jc(r){let e=0,t=0;for(let n=0;n<r.length;++n)t=r.charCodeAt(n),t<128?e+=1:t<2048?e+=2:(t&64512)===55296&&(r.charCodeAt(n+1)&64512)===56320?(++n,e+=4):e+=3;return e}function Wc(r,e,t){if(t-e<1)return"";let s,i=[],o=0,a;for(;e<t;)a=r[e++],a<128?i[o++]=a:a>191&&a<224?i[o++]=(a&31)<<6|r[e++]&63:a>239&&a<365?(a=((a&7)<<18|(r[e++]&63)<<12|(r[e++]&63)<<6|r[e++]&63)-65536,i[o++]=55296+(a>>10),i[o++]=56320+(a&1023)):i[o++]=(a&15)<<12|(r[e++]&63)<<6|r[e++]&63,o>8191&&((s??(s=[])).push(String.fromCharCode.apply(String,i)),o=0);return s!=null?(o>0&&s.push(String.fromCharCode.apply(String,i.slice(0,o))),s.join("")):String.fromCharCode.apply(String,i.slice(0,o))}function vo(r,e,t){let n=t,s,i;for(let o=0;o<r.length;++o)s=r.charCodeAt(o),s<128?e[t++]=s:s<2048?(e[t++]=s>>6|192,e[t++]=s&63|128):(s&64512)===55296&&((i=r.charCodeAt(o+1))&64512)===56320?(s=65536+((s&1023)<<10)+(i&1023),++o,e[t++]=s>>18|240,e[t++]=s>>12&63|128,e[t++]=s>>6&63|128,e[t++]=s&63|128):(e[t++]=s>>12|224,e[t++]=s>>6&63|128,e[t++]=s&63|128);return t-n}function Qe(r,e){return RangeError(`index out of range: ${r.pos} + ${e??1} > ${r.len}`)}function jn(r,e){return(r[e-4]|r[e-3]<<8|r[e-2]<<16|r[e-1]<<24)>>>0}var Eo=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(e){this.buf=e,this.pos=0,this.len=e.length}uint32(){let e=4294967295;if(e=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(e=(e|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return e;if((this.pos+=5)>this.len)throw this.pos=this.len,Qe(this,10);return e}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Qe(this,4);return jn(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Qe(this,4);return jn(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Qe(this,4);let e=qc(this.buf,this.pos);return this.pos+=4,e}double(){if(this.pos+8>this.len)throw Qe(this,4);let e=$c(this.buf,this.pos);return this.pos+=8,e}bytes(){let e=this.uint32(),t=this.pos,n=this.pos+e;if(n>this.len)throw Qe(this,e);return this.pos+=e,t===n?new Uint8Array(0):this.buf.subarray(t,n)}string(){let e=this.bytes();return Wc(e,0,e.length)}skip(e){if(typeof e=="number"){if(this.pos+e>this.len)throw Qe(this,e);this.pos+=e}else do if(this.pos>=this.len)throw Qe(this);while(this.buf[this.pos++]&128);return this}skipType(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(e=this.uint32()&7)!==4;)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${e} at offset ${this.pos}`)}return this}readLongVarint(){let e=new Pe(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(this.buf[this.pos]&127)<<28)>>>0,e.hi=(e.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return e;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw Qe(this);if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(this.buf[this.pos++]&127)<<t*7)>>>0,e}if(this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw Qe(this);if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Qe(this,8);let e=jn(this.buf,this.pos+=4),t=jn(this.buf,this.pos+=4);return new Pe(e,t)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let e=bo(this.buf,this.pos);return this.pos+=Se(e),e}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function Ao(r){return new Eo(r instanceof Uint8Array?r:r.subarray())}function Me(r,e,t){let n=Ao(r);return e.decode(n,void 0,t)}function So(r){let e=r??8192,t=e>>>1,n,s=e;return function(o){if(o<1||o>t)return Le(o);s+o>e&&(n=Le(e),s=0);let a=n.subarray(s,s+=o);return s&7&&(s=(s|7)+1),a}}var cr=class{fn;len;next;val;constructor(e,t,n){this.fn=e,this.len=t,this.next=void 0,this.val=n}};function Bo(){}var Io=class{head;tail;len;next;constructor(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}},Md=So();function Vd(r){return globalThis.Buffer!=null?Le(r):Md(r)}var un=class{len;head;tail;states;constructor(){this.len=0,this.head=new cr(Bo,0,0),this.tail=this.head,this.states=null}_push(e,t,n){return this.tail=this.tail.next=new cr(e,t,n),this.len+=t,this}uint32(e){return this.len+=(this.tail=this.tail.next=new ko((e=e>>>0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this}int32(e){return e<0?this._push(Wn,10,Pe.fromNumber(e)):this.uint32(e)}sint32(e){return this.uint32((e<<1^e>>31)>>>0)}uint64(e){let t=Pe.fromBigInt(e);return this._push(Wn,t.length(),t)}uint64Number(e){return this._push(yo,Se(e),e)}uint64String(e){return this.uint64(BigInt(e))}int64(e){return this.uint64(e)}int64Number(e){return this.uint64Number(e)}int64String(e){return this.uint64String(e)}sint64(e){let t=Pe.fromBigInt(e).zzEncode();return this._push(Wn,t.length(),t)}sint64Number(e){let t=Pe.fromNumber(e).zzEncode();return this._push(Wn,t.length(),t)}sint64String(e){return this.sint64(BigInt(e))}bool(e){return this._push(_o,1,e?1:0)}fixed32(e){return this._push(ln,4,e>>>0)}sfixed32(e){return this.fixed32(e)}fixed64(e){let t=Pe.fromBigInt(e);return this._push(ln,4,t.lo)._push(ln,4,t.hi)}fixed64Number(e){let t=Pe.fromNumber(e);return this._push(ln,4,t.lo)._push(ln,4,t.hi)}fixed64String(e){return this.fixed64(BigInt(e))}sfixed64(e){return this.fixed64(e)}sfixed64Number(e){return this.fixed64Number(e)}sfixed64String(e){return this.fixed64String(e)}float(e){return this._push(Kc,4,e)}double(e){return this._push(zc,8,e)}bytes(e){let t=e.length>>>0;return t===0?this._push(_o,1,0):this.uint32(t)._push(Fd,t,e)}string(e){let t=jc(e);return t!==0?this.uint32(t)._push(vo,t,e):this._push(_o,1,0)}fork(){return this.states=new Io(this),this.head=this.tail=new cr(Bo,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new cr(Bo,0,0),this.len=0),this}ldelim(){let e=this.head,t=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=e.next,this.tail=t,this.len+=n),this}finish(){let e=this.head.next,t=Vd(this.len),n=0;for(;e!=null;)e.fn(e.val,t,n),n+=e.len,e=e.next;return t}};function _o(r,e,t){e[t]=r&255}function Hd(r,e,t){for(;r>127;)e[t++]=r&127|128,r>>>=7;e[t]=r}var ko=class extends cr{next;constructor(e,t){super(Hd,e,t),this.next=void 0}};function Wn(r,e,t){for(;r.hi!==0;)e[t++]=r.lo&127|128,r.lo=(r.lo>>>7|r.hi<<25)>>>0,r.hi>>>=7;for(;r.lo>127;)e[t++]=r.lo&127|128,r.lo=r.lo>>>7;e[t++]=r.lo}function ln(r,e,t){e[t]=r&255,e[t+1]=r>>>8&255,e[t+2]=r>>>16&255,e[t+3]=r>>>24}function Fd(r,e,t){e.set(r,t)}globalThis.Buffer!=null&&(un.prototype.bytes=function(r){let e=r.length>>>0;return this.uint32(e),e>0&&this._push(Kd,e,r),this},un.prototype.string=function(r){let e=globalThis.Buffer.byteLength(r);return this.uint32(e),e>0&&this._push(qd,e,r),this});function Kd(r,e,t){e.set(r,t)}function qd(r,e,t){r.length<40?vo(r,e,t):e.utf8Write!=null?e.utf8Write(r,t):e.set(V(r),t)}function To(){return new un}function Ve(r,e){let t=To();return e.encode(r,t,{lengthDelimited:!1}),t.finish()}var Or;(function(r){r[r.VARINT=0]="VARINT",r[r.BIT64=1]="BIT64",r[r.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",r[r.START_GROUP=3]="START_GROUP",r[r.END_GROUP=4]="END_GROUP",r[r.BIT32=5]="BIT32"})(Or||(Or={}));function Yn(r,e,t,n){return{name:r,type:e,encode:t,decode:n}}function lr(r){function e(s){if(r[s.toString()]==null)throw new Error("Invalid enum value");return r[s]}let t=function(i,o){let a=e(i);o.int32(a)},n=function(i){let o=i.int32();return e(o)};return Yn("enum",Or.VARINT,t,n)}function He(r,e){return Yn("message",Or.LENGTH_DELIMITED,r,e)}var fn=class extends Error{code;constructor(e,t){super(e),this.code=t}};var se;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.Secp256k1="Secp256k1"})(se||(se={}));var Ro;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.Secp256k1=2]="Secp256k1"})(Ro||(Ro={}));(function(r){r.codec=()=>lr(Ro)})(se||(se={}));var ot;(function(r){let e;r.codec=()=>(e==null&&(e=He((t,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),t.Type!=null&&(n.uint32(8),se.codec().encode(t.Type,n)),t.Data!=null&&(n.uint32(18),n.bytes(t.Data)),s.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let s={},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let o=t.uint32();switch(o>>>3){case 1:s.Type=se.codec().decode(t);break;case 2:s.Data=t.bytes();break;default:t.skipType(o&7);break}}return s})),e),r.encode=t=>Ve(t,r.codec()),r.decode=t=>Me(t,r.codec())})(ot||(ot={}));var at;(function(r){let e;r.codec=()=>(e==null&&(e=He((t,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),t.Type!=null&&(n.uint32(8),se.codec().encode(t.Type,n)),t.Data!=null&&(n.uint32(18),n.bytes(t.Data)),s.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let s={},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let o=t.uint32();switch(o>>>3){case 1:s.Type=se.codec().decode(t);break;case 2:s.Data=t.bytes();break;default:t.skipType(o&7);break}}return s})),e),r.encode=t=>Ve(t,r.codec()),r.decode=t=>Me(t,r.codec())})(at||(at={}));var hn=class{_key;constructor(e){this._key=Pr(e,Ur)}verify(e,t){return Vc(this._key,t,e)}marshal(){return this._key}get bytes(){return ot.encode({Type:se.Ed25519,Data:this.marshal()}).subarray()}equals(e){return oe(this.bytes,e.bytes)}hash(){let e=me.digest(this.bytes);return Ge(e)?e.then(({bytes:t})=>t):e.bytes}},ur=class{_key;_publicKey;constructor(e,t){this._key=Pr(e,xt),this._publicKey=Pr(t,Ur)}sign(e){return Mc(this._key,e)}get public(){return new hn(this._publicKey)}marshal(){return this._key}get bytes(){return at.encode({Type:se.Ed25519,Data:this.marshal()}).subarray()}equals(e){return oe(this.bytes,e.bytes)}async hash(){let e=me.digest(this.bytes),t;return Ge(e)?{bytes:t}=await e:t=e.bytes,t}async id(){let e=gt.digest(this.public.bytes);return fe.encode(e.bytes).substring(1)}async export(e,t="libp2p-key"){if(t==="libp2p-key")return Dr(this.bytes,e);throw new D(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function zd(r){if(r.length>xt){r=Pr(r,xt+Ur);let n=r.subarray(0,xt),s=r.subarray(xt,r.length);return new ur(n,s)}r=Pr(r,xt);let e=r.subarray(0,xt),t=r.subarray(Ur);return new ur(e,t)}function $d(r){return r=Pr(r,Ur),new hn(r)}async function Gd(){let{privateKey:r,publicKey:e}=Oc();return new ur(r,e)}async function Zc(r){let{privateKey:e,publicKey:t}=Pc(r);return new ur(e,t)}function Pr(r,e){if(r=Uint8Array.from(r??[]),r.length!==e)throw new D(`Key must be a Uint8Array of length ${e}, got ${r.length}`,"ERR_INVALID_KEY_TYPE");return r}var Fo={};ge(Fo,{MAX_RSA_KEY_SIZE:()=>Sn,RsaPrivateKey:()=>Kr,RsaPublicKey:()=>An,fromJwk:()=>wp,generateKeyPair:()=>xp,unmarshalRsaPrivateKey:()=>Vo,unmarshalRsaPublicKey:()=>bp});function ct(r){if(isNaN(r)||r<=0)throw new D("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return Rr(r)}var jt={};ge(jt,{exportToPem:()=>dp,importFromPem:()=>pp,jwkToPkcs1:()=>lp,jwkToPkix:()=>fp,pkcs1ToJwk:()=>cp,pkixToJwk:()=>up});var Xn=class extends kr{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,On(e);let n=Ot(t);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let s=this.blockLen,i=new Uint8Array(s);i.set(n.length>s?e.create().update(n).digest():n);for(let o=0;o<i.length;o++)i[o]^=54;this.iHash.update(i),this.oHash=e.create();for(let o=0;o<i.length;o++)i[o]^=106;this.oHash.update(i),i.fill(0)}update(e){return Ir(this),this.iHash.update(e),this}digestInto(e){Ir(this),_r(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));let{oHash:t,iHash:n,finished:s,destroyed:i,blockLen:o,outputLen:a}=this;return e=e,e.finished=s,e.destroyed=i,e.blockLen=o,e.outputLen=a,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},dn=(r,e,t)=>new Xn(r,e).update(t).digest();dn.create=(r,e)=>new Xn(r,e);function jd(r,e,t,n){On(r);let s=vc({dkLen:32,asyncTick:10},n),{c:i,dkLen:o,asyncTick:a}=s;if(Br(i),Br(o),Br(a),i<1)throw new Error("PBKDF2: iterations (c) should be >= 1");let c=Ot(e),h=Ot(t),f=new Uint8Array(o),u=dn.create(r,c),d=u._cloneInto().update(h);return{c:i,dkLen:o,asyncTick:a,DK:f,PRF:u,PRFSalt:d}}function Wd(r,e,t,n,s){return r.destroy(),e.destroy(),n&&n.destroy(),s.fill(0),t}async function Lo(r,e,t,n){let{c:s,dkLen:i,asyncTick:o,DK:a,PRF:c,PRFSalt:h}=jd(r,e,t,n),f,u=new Uint8Array(4),d=Tr(u),l=new Uint8Array(c.outputLen);for(let p=1,m=0;m<i;p++,m+=c.outputLen){let b=a.subarray(m,m+c.outputLen);d.setInt32(0,p,!1),(f=h._cloneInto(f)).update(u).digestInto(l),b.set(l.subarray(0,b.length)),await wc(s-1,o,()=>{c._cloneInto(f).update(l).digestInto(l);for(let y=0;y<b.length;y++)b[y]^=l[y]})}return Wd(c,h,a,f,l)}var G=vi(Xc());function fr(r,e){let t=0;if(r.length===1)return r[0];for(let n=r.length-1;n>=0;n--)t+=r[r.length-1-n]*Math.pow(2,e*n);return t}function zt(r,e,t=-1){let n=t,s=r,i=0,o=Math.pow(2,e);for(let a=1;a<8;a++){if(r<o){let c;if(n<0)c=new ArrayBuffer(a),i=a;else{if(n<a)return new ArrayBuffer(0);c=new ArrayBuffer(n),i=n}let h=new Uint8Array(c);for(let f=a-1;f>=0;f--){let u=Math.pow(2,f*e);h[i-f-1]=Math.floor(s/u),s-=h[i-f-1]*u}return c}o*=Math.pow(2,e)}return new ArrayBuffer(0)}function es(...r){let e=0,t=0;for(let i of r)e+=i.length;let n=new ArrayBuffer(e),s=new Uint8Array(n);for(let i of r)s.set(i,t),t+=i.length;return s}function Uo(){let r=new Uint8Array(this.valueHex);if(this.valueHex.byteLength>=2){let a=r[0]===255&&r[1]&128,c=r[0]===0&&(r[1]&128)===0;(a||c)&&this.warnings.push("Needlessly long format")}let e=new ArrayBuffer(this.valueHex.byteLength),t=new Uint8Array(e);for(let a=0;a<this.valueHex.byteLength;a++)t[a]=0;t[0]=r[0]&128;let n=fr(t,8),s=new ArrayBuffer(this.valueHex.byteLength),i=new Uint8Array(s);for(let a=0;a<this.valueHex.byteLength;a++)i[a]=r[a];return i[0]&=127,fr(i,8)-n}function Jc(r){let e=r<0?r*-1:r,t=128;for(let n=1;n<8;n++){if(e<=t){if(r<0){let o=t-e,a=zt(o,8,n),c=new Uint8Array(a);return c[0]|=128,a}let s=zt(e,8,n),i=new Uint8Array(s);if(i[0]&128){let o=s.slice(0),a=new Uint8Array(o);s=new ArrayBuffer(s.byteLength+1),i=new Uint8Array(s);for(let c=0;c<o.byteLength;c++)i[c+1]=a[c];i[0]=0}return s}t*=Math.pow(2,8)}return new ArrayBuffer(0)}function Qc(r,e){if(r.byteLength!==e.byteLength)return!1;let t=new Uint8Array(r),n=new Uint8Array(e);for(let s=0;s<t.length;s++)if(t[s]!==n[s])return!1;return!0}function De(r,e){let t=r.toString(10);if(e<t.length)return"";let n=e-t.length,s=new Array(n);for(let o=0;o<n;o++)s[o]="0";return s.join("").concat(t)}var rb=Math.log(2);function ts(){if(typeof BigInt>"u")throw new Error("BigInt is not defined. Your environment doesn't implement BigInt.")}function Do(r){let e=0,t=0;for(let s=0;s<r.length;s++){let i=r[s];e+=i.byteLength}let n=new Uint8Array(e);for(let s=0;s<r.length;s++){let i=r[s];n.set(new Uint8Array(i),t),t+=i.byteLength}return n.buffer}function _t(r,e,t,n){return e instanceof Uint8Array?e.byteLength?t<0?(r.error="Wrong parameter: inputOffset less than zero",!1):n<0?(r.error="Wrong parameter: inputLength less than zero",!1):e.byteLength-t-n<0?(r.error="End of input reached before message was fully decoded (inconsistent offset and length values)",!1):!0:(r.error="Wrong parameter: inputBuffer has zero length",!1):(r.error="Wrong parameter: inputBuffer must be 'Uint8Array'",!1)}var gn=class{constructor(){this.items=[]}write(e){this.items.push(e)}final(){return Do(this.items)}},pn=[new Uint8Array([1])],el="0123456789";var Hr="",tt=new ArrayBuffer(0),Oo=new Uint8Array(0),mn="EndOfContent",rl="OCTET STRING",nl="BIT STRING";function It(r){var e;return e=class extends r{constructor(...n){var s;super(...n);let i=n[0]||{};this.isHexOnly=(s=i.isHexOnly)!==null&&s!==void 0?s:!1,this.valueHexView=i.valueHex?G.BufferSourceConverter.toUint8Array(i.valueHex):Oo}get valueHex(){return this.valueHexView.slice().buffer}set valueHex(n){this.valueHexView=new Uint8Array(n)}fromBER(n,s,i){let o=n instanceof ArrayBuffer?new Uint8Array(n):n;if(!_t(this,o,s,i))return-1;let a=s+i;return this.valueHexView=o.subarray(s,a),this.valueHexView.length?(this.blockLength=i,a):(this.warnings.push("Zero buffer length"),s)}toBER(n=!1){return this.isHexOnly?n?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.byteLength===this.valueHexView.buffer.byteLength?this.valueHexView.buffer:this.valueHexView.slice().buffer:(this.error="Flag 'isHexOnly' is not set, abort",tt)}toJSON(){return{...super.toJSON(),isHexOnly:this.isHexOnly,valueHex:G.Convert.ToHex(this.valueHexView)}}},e.NAME="hexBlock",e}var At=class{constructor({blockLength:e=0,error:t=Hr,warnings:n=[],valueBeforeDecode:s=Oo}={}){this.blockLength=e,this.error=t,this.warnings=n,this.valueBeforeDecodeView=G.BufferSourceConverter.toUint8Array(s)}static blockName(){return this.NAME}get valueBeforeDecode(){return this.valueBeforeDecodeView.slice().buffer}set valueBeforeDecode(e){this.valueBeforeDecodeView=new Uint8Array(e)}toJSON(){return{blockName:this.constructor.NAME,blockLength:this.blockLength,error:this.error,warnings:this.warnings,valueBeforeDecode:G.Convert.ToHex(this.valueBeforeDecodeView)}}};At.NAME="baseBlock";var _e=class extends At{fromBER(e,t,n){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}toBER(e,t){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}};_e.NAME="valueBlock";var rs=class extends It(At){constructor({idBlock:e={}}={}){var t,n,s,i;super(),e?(this.isHexOnly=(t=e.isHexOnly)!==null&&t!==void 0?t:!1,this.valueHexView=e.valueHex?G.BufferSourceConverter.toUint8Array(e.valueHex):Oo,this.tagClass=(n=e.tagClass)!==null&&n!==void 0?n:-1,this.tagNumber=(s=e.tagNumber)!==null&&s!==void 0?s:-1,this.isConstructed=(i=e.isConstructed)!==null&&i!==void 0?i:!1):(this.tagClass=-1,this.tagNumber=-1,this.isConstructed=!1)}toBER(e=!1){let t=0;switch(this.tagClass){case 1:t|=0;break;case 2:t|=64;break;case 3:t|=128;break;case 4:t|=192;break;default:return this.error="Unknown tag class",tt}if(this.isConstructed&&(t|=32),this.tagNumber<31&&!this.isHexOnly){let s=new Uint8Array(1);if(!e){let i=this.tagNumber;i&=31,t|=i,s[0]=t}return s.buffer}if(!this.isHexOnly){let s=zt(this.tagNumber,7),i=new Uint8Array(s),o=s.byteLength,a=new Uint8Array(o+1);if(a[0]=t|31,!e){for(let c=0;c<o-1;c++)a[c+1]=i[c]|128;a[o]=i[o-1]}return a.buffer}let n=new Uint8Array(this.valueHexView.byteLength+1);if(n[0]=t|31,!e){let s=this.valueHexView;for(let i=0;i<s.length-1;i++)n[i+1]=s[i]|128;n[this.valueHexView.byteLength]=s[s.length-1]}return n.buffer}fromBER(e,t,n){let s=G.BufferSourceConverter.toUint8Array(e);if(!_t(this,s,t,n))return-1;let i=s.subarray(t,t+n);if(i.length===0)return this.error="Zero buffer length",-1;switch(i[0]&192){case 0:this.tagClass=1;break;case 64:this.tagClass=2;break;case 128:this.tagClass=3;break;case 192:this.tagClass=4;break;default:return this.error="Unknown tag class",-1}this.isConstructed=(i[0]&32)===32,this.isHexOnly=!1;let a=i[0]&31;if(a!==31)this.tagNumber=a,this.blockLength=1;else{let c=1,h=this.valueHexView=new Uint8Array(255),f=255;for(;i[c]&128;){if(h[c-1]=i[c]&127,c++,c>=i.length)return this.error="End of input reached before message was fully decoded",-1;if(c===f){f+=255;let d=new Uint8Array(f);for(let l=0;l<h.length;l++)d[l]=h[l];h=this.valueHexView=new Uint8Array(f)}}this.blockLength=c+1,h[c-1]=i[c]&127;let u=new Uint8Array(c);for(let d=0;d<c;d++)u[d]=h[d];h=this.valueHexView=new Uint8Array(c),h.set(u),this.blockLength<=9?this.tagNumber=fr(h,7):(this.isHexOnly=!0,this.warnings.push("Tag too long, represented as hex-coded"))}if(this.tagClass===1&&this.isConstructed)switch(this.tagNumber){case 1:case 2:case 5:case 6:case 9:case 13:case 14:case 23:case 24:case 31:case 32:case 33:case 34:return this.error="Constructed encoding used for primitive type",-1}return t+this.blockLength}toJSON(){return{...super.toJSON(),tagClass:this.tagClass,tagNumber:this.tagNumber,isConstructed:this.isConstructed}}};rs.NAME="identificationBlock";var ns=class extends At{constructor({lenBlock:e={}}={}){var t,n,s;super(),this.isIndefiniteForm=(t=e.isIndefiniteForm)!==null&&t!==void 0?t:!1,this.longFormUsed=(n=e.longFormUsed)!==null&&n!==void 0?n:!1,this.length=(s=e.length)!==null&&s!==void 0?s:0}fromBER(e,t,n){let s=G.BufferSourceConverter.toUint8Array(e);if(!_t(this,s,t,n))return-1;let i=s.subarray(t,t+n);if(i.length===0)return this.error="Zero buffer length",-1;if(i[0]===255)return this.error="Length block 0xFF is reserved by standard",-1;if(this.isIndefiniteForm=i[0]===128,this.isIndefiniteForm)return this.blockLength=1,t+this.blockLength;if(this.longFormUsed=!!(i[0]&128),this.longFormUsed===!1)return this.length=i[0],this.blockLength=1,t+this.blockLength;let o=i[0]&127;if(o>8)return this.error="Too big integer",-1;if(o+1>i.length)return this.error="End of input reached before message was fully decoded",-1;let a=t+1,c=s.subarray(a,a+o);return c[o-1]===0&&this.warnings.push("Needlessly long encoded length"),this.length=fr(c,8),this.longFormUsed&&this.length<=127&&this.warnings.push("Unnecessary usage of long length form"),this.blockLength=o+1,t+this.blockLength}toBER(e=!1){let t,n;if(this.length>127&&(this.longFormUsed=!0),this.isIndefiniteForm)return t=new ArrayBuffer(1),e===!1&&(n=new Uint8Array(t),n[0]=128),t;if(this.longFormUsed){let s=zt(this.length,8);if(s.byteLength>127)return this.error="Too big length",tt;if(t=new ArrayBuffer(s.byteLength+1),e)return t;let i=new Uint8Array(s);n=new Uint8Array(t),n[0]=s.byteLength|128;for(let o=0;o<s.byteLength;o++)n[o+1]=i[o];return t}return t=new ArrayBuffer(1),e===!1&&(n=new Uint8Array(t),n[0]=this.length),t}toJSON(){return{...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,longFormUsed:this.longFormUsed,length:this.length}}};ns.NAME="lengthBlock";var R={},ve=class extends At{constructor({name:e=Hr,optional:t=!1,primitiveSchema:n,...s}={},i){super(s),this.name=e,this.optional=t,n&&(this.primitiveSchema=n),this.idBlock=new rs(s),this.lenBlock=new ns(s),this.valueBlock=i?new i(s):new _e(s)}fromBER(e,t,n){let s=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return s===-1?(this.error=this.valueBlock.error,s):(this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),s)}toBER(e,t){let n=t||new gn;t||sl(this);let s=this.idBlock.toBER(e);if(n.write(s),this.lenBlock.isIndefiniteForm)n.write(new Uint8Array([128]).buffer),this.valueBlock.toBER(e,n),n.write(new ArrayBuffer(2));else{let i=this.valueBlock.toBER(e);this.lenBlock.length=i.byteLength;let o=this.lenBlock.toBER(e);n.write(o),n.write(i)}return t?tt:n.final()}toJSON(){let e={...super.toJSON(),idBlock:this.idBlock.toJSON(),lenBlock:this.lenBlock.toJSON(),valueBlock:this.valueBlock.toJSON(),name:this.name,optional:this.optional};return this.primitiveSchema&&(e.primitiveSchema=this.primitiveSchema.toJSON()),e}toString(e="ascii"){return e==="ascii"?this.onAsciiEncoding():G.Convert.ToHex(this.toBER())}onAsciiEncoding(){return`${this.constructor.NAME} : ${G.Convert.ToHex(this.valueBlock.valueBeforeDecodeView)}`}isEqual(e){if(this===e)return!0;if(!(e instanceof this.constructor))return!1;let t=this.toBER(),n=e.toBER();return Qc(t,n)}};ve.NAME="BaseBlock";function sl(r){if(r instanceof R.Constructed)for(let e of r.valueBlock.value)sl(e)&&(r.lenBlock.isIndefiniteForm=!0);return!!r.lenBlock.isIndefiniteForm}var ss=class extends ve{constructor({value:e=Hr,...t}={},n){super(t,n),e&&this.fromString(e)}getValue(){return this.valueBlock.value}setValue(e){this.valueBlock.value=e}fromBER(e,t,n){let s=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return s===-1?(this.error=this.valueBlock.error,s):(this.fromBuffer(this.valueBlock.valueHexView),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),s)}onAsciiEncoding(){return`${this.constructor.NAME} : '${this.valueBlock.value}'`}};ss.NAME="BaseStringBlock";var is=class extends It(_e){constructor({isHexOnly:e=!0,...t}={}){super(t),this.isHexOnly=e}};is.NAME="PrimitiveValueBlock";var il,os=class extends ve{constructor(e={}){super(e,is),this.idBlock.isConstructed=!1}};il=os;R.Primitive=il;os.NAME="PRIMITIVE";function np(r,e){if(r instanceof e)return r;let t=new e;return t.idBlock=r.idBlock,t.lenBlock=r.lenBlock,t.warnings=r.warnings,t.valueBeforeDecodeView=r.valueBeforeDecodeView,t}function Vs(r,e=0,t=r.length){let n=e,s=new ve({},_e),i=new At;if(!_t(i,r,e,t))return s.error=i.error,{offset:-1,result:s};if(!r.subarray(e,e+t).length)return s.error="Zero buffer length",{offset:-1,result:s};let a=s.idBlock.fromBER(r,e,t);if(s.idBlock.warnings.length&&s.warnings.concat(s.idBlock.warnings),a===-1)return s.error=s.idBlock.error,{offset:-1,result:s};if(e=a,t-=s.idBlock.blockLength,a=s.lenBlock.fromBER(r,e,t),s.lenBlock.warnings.length&&s.warnings.concat(s.lenBlock.warnings),a===-1)return s.error=s.lenBlock.error,{offset:-1,result:s};if(e=a,t-=s.lenBlock.blockLength,!s.idBlock.isConstructed&&s.lenBlock.isIndefiniteForm)return s.error="Indefinite length form used for primitive encoding form",{offset:-1,result:s};let c=ve;switch(s.idBlock.tagClass){case 1:if(s.idBlock.tagNumber>=37&&s.idBlock.isHexOnly===!1)return s.error="UNIVERSAL 37 and upper tags are reserved by ASN.1 standard",{offset:-1,result:s};switch(s.idBlock.tagNumber){case 0:if(s.idBlock.isConstructed&&s.lenBlock.length>0)return s.error="Type [UNIVERSAL 0] is reserved",{offset:-1,result:s};c=R.EndOfContent;break;case 1:c=R.Boolean;break;case 2:c=R.Integer;break;case 3:c=R.BitString;break;case 4:c=R.OctetString;break;case 5:c=R.Null;break;case 6:c=R.ObjectIdentifier;break;case 10:c=R.Enumerated;break;case 12:c=R.Utf8String;break;case 13:c=R.RelativeObjectIdentifier;break;case 14:c=R.TIME;break;case 15:return s.error="[UNIVERSAL 15] is reserved by ASN.1 standard",{offset:-1,result:s};case 16:c=R.Sequence;break;case 17:c=R.Set;break;case 18:c=R.NumericString;break;case 19:c=R.PrintableString;break;case 20:c=R.TeletexString;break;case 21:c=R.VideotexString;break;case 22:c=R.IA5String;break;case 23:c=R.UTCTime;break;case 24:c=R.GeneralizedTime;break;case 25:c=R.GraphicString;break;case 26:c=R.VisibleString;break;case 27:c=R.GeneralString;break;case 28:c=R.UniversalString;break;case 29:c=R.CharacterString;break;case 30:c=R.BmpString;break;case 31:c=R.DATE;break;case 32:c=R.TimeOfDay;break;case 33:c=R.DateTime;break;case 34:c=R.Duration;break;default:{let h=s.idBlock.isConstructed?new R.Constructed:new R.Primitive;h.idBlock=s.idBlock,h.lenBlock=s.lenBlock,h.warnings=s.warnings,s=h}}break;case 2:case 3:case 4:default:c=s.idBlock.isConstructed?R.Constructed:R.Primitive}return s=np(s,c),a=s.fromBER(r,e,s.lenBlock.isIndefiniteForm?t:s.lenBlock.length),s.valueBeforeDecodeView=r.subarray(n,n+s.blockLength),{offset:a,result:s}}function Fr(r){if(!r.byteLength){let e=new ve({},_e);return e.error="Input buffer has zero length",{offset:-1,result:e}}return Vs(G.BufferSourceConverter.toUint8Array(r).slice(),0,r.byteLength)}function sp(r,e){return r?1:e}var lt=class extends _e{constructor({value:e=[],isIndefiniteForm:t=!1,...n}={}){super(n),this.value=e,this.isIndefiniteForm=t}fromBER(e,t,n){let s=G.BufferSourceConverter.toUint8Array(e);if(!_t(this,s,t,n))return-1;if(this.valueBeforeDecodeView=s.subarray(t,t+n),this.valueBeforeDecodeView.length===0)return this.warnings.push("Zero buffer length"),t;let i=t;for(;sp(this.isIndefiniteForm,n)>0;){let o=Vs(s,i,n);if(o.offset===-1)return this.error=o.result.error,this.warnings.concat(o.result.warnings),-1;if(i=o.offset,this.blockLength+=o.result.blockLength,n-=o.result.blockLength,this.value.push(o.result),this.isIndefiniteForm&&o.result.constructor.NAME===mn)break}return this.isIndefiniteForm&&(this.value[this.value.length-1].constructor.NAME===mn?this.value.pop():this.warnings.push("No EndOfContent block encoded")),i}toBER(e,t){let n=t||new gn;for(let s=0;s<this.value.length;s++)this.value[s].toBER(e,n);return t?tt:n.final()}toJSON(){let e={...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,value:[]};for(let t of this.value)e.value.push(t.toJSON());return e}};lt.NAME="ConstructedValueBlock";var ol,$t=class extends ve{constructor(e={}){super(e,lt),this.idBlock.isConstructed=!0}fromBER(e,t,n){this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm;let s=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return s===-1?(this.error=this.valueBlock.error,s):(this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),s)}onAsciiEncoding(){let e=[];for(let n of this.valueBlock.value)e.push(n.toString("ascii").split(`
2
+ "use strict";var Libp2PCircuitRelayV2=(()=>{var nf=Object.create;var yn=Object.defineProperty;var sf=Object.getOwnPropertyDescriptor;var of=Object.getOwnPropertyNames;var af=Object.getPrototypeOf,cf=Object.prototype.hasOwnProperty;var bi=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),_t=(r,t)=>{for(var e in t)yn(r,e,{get:t[e],enumerable:!0})},La=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of of(t))!cf.call(r,s)&&s!==e&&yn(r,s,{get:()=>t[s],enumerable:!(n=sf(t,s))||n.enumerable});return r};var wi=(r,t,e)=>(e=r!=null?nf(af(r)):{},La(t||!r||!r.__esModule?yn(e,"default",{value:r,enumerable:!0}):e,r)),lf=r=>La(yn({},"__esModule",{value:!0}),r);var Pc=bi(xr=>{"use strict";var Ud="[object ArrayBuffer]",me=class r{static isArrayBuffer(t){return Object.prototype.toString.call(t)===Ud}static toArrayBuffer(t){return this.isArrayBuffer(t)?t:t.byteLength===t.buffer.byteLength||t.byteOffset===0&&t.byteLength===t.buffer.byteLength?t.buffer:this.toUint8Array(t.buffer).slice(t.byteOffset,t.byteOffset+t.byteLength).buffer}static toUint8Array(t){return this.toView(t,Uint8Array)}static toView(t,e){if(t.constructor===e)return t;if(this.isArrayBuffer(t))return new e(t);if(this.isArrayBufferView(t))return new e(t.buffer,t.byteOffset,t.byteLength);throw new TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView)'")}static isBufferSource(t){return this.isArrayBufferView(t)||this.isArrayBuffer(t)}static isArrayBufferView(t){return ArrayBuffer.isView(t)||t&&this.isArrayBuffer(t.buffer)}static isEqual(t,e){let n=r.toUint8Array(t),s=r.toUint8Array(e);if(n.length!==s.byteLength)return!1;for(let i=0;i<n.length;i++)if(n[i]!==s[i])return!1;return!0}static concat(...t){let e;Array.isArray(t[0])&&!(t[1]instanceof Function)||Array.isArray(t[0])&&t[1]instanceof Function?e=t[0]:t[t.length-1]instanceof Function?e=t.slice(0,t.length-1):e=t;let n=0;for(let o of e)n+=o.byteLength;let s=new Uint8Array(n),i=0;for(let o of e){let a=this.toUint8Array(o);s.set(a,i),i+=a.length}return t[t.length-1]instanceof Function?this.toView(s,t[t.length-1]):s.buffer}},Io="string",Dd=/^[0-9a-f]+$/i,Od=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,Md=/^[a-zA-Z0-9-_]+$/,Vn=class{static fromString(t){let e=unescape(encodeURIComponent(t)),n=new Uint8Array(e.length);for(let s=0;s<e.length;s++)n[s]=e.charCodeAt(s);return n.buffer}static toString(t){let e=me.toUint8Array(t),n="";for(let i=0;i<e.length;i++)n+=String.fromCharCode(e[i]);return decodeURIComponent(escape(n))}},$t=class{static toString(t,e=!1){let n=me.toArrayBuffer(t),s=new DataView(n),i="";for(let o=0;o<n.byteLength;o+=2){let a=s.getUint16(o,e);i+=String.fromCharCode(a)}return i}static fromString(t,e=!1){let n=new ArrayBuffer(t.length*2),s=new DataView(n);for(let i=0;i<t.length;i++)s.setUint16(i*2,t.charCodeAt(i),e);return n}},Hn=class r{static isHex(t){return typeof t===Io&&Dd.test(t)}static isBase64(t){return typeof t===Io&&Od.test(t)}static isBase64Url(t){return typeof t===Io&&Md.test(t)}static ToString(t,e="utf8"){let n=me.toUint8Array(t);switch(e.toLowerCase()){case"utf8":return this.ToUtf8String(n);case"binary":return this.ToBinary(n);case"hex":return this.ToHex(n);case"base64":return this.ToBase64(n);case"base64url":return this.ToBase64Url(n);case"utf16le":return $t.toString(n,!0);case"utf16":case"utf16be":return $t.toString(n);default:throw new Error(`Unknown type of encoding '${e}'`)}}static FromString(t,e="utf8"){if(!t)return new ArrayBuffer(0);switch(e.toLowerCase()){case"utf8":return this.FromUtf8String(t);case"binary":return this.FromBinary(t);case"hex":return this.FromHex(t);case"base64":return this.FromBase64(t);case"base64url":return this.FromBase64Url(t);case"utf16le":return $t.fromString(t,!0);case"utf16":case"utf16be":return $t.fromString(t);default:throw new Error(`Unknown type of encoding '${e}'`)}}static ToBase64(t){let e=me.toUint8Array(t);if(typeof btoa<"u"){let n=this.ToString(e,"binary");return btoa(n)}else return Buffer.from(e).toString("base64")}static FromBase64(t){let e=this.formatString(t);if(!e)return new ArrayBuffer(0);if(!r.isBase64(e))throw new TypeError("Argument 'base64Text' is not Base64 encoded");return typeof atob<"u"?this.FromBinary(atob(e)):new Uint8Array(Buffer.from(e,"base64")).buffer}static FromBase64Url(t){let e=this.formatString(t);if(!e)return new ArrayBuffer(0);if(!r.isBase64Url(e))throw new TypeError("Argument 'base64url' is not Base64Url encoded");return this.FromBase64(this.Base64Padding(e.replace(/\-/g,"+").replace(/\_/g,"/")))}static ToBase64Url(t){return this.ToBase64(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}static FromUtf8String(t,e=r.DEFAULT_UTF8_ENCODING){switch(e){case"ascii":return this.FromBinary(t);case"utf8":return Vn.fromString(t);case"utf16":case"utf16be":return $t.fromString(t);case"utf16le":case"usc2":return $t.fromString(t,!0);default:throw new Error(`Unknown type of encoding '${e}'`)}}static ToUtf8String(t,e=r.DEFAULT_UTF8_ENCODING){switch(e){case"ascii":return this.ToBinary(t);case"utf8":return Vn.toString(t);case"utf16":case"utf16be":return $t.toString(t);case"utf16le":case"usc2":return $t.toString(t,!0);default:throw new Error(`Unknown type of encoding '${e}'`)}}static FromBinary(t){let e=t.length,n=new Uint8Array(e);for(let s=0;s<e;s++)n[s]=t.charCodeAt(s);return n.buffer}static ToBinary(t){let e=me.toUint8Array(t),n="";for(let s=0;s<e.length;s++)n+=String.fromCharCode(e[s]);return n}static ToHex(t){let e=me.toUint8Array(t),n="",s=e.length;for(let i=0;i<s;i++){let o=e[i];o<16&&(n+="0"),n+=o.toString(16)}return n}static FromHex(t){let e=this.formatString(t);if(!e)return new ArrayBuffer(0);if(!r.isHex(e))throw new TypeError("Argument 'hexString' is not HEX encoded");e.length%2&&(e=`0${e}`);let n=new Uint8Array(e.length/2);for(let s=0;s<e.length;s=s+2){let i=e.slice(s,s+2);n[s/2]=parseInt(i,16)}return n.buffer}static ToUtf16String(t,e=!1){return $t.toString(t,e)}static FromUtf16String(t,e=!1){return $t.fromString(t,e)}static Base64Padding(t){let e=4-t.length%4;if(e<4)for(let n=0;n<e;n++)t+="=";return t}static formatString(t){return t?.replace(/[\n\r\t ]/g,"")||""}};Hn.DEFAULT_UTF8_ENCODING="utf8";function Pd(r,...t){let e=arguments[0];for(let n=1;n<arguments.length;n++){let s=arguments[n];for(let i in s)e[i]=s[i]}return e}function Vd(...r){let t=r.map(s=>s.byteLength).reduce((s,i)=>s+i),e=new Uint8Array(t),n=0;return r.map(s=>new Uint8Array(s)).forEach(s=>{for(let i of s)e[n++]=i}),e.buffer}function Hd(r,t){if(!(r&&t)||r.byteLength!==t.byteLength)return!1;let e=new Uint8Array(r),n=new Uint8Array(t);for(let s=0;s<r.byteLength;s++)if(e[s]!==n[s])return!1;return!0}xr.BufferSourceConverter=me;xr.Convert=Hn;xr.assign=Pd;xr.combine=Vd;xr.isEqual=Hd});var Au=bi((pn,Qs)=>{(function(r,t){"use strict";var e={version:"3.0.0",x86:{},x64:{},inputValidation:!0};function n(l){if(!Array.isArray(l)&&!ArrayBuffer.isView(l))return!1;for(var d=0;d<l.length;d++)if(!Number.isInteger(l[d])||l[d]<0||l[d]>255)return!1;return!0}function s(l,d){return(l&65535)*d+(((l>>>16)*d&65535)<<16)}function i(l,d){return l<<d|l>>>32-d}function o(l){return l^=l>>>16,l=s(l,2246822507),l^=l>>>13,l=s(l,3266489909),l^=l>>>16,l}function a(l,d){l=[l[0]>>>16,l[0]&65535,l[1]>>>16,l[1]&65535],d=[d[0]>>>16,d[0]&65535,d[1]>>>16,d[1]&65535];var m=[0,0,0,0];return m[3]+=l[3]+d[3],m[2]+=m[3]>>>16,m[3]&=65535,m[2]+=l[2]+d[2],m[1]+=m[2]>>>16,m[2]&=65535,m[1]+=l[1]+d[1],m[0]+=m[1]>>>16,m[1]&=65535,m[0]+=l[0]+d[0],m[0]&=65535,[m[0]<<16|m[1],m[2]<<16|m[3]]}function c(l,d){l=[l[0]>>>16,l[0]&65535,l[1]>>>16,l[1]&65535],d=[d[0]>>>16,d[0]&65535,d[1]>>>16,d[1]&65535];var m=[0,0,0,0];return m[3]+=l[3]*d[3],m[2]+=m[3]>>>16,m[3]&=65535,m[2]+=l[2]*d[3],m[1]+=m[2]>>>16,m[2]&=65535,m[2]+=l[3]*d[2],m[1]+=m[2]>>>16,m[2]&=65535,m[1]+=l[1]*d[3],m[0]+=m[1]>>>16,m[1]&=65535,m[1]+=l[2]*d[2],m[0]+=m[1]>>>16,m[1]&=65535,m[1]+=l[3]*d[1],m[0]+=m[1]>>>16,m[1]&=65535,m[0]+=l[0]*d[3]+l[1]*d[2]+l[2]*d[1]+l[3]*d[0],m[0]&=65535,[m[0]<<16|m[1],m[2]<<16|m[3]]}function h(l,d){return d%=64,d===32?[l[1],l[0]]:d<32?[l[0]<<d|l[1]>>>32-d,l[1]<<d|l[0]>>>32-d]:(d-=32,[l[1]<<d|l[0]>>>32-d,l[0]<<d|l[1]>>>32-d])}function f(l,d){return d%=64,d===0?l:d<32?[l[0]<<d|l[1]>>>32-d,l[1]<<d]:[l[1]<<d-32,0]}function u(l,d){return[l[0]^d[0],l[1]^d[1]]}function p(l){return l=u(l,[0,l[0]>>>1]),l=c(l,[4283543511,3981806797]),l=u(l,[0,l[0]>>>1]),l=c(l,[3301882366,444984403]),l=u(l,[0,l[0]>>>1]),l}e.x86.hash32=function(l,d){if(e.inputValidation&&!n(l))return t;d=d||0;for(var m=l.length%4,y=l.length-m,b=d,w=0,g=3432918353,v=461845907,A=0;A<y;A=A+4)w=l[A]|l[A+1]<<8|l[A+2]<<16|l[A+3]<<24,w=s(w,g),w=i(w,15),w=s(w,v),b^=w,b=i(b,13),b=s(b,5)+3864292196;switch(w=0,m){case 3:w^=l[A+2]<<16;case 2:w^=l[A+1]<<8;case 1:w^=l[A],w=s(w,g),w=i(w,15),w=s(w,v),b^=w}return b^=l.length,b=o(b),b>>>0},e.x86.hash128=function(l,d){if(e.inputValidation&&!n(l))return t;d=d||0;for(var m=l.length%16,y=l.length-m,b=d,w=d,g=d,v=d,A=0,_=0,x=0,B=0,C=597399067,et=2869860233,H=951274213,V=2716044179,U=0;U<y;U=U+16)A=l[U]|l[U+1]<<8|l[U+2]<<16|l[U+3]<<24,_=l[U+4]|l[U+5]<<8|l[U+6]<<16|l[U+7]<<24,x=l[U+8]|l[U+9]<<8|l[U+10]<<16|l[U+11]<<24,B=l[U+12]|l[U+13]<<8|l[U+14]<<16|l[U+15]<<24,A=s(A,C),A=i(A,15),A=s(A,et),b^=A,b=i(b,19),b+=w,b=s(b,5)+1444728091,_=s(_,et),_=i(_,16),_=s(_,H),w^=_,w=i(w,17),w+=g,w=s(w,5)+197830471,x=s(x,H),x=i(x,17),x=s(x,V),g^=x,g=i(g,15),g+=v,g=s(g,5)+2530024501,B=s(B,V),B=i(B,18),B=s(B,C),v^=B,v=i(v,13),v+=b,v=s(v,5)+850148119;switch(A=0,_=0,x=0,B=0,m){case 15:B^=l[U+14]<<16;case 14:B^=l[U+13]<<8;case 13:B^=l[U+12],B=s(B,V),B=i(B,18),B=s(B,C),v^=B;case 12:x^=l[U+11]<<24;case 11:x^=l[U+10]<<16;case 10:x^=l[U+9]<<8;case 9:x^=l[U+8],x=s(x,H),x=i(x,17),x=s(x,V),g^=x;case 8:_^=l[U+7]<<24;case 7:_^=l[U+6]<<16;case 6:_^=l[U+5]<<8;case 5:_^=l[U+4],_=s(_,et),_=i(_,16),_=s(_,H),w^=_;case 4:A^=l[U+3]<<24;case 3:A^=l[U+2]<<16;case 2:A^=l[U+1]<<8;case 1:A^=l[U],A=s(A,C),A=i(A,15),A=s(A,et),b^=A}return b^=l.length,w^=l.length,g^=l.length,v^=l.length,b+=w,b+=g,b+=v,w+=b,g+=b,v+=b,b=o(b),w=o(w),g=o(g),v=o(v),b+=w,b+=g,b+=v,w+=b,g+=b,v+=b,("00000000"+(b>>>0).toString(16)).slice(-8)+("00000000"+(w>>>0).toString(16)).slice(-8)+("00000000"+(g>>>0).toString(16)).slice(-8)+("00000000"+(v>>>0).toString(16)).slice(-8)},e.x64.hash128=function(l,d){if(e.inputValidation&&!n(l))return t;d=d||0;for(var m=l.length%16,y=l.length-m,b=[0,d],w=[0,d],g=[0,0],v=[0,0],A=[2277735313,289559509],_=[1291169091,658871167],x=0;x<y;x=x+16)g=[l[x+4]|l[x+5]<<8|l[x+6]<<16|l[x+7]<<24,l[x]|l[x+1]<<8|l[x+2]<<16|l[x+3]<<24],v=[l[x+12]|l[x+13]<<8|l[x+14]<<16|l[x+15]<<24,l[x+8]|l[x+9]<<8|l[x+10]<<16|l[x+11]<<24],g=c(g,A),g=h(g,31),g=c(g,_),b=u(b,g),b=h(b,27),b=a(b,w),b=a(c(b,[0,5]),[0,1390208809]),v=c(v,_),v=h(v,33),v=c(v,A),w=u(w,v),w=h(w,31),w=a(w,b),w=a(c(w,[0,5]),[0,944331445]);switch(g=[0,0],v=[0,0],m){case 15:v=u(v,f([0,l[x+14]],48));case 14:v=u(v,f([0,l[x+13]],40));case 13:v=u(v,f([0,l[x+12]],32));case 12:v=u(v,f([0,l[x+11]],24));case 11:v=u(v,f([0,l[x+10]],16));case 10:v=u(v,f([0,l[x+9]],8));case 9:v=u(v,[0,l[x+8]]),v=c(v,_),v=h(v,33),v=c(v,A),w=u(w,v);case 8:g=u(g,f([0,l[x+7]],56));case 7:g=u(g,f([0,l[x+6]],48));case 6:g=u(g,f([0,l[x+5]],40));case 5:g=u(g,f([0,l[x+4]],32));case 4:g=u(g,f([0,l[x+3]],24));case 3:g=u(g,f([0,l[x+2]],16));case 2:g=u(g,f([0,l[x+1]],8));case 1:g=u(g,[0,l[x]]),g=c(g,A),g=h(g,31),g=c(g,_),b=u(b,g)}return b=u(b,[0,l.length]),w=u(w,[0,l.length]),b=a(b,w),w=a(w,b),b=p(b),w=p(w),b=a(b,w),w=a(w,b),("00000000"+(b[0]>>>0).toString(16)).slice(-8)+("00000000"+(b[1]>>>0).toString(16)).slice(-8)+("00000000"+(w[0]>>>0).toString(16)).slice(-8)+("00000000"+(w[1]>>>0).toString(16)).slice(-8)},typeof pn<"u"?(typeof Qs<"u"&&Qs.exports&&(pn=Qs.exports=e),pn.murmurHash3=e):typeof define=="function"&&define.amd?define([],function(){return e}):(e._murmurHash3=r.murmurHash3,e.noConflict=function(){return r.murmurHash3=e._murmurHash3,e._murmurHash3=t,e.noConflict=t,e},r.murmurHash3=e)})(pn)});var oa=bi((T1,Bu)=>{Bu.exports=Au()});var f0={};_t(f0,{RELAY_V2_HOP_CODEC:()=>Gt,RELAY_V2_STOP_CODEC:()=>Qe,circuitRelayServer:()=>Nu,circuitRelayTransport:()=>ju});var xi=Symbol.for("@libp2p/peer-id");var Da=Symbol.for("@libp2p/transport");var Ua;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(Ua||(Ua={}));var ae=class extends Error{constructor(t="The operation was aborted"){super(t),this.name="AbortError"}},bn=class extends Error{code;props;constructor(t,e,n){super(t),this.code=e,this.name=n?.name??"CodeError",this.props=n??{}}};var pt=class extends Error{constructor(t="Invalid parameters"){super(t),this.name="InvalidParametersError"}},sr=class extends Error{constructor(t="Invalid public key"){super(t),this.name="InvalidPublicKeyError"}};var wn=class extends Error{constructor(t="Invalid Multihash"){super(t),this.name="InvalidMultihashError"}};var xn=class extends Error{constructor(t="Invalid message"){super(t),this.name="InvalidMessageError"}};var Mr=class extends Error{constructor(t="Dial error"){super(t),this.name="DialError"}},vn=class extends Error{constructor(t="Listen error"){super(t),this.name="ListenError"}};var ir=class extends Error{constructor(t="Unsupported key type"){super(t),this.name="UnsupportedKeyTypeError"}};var Ft=(r,...t)=>{try{[...t]}catch{}};var qt=class extends EventTarget{#t=new Map;constructor(){super(),Ft(1/0,this)}listenerCount(t){let e=this.#t.get(t);return e==null?0:e.length}addEventListener(t,e,n){super.addEventListener(t,e,n);let s=this.#t.get(t);s==null&&(s=[],this.#t.set(t,s)),s.push({callback:e,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(t,e,n){super.removeEventListener(t.toString(),e??null,n);let s=this.#t.get(t);s!=null&&(s=s.filter(({callback:i})=>i!==e),this.#t.set(t,s))}dispatchEvent(t){let e=super.dispatchEvent(t),n=this.#t.get(t.type);return n==null||(n=n.filter(({once:s})=>!s),this.#t.set(t.type,n)),e}safeDispatchEvent(t,e={}){return this.dispatchEvent(new CustomEvent(t,e))}};function Oa(r){return r!=null&&typeof r.start=="function"&&typeof r.stop=="function"}async function Ma(...r){let t=[];for(let e of r)Oa(e)&&t.push(e);await Promise.all(t.map(async e=>{e.beforeStart!=null&&await e.beforeStart()})),await Promise.all(t.map(async e=>{await e.start()})),await Promise.all(t.map(async e=>{e.afterStart!=null&&await e.afterStart()}))}async function Pa(...r){let t=[];for(let e of r)Oa(e)&&t.push(e);await Promise.all(t.map(async e=>{e.beforeStop!=null&&await e.beforeStop()})),await Promise.all(t.map(async e=>{await e.stop()})),await Promise.all(t.map(async e=>{e.afterStop!=null&&await e.afterStop()}))}var Va=Symbol.for("@libp2p/service-capabilities"),Ha=Symbol.for("@libp2p/service-dependencies");var Bi={};_t(Bi,{base58btc:()=>tt,base58flickr:()=>gf});var K0=new Uint8Array(0);function Fa(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0}function ce(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error("Unknown type, must be binary type")}function qa(r){return new TextEncoder().encode(r)}function Ka(r){return new TextDecoder().decode(r)}function uf(r,t){if(r.length>=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),n=0;n<e.length;n++)e[n]=255;for(var s=0;s<r.length;s++){var i=r.charAt(s),o=i.charCodeAt(0);if(e[o]!==255)throw new TypeError(i+" is ambiguous");e[o]=s}var a=r.length,c=r.charAt(0),h=Math.log(a)/Math.log(256),f=Math.log(256)/Math.log(a);function u(d){if(d instanceof Uint8Array||(ArrayBuffer.isView(d)?d=new Uint8Array(d.buffer,d.byteOffset,d.byteLength):Array.isArray(d)&&(d=Uint8Array.from(d))),!(d instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(d.length===0)return"";for(var m=0,y=0,b=0,w=d.length;b!==w&&d[b]===0;)b++,m++;for(var g=(w-b)*f+1>>>0,v=new Uint8Array(g);b!==w;){for(var A=d[b],_=0,x=g-1;(A!==0||_<y)&&x!==-1;x--,_++)A+=256*v[x]>>>0,v[x]=A%a>>>0,A=A/a>>>0;if(A!==0)throw new Error("Non-zero carry");y=_,b++}for(var B=g-y;B!==g&&v[B]===0;)B++;for(var C=c.repeat(m);B<g;++B)C+=r.charAt(v[B]);return C}function p(d){if(typeof d!="string")throw new TypeError("Expected String");if(d.length===0)return new Uint8Array;var m=0;if(d[m]!==" "){for(var y=0,b=0;d[m]===c;)y++,m++;for(var w=(d.length-m)*h+1>>>0,g=new Uint8Array(w);d[m];){var v=e[d.charCodeAt(m)];if(v===255)return;for(var A=0,_=w-1;(v!==0||A<b)&&_!==-1;_--,A++)v+=a*g[_]>>>0,g[_]=v%256>>>0,v=v/256>>>0;if(v!==0)throw new Error("Non-zero carry");b=A,m++}if(d[m]!==" "){for(var x=w-b;x!==w&&g[x]===0;)x++;for(var B=new Uint8Array(y+(w-x)),C=y;x!==w;)B[C++]=g[x++];return B}}}function l(d){var m=p(d);if(m)return m;throw new Error(`Non-${t} character`)}return{encode:u,decodeUnsafe:p,decode:l}}var ff=uf,hf=ff,$a=hf;var vi=class{name;prefix;baseEncode;constructor(t,e,n){this.name=t,this.prefix=e,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},Ei=class{name;prefix;baseDecode;prefixCodePoint;constructor(t,e,n){if(this.name=t,this.prefix=e,e.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=e.codePointAt(0),this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return Ga(this,t)}},Si=class{decoders;constructor(t){this.decoders=t}or(t){return Ga(this,t)}decode(t){let e=t[0],n=this.decoders[e];if(n!=null)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function Ga(r,t){return new Si({...r.decoders??{[r.prefix]:r},...t.decoders??{[t.prefix]:t}})}var Ai=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(t,e,n,s){this.name=t,this.prefix=e,this.baseEncode=n,this.baseDecode=s,this.encoder=new vi(t,e,n),this.decoder=new Ei(t,e,s)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function or({name:r,prefix:t,encode:e,decode:n}){return new Ai(r,t,e,n)}function _e({name:r,prefix:t,alphabet:e}){let{encode:n,decode:s}=$a(e,r);return or({prefix:t,name:r,encode:n,decode:i=>ce(s(i))})}function df(r,t,e,n){let s={};for(let f=0;f<t.length;++f)s[t[f]]=f;let i=r.length;for(;r[i-1]==="=";)--i;let o=new Uint8Array(i*e/8|0),a=0,c=0,h=0;for(let f=0;f<i;++f){let u=s[r[f]];if(u===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<e|u,a+=e,a>=8&&(a-=8,o[h++]=255&c>>a)}if(a>=e||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o}function pf(r,t,e){let n=t[t.length-1]==="=",s=(1<<e)-1,i="",o=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],o+=8;o>e;)o-=e,i+=t[s&a>>o];if(o!==0&&(i+=t[s&a<<e-o]),n)for(;i.length*e&7;)i+="=";return i}function st({name:r,prefix:t,bitsPerChar:e,alphabet:n}){return or({prefix:t,name:r,encode(s){return pf(s,n,e)},decode(s){return df(s,n,e,r)}})}var tt=_e({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),gf=_e({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var _i={};_t(_i,{base32:()=>le,base32hex:()=>wf,base32hexpad:()=>vf,base32hexpadupper:()=>Ef,base32hexupper:()=>xf,base32pad:()=>yf,base32padupper:()=>bf,base32upper:()=>mf,base32z:()=>Sf});var le=st({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),mf=st({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),yf=st({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),bf=st({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),wf=st({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),xf=st({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),vf=st({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Ef=st({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Sf=st({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Af=Za,Wa=128,Bf=127,_f=~Bf,If=Math.pow(2,31);function Za(r,t,e){t=t||[],e=e||0;for(var n=e;r>=If;)t[e++]=r&255|Wa,r/=128;for(;r&_f;)t[e++]=r&255|Wa,r>>>=7;return t[e]=r|0,Za.bytes=e-n+1,t}var kf=Ii,Tf=128,ja=127;function Ii(r,n){var e=0,n=n||0,s=0,i=n,o,a=r.length;do{if(i>=a)throw Ii.bytes=0,new RangeError("Could not decode varint");o=r[i++],e+=s<28?(o&ja)<<s:(o&ja)*Math.pow(2,s),s+=7}while(o>=Tf);return Ii.bytes=i-n,e}var Nf=Math.pow(2,7),Cf=Math.pow(2,14),Rf=Math.pow(2,21),Lf=Math.pow(2,28),Uf=Math.pow(2,35),Df=Math.pow(2,42),Of=Math.pow(2,49),Mf=Math.pow(2,56),Pf=Math.pow(2,63),Vf=function(r){return r<Nf?1:r<Cf?2:r<Rf?3:r<Lf?4:r<Uf?5:r<Df?6:r<Of?7:r<Mf?8:r<Pf?9:10},Hf={encode:Af,decode:kf,encodingLength:Vf},Ff=Hf,Pr=Ff;function Vr(r,t=0){return[Pr.decode(r,t),Pr.decode.bytes]}function ar(r,t,e=0){return Pr.encode(r,t,e),t}function cr(r){return Pr.encodingLength(r)}function Wt(r,t){let e=t.byteLength,n=cr(r),s=n+cr(e),i=new Uint8Array(s+e);return ar(r,i,0),ar(e,i,n),i.set(t,s),new lr(r,e,t,i)}function Kt(r){let t=ce(r),[e,n]=Vr(t),[s,i]=Vr(t.subarray(n)),o=t.subarray(n+i);if(o.byteLength!==s)throw new Error("Incorrect length");return new lr(e,s,o,t)}function Xa(r,t){if(r===t)return!0;{let e=t;return r.code===e.code&&r.size===e.size&&e.bytes instanceof Uint8Array&&Fa(r.bytes,e.bytes)}}var lr=class{code;size;digest;bytes;constructor(t,e,n,s){this.code=t,this.size=e,this.digest=n,this.bytes=s}};function Ya(r,t){let{bytes:e,version:n}=r;switch(n){case 0:return Kf(e,ki(r),t??tt.encoder);default:return zf(e,ki(r),t??le.encoder)}}var Ja=new WeakMap;function ki(r){let t=Ja.get(r);if(t==null){let e=new Map;return Ja.set(r,e),e}return t}var gt=class r{code;version;multihash;bytes;"/";constructor(t,e,n,s){this.code=e,this.version=t,this.multihash=n,this.bytes=s,this["/"]=s}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:t,multihash:e}=this;if(t!==Hr)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(e.code!==$f)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return r.createV0(e)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:t,digest:e}=this.multihash,n=Wt(t,e);return r.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(t){return r.equals(this,t)}static equals(t,e){let n=e;return n!=null&&t.code===n.code&&t.version===n.version&&Xa(t.multihash,n.multihash)}toString(t){return Ya(this,t)}toJSON(){return{"/":Ya(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let e=t;if(e instanceof r)return e;if(e["/"]!=null&&e["/"]===e.bytes||e.asCID===e){let{version:n,code:s,multihash:i,bytes:o}=e;return new r(n,s,i,o??Qa(n,s,i.bytes))}else if(e[Gf]===!0){let{version:n,multihash:s,code:i}=e,o=Kt(s);return r.create(n,i,o)}else return null}static create(t,e,n){if(typeof e!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(t){case 0:{if(e!==Hr)throw new Error(`Version 0 CID must use dag-pb (code: ${Hr}) block encoding`);return new r(t,e,n,n.bytes)}case 1:{let s=Qa(t,e,n.bytes);return new r(t,e,n,s)}default:throw new Error("Invalid version")}}static createV0(t){return r.create(0,Hr,t)}static createV1(t,e){return r.create(1,t,e)}static decode(t){let[e,n]=r.decodeFirst(t);if(n.length!==0)throw new Error("Incorrect length");return e}static decodeFirst(t){let e=r.inspectBytes(t),n=e.size-e.multihashSize,s=ce(t.subarray(n,n+e.multihashSize));if(s.byteLength!==e.multihashSize)throw new Error("Incorrect length");let i=s.subarray(e.multihashSize-e.digestSize),o=new lr(e.multihashCode,e.digestSize,i,s);return[e.version===0?r.createV0(o):r.createV1(e.codec,o),t.subarray(e.size)]}static inspectBytes(t){let e=0,n=()=>{let[u,p]=Vr(t.subarray(e));return e+=p,u},s=n(),i=Hr;if(s===18?(s=0,e=0):i=n(),s!==0&&s!==1)throw new RangeError(`Invalid CID version ${s}`);let o=e,a=n(),c=n(),h=e+c,f=h-o;return{version:s,codec:i,multihashCode:a,digestSize:c,multihashSize:f,size:h}}static parse(t,e){let[n,s]=qf(t,e),i=r.decode(s);if(i.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return ki(i).set(n,t),i}};function qf(r,t){switch(r[0]){case"Q":{let e=t??tt;return[tt.prefix,e.decode(`${tt.prefix}${r}`)]}case tt.prefix:{let e=t??tt;return[tt.prefix,e.decode(r)]}case le.prefix:{let e=t??le;return[le.prefix,e.decode(r)]}default:{if(t==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[r[0],t.decode(r)]}}}function Kf(r,t,e){let{prefix:n}=e;if(n!==tt.prefix)throw Error(`Cannot string encode V0 in ${e.name} encoding`);let s=t.get(n);if(s==null){let i=e.encode(r).slice(1);return t.set(n,i),i}else return s}function zf(r,t,e){let{prefix:n}=e,s=t.get(n);if(s==null){let i=e.encode(r);return t.set(n,i),i}else return s}var Hr=112,$f=18;function Qa(r,t,e){let n=cr(r),s=n+cr(t),i=new Uint8Array(s+e.byteLength);return ar(r,i,0),ar(t,i,n),i.set(e,s),i}var Gf=Symbol.for("@ipld/js-cid/CID");var Ti={};_t(Ti,{identity:()=>ue});var tc=0,Wf="identity",ec=ce;function jf(r){return Wt(tc,ec(r))}var ue={code:tc,name:Wf,encode:ec,digest:jf};function ct(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0}function rc(r){if(!Number.isSafeInteger(r)||r<0)throw new Error(`positive integer expected, not ${r}`)}function Zf(r){return r instanceof Uint8Array||r!=null&&typeof r=="object"&&r.constructor.name==="Uint8Array"}function ur(r,...t){if(!Zf(r))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(r.length))throw new Error(`Uint8Array expected of length ${t}, not of length=${r.length}`)}function nc(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");rc(r.outputLen),rc(r.blockLen)}function fr(r,t=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(t&&r.finished)throw new Error("Hash#digest() has already been called")}function sc(r,t){ur(r);let e=t.outputLen;if(r.length<e)throw new Error(`digestInto() expects output buffer of length at least ${e}`)}var qe=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var Sn=r=>new DataView(r.buffer,r.byteOffset,r.byteLength),jt=(r,t)=>r<<32-t|r>>>t;var ug=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function ic(r){if(typeof r!="string")throw new Error(`utf8ToBytes expected string, got ${typeof r}`);return new Uint8Array(new TextEncoder().encode(r))}function Fr(r){return typeof r=="string"&&(r=ic(r)),ur(r),r}function Ni(...r){let t=0;for(let n=0;n<r.length;n++){let s=r[n];ur(s),t+=s.length}let e=new Uint8Array(t);for(let n=0,s=0;n<r.length;n++){let i=r[n];e.set(i,s),s+=i.length}return e}var hr=class{clone(){return this._cloneInto()}},fg={}.toString;function An(r){let t=n=>r().update(Fr(n)).digest(),e=r();return t.outputLen=e.outputLen,t.blockLen=e.blockLen,t.create=()=>r(),t}function dr(r=32){if(qe&&typeof qe.getRandomValues=="function")return qe.getRandomValues(new Uint8Array(r));if(qe&&typeof qe.randomBytes=="function")return qe.randomBytes(r);throw new Error("crypto.getRandomValues must be defined")}function Xf(r,t,e,n){if(typeof r.setBigUint64=="function")return r.setBigUint64(t,e,n);let s=BigInt(32),i=BigInt(4294967295),o=Number(e>>s&i),a=Number(e&i),c=n?4:0,h=n?0:4;r.setUint32(t+c,o,n),r.setUint32(t+h,a,n)}var oc=(r,t,e)=>r&t^~r&e,ac=(r,t,e)=>r&t^r&e^t&e,pr=class extends hr{constructor(t,e,n,s){super(),this.blockLen=t,this.outputLen=e,this.padOffset=n,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=Sn(this.buffer)}update(t){fr(this);let{view:e,buffer:n,blockLen:s}=this;t=Fr(t);let i=t.length;for(let o=0;o<i;){let a=Math.min(s-this.pos,i-o);if(a===s){let c=Sn(t);for(;s<=i-o;o+=s)this.process(c,o);continue}n.set(t.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===s&&(this.process(e,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){fr(this),sc(t,this),this.finished=!0;let{buffer:e,view:n,blockLen:s,isLE:i}=this,{pos:o}=this;e[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>s-o&&(this.process(n,0),o=0);for(let u=o;u<s;u++)e[u]=0;Xf(n,s-8,BigInt(this.length*8),i),this.process(n,0);let a=Sn(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let h=c/4,f=this.get();if(h>f.length)throw new Error("_sha2: outputLen bigger than state");for(let u=0;u<h;u++)a.setUint32(4*u,f[u],i)}digest(){let{buffer:t,outputLen:e}=this;this.digestInto(t);let n=t.slice(0,e);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:e,buffer:n,length:s,finished:i,destroyed:o,pos:a}=this;return t.length=s,t.pos=a,t.finished=i,t.destroyed=o,s%e&&t.buffer.set(n),t}};var Bn=BigInt(4294967295),Ci=BigInt(32);function cc(r,t=!1){return t?{h:Number(r&Bn),l:Number(r>>Ci&Bn)}:{h:Number(r>>Ci&Bn)|0,l:Number(r&Bn)|0}}function Yf(r,t=!1){let e=new Uint32Array(r.length),n=new Uint32Array(r.length);for(let s=0;s<r.length;s++){let{h:i,l:o}=cc(r[s],t);[e[s],n[s]]=[i,o]}return[e,n]}var Jf=(r,t)=>BigInt(r>>>0)<<Ci|BigInt(t>>>0),Qf=(r,t,e)=>r>>>e,th=(r,t,e)=>r<<32-e|t>>>e,eh=(r,t,e)=>r>>>e|t<<32-e,rh=(r,t,e)=>r<<32-e|t>>>e,nh=(r,t,e)=>r<<64-e|t>>>e-32,sh=(r,t,e)=>r>>>e-32|t<<64-e,ih=(r,t)=>t,oh=(r,t)=>r,ah=(r,t,e)=>r<<e|t>>>32-e,ch=(r,t,e)=>t<<e|r>>>32-e,lh=(r,t,e)=>t<<e-32|r>>>64-e,uh=(r,t,e)=>r<<e-32|t>>>64-e;function fh(r,t,e,n){let s=(t>>>0)+(n>>>0);return{h:r+e+(s/2**32|0)|0,l:s|0}}var hh=(r,t,e)=>(r>>>0)+(t>>>0)+(e>>>0),dh=(r,t,e,n)=>t+e+n+(r/2**32|0)|0,ph=(r,t,e,n)=>(r>>>0)+(t>>>0)+(e>>>0)+(n>>>0),gh=(r,t,e,n,s)=>t+e+n+s+(r/2**32|0)|0,mh=(r,t,e,n,s)=>(r>>>0)+(t>>>0)+(e>>>0)+(n>>>0)+(s>>>0),yh=(r,t,e,n,s,i)=>t+e+n+s+i+(r/2**32|0)|0;var bh={fromBig:cc,split:Yf,toBig:Jf,shrSH:Qf,shrSL:th,rotrSH:eh,rotrSL:rh,rotrBH:nh,rotrBL:sh,rotr32H:ih,rotr32L:oh,rotlSH:ah,rotlSL:ch,rotlBH:lh,rotlBL:uh,add:fh,add3L:hh,add3H:dh,add4L:ph,add4H:gh,add5H:yh,add5L:mh},P=bh;var[wh,xh]=P.split(["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(r=>BigInt(r))),Ie=new Uint32Array(80),ke=new Uint32Array(80),Ri=class extends pr{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){let{Ah:t,Al:e,Bh:n,Bl:s,Ch:i,Cl:o,Dh:a,Dl:c,Eh:h,El:f,Fh:u,Fl:p,Gh:l,Gl:d,Hh:m,Hl:y}=this;return[t,e,n,s,i,o,a,c,h,f,u,p,l,d,m,y]}set(t,e,n,s,i,o,a,c,h,f,u,p,l,d,m,y){this.Ah=t|0,this.Al=e|0,this.Bh=n|0,this.Bl=s|0,this.Ch=i|0,this.Cl=o|0,this.Dh=a|0,this.Dl=c|0,this.Eh=h|0,this.El=f|0,this.Fh=u|0,this.Fl=p|0,this.Gh=l|0,this.Gl=d|0,this.Hh=m|0,this.Hl=y|0}process(t,e){for(let g=0;g<16;g++,e+=4)Ie[g]=t.getUint32(e),ke[g]=t.getUint32(e+=4);for(let g=16;g<80;g++){let v=Ie[g-15]|0,A=ke[g-15]|0,_=P.rotrSH(v,A,1)^P.rotrSH(v,A,8)^P.shrSH(v,A,7),x=P.rotrSL(v,A,1)^P.rotrSL(v,A,8)^P.shrSL(v,A,7),B=Ie[g-2]|0,C=ke[g-2]|0,et=P.rotrSH(B,C,19)^P.rotrBH(B,C,61)^P.shrSH(B,C,6),H=P.rotrSL(B,C,19)^P.rotrBL(B,C,61)^P.shrSL(B,C,6),V=P.add4L(x,H,ke[g-7],ke[g-16]),U=P.add4H(V,_,et,Ie[g-7],Ie[g-16]);Ie[g]=U|0,ke[g]=V|0}let{Ah:n,Al:s,Bh:i,Bl:o,Ch:a,Cl:c,Dh:h,Dl:f,Eh:u,El:p,Fh:l,Fl:d,Gh:m,Gl:y,Hh:b,Hl:w}=this;for(let g=0;g<80;g++){let v=P.rotrSH(u,p,14)^P.rotrSH(u,p,18)^P.rotrBH(u,p,41),A=P.rotrSL(u,p,14)^P.rotrSL(u,p,18)^P.rotrBL(u,p,41),_=u&l^~u&m,x=p&d^~p&y,B=P.add5L(w,A,x,xh[g],ke[g]),C=P.add5H(B,b,v,_,wh[g],Ie[g]),et=B|0,H=P.rotrSH(n,s,28)^P.rotrBH(n,s,34)^P.rotrBH(n,s,39),V=P.rotrSL(n,s,28)^P.rotrBL(n,s,34)^P.rotrBL(n,s,39),U=n&i^n&a^i&a,T=s&o^s&c^o&c;b=m|0,w=y|0,m=l|0,y=d|0,l=u|0,d=p|0,{h:u,l:p}=P.add(h|0,f|0,C|0,et|0),h=a|0,f=c|0,a=i|0,c=o|0,i=n|0,o=s|0;let R=P.add3L(et,V,T);n=P.add3H(R,C,H,U),s=R|0}({h:n,l:s}=P.add(this.Ah|0,this.Al|0,n|0,s|0)),{h:i,l:o}=P.add(this.Bh|0,this.Bl|0,i|0,o|0),{h:a,l:c}=P.add(this.Ch|0,this.Cl|0,a|0,c|0),{h,l:f}=P.add(this.Dh|0,this.Dl|0,h|0,f|0),{h:u,l:p}=P.add(this.Eh|0,this.El|0,u|0,p|0),{h:l,l:d}=P.add(this.Fh|0,this.Fl|0,l|0,d|0),{h:m,l:y}=P.add(this.Gh|0,this.Gl|0,m|0,y|0),{h:b,l:w}=P.add(this.Hh|0,this.Hl|0,b|0,w|0),this.set(n,s,i,o,a,c,h,f,u,p,l,d,m,y,b,w)}roundClean(){Ie.fill(0),ke.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};var lc=An(()=>new Ri);var In={};_t(In,{aInRange:()=>Tt,abool:()=>Zt,abytes:()=>gr,bitGet:()=>_h,bitLen:()=>Mi,bitMask:()=>Kr,bitSet:()=>Ih,bytesToHex:()=>he,bytesToNumberBE:()=>de,bytesToNumberLE:()=>Ne,concatBytes:()=>pe,createHmacDrbg:()=>Pi,ensureBytes:()=>it,equalBytes:()=>Ah,hexToBytes:()=>ze,hexToNumber:()=>Oi,inRange:()=>qr,isBytes:()=>Te,memoized:()=>Ge,notImplemented:()=>Th,numberToBytesBE:()=>Ce,numberToBytesLE:()=>$e,numberToHexUnpadded:()=>Ke,numberToVarBytesBE:()=>Sh,utf8ToBytes:()=>Bh,validateObject:()=>ee});var Di=BigInt(0),_n=BigInt(1),vh=BigInt(2);function Te(r){return r instanceof Uint8Array||r!=null&&typeof r=="object"&&r.constructor.name==="Uint8Array"}function gr(r){if(!Te(r))throw new Error("Uint8Array expected")}function Zt(r,t){if(typeof t!="boolean")throw new Error(`${r} must be valid boolean, got "${t}".`)}var Eh=Array.from({length:256},(r,t)=>t.toString(16).padStart(2,"0"));function he(r){gr(r);let t="";for(let e=0;e<r.length;e++)t+=Eh[r[e]];return t}function Ke(r){let t=r.toString(16);return t.length&1?`0${t}`:t}function Oi(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);return BigInt(r===""?"0":`0x${r}`)}var fe={_0:48,_9:57,_A:65,_F:70,_a:97,_f:102};function uc(r){if(r>=fe._0&&r<=fe._9)return r-fe._0;if(r>=fe._A&&r<=fe._F)return r-(fe._A-10);if(r>=fe._a&&r<=fe._f)return r-(fe._a-10)}function ze(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);let t=r.length,e=t/2;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);let n=new Uint8Array(e);for(let s=0,i=0;s<e;s++,i+=2){let o=uc(r.charCodeAt(i)),a=uc(r.charCodeAt(i+1));if(o===void 0||a===void 0){let c=r[i]+r[i+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+i)}n[s]=o*16+a}return n}function de(r){return Oi(he(r))}function Ne(r){return gr(r),Oi(he(Uint8Array.from(r).reverse()))}function Ce(r,t){return ze(r.toString(16).padStart(t*2,"0"))}function $e(r,t){return Ce(r,t).reverse()}function Sh(r){return ze(Ke(r))}function it(r,t,e){let n;if(typeof t=="string")try{n=ze(t)}catch(i){throw new Error(`${r} must be valid hex string, got "${t}". Cause: ${i}`)}else if(Te(t))n=Uint8Array.from(t);else throw new Error(`${r} must be hex string or Uint8Array`);let s=n.length;if(typeof e=="number"&&s!==e)throw new Error(`${r} expected ${e} bytes, got ${s}`);return n}function pe(...r){let t=0;for(let n=0;n<r.length;n++){let s=r[n];gr(s),t+=s.length}let e=new Uint8Array(t);for(let n=0,s=0;n<r.length;n++){let i=r[n];e.set(i,s),s+=i.length}return e}function Ah(r,t){if(r.length!==t.length)return!1;let e=0;for(let n=0;n<r.length;n++)e|=r[n]^t[n];return e===0}function Bh(r){if(typeof r!="string")throw new Error(`utf8ToBytes expected string, got ${typeof r}`);return new Uint8Array(new TextEncoder().encode(r))}var Li=r=>typeof r=="bigint"&&Di<=r;function qr(r,t,e){return Li(r)&&Li(t)&&Li(e)&&t<=r&&r<e}function Tt(r,t,e,n){if(!qr(t,e,n))throw new Error(`expected valid ${r}: ${e} <= n < ${n}, got ${typeof t} ${t}`)}function Mi(r){let t;for(t=0;r>Di;r>>=_n,t+=1);return t}function _h(r,t){return r>>BigInt(t)&_n}function Ih(r,t,e){return r|(e?_n:Di)<<BigInt(t)}var Kr=r=>(vh<<BigInt(r-1))-_n,Ui=r=>new Uint8Array(r),fc=r=>Uint8Array.from(r);function Pi(r,t,e){if(typeof r!="number"||r<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof e!="function")throw new Error("hmacFn must be a function");let n=Ui(r),s=Ui(r),i=0,o=()=>{n.fill(1),s.fill(0),i=0},a=(...u)=>e(s,n,...u),c=(u=Ui())=>{s=a(fc([0]),u),n=a(),u.length!==0&&(s=a(fc([1]),u),n=a())},h=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let u=0,p=[];for(;u<t;){n=a();let l=n.slice();p.push(l),u+=n.length}return pe(...p)};return(u,p)=>{o(),c(u);let l;for(;!(l=p(h()));)c();return o(),l}}var kh={bigint:r=>typeof r=="bigint",function:r=>typeof r=="function",boolean:r=>typeof r=="boolean",string:r=>typeof r=="string",stringOrUint8Array:r=>typeof r=="string"||Te(r),isSafeInteger:r=>Number.isSafeInteger(r),array:r=>Array.isArray(r),field:(r,t)=>t.Fp.isValid(r),hash:r=>typeof r=="function"&&Number.isSafeInteger(r.outputLen)};function ee(r,t,e={}){let n=(s,i,o)=>{let a=kh[i];if(typeof a!="function")throw new Error(`Invalid validator "${i}", expected function`);let c=r[s];if(!(o&&c===void 0)&&!a(c,r))throw new Error(`Invalid param ${String(s)}=${c} (${typeof c}), expected ${i}`)};for(let[s,i]of Object.entries(t))n(s,i,!1);for(let[s,i]of Object.entries(e))n(s,i,!0);return r}var Th=()=>{throw new Error("not implemented")};function Ge(r){let t=new WeakMap;return(e,...n)=>{let s=t.get(e);if(s!==void 0)return s;let i=r(e,...n);return t.set(e,i),i}}var ut=BigInt(0),rt=BigInt(1),We=BigInt(2),Nh=BigInt(3),Vi=BigInt(4),hc=BigInt(5),dc=BigInt(8),Ch=BigInt(9),Rh=BigInt(16);function Y(r,t){let e=r%t;return e>=ut?e:t+e}function Lh(r,t,e){if(e<=ut||t<ut)throw new Error("Expected power/modulo > 0");if(e===rt)return ut;let n=rt;for(;t>ut;)t&rt&&(n=n*r%e),r=r*r%e,t>>=rt;return n}function nt(r,t,e){let n=r;for(;t-- >ut;)n*=n,n%=e;return n}function kn(r,t){if(r===ut||t<=ut)throw new Error(`invert: expected positive integers, got n=${r} mod=${t}`);let e=Y(r,t),n=t,s=ut,i=rt,o=rt,a=ut;for(;e!==ut;){let h=n/e,f=n%e,u=s-o*h,p=i-a*h;n=e,e=f,s=o,i=a,o=u,a=p}if(n!==rt)throw new Error("invert: does not exist");return Y(s,t)}function Uh(r){let t=(r-rt)/We,e,n,s;for(e=r-rt,n=0;e%We===ut;e/=We,n++);for(s=We;s<r&&Lh(s,t,r)!==r-rt;s++);if(n===1){let o=(r+rt)/Vi;return function(c,h){let f=c.pow(h,o);if(!c.eql(c.sqr(f),h))throw new Error("Cannot find square root");return f}}let i=(e+rt)/We;return function(a,c){if(a.pow(c,t)===a.neg(a.ONE))throw new Error("Cannot find square root");let h=n,f=a.pow(a.mul(a.ONE,s),e),u=a.pow(c,i),p=a.pow(c,e);for(;!a.eql(p,a.ONE);){if(a.eql(p,a.ZERO))return a.ZERO;let l=1;for(let m=a.sqr(p);l<h&&!a.eql(m,a.ONE);l++)m=a.sqr(m);let d=a.pow(f,rt<<BigInt(h-l-1));f=a.sqr(d),u=a.mul(u,d),p=a.mul(p,f),h=l}return u}}function Dh(r){if(r%Vi===Nh){let t=(r+rt)/Vi;return function(n,s){let i=n.pow(s,t);if(!n.eql(n.sqr(i),s))throw new Error("Cannot find square root");return i}}if(r%dc===hc){let t=(r-hc)/dc;return function(n,s){let i=n.mul(s,We),o=n.pow(i,t),a=n.mul(s,o),c=n.mul(n.mul(a,We),o),h=n.mul(a,n.sub(c,n.ONE));if(!n.eql(n.sqr(h),s))throw new Error("Cannot find square root");return h}}return r%Rh,Uh(r)}var pc=(r,t)=>(Y(r,t)&rt)===rt,Oh=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Hi(r){let t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},e=Oh.reduce((n,s)=>(n[s]="function",n),t);return ee(r,e)}function Mh(r,t,e){if(e<ut)throw new Error("Expected power > 0");if(e===ut)return r.ONE;if(e===rt)return t;let n=r.ONE,s=t;for(;e>ut;)e&rt&&(n=r.mul(n,s)),s=r.sqr(s),e>>=rt;return n}function Ph(r,t){let e=new Array(t.length),n=t.reduce((i,o,a)=>r.is0(o)?i:(e[a]=i,r.mul(i,o)),r.ONE),s=r.inv(n);return t.reduceRight((i,o,a)=>r.is0(o)?i:(e[a]=r.mul(i,e[a]),r.mul(i,o)),s),e}function Fi(r,t){let e=t!==void 0?t:r.toString(2).length,n=Math.ceil(e/8);return{nBitLength:e,nByteLength:n}}function Re(r,t,e=!1,n={}){if(r<=ut)throw new Error(`Expected Field ORDER > 0, got ${r}`);let{nBitLength:s,nByteLength:i}=Fi(r,t);if(i>2048)throw new Error("Field lengths over 2048 bytes are not supported");let o=Dh(r),a=Object.freeze({ORDER:r,BITS:s,BYTES:i,MASK:Kr(s),ZERO:ut,ONE:rt,create:c=>Y(c,r),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return ut<=c&&c<r},is0:c=>c===ut,isOdd:c=>(c&rt)===rt,neg:c=>Y(-c,r),eql:(c,h)=>c===h,sqr:c=>Y(c*c,r),add:(c,h)=>Y(c+h,r),sub:(c,h)=>Y(c-h,r),mul:(c,h)=>Y(c*h,r),pow:(c,h)=>Mh(a,c,h),div:(c,h)=>Y(c*kn(h,r),r),sqrN:c=>c*c,addN:(c,h)=>c+h,subN:(c,h)=>c-h,mulN:(c,h)=>c*h,inv:c=>kn(c,r),sqrt:n.sqrt||(c=>o(a,c)),invertBatch:c=>Ph(a,c),cmov:(c,h,f)=>f?h:c,toBytes:c=>e?$e(c,i):Ce(c,i),fromBytes:c=>{if(c.length!==i)throw new Error(`Fp.fromBytes: expected ${i}, got ${c.length}`);return e?Ne(c):de(c)}});return Object.freeze(a)}function gc(r){if(typeof r!="bigint")throw new Error("field order must be bigint");let t=r.toString(2).length;return Math.ceil(t/8)}function qi(r){let t=gc(r);return t+Math.ceil(t/2)}function mc(r,t,e=!1){let n=r.length,s=gc(t),i=qi(t);if(n<16||n<i||n>1024)throw new Error(`expected ${i}-1024 bytes of input, got ${n}`);let o=e?de(r):Ne(r),a=Y(o,t-rt)+rt;return e?$e(a,s):Ce(a,s)}var Hh=BigInt(0),Ki=BigInt(1),zi=new WeakMap,yc=new WeakMap;function Tn(r,t){let e=(i,o)=>{let a=o.negate();return i?a:o},n=i=>{if(!Number.isSafeInteger(i)||i<=0||i>t)throw new Error(`Wrong window size=${i}, should be [1..${t}]`)},s=i=>{n(i);let o=Math.ceil(t/i)+1,a=2**(i-1);return{windows:o,windowSize:a}};return{constTimeNegate:e,unsafeLadder(i,o){let a=r.ZERO,c=i;for(;o>Hh;)o&Ki&&(a=a.add(c)),c=c.double(),o>>=Ki;return a},precomputeWindow(i,o){let{windows:a,windowSize:c}=s(o),h=[],f=i,u=f;for(let p=0;p<a;p++){u=f,h.push(u);for(let l=1;l<c;l++)u=u.add(f),h.push(u);f=u.double()}return h},wNAF(i,o,a){let{windows:c,windowSize:h}=s(i),f=r.ZERO,u=r.BASE,p=BigInt(2**i-1),l=2**i,d=BigInt(i);for(let m=0;m<c;m++){let y=m*h,b=Number(a&p);a>>=d,b>h&&(b-=l,a+=Ki);let w=y,g=y+Math.abs(b)-1,v=m%2!==0,A=b<0;b===0?u=u.add(e(v,o[w])):f=f.add(e(A,o[g]))}return{p:f,f:u}},wNAFCached(i,o,a){let c=yc.get(i)||1,h=zi.get(i);return h||(h=this.precomputeWindow(i,c),c!==1&&zi.set(i,a(h))),this.wNAF(c,h,o)},setWindowSize(i,o){n(o),yc.set(i,o),zi.delete(i)}}}function Nn(r,t,e,n){if(!Array.isArray(e)||!Array.isArray(n)||n.length!==e.length)throw new Error("arrays of points and scalars must have equal length");n.forEach((f,u)=>{if(!t.isValid(f))throw new Error(`wrong scalar at index ${u}`)}),e.forEach((f,u)=>{if(!(f instanceof r))throw new Error(`wrong point at index ${u}`)});let s=Mi(BigInt(e.length)),i=s>12?s-3:s>4?s-2:s?2:1,o=(1<<i)-1,a=new Array(o+1).fill(r.ZERO),c=Math.floor((t.BITS-1)/i)*i,h=r.ZERO;for(let f=c;f>=0;f-=i){a.fill(r.ZERO);for(let p=0;p<n.length;p++){let l=n[p],d=Number(l>>BigInt(f)&BigInt(o));a[d]=a[d].add(e[p])}let u=r.ZERO;for(let p=a.length-1,l=r.ZERO;p>0;p--)l=l.add(a[p]),u=u.add(l);if(h=h.add(u),f!==0)for(let p=0;p<i;p++)h=h.double()}return h}function zr(r){return Hi(r.Fp),ee(r,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Fi(r.n,r.nBitLength),...r,p:r.Fp.ORDER})}var Xt=BigInt(0),Nt=BigInt(1),Cn=BigInt(2),Fh=BigInt(8),qh={zip215:!0};function Kh(r){let t=zr(r);return ee(r,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}function bc(r){let t=Kh(r),{Fp:e,n,prehash:s,hash:i,randomBytes:o,nByteLength:a,h:c}=t,h=Cn<<BigInt(a*8)-Nt,f=e.create,u=Re(t.n,t.nBitLength),p=t.uvRatio||((S,E)=>{try{return{isValid:!0,value:e.sqrt(S*e.inv(E))}}catch{return{isValid:!1,value:Xt}}}),l=t.adjustScalarBytes||(S=>S),d=t.domain||((S,E,I)=>{if(Zt("phflag",I),E.length||I)throw new Error("Contexts/pre-hash are not supported");return S});function m(S,E){Tt("coordinate "+S,E,Xt,h)}function y(S){if(!(S instanceof g))throw new Error("ExtendedPoint expected")}let b=Ge((S,E)=>{let{ex:I,ey:L,ez:O}=S,M=S.is0();E==null&&(E=M?Fh:e.inv(O));let K=f(I*E),G=f(L*E),z=f(O*E);if(M)return{x:Xt,y:Nt};if(z!==Nt)throw new Error("invZ was invalid");return{x:K,y:G}}),w=Ge(S=>{let{a:E,d:I}=t;if(S.is0())throw new Error("bad point: ZERO");let{ex:L,ey:O,ez:M,et:K}=S,G=f(L*L),z=f(O*O),X=f(M*M),Q=f(X*X),ht=f(G*E),dt=f(X*f(ht+z)),yt=f(Q+f(I*f(G*z)));if(dt!==yt)throw new Error("bad point: equation left != right (1)");let Bt=f(L*O),lt=f(M*K);if(Bt!==lt)throw new Error("bad point: equation left != right (2)");return!0});class g{constructor(E,I,L,O){this.ex=E,this.ey=I,this.ez=L,this.et=O,m("x",E),m("y",I),m("z",L),m("t",O),Object.freeze(this)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(E){if(E instanceof g)throw new Error("extended point not allowed");let{x:I,y:L}=E||{};return m("x",I),m("y",L),new g(I,L,Nt,f(I*L))}static normalizeZ(E){let I=e.invertBatch(E.map(L=>L.ez));return E.map((L,O)=>L.toAffine(I[O])).map(g.fromAffine)}static msm(E,I){return Nn(g,u,E,I)}_setWindowSize(E){_.setWindowSize(this,E)}assertValidity(){w(this)}equals(E){y(E);let{ex:I,ey:L,ez:O}=this,{ex:M,ey:K,ez:G}=E,z=f(I*G),X=f(M*O),Q=f(L*G),ht=f(K*O);return z===X&&Q===ht}is0(){return this.equals(g.ZERO)}negate(){return new g(f(-this.ex),this.ey,this.ez,f(-this.et))}double(){let{a:E}=t,{ex:I,ey:L,ez:O}=this,M=f(I*I),K=f(L*L),G=f(Cn*f(O*O)),z=f(E*M),X=I+L,Q=f(f(X*X)-M-K),ht=z+K,dt=ht-G,yt=z-K,Bt=f(Q*dt),lt=f(ht*yt),kt=f(Q*yt),oe=f(dt*ht);return new g(Bt,lt,oe,kt)}add(E){y(E);let{a:I,d:L}=t,{ex:O,ey:M,ez:K,et:G}=this,{ex:z,ey:X,ez:Q,et:ht}=E;if(I===BigInt(-1)){let _a=f((M-O)*(X+z)),Ia=f((M+O)*(X-z)),yi=f(Ia-_a);if(yi===Xt)return this.double();let ka=f(K*Cn*ht),Ta=f(G*Cn*Q),Na=Ta+ka,Ca=Ia+_a,Ra=Ta-ka,Qu=f(Na*yi),tf=f(Ca*Ra),ef=f(Na*Ra),rf=f(yi*Ca);return new g(Qu,tf,rf,ef)}let dt=f(O*z),yt=f(M*X),Bt=f(G*L*ht),lt=f(K*Q),kt=f((O+M)*(z+X)-dt-yt),oe=lt-Bt,Dr=lt+Bt,Or=f(yt-I*dt),Zu=f(kt*oe),Xu=f(Dr*Or),Yu=f(kt*Or),Ju=f(oe*Dr);return new g(Zu,Xu,Ju,Yu)}subtract(E){return this.add(E.negate())}wNAF(E){return _.wNAFCached(this,E,g.normalizeZ)}multiply(E){let I=E;Tt("scalar",I,Nt,n);let{p:L,f:O}=this.wNAF(I);return g.normalizeZ([L,O])[0]}multiplyUnsafe(E){let I=E;return Tt("scalar",I,Xt,n),I===Xt?A:this.equals(A)||I===Nt?this:this.equals(v)?this.wNAF(I).p:_.unsafeLadder(this,I)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return _.unsafeLadder(this,n).is0()}toAffine(E){return b(this,E)}clearCofactor(){let{h:E}=t;return E===Nt?this:this.multiplyUnsafe(E)}static fromHex(E,I=!1){let{d:L,a:O}=t,M=e.BYTES;E=it("pointHex",E,M),Zt("zip215",I);let K=E.slice(),G=E[M-1];K[M-1]=G&-129;let z=Ne(K),X=I?h:e.ORDER;Tt("pointHex.y",z,Xt,X);let Q=f(z*z),ht=f(Q-Nt),dt=f(L*Q-O),{isValid:yt,value:Bt}=p(ht,dt);if(!yt)throw new Error("Point.fromHex: invalid y coordinate");let lt=(Bt&Nt)===Nt,kt=(G&128)!==0;if(!I&&Bt===Xt&&kt)throw new Error("Point.fromHex: x=0 and x_0=1");return kt!==lt&&(Bt=f(-Bt)),g.fromAffine({x:Bt,y:z})}static fromPrivateKey(E){return C(E).point}toRawBytes(){let{x:E,y:I}=this.toAffine(),L=$e(I,e.BYTES);return L[L.length-1]|=E&Nt?128:0,L}toHex(){return he(this.toRawBytes())}}g.BASE=new g(t.Gx,t.Gy,Nt,f(t.Gx*t.Gy)),g.ZERO=new g(Xt,Nt,Nt,Xt);let{BASE:v,ZERO:A}=g,_=Tn(g,a*8);function x(S){return Y(S,n)}function B(S){return x(Ne(S))}function C(S){let E=a;S=it("private key",S,E);let I=it("hashed private key",i(S),2*E),L=l(I.slice(0,E)),O=I.slice(E,2*E),M=B(L),K=v.multiply(M),G=K.toRawBytes();return{head:L,prefix:O,scalar:M,point:K,pointBytes:G}}function et(S){return C(S).pointBytes}function H(S=new Uint8Array,...E){let I=pe(...E);return B(i(d(I,it("context",S),!!s)))}function V(S,E,I={}){S=it("message",S),s&&(S=s(S));let{prefix:L,scalar:O,pointBytes:M}=C(E),K=H(I.context,L,S),G=v.multiply(K).toRawBytes(),z=H(I.context,G,M,S),X=x(K+z*O);Tt("signature.s",X,Xt,n);let Q=pe(G,$e(X,e.BYTES));return it("result",Q,a*2)}let U=qh;function T(S,E,I,L=U){let{context:O,zip215:M}=L,K=e.BYTES;S=it("signature",S,2*K),E=it("message",E),M!==void 0&&Zt("zip215",M),s&&(E=s(E));let G=Ne(S.slice(K,2*K)),z,X,Q;try{z=g.fromHex(I,M),X=g.fromHex(S.slice(0,K),M),Q=v.multiplyUnsafe(G)}catch{return!1}if(!M&&z.isSmallOrder())return!1;let ht=H(O,X.toRawBytes(),z.toRawBytes(),E);return X.add(z.multiplyUnsafe(ht)).subtract(Q).clearCofactor().equals(g.ZERO)}return v._setWindowSize(8),{CURVE:t,getPublicKey:et,sign:V,verify:T,ExtendedPoint:g,utils:{getExtendedPublicKey:C,randomPrivateKey:()=>o(e.BYTES),precompute(S=8,E=g.BASE){return E._setWindowSize(S),E.multiply(BigInt(3)),E}}}}var $i=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),wc=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),Ug=BigInt(0),zh=BigInt(1),xc=BigInt(2),Dg=BigInt(3),$h=BigInt(5),Gh=BigInt(8);function Wh(r){let t=BigInt(10),e=BigInt(20),n=BigInt(40),s=BigInt(80),i=$i,a=r*r%i*r%i,c=nt(a,xc,i)*a%i,h=nt(c,zh,i)*r%i,f=nt(h,$h,i)*h%i,u=nt(f,t,i)*f%i,p=nt(u,e,i)*u%i,l=nt(p,n,i)*p%i,d=nt(l,s,i)*l%i,m=nt(d,s,i)*l%i,y=nt(m,t,i)*f%i;return{pow_p_5_8:nt(y,xc,i)*r%i,b2:a}}function jh(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}function Zh(r,t){let e=$i,n=Y(t*t*t,e),s=Y(n*n*t,e),i=Wh(r*s).pow_p_5_8,o=Y(r*n*i,e),a=Y(t*o*o,e),c=o,h=Y(o*wc,e),f=a===r,u=a===Y(-r,e),p=a===Y(-r*wc,e);return f&&(o=c),(u||p)&&(o=h),pc(o,e)&&(o=Y(-o,e)),{isValid:f||u,value:o}}var Xh=Re($i,void 0,!0),Yh={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:Xh,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:Gh,Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:lc,randomBytes:dr,adjustScalarBytes:jh,uvRatio:Zh},vc=bc(Yh);var Rn=32;function Ec(r,t,e){return vc.verify(t,e instanceof Uint8Array?e:e.subarray(),r)}var Ln=class{type="Ed25519";raw;constructor(t){this.raw=Gi(t,Rn)}toMultihash(){return ue.digest(mr(this))}toCID(){return gt.createV1(114,this.toMultihash())}toString(){return tt.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:ct(this.raw,t.raw)}verify(t,e){return Ec(this.raw,e,t)}};function Wi(r){return r=Gi(r,Rn),new Ln(r)}function Gi(r,t){if(r=Uint8Array.from(r??[]),r.length!==t)throw new pt(`Key must be a Uint8Array of length ${t}, got ${r.length}`);return r}function ot(r=0){return new Uint8Array(r)}function Ct(r=0){return new Uint8Array(r)}var Qh=Math.pow(2,7),td=Math.pow(2,14),ed=Math.pow(2,21),ji=Math.pow(2,28),Zi=Math.pow(2,35),Xi=Math.pow(2,42),Yi=Math.pow(2,49),W=128,vt=127;function Et(r){if(r<Qh)return 1;if(r<td)return 2;if(r<ed)return 3;if(r<ji)return 4;if(r<Zi)return 5;if(r<Xi)return 6;if(r<Yi)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Ji(r,t,e=0){switch(Et(r)){case 8:t[e++]=r&255|W,r/=128;case 7:t[e++]=r&255|W,r/=128;case 6:t[e++]=r&255|W,r/=128;case 5:t[e++]=r&255|W,r/=128;case 4:t[e++]=r&255|W,r>>>=7;case 3:t[e++]=r&255|W,r>>>=7;case 2:t[e++]=r&255|W,r>>>=7;case 1:{t[e++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return t}function rd(r,t,e=0){switch(Et(r)){case 8:t.set(e++,r&255|W),r/=128;case 7:t.set(e++,r&255|W),r/=128;case 6:t.set(e++,r&255|W),r/=128;case 5:t.set(e++,r&255|W),r/=128;case 4:t.set(e++,r&255|W),r>>>=7;case 3:t.set(e++,r&255|W),r>>>=7;case 2:t.set(e++,r&255|W),r>>>=7;case 1:{t.set(e++,r&255),r>>>=7;break}default:throw new Error("unreachable")}return t}function Qi(r,t){let e=r[t],n=0;if(n+=e&vt,e<W||(e=r[t+1],n+=(e&vt)<<7,e<W)||(e=r[t+2],n+=(e&vt)<<14,e<W)||(e=r[t+3],n+=(e&vt)<<21,e<W)||(e=r[t+4],n+=(e&vt)*ji,e<W)||(e=r[t+5],n+=(e&vt)*Zi,e<W)||(e=r[t+6],n+=(e&vt)*Xi,e<W)||(e=r[t+7],n+=(e&vt)*Yi,e<W))return n;throw new RangeError("Could not decode varint")}function nd(r,t){let e=r.get(t),n=0;if(n+=e&vt,e<W||(e=r.get(t+1),n+=(e&vt)<<7,e<W)||(e=r.get(t+2),n+=(e&vt)<<14,e<W)||(e=r.get(t+3),n+=(e&vt)<<21,e<W)||(e=r.get(t+4),n+=(e&vt)*ji,e<W)||(e=r.get(t+5),n+=(e&vt)*Zi,e<W)||(e=r.get(t+6),n+=(e&vt)*Xi,e<W)||(e=r.get(t+7),n+=(e&vt)*Yi,e<W))return n;throw new RangeError("Could not decode varint")}function zt(r,t,e=0){return t==null&&(t=Ct(Et(r))),t instanceof Uint8Array?Ji(r,t,e):rd(r,t,e)}function ge(r,t=0){return r instanceof Uint8Array?Qi(r,t):nd(r,t)}var to=new Float32Array([-0]),Le=new Uint8Array(to.buffer);function Ac(r,t,e){to[0]=r,t[e]=Le[0],t[e+1]=Le[1],t[e+2]=Le[2],t[e+3]=Le[3]}function Bc(r,t){return Le[0]=r[t],Le[1]=r[t+1],Le[2]=r[t+2],Le[3]=r[t+3],to[0]}var eo=new Float64Array([-0]),St=new Uint8Array(eo.buffer);function _c(r,t,e){eo[0]=r,t[e]=St[0],t[e+1]=St[1],t[e+2]=St[2],t[e+3]=St[3],t[e+4]=St[4],t[e+5]=St[5],t[e+6]=St[6],t[e+7]=St[7]}function Ic(r,t){return St[0]=r[t],St[1]=r[t+1],St[2]=r[t+2],St[3]=r[t+3],St[4]=r[t+4],St[5]=r[t+5],St[6]=r[t+6],St[7]=r[t+7],eo[0]}var sd=BigInt(Number.MAX_SAFE_INTEGER),id=BigInt(Number.MIN_SAFE_INTEGER),Lt=class r{lo;hi;constructor(t,e){this.lo=t|0,this.hi=e|0}toNumber(t=!1){if(!t&&this.hi>>>31>0){let e=~this.lo+1>>>0,n=~this.hi>>>0;return e===0&&(n=n+1>>>0),-(e+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(t=!1){if(t)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let e=~this.lo+1>>>0,n=~this.hi>>>0;return e===0&&(n=n+1>>>0),-(BigInt(e)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(t=!1){return this.toBigInt(t).toString()}zzEncode(){let t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this}zzDecode(){let t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this}length(){let t=this.lo,e=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?e===0?t<16384?t<128?1:2:t<2097152?3:4:e<16384?e<128?5:6:e<2097152?7:8:n<128?9:10}static fromBigInt(t){if(t===0n)return je;if(t<sd&&t>id)return this.fromNumber(Number(t));let e=t<0n;e&&(t=-t);let n=t>>32n,s=t-(n<<32n);return e&&(n=~n|0n,s=~s|0n,++s>kc&&(s=0n,++n>kc&&(n=0n))),new r(Number(s),Number(n))}static fromNumber(t){if(t===0)return je;let e=t<0;e&&(t=-t);let n=t>>>0,s=(t-n)/4294967296>>>0;return e&&(s=~s>>>0,n=~n>>>0,++n>4294967295&&(n=0,++s>4294967295&&(s=0))),new r(n,s)}static from(t){return typeof t=="number"?r.fromNumber(t):typeof t=="bigint"?r.fromBigInt(t):typeof t=="string"?r.fromBigInt(BigInt(t)):t.low!=null||t.high!=null?new r(t.low>>>0,t.high>>>0):je}},je=new Lt(0,0);je.toBigInt=function(){return 0n};je.zzEncode=je.zzDecode=function(){return this};je.length=function(){return 1};var kc=4294967296n;function Tc(r){let t=0,e=0;for(let n=0;n<r.length;++n)e=r.charCodeAt(n),e<128?t+=1:e<2048?t+=2:(e&64512)===55296&&(r.charCodeAt(n+1)&64512)===56320?(++n,t+=4):t+=3;return t}function Nc(r,t,e){if(e-t<1)return"";let s,i=[],o=0,a;for(;t<e;)a=r[t++],a<128?i[o++]=a:a>191&&a<224?i[o++]=(a&31)<<6|r[t++]&63:a>239&&a<365?(a=((a&7)<<18|(r[t++]&63)<<12|(r[t++]&63)<<6|r[t++]&63)-65536,i[o++]=55296+(a>>10),i[o++]=56320+(a&1023)):i[o++]=(a&15)<<12|(r[t++]&63)<<6|r[t++]&63,o>8191&&((s??(s=[])).push(String.fromCharCode.apply(String,i)),o=0);return s!=null?(o>0&&s.push(String.fromCharCode.apply(String,i.slice(0,o))),s.join("")):String.fromCharCode.apply(String,i.slice(0,o))}function ro(r,t,e){let n=e,s,i;for(let o=0;o<r.length;++o)s=r.charCodeAt(o),s<128?t[e++]=s:s<2048?(t[e++]=s>>6|192,t[e++]=s&63|128):(s&64512)===55296&&((i=r.charCodeAt(o+1))&64512)===56320?(s=65536+((s&1023)<<10)+(i&1023),++o,t[e++]=s>>18|240,t[e++]=s>>12&63|128,t[e++]=s>>6&63|128,t[e++]=s&63|128):(t[e++]=s>>12|224,t[e++]=s>>6&63|128,t[e++]=s&63|128);return e-n}function Yt(r,t){return RangeError(`index out of range: ${r.pos} + ${t??1} > ${r.len}`)}function Dn(r,t){return(r[t-4]|r[t-3]<<8|r[t-2]<<16|r[t-1]<<24)>>>0}var no=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(t){this.buf=t,this.pos=0,this.len=t.length}uint32(){let t=4294967295;if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,Yt(this,10);return t}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Yt(this,4);return Dn(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Yt(this,4);return Dn(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Yt(this,4);let t=Bc(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw Yt(this,4);let t=Ic(this.buf,this.pos);return this.pos+=8,t}bytes(){let t=this.uint32(),e=this.pos,n=this.pos+t;if(n>this.len)throw Yt(this,t);return this.pos+=t,e===n?new Uint8Array(0):this.buf.subarray(e,n)}string(){let t=this.bytes();return Nc(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Yt(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Yt(this);while(this.buf[this.pos++]&128);return this}skipType(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${t} at offset ${this.pos}`)}return this}readLongVarint(){let t=new Lt(0,0),e=0;if(this.len-this.pos>4){for(;e<4;++e)if(t.lo=(t.lo|(this.buf[this.pos]&127)<<e*7)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;e=0}else{for(;e<3;++e){if(this.pos>=this.len)throw Yt(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<<e*7)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<<e*7)>>>0,t}if(this.len-this.pos>4){for(;e<5;++e)if(t.hi=(t.hi|(this.buf[this.pos]&127)<<e*7+3)>>>0,this.buf[this.pos++]<128)return t}else for(;e<5;++e){if(this.pos>=this.len)throw Yt(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<<e*7+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Yt(this,8);let t=Dn(this.buf,this.pos+=4),e=Dn(this.buf,this.pos+=4);return new Lt(t,e)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let t=Qi(this.buf,this.pos);return this.pos+=Et(t),t}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function so(r){return new no(r instanceof Uint8Array?r:r.subarray())}function Ut(r,t,e){let n=so(r);return t.decode(n,void 0,e)}var io={};_t(io,{base10:()=>od});var od=_e({prefix:"9",name:"base10",alphabet:"0123456789"});var oo={};_t(oo,{base16:()=>ad,base16upper:()=>cd});var ad=st({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),cd=st({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var ao={};_t(ao,{base2:()=>ld});var ld=st({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var co={};_t(co,{base256emoji:()=>pd});var Rc=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),ud=Rc.reduce((r,t,e)=>(r[e]=t,r),[]),fd=Rc.reduce((r,t,e)=>(r[t.codePointAt(0)]=e,r),[]);function hd(r){return r.reduce((t,e)=>(t+=ud[e],t),"")}function dd(r){let t=[];for(let e of r){let n=fd[e.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${e}`);t.push(n)}return new Uint8Array(t)}var pd=or({prefix:"\u{1F680}",name:"base256emoji",encode:hd,decode:dd});var lo={};_t(lo,{base36:()=>gd,base36upper:()=>md});var gd=_e({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),md=_e({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var uo={};_t(uo,{base64:()=>yd,base64pad:()=>bd,base64url:()=>wd,base64urlpad:()=>xd});var yd=st({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),bd=st({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),wd=st({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),xd=st({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var fo={};_t(fo,{base8:()=>vd});var vd=st({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var ho={};_t(ho,{identity:()=>Ed});var Ed=or({prefix:"\0",name:"identity",encode:r=>Ka(r),decode:r=>qa(r)});var bm=new TextEncoder,wm=new TextDecoder;var mo={};_t(mo,{sha256:()=>yr,sha512:()=>Bd});function go({name:r,code:t,encode:e}){return new po(r,t,e)}var po=class{name;code;encode;constructor(t,e,n){this.name=t,this.code=e,this.encode=n}digest(t){if(t instanceof Uint8Array){let e=this.encode(t);return e instanceof Uint8Array?Wt(this.code,e):e.then(n=>Wt(this.code,n))}else throw Error("Unknown type, must be binary type")}};function Uc(r){return async t=>new Uint8Array(await crypto.subtle.digest(r,t))}var yr=go({name:"sha2-256",code:18,encode:Uc("SHA-256")}),Bd=go({name:"sha2-512",code:19,encode:Uc("SHA-512")});var $r={...ho,...ao,...fo,...io,...oo,..._i,...lo,...Bi,...uo,...co},Cm={...mo,...Ti};function Oc(r,t,e,n){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:n}}}var Dc=Oc("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),yo=Oc("ascii","a",r=>{let t="a";for(let e=0;e<r.length;e++)t+=String.fromCharCode(r[e]);return t},r=>{r=r.substring(1);let t=Ct(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);return t}),_d={utf8:Dc,"utf-8":Dc,hex:$r.base16,latin1:yo,ascii:yo,binary:yo,...$r},On=_d;function F(r,t="utf8"){let e=On[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.decoder.decode(`${e.prefix}${r}`)}function bo(r){let t=r??8192,e=t>>>1,n,s=t;return function(o){if(o<1||o>e)return Ct(o);s+o>t&&(n=Ct(t),s=0);let a=n.subarray(s,s+=o);return s&7&&(s=(s|7)+1),a}}var Ze=class{fn;len;next;val;constructor(t,e,n){this.fn=t,this.len=e,this.next=void 0,this.val=n}};function wo(){}var vo=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},Id=bo();function kd(r){return globalThis.Buffer!=null?Ct(r):Id(r)}var Wr=class{len;head;tail;states;constructor(){this.len=0,this.head=new Ze(wo,0,0),this.tail=this.head,this.states=null}_push(t,e,n){return this.tail=this.tail.next=new Ze(t,e,n),this.len+=e,this}uint32(t){return this.len+=(this.tail=this.tail.next=new Eo((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this}int32(t){return t<0?this._push(Mn,10,Lt.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let e=Lt.fromBigInt(t);return this._push(Mn,e.length(),e)}uint64Number(t){return this._push(Ji,Et(t),t)}uint64String(t){return this.uint64(BigInt(t))}int64(t){return this.uint64(t)}int64Number(t){return this.uint64Number(t)}int64String(t){return this.uint64String(t)}sint64(t){let e=Lt.fromBigInt(t).zzEncode();return this._push(Mn,e.length(),e)}sint64Number(t){let e=Lt.fromNumber(t).zzEncode();return this._push(Mn,e.length(),e)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(xo,1,t?1:0)}fixed32(t){return this._push(Gr,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let e=Lt.fromBigInt(t);return this._push(Gr,4,e.lo)._push(Gr,4,e.hi)}fixed64Number(t){let e=Lt.fromNumber(t);return this._push(Gr,4,e.lo)._push(Gr,4,e.hi)}fixed64String(t){return this.fixed64(BigInt(t))}sfixed64(t){return this.fixed64(t)}sfixed64Number(t){return this.fixed64Number(t)}sfixed64String(t){return this.fixed64String(t)}float(t){return this._push(Ac,4,t)}double(t){return this._push(_c,8,t)}bytes(t){let e=t.length>>>0;return e===0?this._push(xo,1,0):this.uint32(e)._push(Nd,e,t)}string(t){let e=Tc(t);return e!==0?this.uint32(e)._push(ro,e,t):this._push(xo,1,0)}fork(){return this.states=new vo(this),this.head=this.tail=new Ze(wo,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Ze(wo,0,0),this.len=0),this}ldelim(){let t=this.head,e=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=t.next,this.tail=e,this.len+=n),this}finish(){let t=this.head.next,e=kd(this.len),n=0;for(;t!=null;)t.fn(t.val,e,n),n+=t.len,t=t.next;return e}};function xo(r,t,e){t[e]=r&255}function Td(r,t,e){for(;r>127;)t[e++]=r&127|128,r>>>=7;t[e]=r}var Eo=class extends Ze{next;constructor(t,e){super(Td,t,e),this.next=void 0}};function Mn(r,t,e){for(;r.hi!==0;)t[e++]=r.lo&127|128,r.lo=(r.lo>>>7|r.hi<<25)>>>0,r.hi>>>=7;for(;r.lo>127;)t[e++]=r.lo&127|128,r.lo=r.lo>>>7;t[e++]=r.lo}function Gr(r,t,e){t[e]=r&255,t[e+1]=r>>>8&255,t[e+2]=r>>>16&255,t[e+3]=r>>>24}function Nd(r,t,e){t.set(r,e)}globalThis.Buffer!=null&&(Wr.prototype.bytes=function(r){let t=r.length>>>0;return this.uint32(t),t>0&&this._push(Cd,t,r),this},Wr.prototype.string=function(r){let t=globalThis.Buffer.byteLength(r);return this.uint32(t),t>0&&this._push(Rd,t,r),this});function Cd(r,t,e){t.set(r,e)}function Rd(r,t,e){r.length<40?ro(r,t,e):t.utf8Write!=null?t.utf8Write(r,e):t.set(F(r),e)}function So(){return new Wr}function Dt(r,t){let e=So();return t.encode(r,e,{lengthDelimited:!1}),e.finish()}var br;(function(r){r[r.VARINT=0]="VARINT",r[r.BIT64=1]="BIT64",r[r.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",r[r.START_GROUP=3]="START_GROUP",r[r.END_GROUP=4]="END_GROUP",r[r.BIT32=5]="BIT32"})(br||(br={}));function Pn(r,t,e,n){return{name:r,type:t,encode:e,decode:n}}function Xe(r){function t(s){if(r[s.toString()]==null)throw new Error("Invalid enum value");return r[s]}let e=function(i,o){let a=t(i);o.int32(a)},n=function(i){let o=i.int32();return t(o)};return Pn("enum",br.VARINT,e,n)}function Ot(r,t){return Pn("message",br.LENGTH_DELIMITED,r,t)}var jr=class extends Error{code="ERR_MAX_LENGTH";name="MaxLengthError"};var ft;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.secp256k1="secp256k1"})(ft||(ft={}));var Ao;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.secp256k1=2]="secp256k1"})(Ao||(Ao={}));(function(r){r.codec=()=>Xe(Ao)})(ft||(ft={}));var re;(function(r){let t;r.codec=()=>(t==null&&(t=Ot((e,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),e.Type!=null&&(n.uint32(8),ft.codec().encode(e.Type,n)),e.Data!=null&&(n.uint32(18),n.bytes(e.Data)),s.lengthDelimited!==!1&&n.ldelim()},(e,n,s={})=>{let i={},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let a=e.uint32();switch(a>>>3){case 1:{i.Type=ft.codec().decode(e);break}case 2:{i.Data=e.bytes();break}default:{e.skipType(a&7);break}}}return i})),t),r.encode=e=>Dt(e,r.codec()),r.decode=(e,n)=>Ut(e,r.codec(),n)})(re||(re={}));var Bo;(function(r){let t;r.codec=()=>(t==null&&(t=Ot((e,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),e.Type!=null&&(n.uint32(8),ft.codec().encode(e.Type,n)),e.Data!=null&&(n.uint32(18),n.bytes(e.Data)),s.lengthDelimited!==!1&&n.ldelim()},(e,n,s={})=>{let i={},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let a=e.uint32();switch(a>>>3){case 1:{i.Type=ft.codec().decode(e);break}case 2:{i.Data=e.bytes();break}default:{e.skipType(a&7);break}}}return i})),t),r.encode=e=>Dt(e,r.codec()),r.decode=(e,n)=>Ut(e,r.codec(),n)})(Bo||(Bo={}));var sn={};_t(sn,{MAX_RSA_KEY_SIZE:()=>Ns,generateRSAKeyPair:()=>Ll,jwkToJWKKeyPair:()=>Ul,jwkToPkcs1:()=>jd,jwkToPkix:()=>Uo,jwkToRSAPrivateKey:()=>Rl,pkcs1ToJwk:()=>Tl,pkcs1ToRSAPrivateKey:()=>Cl,pkixToJwk:()=>Nl,pkixToRSAPublicKey:()=>Do});var Ld=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]),Ue=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),De=new Uint32Array(64),_o=class extends pr{constructor(){super(64,32,8,!1),this.A=Ue[0]|0,this.B=Ue[1]|0,this.C=Ue[2]|0,this.D=Ue[3]|0,this.E=Ue[4]|0,this.F=Ue[5]|0,this.G=Ue[6]|0,this.H=Ue[7]|0}get(){let{A:t,B:e,C:n,D:s,E:i,F:o,G:a,H:c}=this;return[t,e,n,s,i,o,a,c]}set(t,e,n,s,i,o,a,c){this.A=t|0,this.B=e|0,this.C=n|0,this.D=s|0,this.E=i|0,this.F=o|0,this.G=a|0,this.H=c|0}process(t,e){for(let u=0;u<16;u++,e+=4)De[u]=t.getUint32(e,!1);for(let u=16;u<64;u++){let p=De[u-15],l=De[u-2],d=jt(p,7)^jt(p,18)^p>>>3,m=jt(l,17)^jt(l,19)^l>>>10;De[u]=m+De[u-7]+d+De[u-16]|0}let{A:n,B:s,C:i,D:o,E:a,F:c,G:h,H:f}=this;for(let u=0;u<64;u++){let p=jt(a,6)^jt(a,11)^jt(a,25),l=f+p+oc(a,c,h)+Ld[u]+De[u]|0,m=(jt(n,2)^jt(n,13)^jt(n,22))+ac(n,s,i)|0;f=h,h=c,c=a,a=o+l|0,o=i,i=s,s=n,n=l+m|0}n=n+this.A|0,s=s+this.B|0,i=i+this.C|0,o=o+this.D|0,a=a+this.E|0,c=c+this.F|0,h=h+this.G|0,f=f+this.H|0,this.set(n,s,i,o,a,c,h,f)}roundClean(){De.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var wr=An(()=>new _o);var $=wi(Pc());function Ye(r,t){let e=0;if(r.length===1)return r[0];for(let n=r.length-1;n>=0;n--)e+=r[r.length-1-n]*Math.pow(2,t*n);return e}function Oe(r,t,e=-1){let n=e,s=r,i=0,o=Math.pow(2,t);for(let a=1;a<8;a++){if(r<o){let c;if(n<0)c=new ArrayBuffer(a),i=a;else{if(n<a)return new ArrayBuffer(0);c=new ArrayBuffer(n),i=n}let h=new Uint8Array(c);for(let f=a-1;f>=0;f--){let u=Math.pow(2,f*t);h[i-f-1]=Math.floor(s/u),s-=h[i-f-1]*u}return c}o*=Math.pow(2,t)}return new ArrayBuffer(0)}function Fn(...r){let t=0,e=0;for(let i of r)t+=i.length;let n=new ArrayBuffer(t),s=new Uint8Array(n);for(let i of r)s.set(i,e),e+=i.length;return s}function ko(){let r=new Uint8Array(this.valueHex);if(this.valueHex.byteLength>=2){let a=r[0]===255&&r[1]&128,c=r[0]===0&&(r[1]&128)===0;(a||c)&&this.warnings.push("Needlessly long format")}let t=new ArrayBuffer(this.valueHex.byteLength),e=new Uint8Array(t);for(let a=0;a<this.valueHex.byteLength;a++)e[a]=0;e[0]=r[0]&128;let n=Ye(e,8),s=new ArrayBuffer(this.valueHex.byteLength),i=new Uint8Array(s);for(let a=0;a<this.valueHex.byteLength;a++)i[a]=r[a];return i[0]&=127,Ye(i,8)-n}function Vc(r){let t=r<0?r*-1:r,e=128;for(let n=1;n<8;n++){if(t<=e){if(r<0){let o=e-t,a=Oe(o,8,n),c=new Uint8Array(a);return c[0]|=128,a}let s=Oe(t,8,n),i=new Uint8Array(s);if(i[0]&128){let o=s.slice(0),a=new Uint8Array(o);s=new ArrayBuffer(s.byteLength+1),i=new Uint8Array(s);for(let c=0;c<o.byteLength;c++)i[c+1]=a[c];i[0]=0}return s}e*=Math.pow(2,8)}return new ArrayBuffer(0)}function Hc(r,t){if(r.byteLength!==t.byteLength)return!1;let e=new Uint8Array(r),n=new Uint8Array(t);for(let s=0;s<e.length;s++)if(e[s]!==n[s])return!1;return!0}function Rt(r,t){let e=r.toString(10);if(t<e.length)return"";let n=t-e.length,s=new Array(n);for(let o=0;o<n;o++)s[o]="0";return s.join("").concat(e)}var hy=Math.log(2);function qn(){if(typeof BigInt>"u")throw new Error("BigInt is not defined. Your environment doesn't implement BigInt.")}function To(r){let t=0,e=0;for(let s=0;s<r.length;s++){let i=r[s];t+=i.byteLength}let n=new Uint8Array(t);for(let s=0;s<r.length;s++){let i=r[s];n.set(new Uint8Array(i),e),e+=i.byteLength}return n.buffer}function xe(r,t,e,n){return t instanceof Uint8Array?t.byteLength?e<0?(r.error="Wrong parameter: inputOffset less than zero",!1):n<0?(r.error="Wrong parameter: inputLength less than zero",!1):t.byteLength-e-n<0?(r.error="End of input reached before message was fully decoded (inconsistent offset and length values)",!1):!0:(r.error="Wrong parameter: inputBuffer has zero length",!1):(r.error="Wrong parameter: inputBuffer must be 'Uint8Array'",!1)}var Xr=class{constructor(){this.items=[]}write(t){this.items.push(t)}final(){return To(this.items)}},Zr=[new Uint8Array([1])],Fc="0123456789";var Ar="",Jt=new ArrayBuffer(0),No=new Uint8Array(0),Yr="EndOfContent",Kc="OCTET STRING",zc="BIT STRING";function ve(r){var t;return t=class extends r{constructor(...n){var s;super(...n);let i=n[0]||{};this.isHexOnly=(s=i.isHexOnly)!==null&&s!==void 0?s:!1,this.valueHexView=i.valueHex?$.BufferSourceConverter.toUint8Array(i.valueHex):No}get valueHex(){return this.valueHexView.slice().buffer}set valueHex(n){this.valueHexView=new Uint8Array(n)}fromBER(n,s,i){let o=n instanceof ArrayBuffer?new Uint8Array(n):n;if(!xe(this,o,s,i))return-1;let a=s+i;return this.valueHexView=o.subarray(s,a),this.valueHexView.length?(this.blockLength=i,a):(this.warnings.push("Zero buffer length"),s)}toBER(n=!1){return this.isHexOnly?n?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.byteLength===this.valueHexView.buffer.byteLength?this.valueHexView.buffer:this.valueHexView.slice().buffer:(this.error="Flag 'isHexOnly' is not set, abort",Jt)}toJSON(){return{...super.toJSON(),isHexOnly:this.isHexOnly,valueHex:$.Convert.ToHex(this.valueHexView)}}},t.NAME="hexBlock",t}var ye=class{constructor({blockLength:t=0,error:e=Ar,warnings:n=[],valueBeforeDecode:s=No}={}){this.blockLength=t,this.error=e,this.warnings=n,this.valueBeforeDecodeView=$.BufferSourceConverter.toUint8Array(s)}static blockName(){return this.NAME}get valueBeforeDecode(){return this.valueBeforeDecodeView.slice().buffer}set valueBeforeDecode(t){this.valueBeforeDecodeView=new Uint8Array(t)}toJSON(){return{blockName:this.constructor.NAME,blockLength:this.blockLength,error:this.error,warnings:this.warnings,valueBeforeDecode:$.Convert.ToHex(this.valueBeforeDecodeView)}}};ye.NAME="baseBlock";var At=class extends ye{fromBER(t,e,n){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}toBER(t,e){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}};At.NAME="valueBlock";var Kn=class extends ve(ye){constructor({idBlock:t={}}={}){var e,n,s,i;super(),t?(this.isHexOnly=(e=t.isHexOnly)!==null&&e!==void 0?e:!1,this.valueHexView=t.valueHex?$.BufferSourceConverter.toUint8Array(t.valueHex):No,this.tagClass=(n=t.tagClass)!==null&&n!==void 0?n:-1,this.tagNumber=(s=t.tagNumber)!==null&&s!==void 0?s:-1,this.isConstructed=(i=t.isConstructed)!==null&&i!==void 0?i:!1):(this.tagClass=-1,this.tagNumber=-1,this.isConstructed=!1)}toBER(t=!1){let e=0;switch(this.tagClass){case 1:e|=0;break;case 2:e|=64;break;case 3:e|=128;break;case 4:e|=192;break;default:return this.error="Unknown tag class",Jt}if(this.isConstructed&&(e|=32),this.tagNumber<31&&!this.isHexOnly){let s=new Uint8Array(1);if(!t){let i=this.tagNumber;i&=31,e|=i,s[0]=e}return s.buffer}if(!this.isHexOnly){let s=Oe(this.tagNumber,7),i=new Uint8Array(s),o=s.byteLength,a=new Uint8Array(o+1);if(a[0]=e|31,!t){for(let c=0;c<o-1;c++)a[c+1]=i[c]|128;a[o]=i[o-1]}return a.buffer}let n=new Uint8Array(this.valueHexView.byteLength+1);if(n[0]=e|31,!t){let s=this.valueHexView;for(let i=0;i<s.length-1;i++)n[i+1]=s[i]|128;n[this.valueHexView.byteLength]=s[s.length-1]}return n.buffer}fromBER(t,e,n){let s=$.BufferSourceConverter.toUint8Array(t);if(!xe(this,s,e,n))return-1;let i=s.subarray(e,e+n);if(i.length===0)return this.error="Zero buffer length",-1;switch(i[0]&192){case 0:this.tagClass=1;break;case 64:this.tagClass=2;break;case 128:this.tagClass=3;break;case 192:this.tagClass=4;break;default:return this.error="Unknown tag class",-1}this.isConstructed=(i[0]&32)===32,this.isHexOnly=!1;let a=i[0]&31;if(a!==31)this.tagNumber=a,this.blockLength=1;else{let c=1,h=this.valueHexView=new Uint8Array(255),f=255;for(;i[c]&128;){if(h[c-1]=i[c]&127,c++,c>=i.length)return this.error="End of input reached before message was fully decoded",-1;if(c===f){f+=255;let p=new Uint8Array(f);for(let l=0;l<h.length;l++)p[l]=h[l];h=this.valueHexView=new Uint8Array(f)}}this.blockLength=c+1,h[c-1]=i[c]&127;let u=new Uint8Array(c);for(let p=0;p<c;p++)u[p]=h[p];h=this.valueHexView=new Uint8Array(c),h.set(u),this.blockLength<=9?this.tagNumber=Ye(h,7):(this.isHexOnly=!0,this.warnings.push("Tag too long, represented as hex-coded"))}if(this.tagClass===1&&this.isConstructed)switch(this.tagNumber){case 1:case 2:case 5:case 6:case 9:case 13:case 14:case 23:case 24:case 31:case 32:case 33:case 34:return this.error="Constructed encoding used for primitive type",-1}return e+this.blockLength}toJSON(){return{...super.toJSON(),tagClass:this.tagClass,tagNumber:this.tagNumber,isConstructed:this.isConstructed}}};Kn.NAME="identificationBlock";var zn=class extends ye{constructor({lenBlock:t={}}={}){var e,n,s;super(),this.isIndefiniteForm=(e=t.isIndefiniteForm)!==null&&e!==void 0?e:!1,this.longFormUsed=(n=t.longFormUsed)!==null&&n!==void 0?n:!1,this.length=(s=t.length)!==null&&s!==void 0?s:0}fromBER(t,e,n){let s=$.BufferSourceConverter.toUint8Array(t);if(!xe(this,s,e,n))return-1;let i=s.subarray(e,e+n);if(i.length===0)return this.error="Zero buffer length",-1;if(i[0]===255)return this.error="Length block 0xFF is reserved by standard",-1;if(this.isIndefiniteForm=i[0]===128,this.isIndefiniteForm)return this.blockLength=1,e+this.blockLength;if(this.longFormUsed=!!(i[0]&128),this.longFormUsed===!1)return this.length=i[0],this.blockLength=1,e+this.blockLength;let o=i[0]&127;if(o>8)return this.error="Too big integer",-1;if(o+1>i.length)return this.error="End of input reached before message was fully decoded",-1;let a=e+1,c=s.subarray(a,a+o);return c[o-1]===0&&this.warnings.push("Needlessly long encoded length"),this.length=Ye(c,8),this.longFormUsed&&this.length<=127&&this.warnings.push("Unnecessary usage of long length form"),this.blockLength=o+1,e+this.blockLength}toBER(t=!1){let e,n;if(this.length>127&&(this.longFormUsed=!0),this.isIndefiniteForm)return e=new ArrayBuffer(1),t===!1&&(n=new Uint8Array(e),n[0]=128),e;if(this.longFormUsed){let s=Oe(this.length,8);if(s.byteLength>127)return this.error="Too big length",Jt;if(e=new ArrayBuffer(s.byteLength+1),t)return e;let i=new Uint8Array(s);n=new Uint8Array(e),n[0]=s.byteLength|128;for(let o=0;o<s.byteLength;o++)n[o+1]=i[o];return e}return e=new ArrayBuffer(1),t===!1&&(n=new Uint8Array(e),n[0]=this.length),e}toJSON(){return{...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,longFormUsed:this.longFormUsed,length:this.length}}};zn.NAME="lengthBlock";var N={},bt=class extends ye{constructor({name:t=Ar,optional:e=!1,primitiveSchema:n,...s}={},i){super(s),this.name=t,this.optional=e,n&&(this.primitiveSchema=n),this.idBlock=new Kn(s),this.lenBlock=new zn(s),this.valueBlock=i?new i(s):new At(s)}fromBER(t,e,n){let s=this.valueBlock.fromBER(t,e,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return s===-1?(this.error=this.valueBlock.error,s):(this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),s)}toBER(t,e){let n=e||new Xr;e||$c(this);let s=this.idBlock.toBER(t);if(n.write(s),this.lenBlock.isIndefiniteForm)n.write(new Uint8Array([128]).buffer),this.valueBlock.toBER(t,n),n.write(new ArrayBuffer(2));else{let i=this.valueBlock.toBER(t);this.lenBlock.length=i.byteLength;let o=this.lenBlock.toBER(t);n.write(o),n.write(i)}return e?Jt:n.final()}toJSON(){let t={...super.toJSON(),idBlock:this.idBlock.toJSON(),lenBlock:this.lenBlock.toJSON(),valueBlock:this.valueBlock.toJSON(),name:this.name,optional:this.optional};return this.primitiveSchema&&(t.primitiveSchema=this.primitiveSchema.toJSON()),t}toString(t="ascii"){return t==="ascii"?this.onAsciiEncoding():$.Convert.ToHex(this.toBER())}onAsciiEncoding(){return`${this.constructor.NAME} : ${$.Convert.ToHex(this.valueBlock.valueBeforeDecodeView)}`}isEqual(t){if(this===t)return!0;if(!(t instanceof this.constructor))return!1;let e=this.toBER(),n=t.toBER();return Hc(e,n)}};bt.NAME="BaseBlock";function $c(r){if(r instanceof N.Constructed)for(let t of r.valueBlock.value)$c(t)&&(r.lenBlock.isIndefiniteForm=!0);return!!r.lenBlock.isIndefiniteForm}var $n=class extends bt{constructor({value:t=Ar,...e}={},n){super(e,n),t&&this.fromString(t)}getValue(){return this.valueBlock.value}setValue(t){this.valueBlock.value=t}fromBER(t,e,n){let s=this.valueBlock.fromBER(t,e,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return s===-1?(this.error=this.valueBlock.error,s):(this.fromBuffer(this.valueBlock.valueHexView),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),s)}onAsciiEncoding(){return`${this.constructor.NAME} : '${this.valueBlock.value}'`}};$n.NAME="BaseStringBlock";var Gn=class extends ve(At){constructor({isHexOnly:t=!0,...e}={}){super(e),this.isHexOnly=t}};Gn.NAME="PrimitiveValueBlock";var Gc,Wn=class extends bt{constructor(t={}){super(t,Gn),this.idBlock.isConstructed=!1}};Gc=Wn;N.Primitive=Gc;Wn.NAME="PRIMITIVE";function qd(r,t){if(r instanceof t)return r;let e=new t;return e.idBlock=r.idBlock,e.lenBlock=r.lenBlock,e.warnings=r.warnings,e.valueBeforeDecodeView=r.valueBeforeDecodeView,e}function Is(r,t=0,e=r.length){let n=t,s=new bt({},At),i=new ye;if(!xe(i,r,t,e))return s.error=i.error,{offset:-1,result:s};if(!r.subarray(t,t+e).length)return s.error="Zero buffer length",{offset:-1,result:s};let a=s.idBlock.fromBER(r,t,e);if(s.idBlock.warnings.length&&s.warnings.concat(s.idBlock.warnings),a===-1)return s.error=s.idBlock.error,{offset:-1,result:s};if(t=a,e-=s.idBlock.blockLength,a=s.lenBlock.fromBER(r,t,e),s.lenBlock.warnings.length&&s.warnings.concat(s.lenBlock.warnings),a===-1)return s.error=s.lenBlock.error,{offset:-1,result:s};if(t=a,e-=s.lenBlock.blockLength,!s.idBlock.isConstructed&&s.lenBlock.isIndefiniteForm)return s.error="Indefinite length form used for primitive encoding form",{offset:-1,result:s};let c=bt;switch(s.idBlock.tagClass){case 1:if(s.idBlock.tagNumber>=37&&s.idBlock.isHexOnly===!1)return s.error="UNIVERSAL 37 and upper tags are reserved by ASN.1 standard",{offset:-1,result:s};switch(s.idBlock.tagNumber){case 0:if(s.idBlock.isConstructed&&s.lenBlock.length>0)return s.error="Type [UNIVERSAL 0] is reserved",{offset:-1,result:s};c=N.EndOfContent;break;case 1:c=N.Boolean;break;case 2:c=N.Integer;break;case 3:c=N.BitString;break;case 4:c=N.OctetString;break;case 5:c=N.Null;break;case 6:c=N.ObjectIdentifier;break;case 10:c=N.Enumerated;break;case 12:c=N.Utf8String;break;case 13:c=N.RelativeObjectIdentifier;break;case 14:c=N.TIME;break;case 15:return s.error="[UNIVERSAL 15] is reserved by ASN.1 standard",{offset:-1,result:s};case 16:c=N.Sequence;break;case 17:c=N.Set;break;case 18:c=N.NumericString;break;case 19:c=N.PrintableString;break;case 20:c=N.TeletexString;break;case 21:c=N.VideotexString;break;case 22:c=N.IA5String;break;case 23:c=N.UTCTime;break;case 24:c=N.GeneralizedTime;break;case 25:c=N.GraphicString;break;case 26:c=N.VisibleString;break;case 27:c=N.GeneralString;break;case 28:c=N.UniversalString;break;case 29:c=N.CharacterString;break;case 30:c=N.BmpString;break;case 31:c=N.DATE;break;case 32:c=N.TimeOfDay;break;case 33:c=N.DateTime;break;case 34:c=N.Duration;break;default:{let h=s.idBlock.isConstructed?new N.Constructed:new N.Primitive;h.idBlock=s.idBlock,h.lenBlock=s.lenBlock,h.warnings=s.warnings,s=h}}break;case 2:case 3:case 4:default:c=s.idBlock.isConstructed?N.Constructed:N.Primitive}return s=qd(s,c),a=s.fromBER(r,t,s.lenBlock.isIndefiniteForm?e:s.lenBlock.length),s.valueBeforeDecodeView=r.subarray(n,n+s.blockLength),{offset:a,result:s}}function Co(r){if(!r.byteLength){let t=new bt({},At);return t.error="Input buffer has zero length",{offset:-1,result:t}}return Is($.BufferSourceConverter.toUint8Array(r).slice(),0,r.byteLength)}function Kd(r,t){return r?1:t}var ne=class extends At{constructor({value:t=[],isIndefiniteForm:e=!1,...n}={}){super(n),this.value=t,this.isIndefiniteForm=e}fromBER(t,e,n){let s=$.BufferSourceConverter.toUint8Array(t);if(!xe(this,s,e,n))return-1;if(this.valueBeforeDecodeView=s.subarray(e,e+n),this.valueBeforeDecodeView.length===0)return this.warnings.push("Zero buffer length"),e;let i=e;for(;Kd(this.isIndefiniteForm,n)>0;){let o=Is(s,i,n);if(o.offset===-1)return this.error=o.result.error,this.warnings.concat(o.result.warnings),-1;if(i=o.offset,this.blockLength+=o.result.blockLength,n-=o.result.blockLength,this.value.push(o.result),this.isIndefiniteForm&&o.result.constructor.NAME===Yr)break}return this.isIndefiniteForm&&(this.value[this.value.length-1].constructor.NAME===Yr?this.value.pop():this.warnings.push("No EndOfContent block encoded")),i}toBER(t,e){let n=e||new Xr;for(let s=0;s<this.value.length;s++)this.value[s].toBER(t,n);return e?Jt:n.final()}toJSON(){let t={...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,value:[]};for(let e of this.value)t.value.push(e.toJSON());return t}};ne.NAME="ConstructedValueBlock";var Wc,Me=class extends bt{constructor(t={}){super(t,ne),this.idBlock.isConstructed=!0}fromBER(t,e,n){this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm;let s=this.valueBlock.fromBER(t,e,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return s===-1?(this.error=this.valueBlock.error,s):(this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),s)}onAsciiEncoding(){let t=[];for(let n of this.valueBlock.value)t.push(n.toString("ascii").split(`
3
3
  `).map(s=>` ${s}`).join(`
4
- `));let t=this.idBlock.tagClass===3?`[${this.idBlock.tagNumber}]`:this.constructor.NAME;return e.length?`${t} :
5
- ${e.join(`
6
- `)}`:`${t} :`}};ol=$t;R.Constructed=ol;$t.NAME="CONSTRUCTED";var as=class extends _e{fromBER(e,t,n){return t}toBER(e){return tt}};as.override="EndOfContentValueBlock";var al,cs=class extends ve{constructor(e={}){super(e,as),this.idBlock.tagClass=1,this.idBlock.tagNumber=0}};al=cs;R.EndOfContent=al;cs.NAME=mn;var cl,Gt=class extends ve{constructor(e={}){super(e,_e),this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(e,t,n){return this.lenBlock.length>0&&this.warnings.push("Non-zero length of value block for Null type"),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.blockLength+=n,t+n>e.byteLength?(this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1):t+n}toBER(e,t){let n=new ArrayBuffer(2);if(!e){let s=new Uint8Array(n);s[0]=5,s[1]=0}return t&&t.write(n),n}onAsciiEncoding(){return`${this.constructor.NAME}`}};cl=Gt;R.Null=cl;Gt.NAME="NULL";var ls=class extends It(_e){constructor({value:e,...t}={}){super(t),t.valueHex?this.valueHexView=G.BufferSourceConverter.toUint8Array(t.valueHex):this.valueHexView=new Uint8Array(1),e&&(this.value=e)}get value(){for(let e of this.valueHexView)if(e>0)return!0;return!1}set value(e){this.valueHexView[0]=e?255:0}fromBER(e,t,n){let s=G.BufferSourceConverter.toUint8Array(e);return _t(this,s,t,n)?(this.valueHexView=s.subarray(t,t+n),n>1&&this.warnings.push("Boolean value encoded in more then 1 octet"),this.isHexOnly=!0,Uo.call(this),this.blockLength=n,t+n):-1}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}};ls.NAME="BooleanValueBlock";var ll,us=class extends ve{constructor(e={}){super(e,ls),this.idBlock.tagClass=1,this.idBlock.tagNumber=1}getValue(){return this.valueBlock.value}setValue(e){this.valueBlock.value=e}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}};ll=us;R.Boolean=ll;us.NAME="BOOLEAN";var fs=class extends It(lt){constructor({isConstructed:e=!1,...t}={}){super(t),this.isConstructed=e}fromBER(e,t,n){let s=0;if(this.isConstructed){if(this.isHexOnly=!1,s=lt.prototype.fromBER.call(this,e,t,n),s===-1)return s;for(let i=0;i<this.value.length;i++){let o=this.value[i].constructor.NAME;if(o===mn){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1}if(o!==rl)return this.error="OCTET STRING may consists of OCTET STRINGs only",-1}}else this.isHexOnly=!0,s=super.fromBER(e,t,n),this.blockLength=n;return s}toBER(e,t){return this.isConstructed?lt.prototype.toBER.call(this,e,t):e?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),isConstructed:this.isConstructed}}};fs.NAME="OctetStringValueBlock";var ul,St=class r extends ve{constructor({idBlock:e={},lenBlock:t={},...n}={}){var s,i;(s=n.isConstructed)!==null&&s!==void 0||(n.isConstructed=!!(!((i=n.value)===null||i===void 0)&&i.length)),super({idBlock:{isConstructed:n.isConstructed,...e},lenBlock:{...t,isIndefiniteForm:!!n.isIndefiniteForm},...n},fs),this.idBlock.tagClass=1,this.idBlock.tagNumber=4}fromBER(e,t,n){if(this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,n===0)return this.idBlock.error.length===0&&(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length===0&&(this.blockLength+=this.lenBlock.blockLength),t;if(!this.valueBlock.isConstructed){let i=(e instanceof ArrayBuffer?new Uint8Array(e):e).subarray(t,t+n);try{if(i.byteLength){let o=Vs(i,0,i.byteLength);o.offset!==-1&&o.offset===n&&(this.valueBlock.value=[o.result])}}catch{}}return super.fromBER(e,t,n)}onAsciiEncoding(){return this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length?$t.prototype.onAsciiEncoding.call(this):`${this.constructor.NAME} : ${G.Convert.ToHex(this.valueBlock.valueHexView)}`}getValue(){if(!this.idBlock.isConstructed)return this.valueBlock.valueHexView.slice().buffer;let e=[];for(let t of this.valueBlock.value)t instanceof r&&e.push(t.valueBlock.valueHexView);return G.BufferSourceConverter.concat(e)}};ul=St;R.OctetString=ul;St.NAME=rl;var hs=class extends It(lt){constructor({unusedBits:e=0,isConstructed:t=!1,...n}={}){super(n),this.unusedBits=e,this.isConstructed=t,this.blockLength=this.valueHexView.byteLength}fromBER(e,t,n){if(!n)return t;let s=-1;if(this.isConstructed){if(s=lt.prototype.fromBER.call(this,e,t,n),s===-1)return s;for(let a of this.value){let c=a.constructor.NAME;if(c===mn){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only",-1}if(c!==nl)return this.error="BIT STRING may consists of BIT STRINGs only",-1;let h=a.valueBlock;if(this.unusedBits>0&&h.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=h.unusedBits}return s}let i=G.BufferSourceConverter.toUint8Array(e);if(!_t(this,i,t,n))return-1;let o=i.subarray(t,t+n);if(this.unusedBits=o[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){let a=o.subarray(1);try{if(a.byteLength){let c=Vs(a,0,a.byteLength);c.offset!==-1&&c.offset===n-1&&(this.value=[c.result])}}catch{}}return this.valueHexView=o.subarray(1),this.blockLength=o.length,t+n}toBER(e,t){if(this.isConstructed)return lt.prototype.toBER.call(this,e,t);if(e)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength)return tt;let n=new Uint8Array(this.valueHexView.length+1);return n[0]=this.unusedBits,n.set(this.valueHexView,1),n.buffer}toJSON(){return{...super.toJSON(),unusedBits:this.unusedBits,isConstructed:this.isConstructed}}};hs.NAME="BitStringValueBlock";var fl,Vr=class extends ve{constructor({idBlock:e={},lenBlock:t={},...n}={}){var s,i;(s=n.isConstructed)!==null&&s!==void 0||(n.isConstructed=!!(!((i=n.value)===null||i===void 0)&&i.length)),super({idBlock:{isConstructed:n.isConstructed,...e},lenBlock:{...t,isIndefiniteForm:!!n.isIndefiniteForm},...n},hs),this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(e,t,n){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(e,t,n)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return $t.prototype.onAsciiEncoding.call(this);{let e=[],t=this.valueBlock.valueHexView;for(let s of t)e.push(s.toString(2).padStart(8,"0"));let n=e.join("");return`${this.constructor.NAME} : ${n.substring(0,n.length-this.valueBlock.unusedBits)}`}}};fl=Vr;R.BitString=fl;Vr.NAME=nl;var hl;function ip(r,e){let t=new Uint8Array([0]),n=new Uint8Array(r),s=new Uint8Array(e),i=n.slice(0),o=i.length-1,a=s.slice(0),c=a.length-1,h=0,f=c<o?o:c,u=0;for(let d=f;d>=0;d--,u++){switch(!0){case u<a.length:h=i[o-u]+a[c-u]+t[0];break;default:h=i[o-u]+t[0]}switch(t[0]=h/10,!0){case u>=i.length:i=es(new Uint8Array([h%10]),i);break;default:i[o-u]=h%10}}return t[0]>0&&(i=es(t,i)),i}function tl(r){if(r>=pn.length)for(let e=pn.length;e<=r;e++){let t=new Uint8Array([0]),n=pn[e-1].slice(0);for(let s=n.length-1;s>=0;s--){let i=new Uint8Array([(n[s]<<1)+t[0]]);t[0]=i[0]/10,n[s]=i[0]%10}t[0]>0&&(n=es(t,n)),pn.push(n)}return pn[r]}function op(r,e){let t=0,n=new Uint8Array(r),s=new Uint8Array(e),i=n.slice(0),o=i.length-1,a=s.slice(0),c=a.length-1,h,f=0;for(let u=c;u>=0;u--,f++)switch(h=i[o-f]-a[c-f]-t,!0){case h<0:t=1,i[o-f]=h+10;break;default:t=0,i[o-f]=h}if(t>0)for(let u=o-c+1;u>=0;u--,f++)if(h=i[o-f]-t,h<0)t=1,i[o-f]=h+10;else{t=0,i[o-f]=h;break}return i.slice()}var yn=class extends It(_e){constructor({value:e,...t}={}){super(t),this._valueDec=0,t.valueHex&&this.setValueHex(),e!==void 0&&(this.valueDec=e)}setValueHex(){this.valueHexView.length>=4?(this.warnings.push("Too big Integer for decoding, hex only"),this.isHexOnly=!0,this._valueDec=0):(this.isHexOnly=!1,this.valueHexView.length>0&&(this._valueDec=Uo.call(this)))}set valueDec(e){this._valueDec=e,this.isHexOnly=!1,this.valueHexView=new Uint8Array(Jc(e))}get valueDec(){return this._valueDec}fromDER(e,t,n,s=0){let i=this.fromBER(e,t,n);if(i===-1)return i;let o=this.valueHexView;return o[0]===0&&o[1]&128?this.valueHexView=o.subarray(1):s!==0&&o.length<s&&(s-o.length>1&&(s=o.length+1),this.valueHexView=o.subarray(s-o.length)),i}toDER(e=!1){let t=this.valueHexView;switch(!0){case(t[0]&128)!==0:{let n=new Uint8Array(this.valueHexView.length+1);n[0]=0,n.set(t,1),this.valueHexView=n}break;case(t[0]===0&&(t[1]&128)===0):this.valueHexView=this.valueHexView.subarray(1);break}return this.toBER(e)}fromBER(e,t,n){let s=super.fromBER(e,t,n);return s===-1||this.setValueHex(),s}toBER(e){return e?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){let e=this.valueHexView.length*8-1,t=new Uint8Array(this.valueHexView.length*8/3),n=0,s,i=this.valueHexView,o="",a=!1;for(let c=i.byteLength-1;c>=0;c--){s=i[c];for(let h=0;h<8;h++){if((s&1)===1)switch(n){case e:t=op(tl(n),t),o="-";break;default:t=ip(t,tl(n))}n++,s>>=1}}for(let c=0;c<t.length;c++)t[c]&&(a=!0),a&&(o+=el.charAt(t[c]));return a===!1&&(o+=el.charAt(0)),o}};hl=yn;yn.NAME="IntegerValueBlock";Object.defineProperty(hl.prototype,"valueHex",{set:function(r){this.valueHexView=new Uint8Array(r),this.setValueHex()},get:function(){return this.valueHexView.slice().buffer}});var dl,le=class r extends ve{constructor(e={}){super(e,yn),this.idBlock.tagClass=1,this.idBlock.tagNumber=2}toBigInt(){return ts(),BigInt(this.valueBlock.toString())}static fromBigInt(e){ts();let t=BigInt(e),n=new gn,s=t.toString(16).replace(/^-/,""),i=new Uint8Array(G.Convert.FromHex(s));if(t<0){let a=new Uint8Array(i.length+(i[0]&128?1:0));a[0]|=128;let h=BigInt(`0x${G.Convert.ToHex(a)}`)+t,f=G.BufferSourceConverter.toUint8Array(G.Convert.FromHex(h.toString(16)));f[0]|=128,n.write(f)}else i[0]&128&&n.write(new Uint8Array([0])),n.write(i);return new r({valueHex:n.final()})}convertToDER(){let e=new r({valueHex:this.valueBlock.valueHexView});return e.valueBlock.toDER(),e}convertFromDER(){return new r({valueHex:this.valueBlock.valueHexView[0]===0?this.valueBlock.valueHexView.subarray(1):this.valueBlock.valueHexView})}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()}`}};dl=le;R.Integer=dl;le.NAME="INTEGER";var pl,ds=class extends le{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=10}};pl=ds;R.Enumerated=pl;ds.NAME="ENUMERATED";var bn=class extends It(_e){constructor({valueDec:e=-1,isFirstSid:t=!1,...n}={}){super(n),this.valueDec=e,this.isFirstSid=t}fromBER(e,t,n){if(!n)return t;let s=G.BufferSourceConverter.toUint8Array(e);if(!_t(this,s,t,n))return-1;let i=s.subarray(t,t+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=i[a]&127,this.blockLength++,!!(i[a]&128));a++);let o=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)o[a]=this.valueHexView[a];return this.valueHexView=o,i[this.blockLength-1]&128?(this.error="End of input reached before message was fully decoded",-1):(this.valueHexView[0]===0&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=fr(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),t+this.blockLength)}set valueBigInt(e){ts();let t=BigInt(e).toString(2);for(;t.length%7;)t="0"+t;let n=new Uint8Array(t.length/7);for(let s=0;s<n.length;s++)n[s]=parseInt(t.slice(s*7,s*7+7),2)+(s+1<n.length?128:0);this.fromBER(n.buffer,0,n.length)}toBER(e){if(this.isHexOnly){if(e)return new ArrayBuffer(this.valueHexView.byteLength);let s=this.valueHexView,i=new Uint8Array(this.blockLength);for(let o=0;o<this.blockLength-1;o++)i[o]=s[o]|128;return i[this.blockLength-1]=s[this.blockLength-1],i.buffer}let t=zt(this.valueDec,7);if(t.byteLength===0)return this.error="Error during encoding SID value",tt;let n=new Uint8Array(t.byteLength);if(!e){let s=new Uint8Array(t),i=t.byteLength-1;for(let o=0;o<i;o++)n[o]=s[o]|128;n[i]=s[i]}return n}toString(){let e="";if(this.isHexOnly)e=G.Convert.ToHex(this.valueHexView);else if(this.isFirstSid){let t=this.valueDec;this.valueDec<=39?e="0.":this.valueDec<=79?(e="1.",t-=40):(e="2.",t-=80),e+=t.toString()}else e=this.valueDec.toString();return e}toJSON(){return{...super.toJSON(),valueDec:this.valueDec,isFirstSid:this.isFirstSid}}};bn.NAME="sidBlock";var ps=class extends _e{constructor({value:e=Hr,...t}={}){super(t),this.value=[],e&&this.fromString(e)}fromBER(e,t,n){let s=t;for(;n>0;){let i=new bn;if(s=i.fromBER(e,s,n),s===-1)return this.blockLength=0,this.error=i.error,s;this.value.length===0&&(i.isFirstSid=!0),this.blockLength+=i.blockLength,n-=i.blockLength,this.value.push(i)}return s}toBER(e){let t=[];for(let n=0;n<this.value.length;n++){let s=this.value[n].toBER(e);if(s.byteLength===0)return this.error=this.value[n].error,tt;t.push(s)}return Do(t)}fromString(e){this.value=[];let t=0,n=0,s="",i=!1;do if(n=e.indexOf(".",t),n===-1?s=e.substring(t):s=e.substring(t,n),t=n+1,i){let o=this.value[0],a=0;switch(o.valueDec){case 0:break;case 1:a=40;break;case 2:a=80;break;default:this.value=[];return}let c=parseInt(s,10);if(isNaN(c))return;o.valueDec=c+a,i=!1}else{let o=new bn;if(s>Number.MAX_SAFE_INTEGER){ts();let a=BigInt(s);o.valueBigInt=a}else if(o.valueDec=parseInt(s,10),isNaN(o.valueDec))return;this.value.length||(o.isFirstSid=!0,i=!0),this.value.push(o)}while(n!==-1)}toString(){let e="",t=!1;for(let n=0;n<this.value.length;n++){t=this.value[n].isHexOnly;let s=this.value[n].toString();n!==0&&(e=`${e}.`),t?(s=`{${s}}`,this.value[n].isFirstSid?e=`2.{${s} - 80}`:e+=s):e+=s}return e}toJSON(){let e={...super.toJSON(),value:this.toString(),sidArray:[]};for(let t=0;t<this.value.length;t++)e.sidArray.push(this.value[t].toJSON());return e}};ps.NAME="ObjectIdentifierValueBlock";var gl,et=class extends ve{constructor(e={}){super(e,ps),this.idBlock.tagClass=1,this.idBlock.tagNumber=6}getValue(){return this.valueBlock.toString()}setValue(e){this.valueBlock.fromString(e)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};gl=et;R.ObjectIdentifier=gl;et.NAME="OBJECT IDENTIFIER";var wn=class extends It(At){constructor({valueDec:e=0,...t}={}){super(t),this.valueDec=e}fromBER(e,t,n){if(n===0)return t;let s=G.BufferSourceConverter.toUint8Array(e);if(!_t(this,s,t,n))return-1;let i=s.subarray(t,t+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=i[a]&127,this.blockLength++,!!(i[a]&128));a++);let o=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)o[a]=this.valueHexView[a];return this.valueHexView=o,i[this.blockLength-1]&128?(this.error="End of input reached before message was fully decoded",-1):(this.valueHexView[0]===0&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=fr(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),t+this.blockLength)}toBER(e){if(this.isHexOnly){if(e)return new ArrayBuffer(this.valueHexView.byteLength);let s=this.valueHexView,i=new Uint8Array(this.blockLength);for(let o=0;o<this.blockLength-1;o++)i[o]=s[o]|128;return i[this.blockLength-1]=s[this.blockLength-1],i.buffer}let t=zt(this.valueDec,7);if(t.byteLength===0)return this.error="Error during encoding SID value",tt;let n=new Uint8Array(t.byteLength);if(!e){let s=new Uint8Array(t),i=t.byteLength-1;for(let o=0;o<i;o++)n[o]=s[o]|128;n[i]=s[i]}return n.buffer}toString(){let e="";return this.isHexOnly?e=G.Convert.ToHex(this.valueHexView):e=this.valueDec.toString(),e}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}};wn.NAME="relativeSidBlock";var gs=class extends _e{constructor({value:e=Hr,...t}={}){super(t),this.value=[],e&&this.fromString(e)}fromBER(e,t,n){let s=t;for(;n>0;){let i=new wn;if(s=i.fromBER(e,s,n),s===-1)return this.blockLength=0,this.error=i.error,s;this.blockLength+=i.blockLength,n-=i.blockLength,this.value.push(i)}return s}toBER(e,t){let n=[];for(let s=0;s<this.value.length;s++){let i=this.value[s].toBER(e);if(i.byteLength===0)return this.error=this.value[s].error,tt;n.push(i)}return Do(n)}fromString(e){this.value=[];let t=0,n=0,s="";do{n=e.indexOf(".",t),n===-1?s=e.substring(t):s=e.substring(t,n),t=n+1;let i=new wn;if(i.valueDec=parseInt(s,10),isNaN(i.valueDec))return!0;this.value.push(i)}while(n!==-1);return!0}toString(){let e="",t=!1;for(let n=0;n<this.value.length;n++){t=this.value[n].isHexOnly;let s=this.value[n].toString();n!==0&&(e=`${e}.`),t&&(s=`{${s}}`),e+=s}return e}toJSON(){let e={...super.toJSON(),value:this.toString(),sidArray:[]};for(let t=0;t<this.value.length;t++)e.sidArray.push(this.value[t].toJSON());return e}};gs.NAME="RelativeObjectIdentifierValueBlock";var ml,ms=class extends ve{constructor(e={}){super(e,gs),this.idBlock.tagClass=1,this.idBlock.tagNumber=13}getValue(){return this.valueBlock.toString()}setValue(e){this.valueBlock.fromString(e)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};ml=ms;R.RelativeObjectIdentifier=ml;ms.NAME="RelativeObjectIdentifier";var yl,ye=class extends $t{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=16}};yl=ye;R.Sequence=yl;ye.NAME="SEQUENCE";var bl,ys=class extends $t{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=17}};bl=ys;R.Set=bl;ys.NAME="SET";var bs=class extends It(_e){constructor({...e}={}){super(e),this.isHexOnly=!0,this.value=Hr}toJSON(){return{...super.toJSON(),value:this.value}}};bs.NAME="StringValueBlock";var ws=class extends bs{};ws.NAME="SimpleStringValueBlock";var Re=class extends ss{constructor({...e}={}){super(e,ws)}fromBuffer(e){this.valueBlock.value=String.fromCharCode.apply(null,G.BufferSourceConverter.toUint8Array(e))}fromString(e){let t=e.length,n=this.valueBlock.valueHexView=new Uint8Array(t);for(let s=0;s<t;s++)n[s]=e.charCodeAt(s);this.valueBlock.value=e}};Re.NAME="SIMPLE STRING";var xs=class extends Re{fromBuffer(e){this.valueBlock.valueHexView=G.BufferSourceConverter.toUint8Array(e);try{this.valueBlock.value=G.Convert.ToUtf8String(e)}catch(t){this.warnings.push(`Error during "decodeURIComponent": ${t}, using raw string`),this.valueBlock.value=G.Convert.ToBinary(e)}}fromString(e){this.valueBlock.valueHexView=new Uint8Array(G.Convert.FromUtf8String(e)),this.valueBlock.value=e}};xs.NAME="Utf8StringValueBlock";var wl,Bt=class extends xs{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=12}};wl=Bt;R.Utf8String=wl;Bt.NAME="UTF8String";var vs=class extends Re{fromBuffer(e){this.valueBlock.value=G.Convert.ToUtf16String(e),this.valueBlock.valueHexView=G.BufferSourceConverter.toUint8Array(e)}fromString(e){this.valueBlock.value=e,this.valueBlock.valueHexView=new Uint8Array(G.Convert.FromUtf16String(e))}};vs.NAME="BmpStringValueBlock";var xl,Es=class extends vs{constructor({...e}={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=30}};xl=Es;R.BmpString=xl;Es.NAME="BMPString";var As=class extends Re{fromBuffer(e){let t=ArrayBuffer.isView(e)?e.slice().buffer:e.slice(0),n=new Uint8Array(t);for(let s=0;s<n.length;s+=4)n[s]=n[s+3],n[s+1]=n[s+2],n[s+2]=0,n[s+3]=0;this.valueBlock.value=String.fromCharCode.apply(null,new Uint32Array(t))}fromString(e){let t=e.length,n=this.valueBlock.valueHexView=new Uint8Array(t*4);for(let s=0;s<t;s++){let i=zt(e.charCodeAt(s),8),o=new Uint8Array(i);if(o.length>4)continue;let a=4-o.length;for(let c=o.length-1;c>=0;c--)n[s*4+c+a]=o[c]}this.valueBlock.value=e}};As.NAME="UniversalStringValueBlock";var vl,Ss=class extends As{constructor({...e}={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=28}};vl=Ss;R.UniversalString=vl;Ss.NAME="UniversalString";var El,Bs=class extends Re{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=18}};El=Bs;R.NumericString=El;Bs.NAME="NumericString";var Al,_s=class extends Re{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=19}};Al=_s;R.PrintableString=Al;_s.NAME="PrintableString";var Sl,Is=class extends Re{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=20}};Sl=Is;R.TeletexString=Sl;Is.NAME="TeletexString";var Bl,ks=class extends Re{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=21}};Bl=ks;R.VideotexString=Bl;ks.NAME="VideotexString";var _l,Ts=class extends Re{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=22}};_l=Ts;R.IA5String=_l;Ts.NAME="IA5String";var Il,Rs=class extends Re{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=25}};Il=Rs;R.GraphicString=Il;Rs.NAME="GraphicString";var kl,xn=class extends Re{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=26}};kl=xn;R.VisibleString=kl;xn.NAME="VisibleString";var Tl,Ns=class extends Re{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=27}};Tl=Ns;R.GeneralString=Tl;Ns.NAME="GeneralString";var Rl,Ls=class extends Re{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=29}};Rl=Ls;R.CharacterString=Rl;Ls.NAME="CharacterString";var Nl,vn=class extends xn{constructor({value:e,valueDate:t,...n}={}){if(super(n),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,e){this.fromString(e),this.valueBlock.valueHexView=new Uint8Array(e.length);for(let s=0;s<e.length;s++)this.valueBlock.valueHexView[s]=e.charCodeAt(s)}t&&(this.fromDate(t),this.valueBlock.valueHexView=new Uint8Array(this.toBuffer())),this.idBlock.tagClass=1,this.idBlock.tagNumber=23}fromBuffer(e){this.fromString(String.fromCharCode.apply(null,G.BufferSourceConverter.toUint8Array(e)))}toBuffer(){let e=this.toString(),t=new ArrayBuffer(e.length),n=new Uint8Array(t);for(let s=0;s<e.length;s++)n[s]=e.charCodeAt(s);return t}fromDate(e){this.year=e.getUTCFullYear(),this.month=e.getUTCMonth()+1,this.day=e.getUTCDate(),this.hour=e.getUTCHours(),this.minute=e.getUTCMinutes(),this.second=e.getUTCSeconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second))}fromString(e){let n=/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z/ig.exec(e);if(n===null){this.error="Wrong input string for conversion";return}let s=parseInt(n[1],10);s>=50?this.year=1900+s:this.year=2e3+s,this.month=parseInt(n[2],10),this.day=parseInt(n[3],10),this.hour=parseInt(n[4],10),this.minute=parseInt(n[5],10),this.second=parseInt(n[6],10)}toString(e="iso"){if(e==="iso"){let t=new Array(7);return t[0]=De(this.year<2e3?this.year-1900:this.year-2e3,2),t[1]=De(this.month,2),t[2]=De(this.day,2),t[3]=De(this.hour,2),t[4]=De(this.minute,2),t[5]=De(this.second,2),t[6]="Z",t.join("")}return super.toString(e)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.toDate().toISOString()}`}toJSON(){return{...super.toJSON(),year:this.year,month:this.month,day:this.day,hour:this.hour,minute:this.minute,second:this.second}}};Nl=vn;R.UTCTime=Nl;vn.NAME="UTCTime";var Ll,Cs=class extends vn{constructor(e={}){var t;super(e),(t=this.millisecond)!==null&&t!==void 0||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(e){super.fromDate(e),this.millisecond=e.getUTCMilliseconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond))}fromString(e){let t=!1,n="",s="",i=0,o,a=0,c=0;if(e[e.length-1]==="Z")n=e.substring(0,e.length-1),t=!0;else{let u=new Number(e[e.length-1]);if(isNaN(u.valueOf()))throw new Error("Wrong input string for conversion");n=e}if(t){if(n.indexOf("+")!==-1)throw new Error("Wrong input string for conversion");if(n.indexOf("-")!==-1)throw new Error("Wrong input string for conversion")}else{let u=1,d=n.indexOf("+"),l="";if(d===-1&&(d=n.indexOf("-"),u=-1),d!==-1){if(l=n.substring(d+1),n=n.substring(0,d),l.length!==2&&l.length!==4)throw new Error("Wrong input string for conversion");let p=parseInt(l.substring(0,2),10);if(isNaN(p.valueOf()))throw new Error("Wrong input string for conversion");if(a=u*p,l.length===4){if(p=parseInt(l.substring(2,4),10),isNaN(p.valueOf()))throw new Error("Wrong input string for conversion");c=u*p}}}let h=n.indexOf(".");if(h===-1&&(h=n.indexOf(",")),h!==-1){let u=new Number(`0${n.substring(h)}`);if(isNaN(u.valueOf()))throw new Error("Wrong input string for conversion");i=u.valueOf(),s=n.substring(0,h)}else s=n;switch(!0){case s.length===8:if(o=/(\d{4})(\d{2})(\d{2})/ig,h!==-1)throw new Error("Wrong input string for conversion");break;case s.length===10:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,h!==-1){let u=60*i;this.minute=Math.floor(u),u=60*(u-this.minute),this.second=Math.floor(u),u=1e3*(u-this.second),this.millisecond=Math.floor(u)}break;case s.length===12:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,h!==-1){let u=60*i;this.second=Math.floor(u),u=1e3*(u-this.second),this.millisecond=Math.floor(u)}break;case s.length===14:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,h!==-1){let u=1e3*i;this.millisecond=Math.floor(u)}break;default:throw new Error("Wrong input string for conversion")}let f=o.exec(s);if(f===null)throw new Error("Wrong input string for conversion");for(let u=1;u<f.length;u++)switch(u){case 1:this.year=parseInt(f[u],10);break;case 2:this.month=parseInt(f[u],10);break;case 3:this.day=parseInt(f[u],10);break;case 4:this.hour=parseInt(f[u],10)+a;break;case 5:this.minute=parseInt(f[u],10)+c;break;case 6:this.second=parseInt(f[u],10);break;default:throw new Error("Wrong input string for conversion")}if(t===!1){let u=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond);this.year=u.getUTCFullYear(),this.month=u.getUTCMonth(),this.day=u.getUTCDay(),this.hour=u.getUTCHours(),this.minute=u.getUTCMinutes(),this.second=u.getUTCSeconds(),this.millisecond=u.getUTCMilliseconds()}}toString(e="iso"){if(e==="iso"){let t=[];return t.push(De(this.year,4)),t.push(De(this.month,2)),t.push(De(this.day,2)),t.push(De(this.hour,2)),t.push(De(this.minute,2)),t.push(De(this.second,2)),this.millisecond!==0&&(t.push("."),t.push(De(this.millisecond,3))),t.push("Z"),t.join("")}return super.toString(e)}toJSON(){return{...super.toJSON(),millisecond:this.millisecond}}};Ll=Cs;R.GeneralizedTime=Ll;Cs.NAME="GeneralizedTime";var Cl,Us=class extends Bt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=31}};Cl=Us;R.DATE=Cl;Us.NAME="DATE";var Ul,Ds=class extends Bt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=32}};Ul=Ds;R.TimeOfDay=Ul;Ds.NAME="TimeOfDay";var Dl,Os=class extends Bt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=33}};Dl=Os;R.DateTime=Dl;Os.NAME="DateTime";var Ol,Ps=class extends Bt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=34}};Ol=Ps;R.Duration=Ol;Ps.NAME="Duration";var Pl,Ms=class extends Bt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=14}};Pl=Ms;R.TIME=Pl;Ms.NAME="TIME";function cp(r){let{result:e}=Fr(r),t=e.valueBlock.value;return{n:W(ut(t[1].toBigInt()),"base64url"),e:W(ut(t[2].toBigInt()),"base64url"),d:W(ut(t[3].toBigInt()),"base64url"),p:W(ut(t[4].toBigInt()),"base64url"),q:W(ut(t[5].toBigInt()),"base64url"),dp:W(ut(t[6].toBigInt()),"base64url"),dq:W(ut(t[7].toBigInt()),"base64url"),qi:W(ut(t[8].toBigInt()),"base64url"),kty:"RSA",alg:"RS256"}}function lp(r){if(r.n==null||r.e==null||r.d==null||r.p==null||r.q==null||r.dp==null||r.dq==null||r.qi==null)throw new D("JWK was missing components","ERR_INVALID_PARAMETERS");let t=new ye({value:[new le({value:0}),le.fromBigInt(ft(V(r.n,"base64url"))),le.fromBigInt(ft(V(r.e,"base64url"))),le.fromBigInt(ft(V(r.d,"base64url"))),le.fromBigInt(ft(V(r.p,"base64url"))),le.fromBigInt(ft(V(r.q,"base64url"))),le.fromBigInt(ft(V(r.dp,"base64url"))),le.fromBigInt(ft(V(r.dq,"base64url"))),le.fromBigInt(ft(V(r.qi,"base64url")))]}).toBER();return new Uint8Array(t,0,t.byteLength)}function up(r){let{result:e}=Fr(r),t=e.valueBlock.value[1].valueBlock.value[0].valueBlock.value;return{kty:"RSA",n:W(ut(t[0].toBigInt()),"base64url"),e:W(ut(t[1].toBigInt()),"base64url")}}function fp(r){if(r.n==null||r.e==null)throw new D("JWK was missing components","ERR_INVALID_PARAMETERS");let t=new ye({value:[new ye({value:[new et({value:"1.2.840.113549.1.1.1"}),new Gt]}),new Vr({valueHex:new ye({value:[le.fromBigInt(ft(V(r.n,"base64url"))),le.fromBigInt(ft(V(r.e,"base64url")))]}).toBER()})]}).toBER();return new Uint8Array(t,0,t.byteLength)}function ut(r){let e=r.toString(16);e.length%2>0&&(e=`0${e}`);let t=e.length/2,n=new Uint8Array(t),s=0,i=0;for(;s<t;)n[s]=parseInt(e.slice(i,i+2),16),s+=1,i+=2;return n}function ft(r){let e=[];return r.forEach(function(t){let n=t.toString(16);n.length%2>0&&(n=`0${n}`),e.push(n)}),BigInt("0x"+e.join(""))}var hp=16,Po=32,Mo=1e4;async function dp(r,e){let t=Te.get(),s=new ye({value:[new le({value:0}),new ye({value:[new et({value:"1.2.840.113549.1.1.1"}),new Gt]}),new St({valueHex:r.marshal()})]}).toBER(),i=new Uint8Array(s,0,s.byteLength),o=ct(hp),a=await Lo(sn,e,o,{c:Mo,dkLen:Po}),c=ct(16),h=await t.subtle.importKey("raw",a,"AES-CBC",!1,["encrypt"]),f=await t.subtle.encrypt({name:"AES-CBC",iv:c},h,i),u=new ye({value:[new St({valueHex:o}),new le({value:Mo}),new le({value:Po}),new ye({value:[new et({value:"1.2.840.113549.2.11"}),new Gt]})]}),d=new ye({value:[new et({value:"1.2.840.113549.1.5.13"}),new ye({value:[new ye({value:[new et({value:"1.2.840.113549.1.5.12"}),u]}),new ye({value:[new et({value:"2.16.840.1.101.3.4.1.42"}),new St({valueHex:c})]})]})]}),p=new ye({value:[d,new St({valueHex:f})]}).toBER(),m=new Uint8Array(p,0,p.byteLength);return["-----BEGIN ENCRYPTED PRIVATE KEY-----",...W(m,"base64pad").split(/(.{64})/).filter(Boolean),"-----END ENCRYPTED PRIVATE KEY-----"].join(`
7
- `)}async function pp(r,e){let t=Te.get(),n;if(r.includes("-----BEGIN ENCRYPTED PRIVATE KEY-----")){let s=V(r.replace("-----BEGIN ENCRYPTED PRIVATE KEY-----","").replace("-----END ENCRYPTED PRIVATE KEY-----","").replace(/\n/g,"").trim(),"base64pad"),{result:i}=Fr(s),{iv:o,salt:a,iterations:c,keySize:h,cipherText:f}=gp(i),u=await Lo(sn,e,a,{c,dkLen:h}),d=await t.subtle.importKey("raw",u,"AES-CBC",!1,["decrypt"]),l=En(await t.subtle.decrypt({name:"AES-CBC",iv:o},d,f)),{result:p}=Fr(l);n=Ml(p)}else if(r.includes("-----BEGIN PRIVATE KEY-----")){let s=V(r.replace("-----BEGIN PRIVATE KEY-----","").replace("-----END PRIVATE KEY-----","").replace(/\n/g,"").trim(),"base64pad"),{result:i}=Fr(s);n=Ml(i)}else throw new D("Could not parse private key from PEM data","ERR_INVALID_PARAMETERS");return Vo(n)}function gp(r){let e=r.valueBlock.value[0];if(e.valueBlock.value[0].toString()!=="OBJECT IDENTIFIER : 1.2.840.113549.1.5.13")throw new D("Only pkcs5PBES2 encrypted private keys are supported","ERR_INVALID_PARAMS");let n=e.valueBlock.value[1].valueBlock.value[0];if(n.valueBlock.value[0].toString()!=="OBJECT IDENTIFIER : 1.2.840.113549.1.5.12")throw new D("Only pkcs5PBKDF2 key derivation functions are supported","ERR_INVALID_PARAMS");let i=n.valueBlock.value[1],o=En(i.valueBlock.value[0].getValue()),a=Mo,c=Po;if(i.valueBlock.value.length===3)a=Number(i.valueBlock.value[1].toBigInt()),c=Number(i.valueBlock.value[2].toBigInt());else if(i.valueBlock.value.length===2)throw new D("Could not derive key size and iterations from PEM file - please use @libp2p/rsa to re-import your key","ERR_INVALID_PARAMS");let h=e.valueBlock.value[1].valueBlock.value[1],f=h.valueBlock.value[0].toString();if(f!=="OBJECT IDENTIFIER : 1.2.840.113549.3.7"){if(f!=="OBJECT IDENTIFIER : 1.3.14.3.2.7"){if(f!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.2"){if(f!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.22"){if(f!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.42")throw new D("Only AES-CBC encryption schemes are supported","ERR_INVALID_PARAMS")}}}}let u=En(h.valueBlock.value[1].getValue());return{cipherText:En(r.valueBlock.value[1].getValue()),salt:o,iterations:a,keySize:c,iv:u}}function Ml(r){return En(r.valueBlock.value[2].getValue())}function En(r){return new Uint8Array(r,0,r.byteLength)}async function Vl(r){let e=await Te.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),t=await Kl(e);return{privateKey:t[0],publicKey:t[1]}}async function Ho(r){let t=[await Te.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await mp(r)],n=await Kl({privateKey:t[0],publicKey:t[1]});return{privateKey:n[0],publicKey:n[1]}}async function Hl(r,e){let t=await Te.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await Te.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},t,e instanceof Uint8Array?e:e.subarray());return new Uint8Array(n,0,n.byteLength)}async function Fl(r,e,t){let n=await Te.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return Te.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,e,t instanceof Uint8Array?t:t.subarray())}async function Kl(r){if(r.privateKey==null||r.publicKey==null)throw new D("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([Te.get().subtle.exportKey("jwk",r.privateKey),Te.get().subtle.exportKey("jwk",r.publicKey)])}async function mp(r){return Te.get().subtle.importKey("jwk",{kty:r.kty,n:r.n,e:r.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function Hs(r){if(r.kty!=="RSA")throw new D("invalid key type","ERR_INVALID_KEY_TYPE");if(r.n==null)throw new D("invalid key modulus","ERR_INVALID_KEY_MODULUS");return V(r.n,"base64url").length*8}var Sn=8192,An=class{_key;constructor(e){this._key=e}verify(e,t){return Fl(this._key,t,e)}marshal(){return jt.jwkToPkix(this._key)}get bytes(){return ot.encode({Type:se.RSA,Data:this.marshal()}).subarray()}equals(e){return oe(this.bytes,e.bytes)}hash(){let e=me.digest(this.bytes);return Ge(e)?e.then(({bytes:t})=>t):e.bytes}},Kr=class{_key;_publicKey;constructor(e,t){this._key=e,this._publicKey=t}genSecret(){return ct(16)}sign(e){return Hl(this._key,e)}get public(){if(this._publicKey==null)throw new D("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new An(this._publicKey)}marshal(){return jt.jwkToPkcs1(this._key)}get bytes(){return at.encode({Type:se.RSA,Data:this.marshal()}).subarray()}equals(e){return oe(this.bytes,e.bytes)}hash(){let e=me.digest(this.bytes);return Ge(e)?e.then(({bytes:t})=>t):e.bytes}async id(){let e=await this.public.hash();return W(e,"base58btc")}async export(e,t="pkcs-8"){if(t==="pkcs-8")return jt.exportToPem(this,e);if(t==="libp2p-key")return Dr(this.bytes,e);throw new D(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};async function Vo(r){let e=jt.pkcs1ToJwk(r);if(Hs(e)>Sn)throw new D("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await Ho(e);return new Kr(t.privateKey,t.publicKey)}function bp(r){let e=jt.pkixToJwk(r);if(Hs(e)>Sn)throw new D("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new An(e)}async function wp(r){if(Hs(r)>Sn)throw new D("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await Ho(r);return new Kr(e.privateKey,e.publicKey)}async function xp(r){if(r>Sn)throw new D("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await Vl(r);return new Kr(e.privateKey,e.publicKey)}var Go={};ge(Go,{Secp256k1PrivateKey:()=>_n,Secp256k1PublicKey:()=>Bn,generateKeyPair:()=>Cp,unmarshalSecp256k1PrivateKey:()=>Np,unmarshalSecp256k1PublicKey:()=>Lp});var vp=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]),Wt=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Yt=new Uint32Array(64),Ko=class extends Nr{constructor(){super(64,32,8,!1),this.A=Wt[0]|0,this.B=Wt[1]|0,this.C=Wt[2]|0,this.D=Wt[3]|0,this.E=Wt[4]|0,this.F=Wt[5]|0,this.G=Wt[6]|0,this.H=Wt[7]|0}get(){let{A:e,B:t,C:n,D:s,E:i,F:o,G:a,H:c}=this;return[e,t,n,s,i,o,a,c]}set(e,t,n,s,i,o,a,c){this.A=e|0,this.B=t|0,this.C=n|0,this.D=s|0,this.E=i|0,this.F=o|0,this.G=a|0,this.H=c|0}process(e,t){for(let u=0;u<16;u++,t+=4)Yt[u]=e.getUint32(t,!1);for(let u=16;u<64;u++){let d=Yt[u-15],l=Yt[u-2],p=Ze(d,7)^Ze(d,18)^d>>>3,m=Ze(l,17)^Ze(l,19)^l>>>10;Yt[u]=m+Yt[u-7]+p+Yt[u-16]|0}let{A:n,B:s,C:i,D:o,E:a,F:c,G:h,H:f}=this;for(let u=0;u<64;u++){let d=Ze(a,6)^Ze(a,11)^Ze(a,25),l=f+d+Ec(a,c,h)+vp[u]+Yt[u]|0,m=(Ze(n,2)^Ze(n,13)^Ze(n,22))+Ac(n,s,i)|0;f=h,h=c,c=a,a=o+l|0,o=i,i=s,s=n,n=l+m|0}n=n+this.A|0,s=s+this.B|0,i=i+this.C|0,o=o+this.D|0,a=a+this.E|0,c=c+this.F|0,h=h+this.G|0,f=f+this.H|0,this.set(n,s,i,o,a,c,h,f)}roundClean(){Yt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var ql=Pn(()=>new Ko);function zl(r){r.lowS!==void 0&&Xe("lowS",r.lowS),r.prehash!==void 0&&Xe("prehash",r.prehash)}function Ep(r){let e=cn(r);it(e,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:t,Fp:n,a:s}=e;if(t){if(!n.eql(s,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof t!="object"||typeof t.beta!="bigint"||typeof t.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...e})}var{bytesToNumberBE:Ap,hexToBytes:Sp}=Hn,kt={Err:class extends Error{constructor(e=""){super(e)}},_tlv:{encode:(r,e)=>{let{Err:t}=kt;if(r<0||r>256)throw new t("tlv.encode: wrong tag");if(e.length&1)throw new t("tlv.encode: unpadded data");let n=e.length/2,s=rr(n);if(s.length/2&128)throw new t("tlv.encode: long form length too big");let i=n>127?rr(s.length/2|128):"";return`${rr(r)}${i}${s}${e}`},decode(r,e){let{Err:t}=kt,n=0;if(r<0||r>256)throw new t("tlv.encode: wrong tag");if(e.length<2||e[n++]!==r)throw new t("tlv.decode: wrong tlv");let s=e[n++],i=!!(s&128),o=0;if(!i)o=s;else{let c=s&127;if(!c)throw new t("tlv.decode(long): indefinite length not supported");if(c>4)throw new t("tlv.decode(long): byte length is too big");let h=e.subarray(n,n+c);if(h.length!==c)throw new t("tlv.decode: length bytes not complete");if(h[0]===0)throw new t("tlv.decode(long): zero leftmost byte");for(let f of h)o=o<<8|f;if(n+=c,o<128)throw new t("tlv.decode(long): not minimal encoding")}let a=e.subarray(n,n+o);if(a.length!==o)throw new t("tlv.decode: wrong value length");return{v:a,l:e.subarray(n+o)}}},_int:{encode(r){let{Err:e}=kt;if(r<Tt)throw new e("integer: negative integers are not allowed");let t=rr(r);if(Number.parseInt(t[0],16)&8&&(t="00"+t),t.length&1)throw new e("unexpected assertion");return t},decode(r){let{Err:e}=kt;if(r[0]&128)throw new e("Invalid signature integer: negative");if(r[0]===0&&!(r[1]&128))throw new e("Invalid signature integer: unnecessary leading zero");return Ap(r)}},toSig(r){let{Err:e,_int:t,_tlv:n}=kt,s=typeof r=="string"?Sp(r):r;Lr(s);let{v:i,l:o}=n.decode(48,s);if(o.length)throw new e("Invalid signature: left bytes after parsing");let{v:a,l:c}=n.decode(2,i),{v:h,l:f}=n.decode(2,c);if(f.length)throw new e("Invalid signature: left bytes after parsing");return{r:t.decode(a),s:t.decode(h)}},hexFromSig(r){let{_tlv:e,_int:t}=kt,n=`${e.encode(2,t.encode(r.r))}${e.encode(2,t.encode(r.s))}`;return e.encode(48,n)}},Tt=BigInt(0),be=BigInt(1),kb=BigInt(2),$l=BigInt(3),Tb=BigInt(4);function Bp(r){let e=Ep(r),{Fp:t}=e,n=Kt(e.n,e.nBitLength),s=e.toBytes||((m,b,y)=>{let w=b.toAffine();return wt(Uint8Array.from([4]),t.toBytes(w.x),t.toBytes(w.y))}),i=e.fromBytes||(m=>{let b=m.subarray(1),y=t.fromBytes(b.subarray(0,t.BYTES)),w=t.fromBytes(b.subarray(t.BYTES,2*t.BYTES));return{x:y,y:w}});function o(m){let{a:b,b:y}=e,w=t.sqr(m),g=t.mul(w,m);return t.add(t.add(g,t.mul(m,b)),y)}if(!t.eql(t.sqr(e.Gy),o(e.Gx)))throw new Error("bad generator point: equation left != right");function a(m){return on(m,be,e.n)}function c(m){let{allowedPrivateKeyLengths:b,nByteLength:y,wrapPrivateKey:w,n:g}=e;if(b&&typeof m!="bigint"){if(Vt(m)&&(m=yt(m)),typeof m!="string"||!b.includes(m.length))throw new Error("Invalid key");m=m.padStart(y*2,"0")}let x;try{x=typeof m=="bigint"?m:bt(ae("private key",m,y))}catch{throw new Error(`private key must be ${y} bytes, hex or bigint, not ${typeof m}`)}return w&&(x=J(x,g)),Ce("private key",x,be,g),x}function h(m){if(!(m instanceof d))throw new Error("ProjectivePoint expected")}let f=ir((m,b)=>{let{px:y,py:w,pz:g}=m;if(t.eql(g,t.ONE))return{x:y,y:w};let x=m.is0();b==null&&(b=x?t.ONE:t.inv(g));let S=t.mul(y,b),_=t.mul(w,b),v=t.mul(g,b);if(x)return{x:t.ZERO,y:t.ZERO};if(!t.eql(v,t.ONE))throw new Error("invZ was invalid");return{x:S,y:_}}),u=ir(m=>{if(m.is0()){if(e.allowInfinityPoint&&!t.is0(m.py))return;throw new Error("bad point: ZERO")}let{x:b,y}=m.toAffine();if(!t.isValid(b)||!t.isValid(y))throw new Error("bad point: x or y not FE");let w=t.sqr(y),g=o(b);if(!t.eql(w,g))throw new Error("bad point: equation left != right");if(!m.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class d{constructor(b,y,w){if(this.px=b,this.py=y,this.pz=w,b==null||!t.isValid(b))throw new Error("x required");if(y==null||!t.isValid(y))throw new Error("y required");if(w==null||!t.isValid(w))throw new Error("z required");Object.freeze(this)}static fromAffine(b){let{x:y,y:w}=b||{};if(!b||!t.isValid(y)||!t.isValid(w))throw new Error("invalid affine point");if(b instanceof d)throw new Error("projective point not allowed");let g=x=>t.eql(x,t.ZERO);return g(y)&&g(w)?d.ZERO:new d(y,w,t.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(b){let y=t.invertBatch(b.map(w=>w.pz));return b.map((w,g)=>w.toAffine(y[g])).map(d.fromAffine)}static fromHex(b){let y=d.fromAffine(i(ae("pointHex",b)));return y.assertValidity(),y}static fromPrivateKey(b){return d.BASE.multiply(c(b))}static msm(b,y){return qn(d,n,b,y)}_setWindowSize(b){p.setWindowSize(this,b)}assertValidity(){u(this)}hasEvenY(){let{y:b}=this.toAffine();if(t.isOdd)return!t.isOdd(b);throw new Error("Field doesn't support isOdd")}equals(b){h(b);let{px:y,py:w,pz:g}=this,{px:x,py:S,pz:_}=b,v=t.eql(t.mul(y,_),t.mul(x,g)),B=t.eql(t.mul(w,_),t.mul(S,g));return v&&B}negate(){return new d(this.px,t.neg(this.py),this.pz)}double(){let{a:b,b:y}=e,w=t.mul(y,$l),{px:g,py:x,pz:S}=this,_=t.ZERO,v=t.ZERO,B=t.ZERO,N=t.mul(g,g),te=t.mul(x,x),K=t.mul(S,S),F=t.mul(g,x);return F=t.add(F,F),B=t.mul(g,S),B=t.add(B,B),_=t.mul(b,B),v=t.mul(w,K),v=t.add(_,v),_=t.sub(te,v),v=t.add(te,v),v=t.mul(_,v),_=t.mul(F,_),B=t.mul(w,B),K=t.mul(b,K),F=t.sub(N,K),F=t.mul(b,F),F=t.add(F,B),B=t.add(N,N),N=t.add(B,N),N=t.add(N,K),N=t.mul(N,F),v=t.add(v,N),K=t.mul(x,S),K=t.add(K,K),N=t.mul(K,F),_=t.sub(_,N),B=t.mul(K,te),B=t.add(B,B),B=t.add(B,B),new d(_,v,B)}add(b){h(b);let{px:y,py:w,pz:g}=this,{px:x,py:S,pz:_}=b,v=t.ZERO,B=t.ZERO,N=t.ZERO,te=e.a,K=t.mul(e.b,$l),F=t.mul(y,x),U=t.mul(w,S),T=t.mul(g,_),L=t.add(y,w),A=t.add(x,S);L=t.mul(L,A),A=t.add(F,U),L=t.sub(L,A),A=t.add(y,g);let E=t.add(x,_);return A=t.mul(A,E),E=t.add(F,T),A=t.sub(A,E),E=t.add(w,g),v=t.add(S,_),E=t.mul(E,v),v=t.add(U,T),E=t.sub(E,v),N=t.mul(te,A),v=t.mul(K,T),N=t.add(v,N),v=t.sub(U,N),N=t.add(U,N),B=t.mul(v,N),U=t.add(F,F),U=t.add(U,F),T=t.mul(te,T),A=t.mul(K,A),U=t.add(U,T),T=t.sub(F,T),T=t.mul(te,T),A=t.add(A,T),F=t.mul(U,A),B=t.add(B,F),F=t.mul(E,A),v=t.mul(L,v),v=t.sub(v,F),F=t.mul(L,U),N=t.mul(E,N),N=t.add(N,F),new d(v,B,N)}subtract(b){return this.add(b.negate())}is0(){return this.equals(d.ZERO)}wNAF(b){return p.wNAFCached(this,b,d.normalizeZ)}multiplyUnsafe(b){Ce("scalar",b,Tt,e.n);let y=d.ZERO;if(b===Tt)return y;if(b===be)return this;let{endo:w}=e;if(!w)return p.unsafeLadder(this,b);let{k1neg:g,k1:x,k2neg:S,k2:_}=w.splitScalar(b),v=y,B=y,N=this;for(;x>Tt||_>Tt;)x&be&&(v=v.add(N)),_&be&&(B=B.add(N)),N=N.double(),x>>=be,_>>=be;return g&&(v=v.negate()),S&&(B=B.negate()),B=new d(t.mul(B.px,w.beta),B.py,B.pz),v.add(B)}multiply(b){let{endo:y,n:w}=e;Ce("scalar",b,be,w);let g,x;if(y){let{k1neg:S,k1:_,k2neg:v,k2:B}=y.splitScalar(b),{p:N,f:te}=this.wNAF(_),{p:K,f:F}=this.wNAF(B);N=p.constTimeNegate(S,N),K=p.constTimeNegate(v,K),K=new d(t.mul(K.px,y.beta),K.py,K.pz),g=N.add(K),x=te.add(F)}else{let{p:S,f:_}=this.wNAF(b);g=S,x=_}return d.normalizeZ([g,x])[0]}multiplyAndAddUnsafe(b,y,w){let g=d.BASE,x=(_,v)=>v===Tt||v===be||!_.equals(g)?_.multiplyUnsafe(v):_.multiply(v),S=x(this,y).add(x(b,w));return S.is0()?void 0:S}toAffine(b){return f(this,b)}isTorsionFree(){let{h:b,isTorsionFree:y}=e;if(b===be)return!0;if(y)return y(d,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:b,clearCofactor:y}=e;return b===be?this:y?y(d,this):this.multiplyUnsafe(e.h)}toRawBytes(b=!0){return Xe("isCompressed",b),this.assertValidity(),s(d,this,b)}toHex(b=!0){return Xe("isCompressed",b),yt(this.toRawBytes(b))}}d.BASE=new d(e.Gx,e.Gy,t.ONE),d.ZERO=new d(t.ZERO,t.ONE,t.ZERO);let l=e.nBitLength,p=Kn(d,e.endo?Math.ceil(l/2):l);return{CURVE:e,ProjectivePoint:d,normPrivateKeyToScalar:c,weierstrassEquation:o,isWithinCurveOrder:a}}function _p(r){let e=cn(r);return it(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function Gl(r){let e=_p(r),{Fp:t,n}=e,s=t.BYTES+1,i=2*t.BYTES+1;function o(T){return J(T,n)}function a(T){return Fn(T,n)}let{ProjectivePoint:c,normPrivateKeyToScalar:h,weierstrassEquation:f,isWithinCurveOrder:u}=Bp({...e,toBytes(T,L,A){let E=L.toAffine(),I=t.toBytes(E.x),C=wt;return Xe("isCompressed",A),A?C(Uint8Array.from([L.hasEvenY()?2:3]),I):C(Uint8Array.from([4]),I,t.toBytes(E.y))},fromBytes(T){let L=T.length,A=T[0],E=T.subarray(1);if(L===s&&(A===2||A===3)){let I=bt(E);if(!on(I,be,t.ORDER))throw new Error("Point is not on curve");let C=f(I),P;try{P=t.sqrt(C)}catch(j){let $=j instanceof Error?": "+j.message:"";throw new Error("Point is not on curve"+$)}let M=(P&be)===be;return(A&1)===1!==M&&(P=t.neg(P)),{x:I,y:P}}else if(L===i&&A===4){let I=t.fromBytes(E.subarray(0,t.BYTES)),C=t.fromBytes(E.subarray(t.BYTES,2*t.BYTES));return{x:I,y:C}}else throw new Error(`Point of length ${L} was invalid. Expected ${s} compressed bytes or ${i} uncompressed bytes`)}}),d=T=>yt(Ft(T,e.nByteLength));function l(T){let L=n>>be;return T>L}function p(T){return l(T)?o(-T):T}let m=(T,L,A)=>bt(T.slice(L,A));class b{constructor(L,A,E){this.r=L,this.s=A,this.recovery=E,this.assertValidity()}static fromCompact(L){let A=e.nByteLength;return L=ae("compactSignature",L,A*2),new b(m(L,0,A),m(L,A,2*A))}static fromDER(L){let{r:A,s:E}=kt.toSig(ae("DER",L));return new b(A,E)}assertValidity(){Ce("r",this.r,be,n),Ce("s",this.s,be,n)}addRecoveryBit(L){return new b(this.r,this.s,L)}recoverPublicKey(L){let{r:A,s:E,recovery:I}=this,C=_(ae("msgHash",L));if(I==null||![0,1,2,3].includes(I))throw new Error("recovery id invalid");let P=I===2||I===3?A+e.n:A;if(P>=t.ORDER)throw new Error("recovery id 2 or 3 invalid");let M=I&1?"03":"02",z=c.fromHex(M+d(P)),j=a(P),$=o(-C*j),X=o(E*j),ee=c.BASE.multiplyAndAddUnsafe(z,$,X);if(!ee)throw new Error("point at infinify");return ee.assertValidity(),ee}hasHighS(){return l(this.s)}normalizeS(){return this.hasHighS()?new b(this.r,o(-this.s),this.recovery):this}toDERRawBytes(){return nr(this.toDERHex())}toDERHex(){return kt.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return nr(this.toCompactHex())}toCompactHex(){return d(this.r)+d(this.s)}}let y={isValidPrivateKey(T){try{return h(T),!0}catch{return!1}},normPrivateKeyToScalar:h,randomPrivateKey:()=>{let T=ao(e.n);return Nc(e.randomBytes(T),e.n)},precompute(T=8,L=c.BASE){return L._setWindowSize(T),L.multiply(BigInt(3)),L}};function w(T,L=!0){return c.fromPrivateKey(T).toRawBytes(L)}function g(T){let L=Vt(T),A=typeof T=="string",E=(L||A)&&T.length;return L?E===s||E===i:A?E===2*s||E===2*i:T instanceof c}function x(T,L,A=!0){if(g(T))throw new Error("first arg must be private key");if(!g(L))throw new Error("second arg must be public key");return c.fromHex(L).multiply(h(T)).toRawBytes(A)}let S=e.bits2int||function(T){let L=bt(T),A=T.length*8-e.nBitLength;return A>0?L>>BigInt(A):L},_=e.bits2int_modN||function(T){return o(S(T))},v=an(e.nBitLength);function B(T){return Ce(`num < 2^${e.nBitLength}`,T,Tt,v),Ft(T,e.nByteLength)}function N(T,L,A=te){if(["recovered","canonical"].some(pe=>pe in A))throw new Error("sign() legacy options not supported");let{hash:E,randomBytes:I}=e,{lowS:C,prehash:P,extraEntropy:M}=A;C==null&&(C=!0),T=ae("msgHash",T),zl(A),P&&(T=ae("prehashed msgHash",E(T)));let z=_(T),j=h(L),$=[B(j),B(z)];if(M!=null&&M!==!1){let pe=M===!0?I(t.BYTES):M;$.push(ae("extraEntropy",pe))}let X=wt(...$),ee=z;function de(pe){let we=S(pe);if(!u(we))return;let Ie=a(we),ue=c.BASE.multiply(we).toAffine(),Ne=o(ue.x);if(Ne===Tt)return;let ht=o(Ie*o(ee+Ne*j));if(ht===Tt)return;let Xr=(ue.x===Ne?0:2)|Number(ue.y&be),Jr=ht;return C&&l(ht)&&(Jr=p(ht),Xr^=1),new b(Ne,Jr,Xr)}return{seed:X,k2sig:de}}let te={lowS:e.lowS,prehash:!1},K={lowS:e.lowS,prehash:!1};function F(T,L,A=te){let{seed:E,k2sig:I}=N(T,L,A),C=e;return no(C.hash.outputLen,C.nByteLength,C.hmac)(E,I)}c.BASE._setWindowSize(8);function U(T,L,A,E=K){let I=T;if(L=ae("msgHash",L),A=ae("publicKey",A),"strict"in E)throw new Error("options.strict was renamed to lowS");zl(E);let{lowS:C,prehash:P}=E,M,z;try{if(typeof I=="string"||Vt(I))try{M=b.fromDER(I)}catch(ue){if(!(ue instanceof kt.Err))throw ue;M=b.fromCompact(I)}else if(typeof I=="object"&&typeof I.r=="bigint"&&typeof I.s=="bigint"){let{r:ue,s:Ne}=I;M=new b(ue,Ne)}else throw new Error("PARSE");z=c.fromHex(A)}catch(ue){if(ue.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(C&&M.hasHighS())return!1;P&&(L=e.hash(L));let{r:j,s:$}=M,X=_(L),ee=a($),de=o(X*ee),pe=o(j*ee),we=c.BASE.multiplyAndAddUnsafe(z,de,pe)?.toAffine();return we?o(we.x)===j:!1}return{CURVE:e,getPublicKey:w,getSharedSecret:x,sign:F,verify:U,ProjectivePoint:c,Signature:b,utils:y}}function Ip(r){return{hash:r,hmac:(e,...t)=>dn(r,e,Yi(...t)),randomBytes:Rr}}function jl(r,e){let t=n=>Gl({...r,...Ip(n)});return Object.freeze({...t(e),create:t})}var Zl=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Wl=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),kp=BigInt(1),qo=BigInt(2),Yl=(r,e)=>(r+e/qo)/e;function Tp(r){let e=Zl,t=BigInt(3),n=BigInt(6),s=BigInt(11),i=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),h=r*r*r%e,f=h*h*r%e,u=ne(f,t,e)*f%e,d=ne(u,t,e)*f%e,l=ne(d,qo,e)*h%e,p=ne(l,s,e)*l%e,m=ne(p,i,e)*p%e,b=ne(m,a,e)*m%e,y=ne(b,c,e)*b%e,w=ne(y,a,e)*m%e,g=ne(w,t,e)*f%e,x=ne(g,o,e)*p%e,S=ne(x,n,e)*h%e,_=ne(S,qo,e);if(!zo.eql(zo.sqr(_),r))throw new Error("Cannot find square root");return _}var zo=Kt(Zl,void 0,void 0,{sqrt:Tp}),rt=jl({a:BigInt(0),b:BigInt(7),Fp:zo,n:Wl,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:r=>{let e=Wl,t=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-kp*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=t,o=BigInt("0x100000000000000000000000000000000"),a=Yl(i*r,e),c=Yl(-n*r,e),h=J(r-a*t-c*s,e),f=J(-a*n-c*i,e),u=h>o,d=f>o;if(u&&(h=e-h),d&&(f=e-f),h>o||f>o)throw new Error("splitScalar: Endomorphism failed, k="+r);return{k1neg:u,k1:h,k2neg:d,k2:f}}}},ql),Mb=BigInt(0);var Vb=rt.ProjectivePoint;function Xl(){return rt.utils.randomPrivateKey()}function Jl(r,e){let t=me.digest(e instanceof Uint8Array?e:e.subarray());if(Ge(t))return t.then(({digest:n})=>rt.sign(n,r).toDERRawBytes()).catch(n=>{throw new D(String(n),"ERR_INVALID_INPUT")});try{return rt.sign(t.digest,r).toDERRawBytes()}catch(n){throw new D(String(n),"ERR_INVALID_INPUT")}}function Ql(r,e,t){let n=me.digest(t instanceof Uint8Array?t:t.subarray());if(Ge(n))return n.then(({digest:s})=>rt.verify(e,s,r)).catch(s=>{throw new D(String(s),"ERR_INVALID_INPUT")});try{return rt.verify(e,n.digest,r)}catch(s){throw new D(String(s),"ERR_INVALID_INPUT")}}function eu(r){return rt.ProjectivePoint.fromHex(r).toRawBytes(!0)}function tu(r){try{rt.getPublicKey(r,!0)}catch(e){throw new D(String(e),"ERR_INVALID_PRIVATE_KEY")}}function $o(r){try{rt.ProjectivePoint.fromHex(r)}catch(e){throw new D(String(e),"ERR_INVALID_PUBLIC_KEY")}}function ru(r){try{return rt.getPublicKey(r,!0)}catch(e){throw new D(String(e),"ERR_INVALID_PRIVATE_KEY")}}var Bn=class{_key;constructor(e){$o(e),this._key=e}verify(e,t){return Ql(this._key,t,e)}marshal(){return eu(this._key)}get bytes(){return ot.encode({Type:se.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return oe(this.bytes,e.bytes)}async hash(){let e=me.digest(this.bytes),t;return Ge(e)?{bytes:t}=await e:t=e.bytes,t}},_n=class{_key;_publicKey;constructor(e,t){this._key=e,this._publicKey=t??ru(e),tu(this._key),$o(this._publicKey)}sign(e){return Jl(this._key,e)}get public(){return new Bn(this._publicKey)}marshal(){return this._key}get bytes(){return at.encode({Type:se.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return oe(this.bytes,e.bytes)}hash(){let e=me.digest(this.bytes);return Ge(e)?e.then(({bytes:t})=>t):e.bytes}async id(){let e=await this.public.hash();return W(e,"base58btc")}async export(e,t="libp2p-key"){if(t==="libp2p-key")return Dr(this.bytes,e);throw new D(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Np(r){return new _n(r)}function Lp(r){return new Bn(r)}async function Cp(){let r=Xl();return new _n(r)}var hr={rsa:Fo,ed25519:No,secp256k1:Go};function nu(r){let e=Object.keys(hr).join(" / ");return new D(`invalid or unsupported key type ${r}. Must be ${e}`,"ERR_UNSUPPORTED_KEY_TYPE")}function su(r){let e=ot.decode(r),t=e.Data??new Uint8Array;switch(e.Type){case se.RSA:return hr.rsa.unmarshalRsaPublicKey(t);case se.Ed25519:return hr.ed25519.unmarshalEd25519PublicKey(t);case se.Secp256k1:return hr.secp256k1.unmarshalSecp256k1PublicKey(t);default:throw nu(e.Type??"unknown")}}async function iu(r){let e=at.decode(r),t=e.Data??new Uint8Array;switch(e.Type){case se.RSA:return hr.rsa.unmarshalRsaPrivateKey(t);case se.Ed25519:return hr.ed25519.unmarshalEd25519PrivateKey(t);case se.Secp256k1:return hr.secp256k1.unmarshalSecp256k1PrivateKey(t);default:throw nu(e.Type??"RSA")}}var au=Symbol.for("@achingbrain/uint8arraylist");function ou(r,e){if(e==null||e<0)throw new RangeError("index is out of bounds");let t=0;for(let n of r){let s=t+n.byteLength;if(e<s)return{buf:n,index:e-t};t=s}throw new RangeError("index is out of bounds")}function Fs(r){return!!r?.[au]}var Fe=class r{bufs;length;[au]=!0;constructor(...e){this.bufs=[],this.length=0,e.length>0&&this.appendAll(e)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...e){this.appendAll(e)}appendAll(e){let t=0;for(let n of e)if(n instanceof Uint8Array)t+=n.byteLength,this.bufs.push(n);else if(Fs(n))t+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=t}prepend(...e){this.prependAll(e)}prependAll(e){let t=0;for(let n of e.reverse())if(n instanceof Uint8Array)t+=n.byteLength,this.bufs.unshift(n);else if(Fs(n))t+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=t}get(e){let t=ou(this.bufs,e);return t.buf[t.index]}set(e,t){let n=ou(this.bufs,e);n.buf[n.index]=t}write(e,t=0){if(e instanceof Uint8Array)for(let n=0;n<e.length;n++)this.set(t+n,e[n]);else if(Fs(e))for(let n=0;n<e.length;n++)this.set(t+n,e.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(e){if(e=Math.trunc(e),!(Number.isNaN(e)||e<=0)){if(e===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(e>=this.bufs[0].byteLength)e-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(e),this.length-=e;break}}}slice(e,t){let{bufs:n,length:s}=this._subList(e,t);return ke(n,s)}subarray(e,t){let{bufs:n,length:s}=this._subList(e,t);return n.length===1?n[0]:ke(n,s)}sublist(e,t){let{bufs:n,length:s}=this._subList(e,t),i=new r;return i.length=s,i.bufs=[...n],i}_subList(e,t){if(e=e??0,t=t??this.length,e<0&&(e=this.length+e),t<0&&(t=this.length+t),e<0||t>this.length)throw new RangeError("index is out of bounds");if(e===t)return{bufs:[],length:0};if(e===0&&t===this.length)return{bufs:this.bufs,length:this.length};let n=[],s=0;for(let i=0;i<this.bufs.length;i++){let o=this.bufs[i],a=s,c=a+o.byteLength;if(s=c,e>=c)continue;let h=e>=a&&e<c,f=t>a&&t<=c;if(h&&f){if(e===a&&t===c){n.push(o);break}let u=e-a;n.push(o.subarray(u,u+(t-e)));break}if(h){if(e===0){n.push(o);continue}n.push(o.subarray(e-a));continue}if(f){if(t===c){n.push(o);break}n.push(o.subarray(0,t-a));break}n.push(o)}return{bufs:n,length:t-e}}indexOf(e,t=0){if(!Fs(e)&&!(e instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=e instanceof Uint8Array?e:e.subarray();if(t=Number(t??0),isNaN(t)&&(t=0),t<0&&(t=this.length+t),t<0&&(t=0),e.length===0)return t>this.length?this.length:t;let s=n.byteLength;if(s===0)throw new TypeError("search must be at least 1 byte long");let i=256,o=new Int32Array(i);for(let u=0;u<i;u++)o[u]=-1;for(let u=0;u<s;u++)o[n[u]]=u;let a=o,c=this.byteLength-n.byteLength,h=n.byteLength-1,f;for(let u=t;u<=c;u+=f){f=0;for(let d=h;d>=0;d--){let l=this.get(u+d);if(n[d]!==l){f=Math.max(1,d-a[l]);break}}if(f===0)return u}return-1}getInt8(e){let t=this.subarray(e,e+1);return new DataView(t.buffer,t.byteOffset,t.byteLength).getInt8(0)}setInt8(e,t){let n=Le(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,t),this.write(n,e)}getInt16(e,t){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,t)}setInt16(e,t,n){let s=xe(2);new DataView(s.buffer,s.byteOffset,s.byteLength).setInt16(0,t,n),this.write(s,e)}getInt32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,t)}setInt32(e,t,n){let s=xe(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setInt32(0,t,n),this.write(s,e)}getBigInt64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,t)}setBigInt64(e,t,n){let s=xe(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setBigInt64(0,t,n),this.write(s,e)}getUint8(e){let t=this.subarray(e,e+1);return new DataView(t.buffer,t.byteOffset,t.byteLength).getUint8(0)}setUint8(e,t){let n=Le(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,t),this.write(n,e)}getUint16(e,t){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,t)}setUint16(e,t,n){let s=xe(2);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint16(0,t,n),this.write(s,e)}getUint32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,t)}setUint32(e,t,n){let s=xe(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint32(0,t,n),this.write(s,e)}getBigUint64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,t)}setBigUint64(e,t,n){let s=xe(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setBigUint64(0,t,n),this.write(s,e)}getFloat32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,t)}setFloat32(e,t,n){let s=xe(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setFloat32(0,t,n),this.write(s,e)}getFloat64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,t)}setFloat64(e,t,n){let s=xe(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setFloat64(0,t,n),this.write(s,e)}equals(e){if(e==null||!(e instanceof r)||e.bufs.length!==this.bufs.length)return!1;for(let t=0;t<this.bufs.length;t++)if(!oe(this.bufs[t],e.bufs[t]))return!1;return!0}static fromUint8Arrays(e,t){let n=new r;return n.bufs=e,t==null&&(t=e.reduce((s,i)=>s+i.byteLength,0)),n.length=t,n}};var cu={ERR_SIGNATURE_NOT_VALID:"ERR_SIGNATURE_NOT_VALID"};var In;(function(r){let e;r.codec=()=>(e==null&&(e=He((t,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),t.publicKey!=null&&t.publicKey.byteLength>0&&(n.uint32(10),n.bytes(t.publicKey)),t.payloadType!=null&&t.payloadType.byteLength>0&&(n.uint32(18),n.bytes(t.payloadType)),t.payload!=null&&t.payload.byteLength>0&&(n.uint32(26),n.bytes(t.payload)),t.signature!=null&&t.signature.byteLength>0&&(n.uint32(42),n.bytes(t.signature)),s.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let s={publicKey:new Uint8Array(0),payloadType:new Uint8Array(0),payload:new Uint8Array(0),signature:new Uint8Array(0)},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let o=t.uint32();switch(o>>>3){case 1:s.publicKey=t.bytes();break;case 2:s.payloadType=t.bytes();break;case 3:s.payload=t.bytes();break;case 5:s.signature=t.bytes();break;default:t.skipType(o&7);break}}return s})),e),r.encode=t=>Ve(t,r.codec()),r.decode=t=>Me(t,r.codec())})(In||(In={}));var kn=class r{static createFromProtobuf=async e=>{let t=In.decode(e),n=await yc(t.publicKey);return new r({peerId:n,payloadType:t.payloadType,payload:t.payload,signature:t.signature})};static seal=async(e,t)=>{if(t.privateKey==null)throw new Error("Missing private key");let n=e.domain,s=e.codec,i=e.marshal(),o=lu(n,s,i),c=await(await iu(t.privateKey)).sign(o.subarray());return new r({peerId:t,payloadType:s,payload:i,signature:c})};static openAndCertify=async(e,t)=>{let n=await r.createFromProtobuf(e);if(!await n.validate(t))throw new D("envelope signature is not valid for the given domain",cu.ERR_SIGNATURE_NOT_VALID);return n};peerId;payloadType;payload;signature;marshaled;constructor(e){let{peerId:t,payloadType:n,payload:s,signature:i}=e;this.peerId=t,this.payloadType=n,this.payload=s,this.signature=i}marshal(){if(this.peerId.publicKey==null)throw new Error("Missing public key");return this.marshaled==null&&(this.marshaled=In.encode({publicKey:this.peerId.publicKey,payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(e){return oe(this.marshal(),e.marshal())}async validate(e){let t=lu(e,this.payloadType,this.payload);if(this.peerId.publicKey==null)throw new Error("Missing public key");return su(this.peerId.publicKey).verify(t.subarray(),this.signature)}},lu=(r,e,t)=>{let n=V(r),s=je(n.byteLength),i=je(e.length),o=je(t.length);return new Fe(s,n,i,e,o,t)};var Ks=class{index=0;input="";new(e){return this.index=0,this.input=e,this}readAtomically(e){let t=this.index,n=e();return n===void 0&&(this.index=t),n}parseWith(e){let t=e();if(this.index===this.input.length)return t}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(e){return this.readAtomically(()=>{let t=this.readChar();if(t===e)return t})}readSeparator(e,t,n){return this.readAtomically(()=>{if(!(t>0&&this.readGivenChar(e)===void 0))return n()})}readNumber(e,t,n,s){return this.readAtomically(()=>{let i=0,o=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",h=2**(8*s)-1;for(;;){let f=this.readAtomically(()=>{let u=this.readChar();if(u===void 0)return;let d=Number.parseInt(u,e);if(!Number.isNaN(d))return d});if(f===void 0)break;if(i*=e,i+=f,i>h||(o+=1,t!==void 0&&o>t))return}if(o!==0)return!n&&c&&o>1?void 0:i})}readIPv4Addr(){return this.readAtomically(()=>{let e=new Uint8Array(4);for(let t=0;t<e.length;t++){let n=this.readSeparator(".",t,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;e[t]=n}return e})}readIPv6Addr(){let e=t=>{for(let n=0;n<t.length/2;n++){let s=n*2;if(n<t.length-3){let o=this.readSeparator(":",n,()=>this.readIPv4Addr());if(o!==void 0)return t[s]=o[0],t[s+1]=o[1],t[s+2]=o[2],t[s+3]=o[3],[s+4,!0]}let i=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(i===void 0)return[s,!1];t[s]=i>>8,t[s+1]=i&255}return[t.length,!1]};return this.readAtomically(()=>{let t=new Uint8Array(16),[n,s]=e(t);if(n===16)return t;if(s||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let i=new Uint8Array(14),o=16-(n+2),[a]=e(i.subarray(0,o));return t.set(i.subarray(0,a),16-a),t})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var uu=45,Up=15,qr=new Ks;function jo(r){if(!(r.length>Up))return qr.new(r).parseWith(()=>qr.readIPv4Addr())}function Wo(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>uu))return qr.new(r).parseWith(()=>qr.readIPv6Addr())}function qs(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>uu))return qr.new(r).parseWith(()=>qr.readIPAddr())}var Sw=parseInt("0xFFFF",16),Bw=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function du(r){return!!jo(r)}function pu(r){return!!Wo(r)}function zs(r){return!!qs(r)}var gu=du,Vp=pu,Yo=function(r){let e=0;if(r=r.toString().trim(),gu(r)){let t=new Uint8Array(e+4);return r.split(/\./g).forEach(n=>{t[e++]=parseInt(n,10)&255}),t}if(Vp(r)){let t=r.split(":",8),n;for(n=0;n<t.length;n++){let i=gu(t[n]),o;i&&(o=Yo(t[n]),t[n]=W(o.slice(0,2),"base16")),o!=null&&++n<8&&t.splice(n,0,W(o.slice(2,4),"base16"))}if(t[0]==="")for(;t.length<8;)t.unshift("0");else if(t[t.length-1]==="")for(;t.length<8;)t.push("0");else if(t.length<8){for(n=0;n<t.length&&t[n]!=="";n++);let i=[n,1];for(n=9-t.length;n>0;n--)i.push("0");t.splice.apply(t,i)}let s=new Uint8Array(e+16);for(n=0;n<t.length;n++){let i=parseInt(t[n],16);s[e++]=i>>8&255,s[e++]=i&255}return s}throw new Error("invalid ip address")},mu=function(r,e=0,t){e=~~e,t=t??r.length-e;let n=new DataView(r.buffer);if(t===4){let s=[];for(let i=0;i<t;i++)s.push(r[e+i]);return s.join(".")}if(t===16){let s=[];for(let i=0;i<t;i+=2)s.push(n.getUint16(e+i).toString(16));return s.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var zr={},Zo={},Fp=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc-direct"],[281,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[449,-1,"sni"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[481,-1,"http-path"],[777,-1,"memory"]];Fp.forEach(r=>{let e=Kp(...r);Zo[e.code]=e,zr[e.name]=e});function Kp(r,e,t,n,s){return{code:r,size:e,name:t,resolvable:!!n,path:!!s}}function Q(r){if(typeof r=="number"){if(Zo[r]!=null)return Zo[r];throw new Error(`no protocol with code: ${r}`)}else if(typeof r=="string"){if(zr[r]!=null)return zr[r];throw new Error(`no protocol with name: ${r}`)}throw new Error(`invalid protocol id type: ${typeof r}`)}var c1=Q("ip4"),l1=Q("ip6"),u1=Q("ipcidr");function ea(r,e){switch(Q(r).code){case 4:case 41:return zp(e);case 42:return Qo(e);case 6:case 273:case 33:case 132:return wu(e).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Qo(e);case 421:return Wp(e);case 444:return bu(e);case 445:return bu(e);case 466:return jp(e);case 481:return globalThis.encodeURIComponent(Qo(e));default:return W(e,"base16")}}function ta(r,e){switch(Q(r).code){case 4:return yu(e);case 41:return yu(e);case 42:return Jo(e);case 6:case 273:case 33:case 132:return ra(parseInt(e,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Jo(e);case 421:return $p(e);case 444:return Yp(e);case 445:return Zp(e);case 466:return Gp(e);case 481:return Jo(globalThis.decodeURIComponent(e));default:return V(e,"base16")}}var Xo=Object.values(Ut).map(r=>r.decoder),qp=function(){let r=Xo[0].or(Xo[1]);return Xo.slice(2).forEach(e=>r=r.or(e)),r}();function yu(r){if(!zs(r))throw new Error("invalid ip address");return Yo(r)}function zp(r){let e=mu(r,0,r.length);if(e==null)throw new Error("ipBuff is required");if(!zs(e))throw new Error("invalid ip address");return e}function ra(r){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,r),new Uint8Array(e)}function wu(r){return new DataView(r.buffer).getUint16(r.byteOffset)}function Jo(r){let e=V(r),t=Uint8Array.from(je(e.length));return ke([t,e],t.length+e.length)}function Qo(r){let e=vt(r);if(r=r.slice(Se(e)),r.length!==e)throw new Error("inconsistent lengths");return W(r)}function $p(r){let e;r[0]==="Q"||r[0]==="1"?e=Qt(fe.decode(`z${r}`)).bytes:e=Oe.parse(r).multihash.bytes;let t=Uint8Array.from(je(e.length));return ke([t,e],t.length+e.length)}function Gp(r){let e=qp.decode(r),t=Uint8Array.from(je(e.length));return ke([t,e],t.length+e.length)}function jp(r){let e=vt(r),t=r.slice(Se(e));if(t.length!==e)throw new Error("inconsistent lengths");return"u"+W(t,"base64url")}function Wp(r){let e=vt(r),t=r.slice(Se(e));if(t.length!==e)throw new Error("inconsistent lengths");return W(t,"base58btc")}function Yp(r){let e=r.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==16)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion address.`);let t=pt.decode("b"+e[0]),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let s=ra(n);return ke([t,s],t.length+s.length)}function Zp(r){let e=r.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==56)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion3 address.`);let t=pt.decode(`b${e[0]}`),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let s=ra(n);return ke([t,s],t.length+s.length)}function bu(r){let e=r.slice(0,r.length-2),t=r.slice(r.length-2),n=W(e,"base32"),s=wu(t);return`${n}:${s}`}function xu(r){r=na(r);let e=[],t=[],n=null,s=r.split("/").slice(1);if(s.length===1&&s[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let i=0;i<s.length;i++){let o=s[i],a=Q(o);if(a.size===0){e.push([a.code]),t.push([a.code]);continue}if(i++,i>=s.length)throw Eu("invalid address: "+r);if(a.path===!0){n=na(s.slice(i).join("/")),e.push([a.code,ta(a.code,n)]),t.push([a.code,n]);break}let c=ta(a.code,s[i]);e.push([a.code,c]),t.push([a.code,ea(a.code,c)])}return{string:vu(t),bytes:ia(e),tuples:e,stringTuples:t,path:n}}function sa(r){let e=[],t=[],n=null,s=0;for(;s<r.length;){let i=vt(r,s),o=Se(i),a=Q(i),c=Xp(a,r.slice(s+o));if(c===0){e.push([i]),t.push([i]),s+=o;continue}let h=r.slice(s+o,s+o+c);if(s+=c+o,s>r.length)throw Eu("Invalid address Uint8Array: "+W(r,"base16"));e.push([i,h]);let f=ea(i,h);if(t.push([i,f]),a.path===!0){n=f;break}}return{bytes:Uint8Array.from(r),string:vu(t),tuples:e,stringTuples:t,path:n}}function vu(r){let e=[];return r.map(t=>{let n=Q(t[0]);return e.push(n.name),t.length>1&&t[1]!=null&&e.push(t[1]),null}),na(e.join("/"))}function ia(r){return ke(r.map(e=>{let t=Q(e[0]),n=Uint8Array.from(je(t.code));return e.length>1&&e[1]!=null&&(n=ke([n,e[1]])),n}))}function Xp(r,e){if(r.size>0)return r.size/8;if(r.size===0)return 0;{let t=vt(e instanceof Uint8Array?e:Uint8Array.from(e));return t+Se(t)}}function na(r){return"/"+r.trim().split("/").filter(e=>e).join("/")}function Eu(r){return new Error("Error parsing address: "+r)}var Jp=Symbol.for("nodejs.util.inspect.custom"),oa=Symbol.for("@multiformats/js-multiaddr/multiaddr"),Qp=[Q("dns").code,Q("dns4").code,Q("dns6").code,Q("dnsaddr").code],$s=class r{bytes;#e;#t;#r;#n;[oa]=!0;constructor(e){e==null&&(e="");let t;if(e instanceof Uint8Array)t=sa(e);else if(typeof e=="string"){if(e.length>0&&e.charAt(0)!=="/")throw new Error(`multiaddr "${e}" must start with a "/"`);t=xu(e)}else if(Su(e))t=sa(e.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=t.bytes,this.#e=t.string,this.#t=t.tuples,this.#r=t.stringTuples,this.#n=t.path}toString(){return this.#e}toJSON(){return this.toString()}toOptions(){let e,t,n,s,i="",o=Q("tcp"),a=Q("udp"),c=Q("ip4"),h=Q("ip6"),f=Q("dns6"),u=Q("ip6zone");for(let[l,p]of this.stringTuples())l===u.code&&(i=`%${p??""}`),Qp.includes(l)&&(t=o.name,s=443,n=`${p??""}${i}`,e=l===f.code?6:4),(l===o.code||l===a.code)&&(t=Q(l).name,s=parseInt(p??"")),(l===c.code||l===h.code)&&(t=Q(l).name,n=`${p??""}${i}`,e=l===h.code?6:4);if(e==null||t==null||n==null||s==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:e,host:n,transport:t,port:s}}protos(){return this.#t.map(([e])=>Object.assign({},Q(e)))}protoCodes(){return this.#t.map(([e])=>e)}protoNames(){return this.#t.map(([e])=>Q(e).name)}tuples(){return this.#t}stringTuples(){return this.#r}encapsulate(e){return e=new r(e),new r(this.toString()+e.toString())}decapsulate(e){let t=e.toString(),n=this.toString(),s=n.lastIndexOf(t);if(s<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${e.toString()}`);return new r(n.slice(0,s))}decapsulateCode(e){let t=this.tuples();for(let n=t.length-1;n>=0;n--)if(t[n][0]===e)return new r(ia(t.slice(0,n)));return this}getPeerId(){try{let e=[];this.stringTuples().forEach(([n,s])=>{n===zr.p2p.code&&e.push([n,s]),n===zr["p2p-circuit"].code&&(e=[])});let t=e.pop();if(t?.[1]!=null){let n=t[1];return n[0]==="Q"||n[0]==="1"?W(fe.decode(`z${n}`),"base58btc"):W(Oe.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(e){return oe(this.bytes,e.bytes)}async resolve(e){let t=this.protos().find(i=>i.resolvable);if(t==null)return[this];let n=Au.get(t.name);if(n==null)throw new D(`no available resolver for ${t.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,e)).map(i=>Ee(i))}nodeAddress(){let e=this.toOptions();if(e.transport!=="tcp"&&e.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${e.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:e.family,address:e.host,port:e.port}}isThinWaistAddress(e){let t=(e??this).protos();return!(t.length!==2||t[0].code!==4&&t[0].code!==41||t[1].code!==6&&t[1].code!==273)}[Jp](){return`Multiaddr(${this.#e})`}};var Au=new Map;function Su(r){return!!r?.[oa]}function Ee(r){return new $s(r)}function Ke(){let r={};return r.promise=new Promise((e,t)=>{r.resolve=e,r.reject=t}),r}var Gs=class extends Error{type;code;constructor(e,t,n){super(e??"The operation was aborted"),this.type="aborted",this.name=n??"AbortError",this.code=t??"ABORT_ERR"}};async function $r(r,e,t){if(e==null)return r;if(e.aborted)return Promise.reject(new Gs(t?.errorMessage,t?.errorCode,t?.errorName));let n,s=new Gs(t?.errorMessage,t?.errorCode,t?.errorName);try{return await Promise.race([r,new Promise((i,o)=>{n=()=>{o(s)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var aa=class{readNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.readNext=Ke(),this.haveNext=Ke()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("HaveNext promise resolved but nextResult was undefined");let e=this.nextResult;return this.nextResult=void 0,this.readNext.resolve(),this.readNext=Ke(),e}async throw(e){return this.ended=!0,e!=null&&(this.haveNext.promise.catch(()=>{}),this.haveNext.reject(e)),{done:!0,value:void 0}}async return(){let e={done:!0,value:void 0};return await this._push(void 0),e}async push(e,t){await this._push(e,t)}async end(e,t){e!=null?await this.throw(e):await this._push(void 0,t)}async _push(e,t){if(e!=null&&this.ended)throw new Error("Cannot push value onto an ended pushable");for(;this.nextResult!=null;)await this.readNext.promise;e!=null?this.nextResult={done:!1,value:e}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=Ke(),await $r(this.readNext.promise,t?.signal,t)}};function Bu(){return new aa}var js=class extends Error{name="UnexpectedEOFError";code="ERR_UNEXPECTED_EOF"};var ca=class extends Error{code;constructor(e,t){super(e),this.code=t}},la=class extends ca{type;constructor(e){super(e,"ABORT_ERR"),this.type="aborted",this.name="AbortError"}};function _u(r,e){let t=Bu();r.sink(t).catch(async o=>{await t.end(o)}),r.sink=async o=>{for await(let a of o)await t.push(a);await t.end()};let n=r.source;r.source[Symbol.iterator]!=null?n=r.source[Symbol.iterator]():r.source[Symbol.asyncIterator]!=null&&(n=r.source[Symbol.asyncIterator]());let s=new Fe;return{read:async(o,a)=>{a?.signal?.throwIfAborted();let c,h=new Promise((f,u)=>{c=()=>{u(new la("Read aborted"))},a?.signal?.addEventListener("abort",c)});try{if(o==null){let{done:u,value:d}=await Promise.race([n.next(),h]);return u===!0?new Fe:d}for(;s.byteLength<o;){let{value:u,done:d}=await Promise.race([n.next(),h]);if(d===!0)throw new js("unexpected end of input");s.append(u)}let f=s.sublist(0,o);return s.consume(o),f}finally{c!=null&&a?.signal?.removeEventListener("abort",c)}},write:async(o,a)=>{a?.signal?.throwIfAborted(),o instanceof Uint8Array?await t.push(o,a):await t.push(o.subarray(),a)},unwrap:()=>{if(s.byteLength>0){let o=r.source;r.source=async function*(){e?.yieldBytes===!1?yield s:yield*s,yield*o}()}return r}}}var Ws=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},Ys=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},Zs=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function Iu(r,e={}){let t=_u(r,e);e.maxDataLength!=null&&e.maxLengthLength==null&&(e.maxLengthLength=Se(e.maxDataLength));let n=e?.lengthDecoder??vt,s=e?.lengthEncoder??je;return{read:async o=>{let a=-1,c=new Fe;for(;;){c.append(await t.read(1,o));try{a=n(c)}catch(h){if(h instanceof RangeError)continue;throw h}if(a<0)throw new Ws("Invalid message length");if(e?.maxLengthLength!=null&&c.byteLength>e.maxLengthLength)throw new Zs("message length length too long");if(a>-1)break}if(e?.maxDataLength!=null&&a>e.maxDataLength)throw new Ys("message length too long");return t.read(a,o)},write:async(o,a)=>{await t.write(new Fe(s(o.byteLength),o),a)},writeV:async(o,a)=>{let c=new Fe(...o.flatMap(h=>[s(h.byteLength),h]));await t.write(c,a)},unwrap:()=>t.unwrap()}}function Zt(r,e){let t=Iu(r,e),n={read:async(s,i)=>{let o=await t.read(i);return s.decode(o)},write:async(s,i,o)=>{await t.write(i.encode(s),o)},writeV:async(s,i,o)=>{await t.writeV(s.map(a=>i.encode(a)),o)},pb:s=>({read:async i=>n.read(s,i),write:async(i,o)=>n.write(i,s,o),writeV:async(i,o)=>n.writeV(i,s,o),unwrap:()=>n}),unwrap:()=>t.unwrap()};return n}var ku="circuit-relay-source",Tu="circuit-relay-relay";var Ru=BigInt(131072),Ye="/libp2p/circuit/relay/0.2.0/hop",dr="/libp2p/circuit/relay/0.2.0/stop",Nu=30*1e3,ex=30*1e3,Tn=300;var ua="ERR_RELAYED_DIAL",Lu="ERR_HOP_REQUEST_FAILED",Xs="ERR_TRANSFER_LIMIT_EXCEEDED",Cu=4096,Uu=.001;var Z;(function(r){let e;(function(s){s.RESERVE="RESERVE",s.CONNECT="CONNECT",s.STATUS="STATUS"})(e=r.Type||(r.Type={}));let t;(function(s){s[s.RESERVE=0]="RESERVE",s[s.CONNECT=1]="CONNECT",s[s.STATUS=2]="STATUS"})(t||(t={})),function(s){s.codec=()=>lr(t)}(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=He((s,i,o={})=>{o.lengthDelimited!==!1&&i.fork(),s.type!=null&&(i.uint32(8),r.Type.codec().encode(s.type,i)),s.peer!=null&&(i.uint32(18),Gr.codec().encode(s.peer,i)),s.reservation!=null&&(i.uint32(26),Js.codec().encode(s.reservation,i)),s.limit!=null&&(i.uint32(34),jr.codec().encode(s.limit,i)),s.status!=null&&(i.uint32(40),q.codec().encode(s.status,i)),o.lengthDelimited!==!1&&i.ldelim()},(s,i,o={})=>{let a={},c=i==null?s.len:s.pos+i;for(;s.pos<c;){let h=s.uint32();switch(h>>>3){case 1:{a.type=r.Type.codec().decode(s);break}case 2:{a.peer=Gr.codec().decode(s,s.uint32(),{limits:o.limits?.peer});break}case 3:{a.reservation=Js.codec().decode(s,s.uint32(),{limits:o.limits?.reservation});break}case 4:{a.limit=jr.codec().decode(s,s.uint32(),{limits:o.limits?.limit});break}case 5:{a.status=q.codec().decode(s);break}default:{s.skipType(h&7);break}}}return a})),n),r.encode=s=>Ve(s,r.codec()),r.decode=(s,i)=>Me(s,r.codec(),i)})(Z||(Z={}));var qe;(function(r){let e;(function(s){s.CONNECT="CONNECT",s.STATUS="STATUS"})(e=r.Type||(r.Type={}));let t;(function(s){s[s.CONNECT=0]="CONNECT",s[s.STATUS=1]="STATUS"})(t||(t={})),function(s){s.codec=()=>lr(t)}(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=He((s,i,o={})=>{o.lengthDelimited!==!1&&i.fork(),s.type!=null&&(i.uint32(8),r.Type.codec().encode(s.type,i)),s.peer!=null&&(i.uint32(18),Gr.codec().encode(s.peer,i)),s.limit!=null&&(i.uint32(26),jr.codec().encode(s.limit,i)),s.status!=null&&(i.uint32(32),q.codec().encode(s.status,i)),o.lengthDelimited!==!1&&i.ldelim()},(s,i,o={})=>{let a={},c=i==null?s.len:s.pos+i;for(;s.pos<c;){let h=s.uint32();switch(h>>>3){case 1:{a.type=r.Type.codec().decode(s);break}case 2:{a.peer=Gr.codec().decode(s,s.uint32(),{limits:o.limits?.peer});break}case 3:{a.limit=jr.codec().decode(s,s.uint32(),{limits:o.limits?.limit});break}case 4:{a.status=q.codec().decode(s);break}default:{s.skipType(h&7);break}}}return a})),n),r.encode=s=>Ve(s,r.codec()),r.decode=(s,i)=>Me(s,r.codec(),i)})(qe||(qe={}));var Gr;(function(r){let e;r.codec=()=>(e==null&&(e=He((t,n,s={})=>{if(s.lengthDelimited!==!1&&n.fork(),t.id!=null&&t.id.byteLength>0&&(n.uint32(10),n.bytes(t.id)),t.addrs!=null)for(let i of t.addrs)n.uint32(18),n.bytes(i);s.lengthDelimited!==!1&&n.ldelim()},(t,n,s={})=>{let i={id:xe(0),addrs:[]},o=n==null?t.len:t.pos+n;for(;t.pos<o;){let a=t.uint32();switch(a>>>3){case 1:{i.id=t.bytes();break}case 2:{if(s.limits?.addrs!=null&&i.addrs.length===s.limits.addrs)throw new fn('decode error - map field "addrs" had too many elements',"ERR_MAX_LENGTH");i.addrs.push(t.bytes());break}default:{t.skipType(a&7);break}}}return i})),e),r.encode=t=>Ve(t,r.codec()),r.decode=(t,n)=>Me(t,r.codec(),n)})(Gr||(Gr={}));var Js;(function(r){let e;r.codec=()=>(e==null&&(e=He((t,n,s={})=>{if(s.lengthDelimited!==!1&&n.fork(),t.expire!=null&&t.expire!==0n&&(n.uint32(8),n.uint64(t.expire)),t.addrs!=null)for(let i of t.addrs)n.uint32(18),n.bytes(i);t.voucher!=null&&(n.uint32(26),n.bytes(t.voucher)),s.lengthDelimited!==!1&&n.ldelim()},(t,n,s={})=>{let i={expire:0n,addrs:[]},o=n==null?t.len:t.pos+n;for(;t.pos<o;){let a=t.uint32();switch(a>>>3){case 1:{i.expire=t.uint64();break}case 2:{if(s.limits?.addrs!=null&&i.addrs.length===s.limits.addrs)throw new fn('decode error - map field "addrs" had too many elements',"ERR_MAX_LENGTH");i.addrs.push(t.bytes());break}case 3:{i.voucher=t.bytes();break}default:{t.skipType(a&7);break}}}return i})),e),r.encode=t=>Ve(t,r.codec()),r.decode=(t,n)=>Me(t,r.codec(),n)})(Js||(Js={}));var jr;(function(r){let e;r.codec=()=>(e==null&&(e=He((t,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),t.duration!=null&&(n.uint32(8),n.uint32(t.duration)),t.data!=null&&(n.uint32(16),n.uint64(t.data)),s.lengthDelimited!==!1&&n.ldelim()},(t,n,s={})=>{let i={},o=n==null?t.len:t.pos+n;for(;t.pos<o;){let a=t.uint32();switch(a>>>3){case 1:{i.duration=t.uint32();break}case 2:{i.data=t.uint64();break}default:{t.skipType(a&7);break}}}return i})),e),r.encode=t=>Ve(t,r.codec()),r.decode=(t,n)=>Me(t,r.codec(),n)})(jr||(jr={}));var q;(function(r){r.UNUSED="UNUSED",r.OK="OK",r.RESERVATION_REFUSED="RESERVATION_REFUSED",r.RESOURCE_LIMIT_EXCEEDED="RESOURCE_LIMIT_EXCEEDED",r.PERMISSION_DENIED="PERMISSION_DENIED",r.CONNECTION_FAILED="CONNECTION_FAILED",r.NO_RESERVATION="NO_RESERVATION",r.MALFORMED_MESSAGE="MALFORMED_MESSAGE",r.UNEXPECTED_MESSAGE="UNEXPECTED_MESSAGE"})(q||(q={}));var fa;(function(r){r[r.UNUSED=0]="UNUSED",r[r.OK=100]="OK",r[r.RESERVATION_REFUSED=200]="RESERVATION_REFUSED",r[r.RESOURCE_LIMIT_EXCEEDED=201]="RESOURCE_LIMIT_EXCEEDED",r[r.PERMISSION_DENIED=202]="PERMISSION_DENIED",r[r.CONNECTION_FAILED=203]="CONNECTION_FAILED",r[r.NO_RESERVATION=204]="NO_RESERVATION",r[r.MALFORMED_MESSAGE=400]="MALFORMED_MESSAGE",r[r.UNEXPECTED_MESSAGE=401]="UNEXPECTED_MESSAGE"})(fa||(fa={}));(function(r){r.codec=()=>lr(fa)})(q||(q={}));var Qs;(function(r){let e;r.codec=()=>(e==null&&(e=He((t,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),t.relay!=null&&t.relay.byteLength>0&&(n.uint32(10),n.bytes(t.relay)),t.peer!=null&&t.peer.byteLength>0&&(n.uint32(18),n.bytes(t.peer)),t.expiration!=null&&t.expiration!==0n&&(n.uint32(24),n.uint64(t.expiration)),s.lengthDelimited!==!1&&n.ldelim()},(t,n,s={})=>{let i={relay:xe(0),peer:xe(0),expiration:0n},o=n==null?t.len:t.pos+n;for(;t.pos<o;){let a=t.uint32();switch(a>>>3){case 1:{i.relay=t.bytes();break}case 2:{i.peer=t.bytes();break}case 3:{i.expiration=t.uint64();break}default:{t.skipType(a&7);break}}}return i})),e),r.encode=t=>Ve(t,r.codec()),r.decode=(t,n)=>Me(t,r.codec(),n)})(Qs||(Qs={}));function ei(r){let e=new globalThis.AbortController;function t(){e.abort();for(let i of r)i?.removeEventListener!=null&&i.removeEventListener("abort",t)}for(let i of r){if(i?.aborted===!0){t();break}i?.addEventListener!=null&&i.addEventListener("abort",t)}function n(){for(let i of r)i?.removeEventListener!=null&&i.removeEventListener("abort",t)}let s=e.signal;return s.clear=n,s}async function*Du(r,e,t){let n=e.remaining;for await(let s of r){let i=BigInt(s.byteLength);if(e.remaining-i<0){let o=Number(e.remaining);e.remaining=0n;try{o!==0&&(yield s.subarray(0,o))}catch(a){t.log.error(a)}throw new D(`data limit of ${n} bytes exceeded`,Xs)}e.remaining-=i,yield s}}function Ou(r,e,t,n,s){function i(u){r.abort(u),e.abort(u)}let o=[t];n?.duration!=null&&o.push(AbortSignal.timeout(n.duration));let a=ei(o),c=!1,h=!1,f;n?.data!=null&&(f={remaining:n.data}),queueMicrotask(()=>{let u=()=>{e.abort(new D(`duration limit of ${n?.duration} ms exceeded`,Xs))};a.addEventListener("abort",u,{once:!0}),e.sink(f==null?r.source:Du(r.source,f,s)).catch(d=>{s.log.error("error while relaying streams src -> dst",d),i(d)}).finally(()=>{c=!0,h&&(a.removeEventListener("abort",u),a.clear())})}),queueMicrotask(()=>{let u=()=>{r.abort(new D(`duration limit of ${n?.duration} ms exceeded`,Xs))};a.addEventListener("abort",u,{once:!0}),r.sink(f==null?e.source:Du(e.source,f,s)).catch(d=>{s.log.error("error while relaying streams dst -> src",d),i(d)}).finally(()=>{h=!0,c&&(a.removeEventListener("abort",u),a.clear())})})}function ha(r){let e=r*BigInt(1e3),t=new Date().getTime();return Number(e-BigInt(t))}function da(r,e){let t={[Symbol.iterator]:()=>t,next:()=>{let n=r.next(),s=n.value;return n.done===!0||s==null?{done:!0,value:void 0}:{done:!1,value:e(s)}}};return t}var Rt=class{map;constructor(e){if(this.map=new Map,e!=null)for(let[t,n]of e.entries())this.map.set(t.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(e){return this.map.delete(e.toString())}entries(){return da(this.map.entries(),e=>[Dt(e[0]),e[1]])}forEach(e){this.map.forEach((t,n)=>{e(t,Dt(n),this)})}get(e){return this.map.get(e.toString())}has(e){return this.map.has(e.toString())}set(e,t){this.map.set(e.toString(),t)}keys(){return da(this.map.keys(),e=>Dt(e))}values(){return this.map.values()}get size(){return this.map.size}};var ga=vi(pa(),1);var e0=Math.LN2*Math.LN2,ri=class{seeds;bits;buffer;constructor(e={}){e.seeds!=null?this.seeds=e.seeds:this.seeds=r0(e.hashes??8),this.bits=e.bits??1024,this.buffer=xe(Math.ceil(this.bits/8))}add(e){typeof e=="string"&&(e=V(e));for(let t=0;t<this.seeds.length;t++){let s=ga.default.x86.hash32(e,this.seeds[t])%this.bits;this.setbit(s)}}has(e){typeof e=="string"&&(e=V(e));for(let t=0;t<this.seeds.length;t++){let s=ga.default.x86.hash32(e,this.seeds[t])%this.bits;if(!this.getbit(s))return!1}return!0}clear(){this.buffer.fill(0)}setbit(e){let t=0,n=e;for(;n>7;)t++,n-=8;let s=this.buffer[t];s|=1<<n,this.buffer[t]=s}getbit(e){let t=0,n=e;for(;n>7;)t++,n-=8;return(this.buffer[t]&1<<n)!==0}};function ma(r,e=.005){let t=t0(r,e);return new ri(t)}function t0(r,e=.005){let t=Math.round(-1*r*Math.log(e)/e0),n=Math.round(t/r*Math.LN2);return{bits:t,hashes:n}}function r0(r){let e,t,n=[];for(let s=0;s<r;s++)for(e=new Fe(ct(4)),n[s]=e.getUint32(0,!0),t=0;t<s;t++)if(n[s]===n[t]){s--;break}return n}var ya=64,nt=class{fp;h;seed;constructor(e,t,n,s=2){if(s>ya)throw new TypeError("Invalid Fingerprint Size");let i=t.hashV(e,n),o=xe(s);for(let a=0;a<o.length;a++)o[a]=i[a];o.length===0&&(o[0]=7),this.fp=o,this.h=t,this.seed=n}hash(){return this.h.hash(this.fp,this.seed)}equals(e){return e?.fp instanceof Uint8Array?oe(this.fp,e.fp):!1}};function pr(r,e){return Math.floor(Math.random()*(e-r))+r}var gr=class{contents;constructor(e){this.contents=new Array(e).fill(null)}has(e){if(!(e instanceof nt))throw new TypeError("Invalid Fingerprint");return this.contents.some(t=>e.equals(t))}add(e){if(!(e instanceof nt))throw new TypeError("Invalid Fingerprint");for(let t=0;t<this.contents.length;t++)if(this.contents[t]==null)return this.contents[t]=e,!0;return!0}swap(e){if(!(e instanceof nt))throw new TypeError("Invalid Fingerprint");let t=pr(0,this.contents.length-1),n=this.contents[t];return this.contents[t]=e,n}remove(e){if(!(e instanceof nt))throw new TypeError("Invalid Fingerprint");let t=this.contents.findIndex(n=>e.equals(n));return t>-1?(this.contents[t]=null,!0):!1}};var ba={32:16777619n,64:1099511628211n,128:309485009821345068724781371n,256:374144419156711147060143317175368453031918731002211n,512:35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852759n,1024:5016456510113118655434598811035278955030765345404790744303017523831112055108147451509157692220295382716162651878526895249385292291816524375083746691371804094271873160484737966720260389217684476157468082573n},Vu={32:2166136261n,64:14695981039346656037n,128:144066263297769815596495629667062367629n,256:100029257958052580907070968620625704837092796014241193945225284501741471925557n,512:9659303129496669498009435400716310466090418745672637896108374329434462657994582932197716438449813051892206539805784495328239340083876191928701583869517785n,1024:14197795064947621068722070641403218320880622795441933960878474914617582723252296732303717722150864096521202355549365628174669108571814760471015076148029755969804077320157692458563003215304957150157403644460363550505412711285966361610267868082893823963790439336411086884584107735010676915n},Hu=new globalThis.TextEncoder;function n0(r,e){let t=ba[e],n=Vu[e];for(let s=0;s<r.length;s++)n^=BigInt(r[s]),n=BigInt.asUintN(e,n*t);return n}function s0(r,e,t){if(t.length===0)throw new Error("The `utf8Buffer` option must have a length greater than zero");let n=ba[e],s=Vu[e],i=r;for(;i.length>0;){let o=Hu.encodeInto(i,t);i=i.slice(o.read);for(let a=0;a<o.written;a++)s^=BigInt(t[a]),s=BigInt.asUintN(e,s*n)}return s}function wa(r,{size:e=32,utf8Buffer:t}={}){if(!ba[e])throw new Error("The `size` option must be one of 32, 64, 128, 256, 512, or 1024");if(typeof r=="string"){if(t)return s0(r,e,t);r=Hu.encode(r)}return n0(r,e)}var i0=vi(pa(),1);var Nn={hash:r=>Number(wa(r,{size:32})),hashV:(r,e)=>o0(Nn.hash(r,e))};function o0(r){let e=r.toString(16);return e.length%2===1&&(e=`0${e}`),V(e,"base16")}var a0=500,Ln=class{bucketSize;filterSize;fingerprintSize;buckets;count;hash;seed;constructor(e){this.filterSize=e.filterSize,this.bucketSize=e.bucketSize??4,this.fingerprintSize=e.fingerprintSize??2,this.count=0,this.buckets=[],this.hash=e.hash??Nn,this.seed=e.seed??pr(0,Math.pow(2,10))}add(e){typeof e=="string"&&(e=V(e));let t=new nt(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,s=(n^t.hash())%this.filterSize;if(this.buckets[n]==null&&(this.buckets[n]=new gr(this.bucketSize)),this.buckets[s]==null&&(this.buckets[s]=new gr(this.bucketSize)),this.buckets[n].add(t)||this.buckets[s].add(t))return this.count++,!0;let i=[n,s],o=i[pr(0,i.length-1)];this.buckets[o]==null&&(this.buckets[o]=new gr(this.bucketSize));for(let a=0;a<a0;a++){let c=this.buckets[o].swap(t);if(c!=null&&(o=(o^c.hash())%this.filterSize,this.buckets[o]==null&&(this.buckets[o]=new gr(this.bucketSize)),this.buckets[o].add(c)))return this.count++,!0}return!1}has(e){typeof e=="string"&&(e=V(e));let t=new nt(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,s=this.buckets[n]?.has(t)??!1;if(s)return s;let i=(n^t.hash())%this.filterSize;return this.buckets[i]?.has(t)??!1}remove(e){typeof e=="string"&&(e=V(e));let t=new nt(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,s=this.buckets[n]?.remove(t)??!1;if(s)return this.count--,s;let i=(n^t.hash())%this.filterSize,o=this.buckets[i]?.remove(t)??!1;return o&&this.count--,o}get reliable(){return Math.floor(100*(this.count/this.filterSize))<=90}},c0={1:.5,2:.84,4:.95,8:.98};function l0(r=.001){return r>.002?2:r>1e-5?4:8}function Fu(r,e=.001){let t=l0(e),n=c0[t],s=Math.round(r/n),i=Math.min(Math.ceil(Math.log2(1/e)+Math.log2(2*t)),ya);return{filterSize:s,bucketSize:t,fingerprintSize:i}}var ni=class{filterSize;bucketSize;fingerprintSize;scale;filterSeries;hash;seed;constructor(e){this.bucketSize=e.bucketSize??4,this.filterSize=e.filterSize??(1<<18)/this.bucketSize,this.fingerprintSize=e.fingerprintSize??2,this.scale=e.scale??2,this.hash=e.hash??Nn,this.seed=e.seed??pr(0,Math.pow(2,10)),this.filterSeries=[new Ln({filterSize:this.filterSize,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed})]}add(e){if(typeof e=="string"&&(e=V(e)),this.has(e))return!0;let t=this.filterSeries.find(n=>n.reliable);if(t==null){let n=this.filterSize*Math.pow(this.scale,this.filterSeries.length);t=new Ln({filterSize:n,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed}),this.filterSeries.push(t)}return t.add(e)}has(e){typeof e=="string"&&(e=V(e));for(let t=0;t<this.filterSeries.length;t++)if(this.filterSeries[t].has(e))return!0;return!1}remove(e){typeof e=="string"&&(e=V(e));for(let t=0;t<this.filterSeries.length;t++)if(this.filterSeries[t].remove(e))return!0;return!1}get count(){return this.filterSeries.reduce((e,t)=>e+t.count,0)}};function xa(r,e=.001,t){return new ni({...Fu(r,e),...t??{}})}var si=class{filter;constructor(e,t){this.filter=xa(e,t)}has(e){return this.filter.has(e.toBytes())}add(e){this.filter.add(e.toBytes())}remove(e){this.filter.remove?.(e.toBytes())}};function va(r,e=.001){return new si(r,e)}var ii=class{reservations=new Rt;_started=!1;interval;maxReservations;reservationClearInterval;applyDefaultLimit;reservationTtl;defaultDurationLimit;defaultDataLimit;constructor(e={}){this.maxReservations=e.maxReservations??15,this.reservationClearInterval=e.reservationClearInterval??3e5,this.applyDefaultLimit=e.applyDefaultLimit!==!1,this.reservationTtl=e.reservationTtl??72e5,this.defaultDurationLimit=e.defaultDurationLimit??12e4,this.defaultDataLimit=e.defaultDataLimit??Ru}isStarted(){return this._started}start(){this._started||(this._started=!0,this.interval=setInterval(()=>{let e=new Date().getTime();this.reservations.forEach((t,n)=>{t.expire.getTime()<e&&this.reservations.delete(n)})},this.reservationClearInterval))}stop(){clearInterval(this.interval)}reserve(e,t,n){if(this.reservations.size>=this.maxReservations&&!this.reservations.has(e))return{status:q.RESERVATION_REFUSED};let s=new Date(Date.now()+this.reservationTtl),i;return this.applyDefaultLimit&&(i=n??{data:this.defaultDataLimit,duration:this.defaultDurationLimit}),this.reservations.set(e,{addr:t,expire:s,limit:i}),{status:q.OK,expire:Math.round(s.getTime()/1e3)}}removeReservation(e){this.reservations.delete(e)}hasReservation(e){return this.reservations.has(e)}get(e){return this.reservations.get(e)}};var oi=class r{domain="libp2p-relay-rsvp";codec=new Uint8Array([3,2]);relay;peer;expiration;constructor({relay:e,peer:t,expiration:n}){this.relay=e,this.peer=t,this.expiration=n}marshal(){return Qs.encode({relay:this.relay.toBytes(),peer:this.peer.toBytes(),expiration:BigInt(this.expiration)})}equals(e){return!(!(e instanceof r)||!this.peer.equals(e.peer)||!this.relay.equals(e.relay)||this.expiration!==e.expiration)}};var Ku=r=>r.protoCodes().includes(290),p0={maxOutboundStopStreams:Tn},Ea=class extends $e{registrar;peerStore;addressManager;peerId;connectionManager;connectionGater;reservationStore;started;hopTimeout;shutdownController;maxInboundHopStreams;maxOutboundHopStreams;maxOutboundStopStreams;log;constructor(e,t={}){super(),this.log=e.logger.forComponent("libp2p:circuit-relay:server"),this.registrar=e.registrar,this.peerStore=e.peerStore,this.addressManager=e.addressManager,this.peerId=e.peerId,this.connectionManager=e.connectionManager,this.connectionGater=e.connectionGater,this.started=!1,this.hopTimeout=t?.hopTimeout??Nu,this.maxInboundHopStreams=t.maxInboundHopStreams,this.maxOutboundHopStreams=t.maxOutboundHopStreams,this.maxOutboundStopStreams=t.maxOutboundStopStreams??p0.maxOutboundStopStreams,this.reservationStore=new ii(t.reservations),this.shutdownController=new AbortController,ze(1/0,this.shutdownController.signal)}[Symbol.toStringTag]="@libp2p/circuit-relay-v2-server";isStarted(){return this.started}async start(){this.started||(await this.registrar.handle(Ye,e=>{this.onHop(e).catch(t=>{this.log.error(t)})},{maxInboundStreams:this.maxInboundHopStreams,maxOutboundStreams:this.maxOutboundHopStreams,runOnTransientConnection:!0}),this.reservationStore.start(),this.started=!0)}async stop(){this.reservationStore.stop(),this.shutdownController.abort(),await this.registrar.unhandle(Ye),this.started=!1}async onHop({connection:e,stream:t}){this.log("received circuit v2 hop protocol stream from %p",e.remotePeer);let n=Ke(),s=setTimeout(()=>{n.reject("timed out")},this.hopTimeout),i=Zt(t);try{let o=await Promise.race([i.pb(Z).read(),n.promise]);if(o?.type==null)throw new Error("request was invalid, could not read from stream");this.log("received",o.type),await Promise.race([this.handleHopProtocol({connection:e,stream:i,request:o}),n.promise])}catch(o){this.log.error("error while handling hop",o),await i.pb(Z).write({type:Z.Type.STATUS,status:q.MALFORMED_MESSAGE}),t.abort(o)}finally{clearTimeout(s)}}async handleHopProtocol({stream:e,request:t,connection:n}){switch(this.log("received hop message"),t.type){case Z.Type.RESERVE:await this.handleReserve({stream:e,request:t,connection:n});break;case Z.Type.CONNECT:await this.handleConnect({stream:e,request:t,connection:n});break;default:this.log.error("invalid hop request type %s via peer %p",t.type,n.remotePeer),await e.pb(Z).write({type:Z.Type.STATUS,status:q.UNEXPECTED_MESSAGE})}}async handleReserve({stream:e,request:t,connection:n}){let s=e.pb(Z);if(this.log("hop reserve request from %p",n.remotePeer),Ku(n.remoteAddr)){this.log.error("relay reservation over circuit connection denied for peer: %p",n.remotePeer),await s.write({type:Z.Type.STATUS,status:q.PERMISSION_DENIED});return}if(await this.connectionGater.denyInboundRelayReservation?.(n.remotePeer)===!0){this.log.error("reservation for %p denied by connection gater",n.remotePeer),await s.write({type:Z.Type.STATUS,status:q.PERMISSION_DENIED});return}let i=this.reservationStore.reserve(n.remotePeer,n.remoteAddr);if(i.status!==q.OK){await s.write({type:Z.Type.STATUS,status:i.status});return}try{if(i.expire!=null){let o=i.expire*1e3-Date.now();await this.peerStore.merge(n.remotePeer,{tags:{[ku]:{value:1,ttl:o}}})}await s.write({type:Z.Type.STATUS,status:q.OK,reservation:await this.makeReservation(n.remotePeer,BigInt(i.expire??0)),limit:this.reservationStore.get(n.remotePeer)?.limit}),this.log("sent confirmation response to %s",n.remotePeer)}catch(o){this.log.error("failed to send confirmation response to %p",n.remotePeer,o),this.reservationStore.removeReservation(n.remotePeer)}}async makeReservation(e,t){let n=[];for(let i of this.addressManager.getAddresses())i.toString().includes("/p2p-circuit")||n.push(i.bytes);let s=await kn.seal(new oi({peer:e,relay:this.peerId,expiration:Number(t)}),this.peerId);return{addrs:n,expire:t,voucher:s.marshal()}}async handleConnect({stream:e,request:t,connection:n}){let s=e.pb(Z);if(Ku(n.remoteAddr)){this.log.error("relay reservation over circuit connection denied for peer: %p",n.remotePeer),await s.write({type:Z.Type.STATUS,status:q.PERMISSION_DENIED});return}this.log("hop connect request from %p",n.remotePeer);let i;try{if(t.peer==null)throw this.log.error("no peer info in hop connect request"),new Error("no peer info in request");t.peer.addrs.forEach(Ee),i=nn(t.peer.id)}catch(u){this.log.error("invalid hop connect request via peer %p %s",n.remotePeer,u),await s.write({type:Z.Type.STATUS,status:q.MALFORMED_MESSAGE});return}if(!this.reservationStore.hasReservation(i)){this.log.error("hop connect denied for destination peer %p not having a reservation for %p with status %s",i,n.remotePeer,q.NO_RESERVATION),await s.write({type:Z.Type.STATUS,status:q.NO_RESERVATION});return}if(await this.connectionGater.denyOutboundRelayedConnection?.(n.remotePeer,i)===!0){this.log.error("hop connect for %p to %p denied by connection gater",n.remotePeer,i),await s.write({type:Z.Type.STATUS,status:q.PERMISSION_DENIED});return}let o=this.connectionManager.getConnections(i);if(o.length===0){this.log("hop connect denied for destination peer %p not having a connection for %p as there is no destination connection",i,n.remotePeer),await s.write({type:Z.Type.STATUS,status:q.NO_RESERVATION});return}let a=this.reservationStore.get(i)?.limit,c=o[0],h=await this.stopHop({connection:c,request:{type:qe.Type.CONNECT,peer:{id:n.remotePeer.toBytes(),addrs:[]},limit:a}});if(h==null){this.log.error("failed to open stream to destination peer %p",c?.remotePeer),await s.write({type:Z.Type.STATUS,status:q.CONNECTION_FAILED});return}await s.write({type:Z.Type.STATUS,status:q.OK,limit:a});let f=e.unwrap();this.log("connection from %p to %p established - merging streams",n.remotePeer,i),Ou(f,h,this.shutdownController.signal,a,{log:this.log})}async stopHop({connection:e,request:t}){this.log("starting circuit relay v2 stop request to %s",e.remotePeer);let n=await e.newStream([dr],{maxOutboundStreams:this.maxOutboundStopStreams,runOnTransientConnection:!0}),s=Zt(n),i=s.pb(qe);await i.write(t);let o;try{o=await i.read()}catch{this.log.error("error parsing stop message response from %p",e.remotePeer)}if(o==null){this.log.error("could not read response from %p",e.remotePeer),await n.close();return}if(o.status===q.OK)return this.log("stop request to %p was successful",e.remotePeer),s.unwrap();this.log("stop request failed with code %d",o.status),await n.close()}get reservations(){return this.reservationStore.reservations}};function qu(r={}){return e=>new Ea(e,r)}function Sa(r){let{stream:e,remoteAddr:t,logger:n}=r,s=n.forComponent("libp2p:stream:converter"),i=!1,o=!1,a=e.close.bind(e);e.close=async d=>{await a(d),u(!0)};let c=e.abort.bind(e);e.abort=d=>{c(d),u(!0)};let h=e.sink.bind(e);e.sink=async d=>{try{await h(d)}catch(l){l.type!=="aborted"&&s.error("%s error in sink",t,l)}finally{o=!0,u()}};let f={log:s,sink:e.sink,source:async function*(){try{for await(let d of e.source)d instanceof Uint8Array?yield d:yield*d}finally{i=!0,u()}}(),remoteAddr:t,timeline:{open:Date.now(),close:void 0},close:e.close,abort:e.abort};function u(d){d===!0&&(i=!0,o=!0),i&&o&&f.timeline.close==null&&(f.timeline.close=Date.now())}return f}var g0=k("dns4"),m0=k("dns6"),y0=k("dnsaddr"),mr=ce(k("dns"),y0,g0,m0),li=ce(k("ip4"),k("ip6")),Wr=ce(O(li,k("tcp")),O(mr,k("tcp"))),ui=O(li,k("udp")),b0=O(ui,k("utp")),w0=O(ui,k("quic")),x0=O(ui,k("quic-v1")),Ba=ce(O(Wr,k("ws")),O(mr,k("ws"))),ai=ce(O(Ba,k("p2p")),Ba),_a=ce(O(Wr,k("wss")),O(mr,k("wss")),O(Wr,k("tls"),k("ws")),O(mr,k("tls"),k("ws"))),ci=ce(O(_a,k("p2p")),_a),Ia=ce(O(Wr,k("http")),O(li,k("http")),O(mr,k("http"))),ka=ce(O(Wr,k("https")),O(li,k("https")),O(mr,k("https"))),zu=O(ui,k("webrtc-direct"),k("certhash")),ju=ce(O(zu,k("p2p")),zu),$u=O(x0,k("webtransport"),k("certhash"),k("certhash")),Wu=ce(O($u,k("p2p")),$u),Yu=ce(O(ai,k("p2p-webrtc-star"),k("p2p")),O(ci,k("p2p-webrtc-star"),k("p2p")),O(ai,k("p2p-webrtc-star")),O(ci,k("p2p-webrtc-star"))),vv=ce(O(ai,k("p2p-websocket-star"),k("p2p")),O(ci,k("p2p-websocket-star"),k("p2p")),O(ai,k("p2p-websocket-star")),O(ci,k("p2p-websocket-star"))),Zu=ce(O(Ia,k("p2p-webrtc-direct"),k("p2p")),O(ka,k("p2p-webrtc-direct"),k("p2p")),O(Ia,k("p2p-webrtc-direct")),O(ka,k("p2p-webrtc-direct"))),yr=ce(Ba,_a,Ia,ka,Yu,Zu,Wr,b0,w0,mr,ju,Wu),Ev=ce(O(yr,k("p2p-stardust"),k("p2p")),O(yr,k("p2p-stardust"))),Xt=ce(O(yr,k("p2p")),Yu,Zu,ju,Wu,k("p2p")),Gu=ce(O(Xt,k("p2p-circuit"),Xt),O(Xt,k("p2p-circuit")),O(k("p2p-circuit"),Xt),O(yr,k("p2p-circuit")),O(k("p2p-circuit"),yr),k("p2p-circuit")),Xu=()=>ce(O(Gu,Xu),Gu),Nt=Xu(),Av=ce(O(Nt,Xt,Nt),O(Xt,Nt),O(Nt,Xt),Nt,Xt);var Sv=ce(O(Nt,k("webrtc"),k("p2p")),O(Nt,k("webrtc")),O(yr,k("webrtc"),k("p2p")),O(yr,k("webrtc")),k("webrtc"));function Ju(r){function e(t){let n;try{n=Ee(t)}catch{return!1}let s=r(n.protoNames());return s===null?!1:s===!0||s===!1?s:s.length===0}return e}function O(...r){function e(t){if(t.length<r.length)return null;let n=t;return r.some(s=>(n=typeof s=="function"?s().partialMatch(t):s.partialMatch(t),Array.isArray(n)&&(t=n),n===null)),n}return{toString:function(){return"{ "+r.join(" ")+" }"},input:r,matches:Ju(e),partialMatch:e}}function ce(...r){function e(n){let s=null;return r.some(i=>{let o=typeof i=="function"?i().partialMatch(n):i.partialMatch(n);return o!=null?(s=o,!0):!1}),s}return{toString:function(){return"{ "+r.join(" ")+" }"},input:r,matches:Ju(e),partialMatch:e}}function k(r){let e=r;function t(s){let i;try{i=Ee(s)}catch{return!1}let o=i.protoNames();return o.length===1&&o[0]===e}function n(s){return s.length===0?null:s[0]===e?s.slice(1):null}return{toString:function(){return e},matches:t,partialMatch:n}}var Jt=class extends Event{type;detail;constructor(e,t){super(e),this.type=e,this.detail=t}};var fi=class{buffer;mask;top;btm;next;constructor(e){if(!(e>0)||e-1&e)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(e),this.mask=e-1,this.top=0,this.btm=0,this.next=null}push(e){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=e,this.top=this.top+1&this.mask,!0)}shift(){let e=this.buffer[this.btm];if(e!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,e}isEmpty(){return this.buffer[this.btm]===void 0}},Yr=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new fi(this.hwm),this.tail=this.head,this.size=0}calculateSize(e){return e?.byteLength!=null?e.byteLength:1}push(e){if(e?.value!=null&&(this.size+=this.calculateSize(e.value)),!this.head.push(e)){let t=this.head;this.head=t.next=new fi(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let t=this.tail.next;this.tail.next=null,this.tail=t,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}};var Ta=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function Qu(r={}){return E0(t=>{let n=t.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},r)}function E0(r,e){e=e??{};let t=e.onEnd,n=new Yr,s,i,o,a=Ke(),c=async()=>{try{return n.isEmpty()?o?{done:!0}:await new Promise((b,y)=>{i=w=>{i=null,n.push(w);try{b(r(n))}catch(g){y(g)}return s}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=Ke()})}},h=b=>i!=null?i(b):(n.push(b),s),f=b=>(n=new Yr,i!=null?i({error:b}):(n.push({error:b}),s)),u=b=>{if(o)return s;if(e?.objectMode!==!0&&b?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return h({done:!1,value:b})},d=b=>o?s:(o=!0,b!=null?f(b):h({done:!0})),l=()=>(n=new Yr,d(),{done:!0}),p=b=>(d(b),{done:!0});if(s={[Symbol.asyncIterator](){return this},next:c,return:l,throw:p,push:u,end:d,get readableLength(){return n.size},onEmpty:async b=>{let y=b?.signal;if(y?.throwIfAborted(),n.isEmpty())return;let w,g;y!=null&&(w=new Promise((x,S)=>{g=()=>{S(new Ta)},y.addEventListener("abort",g)}));try{await Promise.race([a.promise,w])}finally{g!=null&&y!=null&&y?.removeEventListener("abort",g)}}},t==null)return s;let m=s;return s={[Symbol.asyncIterator](){return this},next(){return m.next()},throw(b){return m.throw(b),t!=null&&(t(b),t=void 0),{done:!0}},return(){return m.return(),t!=null&&(t(),t=void 0),{done:!0}},push:u,end(b){return m.end(b),t!=null&&(t(b),t=void 0),s},get readableLength(){return m.readableLength},onEmpty:b=>m.onEmpty(b)},s}var Ra=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=t??"ABORT_ERR"}};async function hi(r,e,t,n){let s=new Ra(n?.errorMessage,n?.errorCode);return t?.aborted===!0?Promise.reject(s):new Promise((i,o)=>{function a(){t?.removeEventListener("abort",f),r.removeEventListener(e,c),n?.errorEvent!=null&&r.removeEventListener(n.errorEvent,h)}let c=u=>{try{if(n?.filter?.(u)===!1)return}catch(d){a(),o(d);return}a(),i(u)},h=u=>{a(),o(u.detail)},f=()=>{a(),o(s)};t?.addEventListener("abort",f),r.addEventListener(e,c),n?.errorEvent!=null&&r.addEventListener(n.errorEvent,h)})}var di=class{deferred;signal;constructor(e){this.signal=e,this.deferred=Ke(),this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(this.signal?.reason??new Lt)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function A0(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var pi=class{id;fn;options;recipients;status;timeline;controller;constructor(e,t){this.id=A0(),this.status="queued",this.fn=e,this.options=t,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,ze(1/0,this.controller.signal),this.onAbort=this.onAbort.bind(this)}abort(e){this.controller.abort(e)}onAbort(){this.recipients.reduce((t,n)=>t&&n.signal?.aborted===!0,!0)&&(this.controller.abort(new Lt),this.cleanup())}async join(e={}){let t=new di(e.signal);return this.recipients.push(t),e.signal?.addEventListener("abort",this.onAbort),t.deferred.promise}async run(){this.status="running",this.timeline.started=Date.now();try{this.controller.signal.throwIfAborted();let e=await $r(this.fn({...this.options??{},signal:this.controller.signal}),this.controller.signal);this.recipients.forEach(t=>{t.deferred.resolve(e)}),this.status="complete"}catch(e){this.recipients.forEach(t=>{t.deferred.reject(e)}),this.status="errored"}finally{this.timeline.finished=Date.now(),this.cleanup()}}cleanup(){this.recipients.forEach(e=>{e.cleanup(),e.signal?.removeEventListener("abort",this.onAbort)})}};var gi=class extends $e{concurrency;queue;pending;sort;constructor(e={}){super(),this.concurrency=e.concurrency??Number.POSITIVE_INFINITY,this.pending=0,e.metricName!=null&&e.metrics?.registerMetricGroup(e.metricName,{calculate:()=>({size:this.queue.length,running:this.pending,queued:this.queue.length-this.pending})}),this.sort=e.sort,this.queue=[]}tryToStartAnother(){if(this.size===0)return queueMicrotask(()=>{this.safeDispatchEvent("empty")}),this.running===0&&queueMicrotask(()=>{this.safeDispatchEvent("idle")}),!1;if(this.pending<this.concurrency){let e;for(let t of this.queue)if(t.status==="queued"){e=t;break}return e==null?!1:(this.safeDispatchEvent("active"),this.pending++,e.run().finally(()=>{for(let t=0;t<this.queue.length;t++)if(this.queue[t]===e){this.queue.splice(t,1);break}this.pending--,this.tryToStartAnother(),this.safeDispatchEvent("next")}),!0)}return!1}enqueue(e){this.queue.push(e),this.sort!=null&&this.queue.sort(this.sort)}async add(e,t){t?.signal?.throwIfAborted();let n=new pi(e,t);return this.enqueue(n),this.safeDispatchEvent("add"),this.tryToStartAnother(),n.join(t).then(s=>(this.safeDispatchEvent("completed",{detail:s}),this.safeDispatchEvent("success",{detail:{job:n,result:s}}),s)).catch(s=>{if(n.status==="queued"){for(let i=0;i<this.queue.length;i++)if(this.queue[i]===n){this.queue.splice(i,1);break}}throw this.safeDispatchEvent("error",{detail:s}),this.safeDispatchEvent("failure",{detail:{job:n,error:s}}),s})}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(e=>{e.abort(new Lt)}),this.clear()}async onEmpty(e){this.size!==0&&await hi(this,"empty",e?.signal)}async onSizeLessThan(e,t){this.size<e||await hi(this,"next",t?.signal,{filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await hi(this,"idle",e?.signal)}get size(){return this.queue.length}get queued(){return this.queue.length-this.pending}get running(){return this.pending}async*toGenerator(e){e?.signal?.throwIfAborted();let t=Qu({objectMode:!0}),n=c=>{c!=null?this.abort():this.clear(),t.end(c)},s=c=>{c.detail!=null&&t.push(c.detail)},i=c=>{n(c.detail)},o=()=>{n()},a=()=>{n(new D("Queue aborted","ERR_QUEUE_ABORTED"))};this.addEventListener("completed",s),this.addEventListener("error",i),this.addEventListener("idle",o),e?.signal?.addEventListener("abort",a);try{yield*t}finally{this.removeEventListener("completed",s),this.removeEventListener("error",i),this.removeEventListener("idle",o),e?.signal?.removeEventListener("abort",a),n()}}};var Zr=class extends gi{has(e){return this.find(e)!=null}find(e){return this.queue.find(t=>e.equals(t.options.peerId))}};var mi=class extends $e{peerStore;registrar;connectionManager;randomWalk;started;running;topologyId;log;discoveryController;filter;constructor(e,t={}){super(),this.log=e.logger.forComponent("libp2p:circuit-relay:discover-relays"),this.started=!1,this.running=!1,this.peerStore=e.peerStore,this.registrar=e.registrar,this.connectionManager=e.connectionManager,this.randomWalk=e.randomWalk,this.filter=t.filter,this.discoveryController=new AbortController,ze(1/0,this.discoveryController.signal)}isStarted(){return this.started}async start(){this.topologyId=await this.registrar.register(Ye,{filter:this.filter,onConnect:e=>{this.log("discovered relay %p",e),this.safeDispatchEvent("relay:discover",{detail:e})}}),this.started=!0}stop(){this.topologyId!=null&&this.registrar.unregister(this.topologyId),this.discoveryController?.abort(),this.started=!1}startDiscovery(){this.running||(this.log("start discovery"),this.running=!0,this.discoveryController=new AbortController,ze(1/0,this.discoveryController.signal),Promise.resolve().then(async()=>{this.log("searching peer store for relays");let e=await this.peerStore.all({filters:[n=>n.protocols.includes(Ye)],orders:[()=>Math.random()<.5?1:-1]});for(let n of e)this.log.trace("found relay peer %p in peer store",n.id),this.safeDispatchEvent("relay:discover",{detail:n.id});this.log("found %d relay peers in peer store",e.length);let t=new Zr({concurrency:5});this.log("start random walk");for await(let n of this.randomWalk.walk({signal:this.discoveryController.signal})){if(this.log.trace("found random peer %p",n.id),t.has(n.id)){this.log.trace("random peer %p was already in queue",n.id);continue}if(this.connectionManager.getConnections(n.id)?.length>0){this.log.trace("random peer %p was already connected",n.id);continue}if(!await this.connectionManager.isDialable(n.multiaddrs)){this.log.trace("random peer %p was not dialable",n.id,n.multiaddrs.map(s=>s.toString()));continue}this.log.trace("wait for space in queue for %p",n.id),await $r(t.onSizeLessThan(10),this.discoveryController.signal),this.log("adding random peer %p to dial queue (length: %d)",n.id,t.size),t.add(async()=>{let s=ei([this.discoveryController.signal,AbortSignal.timeout(5e3)]);ze(1/0,s);try{await this.connectionManager.openConnection(n.id,{signal:s})}finally{s.clear()}},{peerId:n.id,signal:this.discoveryController.signal}).catch(s=>{this.log.error("error opening connection to random peer %p",n.id,s)})}await t.onIdle()}).catch(e=>{this.discoveryController.signal.aborted||this.log.error("failed when finding relays on the network",e)}))}stopDiscovery(){this.log("stop discovery"),this.running=!1,this.discoveryController?.abort()}};var Na=class extends $e{connectionManager;relayStore;listeningAddrs;log;constructor(e){super(),this.log=e.logger.forComponent("libp2p:circuit-relay:transport:listener"),this.connectionManager=e.connectionManager,this.relayStore=e.relayStore,this.listeningAddrs=new Rt,this.relayStore.addEventListener("relay:removed",this._onRemoveRelayPeer)}_onRemoveRelayPeer=e=>{this.#e(e.detail)};async listen(e){this.log("listen on %a",e);let t=e.decapsulate("/p2p-circuit"),n=await this.connectionManager.openConnection(t);if(!this.relayStore.hasReservation(n.remotePeer)){this.log("making reservation on peer %p",n.remotePeer),await this.relayStore.addRelay(n.remotePeer,"configured");return}let s=this.relayStore.getReservation(n.remotePeer);if(s==null)throw new D("Did not have reservation after making reservation","ERR_NO_RESERVATION");if(this.listeningAddrs.has(n.remotePeer)){this.log("already listening on relay %p",n.remotePeer);return}this.listeningAddrs.set(n.remotePeer,s.addrs.map(i=>Ee(i).encapsulate("/p2p-circuit"))),this.safeDispatchEvent("listening",{})}getAddrs(){return[...this.listeningAddrs.values()].flat()}async close(){}#e(e){let t=this.listeningAddrs.has(e);this.log("relay peer removed %p - had reservation",e,t),this.listeningAddrs.delete(e),t&&(this.log.trace("removing relay event listener for peer %p",e),this.relayStore.removeEventListener("relay:removed",this._onRemoveRelayPeer),this.safeDispatchEvent("close",{}))}};function ef(r){return new Na(r)}var I0=60*1e3*10,k0=60*1e3*5,T0=30*1e3,yi=class extends $e{peerId;connectionManager;transportManager;peerStore;events;reserveQueue;reservations;maxDiscoveredRelays;maxReservationQueueLength;reservationCompletionTimeout;started;log;relayFilter;constructor(e,t){super(),this.log=e.logger.forComponent("libp2p:circuit-relay:transport:reservation-store"),this.peerId=e.peerId,this.connectionManager=e.connectionManager,this.transportManager=e.transportManager,this.peerStore=e.peerStore,this.events=e.events,this.reservations=new Rt,this.maxDiscoveredRelays=t?.discoverRelays??0,this.maxReservationQueueLength=t?.maxReservationQueueLength??100,this.reservationCompletionTimeout=t?.reservationCompletionTimeout??1e3,this.started=!1,this.relayFilter=ma(100),this.reserveQueue=new Zr({concurrency:t?.reservationConcurrency??1,metricName:"libp2p_relay_reservation_queue",metrics:e.metrics}),this.events.addEventListener("peer:disconnect",n=>{this.#t(n.detail)})}isStarted(){return this.started}start(){this.started=!0}afterStart(){this.reservations.size<this.maxDiscoveredRelays&&(this.log("not enough relays %d/%d",this.reservations.size,this.maxDiscoveredRelays),this.safeDispatchEvent("relay:not-enough-relays",{}))}stop(){this.reserveQueue.clear(),this.reservations.forEach(({timeout:e})=>{clearTimeout(e)}),this.reservations.clear(),this.started=!1}async addRelay(e,t){if(this.peerId.equals(e)){this.log("not trying to use self as relay");return}if(this.reserveQueue.size>this.maxReservationQueueLength){this.log("not adding potential relay peer %p as the queue is full",e);return}if(this.reserveQueue.has(e)){this.log("potential relay peer %p is already in the reservation queue",e);return}if(this.relayFilter.has(e.toBytes())){this.log("potential relay peer %p has failed previously, not trying again",e);return}this.log("try to reserve relay slot with %p",e),await this.reserveQueue.add(async()=>{let n=Date.now();try{let s=this.reservations.get(e);if(s!=null){if(ha(s.reservation.expire)>I0){this.log("already have reservation on relay peer %p and it expires in more than 10 minutes",e);return}clearTimeout(s.timeout),this.reservations.delete(e)}if(t==="discovered"&&[...this.reservations.values()].reduce((u,d)=>(d.type==="discovered"&&u++,u),0)>=this.maxDiscoveredRelays){this.log("already have enough discovered relays");return}let i=AbortSignal.timeout(this.reservationCompletionTimeout);ze(1/0,i);let o=await this.connectionManager.openConnection(e,{signal:i});if(o.remoteAddr.protoNames().includes("p2p-circuit")){this.log("not creating reservation over relayed connection");return}let a=await this.#e(o,{signal:i});this.log("created reservation on relay peer %p",e);let c=ha(a.expire),h=Math.min(Math.max(c-k0,T0),Math.pow(2,31)-1),f=setTimeout(()=>{this.addRelay(e,t).catch(u=>{this.log.error("could not refresh reservation to relay %p",e,u)})},h);this.reservations.set(e,{timeout:f,reservation:a,type:t}),await this.peerStore.merge(e,{tags:{[Tu]:{value:1,ttl:c}}}),await this.transportManager.listen([Ee(`/p2p/${e.toString()}/p2p-circuit`)]),this.safeDispatchEvent("relay:created-reservation",{detail:e})}catch(s){this.log.error("could not reserve slot on %p after %dms",e,Date.now()-n,s);let i=this.reservations.get(e);i!=null&&clearTimeout(i.timeout),this.reservations.delete(e),this.relayFilter.add(e.toBytes())}},{peerId:e})}hasReservation(e){return this.reservations.has(e)}getReservation(e){return this.reservations.get(e)?.reservation}reservationCount(){return this.reservations.size}async#e(e,t){t.signal?.throwIfAborted(),this.log("requesting reservation from %p",e.remotePeer);let n=await e.newStream(Ye,t),i=Zt(n).pb(Z);await i.write({type:Z.Type.RESERVE},t);let o;try{o=await i.read(t)}catch(c){throw n.abort(c),c}finally{n.status!=="closed"&&await n.close(t)}if(o.status===q.OK&&o.reservation!=null){let c=!1,h=e.remoteAddr.bytes;for(let f of o.reservation.addrs)if(oe(h,f)){c=!0;break}return c||o.reservation.addrs.push(h),o.reservation}let a=`reservation failed with status ${o.status??"undefined"}`;throw this.log.error(a),new Error(a)}#t(e){let t=this.reservations.get(e);t!=null&&(this.log("connection to relay %p closed, removing reservation from local store",e),clearTimeout(t.timeout),this.reservations.delete(e),this.safeDispatchEvent("relay:removed",{detail:e}),this.reservations.size<this.maxDiscoveredRelays&&(this.log("not enough relays %d/%d",this.reservations.size,this.maxDiscoveredRelays),this.safeDispatchEvent("relay:not-enough-relays",{})))}};var R0=r=>{if(r.peer==null)return!1;try{r.peer.addrs.forEach(Ee)}catch{return!1}return!0},La={maxInboundStopStreams:Tn,maxOutboundStopStreams:Tn,stopTimeout:3e4},bi=class{discovery;registrar;peerStore;connectionManager;transportManager;peerId;upgrader;addressManager;connectionGater;reservationStore;logger;maxInboundStopStreams;maxOutboundStopStreams;stopTimeout;started;log;constructor(e,t){this.log=e.logger.forComponent("libp2p:circuit-relay:transport"),this.registrar=e.registrar,this.peerStore=e.peerStore,this.connectionManager=e.connectionManager,this.transportManager=e.transportManager,this.logger=e.logger,this.peerId=e.peerId,this.upgrader=e.upgrader,this.addressManager=e.addressManager,this.connectionGater=e.connectionGater,this.maxInboundStopStreams=t.maxInboundStopStreams??La.maxInboundStopStreams,this.maxOutboundStopStreams=t.maxOutboundStopStreams??La.maxOutboundStopStreams,this.stopTimeout=t.stopTimeout??La.stopTimeout;let n=t.discoverRelays??0;n>0&&(this.discovery=new mi(e,{filter:t.discoveryFilter??va(Cu,Uu)}),this.discovery.addEventListener("relay:discover",s=>{this.reservationStore.addRelay(s.detail,"discovered").catch(i=>{this.log.error("could not add discovered relay %p",s.detail,i)})})),this.reservationStore=new yi(e,t),this.reservationStore.addEventListener("relay:not-enough-relays",()=>{this.discovery?.startDiscovery()}),this.reservationStore.addEventListener("relay:created-reservation",()=>{this.reservationStore.reservationCount()>=n&&this.discovery?.stopDiscovery()}),this.started=!1}[Symbol.toStringTag]="@libp2p/circuit-relay-v2-transport";[Ga]=["@libp2p/transport","@libp2p/circuit-relay-v2-transport"];get[ja](){return this.discovery!=null?["@libp2p/identify"]:[]}[Ka]=!0;isStarted(){return this.started}async start(){await this.registrar.handle(dr,e=>{this.onStop(e).catch(t=>{this.log.error("error while handling STOP protocol",t),e.stream.abort(t)})},{maxInboundStreams:this.maxInboundStopStreams,maxOutboundStreams:this.maxOutboundStopStreams,runOnTransientConnection:!0}),await za(this.discovery,this.reservationStore),this.started=!0}async stop(){await $a(this.discovery,this.reservationStore),await this.registrar.unhandle(dr),this.started=!1}async dial(e,t){if(e.protoCodes().filter(p=>p===290).length!==1){let p="Invalid circuit relay address";throw this.log.error(p,e),new D(p,ua)}let n=e.toString().split("/p2p-circuit"),s=Ee(n[0]),i=Ee(n[n.length-1]),o=s.getPeerId(),a=i.getPeerId();if(o==null||a==null){let p=`Circuit relay dial to ${e.toString()} failed as address did not have peer ids`;throw this.log.error(p),new D(p,ua)}let c=Dt(o),h=Dt(a),f=!1,d=this.connectionManager.getConnections(c)[0];d==null?(await this.peerStore.merge(c,{multiaddrs:[s]}),t.onProgress?.(new Jt("circuit-relay:open-connection")),d=await this.connectionManager.openConnection(c,t),f=!0):t.onProgress?.(new Jt("circuit-relay:reuse-connection"));let l;try{return t.onProgress?.(new Jt("circuit-relay:open-hop-stream")),l=await d.newStream(Ye),await this.connectV2({stream:l,connection:d,destinationPeer:h,destinationAddr:i,relayAddr:s,ma:e,disconnectOnFailure:f,onProgress:t.onProgress})}catch(p){throw this.log.error("circuit relay dial to destination %p via relay %p failed",h,c,p),l?.abort(p),f&&await d.close(),p}}async connectV2({stream:e,connection:t,destinationPeer:n,destinationAddr:s,relayAddr:i,ma:o,disconnectOnFailure:a,onProgress:c}){try{let h=Zt(e),f=h.pb(Z);c?.(new Jt("circuit-relay:write-connect-message")),await f.write({type:Z.Type.CONNECT,peer:{id:n.toBytes(),addrs:[Ee(s).bytes]}}),c?.(new Jt("circuit-relay:read-connect-response"));let u=await f.read();if(u.status!==q.OK)throw new D(`failed to connect via relay with status ${u?.status?.toString()??"undefined"}`,Lu);let d=Sa({stream:h.unwrap(),remoteAddr:o,localAddr:i.encapsulate(`/p2p-circuit/p2p/${this.peerId.toString()}`),logger:this.logger});return this.log("new outbound relayed connection %a",d.remoteAddr),await this.upgrader.upgradeOutbound(d,{transient:u.limit!=null,onProgress:c})}catch(h){throw this.log.error(`Circuit relay dial to destination ${n.toString()} via relay ${t.remotePeer.toString()} failed`,h),a&&await t.close(),h}}createListener(e){return ef({connectionManager:this.connectionManager,relayStore:this.reservationStore,logger:this.logger})}listenFilter(e){return e=Array.isArray(e)?e:[e],e.filter(t=>Nt.matches(t))}dialFilter(e){return this.listenFilter(e)}async onStop({connection:e,stream:t}){if(!this.reservationStore.hasReservation(e.remotePeer))try{this.log("dialed via relay we did not have a reservation on, start listening on that relay address"),await this.transportManager.listen([e.remoteAddr.encapsulate("/p2p-circuit")])}catch(f){this.log.error("failed to listen on a relay peer we were dialed via but did not have a reservation on",f)}let n=AbortSignal.timeout(this.stopTimeout),s=Zt(t).pb(qe),i=await s.read({signal:n});if(this.log("new circuit relay v2 stop stream from %p with type %s",e.remotePeer,i.type),i?.type===void 0){this.log.error("type was missing from circuit v2 stop protocol request from %s",e.remotePeer),await s.write({type:qe.Type.STATUS,status:q.MALFORMED_MESSAGE},{signal:n}),await t.close();return}if(i.type!==qe.Type.CONNECT){this.log.error("invalid stop connect request via peer %p",e.remotePeer),await s.write({type:qe.Type.STATUS,status:q.UNEXPECTED_MESSAGE},{signal:n}),await t.close();return}if(!R0(i)){this.log.error("invalid stop connect request via peer %p",e.remotePeer),await s.write({type:qe.Type.STATUS,status:q.MALFORMED_MESSAGE},{signal:n}),await t.close();return}let o=nn(i.peer.id);if(await this.connectionGater.denyInboundRelayedConnection?.(e.remotePeer,o)===!0){this.log.error("connection gater denied inbound relayed connection from %p",e.remotePeer),await s.write({type:qe.Type.STATUS,status:q.PERMISSION_DENIED},{signal:n}),await t.close();return}this.log.trace("sending success response to %p",e.remotePeer),await s.write({type:qe.Type.STATUS,status:q.OK},{signal:n});let a=e.remoteAddr.encapsulate(`/p2p-circuit/p2p/${o.toString()}`),c=this.addressManager.getAddresses()[0],h=Sa({stream:s.unwrap().unwrap(),remoteAddr:a,localAddr:c,logger:this.logger});this.log("new inbound relayed connection %a",h.remoteAddr),await this.upgrader.upgradeInbound(h,{transient:i.limit!=null}),this.log("%s connection %a upgraded","inbound",h.remoteAddr)}};function tf(r={}){return e=>new bi(e,r)}return mf(N0);})();
4
+ `));let e=this.idBlock.tagClass===3?`[${this.idBlock.tagNumber}]`:this.constructor.NAME;return t.length?`${e} :
5
+ ${t.join(`
6
+ `)}`:`${e} :`}};Wc=Me;N.Constructed=Wc;Me.NAME="CONSTRUCTED";var jn=class extends At{fromBER(t,e,n){return e}toBER(t){return Jt}};jn.override="EndOfContentValueBlock";var jc,Zn=class extends bt{constructor(t={}){super(t,jn),this.idBlock.tagClass=1,this.idBlock.tagNumber=0}};jc=Zn;N.EndOfContent=jc;Zn.NAME=Yr;var Zc,vr=class extends bt{constructor(t={}){super(t,At),this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(t,e,n){return this.lenBlock.length>0&&this.warnings.push("Non-zero length of value block for Null type"),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.blockLength+=n,e+n>t.byteLength?(this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1):e+n}toBER(t,e){let n=new ArrayBuffer(2);if(!t){let s=new Uint8Array(n);s[0]=5,s[1]=0}return e&&e.write(n),n}onAsciiEncoding(){return`${this.constructor.NAME}`}};Zc=vr;N.Null=Zc;vr.NAME="NULL";var Xn=class extends ve(At){constructor({value:t,...e}={}){super(e),e.valueHex?this.valueHexView=$.BufferSourceConverter.toUint8Array(e.valueHex):this.valueHexView=new Uint8Array(1),t&&(this.value=t)}get value(){for(let t of this.valueHexView)if(t>0)return!0;return!1}set value(t){this.valueHexView[0]=t?255:0}fromBER(t,e,n){let s=$.BufferSourceConverter.toUint8Array(t);return xe(this,s,e,n)?(this.valueHexView=s.subarray(e,e+n),n>1&&this.warnings.push("Boolean value encoded in more then 1 octet"),this.isHexOnly=!0,ko.call(this),this.blockLength=n,e+n):-1}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}};Xn.NAME="BooleanValueBlock";var Xc,Yn=class extends bt{constructor(t={}){super(t,Xn),this.idBlock.tagClass=1,this.idBlock.tagNumber=1}getValue(){return this.valueBlock.value}setValue(t){this.valueBlock.value=t}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}};Xc=Yn;N.Boolean=Xc;Yn.NAME="BOOLEAN";var Jn=class extends ve(ne){constructor({isConstructed:t=!1,...e}={}){super(e),this.isConstructed=t}fromBER(t,e,n){let s=0;if(this.isConstructed){if(this.isHexOnly=!1,s=ne.prototype.fromBER.call(this,t,e,n),s===-1)return s;for(let i=0;i<this.value.length;i++){let o=this.value[i].constructor.NAME;if(o===Yr){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1}if(o!==Kc)return this.error="OCTET STRING may consists of OCTET STRINGs only",-1}}else this.isHexOnly=!0,s=super.fromBER(t,e,n),this.blockLength=n;return s}toBER(t,e){return this.isConstructed?ne.prototype.toBER.call(this,t,e):t?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),isConstructed:this.isConstructed}}};Jn.NAME="OctetStringValueBlock";var Yc,Qn=class r extends bt{constructor({idBlock:t={},lenBlock:e={},...n}={}){var s,i;(s=n.isConstructed)!==null&&s!==void 0||(n.isConstructed=!!(!((i=n.value)===null||i===void 0)&&i.length)),super({idBlock:{isConstructed:n.isConstructed,...t},lenBlock:{...e,isIndefiniteForm:!!n.isIndefiniteForm},...n},Jn),this.idBlock.tagClass=1,this.idBlock.tagNumber=4}fromBER(t,e,n){if(this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,n===0)return this.idBlock.error.length===0&&(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length===0&&(this.blockLength+=this.lenBlock.blockLength),e;if(!this.valueBlock.isConstructed){let i=(t instanceof ArrayBuffer?new Uint8Array(t):t).subarray(e,e+n);try{if(i.byteLength){let o=Is(i,0,i.byteLength);o.offset!==-1&&o.offset===n&&(this.valueBlock.value=[o.result])}}catch{}}return super.fromBER(t,e,n)}onAsciiEncoding(){return this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length?Me.prototype.onAsciiEncoding.call(this):`${this.constructor.NAME} : ${$.Convert.ToHex(this.valueBlock.valueHexView)}`}getValue(){if(!this.idBlock.isConstructed)return this.valueBlock.valueHexView.slice().buffer;let t=[];for(let e of this.valueBlock.value)e instanceof r&&t.push(e.valueBlock.valueHexView);return $.BufferSourceConverter.concat(t)}};Yc=Qn;N.OctetString=Yc;Qn.NAME=Kc;var ts=class extends ve(ne){constructor({unusedBits:t=0,isConstructed:e=!1,...n}={}){super(n),this.unusedBits=t,this.isConstructed=e,this.blockLength=this.valueHexView.byteLength}fromBER(t,e,n){if(!n)return e;let s=-1;if(this.isConstructed){if(s=ne.prototype.fromBER.call(this,t,e,n),s===-1)return s;for(let a of this.value){let c=a.constructor.NAME;if(c===Yr){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only",-1}if(c!==zc)return this.error="BIT STRING may consists of BIT STRINGs only",-1;let h=a.valueBlock;if(this.unusedBits>0&&h.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=h.unusedBits}return s}let i=$.BufferSourceConverter.toUint8Array(t);if(!xe(this,i,e,n))return-1;let o=i.subarray(e,e+n);if(this.unusedBits=o[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){let a=o.subarray(1);try{if(a.byteLength){let c=Is(a,0,a.byteLength);c.offset!==-1&&c.offset===n-1&&(this.value=[c.result])}}catch{}}return this.valueHexView=o.subarray(1),this.blockLength=o.length,e+n}toBER(t,e){if(this.isConstructed)return ne.prototype.toBER.call(this,t,e);if(t)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength)return Jt;let n=new Uint8Array(this.valueHexView.length+1);return n[0]=this.unusedBits,n.set(this.valueHexView,1),n.buffer}toJSON(){return{...super.toJSON(),unusedBits:this.unusedBits,isConstructed:this.isConstructed}}};ts.NAME="BitStringValueBlock";var Jc,Er=class extends bt{constructor({idBlock:t={},lenBlock:e={},...n}={}){var s,i;(s=n.isConstructed)!==null&&s!==void 0||(n.isConstructed=!!(!((i=n.value)===null||i===void 0)&&i.length)),super({idBlock:{isConstructed:n.isConstructed,...t},lenBlock:{...e,isIndefiniteForm:!!n.isIndefiniteForm},...n},ts),this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(t,e,n){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(t,e,n)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return Me.prototype.onAsciiEncoding.call(this);{let t=[],e=this.valueBlock.valueHexView;for(let s of e)t.push(s.toString(2).padStart(8,"0"));let n=t.join("");return`${this.constructor.NAME} : ${n.substring(0,n.length-this.valueBlock.unusedBits)}`}}};Jc=Er;N.BitString=Jc;Er.NAME=zc;var Qc;function zd(r,t){let e=new Uint8Array([0]),n=new Uint8Array(r),s=new Uint8Array(t),i=n.slice(0),o=i.length-1,a=s.slice(0),c=a.length-1,h=0,f=c<o?o:c,u=0;for(let p=f;p>=0;p--,u++){switch(!0){case u<a.length:h=i[o-u]+a[c-u]+e[0];break;default:h=i[o-u]+e[0]}switch(e[0]=h/10,!0){case u>=i.length:i=Fn(new Uint8Array([h%10]),i);break;default:i[o-u]=h%10}}return e[0]>0&&(i=Fn(e,i)),i}function qc(r){if(r>=Zr.length)for(let t=Zr.length;t<=r;t++){let e=new Uint8Array([0]),n=Zr[t-1].slice(0);for(let s=n.length-1;s>=0;s--){let i=new Uint8Array([(n[s]<<1)+e[0]]);e[0]=i[0]/10,n[s]=i[0]%10}e[0]>0&&(n=Fn(e,n)),Zr.push(n)}return Zr[r]}function $d(r,t){let e=0,n=new Uint8Array(r),s=new Uint8Array(t),i=n.slice(0),o=i.length-1,a=s.slice(0),c=a.length-1,h,f=0;for(let u=c;u>=0;u--,f++)switch(h=i[o-f]-a[c-f]-e,!0){case h<0:e=1,i[o-f]=h+10;break;default:e=0,i[o-f]=h}if(e>0)for(let u=o-c+1;u>=0;u--,f++)if(h=i[o-f]-e,h<0)e=1,i[o-f]=h+10;else{e=0,i[o-f]=h;break}return i.slice()}var Jr=class extends ve(At){constructor({value:t,...e}={}){super(e),this._valueDec=0,e.valueHex&&this.setValueHex(),t!==void 0&&(this.valueDec=t)}setValueHex(){this.valueHexView.length>=4?(this.warnings.push("Too big Integer for decoding, hex only"),this.isHexOnly=!0,this._valueDec=0):(this.isHexOnly=!1,this.valueHexView.length>0&&(this._valueDec=ko.call(this)))}set valueDec(t){this._valueDec=t,this.isHexOnly=!1,this.valueHexView=new Uint8Array(Vc(t))}get valueDec(){return this._valueDec}fromDER(t,e,n,s=0){let i=this.fromBER(t,e,n);if(i===-1)return i;let o=this.valueHexView;return o[0]===0&&o[1]&128?this.valueHexView=o.subarray(1):s!==0&&o.length<s&&(s-o.length>1&&(s=o.length+1),this.valueHexView=o.subarray(s-o.length)),i}toDER(t=!1){let e=this.valueHexView;switch(!0){case(e[0]&128)!==0:{let n=new Uint8Array(this.valueHexView.length+1);n[0]=0,n.set(e,1),this.valueHexView=n}break;case(e[0]===0&&(e[1]&128)===0):this.valueHexView=this.valueHexView.subarray(1);break}return this.toBER(t)}fromBER(t,e,n){let s=super.fromBER(t,e,n);return s===-1||this.setValueHex(),s}toBER(t){return t?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){let t=this.valueHexView.length*8-1,e=new Uint8Array(this.valueHexView.length*8/3),n=0,s,i=this.valueHexView,o="",a=!1;for(let c=i.byteLength-1;c>=0;c--){s=i[c];for(let h=0;h<8;h++){if((s&1)===1)switch(n){case t:e=$d(qc(n),e),o="-";break;default:e=zd(e,qc(n))}n++,s>>=1}}for(let c=0;c<e.length;c++)e[c]&&(a=!0),a&&(o+=Fc.charAt(e[c]));return a===!1&&(o+=Fc.charAt(0)),o}};Qc=Jr;Jr.NAME="IntegerValueBlock";Object.defineProperty(Qc.prototype,"valueHex",{set:function(r){this.valueHexView=new Uint8Array(r),this.setValueHex()},get:function(){return this.valueHexView.slice().buffer}});var tl,wt=class r extends bt{constructor(t={}){super(t,Jr),this.idBlock.tagClass=1,this.idBlock.tagNumber=2}toBigInt(){return qn(),BigInt(this.valueBlock.toString())}static fromBigInt(t){qn();let e=BigInt(t),n=new Xr,s=e.toString(16).replace(/^-/,""),i=new Uint8Array($.Convert.FromHex(s));if(e<0){let a=new Uint8Array(i.length+(i[0]&128?1:0));a[0]|=128;let h=BigInt(`0x${$.Convert.ToHex(a)}`)+e,f=$.BufferSourceConverter.toUint8Array($.Convert.FromHex(h.toString(16)));f[0]|=128,n.write(f)}else i[0]&128&&n.write(new Uint8Array([0])),n.write(i);return new r({valueHex:n.final()})}convertToDER(){let t=new r({valueHex:this.valueBlock.valueHexView});return t.valueBlock.toDER(),t}convertFromDER(){return new r({valueHex:this.valueBlock.valueHexView[0]===0?this.valueBlock.valueHexView.subarray(1):this.valueBlock.valueHexView})}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()}`}};tl=wt;N.Integer=tl;wt.NAME="INTEGER";var el,es=class extends wt{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=10}};el=es;N.Enumerated=el;es.NAME="ENUMERATED";var Qr=class extends ve(At){constructor({valueDec:t=-1,isFirstSid:e=!1,...n}={}){super(n),this.valueDec=t,this.isFirstSid=e}fromBER(t,e,n){if(!n)return e;let s=$.BufferSourceConverter.toUint8Array(t);if(!xe(this,s,e,n))return-1;let i=s.subarray(e,e+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=i[a]&127,this.blockLength++,!!(i[a]&128));a++);let o=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)o[a]=this.valueHexView[a];return this.valueHexView=o,i[this.blockLength-1]&128?(this.error="End of input reached before message was fully decoded",-1):(this.valueHexView[0]===0&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=Ye(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),e+this.blockLength)}set valueBigInt(t){qn();let e=BigInt(t).toString(2);for(;e.length%7;)e="0"+e;let n=new Uint8Array(e.length/7);for(let s=0;s<n.length;s++)n[s]=parseInt(e.slice(s*7,s*7+7),2)+(s+1<n.length?128:0);this.fromBER(n.buffer,0,n.length)}toBER(t){if(this.isHexOnly){if(t)return new ArrayBuffer(this.valueHexView.byteLength);let s=this.valueHexView,i=new Uint8Array(this.blockLength);for(let o=0;o<this.blockLength-1;o++)i[o]=s[o]|128;return i[this.blockLength-1]=s[this.blockLength-1],i.buffer}let e=Oe(this.valueDec,7);if(e.byteLength===0)return this.error="Error during encoding SID value",Jt;let n=new Uint8Array(e.byteLength);if(!t){let s=new Uint8Array(e),i=e.byteLength-1;for(let o=0;o<i;o++)n[o]=s[o]|128;n[i]=s[i]}return n}toString(){let t="";if(this.isHexOnly)t=$.Convert.ToHex(this.valueHexView);else if(this.isFirstSid){let e=this.valueDec;this.valueDec<=39?t="0.":this.valueDec<=79?(t="1.",e-=40):(t="2.",e-=80),t+=e.toString()}else t=this.valueDec.toString();return t}toJSON(){return{...super.toJSON(),valueDec:this.valueDec,isFirstSid:this.isFirstSid}}};Qr.NAME="sidBlock";var rs=class extends At{constructor({value:t=Ar,...e}={}){super(e),this.value=[],t&&this.fromString(t)}fromBER(t,e,n){let s=e;for(;n>0;){let i=new Qr;if(s=i.fromBER(t,s,n),s===-1)return this.blockLength=0,this.error=i.error,s;this.value.length===0&&(i.isFirstSid=!0),this.blockLength+=i.blockLength,n-=i.blockLength,this.value.push(i)}return s}toBER(t){let e=[];for(let n=0;n<this.value.length;n++){let s=this.value[n].toBER(t);if(s.byteLength===0)return this.error=this.value[n].error,Jt;e.push(s)}return To(e)}fromString(t){this.value=[];let e=0,n=0,s="",i=!1;do if(n=t.indexOf(".",e),n===-1?s=t.substring(e):s=t.substring(e,n),e=n+1,i){let o=this.value[0],a=0;switch(o.valueDec){case 0:break;case 1:a=40;break;case 2:a=80;break;default:this.value=[];return}let c=parseInt(s,10);if(isNaN(c))return;o.valueDec=c+a,i=!1}else{let o=new Qr;if(s>Number.MAX_SAFE_INTEGER){qn();let a=BigInt(s);o.valueBigInt=a}else if(o.valueDec=parseInt(s,10),isNaN(o.valueDec))return;this.value.length||(o.isFirstSid=!0,i=!0),this.value.push(o)}while(n!==-1)}toString(){let t="",e=!1;for(let n=0;n<this.value.length;n++){e=this.value[n].isHexOnly;let s=this.value[n].toString();n!==0&&(t=`${t}.`),e?(s=`{${s}}`,this.value[n].isFirstSid?t=`2.{${s} - 80}`:t+=s):t+=s}return t}toJSON(){let t={...super.toJSON(),value:this.toString(),sidArray:[]};for(let e=0;e<this.value.length;e++)t.sidArray.push(this.value[e].toJSON());return t}};rs.NAME="ObjectIdentifierValueBlock";var rl,Sr=class extends bt{constructor(t={}){super(t,rs),this.idBlock.tagClass=1,this.idBlock.tagNumber=6}getValue(){return this.valueBlock.toString()}setValue(t){this.valueBlock.fromString(t)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};rl=Sr;N.ObjectIdentifier=rl;Sr.NAME="OBJECT IDENTIFIER";var tn=class extends ve(ye){constructor({valueDec:t=0,...e}={}){super(e),this.valueDec=t}fromBER(t,e,n){if(n===0)return e;let s=$.BufferSourceConverter.toUint8Array(t);if(!xe(this,s,e,n))return-1;let i=s.subarray(e,e+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=i[a]&127,this.blockLength++,!!(i[a]&128));a++);let o=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)o[a]=this.valueHexView[a];return this.valueHexView=o,i[this.blockLength-1]&128?(this.error="End of input reached before message was fully decoded",-1):(this.valueHexView[0]===0&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=Ye(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),e+this.blockLength)}toBER(t){if(this.isHexOnly){if(t)return new ArrayBuffer(this.valueHexView.byteLength);let s=this.valueHexView,i=new Uint8Array(this.blockLength);for(let o=0;o<this.blockLength-1;o++)i[o]=s[o]|128;return i[this.blockLength-1]=s[this.blockLength-1],i.buffer}let e=Oe(this.valueDec,7);if(e.byteLength===0)return this.error="Error during encoding SID value",Jt;let n=new Uint8Array(e.byteLength);if(!t){let s=new Uint8Array(e),i=e.byteLength-1;for(let o=0;o<i;o++)n[o]=s[o]|128;n[i]=s[i]}return n.buffer}toString(){let t="";return this.isHexOnly?t=$.Convert.ToHex(this.valueHexView):t=this.valueDec.toString(),t}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}};tn.NAME="relativeSidBlock";var ns=class extends At{constructor({value:t=Ar,...e}={}){super(e),this.value=[],t&&this.fromString(t)}fromBER(t,e,n){let s=e;for(;n>0;){let i=new tn;if(s=i.fromBER(t,s,n),s===-1)return this.blockLength=0,this.error=i.error,s;this.blockLength+=i.blockLength,n-=i.blockLength,this.value.push(i)}return s}toBER(t,e){let n=[];for(let s=0;s<this.value.length;s++){let i=this.value[s].toBER(t);if(i.byteLength===0)return this.error=this.value[s].error,Jt;n.push(i)}return To(n)}fromString(t){this.value=[];let e=0,n=0,s="";do{n=t.indexOf(".",e),n===-1?s=t.substring(e):s=t.substring(e,n),e=n+1;let i=new tn;if(i.valueDec=parseInt(s,10),isNaN(i.valueDec))return!0;this.value.push(i)}while(n!==-1);return!0}toString(){let t="",e=!1;for(let n=0;n<this.value.length;n++){e=this.value[n].isHexOnly;let s=this.value[n].toString();n!==0&&(t=`${t}.`),e&&(s=`{${s}}`),t+=s}return t}toJSON(){let t={...super.toJSON(),value:this.toString(),sidArray:[]};for(let e=0;e<this.value.length;e++)t.sidArray.push(this.value[e].toJSON());return t}};ns.NAME="RelativeObjectIdentifierValueBlock";var nl,ss=class extends bt{constructor(t={}){super(t,ns),this.idBlock.tagClass=1,this.idBlock.tagNumber=13}getValue(){return this.valueBlock.toString()}setValue(t){this.valueBlock.fromString(t)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};nl=ss;N.RelativeObjectIdentifier=nl;ss.NAME="RelativeObjectIdentifier";var sl,be=class extends Me{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=16}};sl=be;N.Sequence=sl;be.NAME="SEQUENCE";var il,is=class extends Me{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=17}};il=is;N.Set=il;is.NAME="SET";var os=class extends ve(At){constructor({...t}={}){super(t),this.isHexOnly=!0,this.value=Ar}toJSON(){return{...super.toJSON(),value:this.value}}};os.NAME="StringValueBlock";var as=class extends os{};as.NAME="SimpleStringValueBlock";var It=class extends $n{constructor({...t}={}){super(t,as)}fromBuffer(t){this.valueBlock.value=String.fromCharCode.apply(null,$.BufferSourceConverter.toUint8Array(t))}fromString(t){let e=t.length,n=this.valueBlock.valueHexView=new Uint8Array(e);for(let s=0;s<e;s++)n[s]=t.charCodeAt(s);this.valueBlock.value=t}};It.NAME="SIMPLE STRING";var cs=class extends It{fromBuffer(t){this.valueBlock.valueHexView=$.BufferSourceConverter.toUint8Array(t);try{this.valueBlock.value=$.Convert.ToUtf8String(t)}catch(e){this.warnings.push(`Error during "decodeURIComponent": ${e}, using raw string`),this.valueBlock.value=$.Convert.ToBinary(t)}}fromString(t){this.valueBlock.valueHexView=new Uint8Array($.Convert.FromUtf8String(t)),this.valueBlock.value=t}};cs.NAME="Utf8StringValueBlock";var ol,we=class extends cs{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=12}};ol=we;N.Utf8String=ol;we.NAME="UTF8String";var ls=class extends It{fromBuffer(t){this.valueBlock.value=$.Convert.ToUtf16String(t),this.valueBlock.valueHexView=$.BufferSourceConverter.toUint8Array(t)}fromString(t){this.valueBlock.value=t,this.valueBlock.valueHexView=new Uint8Array($.Convert.FromUtf16String(t))}};ls.NAME="BmpStringValueBlock";var al,us=class extends ls{constructor({...t}={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=30}};al=us;N.BmpString=al;us.NAME="BMPString";var fs=class extends It{fromBuffer(t){let e=ArrayBuffer.isView(t)?t.slice().buffer:t.slice(0),n=new Uint8Array(e);for(let s=0;s<n.length;s+=4)n[s]=n[s+3],n[s+1]=n[s+2],n[s+2]=0,n[s+3]=0;this.valueBlock.value=String.fromCharCode.apply(null,new Uint32Array(e))}fromString(t){let e=t.length,n=this.valueBlock.valueHexView=new Uint8Array(e*4);for(let s=0;s<e;s++){let i=Oe(t.charCodeAt(s),8),o=new Uint8Array(i);if(o.length>4)continue;let a=4-o.length;for(let c=o.length-1;c>=0;c--)n[s*4+c+a]=o[c]}this.valueBlock.value=t}};fs.NAME="UniversalStringValueBlock";var cl,hs=class extends fs{constructor({...t}={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=28}};cl=hs;N.UniversalString=cl;hs.NAME="UniversalString";var ll,ds=class extends It{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=18}};ll=ds;N.NumericString=ll;ds.NAME="NumericString";var ul,ps=class extends It{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=19}};ul=ps;N.PrintableString=ul;ps.NAME="PrintableString";var fl,gs=class extends It{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=20}};fl=gs;N.TeletexString=fl;gs.NAME="TeletexString";var hl,ms=class extends It{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=21}};hl=ms;N.VideotexString=hl;ms.NAME="VideotexString";var dl,ys=class extends It{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=22}};dl=ys;N.IA5String=dl;ys.NAME="IA5String";var pl,bs=class extends It{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=25}};pl=bs;N.GraphicString=pl;bs.NAME="GraphicString";var gl,en=class extends It{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=26}};gl=en;N.VisibleString=gl;en.NAME="VisibleString";var ml,ws=class extends It{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=27}};ml=ws;N.GeneralString=ml;ws.NAME="GeneralString";var yl,xs=class extends It{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=29}};yl=xs;N.CharacterString=yl;xs.NAME="CharacterString";var bl,rn=class extends en{constructor({value:t,valueDate:e,...n}={}){if(super(n),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,t){this.fromString(t),this.valueBlock.valueHexView=new Uint8Array(t.length);for(let s=0;s<t.length;s++)this.valueBlock.valueHexView[s]=t.charCodeAt(s)}e&&(this.fromDate(e),this.valueBlock.valueHexView=new Uint8Array(this.toBuffer())),this.idBlock.tagClass=1,this.idBlock.tagNumber=23}fromBuffer(t){this.fromString(String.fromCharCode.apply(null,$.BufferSourceConverter.toUint8Array(t)))}toBuffer(){let t=this.toString(),e=new ArrayBuffer(t.length),n=new Uint8Array(e);for(let s=0;s<t.length;s++)n[s]=t.charCodeAt(s);return e}fromDate(t){this.year=t.getUTCFullYear(),this.month=t.getUTCMonth()+1,this.day=t.getUTCDate(),this.hour=t.getUTCHours(),this.minute=t.getUTCMinutes(),this.second=t.getUTCSeconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second))}fromString(t){let n=/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z/ig.exec(t);if(n===null){this.error="Wrong input string for conversion";return}let s=parseInt(n[1],10);s>=50?this.year=1900+s:this.year=2e3+s,this.month=parseInt(n[2],10),this.day=parseInt(n[3],10),this.hour=parseInt(n[4],10),this.minute=parseInt(n[5],10),this.second=parseInt(n[6],10)}toString(t="iso"){if(t==="iso"){let e=new Array(7);return e[0]=Rt(this.year<2e3?this.year-1900:this.year-2e3,2),e[1]=Rt(this.month,2),e[2]=Rt(this.day,2),e[3]=Rt(this.hour,2),e[4]=Rt(this.minute,2),e[5]=Rt(this.second,2),e[6]="Z",e.join("")}return super.toString(t)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.toDate().toISOString()}`}toJSON(){return{...super.toJSON(),year:this.year,month:this.month,day:this.day,hour:this.hour,minute:this.minute,second:this.second}}};bl=rn;N.UTCTime=bl;rn.NAME="UTCTime";var wl,vs=class extends rn{constructor(t={}){var e;super(t),(e=this.millisecond)!==null&&e!==void 0||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(t){super.fromDate(t),this.millisecond=t.getUTCMilliseconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond))}fromString(t){let e=!1,n="",s="",i=0,o,a=0,c=0;if(t[t.length-1]==="Z")n=t.substring(0,t.length-1),e=!0;else{let u=new Number(t[t.length-1]);if(isNaN(u.valueOf()))throw new Error("Wrong input string for conversion");n=t}if(e){if(n.indexOf("+")!==-1)throw new Error("Wrong input string for conversion");if(n.indexOf("-")!==-1)throw new Error("Wrong input string for conversion")}else{let u=1,p=n.indexOf("+"),l="";if(p===-1&&(p=n.indexOf("-"),u=-1),p!==-1){if(l=n.substring(p+1),n=n.substring(0,p),l.length!==2&&l.length!==4)throw new Error("Wrong input string for conversion");let d=parseInt(l.substring(0,2),10);if(isNaN(d.valueOf()))throw new Error("Wrong input string for conversion");if(a=u*d,l.length===4){if(d=parseInt(l.substring(2,4),10),isNaN(d.valueOf()))throw new Error("Wrong input string for conversion");c=u*d}}}let h=n.indexOf(".");if(h===-1&&(h=n.indexOf(",")),h!==-1){let u=new Number(`0${n.substring(h)}`);if(isNaN(u.valueOf()))throw new Error("Wrong input string for conversion");i=u.valueOf(),s=n.substring(0,h)}else s=n;switch(!0){case s.length===8:if(o=/(\d{4})(\d{2})(\d{2})/ig,h!==-1)throw new Error("Wrong input string for conversion");break;case s.length===10:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,h!==-1){let u=60*i;this.minute=Math.floor(u),u=60*(u-this.minute),this.second=Math.floor(u),u=1e3*(u-this.second),this.millisecond=Math.floor(u)}break;case s.length===12:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,h!==-1){let u=60*i;this.second=Math.floor(u),u=1e3*(u-this.second),this.millisecond=Math.floor(u)}break;case s.length===14:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,h!==-1){let u=1e3*i;this.millisecond=Math.floor(u)}break;default:throw new Error("Wrong input string for conversion")}let f=o.exec(s);if(f===null)throw new Error("Wrong input string for conversion");for(let u=1;u<f.length;u++)switch(u){case 1:this.year=parseInt(f[u],10);break;case 2:this.month=parseInt(f[u],10);break;case 3:this.day=parseInt(f[u],10);break;case 4:this.hour=parseInt(f[u],10)+a;break;case 5:this.minute=parseInt(f[u],10)+c;break;case 6:this.second=parseInt(f[u],10);break;default:throw new Error("Wrong input string for conversion")}if(e===!1){let u=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond);this.year=u.getUTCFullYear(),this.month=u.getUTCMonth(),this.day=u.getUTCDay(),this.hour=u.getUTCHours(),this.minute=u.getUTCMinutes(),this.second=u.getUTCSeconds(),this.millisecond=u.getUTCMilliseconds()}}toString(t="iso"){if(t==="iso"){let e=[];return e.push(Rt(this.year,4)),e.push(Rt(this.month,2)),e.push(Rt(this.day,2)),e.push(Rt(this.hour,2)),e.push(Rt(this.minute,2)),e.push(Rt(this.second,2)),this.millisecond!==0&&(e.push("."),e.push(Rt(this.millisecond,3))),e.push("Z"),e.join("")}return super.toString(t)}toJSON(){return{...super.toJSON(),millisecond:this.millisecond}}};wl=vs;N.GeneralizedTime=wl;vs.NAME="GeneralizedTime";var xl,Es=class extends we{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=31}};xl=Es;N.DATE=xl;Es.NAME="DATE";var vl,Ss=class extends we{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=32}};vl=Ss;N.TimeOfDay=vl;Ss.NAME="TimeOfDay";var El,As=class extends we{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=33}};El=As;N.DateTime=El;As.NAME="DateTime";var Sl,Bs=class extends we{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=34}};Sl=Bs;N.Duration=Sl;Bs.NAME="Duration";var Al,_s=class extends we{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=14}};Al=_s;N.TIME=Al;_s.NAME="TIME";function j(r,t="utf8"){let e=On[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.encoder.encode(r).substring(1)}function ks(r){if(isNaN(r)||r<=0)throw new pt("random bytes length must be a Number bigger than 0");return dr(r)}var nn=class extends Error{constructor(t="An error occurred while verifying a message"){super(t),this.name="VerificationError"}},Ts=class extends Error{constructor(t="Missing Web Crypto API"){super(t),this.name="WebCryptoMissingError"}};var Bl={get(r=globalThis){let t=r.crypto;if(t?.subtle==null)throw new Ts("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p/blob/main/packages/crypto/README.md#web-crypto-api");return t}};var Pe=Bl;async function _l(r){let t=await Pe.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),e=await Wd(t);return{privateKey:e[0],publicKey:e[1]}}async function Il(r,t){let e=await Pe.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await Pe.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},e,t instanceof Uint8Array?t:t.subarray());return new Uint8Array(n,0,n.byteLength)}async function kl(r,t,e){let n=await Pe.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return Pe.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,e instanceof Uint8Array?e:e.subarray())}async function Wd(r){if(r.privateKey==null||r.publicKey==null)throw new pt("Private and public key are required");return Promise.all([Pe.get().subtle.exportKey("jwk",r.privateKey),Pe.get().subtle.exportKey("jwk",r.publicKey)])}function Ro(r){if(r.kty!=="RSA")throw new pt("invalid key type");if(r.n==null)throw new pt("invalid key modulus");return F(r.n,"base64url").length*8}var Br=class{type="RSA";_key;_raw;_multihash;constructor(t,e){this._key=t,this._multihash=e}get raw(){return this._raw==null&&(this._raw=sn.jwkToPkix(this._key)),this._raw}toMultihash(){return this._multihash}toCID(){return gt.createV1(114,this._multihash)}toString(){return tt.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:ct(this.raw,t.raw)}verify(t,e){return kl(this._key,e,t)}},on=class{type="RSA";_key;_raw;publicKey;constructor(t,e){this._key=t,this.publicKey=e}get raw(){return this._raw==null&&(this._raw=sn.jwkToPkcs1(this._key)),this._raw}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:ct(this.raw,t.raw)}sign(t){return Il(this._key,t)}};var Ns=8192,Lo=18;function Tl(r){let{result:t}=Co(r),e=t.valueBlock.value;return{n:j(se(e[1].toBigInt()),"base64url"),e:j(se(e[2].toBigInt()),"base64url"),d:j(se(e[3].toBigInt()),"base64url"),p:j(se(e[4].toBigInt()),"base64url"),q:j(se(e[5].toBigInt()),"base64url"),dp:j(se(e[6].toBigInt()),"base64url"),dq:j(se(e[7].toBigInt()),"base64url"),qi:j(se(e[8].toBigInt()),"base64url"),kty:"RSA",alg:"RS256"}}function jd(r){if(r.n==null||r.e==null||r.d==null||r.p==null||r.q==null||r.dp==null||r.dq==null||r.qi==null)throw new pt("JWK was missing components");let e=new be({value:[new wt({value:0}),wt.fromBigInt(ie(F(r.n,"base64url"))),wt.fromBigInt(ie(F(r.e,"base64url"))),wt.fromBigInt(ie(F(r.d,"base64url"))),wt.fromBigInt(ie(F(r.p,"base64url"))),wt.fromBigInt(ie(F(r.q,"base64url"))),wt.fromBigInt(ie(F(r.dp,"base64url"))),wt.fromBigInt(ie(F(r.dq,"base64url"))),wt.fromBigInt(ie(F(r.qi,"base64url")))]}).toBER();return new Uint8Array(e,0,e.byteLength)}function Nl(r){let{result:t}=Co(r),e=t.valueBlock.value[1].valueBlock.value[0].valueBlock.value;return{kty:"RSA",n:j(se(e[0].toBigInt()),"base64url"),e:j(se(e[1].toBigInt()),"base64url")}}function Uo(r){if(r.n==null||r.e==null)throw new pt("JWK was missing components");let e=new be({value:[new be({value:[new Sr({value:"1.2.840.113549.1.1.1"}),new vr]}),new Er({valueHex:new be({value:[wt.fromBigInt(ie(F(r.n,"base64url"))),wt.fromBigInt(ie(F(r.e,"base64url")))]}).toBER()})]}).toBER();return new Uint8Array(e,0,e.byteLength)}function se(r){let t=r.toString(16);t.length%2>0&&(t=`0${t}`);let e=t.length/2,n=new Uint8Array(e),s=0,i=0;for(;s<e;)n[s]=parseInt(t.slice(i,i+2),16),s+=1,i+=2;return n}function ie(r){let t=[];return r.forEach(function(e){let n=e.toString(16);n.length%2>0&&(n=`0${n}`),t.push(n)}),BigInt("0x"+t.join(""))}function Cl(r){let t=Tl(r);return Rl(t)}function Do(r){let t=Nl(r);if(Ro(t)>Ns)throw new sr("Key size is too large");let e=wr(re.encode({Type:ft.RSA,Data:r})),n=Wt(Lo,e);return new Br(t,n)}function Rl(r){if(Ro(r)>Ns)throw new pt("Key size is too large");let t=Ul(r),e=wr(re.encode({Type:ft.RSA,Data:Uo(t.publicKey)})),n=Wt(Lo,e);return new on(t.privateKey,new Br(t.publicKey,n))}async function Ll(r){if(r>Ns)throw new pt("Key size is too large");let t=await _l(r),e=wr(re.encode({Type:ft.RSA,Data:Uo(t.publicKey)})),n=Wt(Lo,e);return new on(t.privateKey,new Br(t.publicKey,n))}function Ul(r){if(r==null)throw new pt("Missing key parameter");return{privateKey:r,publicKey:{kty:r.kty,n:r.n,e:r.e}}}var Cs=class extends hr{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,nc(t);let n=Fr(e);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let s=this.blockLen,i=new Uint8Array(s);i.set(n.length>s?t.create().update(n).digest():n);for(let o=0;o<i.length;o++)i[o]^=54;this.iHash.update(i),this.oHash=t.create();for(let o=0;o<i.length;o++)i[o]^=106;this.oHash.update(i),i.fill(0)}update(t){return fr(this),this.iHash.update(t),this}digestInto(t){fr(this),ur(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));let{oHash:e,iHash:n,finished:s,destroyed:i,blockLen:o,outputLen:a}=this;return t=t,t.finished=s,t.destroyed=i,t.blockLen=o,t.outputLen=a,t.oHash=e._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Oo=(r,t,e)=>new Cs(r,t).update(e).digest();Oo.create=(r,t)=>new Cs(r,t);function Dl(r){r.lowS!==void 0&&Zt("lowS",r.lowS),r.prehash!==void 0&&Zt("prehash",r.prehash)}function Zd(r){let t=zr(r);ee(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:e,Fp:n,a:s}=t;if(e){if(!n.eql(s,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof e!="object"||typeof e.beta!="bigint"||typeof e.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}var{bytesToNumberBE:Xd,hexToBytes:Yd}=In,Ee={Err:class extends Error{constructor(t=""){super(t)}},_tlv:{encode:(r,t)=>{let{Err:e}=Ee;if(r<0||r>256)throw new e("tlv.encode: wrong tag");if(t.length&1)throw new e("tlv.encode: unpadded data");let n=t.length/2,s=Ke(n);if(s.length/2&128)throw new e("tlv.encode: long form length too big");let i=n>127?Ke(s.length/2|128):"";return`${Ke(r)}${i}${s}${t}`},decode(r,t){let{Err:e}=Ee,n=0;if(r<0||r>256)throw new e("tlv.encode: wrong tag");if(t.length<2||t[n++]!==r)throw new e("tlv.decode: wrong tlv");let s=t[n++],i=!!(s&128),o=0;if(!i)o=s;else{let c=s&127;if(!c)throw new e("tlv.decode(long): indefinite length not supported");if(c>4)throw new e("tlv.decode(long): byte length is too big");let h=t.subarray(n,n+c);if(h.length!==c)throw new e("tlv.decode: length bytes not complete");if(h[0]===0)throw new e("tlv.decode(long): zero leftmost byte");for(let f of h)o=o<<8|f;if(n+=c,o<128)throw new e("tlv.decode(long): not minimal encoding")}let a=t.subarray(n,n+o);if(a.length!==o)throw new e("tlv.decode: wrong value length");return{v:a,l:t.subarray(n+o)}}},_int:{encode(r){let{Err:t}=Ee;if(r<Se)throw new t("integer: negative integers are not allowed");let e=Ke(r);if(Number.parseInt(e[0],16)&8&&(e="00"+e),e.length&1)throw new t("unexpected assertion");return e},decode(r){let{Err:t}=Ee;if(r[0]&128)throw new t("Invalid signature integer: negative");if(r[0]===0&&!(r[1]&128))throw new t("Invalid signature integer: unnecessary leading zero");return Xd(r)}},toSig(r){let{Err:t,_int:e,_tlv:n}=Ee,s=typeof r=="string"?Yd(r):r;gr(s);let{v:i,l:o}=n.decode(48,s);if(o.length)throw new t("Invalid signature: left bytes after parsing");let{v:a,l:c}=n.decode(2,i),{v:h,l:f}=n.decode(2,c);if(f.length)throw new t("Invalid signature: left bytes after parsing");return{r:e.decode(a),s:e.decode(h)}},hexFromSig(r){let{_tlv:t,_int:e}=Ee,n=`${t.encode(2,e.encode(r.r))}${t.encode(2,e.encode(r.s))}`;return t.encode(48,n)}},Se=BigInt(0),mt=BigInt(1),Wy=BigInt(2),Ol=BigInt(3),jy=BigInt(4);function Jd(r){let t=Zd(r),{Fp:e}=t,n=Re(t.n,t.nBitLength),s=t.toBytes||((m,y,b)=>{let w=y.toAffine();return pe(Uint8Array.from([4]),e.toBytes(w.x),e.toBytes(w.y))}),i=t.fromBytes||(m=>{let y=m.subarray(1),b=e.fromBytes(y.subarray(0,e.BYTES)),w=e.fromBytes(y.subarray(e.BYTES,2*e.BYTES));return{x:b,y:w}});function o(m){let{a:y,b}=t,w=e.sqr(m),g=e.mul(w,m);return e.add(e.add(g,e.mul(m,y)),b)}if(!e.eql(e.sqr(t.Gy),o(t.Gx)))throw new Error("bad generator point: equation left != right");function a(m){return qr(m,mt,t.n)}function c(m){let{allowedPrivateKeyLengths:y,nByteLength:b,wrapPrivateKey:w,n:g}=t;if(y&&typeof m!="bigint"){if(Te(m)&&(m=he(m)),typeof m!="string"||!y.includes(m.length))throw new Error("Invalid key");m=m.padStart(b*2,"0")}let v;try{v=typeof m=="bigint"?m:de(it("private key",m,b))}catch{throw new Error(`private key must be ${b} bytes, hex or bigint, not ${typeof m}`)}return w&&(v=Y(v,g)),Tt("private key",v,mt,g),v}function h(m){if(!(m instanceof p))throw new Error("ProjectivePoint expected")}let f=Ge((m,y)=>{let{px:b,py:w,pz:g}=m;if(e.eql(g,e.ONE))return{x:b,y:w};let v=m.is0();y==null&&(y=v?e.ONE:e.inv(g));let A=e.mul(b,y),_=e.mul(w,y),x=e.mul(g,y);if(v)return{x:e.ZERO,y:e.ZERO};if(!e.eql(x,e.ONE))throw new Error("invZ was invalid");return{x:A,y:_}}),u=Ge(m=>{if(m.is0()){if(t.allowInfinityPoint&&!e.is0(m.py))return;throw new Error("bad point: ZERO")}let{x:y,y:b}=m.toAffine();if(!e.isValid(y)||!e.isValid(b))throw new Error("bad point: x or y not FE");let w=e.sqr(b),g=o(y);if(!e.eql(w,g))throw new Error("bad point: equation left != right");if(!m.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class p{constructor(y,b,w){if(this.px=y,this.py=b,this.pz=w,y==null||!e.isValid(y))throw new Error("x required");if(b==null||!e.isValid(b))throw new Error("y required");if(w==null||!e.isValid(w))throw new Error("z required");Object.freeze(this)}static fromAffine(y){let{x:b,y:w}=y||{};if(!y||!e.isValid(b)||!e.isValid(w))throw new Error("invalid affine point");if(y instanceof p)throw new Error("projective point not allowed");let g=v=>e.eql(v,e.ZERO);return g(b)&&g(w)?p.ZERO:new p(b,w,e.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(y){let b=e.invertBatch(y.map(w=>w.pz));return y.map((w,g)=>w.toAffine(b[g])).map(p.fromAffine)}static fromHex(y){let b=p.fromAffine(i(it("pointHex",y)));return b.assertValidity(),b}static fromPrivateKey(y){return p.BASE.multiply(c(y))}static msm(y,b){return Nn(p,n,y,b)}_setWindowSize(y){d.setWindowSize(this,y)}assertValidity(){u(this)}hasEvenY(){let{y}=this.toAffine();if(e.isOdd)return!e.isOdd(y);throw new Error("Field doesn't support isOdd")}equals(y){h(y);let{px:b,py:w,pz:g}=this,{px:v,py:A,pz:_}=y,x=e.eql(e.mul(b,_),e.mul(v,g)),B=e.eql(e.mul(w,_),e.mul(A,g));return x&&B}negate(){return new p(this.px,e.neg(this.py),this.pz)}double(){let{a:y,b}=t,w=e.mul(b,Ol),{px:g,py:v,pz:A}=this,_=e.ZERO,x=e.ZERO,B=e.ZERO,C=e.mul(g,g),et=e.mul(v,v),H=e.mul(A,A),V=e.mul(g,v);return V=e.add(V,V),B=e.mul(g,A),B=e.add(B,B),_=e.mul(y,B),x=e.mul(w,H),x=e.add(_,x),_=e.sub(et,x),x=e.add(et,x),x=e.mul(_,x),_=e.mul(V,_),B=e.mul(w,B),H=e.mul(y,H),V=e.sub(C,H),V=e.mul(y,V),V=e.add(V,B),B=e.add(C,C),C=e.add(B,C),C=e.add(C,H),C=e.mul(C,V),x=e.add(x,C),H=e.mul(v,A),H=e.add(H,H),C=e.mul(H,V),_=e.sub(_,C),B=e.mul(H,et),B=e.add(B,B),B=e.add(B,B),new p(_,x,B)}add(y){h(y);let{px:b,py:w,pz:g}=this,{px:v,py:A,pz:_}=y,x=e.ZERO,B=e.ZERO,C=e.ZERO,et=t.a,H=e.mul(t.b,Ol),V=e.mul(b,v),U=e.mul(w,A),T=e.mul(g,_),R=e.add(b,w),S=e.add(v,A);R=e.mul(R,S),S=e.add(V,U),R=e.sub(R,S),S=e.add(b,g);let E=e.add(v,_);return S=e.mul(S,E),E=e.add(V,T),S=e.sub(S,E),E=e.add(w,g),x=e.add(A,_),E=e.mul(E,x),x=e.add(U,T),E=e.sub(E,x),C=e.mul(et,S),x=e.mul(H,T),C=e.add(x,C),x=e.sub(U,C),C=e.add(U,C),B=e.mul(x,C),U=e.add(V,V),U=e.add(U,V),T=e.mul(et,T),S=e.mul(H,S),U=e.add(U,T),T=e.sub(V,T),T=e.mul(et,T),S=e.add(S,T),V=e.mul(U,S),B=e.add(B,V),V=e.mul(E,S),x=e.mul(R,x),x=e.sub(x,V),V=e.mul(R,U),C=e.mul(E,C),C=e.add(C,V),new p(x,B,C)}subtract(y){return this.add(y.negate())}is0(){return this.equals(p.ZERO)}wNAF(y){return d.wNAFCached(this,y,p.normalizeZ)}multiplyUnsafe(y){Tt("scalar",y,Se,t.n);let b=p.ZERO;if(y===Se)return b;if(y===mt)return this;let{endo:w}=t;if(!w)return d.unsafeLadder(this,y);let{k1neg:g,k1:v,k2neg:A,k2:_}=w.splitScalar(y),x=b,B=b,C=this;for(;v>Se||_>Se;)v&mt&&(x=x.add(C)),_&mt&&(B=B.add(C)),C=C.double(),v>>=mt,_>>=mt;return g&&(x=x.negate()),A&&(B=B.negate()),B=new p(e.mul(B.px,w.beta),B.py,B.pz),x.add(B)}multiply(y){let{endo:b,n:w}=t;Tt("scalar",y,mt,w);let g,v;if(b){let{k1neg:A,k1:_,k2neg:x,k2:B}=b.splitScalar(y),{p:C,f:et}=this.wNAF(_),{p:H,f:V}=this.wNAF(B);C=d.constTimeNegate(A,C),H=d.constTimeNegate(x,H),H=new p(e.mul(H.px,b.beta),H.py,H.pz),g=C.add(H),v=et.add(V)}else{let{p:A,f:_}=this.wNAF(y);g=A,v=_}return p.normalizeZ([g,v])[0]}multiplyAndAddUnsafe(y,b,w){let g=p.BASE,v=(_,x)=>x===Se||x===mt||!_.equals(g)?_.multiplyUnsafe(x):_.multiply(x),A=v(this,b).add(v(y,w));return A.is0()?void 0:A}toAffine(y){return f(this,y)}isTorsionFree(){let{h:y,isTorsionFree:b}=t;if(y===mt)return!0;if(b)return b(p,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:y,clearCofactor:b}=t;return y===mt?this:b?b(p,this):this.multiplyUnsafe(t.h)}toRawBytes(y=!0){return Zt("isCompressed",y),this.assertValidity(),s(p,this,y)}toHex(y=!0){return Zt("isCompressed",y),he(this.toRawBytes(y))}}p.BASE=new p(t.Gx,t.Gy,e.ONE),p.ZERO=new p(e.ZERO,e.ONE,e.ZERO);let l=t.nBitLength,d=Tn(p,t.endo?Math.ceil(l/2):l);return{CURVE:t,ProjectivePoint:p,normPrivateKeyToScalar:c,weierstrassEquation:o,isWithinCurveOrder:a}}function Qd(r){let t=zr(r);return ee(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function Ml(r){let t=Qd(r),{Fp:e,n}=t,s=e.BYTES+1,i=2*e.BYTES+1;function o(T){return Y(T,n)}function a(T){return kn(T,n)}let{ProjectivePoint:c,normPrivateKeyToScalar:h,weierstrassEquation:f,isWithinCurveOrder:u}=Jd({...t,toBytes(T,R,S){let E=R.toAffine(),I=e.toBytes(E.x),L=pe;return Zt("isCompressed",S),S?L(Uint8Array.from([R.hasEvenY()?2:3]),I):L(Uint8Array.from([4]),I,e.toBytes(E.y))},fromBytes(T){let R=T.length,S=T[0],E=T.subarray(1);if(R===s&&(S===2||S===3)){let I=de(E);if(!qr(I,mt,e.ORDER))throw new Error("Point is not on curve");let L=f(I),O;try{O=e.sqrt(L)}catch(G){let z=G instanceof Error?": "+G.message:"";throw new Error("Point is not on curve"+z)}let M=(O&mt)===mt;return(S&1)===1!==M&&(O=e.neg(O)),{x:I,y:O}}else if(R===i&&S===4){let I=e.fromBytes(E.subarray(0,e.BYTES)),L=e.fromBytes(E.subarray(e.BYTES,2*e.BYTES));return{x:I,y:L}}else throw new Error(`Point of length ${R} was invalid. Expected ${s} compressed bytes or ${i} uncompressed bytes`)}}),p=T=>he(Ce(T,t.nByteLength));function l(T){let R=n>>mt;return T>R}function d(T){return l(T)?o(-T):T}let m=(T,R,S)=>de(T.slice(R,S));class y{constructor(R,S,E){this.r=R,this.s=S,this.recovery=E,this.assertValidity()}static fromCompact(R){let S=t.nByteLength;return R=it("compactSignature",R,S*2),new y(m(R,0,S),m(R,S,2*S))}static fromDER(R){let{r:S,s:E}=Ee.toSig(it("DER",R));return new y(S,E)}assertValidity(){Tt("r",this.r,mt,n),Tt("s",this.s,mt,n)}addRecoveryBit(R){return new y(this.r,this.s,R)}recoverPublicKey(R){let{r:S,s:E,recovery:I}=this,L=_(it("msgHash",R));if(I==null||![0,1,2,3].includes(I))throw new Error("recovery id invalid");let O=I===2||I===3?S+t.n:S;if(O>=e.ORDER)throw new Error("recovery id 2 or 3 invalid");let M=I&1?"03":"02",K=c.fromHex(M+p(O)),G=a(O),z=o(-L*G),X=o(E*G),Q=c.BASE.multiplyAndAddUnsafe(K,z,X);if(!Q)throw new Error("point at infinify");return Q.assertValidity(),Q}hasHighS(){return l(this.s)}normalizeS(){return this.hasHighS()?new y(this.r,o(-this.s),this.recovery):this}toDERRawBytes(){return ze(this.toDERHex())}toDERHex(){return Ee.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return ze(this.toCompactHex())}toCompactHex(){return p(this.r)+p(this.s)}}let b={isValidPrivateKey(T){try{return h(T),!0}catch{return!1}},normPrivateKeyToScalar:h,randomPrivateKey:()=>{let T=qi(t.n);return mc(t.randomBytes(T),t.n)},precompute(T=8,R=c.BASE){return R._setWindowSize(T),R.multiply(BigInt(3)),R}};function w(T,R=!0){return c.fromPrivateKey(T).toRawBytes(R)}function g(T){let R=Te(T),S=typeof T=="string",E=(R||S)&&T.length;return R?E===s||E===i:S?E===2*s||E===2*i:T instanceof c}function v(T,R,S=!0){if(g(T))throw new Error("first arg must be private key");if(!g(R))throw new Error("second arg must be public key");return c.fromHex(R).multiply(h(T)).toRawBytes(S)}let A=t.bits2int||function(T){let R=de(T),S=T.length*8-t.nBitLength;return S>0?R>>BigInt(S):R},_=t.bits2int_modN||function(T){return o(A(T))},x=Kr(t.nBitLength);function B(T){return Tt(`num < 2^${t.nBitLength}`,T,Se,x),Ce(T,t.nByteLength)}function C(T,R,S=et){if(["recovered","canonical"].some(dt=>dt in S))throw new Error("sign() legacy options not supported");let{hash:E,randomBytes:I}=t,{lowS:L,prehash:O,extraEntropy:M}=S;L==null&&(L=!0),T=it("msgHash",T),Dl(S),O&&(T=it("prehashed msgHash",E(T)));let K=_(T),G=h(R),z=[B(G),B(K)];if(M!=null&&M!==!1){let dt=M===!0?I(e.BYTES):M;z.push(it("extraEntropy",dt))}let X=pe(...z),Q=K;function ht(dt){let yt=A(dt);if(!u(yt))return;let Bt=a(yt),lt=c.BASE.multiply(yt).toAffine(),kt=o(lt.x);if(kt===Se)return;let oe=o(Bt*o(Q+kt*G));if(oe===Se)return;let Dr=(lt.x===kt?0:2)|Number(lt.y&mt),Or=oe;return L&&l(oe)&&(Or=d(oe),Dr^=1),new y(kt,Or,Dr)}return{seed:X,k2sig:ht}}let et={lowS:t.lowS,prehash:!1},H={lowS:t.lowS,prehash:!1};function V(T,R,S=et){let{seed:E,k2sig:I}=C(T,R,S),L=t;return Pi(L.hash.outputLen,L.nByteLength,L.hmac)(E,I)}c.BASE._setWindowSize(8);function U(T,R,S,E=H){let I=T;if(R=it("msgHash",R),S=it("publicKey",S),"strict"in E)throw new Error("options.strict was renamed to lowS");Dl(E);let{lowS:L,prehash:O}=E,M,K;try{if(typeof I=="string"||Te(I))try{M=y.fromDER(I)}catch(lt){if(!(lt instanceof Ee.Err))throw lt;M=y.fromCompact(I)}else if(typeof I=="object"&&typeof I.r=="bigint"&&typeof I.s=="bigint"){let{r:lt,s:kt}=I;M=new y(lt,kt)}else throw new Error("PARSE");K=c.fromHex(S)}catch(lt){if(lt.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(L&&M.hasHighS())return!1;O&&(R=t.hash(R));let{r:G,s:z}=M,X=_(R),Q=a(z),ht=o(X*Q),dt=o(G*Q),yt=c.BASE.multiplyAndAddUnsafe(K,ht,dt)?.toAffine();return yt?o(yt.x)===G:!1}return{CURVE:t,getPublicKey:w,getSharedSecret:v,sign:V,verify:U,ProjectivePoint:c,Signature:y,utils:b}}function tp(r){return{hash:r,hmac:(t,...e)=>Oo(r,t,Ni(...e)),randomBytes:dr}}function Pl(r,t){let e=n=>Ml({...r,...tp(n)});return Object.freeze({...e(t),create:e})}var Fl=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Vl=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),ep=BigInt(1),Mo=BigInt(2),Hl=(r,t)=>(r+t/Mo)/t;function rp(r){let t=Fl,e=BigInt(3),n=BigInt(6),s=BigInt(11),i=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),h=r*r*r%t,f=h*h*r%t,u=nt(f,e,t)*f%t,p=nt(u,e,t)*f%t,l=nt(p,Mo,t)*h%t,d=nt(l,s,t)*l%t,m=nt(d,i,t)*d%t,y=nt(m,a,t)*m%t,b=nt(y,c,t)*y%t,w=nt(b,a,t)*m%t,g=nt(w,e,t)*f%t,v=nt(g,o,t)*d%t,A=nt(v,n,t)*h%t,_=nt(A,Mo,t);if(!Po.eql(Po.sqr(_),r))throw new Error("Cannot find square root");return _}var Po=Re(Fl,void 0,void 0,{sqrt:rp}),Je=Pl({a:BigInt(0),b:BigInt(7),Fp:Po,n:Vl,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:r=>{let t=Vl,e=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-ep*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=e,o=BigInt("0x100000000000000000000000000000000"),a=Hl(i*r,t),c=Hl(-n*r,t),h=Y(r-a*e-c*s,t),f=Y(-a*n-c*i,t),u=h>o,p=f>o;if(u&&(h=t-h),p&&(f=t-f),h>o||f>o)throw new Error("splitScalar: Endomorphism failed, k="+r);return{k1neg:u,k1:h,k2neg:p,k2:f}}}},wr),nb=BigInt(0);var sb=Je.ProjectivePoint;function Mt(r,t){t==null&&(t=r.reduce((s,i)=>s+i.length,0));let e=Ct(t),n=0;for(let s of r)e.set(s,n),n+=s.length;return e}function ql(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}function Kl(r,t,e){let n=yr.digest(e instanceof Uint8Array?e:e.subarray());if(ql(n))return n.then(({digest:s})=>Je.verify(t,s,r)).catch(s=>{throw new nn(String(s))});try{return Je.verify(t,n.digest,r)}catch(s){throw new nn(String(s))}}var Rs=class{type="secp256k1";raw;_key;constructor(t){this._key=$l(t),this.raw=zl(this._key)}toMultihash(){return ue.digest(mr(this))}toCID(){return gt.createV1(114,this.toMultihash())}toString(){return tt.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:ct(this.raw,t.raw)}verify(t,e){return Kl(this._key,e,t)}};function Vo(r){return new Rs(r)}function zl(r){return Je.ProjectivePoint.fromHex(r).toRawBytes(!0)}function $l(r){try{return Je.ProjectivePoint.fromHex(r),r}catch(t){throw new sr(String(t))}}function Gl(r){let{Type:t,Data:e}=re.decode(r),n=e??new Uint8Array;switch(t){case ft.RSA:return Do(n);case ft.Ed25519:return Wi(n);case ft.secp256k1:return Vo(n);default:throw new ir}}function Wl(r){let{Type:t,Data:e}=re.decode(r.digest),n=e??new Uint8Array;switch(t){case ft.Ed25519:return Wi(n);case ft.secp256k1:return Vo(n);default:throw new ir}}function mr(r){return re.encode({Type:ft[r.type],Data:r.raw})}var jl=Symbol.for("nodejs.util.inspect.custom"),np=114,an=class{type;multihash;publicKey;string;constructor(t){this.type=t.type,this.multihash=t.multihash,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[xi]=!0;toString(){return this.string==null&&(this.string=tt.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return gt.createV1(np,this.multihash)}toJSON(){return this.toString()}equals(t){if(t==null)return!1;if(t instanceof Uint8Array)return ct(this.multihash.bytes,t);if(typeof t=="string")return this.toString()===t;if(t?.toMultihash()?.bytes!=null)return ct(this.multihash.bytes,t.toMultihash().bytes);throw new Error("not valid Id")}[jl](){return`PeerId(${this.toString()})`}},Ls=class extends an{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},Us=class extends an{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.publicKey}},Ds=class extends an{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.publicKey}},sp=2336,Os=class{type="url";multihash;publicKey;url;constructor(t){this.url=t.toString(),this.multihash=ue.digest(F(this.url))}[jl](){return`PeerId(${this.url})`}[xi]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return gt.createV1(sp,this.toMultihash())}toJSON(){return this.toString()}equals(t){return t==null?!1:(t instanceof Uint8Array&&(t=j(t)),t.toString()===this.toString())}};function Ho(r,t){let e;if(r.charAt(0)==="1"||r.charAt(0)==="Q")e=Kt(tt.decode(`z${r}`));else{if(t==null)throw new pt('Please pass a multibase decoder for strings that do not start with "1" or "Q"');e=Kt(t.decode(r))}return cn(e)}function cn(r){if(op(r))return new Ls({multihash:r});if(ip(r))try{let t=Wl(r);if(t.type==="Ed25519")return new Us({multihash:r,publicKey:t});if(t.type==="secp256k1")return new Ds({multihash:r,publicKey:t})}catch{let e=j(r.digest);return new Os(new URL(e))}throw new wn("Supplied PeerID Multihash is invalid")}function ip(r){return r.code===ue.code}function op(r){return r.code===yr.code}var Xl=Symbol.for("@achingbrain/uint8arraylist");function Zl(r,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let e=0;for(let n of r){let s=e+n.byteLength;if(t<s)return{buf:n,index:t-e};e=s}throw new RangeError("index is out of bounds")}function Ms(r){return!!r?.[Xl]}var Pt=class r{bufs;length;[Xl]=!0;constructor(...t){this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let e=0;for(let n of t)if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.push(n);else if(Ms(n))e+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}prepend(...t){this.prependAll(t)}prependAll(t){let e=0;for(let n of t.reverse())if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.unshift(n);else if(Ms(n))e+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}get(t){let e=Zl(this.bufs,t);return e.buf[e.index]}set(t,e){let n=Zl(this.bufs,t);n.buf[n.index]=e}write(t,e=0){if(t instanceof Uint8Array)for(let n=0;n<t.length;n++)this.set(e+n,t[n]);else if(Ms(t))for(let n=0;n<t.length;n++)this.set(e+n,t.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,e){let{bufs:n,length:s}=this._subList(t,e);return Mt(n,s)}subarray(t,e){let{bufs:n,length:s}=this._subList(t,e);return n.length===1?n[0]:Mt(n,s)}sublist(t,e){let{bufs:n,length:s}=this._subList(t,e),i=new r;return i.length=s,i.bufs=[...n],i}_subList(t,e){if(t=t??0,e=e??this.length,t<0&&(t=this.length+t),e<0&&(e=this.length+e),t<0||e>this.length)throw new RangeError("index is out of bounds");if(t===e)return{bufs:[],length:0};if(t===0&&e===this.length)return{bufs:this.bufs,length:this.length};let n=[],s=0;for(let i=0;i<this.bufs.length;i++){let o=this.bufs[i],a=s,c=a+o.byteLength;if(s=c,t>=c)continue;let h=t>=a&&t<c,f=e>a&&e<=c;if(h&&f){if(t===a&&e===c){n.push(o);break}let u=t-a;n.push(o.subarray(u,u+(e-t)));break}if(h){if(t===0){n.push(o);continue}n.push(o.subarray(t-a));continue}if(f){if(e===c){n.push(o);break}n.push(o.subarray(0,e-a));break}n.push(o)}return{bufs:n,length:e-t}}indexOf(t,e=0){if(!Ms(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(e=Number(e??0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let s=n.byteLength;if(s===0)throw new TypeError("search must be at least 1 byte long");let i=256,o=new Int32Array(i);for(let u=0;u<i;u++)o[u]=-1;for(let u=0;u<s;u++)o[n[u]]=u;let a=o,c=this.byteLength-n.byteLength,h=n.byteLength-1,f;for(let u=e;u<=c;u+=f){f=0;for(let p=h;p>=0;p--){let l=this.get(u+p);if(n[p]!==l){f=Math.max(1,p-a[l]);break}}if(f===0)return u}return-1}getInt8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt8(0)}setInt8(t,e){let n=Ct(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,e),this.write(n,t)}getInt16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,e)}setInt16(t,e,n){let s=ot(2);new DataView(s.buffer,s.byteOffset,s.byteLength).setInt16(0,e,n),this.write(s,t)}getInt32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,e)}setInt32(t,e,n){let s=ot(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setInt32(0,e,n),this.write(s,t)}getBigInt64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,e)}setBigInt64(t,e,n){let s=ot(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setBigInt64(0,e,n),this.write(s,t)}getUint8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint8(0)}setUint8(t,e){let n=Ct(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,e),this.write(n,t)}getUint16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,e)}setUint16(t,e,n){let s=ot(2);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint16(0,e,n),this.write(s,t)}getUint32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,e)}setUint32(t,e,n){let s=ot(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint32(0,e,n),this.write(s,t)}getBigUint64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,e)}setBigUint64(t,e,n){let s=ot(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setBigUint64(0,e,n),this.write(s,t)}getFloat32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,e)}setFloat32(t,e,n){let s=ot(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setFloat32(0,e,n),this.write(s,t)}getFloat64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,e)}setFloat64(t,e,n){let s=ot(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setFloat64(0,e,n),this.write(s,t)}equals(t){if(t==null||!(t instanceof r)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;e<this.bufs.length;e++)if(!ct(this.bufs[e],t.bufs[e]))return!1;return!0}static fromUint8Arrays(t,e){let n=new r;return n.bufs=t,e==null&&(e=t.reduce((s,i)=>s+i.byteLength,0)),n.length=e,n}};var ln;(function(r){let t;r.codec=()=>(t==null&&(t=Ot((e,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),e.publicKey!=null&&e.publicKey.byteLength>0&&(n.uint32(10),n.bytes(e.publicKey)),e.payloadType!=null&&e.payloadType.byteLength>0&&(n.uint32(18),n.bytes(e.payloadType)),e.payload!=null&&e.payload.byteLength>0&&(n.uint32(26),n.bytes(e.payload)),e.signature!=null&&e.signature.byteLength>0&&(n.uint32(42),n.bytes(e.signature)),s.lengthDelimited!==!1&&n.ldelim()},(e,n,s={})=>{let i={publicKey:ot(0),payloadType:ot(0),payload:ot(0),signature:ot(0)},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let a=e.uint32();switch(a>>>3){case 1:{i.publicKey=e.bytes();break}case 2:{i.payloadType=e.bytes();break}case 3:{i.payload=e.bytes();break}case 5:{i.signature=e.bytes();break}default:{e.skipType(a&7);break}}}return i})),t),r.encode=e=>Dt(e,r.codec()),r.decode=(e,n)=>Ut(e,r.codec(),n)})(ln||(ln={}));var Ps=class extends Error{constructor(t="Invalid signature"){super(t),this.name="InvalidSignatureError"}};var un=class r{static createFromProtobuf=async t=>{let e=ln.decode(t),n=Gl(e.publicKey);return new r({publicKey:n,payloadType:e.payloadType,payload:e.payload,signature:e.signature})};static seal=async(t,e)=>{if(e==null)throw new Error("Missing private key");let n=t.domain,s=t.codec,i=t.marshal(),o=Yl(n,s,i),a=await e.sign(o.subarray());return new r({publicKey:e.publicKey,payloadType:s,payload:i,signature:a})};static openAndCertify=async(t,e)=>{let n=await r.createFromProtobuf(t);if(!await n.validate(e))throw new Ps("Envelope signature is not valid for the given domain");return n};publicKey;payloadType;payload;signature;marshaled;constructor(t){let{publicKey:e,payloadType:n,payload:s,signature:i}=t;this.publicKey=e,this.payloadType=n,this.payload=s,this.signature=i}marshal(){return this.marshaled==null&&(this.marshaled=ln.encode({publicKey:mr(this.publicKey),payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(t){return ct(this.marshal(),t.marshal())}async validate(t){let e=Yl(t,this.payloadType,this.payload);return this.publicKey.verify(e.subarray(),this.signature)}},Yl=(r,t,e)=>{let n=F(r),s=zt(n.byteLength),i=zt(t.length),o=zt(e.length);return new Pt(s,n,i,t,o,e)};var Vs=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let e=this.index,n=t();return n===void 0&&(this.index=e),n}parseWith(t){let e=t();if(this.index===this.input.length)return e}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(t){return this.readAtomically(()=>{let e=this.readChar();if(e===t)return e})}readSeparator(t,e,n){return this.readAtomically(()=>{if(!(e>0&&this.readGivenChar(t)===void 0))return n()})}readNumber(t,e,n,s){return this.readAtomically(()=>{let i=0,o=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",h=2**(8*s)-1;for(;;){let f=this.readAtomically(()=>{let u=this.readChar();if(u===void 0)return;let p=Number.parseInt(u,t);if(!Number.isNaN(p))return p});if(f===void 0)break;if(i*=t,i+=f,i>h||(o+=1,e!==void 0&&o>e))return}if(o!==0)return!n&&c&&o>1?void 0:i})}readIPv4Addr(){return this.readAtomically(()=>{let t=new Uint8Array(4);for(let e=0;e<t.length;e++){let n=this.readSeparator(".",e,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;t[e]=n}return t})}readIPv6Addr(){let t=e=>{for(let n=0;n<e.length/2;n++){let s=n*2;if(n<e.length-3){let o=this.readSeparator(":",n,()=>this.readIPv4Addr());if(o!==void 0)return e[s]=o[0],e[s+1]=o[1],e[s+2]=o[2],e[s+3]=o[3],[s+4,!0]}let i=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(i===void 0)return[s,!1];e[s]=i>>8,e[s+1]=i&255}return[e.length,!1]};return this.readAtomically(()=>{let e=new Uint8Array(16),[n,s]=t(e);if(n===16)return e;if(s||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let i=new Uint8Array(14),o=16-(n+2),[a]=t(i.subarray(0,o));return e.set(i.subarray(0,a),16-a),e})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var Jl=45,ap=15,_r=new Vs;function Fo(r){if(!(r.length>ap))return _r.new(r).parseWith(()=>_r.readIPv4Addr())}function qo(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>Jl))return _r.new(r).parseWith(()=>_r.readIPv6Addr())}function Hs(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>Jl))return _r.new(r).parseWith(()=>_r.readIPAddr())}var Dw=parseInt("0xFFFF",16),Ow=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function eu(r){return!!Fo(r)}function ru(r){return!!qo(r)}function Fs(r){return!!Hs(r)}var nu=eu,hp=ru,Ko=function(r){let t=0;if(r=r.toString().trim(),nu(r)){let e=new Uint8Array(t+4);return r.split(/\./g).forEach(n=>{e[t++]=parseInt(n,10)&255}),e}if(hp(r)){let e=r.split(":",8),n;for(n=0;n<e.length;n++){let i=nu(e[n]),o;i&&(o=Ko(e[n]),e[n]=j(o.slice(0,2),"base16")),o!=null&&++n<8&&e.splice(n,0,j(o.slice(2,4),"base16"))}if(e[0]==="")for(;e.length<8;)e.unshift("0");else if(e[e.length-1]==="")for(;e.length<8;)e.push("0");else if(e.length<8){for(n=0;n<e.length&&e[n]!=="";n++);let i=[n,1];for(n=9-e.length;n>0;n--)i.push("0");e.splice.apply(e,i)}let s=new Uint8Array(t+16);for(n=0;n<e.length;n++){let i=parseInt(e[n],16);s[t++]=i>>8&255,s[t++]=i&255}return s}throw new Error("invalid ip address")},su=function(r,t=0,e){t=~~t,e=e??r.length-t;let n=new DataView(r.buffer);if(e===4){let s=[];for(let i=0;i<e;i++)s.push(r[t+i]);return s.join(".")}if(e===16){let s=[];for(let i=0;i<e;i+=2)s.push(n.getUint16(t+i).toString(16));return s.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var Ir={},zo={},pp=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc-direct"],[281,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[449,-1,"sni"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[481,-1,"http-path"],[777,-1,"memory"]];pp.forEach(r=>{let t=gp(...r);zo[t.code]=t,Ir[t.name]=t});function gp(r,t,e,n,s){return{code:r,size:t,name:e,resolvable:!!n,path:!!s}}function J(r){if(typeof r=="number"){if(zo[r]!=null)return zo[r];throw new Error(`no protocol with code: ${r}`)}else if(typeof r=="string"){if(Ir[r]!=null)return Ir[r];throw new Error(`no protocol with name: ${r}`)}throw new Error(`invalid protocol id type: ${typeof r}`)}var wx=J("ip4"),xx=J("ip6"),vx=J("ipcidr");function jo(r,t){switch(J(r).code){case 4:case 41:return yp(t);case 42:return Wo(t);case 6:case 273:case 33:case 132:return au(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Wo(t);case 421:return vp(t);case 444:return ou(t);case 445:return ou(t);case 466:return xp(t);case 481:return globalThis.encodeURIComponent(Wo(t));default:return j(t,"base16")}}function Zo(r,t){switch(J(r).code){case 4:return iu(t);case 41:return iu(t);case 42:return Go(t);case 6:case 273:case 33:case 132:return Xo(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Go(t);case 421:return bp(t);case 444:return Ep(t);case 445:return Sp(t);case 466:return wp(t);case 481:return Go(globalThis.decodeURIComponent(t));default:return F(t,"base16")}}var $o=Object.values($r).map(r=>r.decoder),mp=function(){let r=$o[0].or($o[1]);return $o.slice(2).forEach(t=>r=r.or(t)),r}();function iu(r){if(!Fs(r))throw new Error("invalid ip address");return Ko(r)}function yp(r){let t=su(r,0,r.length);if(t==null)throw new Error("ipBuff is required");if(!Fs(t))throw new Error("invalid ip address");return t}function Xo(r){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,r),new Uint8Array(t)}function au(r){return new DataView(r.buffer).getUint16(r.byteOffset)}function Go(r){let t=F(r),e=Uint8Array.from(zt(t.length));return Mt([e,t],e.length+t.length)}function Wo(r){let t=ge(r);if(r=r.slice(Et(t)),r.length!==t)throw new Error("inconsistent lengths");return j(r)}function bp(r){let t;r[0]==="Q"||r[0]==="1"?t=Kt(tt.decode(`z${r}`)).bytes:t=gt.parse(r).multihash.bytes;let e=Uint8Array.from(zt(t.length));return Mt([e,t],e.length+t.length)}function wp(r){let t=mp.decode(r),e=Uint8Array.from(zt(t.length));return Mt([e,t],e.length+t.length)}function xp(r){let t=ge(r),e=r.slice(Et(t));if(e.length!==t)throw new Error("inconsistent lengths");return"u"+j(e,"base64url")}function vp(r){let t=ge(r),e=r.slice(Et(t));if(e.length!==t)throw new Error("inconsistent lengths");return j(e,"base58btc")}function Ep(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let e=le.decode("b"+t[0]),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let s=Xo(n);return Mt([e,s],e.length+s.length)}function Sp(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let e=le.decode(`b${t[0]}`),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let s=Xo(n);return Mt([e,s],e.length+s.length)}function ou(r){let t=r.slice(0,r.length-2),e=r.slice(r.length-2),n=j(t,"base32"),s=au(e);return`${n}:${s}`}function cu(r){r=Yo(r);let t=[],e=[],n=null,s=r.split("/").slice(1);if(s.length===1&&s[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let i=0;i<s.length;i++){let o=s[i],a=J(o);if(a.size===0){t.push([a.code]),e.push([a.code]);continue}if(i++,i>=s.length)throw uu("invalid address: "+r);if(a.path===!0){n=Yo(s.slice(i).join("/")),t.push([a.code,Zo(a.code,n)]),e.push([a.code,n]);break}let c=Zo(a.code,s[i]);t.push([a.code,c]),e.push([a.code,jo(a.code,c)])}return{string:lu(e),bytes:Qo(t),tuples:t,stringTuples:e,path:n}}function Jo(r){let t=[],e=[],n=null,s=0;for(;s<r.length;){let i=ge(r,s),o=Et(i),a=J(i),c=Ap(a,r.slice(s+o));if(c===0){t.push([i]),e.push([i]),s+=o;continue}let h=r.slice(s+o,s+o+c);if(s+=c+o,s>r.length)throw uu("Invalid address Uint8Array: "+j(r,"base16"));t.push([i,h]);let f=jo(i,h);if(e.push([i,f]),a.path===!0){n=f;break}}return{bytes:Uint8Array.from(r),string:lu(e),tuples:t,stringTuples:e,path:n}}function lu(r){let t=[];return r.map(e=>{let n=J(e[0]);return t.push(n.name),e.length>1&&e[1]!=null&&t.push(e[1]),null}),Yo(t.join("/"))}function Qo(r){return Mt(r.map(t=>{let e=J(t[0]),n=Uint8Array.from(zt(e.code));return t.length>1&&t[1]!=null&&(n=Mt([n,t[1]])),n}))}function Ap(r,t){if(r.size>0)return r.size/8;if(r.size===0)return 0;{let e=ge(t instanceof Uint8Array?t:Uint8Array.from(t));return e+Et(e)}}function Yo(r){return"/"+r.trim().split("/").filter(t=>t).join("/")}function uu(r){return new Error("Error parsing address: "+r)}var Bp=Symbol.for("nodejs.util.inspect.custom"),ta=Symbol.for("@multiformats/js-multiaddr/multiaddr"),_p=[J("dns").code,J("dns4").code,J("dns6").code,J("dnsaddr").code],qs=class r{bytes;#t;#e;#r;#n;[ta]=!0;constructor(t){t==null&&(t="");let e;if(t instanceof Uint8Array)e=Jo(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);e=cu(t)}else if(hu(t))e=Jo(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=e.bytes,this.#t=e.string,this.#e=e.tuples,this.#r=e.stringTuples,this.#n=e.path}toString(){return this.#t}toJSON(){return this.toString()}toOptions(){let t,e,n,s,i="",o=J("tcp"),a=J("udp"),c=J("ip4"),h=J("ip6"),f=J("dns6"),u=J("ip6zone");for(let[l,d]of this.stringTuples())l===u.code&&(i=`%${d??""}`),_p.includes(l)&&(e=o.name,s=443,n=`${d??""}${i}`,t=l===f.code?6:4),(l===o.code||l===a.code)&&(e=J(l).name,s=parseInt(d??"")),(l===c.code||l===h.code)&&(e=J(l).name,n=`${d??""}${i}`,t=l===h.code?6:4);if(t==null||e==null||n==null||s==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:t,host:n,transport:e,port:s}}protos(){return this.#e.map(([t])=>Object.assign({},J(t)))}protoCodes(){return this.#e.map(([t])=>t)}protoNames(){return this.#e.map(([t])=>J(t).name)}tuples(){return this.#e}stringTuples(){return this.#r}encapsulate(t){return t=new r(t),new r(this.toString()+t.toString())}decapsulate(t){let e=t.toString(),n=this.toString(),s=n.lastIndexOf(e);if(s<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new r(n.slice(0,s))}decapsulateCode(t){let e=this.tuples();for(let n=e.length-1;n>=0;n--)if(e[n][0]===t)return new r(Qo(e.slice(0,n)));return this}getPeerId(){try{let t=[];this.stringTuples().forEach(([n,s])=>{n===Ir.p2p.code&&t.push([n,s]),n===Ir["p2p-circuit"].code&&(t=[])});let e=t.pop();if(e?.[1]!=null){let n=e[1];return n[0]==="Q"||n[0]==="1"?j(tt.decode(`z${n}`),"base58btc"):j(gt.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(t){return ct(this.bytes,t.bytes)}async resolve(t){let e=this.protos().find(i=>i.resolvable);if(e==null)return[this];let n=fu.get(e.name);if(n==null)throw new bn(`no available resolver for ${e.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,t)).map(i=>xt(i))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(t){let e=(t??this).protos();return!(e.length!==2||e[0].code!==4&&e[0].code!==41||e[1].code!==6&&e[1].code!==273)}[Bp](){return`Multiaddr(${this.#t})`}};var fu=new Map;function hu(r){return!!r?.[ta]}function xt(r){return new qs(r)}function Vt(){let r={};return r.promise=new Promise((t,e)=>{r.resolve=t,r.reject=e}),r}var Ks=class extends Error{type;code;constructor(t,e,n){super(t??"The operation was aborted"),this.type="aborted",this.name=n??"AbortError",this.code=e??"ABORT_ERR"}};async function kr(r,t,e){if(t==null)return r;if(t.aborted)return Promise.reject(new Ks(e?.errorMessage,e?.errorCode,e?.errorName));let n,s=new Ks(e?.errorMessage,e?.errorCode,e?.errorName);try{return await Promise.race([r,new Promise((i,o)=>{n=()=>{o(s)},t.addEventListener("abort",n)})])}finally{n!=null&&t.removeEventListener("abort",n)}}var ea=class{readNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.readNext=Vt(),this.haveNext=Vt()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("HaveNext promise resolved but nextResult was undefined");let t=this.nextResult;return this.nextResult=void 0,this.readNext.resolve(),this.readNext=Vt(),t}async throw(t){return this.ended=!0,t!=null&&(this.haveNext.promise.catch(()=>{}),this.haveNext.reject(t)),{done:!0,value:void 0}}async return(){let t={done:!0,value:void 0};return await this._push(void 0),t}async push(t,e){await this._push(t,e)}async end(t,e){t!=null?await this.throw(t):await this._push(void 0,e)}async _push(t,e){if(t!=null&&this.ended)throw new Error("Cannot push value onto an ended pushable");for(;this.nextResult!=null;)await this.readNext.promise;t!=null?this.nextResult={done:!1,value:t}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=Vt(),await kr(this.readNext.promise,e?.signal,e)}};function du(){return new ea}var zs=class extends Error{name="UnexpectedEOFError";code="ERR_UNEXPECTED_EOF"};var ra=class extends Error{code;constructor(t,e){super(t),this.code=e}},na=class extends ra{type;constructor(t){super(t,"ABORT_ERR"),this.type="aborted",this.name="AbortError"}};function pu(r,t){let e=du();r.sink(e).catch(async o=>{await e.end(o)}),r.sink=async o=>{for await(let a of o)await e.push(a);await e.end()};let n=r.source;r.source[Symbol.iterator]!=null?n=r.source[Symbol.iterator]():r.source[Symbol.asyncIterator]!=null&&(n=r.source[Symbol.asyncIterator]());let s=new Pt;return{read:async(o,a)=>{a?.signal?.throwIfAborted();let c,h=new Promise((f,u)=>{c=()=>{u(new na("Read aborted"))},a?.signal?.addEventListener("abort",c)});try{if(o==null){let{done:u,value:p}=await Promise.race([n.next(),h]);return u===!0?new Pt:p}for(;s.byteLength<o;){let{value:u,done:p}=await Promise.race([n.next(),h]);if(p===!0)throw new zs("unexpected end of input");s.append(u)}let f=s.sublist(0,o);return s.consume(o),f}finally{c!=null&&a?.signal?.removeEventListener("abort",c)}},write:async(o,a)=>{a?.signal?.throwIfAborted(),o instanceof Uint8Array?await e.push(o,a):await e.push(o.subarray(),a)},unwrap:()=>{if(s.byteLength>0){let o=r.source;r.source=async function*(){t?.yieldBytes===!1?yield s:yield*s,yield*o}()}return r}}}var $s=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},Gs=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},Ws=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function gu(r,t={}){let e=pu(r,t);t.maxDataLength!=null&&t.maxLengthLength==null&&(t.maxLengthLength=Et(t.maxDataLength));let n=t?.lengthDecoder??ge,s=t?.lengthEncoder??zt;return{read:async o=>{let a=-1,c=new Pt;for(;;){c.append(await e.read(1,o));try{a=n(c)}catch(h){if(h instanceof RangeError)continue;throw h}if(a<0)throw new $s("Invalid message length");if(t?.maxLengthLength!=null&&c.byteLength>t.maxLengthLength)throw new Ws("message length length too long");if(a>-1)break}if(t?.maxDataLength!=null&&a>t.maxDataLength)throw new Gs("message length too long");return e.read(a,o)},write:async(o,a)=>{await e.write(new Pt(s(o.byteLength),o),a)},writeV:async(o,a)=>{let c=new Pt(...o.flatMap(h=>[s(h.byteLength),h]));await e.write(c,a)},unwrap:()=>e.unwrap()}}function Ve(r,t){let e=gu(r,t),n={read:async(s,i)=>{let o=await e.read(i);return s.decode(o)},write:async(s,i,o)=>{await e.write(i.encode(s),o)},writeV:async(s,i,o)=>{await e.writeV(s.map(a=>i.encode(a)),o)},pb:s=>({read:async i=>n.read(s,i),write:async(i,o)=>n.write(i,s,o),writeV:async(i,o)=>n.writeV(i,s,o),unwrap:()=>n}),unwrap:()=>e.unwrap()};return n}var mu="circuit-relay-source",yu="circuit-relay-relay";var bu=BigInt(131072),Gt="/libp2p/circuit/relay/0.2.0/hop",Qe="/libp2p/circuit/relay/0.2.0/stop",wu=30*1e3,f1=30*1e3,fn=300,xu=4096,vu=.001;var Z;(function(r){let t;(function(s){s.RESERVE="RESERVE",s.CONNECT="CONNECT",s.STATUS="STATUS"})(t=r.Type||(r.Type={}));let e;(function(s){s[s.RESERVE=0]="RESERVE",s[s.CONNECT=1]="CONNECT",s[s.STATUS=2]="STATUS"})(e||(e={})),function(s){s.codec=()=>Xe(e)}(t=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Ot((s,i,o={})=>{o.lengthDelimited!==!1&&i.fork(),s.type!=null&&(i.uint32(8),r.Type.codec().encode(s.type,i)),s.peer!=null&&(i.uint32(18),Tr.codec().encode(s.peer,i)),s.reservation!=null&&(i.uint32(26),js.codec().encode(s.reservation,i)),s.limit!=null&&(i.uint32(34),Nr.codec().encode(s.limit,i)),s.status!=null&&(i.uint32(40),q.codec().encode(s.status,i)),o.lengthDelimited!==!1&&i.ldelim()},(s,i,o={})=>{let a={},c=i==null?s.len:s.pos+i;for(;s.pos<c;){let h=s.uint32();switch(h>>>3){case 1:{a.type=r.Type.codec().decode(s);break}case 2:{a.peer=Tr.codec().decode(s,s.uint32(),{limits:o.limits?.peer});break}case 3:{a.reservation=js.codec().decode(s,s.uint32(),{limits:o.limits?.reservation});break}case 4:{a.limit=Nr.codec().decode(s,s.uint32(),{limits:o.limits?.limit});break}case 5:{a.status=q.codec().decode(s);break}default:{s.skipType(h&7);break}}}return a})),n),r.encode=s=>Dt(s,r.codec()),r.decode=(s,i)=>Ut(s,r.codec(),i)})(Z||(Z={}));var Ht;(function(r){let t;(function(s){s.CONNECT="CONNECT",s.STATUS="STATUS"})(t=r.Type||(r.Type={}));let e;(function(s){s[s.CONNECT=0]="CONNECT",s[s.STATUS=1]="STATUS"})(e||(e={})),function(s){s.codec=()=>Xe(e)}(t=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Ot((s,i,o={})=>{o.lengthDelimited!==!1&&i.fork(),s.type!=null&&(i.uint32(8),r.Type.codec().encode(s.type,i)),s.peer!=null&&(i.uint32(18),Tr.codec().encode(s.peer,i)),s.limit!=null&&(i.uint32(26),Nr.codec().encode(s.limit,i)),s.status!=null&&(i.uint32(32),q.codec().encode(s.status,i)),o.lengthDelimited!==!1&&i.ldelim()},(s,i,o={})=>{let a={},c=i==null?s.len:s.pos+i;for(;s.pos<c;){let h=s.uint32();switch(h>>>3){case 1:{a.type=r.Type.codec().decode(s);break}case 2:{a.peer=Tr.codec().decode(s,s.uint32(),{limits:o.limits?.peer});break}case 3:{a.limit=Nr.codec().decode(s,s.uint32(),{limits:o.limits?.limit});break}case 4:{a.status=q.codec().decode(s);break}default:{s.skipType(h&7);break}}}return a})),n),r.encode=s=>Dt(s,r.codec()),r.decode=(s,i)=>Ut(s,r.codec(),i)})(Ht||(Ht={}));var Tr;(function(r){let t;r.codec=()=>(t==null&&(t=Ot((e,n,s={})=>{if(s.lengthDelimited!==!1&&n.fork(),e.id!=null&&e.id.byteLength>0&&(n.uint32(10),n.bytes(e.id)),e.addrs!=null)for(let i of e.addrs)n.uint32(18),n.bytes(i);s.lengthDelimited!==!1&&n.ldelim()},(e,n,s={})=>{let i={id:ot(0),addrs:[]},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let a=e.uint32();switch(a>>>3){case 1:{i.id=e.bytes();break}case 2:{if(s.limits?.addrs!=null&&i.addrs.length===s.limits.addrs)throw new jr('Decode error - map field "addrs" had too many elements');i.addrs.push(e.bytes());break}default:{e.skipType(a&7);break}}}return i})),t),r.encode=e=>Dt(e,r.codec()),r.decode=(e,n)=>Ut(e,r.codec(),n)})(Tr||(Tr={}));var js;(function(r){let t;r.codec=()=>(t==null&&(t=Ot((e,n,s={})=>{if(s.lengthDelimited!==!1&&n.fork(),e.expire!=null&&e.expire!==0n&&(n.uint32(8),n.uint64(e.expire)),e.addrs!=null)for(let i of e.addrs)n.uint32(18),n.bytes(i);e.voucher!=null&&(n.uint32(26),n.bytes(e.voucher)),s.lengthDelimited!==!1&&n.ldelim()},(e,n,s={})=>{let i={expire:0n,addrs:[]},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let a=e.uint32();switch(a>>>3){case 1:{i.expire=e.uint64();break}case 2:{if(s.limits?.addrs!=null&&i.addrs.length===s.limits.addrs)throw new jr('Decode error - map field "addrs" had too many elements');i.addrs.push(e.bytes());break}case 3:{i.voucher=e.bytes();break}default:{e.skipType(a&7);break}}}return i})),t),r.encode=e=>Dt(e,r.codec()),r.decode=(e,n)=>Ut(e,r.codec(),n)})(js||(js={}));var Nr;(function(r){let t;r.codec=()=>(t==null&&(t=Ot((e,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),e.duration!=null&&(n.uint32(8),n.uint32(e.duration)),e.data!=null&&(n.uint32(16),n.uint64(e.data)),s.lengthDelimited!==!1&&n.ldelim()},(e,n,s={})=>{let i={},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let a=e.uint32();switch(a>>>3){case 1:{i.duration=e.uint32();break}case 2:{i.data=e.uint64();break}default:{e.skipType(a&7);break}}}return i})),t),r.encode=e=>Dt(e,r.codec()),r.decode=(e,n)=>Ut(e,r.codec(),n)})(Nr||(Nr={}));var q;(function(r){r.UNUSED="UNUSED",r.OK="OK",r.RESERVATION_REFUSED="RESERVATION_REFUSED",r.RESOURCE_LIMIT_EXCEEDED="RESOURCE_LIMIT_EXCEEDED",r.PERMISSION_DENIED="PERMISSION_DENIED",r.CONNECTION_FAILED="CONNECTION_FAILED",r.NO_RESERVATION="NO_RESERVATION",r.MALFORMED_MESSAGE="MALFORMED_MESSAGE",r.UNEXPECTED_MESSAGE="UNEXPECTED_MESSAGE"})(q||(q={}));var sa;(function(r){r[r.UNUSED=0]="UNUSED",r[r.OK=100]="OK",r[r.RESERVATION_REFUSED=200]="RESERVATION_REFUSED",r[r.RESOURCE_LIMIT_EXCEEDED=201]="RESOURCE_LIMIT_EXCEEDED",r[r.PERMISSION_DENIED=202]="PERMISSION_DENIED",r[r.CONNECTION_FAILED=203]="CONNECTION_FAILED",r[r.NO_RESERVATION=204]="NO_RESERVATION",r[r.MALFORMED_MESSAGE=400]="MALFORMED_MESSAGE",r[r.UNEXPECTED_MESSAGE=401]="UNEXPECTED_MESSAGE"})(sa||(sa={}));(function(r){r.codec=()=>Xe(sa)})(q||(q={}));var Zs;(function(r){let t;r.codec=()=>(t==null&&(t=Ot((e,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),e.relay!=null&&e.relay.byteLength>0&&(n.uint32(10),n.bytes(e.relay)),e.peer!=null&&e.peer.byteLength>0&&(n.uint32(18),n.bytes(e.peer)),e.expiration!=null&&e.expiration!==0n&&(n.uint32(24),n.uint64(e.expiration)),s.lengthDelimited!==!1&&n.ldelim()},(e,n,s={})=>{let i={relay:ot(0),peer:ot(0),expiration:0n},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let a=e.uint32();switch(a>>>3){case 1:{i.relay=e.bytes();break}case 2:{i.peer=e.bytes();break}case 3:{i.expiration=e.uint64();break}default:{e.skipType(a&7);break}}}return i})),t),r.encode=e=>Dt(e,r.codec()),r.decode=(e,n)=>Ut(e,r.codec(),n)})(Zs||(Zs={}));function Xs(r){let t=new globalThis.AbortController;function e(){t.abort();for(let i of r)i?.removeEventListener!=null&&i.removeEventListener("abort",e)}for(let i of r){if(i?.aborted===!0){e();break}i?.addEventListener!=null&&i.addEventListener("abort",e)}function n(){for(let i of r)i?.removeEventListener!=null&&i.removeEventListener("abort",e)}let s=t.signal;return s.clear=n,s}var Ys=class extends Error{constructor(t="Transfer limit error"){super(t),this.name="TransferLimitError"}},hn=class extends Error{constructor(t="Duration limit error"){super(t),this.name="DurationLimitError"}};async function*Eu(r,t,e){let n=t.remaining;for await(let s of r){let i=BigInt(s.byteLength);if(t.remaining-i<0){let o=Number(t.remaining);t.remaining=0n;try{o!==0&&(yield s.subarray(0,o))}catch(a){e.log.error(a)}throw new Ys(`data limit of ${n} bytes exceeded`)}t.remaining-=i,yield s}}function Su(r,t,e,n,s){function i(u){r.abort(u),t.abort(u)}let o=[e];n?.duration!=null&&o.push(AbortSignal.timeout(n.duration));let a=Xs(o),c=!1,h=!1,f;n?.data!=null&&(f={remaining:n.data}),queueMicrotask(()=>{let u=()=>{t.abort(new hn(`duration limit of ${n?.duration} ms exceeded`))};a.addEventListener("abort",u,{once:!0}),t.sink(f==null?r.source:Eu(r.source,f,s)).catch(p=>{s.log.error("error while relaying streams src -> dst",p),i(p)}).finally(()=>{c=!0,h&&(a.removeEventListener("abort",u),a.clear())})}),queueMicrotask(()=>{let u=()=>{r.abort(new hn(`duration limit of ${n?.duration} ms exceeded`))};a.addEventListener("abort",u,{once:!0}),r.sink(f==null?t.source:Eu(t.source,f,s)).catch(p=>{s.log.error("error while relaying streams dst -> src",p),i(p)}).finally(()=>{h=!0,c&&(a.removeEventListener("abort",u),a.clear())})})}function ia(r){let t=r*BigInt(1e3),e=new Date().getTime();return Number(t-BigInt(e))}var dn=class{expires;bytes;constructor(t){t?.duration!=null&&t?.duration!==0&&(this.expires=Date.now()+t.duration*1e3),this.bytes=t?.data,this.bytes===0n&&(this.bytes=void 0),this.onData=this.onData.bind(this)}onData(t){this.bytes!=null&&(this.bytes-=BigInt(t.byteLength),this.bytes<0n&&(this.bytes=0n))}getLimits(){if(this.expires==null&&this.bytes==null)return;let t={};if(this.bytes!=null){let e=this;Object.defineProperty(t,"bytes",{get(){return e.bytes}})}if(this.expires!=null){let e=this;Object.defineProperty(t,"seconds",{get(){return Math.round(((e.expires??0)-Date.now())/1e3)}})}return t}};function Js(r,t){let e={[Symbol.iterator]:()=>e,next:()=>{let n=r.next(),s=n.value;return n.done===!0||s==null?{done:!0,value:void 0}:{done:!1,value:t(s)}}};return e}var Ae=class{map;constructor(t){if(this.map=new Map,t!=null)for(let[e,n]of t.entries())this.map.set(e.toString(),{key:e,value:n})}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(t){return this.map.delete(t.toString())}entries(){return Js(this.map.entries(),t=>[t[1].key,t[1].value])}forEach(t){this.map.forEach((e,n)=>{t(e.value,e.key,this)})}get(t){return this.map.get(t.toString())?.value}has(t){return this.map.has(t.toString())}set(t,e){this.map.set(t.toString(),{key:t,value:e})}keys(){return Js(this.map.values(),t=>t.key)}values(){return Js(this.map.values(),t=>t.value)}get size(){return this.map.size}};var aa=wi(oa(),1);var Ip=Math.LN2*Math.LN2,ti=class{seeds;bits;buffer;constructor(t={}){t.seeds!=null?this.seeds=t.seeds:this.seeds=Tp(t.hashes??8),this.bits=t.bits??1024,this.buffer=ot(Math.ceil(this.bits/8))}add(t){typeof t=="string"&&(t=F(t));for(let e=0;e<this.seeds.length;e++){let s=aa.default.x86.hash32(t,this.seeds[e])%this.bits;this.setbit(s)}}has(t){typeof t=="string"&&(t=F(t));for(let e=0;e<this.seeds.length;e++){let s=aa.default.x86.hash32(t,this.seeds[e])%this.bits;if(!this.getbit(s))return!1}return!0}clear(){this.buffer.fill(0)}setbit(t){let e=0,n=t;for(;n>7;)e++,n-=8;let s=this.buffer[e];s|=1<<n,this.buffer[e]=s}getbit(t){let e=0,n=t;for(;n>7;)e++,n-=8;return(this.buffer[e]&1<<n)!==0}};function ca(r,t=.005){let e=kp(r,t);return new ti(e)}function kp(r,t=.005){let e=Math.round(-1*r*Math.log(t)/Ip),n=Math.round(e/r*Math.LN2);return{bits:e,hashes:n}}function Tp(r){let t,e,n=[];for(let s=0;s<r;s++)for(t=new Pt(ks(4)),n[s]=t.getUint32(0,!0),e=0;e<s;e++)if(n[s]===n[e]){s--;break}return n}var la=64,Qt=class{fp;h;seed;constructor(t,e,n,s=2){if(s>la)throw new TypeError("Invalid Fingerprint Size");let i=e.hashV(t,n),o=ot(s);for(let a=0;a<o.length;a++)o[a]=i[a];o.length===0&&(o[0]=7),this.fp=o,this.h=e,this.seed=n}hash(){return this.h.hash(this.fp,this.seed)}equals(t){return t?.fp instanceof Uint8Array?ct(this.fp,t.fp):!1}};function tr(r,t){return Math.floor(Math.random()*(t-r))+r}var er=class{contents;constructor(t){this.contents=new Array(t).fill(null)}has(t){if(!(t instanceof Qt))throw new TypeError("Invalid Fingerprint");return this.contents.some(e=>t.equals(e))}add(t){if(!(t instanceof Qt))throw new TypeError("Invalid Fingerprint");for(let e=0;e<this.contents.length;e++)if(this.contents[e]==null)return this.contents[e]=t,!0;return!0}swap(t){if(!(t instanceof Qt))throw new TypeError("Invalid Fingerprint");let e=tr(0,this.contents.length-1),n=this.contents[e];return this.contents[e]=t,n}remove(t){if(!(t instanceof Qt))throw new TypeError("Invalid Fingerprint");let e=this.contents.findIndex(n=>t.equals(n));return e>-1?(this.contents[e]=null,!0):!1}};var ua={32:16777619n,64:1099511628211n,128:309485009821345068724781371n,256:374144419156711147060143317175368453031918731002211n,512:35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852759n,1024:5016456510113118655434598811035278955030765345404790744303017523831112055108147451509157692220295382716162651878526895249385292291816524375083746691371804094271873160484737966720260389217684476157468082573n},_u={32:2166136261n,64:14695981039346656037n,128:144066263297769815596495629667062367629n,256:100029257958052580907070968620625704837092796014241193945225284501741471925557n,512:9659303129496669498009435400716310466090418745672637896108374329434462657994582932197716438449813051892206539805784495328239340083876191928701583869517785n,1024:14197795064947621068722070641403218320880622795441933960878474914617582723252296732303717722150864096521202355549365628174669108571814760471015076148029755969804077320157692458563003215304957150157403644460363550505412711285966361610267868082893823963790439336411086884584107735010676915n},Iu=new globalThis.TextEncoder;function Np(r,t){let e=ua[t],n=_u[t];for(let s=0;s<r.length;s++)n^=BigInt(r[s]),n=BigInt.asUintN(t,n*e);return n}function Cp(r,t,e){if(e.length===0)throw new Error("The `utf8Buffer` option must have a length greater than zero");let n=ua[t],s=_u[t],i=r;for(;i.length>0;){let o=Iu.encodeInto(i,e);i=i.slice(o.read);for(let a=0;a<o.written;a++)s^=BigInt(e[a]),s=BigInt.asUintN(t,s*n)}return s}function fa(r,{size:t=32,utf8Buffer:e}={}){if(!ua[t])throw new Error("The `size` option must be one of 32, 64, 128, 256, 512, or 1024");if(typeof r=="string"){if(e)return Cp(r,t,e);r=Iu.encode(r)}return Np(r,t)}var Rp=wi(oa(),1);var gn={hash:r=>Number(fa(r,{size:32})),hashV:(r,t)=>Lp(gn.hash(r,t))};function Lp(r){let t=r.toString(16);return t.length%2===1&&(t=`0${t}`),F(t,"base16")}var Up=500,mn=class{bucketSize;filterSize;fingerprintSize;buckets;count;hash;seed;constructor(t){this.filterSize=t.filterSize,this.bucketSize=t.bucketSize??4,this.fingerprintSize=t.fingerprintSize??2,this.count=0,this.buckets=[],this.hash=t.hash??gn,this.seed=t.seed??tr(0,Math.pow(2,10))}add(t){typeof t=="string"&&(t=F(t));let e=new Qt(t,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(t,this.seed)%this.filterSize,s=(n^e.hash())%this.filterSize;if(this.buckets[n]==null&&(this.buckets[n]=new er(this.bucketSize)),this.buckets[s]==null&&(this.buckets[s]=new er(this.bucketSize)),this.buckets[n].add(e)||this.buckets[s].add(e))return this.count++,!0;let i=[n,s],o=i[tr(0,i.length-1)];this.buckets[o]==null&&(this.buckets[o]=new er(this.bucketSize));for(let a=0;a<Up;a++){let c=this.buckets[o].swap(e);if(c!=null&&(o=(o^c.hash())%this.filterSize,this.buckets[o]==null&&(this.buckets[o]=new er(this.bucketSize)),this.buckets[o].add(c)))return this.count++,!0}return!1}has(t){typeof t=="string"&&(t=F(t));let e=new Qt(t,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(t,this.seed)%this.filterSize,s=this.buckets[n]?.has(e)??!1;if(s)return s;let i=(n^e.hash())%this.filterSize;return this.buckets[i]?.has(e)??!1}remove(t){typeof t=="string"&&(t=F(t));let e=new Qt(t,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(t,this.seed)%this.filterSize,s=this.buckets[n]?.remove(e)??!1;if(s)return this.count--,s;let i=(n^e.hash())%this.filterSize,o=this.buckets[i]?.remove(e)??!1;return o&&this.count--,o}get reliable(){return Math.floor(100*(this.count/this.filterSize))<=90}},Dp={1:.5,2:.84,4:.95,8:.98};function Op(r=.001){return r>.002?2:r>1e-5?4:8}function ku(r,t=.001){let e=Op(t),n=Dp[e],s=Math.round(r/n),i=Math.min(Math.ceil(Math.log2(1/t)+Math.log2(2*e)),la);return{filterSize:s,bucketSize:e,fingerprintSize:i}}var ei=class{filterSize;bucketSize;fingerprintSize;scale;filterSeries;hash;seed;constructor(t){this.bucketSize=t.bucketSize??4,this.filterSize=t.filterSize??(1<<18)/this.bucketSize,this.fingerprintSize=t.fingerprintSize??2,this.scale=t.scale??2,this.hash=t.hash??gn,this.seed=t.seed??tr(0,Math.pow(2,10)),this.filterSeries=[new mn({filterSize:this.filterSize,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed})]}add(t){if(typeof t=="string"&&(t=F(t)),this.has(t))return!0;let e=this.filterSeries.find(n=>n.reliable);if(e==null){let n=this.filterSize*Math.pow(this.scale,this.filterSeries.length);e=new mn({filterSize:n,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed}),this.filterSeries.push(e)}return e.add(t)}has(t){typeof t=="string"&&(t=F(t));for(let e=0;e<this.filterSeries.length;e++)if(this.filterSeries[e].has(t))return!0;return!1}remove(t){typeof t=="string"&&(t=F(t));for(let e=0;e<this.filterSeries.length;e++)if(this.filterSeries[e].remove(t))return!0;return!1}get count(){return this.filterSeries.reduce((t,e)=>t+e.count,0)}};function ha(r,t=.001,e){return new ei({...ku(r,t),...e??{}})}var ri=class{filter;constructor(t,e){this.filter=ha(t,e)}has(t){return this.filter.has(t.toMultihash().bytes)}add(t){this.filter.add(t.toMultihash().bytes)}remove(t){this.filter.remove?.(t.toMultihash().bytes)}};function da(r,t=.001){return new ri(r,t)}var ni=class{reservations=new Ae;_started=!1;interval;maxReservations;reservationClearInterval;applyDefaultLimit;reservationTtl;defaultDurationLimit;defaultDataLimit;constructor(t={}){this.maxReservations=t.maxReservations??15,this.reservationClearInterval=t.reservationClearInterval??3e5,this.applyDefaultLimit=t.applyDefaultLimit!==!1,this.reservationTtl=t.reservationTtl??72e5,this.defaultDurationLimit=t.defaultDurationLimit??12e4,this.defaultDataLimit=t.defaultDataLimit??bu}isStarted(){return this._started}start(){this._started||(this._started=!0,this.interval=setInterval(()=>{let t=new Date().getTime();this.reservations.forEach((e,n)=>{e.expire.getTime()<t&&this.reservations.delete(n)})},this.reservationClearInterval))}stop(){clearInterval(this.interval)}reserve(t,e,n){if(this.reservations.size>=this.maxReservations&&!this.reservations.has(t))return{status:q.RESERVATION_REFUSED};let s=new Date(Date.now()+this.reservationTtl),i;return this.applyDefaultLimit&&(i=n??{data:this.defaultDataLimit,duration:this.defaultDurationLimit}),this.reservations.set(t,{addr:e,expire:s,limit:i}),{status:q.OK,expire:Math.round(s.getTime()/1e3)}}removeReservation(t){this.reservations.delete(t)}hasReservation(t){return this.reservations.has(t)}get(t){return this.reservations.get(t)}};var si=class r{domain="libp2p-relay-rsvp";codec=new Uint8Array([3,2]);relay;peer;expiration;constructor({relay:t,peer:e,expiration:n}){this.relay=t,this.peer=e,this.expiration=n}marshal(){return Zs.encode({relay:this.relay.toMultihash().bytes,peer:this.peer.toMultihash().bytes,expiration:BigInt(this.expiration)})}equals(t){return!(!(t instanceof r)||!this.peer.equals(t.peer)||!this.relay.equals(t.relay)||this.expiration!==t.expiration)}};var Tu=r=>r.protoCodes().includes(290),Fp={maxOutboundStopStreams:fn},pa=class extends qt{registrar;peerStore;addressManager;peerId;privateKey;connectionManager;connectionGater;reservationStore;started;hopTimeout;shutdownController;maxInboundHopStreams;maxOutboundHopStreams;maxOutboundStopStreams;log;constructor(t,e={}){super(),this.log=t.logger.forComponent("libp2p:circuit-relay:server"),this.registrar=t.registrar,this.peerStore=t.peerStore,this.addressManager=t.addressManager,this.peerId=t.peerId,this.privateKey=t.privateKey,this.connectionManager=t.connectionManager,this.connectionGater=t.connectionGater,this.started=!1,this.hopTimeout=e?.hopTimeout??wu,this.maxInboundHopStreams=e.maxInboundHopStreams,this.maxOutboundHopStreams=e.maxOutboundHopStreams,this.maxOutboundStopStreams=e.maxOutboundStopStreams??Fp.maxOutboundStopStreams,this.reservationStore=new ni(e.reservations),this.shutdownController=new AbortController,Ft(1/0,this.shutdownController.signal)}[Symbol.toStringTag]="@libp2p/circuit-relay-v2-server";isStarted(){return this.started}async start(){this.started||(await this.registrar.handle(Gt,t=>{this.onHop(t).catch(e=>{this.log.error(e)})},{maxInboundStreams:this.maxInboundHopStreams,maxOutboundStreams:this.maxOutboundHopStreams,runOnLimitedConnection:!0}),this.reservationStore.start(),this.started=!0)}async stop(){this.reservationStore.stop(),this.shutdownController.abort(),await this.registrar.unhandle(Gt),this.started=!1}async onHop({connection:t,stream:e}){this.log("received circuit v2 hop protocol stream from %p",t.remotePeer);let n=Vt(),s=setTimeout(()=>{n.reject("timed out")},this.hopTimeout),i=Ve(e);try{let o=await Promise.race([i.pb(Z).read(),n.promise]);if(o?.type==null)throw new Error("request was invalid, could not read from stream");this.log("received",o.type),await Promise.race([this.handleHopProtocol({connection:t,stream:i,request:o}),n.promise])}catch(o){this.log.error("error while handling hop",o),await i.pb(Z).write({type:Z.Type.STATUS,status:q.MALFORMED_MESSAGE}),e.abort(o)}finally{clearTimeout(s)}}async handleHopProtocol({stream:t,request:e,connection:n}){switch(this.log("received hop message"),e.type){case Z.Type.RESERVE:await this.handleReserve({stream:t,request:e,connection:n});break;case Z.Type.CONNECT:await this.handleConnect({stream:t,request:e,connection:n});break;default:this.log.error("invalid hop request type %s via peer %p",e.type,n.remotePeer),await t.pb(Z).write({type:Z.Type.STATUS,status:q.UNEXPECTED_MESSAGE})}}async handleReserve({stream:t,request:e,connection:n}){let s=t.pb(Z);if(this.log("hop reserve request from %p",n.remotePeer),Tu(n.remoteAddr)){this.log.error("relay reservation over circuit connection denied for peer: %p",n.remotePeer),await s.write({type:Z.Type.STATUS,status:q.PERMISSION_DENIED});return}if(await this.connectionGater.denyInboundRelayReservation?.(n.remotePeer)===!0){this.log.error("reservation for %p denied by connection gater",n.remotePeer),await s.write({type:Z.Type.STATUS,status:q.PERMISSION_DENIED});return}let i=this.reservationStore.reserve(n.remotePeer,n.remoteAddr);if(i.status!==q.OK){await s.write({type:Z.Type.STATUS,status:i.status});return}try{if(i.expire!=null){let o=i.expire*1e3-Date.now();await this.peerStore.merge(n.remotePeer,{tags:{[mu]:{value:1,ttl:o}}})}await s.write({type:Z.Type.STATUS,status:q.OK,reservation:await this.makeReservation(n.remotePeer,BigInt(i.expire??0)),limit:this.reservationStore.get(n.remotePeer)?.limit}),this.log("sent confirmation response to %s",n.remotePeer)}catch(o){this.log.error("failed to send confirmation response to %p",n.remotePeer,o),this.reservationStore.removeReservation(n.remotePeer)}}async makeReservation(t,e){let n=[];for(let i of this.addressManager.getAddresses())i.toString().includes("/p2p-circuit")||n.push(i.bytes);let s=await un.seal(new si({peer:t,relay:this.peerId,expiration:Number(e)}),this.privateKey);return{addrs:n,expire:e,voucher:s.marshal()}}async handleConnect({stream:t,request:e,connection:n}){let s=t.pb(Z);if(Tu(n.remoteAddr)){this.log.error("relay reservation over circuit connection denied for peer: %p",n.remotePeer),await s.write({type:Z.Type.STATUS,status:q.PERMISSION_DENIED});return}this.log("hop connect request from %p",n.remotePeer);let i;try{if(e.peer==null)throw this.log.error("no peer info in hop connect request"),new Error("no peer info in request");e.peer.addrs.forEach(xt),i=cn(Kt(e.peer.id))}catch(u){this.log.error("invalid hop connect request via peer %p %s",n.remotePeer,u),await s.write({type:Z.Type.STATUS,status:q.MALFORMED_MESSAGE});return}if(!this.reservationStore.hasReservation(i)){this.log.error("hop connect denied for destination peer %p not having a reservation for %p with status %s",i,n.remotePeer,q.NO_RESERVATION),await s.write({type:Z.Type.STATUS,status:q.NO_RESERVATION});return}if(await this.connectionGater.denyOutboundRelayedConnection?.(n.remotePeer,i)===!0){this.log.error("hop connect for %p to %p denied by connection gater",n.remotePeer,i),await s.write({type:Z.Type.STATUS,status:q.PERMISSION_DENIED});return}let o=this.connectionManager.getConnections(i);if(o.length===0){this.log("hop connect denied for destination peer %p not having a connection for %p as there is no destination connection",i,n.remotePeer),await s.write({type:Z.Type.STATUS,status:q.NO_RESERVATION});return}let a=this.reservationStore.get(i)?.limit,c=o[0],h=await this.stopHop({connection:c,request:{type:Ht.Type.CONNECT,peer:{id:n.remotePeer.toMultihash().bytes,addrs:[]},limit:a}});if(h==null){this.log.error("failed to open stream to destination peer %p",c?.remotePeer),await s.write({type:Z.Type.STATUS,status:q.CONNECTION_FAILED});return}await s.write({type:Z.Type.STATUS,status:q.OK,limit:a});let f=t.unwrap();this.log("connection from %p to %p established - merging streams",n.remotePeer,i),Su(f,h,this.shutdownController.signal,a,{log:this.log})}async stopHop({connection:t,request:e}){this.log("starting circuit relay v2 stop request to %s",t.remotePeer);let n=await t.newStream([Qe],{maxOutboundStreams:this.maxOutboundStopStreams,runOnLimitedConnection:!0}),s=Ve(n),i=s.pb(Ht);await i.write(e);let o;try{o=await i.read()}catch{this.log.error("error parsing stop message response from %p",t.remotePeer)}if(o==null){this.log.error("could not read response from %p",t.remotePeer),await n.close();return}if(o.status===q.OK)return this.log("stop request to %p was successful",t.remotePeer),s.unwrap();this.log("stop request failed with code %d",o.status),await n.close()}get reservations(){return this.reservationStore.reservations}};function Nu(r={}){return t=>new pa(t,r)}function qp(r){let[t,e]=r[Symbol.asyncIterator]!=null?[r[Symbol.asyncIterator](),Symbol.asyncIterator]:[r[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>t.next(),push:s=>{n.push(s)},next:()=>n.length>0?{done:!1,value:n.shift()}:t.next(),[e](){return this}}}var Cu=qp;function Kp(r){return r[Symbol.asyncIterator]!=null}function Ru(r){return r?.then!=null}function zp(r,t){let e=0;if(Kp(r))return async function*(){for await(let c of r){let h=t(c,e++);Ru(h)&&await h,yield c}}();let n=Cu(r),{value:s,done:i}=n.next();if(i===!0)return function*(){}();if(typeof t(s,e++)?.then=="function")return async function*(){yield s;for await(let c of n){let h=t(c,e++);Ru(h)&&await h,yield c}}();let a=t;return function*(){yield s;for(let c of n)a(c,e++),yield c}()}var Lu=zp;var ii=class{buffer;mask;top;btm;next;constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}},Cr=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new ii(this.hwm),this.tail=this.head,this.size=0}calculateSize(t){return t?.byteLength!=null?t.byteLength:1}push(t){if(t?.value!=null&&(this.size+=this.calculateSize(t.value)),!this.head.push(t)){let e=this.head;this.head=e.next=new ii(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next!=null){let e=this.tail.next;this.tail.next=null,this.tail=e,t=this.tail.shift()}return t?.value!=null&&(this.size-=this.calculateSize(t.value)),t}isEmpty(){return this.head.isEmpty()}};var ma=class extends Error{type;code;constructor(t,e){super(t??"The operation was aborted"),this.type="aborted",this.code=e??"ABORT_ERR"}};function Rr(r={}){return $p(e=>{let n=e.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},r)}function $p(r,t){t=t??{};let e=t.onEnd,n=new Cr,s,i,o,a=Vt(),c=async()=>{try{return n.isEmpty()?o?{done:!0}:await new Promise((y,b)=>{i=w=>{i=null,n.push(w);try{y(r(n))}catch(g){b(g)}return s}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=Vt()})}},h=y=>i!=null?i(y):(n.push(y),s),f=y=>(n=new Cr,i!=null?i({error:y}):(n.push({error:y}),s)),u=y=>{if(o)return s;if(t?.objectMode!==!0&&y?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return h({done:!1,value:y})},p=y=>o?s:(o=!0,y!=null?f(y):h({done:!0})),l=()=>(n=new Cr,p(),{done:!0}),d=y=>(p(y),{done:!0});if(s={[Symbol.asyncIterator](){return this},next:c,return:l,throw:d,push:u,end:p,get readableLength(){return n.size},onEmpty:async y=>{let b=y?.signal;if(b?.throwIfAborted(),n.isEmpty())return;let w,g;b!=null&&(w=new Promise((v,A)=>{g=()=>{A(new ma)},b.addEventListener("abort",g)}));try{await Promise.race([a.promise,w])}finally{g!=null&&b!=null&&b?.removeEventListener("abort",g)}}},e==null)return s;let m=s;return s={[Symbol.asyncIterator](){return this},next(){return m.next()},throw(y){return m.throw(y),e!=null&&(e(y),e=void 0),{done:!0}},return(){return m.return(),e!=null&&(e(),e=void 0),{done:!0}},push:u,end(y){return m.end(y),e!=null&&(e(y),e=void 0),s},get readableLength(){return m.readableLength},onEmpty:y=>m.onEmpty(y)},s}function Gp(r){return r[Symbol.asyncIterator]!=null}function Wp(...r){let t=[];for(let e of r)Gp(e)||t.push(e);return t.length===r.length?function*(){for(let e of t)yield*e}():async function*(){let e=Rr({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(r.map(async n=>{for await(let s of n)e.push(s)})),e.end()}catch(n){e.end(n)}}),yield*e}()}var Uu=Wp;function Du(r,...t){if(r==null)throw new Error("Empty pipeline");if(ya(r)){let n=r;r=()=>n.source}else if(Mu(r)||Ou(r)){let n=r;r=()=>n}let e=[r,...t];if(e.length>1&&ya(e[e.length-1])&&(e[e.length-1]=e[e.length-1].sink),e.length>2)for(let n=1;n<e.length-1;n++)ya(e[n])&&(e[n]=Zp(e[n]));return jp(...e)}var jp=(...r)=>{let t;for(;r.length>0;)t=r.shift()(t);return t},Ou=r=>r?.[Symbol.asyncIterator]!=null,Mu=r=>r?.[Symbol.iterator]!=null,ya=r=>r==null?!1:r.sink!=null&&r.source!=null,Zp=r=>t=>{let e=r.sink(t);if(e?.then!=null){let n=Rr({objectMode:!0});e.then(()=>{n.end()},o=>{n.end(o)});let s,i=r.source;if(Ou(i))s=async function*(){yield*i,n.end()};else if(Mu(i))s=function*(){yield*i,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return Uu(n,s())}return r.source};function ba(r){let{stream:t,remoteAddr:e,logger:n,onDataRead:s,onDataWrite:i}=r,o=n.forComponent("libp2p:stream:converter"),a=!1,c=!1,h=t.close.bind(t);t.close=async d=>{await h(d),l(!0)};let f=t.abort.bind(t);t.abort=d=>{f(d),l(!0)};let u=t.sink.bind(t);t.sink=async d=>{try{await u(Du(d,m=>Lu(m,y=>i?.(y))))}catch(m){m.type!=="aborted"&&o.error("%s error in sink",e,m)}finally{c=!0,l()}};let p={log:o,sink:t.sink,source:async function*(){try{for await(let d of t.source)s?.(d),yield d}finally{a=!0,l()}}(),remoteAddr:e,timeline:{open:Date.now(),close:void 0},close:t.close,abort:t.abort};function l(d){d===!0&&(a=!0,c=!0),a&&c&&p.timeline.close==null&&(p.timeline.close=Date.now())}return p}var Xp=k("dns4"),Yp=k("dns6"),Jp=k("dnsaddr"),rr=at(k("dns"),Jp,Xp,Yp),ci=at(k("ip4"),k("ip6")),Lr=at(D(ci,k("tcp")),D(rr,k("tcp"))),li=D(ci,k("udp")),Qp=D(li,k("utp")),t0=D(li,k("quic")),e0=D(li,k("quic-v1")),wa=at(D(Lr,k("ws")),D(rr,k("ws"))),oi=at(D(wa,k("p2p")),wa),xa=at(D(Lr,k("wss")),D(rr,k("wss")),D(Lr,k("tls"),k("ws")),D(rr,k("tls"),k("ws"))),ai=at(D(xa,k("p2p")),xa),va=at(D(Lr,k("http")),D(ci,k("http")),D(rr,k("http"))),Ea=at(D(Lr,k("https")),D(ci,k("https")),D(rr,k("https"))),Pu=D(li,k("webrtc-direct"),k("certhash")),Fu=at(D(Pu,k("p2p")),Pu),Vu=D(e0,k("webtransport"),k("certhash"),k("certhash")),qu=at(D(Vu,k("p2p")),Vu),Ku=at(D(oi,k("p2p-webrtc-star"),k("p2p")),D(ai,k("p2p-webrtc-star"),k("p2p")),D(oi,k("p2p-webrtc-star")),D(ai,k("p2p-webrtc-star"))),G2=at(D(oi,k("p2p-websocket-star"),k("p2p")),D(ai,k("p2p-websocket-star"),k("p2p")),D(oi,k("p2p-websocket-star")),D(ai,k("p2p-websocket-star"))),zu=at(D(va,k("p2p-webrtc-direct"),k("p2p")),D(Ea,k("p2p-webrtc-direct"),k("p2p")),D(va,k("p2p-webrtc-direct")),D(Ea,k("p2p-webrtc-direct"))),nr=at(wa,xa,va,Ea,Ku,zu,Lr,Qp,t0,rr,Fu,qu),W2=at(D(nr,k("p2p-stardust"),k("p2p")),D(nr,k("p2p-stardust"))),He=at(D(nr,k("p2p")),Ku,zu,Fu,qu,k("p2p")),Hu=at(D(He,k("p2p-circuit"),He),D(He,k("p2p-circuit")),D(k("p2p-circuit"),He),D(nr,k("p2p-circuit")),D(k("p2p-circuit"),nr),k("p2p-circuit")),$u=()=>at(D(Hu,$u),Hu),Be=$u(),j2=at(D(Be,He,Be),D(He,Be),D(Be,He),Be,He);var Z2=at(D(Be,k("webrtc"),k("p2p")),D(Be,k("webrtc")),D(nr,k("webrtc"),k("p2p")),D(nr,k("webrtc")),k("webrtc"));function Gu(r){function t(e){let n;try{n=xt(e)}catch{return!1}let s=r(n.protoNames());return s===null?!1:s===!0||s===!1?s:s.length===0}return t}function D(...r){function t(e){if(e.length<r.length)return null;let n=e;return r.some(s=>(n=typeof s=="function"?s().partialMatch(e):s.partialMatch(e),Array.isArray(n)&&(e=n),n===null)),n}return{toString:function(){return"{ "+r.join(" ")+" }"},input:r,matches:Gu(t),partialMatch:t}}function at(...r){function t(n){let s=null;return r.some(i=>{let o=typeof i=="function"?i().partialMatch(n):i.partialMatch(n);return o!=null?(s=o,!0):!1}),s}return{toString:function(){return"{ "+r.join(" ")+" }"},input:r,matches:Gu(t),partialMatch:t}}function k(r){let t=r;function e(s){let i;try{i=xt(s)}catch{return!1}let o=i.protoNames();return o.length===1&&o[0]===t}function n(s){return s.length===0?null:s[0]===t?s.slice(1):null}return{toString:function(){return t},matches:e,partialMatch:n}}var Fe=class extends Event{type;detail;constructor(t,e){super(t),this.type=t,this.detail=e}};var Sa=class extends Error{type;code;constructor(t,e){super(t??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=e??"ABORT_ERR"}};async function ui(r,t,e,n){let s=new Sa(n?.errorMessage,n?.errorCode);return e?.aborted===!0?Promise.reject(s):new Promise((i,o)=>{function a(){e?.removeEventListener("abort",f),r.removeEventListener(t,c),n?.errorEvent!=null&&r.removeEventListener(n.errorEvent,h)}let c=u=>{try{if(n?.filter?.(u)===!1)return}catch(p){a(),o(p);return}a(),i(u)},h=u=>{a(),o(u.detail)},f=()=>{a(),o(s)};e?.addEventListener("abort",f),r.addEventListener(t,c),n?.errorEvent!=null&&r.addEventListener(n.errorEvent,h)})}var fi=class{deferred;signal;constructor(t){this.signal=t,this.deferred=Vt(),this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(this.signal?.reason??new ae)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function n0(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var hi=class{id;fn;options;recipients;status;timeline;controller;constructor(t,e){this.id=n0(),this.status="queued",this.fn=t,this.options=e,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,Ft(1/0,this.controller.signal),this.onAbort=this.onAbort.bind(this)}abort(t){this.controller.abort(t)}onAbort(){this.recipients.reduce((e,n)=>e&&n.signal?.aborted===!0,!0)&&(this.controller.abort(new ae),this.cleanup())}async join(t={}){let e=new fi(t.signal);return this.recipients.push(e),t.signal?.addEventListener("abort",this.onAbort),e.deferred.promise}async run(){this.status="running",this.timeline.started=Date.now();try{this.controller.signal.throwIfAborted();let t=await kr(this.fn({...this.options??{},signal:this.controller.signal}),this.controller.signal);this.recipients.forEach(e=>{e.deferred.resolve(t)}),this.status="complete"}catch(t){this.recipients.forEach(e=>{e.deferred.reject(t)}),this.status="errored"}finally{this.timeline.finished=Date.now(),this.cleanup()}}cleanup(){this.recipients.forEach(t=>{t.cleanup(),t.signal?.removeEventListener("abort",this.onAbort)})}};var di=class extends qt{concurrency;queue;pending;sort;constructor(t={}){super(),this.concurrency=t.concurrency??Number.POSITIVE_INFINITY,this.pending=0,t.metricName!=null&&t.metrics?.registerMetricGroup(t.metricName,{calculate:()=>({size:this.queue.length,running:this.pending,queued:this.queue.length-this.pending})}),this.sort=t.sort,this.queue=[]}tryToStartAnother(){if(this.size===0)return queueMicrotask(()=>{this.safeDispatchEvent("empty")}),this.running===0&&queueMicrotask(()=>{this.safeDispatchEvent("idle")}),!1;if(this.pending<this.concurrency){let t;for(let e of this.queue)if(e.status==="queued"){t=e;break}return t==null?!1:(this.safeDispatchEvent("active"),this.pending++,t.run().finally(()=>{for(let e=0;e<this.queue.length;e++)if(this.queue[e]===t){this.queue.splice(e,1);break}this.pending--,this.tryToStartAnother(),this.safeDispatchEvent("next")}),!0)}return!1}enqueue(t){this.queue.push(t),this.sort!=null&&this.queue.sort(this.sort)}async add(t,e){e?.signal?.throwIfAborted();let n=new hi(t,e);return this.enqueue(n),this.safeDispatchEvent("add"),this.tryToStartAnother(),n.join(e).then(s=>(this.safeDispatchEvent("completed",{detail:s}),this.safeDispatchEvent("success",{detail:{job:n,result:s}}),s)).catch(s=>{if(n.status==="queued"){for(let i=0;i<this.queue.length;i++)if(this.queue[i]===n){this.queue.splice(i,1);break}}throw this.safeDispatchEvent("error",{detail:s}),this.safeDispatchEvent("failure",{detail:{job:n,error:s}}),s})}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(t=>{t.abort(new ae)}),this.clear()}async onEmpty(t){this.size!==0&&await ui(this,"empty",t?.signal)}async onSizeLessThan(t,e){this.size<t||await ui(this,"next",e?.signal,{filter:()=>this.size<t})}async onIdle(t){this.pending===0&&this.size===0||await ui(this,"idle",t?.signal)}get size(){return this.queue.length}get queued(){return this.queue.length-this.pending}get running(){return this.pending}async*toGenerator(t){t?.signal?.throwIfAborted();let e=Rr({objectMode:!0}),n=c=>{c!=null?this.abort():this.clear(),e.end(c)},s=c=>{c.detail!=null&&e.push(c.detail)},i=c=>{n(c.detail)},o=()=>{n()},a=()=>{n(new ae("Queue aborted"))};this.addEventListener("completed",s),this.addEventListener("error",i),this.addEventListener("idle",o),t?.signal?.addEventListener("abort",a);try{yield*e}finally{this.removeEventListener("completed",s),this.removeEventListener("error",i),this.removeEventListener("idle",o),t?.signal?.removeEventListener("abort",a),n()}}};var Ur=class extends di{has(t){return this.find(t)!=null}find(t){return this.queue.find(e=>t.equals(e.options.peerId))}};var pi=class extends qt{peerStore;registrar;connectionManager;randomWalk;started;running;topologyId;log;discoveryController;filter;constructor(t,e={}){super(),this.log=t.logger.forComponent("libp2p:circuit-relay:discover-relays"),this.started=!1,this.running=!1,this.peerStore=t.peerStore,this.registrar=t.registrar,this.connectionManager=t.connectionManager,this.randomWalk=t.randomWalk,this.filter=e.filter,this.discoveryController=new AbortController,Ft(1/0,this.discoveryController.signal)}isStarted(){return this.started}async start(){this.topologyId=await this.registrar.register(Gt,{filter:this.filter,onConnect:t=>{this.log("discovered relay %p",t),this.safeDispatchEvent("relay:discover",{detail:t})}}),this.started=!0}stop(){this.topologyId!=null&&this.registrar.unregister(this.topologyId),this.discoveryController?.abort(),this.started=!1}startDiscovery(){this.running||(this.log("start discovery"),this.running=!0,this.discoveryController=new AbortController,Ft(1/0,this.discoveryController.signal),Promise.resolve().then(async()=>{this.log("searching peer store for relays");let t=await this.peerStore.all({filters:[n=>n.protocols.includes(Gt)],orders:[()=>Math.random()<.5?1:-1]});for(let n of t)this.log.trace("found relay peer %p in peer store",n.id),this.safeDispatchEvent("relay:discover",{detail:n.id});this.log("found %d relay peers in peer store",t.length);let e=new Ur({concurrency:5});this.log("start random walk");for await(let n of this.randomWalk.walk({signal:this.discoveryController.signal})){if(this.log.trace("found random peer %p",n.id),e.has(n.id)){this.log.trace("random peer %p was already in queue",n.id);continue}if(this.connectionManager.getConnections(n.id)?.length>0){this.log.trace("random peer %p was already connected",n.id);continue}if(!await this.connectionManager.isDialable(n.multiaddrs)){this.log.trace("random peer %p was not dialable",n.id,n.multiaddrs.map(s=>s.toString()));continue}this.log.trace("wait for space in queue for %p",n.id),await kr(e.onSizeLessThan(10),this.discoveryController.signal),this.log("adding random peer %p to dial queue (length: %d)",n.id,e.size),e.add(async()=>{let s=Xs([this.discoveryController.signal,AbortSignal.timeout(5e3)]);Ft(1/0,s);try{await this.connectionManager.openConnection(n.id,{signal:s})}finally{s.clear()}},{peerId:n.id,signal:this.discoveryController.signal}).catch(s=>{this.log.error("error opening connection to random peer %p",n.id,s)})}await e.onIdle()}).catch(t=>{this.discoveryController.signal.aborted||this.log.error("failed when finding relays on the network",t)}))}stopDiscovery(){this.log("stop discovery"),this.running=!1,this.discoveryController?.abort()}};var Aa=class extends qt{connectionManager;relayStore;listeningAddrs;log;constructor(t){super(),this.log=t.logger.forComponent("libp2p:circuit-relay:transport:listener"),this.connectionManager=t.connectionManager,this.relayStore=t.relayStore,this.listeningAddrs=new Ae,this.relayStore.addEventListener("relay:removed",this._onRemoveRelayPeer)}_onRemoveRelayPeer=t=>{this.#t(t.detail)};async listen(t){this.log("listen on %a",t);let e=t.decapsulate("/p2p-circuit"),n=await this.connectionManager.openConnection(e);if(!this.relayStore.hasReservation(n.remotePeer)){this.log("making reservation on peer %p",n.remotePeer),await this.relayStore.addRelay(n.remotePeer,"configured");return}let s=this.relayStore.getReservation(n.remotePeer);if(s==null)throw new vn("Did not have reservation after making reservation");if(this.listeningAddrs.has(n.remotePeer)){this.log("already listening on relay %p",n.remotePeer);return}this.listeningAddrs.set(n.remotePeer,s.addrs.map(i=>xt(i).encapsulate("/p2p-circuit"))),this.safeDispatchEvent("listening",{})}getAddrs(){return[...this.listeningAddrs.values()].flat()}async close(){}#t(t){let e=this.listeningAddrs.has(t);this.log("relay peer removed %p - had reservation",t,e),this.listeningAddrs.delete(t),e&&(this.log.trace("removing relay event listener for peer %p",t),this.relayStore.removeEventListener("relay:removed",this._onRemoveRelayPeer),this.safeDispatchEvent("close",{}))}};function Wu(r){return new Aa(r)}var a0=60*1e3*10,c0=60*1e3*5,l0=30*1e3,gi=class extends qt{peerId;connectionManager;transportManager;peerStore;events;reserveQueue;reservations;maxDiscoveredRelays;maxReservationQueueLength;reservationCompletionTimeout;started;log;relayFilter;constructor(t,e){super(),this.log=t.logger.forComponent("libp2p:circuit-relay:transport:reservation-store"),this.peerId=t.peerId,this.connectionManager=t.connectionManager,this.transportManager=t.transportManager,this.peerStore=t.peerStore,this.events=t.events,this.reservations=new Ae,this.maxDiscoveredRelays=e?.discoverRelays??0,this.maxReservationQueueLength=e?.maxReservationQueueLength??100,this.reservationCompletionTimeout=e?.reservationCompletionTimeout??1e3,this.started=!1,this.relayFilter=ca(100),this.reserveQueue=new Ur({concurrency:e?.reservationConcurrency??1,metricName:"libp2p_relay_reservation_queue",metrics:t.metrics}),this.events.addEventListener("peer:disconnect",n=>{this.#e(n.detail)})}isStarted(){return this.started}start(){this.started=!0}afterStart(){this.reservations.size<this.maxDiscoveredRelays&&(this.log("not enough relays %d/%d",this.reservations.size,this.maxDiscoveredRelays),this.safeDispatchEvent("relay:not-enough-relays",{}))}stop(){this.reserveQueue.clear(),this.reservations.forEach(({timeout:t})=>{clearTimeout(t)}),this.reservations.clear(),this.started=!1}async addRelay(t,e){if(this.peerId.equals(t)){this.log("not trying to use self as relay");return}if(this.reserveQueue.size>this.maxReservationQueueLength){this.log("not adding potential relay peer %p as the queue is full",t);return}if(this.reserveQueue.has(t)){this.log("potential relay peer %p is already in the reservation queue",t);return}if(this.relayFilter.has(t.toMultihash().bytes)){this.log("potential relay peer %p has failed previously, not trying again",t);return}this.log("try to reserve relay slot with %p",t),await this.reserveQueue.add(async()=>{let n=Date.now();try{let s=this.reservations.get(t);if(s!=null){if(ia(s.reservation.expire)>a0){this.log("already have reservation on relay peer %p and it expires in more than 10 minutes",t);return}clearTimeout(s.timeout),this.reservations.delete(t)}if(e==="discovered"&&[...this.reservations.values()].reduce((u,p)=>(p.type==="discovered"&&u++,u),0)>=this.maxDiscoveredRelays){this.log("already have enough discovered relays");return}let i=AbortSignal.timeout(this.reservationCompletionTimeout);Ft(1/0,i);let o=await this.connectionManager.openConnection(t,{signal:i});if(o.remoteAddr.protoNames().includes("p2p-circuit")){this.log("not creating reservation over relayed connection");return}let a=await this.#t(o,{signal:i});this.log("created reservation on relay peer %p",t);let c=ia(a.expire),h=Math.min(Math.max(c-c0,l0),Math.pow(2,31)-1),f=setTimeout(()=>{this.addRelay(t,e).catch(u=>{this.log.error("could not refresh reservation to relay %p",t,u)})},h);this.reservations.set(t,{timeout:f,reservation:a,type:e}),await this.peerStore.merge(t,{tags:{[yu]:{value:1,ttl:c}}}),await this.transportManager.listen([xt(`/p2p/${t.toString()}/p2p-circuit`)]),this.safeDispatchEvent("relay:created-reservation",{detail:t})}catch(s){this.log.error("could not reserve slot on %p after %dms",t,Date.now()-n,s);let i=this.reservations.get(t);i!=null&&clearTimeout(i.timeout),this.reservations.delete(t),this.relayFilter.add(t.toMultihash().bytes)}},{peerId:t})}hasReservation(t){return this.reservations.has(t)}getReservation(t){return this.reservations.get(t)?.reservation}reservationCount(){return this.reservations.size}async#t(t,e){e.signal?.throwIfAborted(),this.log("requesting reservation from %p",t.remotePeer);let n=await t.newStream(Gt,e),i=Ve(n).pb(Z);await i.write({type:Z.Type.RESERVE},e);let o;try{o=await i.read(e)}catch(c){throw n.abort(c),c}finally{n.status!=="closed"&&await n.close(e)}if(o.status===q.OK&&o.reservation!=null){let c=!1,h=t.remoteAddr.bytes;for(let f of o.reservation.addrs)if(ct(h,f)){c=!0;break}return c||o.reservation.addrs.push(h),o.reservation}let a=`reservation failed with status ${o.status??"undefined"}`;throw this.log.error(a),new Error(a)}#e(t){let e=this.reservations.get(t);e!=null&&(this.log("connection to relay %p closed, removing reservation from local store",t),clearTimeout(e.timeout),this.reservations.delete(t),this.safeDispatchEvent("relay:removed",{detail:t}),this.reservations.size<this.maxDiscoveredRelays&&(this.log("not enough relays %d/%d",this.reservations.size,this.maxDiscoveredRelays),this.safeDispatchEvent("relay:not-enough-relays",{})))}};var u0=r=>{if(r.peer==null)return!1;try{r.peer.addrs.forEach(xt)}catch{return!1}return!0},Ba={maxInboundStopStreams:fn,maxOutboundStopStreams:fn,stopTimeout:3e4},mi=class{discovery;registrar;peerStore;connectionManager;transportManager;peerId;upgrader;addressManager;connectionGater;reservationStore;logger;maxInboundStopStreams;maxOutboundStopStreams;stopTimeout;started;log;constructor(t,e){this.log=t.logger.forComponent("libp2p:circuit-relay:transport"),this.registrar=t.registrar,this.peerStore=t.peerStore,this.connectionManager=t.connectionManager,this.transportManager=t.transportManager,this.logger=t.logger,this.peerId=t.peerId,this.upgrader=t.upgrader,this.addressManager=t.addressManager,this.connectionGater=t.connectionGater,this.maxInboundStopStreams=e.maxInboundStopStreams??Ba.maxInboundStopStreams,this.maxOutboundStopStreams=e.maxOutboundStopStreams??Ba.maxOutboundStopStreams,this.stopTimeout=e.stopTimeout??Ba.stopTimeout;let n=e.discoverRelays??0;n>0&&(this.discovery=new pi(t,{filter:e.discoveryFilter??da(xu,vu)}),this.discovery.addEventListener("relay:discover",s=>{this.reservationStore.addRelay(s.detail,"discovered").catch(i=>{this.log.error("could not add discovered relay %p",s.detail,i)})})),this.reservationStore=new gi(t,e),this.reservationStore.addEventListener("relay:not-enough-relays",()=>{this.discovery?.startDiscovery()}),this.reservationStore.addEventListener("relay:created-reservation",()=>{this.reservationStore.reservationCount()>=n&&this.discovery?.stopDiscovery()}),this.started=!1}[Symbol.toStringTag]="@libp2p/circuit-relay-v2-transport";[Va]=["@libp2p/transport","@libp2p/circuit-relay-v2-transport"];get[Ha](){return this.discovery!=null?["@libp2p/identify"]:[]}[Da]=!0;isStarted(){return this.started}async start(){await this.registrar.handle(Qe,t=>{this.onStop(t).catch(e=>{this.log.error("error while handling STOP protocol",e),t.stream.abort(e)})},{maxInboundStreams:this.maxInboundStopStreams,maxOutboundStreams:this.maxOutboundStopStreams,runOnLimitedConnection:!0}),await Ma(this.discovery,this.reservationStore),this.started=!0}async stop(){await Pa(this.discovery,this.reservationStore),await this.registrar.unhandle(Qe),this.started=!1}async dial(t,e){if(t.protoCodes().filter(d=>d===290).length!==1){let d="Invalid circuit relay address";throw this.log.error(d,t),new Mr(d)}let n=t.toString().split("/p2p-circuit"),s=xt(n[0]),i=xt(n[n.length-1]),o=s.getPeerId(),a=i.getPeerId();if(o==null||a==null){let d=`Circuit relay dial to ${t.toString()} failed as address did not have peer ids`;throw this.log.error(d),new Mr(d)}let c=Ho(o),h=Ho(a),f=!1,p=this.connectionManager.getConnections(c)[0];p==null?(await this.peerStore.merge(c,{multiaddrs:[s]}),e.onProgress?.(new Fe("circuit-relay:open-connection")),p=await this.connectionManager.openConnection(c,e),f=!0):e.onProgress?.(new Fe("circuit-relay:reuse-connection"));let l;try{return e.onProgress?.(new Fe("circuit-relay:open-hop-stream")),l=await p.newStream(Gt),await this.connectV2({stream:l,connection:p,destinationPeer:h,destinationAddr:i,relayAddr:s,ma:t,disconnectOnFailure:f,onProgress:e.onProgress})}catch(d){throw this.log.error("circuit relay dial to destination %p via relay %p failed",h,c,d),l?.abort(d),f&&await p.close(),d}}async connectV2({stream:t,connection:e,destinationPeer:n,destinationAddr:s,relayAddr:i,ma:o,disconnectOnFailure:a,onProgress:c}){try{let h=Ve(t),f=h.pb(Z);c?.(new Fe("circuit-relay:write-connect-message")),await f.write({type:Z.Type.CONNECT,peer:{id:n.toMultihash().bytes,addrs:[xt(s).bytes]}}),c?.(new Fe("circuit-relay:read-connect-response"));let u=await f.read();if(u.status!==q.OK)throw new xn(`failed to connect via relay with status ${u?.status?.toString()??"undefined"}`);let p=new dn(u.limit),l=ba({stream:h.unwrap(),remoteAddr:o,localAddr:i.encapsulate(`/p2p-circuit/p2p/${this.peerId.toString()}`),logger:this.logger,onDataRead:p.onData,onDataWrite:p.onData});return this.log("new outbound relayed connection %a",l.remoteAddr),await this.upgrader.upgradeOutbound(l,{limits:p.getLimits(),onProgress:c})}catch(h){throw this.log.error(`Circuit relay dial to destination ${n.toString()} via relay ${e.remotePeer.toString()} failed`,h),a&&await e.close(),h}}createListener(t){return Wu({connectionManager:this.connectionManager,relayStore:this.reservationStore,logger:this.logger})}listenFilter(t){return t=Array.isArray(t)?t:[t],t.filter(e=>Be.matches(e))}dialFilter(t){return this.listenFilter(t)}async onStop({connection:t,stream:e}){if(!this.reservationStore.hasReservation(t.remotePeer))try{this.log("dialed via relay we did not have a reservation on, start listening on that relay address"),await this.transportManager.listen([t.remoteAddr.encapsulate("/p2p-circuit")])}catch(u){this.log.error("failed to listen on a relay peer we were dialed via but did not have a reservation on",u)}let n=AbortSignal.timeout(this.stopTimeout),s=Ve(e).pb(Ht),i=await s.read({signal:n});if(this.log("new circuit relay v2 stop stream from %p with type %s",t.remotePeer,i.type),i?.type===void 0){this.log.error("type was missing from circuit v2 stop protocol request from %s",t.remotePeer),await s.write({type:Ht.Type.STATUS,status:q.MALFORMED_MESSAGE},{signal:n}),await e.close();return}if(i.type!==Ht.Type.CONNECT){this.log.error("invalid stop connect request via peer %p",t.remotePeer),await s.write({type:Ht.Type.STATUS,status:q.UNEXPECTED_MESSAGE},{signal:n}),await e.close();return}if(!u0(i)){this.log.error("invalid stop connect request via peer %p",t.remotePeer),await s.write({type:Ht.Type.STATUS,status:q.MALFORMED_MESSAGE},{signal:n}),await e.close();return}let o=cn(Kt(i.peer.id));if(await this.connectionGater.denyInboundRelayedConnection?.(t.remotePeer,o)===!0){this.log.error("connection gater denied inbound relayed connection from %p",t.remotePeer),await s.write({type:Ht.Type.STATUS,status:q.PERMISSION_DENIED},{signal:n}),await e.close();return}this.log.trace("sending success response to %p",t.remotePeer),await s.write({type:Ht.Type.STATUS,status:q.OK},{signal:n});let a=new dn(i.limit),c=t.remoteAddr.encapsulate(`/p2p-circuit/p2p/${o.toString()}`),h=this.addressManager.getAddresses()[0],f=ba({stream:s.unwrap().unwrap(),remoteAddr:c,localAddr:h,logger:this.logger,onDataRead:a.onData,onDataWrite:a.onData});this.log("new inbound relayed connection %a",f.remoteAddr),await this.upgrader.upgradeInbound(f,{limits:a.getLimits()}),this.log("%s connection %a upgraded","inbound",f.remoteAddr)}};function ju(r={}){return t=>new mi(t,r)}return lf(f0);})();
8
7
  /*! Bundled license information:
9
8
 
10
9
  pvtsutils/build/index.js: