@libp2p/webtransport 6.0.35 → 6.0.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +3 -3
- package/package.json +9 -9
package/dist/index.min.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Libp2PWebtransport = factory()}(typeof self !== 'undefined' ? self : this, function () {
|
|
2
|
-
"use strict";var Libp2PWebtransport=(()=>{var ks=Object.defineProperty;var ad=Object.getOwnPropertyDescriptor;var cd=Object.getOwnPropertyNames;var fd=Object.prototype.hasOwnProperty;var rt=(r,t)=>{for(var e in t)ks(r,e,{get:t[e],enumerable:!0})},ud=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of cd(t))!fd.call(r,o)&&o!==e&&ks(r,o,{get:()=>t[o],enumerable:!(n=ad(t,o))||n.enumerable});return r};var hd=r=>ud(ks({},"__esModule",{value:!0}),r);var Hg={};rt(Hg,{webTransport:()=>Fg});var to=class extends Error{static name="UnexpectedPeerError";constructor(t="Unexpected Peer"){super(t),this.name="UnexpectedPeerError"}},yr=class extends Error{static name="InvalidCryptoExchangeError";constructor(t="Invalid crypto exchange"){super(t),this.name="InvalidCryptoExchangeError"}},tt=class extends Error{static name="InvalidParametersError";constructor(t="Invalid parameters"){super(t),this.name="InvalidParametersError"}},gr=class extends Error{static name="InvalidPublicKeyError";constructor(t="Invalid public key"){super(t),this.name="InvalidPublicKeyError"}};var eo=class extends Error{static name="MuxerClosedError";constructor(t="The muxer is closed"){super(t),this.name="MuxerClosedError"}},ro=class extends Error{static name="StreamResetError";constructor(t="The stream has been reset"){super(t),this.name="StreamResetError"}};var Be=class extends Error{static name="StreamStateError";constructor(t="The stream is in an invalid state"){super(t),this.name="StreamStateError"}},en=class extends Error{static name="StreamBufferError";constructor(t="The stream buffer was full"){super(t),this.name="StreamBufferError"}};var no=class extends Error{static name="InvalidMultiaddrError";constructor(t="Invalid multiaddr"){super(t),this.name="InvalidMultiaddrError"}},oo=class extends Error{static name="InvalidCIDError";constructor(t="Invalid CID"){super(t),this.name="InvalidCIDError"}},so=class extends Error{static name="InvalidMultihashError";constructor(t="Invalid Multihash"){super(t),this.name="InvalidMultihashError"}};var je=class extends Error{static name="UnsupportedKeyTypeError";constructor(t="Unsupported key type"){super(t),this.name="UnsupportedKeyTypeError"}};var io=class extends Event{data;constructor(t,e){super("message",e),this.data=t}},br=class extends Event{error;local;constructor(t,e,n){super("close",n),this.error=e,this.local=t}},ao=class extends br{constructor(t,e){super(!0,t,e)}},co=class extends br{constructor(t,e){super(!1,t,e)}};var Ks=Symbol.for("@libp2p/peer-id");var pf=Symbol.for("@libp2p/transport");var df;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(df||(df={}));function ld(r){return typeof r?.handleEvent=="function"}function dd(r){return r===!0||r===!1}function pd(r){return dd(r)?r:r?.capture??!1}function Fs(r){let t={capture:pd(r),once:!!r?.once};return r?.passive!=null&&(t.passive=r?.passive),r?.signal!=null&&(t.signal=r?.signal),t}function mf(r,t){return Fs(r).capture===Fs(t).capture}var wr=class extends EventTarget{#t=new Map;constructor(){super()}listenerCount(t){let e=this.#t.get(t);return e==null?0:e.length}addEventListener(t,e,n){let o=Fs(n);if(o?.signal?.aborted===!0)return;let s=f=>{o.once&&this.removeEventListener(t,e,o),ld(e)?e.handleEvent(f):e(f)},i=this.#t.get(t);if(i==null&&(i=[],this.#t.set(t,i)),i.some(f=>f.callback!==e?!1:mf(f.options,o)))return;super.addEventListener(t,s,o);let c=()=>{this.removeEventListener(t,e,o)};o.signal?.addEventListener("abort",c),i.push({callback:e,wrapper:s,options:o,onAbort:c})}removeEventListener(t,e,n){let o=this.#t.get(t);if(o==null){super.removeEventListener(t,e??null,n);return}this.#t.set(t,o.filter(s=>s.callback===e&&mf(s.options,n)?(super.removeEventListener(t,s.wrapper,n),s.options?.signal?.removeEventListener("abort",s.onAbort),!1):!0))}safeDispatchEvent(t,e={}){return this.dispatchEvent(new CustomEvent(t,e))}};var fo=Symbol.for("@libp2p/service-capabilities");var $s={};rt($s,{base58btc:()=>lt,base58flickr:()=>Sd});var wb=new Uint8Array(0);function gf(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 Ft(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return We(r);if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return We(new Uint8Array(r.buffer,r.byteOffset,r.byteLength));throw new Error("Unknown type, must be binary type")}function bf(r){let t=new Uint8Array(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);return t}var yf=4096;function wf(r){let t=r.length;if(t<=yf)return String.fromCharCode.apply(String,r);let e="",n=0;for(;n<t;)e+=String.fromCharCode.apply(String,r.subarray(n,n+=yf));return e}function md(r){return r?.buffer instanceof ArrayBuffer}function We(r){return md(r)?r:r.slice()}function yd(r,t,e){if(r.length>=255)throw new TypeError("Alphabet too long");for(var n=new Uint8Array(256),o=0;o<n.length;o++)n[o]=255;for(var s=0;s<r.length;s++){var i=r.charAt(s),a=i.charCodeAt(0);if(n[a]!==255)throw new TypeError(i+" is ambiguous");if(n[a]=s,e){var c=i.toLowerCase().charCodeAt(0),f=i.toUpperCase().charCodeAt(0);c!==a&&(n[c]=s),f!==a&&(n[f]=s)}}var u=r.length,h=r.charAt(0),l=Math.log(u)/Math.log(256),p=Math.log(256)/Math.log(u);function m(w){if(w instanceof Uint8Array||(ArrayBuffer.isView(w)?w=new Uint8Array(w.buffer,w.byteOffset,w.byteLength):Array.isArray(w)&&(w=Uint8Array.from(w))),!(w instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(w.length===0)return"";for(var S=0,x=0,I=0,_=w.length;I!==_&&w[I]===0;)I++,S++;for(var N=(_-I)*p+1>>>0,M=new Uint8Array(N);I!==_;){for(var P=w[I],R=0,U=N-1;(P!==0||R<x)&&U!==-1;U--,R++)P+=256*M[U]>>>0,M[U]=P%u>>>0,P=P/u>>>0;if(P!==0)throw new Error("Non-zero carry");x=R,I++}for(var k=N-x;k!==N&&M[k]===0;)k++;for(var D=h.repeat(S);k<N;++k)D+=r.charAt(M[k]);return D}function b(w){if(typeof w!="string")throw new TypeError("Expected String");if(w.length===0)return new Uint8Array;var S=0;if(w[S]!==" "){for(var x=0,I=0;w[S]===h;)x++,S++;for(var _=(w.length-S)*l+1>>>0,N=new Uint8Array(_);w[S];){var M=n[w.charCodeAt(S)];if(M===255)return;for(var P=0,R=_-1;(M!==0||P<I)&&R!==-1;R--,P++)M+=u*N[R]>>>0,N[R]=M%256>>>0,M=M/256>>>0;if(M!==0)throw new Error("Non-zero carry");I=P,S++}if(w[S]!==" "){for(var U=_-I;U!==_&&N[U]===0;)U++;for(var k=new Uint8Array(x+(_-U)),D=x;U!==_;)k[D++]=N[U++];return k}}}function g(w){var S=b(w);if(S)return S;throw new Error(`Non-${t} character`)}return{encode:m,decodeUnsafe:b,decode:g}}var gd=yd,bd=gd,Ef=bd;var Hs=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")}},zs=class{name;prefix;baseDecode;prefixCodePoint;constructor(t,e,n){this.name=t,this.prefix=e;let o=e.codePointAt(0);if(o===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=o,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 Sf(this,t)}},Vs=class{decoders;constructor(t){this.decoders=t}or(t){return Sf(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 Sf(r,t){return new Vs({...r.decoders??{[r.prefix]:r},...t.decoders??{[t.prefix]:t}})}var qs=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(t,e,n,o){this.name=t,this.prefix=e,this.baseEncode=n,this.baseDecode=o,this.encoder=new Hs(t,e,n),this.decoder=new zs(t,e,o)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function xr({name:r,prefix:t,encode:e,decode:n}){return new qs(r,t,e,n)}function Le({name:r,prefix:t,alphabet:e,caseInsensitive:n=!1}){let{encode:o,decode:s}=Ef(e,r,n);return xr({prefix:t,name:r,encode:o,decode:i=>Ft(s(i))})}function wd(r,t,e,n){let o=r.length;for(;r[o-1]==="=";)--o;let s=new Uint8Array(o*e/8|0),i=0,a=0,c=0;for(let f=0;f<o;++f){let u=t[r[f]];if(u===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<e|u,i+=e,i>=8&&(i-=8,s[c++]=255&a>>i)}if(i>=e||(255&a<<8-i)!==0)throw new SyntaxError("Unexpected end of data");return s}function xd(r,t,e){let n=t[t.length-1]==="=",o=(1<<e)-1,s="",i=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],i+=8;i>e;)i-=e,s+=t[o&a>>i];if(i!==0&&(s+=t[o&a<<e-i]),n)for(;(s.length*e&7)!==0;)s+="=";return s}function Ed(r,t){let e={};for(let n=0;n<r.length;++n)if(e[r[n]]=n,t){let o=r[n].toLowerCase(),s=r[n].toUpperCase();o!==r[n]&&(e[o]=n),s!==r[n]&&(e[s]=n)}return e}function ht({name:r,prefix:t,bitsPerChar:e,alphabet:n,caseInsensitive:o=!1}){let s=Ed(n,o);return xr({prefix:t,name:r,encode(i){return xd(i,n,e)},decode(i){return wd(i,s,e,r)}})}var lt=Le({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Sd=Le({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var js={};rt(js,{base32:()=>Ie,base32hex:()=>Ld,base32hexpad:()=>Cd,base32hexpadupper:()=>Td,base32hexupper:()=>Id,base32pad:()=>vd,base32padupper:()=>Bd,base32upper:()=>Ad,base32z:()=>_d});var Ie=ht({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5,caseInsensitive:!0}),Ad=ht({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5,caseInsensitive:!0}),vd=ht({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5,caseInsensitive:!0}),Bd=ht({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5,caseInsensitive:!0}),Ld=ht({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5,caseInsensitive:!0}),Id=ht({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5,caseInsensitive:!0}),Cd=ht({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5,caseInsensitive:!0}),Td=ht({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5,caseInsensitive:!0}),_d=ht({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Ws={};rt(Ws,{base36:()=>rn,base36upper:()=>Dd});var rn=Le({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz",caseInsensitive:!0}),Dd=Le({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",caseInsensitive:!0});var pe={};rt(pe,{Digest:()=>Ge,create:()=>jt,decode:()=>Ar,equals:()=>Ys,hasCode:()=>Zd});var Rd=Bf,Af=128,Od=127,Pd=~Od,Ud=Math.pow(2,31);function Bf(r,t,e){t=t||[],e=e||0;for(var n=e;r>=Ud;)t[e++]=r&255|Af,r/=128;for(;r&Pd;)t[e++]=r&255|Af,r>>>=7;return t[e]=r|0,Bf.bytes=e-n+1,t}var Nd=Gs,Md=128,vf=127;function Gs(r,n){var e=0,n=n||0,o=0,s=n,i,a=r.length;do{if(s>=a)throw Gs.bytes=0,new RangeError("Could not decode varint");i=r[s++],e+=o<28?(i&vf)<<o:(i&vf)*Math.pow(2,o),o+=7}while(i>=Md);return Gs.bytes=s-n,e}var kd=Math.pow(2,7),Kd=Math.pow(2,14),Fd=Math.pow(2,21),Hd=Math.pow(2,28),zd=Math.pow(2,35),Vd=Math.pow(2,42),qd=Math.pow(2,49),$d=Math.pow(2,56),jd=Math.pow(2,63),Wd=function(r){return r<kd?1:r<Kd?2:r<Fd?3:r<Hd?4:r<zd?5:r<Vd?6:r<qd?7:r<$d?8:r<jd?9:10},Gd={encode:Rd,decode:Nd,encodingLength:Wd},Yd=Gd,nn=Yd;function on(r,t=0){let e=nn.decode(r,t),n=nn.decode.bytes;if(n>9)throw new RangeError("Invalid varint: too long");if(n>1&&r[t+n-1]===0)throw new RangeError("Invalid varint: not minimally encoded");return[e,n]}function Er(r,t,e=0){return nn.encode(r,t,e),t}function Sr(r){return nn.encodingLength(r)}function jt(r,t){let e=t.byteLength,n=Sr(r),o=n+Sr(e),s=new Uint8Array(o+e);return Er(r,s,0),Er(e,s,n),s.set(t,o),new Ge(r,e,t,s)}function Ar(r){let t=Ft(r),[e,n]=on(t),[o,s]=on(t.subarray(n)),i=t.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new Ge(e,o,i,t)}function Ys(r,t){if(r===t)return!0;{let e=t;return r.code===e.code&&r.size===e.size&&e.bytes instanceof Uint8Array&&gf(r.bytes,e.bytes)}}var Ge=class{code;size;digest;bytes;constructor(t,e,n,o){this.code=t,this.size=e,this.digest=We(n),this.bytes=We(o)}};function Zd(r,t){return r.code===t}function Lf(r,t){let{bytes:e,version:n}=r;return n===0?Qd(e,Zs(r),t??lt.encoder):Jd(e,Zs(r),t??Ie.encoder)}var If=new WeakMap;function Zs(r){let t=If.get(r);if(t==null){let e=new Map;return If.set(r,e),e}return t}var yt=class r{code;version;multihash;bytes;"/";constructor(t,e,n,o){this.code=e,this.version=t,this.multihash=n,this.bytes=We(o),this["/"]=this.bytes}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!==sn)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(e.code!==tp)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=jt(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&&Ys(t.multihash,n.multihash)}toString(t){return Lf(this,t)}toJSON(){return{"/":Lf(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:o,multihash:s,bytes:i}=e;return new r(n,o,s,i??Cf(n,o,s.bytes))}else if(e[ep]===!0){let{version:n,multihash:o,code:s}=e,i=Ar(o);return r.create(n,s,i)}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!==sn)throw new Error(`Version 0 CID must use dag-pb (code: ${sn}) block encoding`);return new r(t,e,n,n.bytes)}case 1:{let o=Cf(t,e,n.bytes);return new r(t,e,n,o)}default:throw new Error("Invalid version")}}static createV0(t){return r.create(0,sn,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,o=Ft(t.subarray(n,n+e.multihashSize));if(o.byteLength!==e.multihashSize)throw new Error("Incorrect length");let s=o.subarray(e.multihashSize-e.digestSize),i=new Ge(e.multihashCode,e.digestSize,s,o);return[e.version===0?r.createV0(i):r.createV1(e.codec,i),t.subarray(e.size)]}static inspectBytes(t){let e=0,n=()=>{let[h,l]=on(t.subarray(e));return e+=l,h},o=n(),s=sn;if(o===18?(o=0,e=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=e,a=n(),c=n(),f=e+c,u=f-i;return{version:o,codec:s,multihashCode:a,digestSize:c,multihashSize:u,size:f}}static parse(t,e){let[n,o]=Xd(t,e),s=r.decode(o);if(s.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Zs(s).set(n,t),s}};function Xd(r,t){switch(r[0]){case"Q":{let e=t??lt;return[lt.prefix,e.decode(`${lt.prefix}${r}`)]}case lt.prefix:{let e=t??lt;return[lt.prefix,e.decode(r)]}case Ie.prefix:{let e=t??Ie;return[Ie.prefix,e.decode(r)]}case rn.prefix:{let e=t??rn;return[rn.prefix,e.decode(r)]}default:{if(t==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[r[0],t.decode(r)]}}}function Qd(r,t,e){let{prefix:n}=e;if(n!==lt.prefix)throw Error(`Cannot string encode V0 in ${e.name} encoding`);let o=t.get(n);if(o==null){let s=e.encode(r).slice(1);return t.set(n,s),s}else return o}function Jd(r,t,e){let{prefix:n}=e,o=t.get(n);if(o==null){let s=e.encode(r);return t.set(n,s),s}else return o}var sn=112,tp=18;function Cf(r,t,e){let n=Sr(r),o=n+Sr(t),s=new Uint8Array(o+e.byteLength);return Er(r,s,0),Er(t,s,n),s.set(e,o),s}var ep=Symbol.for("@ipld/js-cid/CID");var Xs={};rt(Xs,{identity:()=>Wt});var Tf=0,rp="identity",_f=Ft;function np(r,t){if(t?.truncate!=null&&t.truncate!==r.byteLength){if(t.truncate<0||t.truncate>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,t.truncate)}return jt(Tf,_f(r))}var Wt={code:Tf,name:rp,encode:_f,digest:np};function gt(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 op(r){return r.buffer instanceof ArrayBuffer}function Et(r){return op(r)?r:r.slice()}async function Df(r,t,e,n){let o=await crypto.subtle.importKey("jwk",r,{name:"ECDSA",namedCurve:r.crv??"P-256"},!1,["verify"]);n?.signal?.throwIfAborted();let s=await crypto.subtle.verify({name:"ECDSA",hash:{name:"SHA-256"}},o,Et(t),Et(e.subarray()));return n?.signal?.throwIfAborted(),s}function te(r=0){return new Uint8Array(r)}function vt(r=0){return new Uint8Array(r)}function sp(r){return r?.buffer instanceof ArrayBuffer}function Qs(r){if(sp(r))return r;let t=r.slice();return new Uint8Array(t.buffer,0,t.byteLength)}function ee(r,t){t==null&&(t=r.reduce((o,s)=>o+s.length,0));let e=vt(t),n=0;for(let o of r)e.set(o,n),n+=o.length;return Qs(e)}var Of=Symbol.for("@achingbrain/uint8arraylist");function Rf(r,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let e=0;for(let n of r){let o=e+n.byteLength;if(t<o)return{buf:n,index:t-e};e=o}throw new RangeError("index is out of bounds")}function ho(r){return!!r?.[Of]}var ft=class r{bufs;length;[Of]=!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(ho(n)){e+=n.byteLength;for(let o of n.bufs)this.bufs.push(o)}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(ho(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=Rf(this.bufs,t);return e.buf[e.index]}set(t,e){let n=Rf(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(ho(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:o}=this._subList(t,e);return ee(n,o)}subarray(t,e){let{bufs:n,length:o}=this._subList(t,e);return n.length===1?n[0]:ee(n,o)}sublist(t,e){let{bufs:n,length:o}=this._subList(t,e),s=new r;return s.length=o,s.bufs=n,s}_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=[],o=0;for(let s=0;s<this.bufs.length;s++){let i=this.bufs[s],a=o,c=a+i.byteLength;if(o=c,t>=c)continue;let f=t>=a&&t<c,u=e>a&&e<=c;if(f&&u){if(t===a&&e===c){n.push(i);break}let h=t-a;n.push(i.subarray(h,h+(e-t)));break}if(f){if(t===0){n.push(i);continue}n.push(i.subarray(t-a));continue}if(u){if(e===c){n.push(i);break}n.push(i.subarray(0,e-a));break}n.push(i)}return{bufs:n,length:e-t}}indexOf(t,e=0){if(!ho(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 o=n.byteLength;if(o===0)throw new TypeError("search must be at least 1 byte long");let s=256,i=new Int32Array(s);for(let h=0;h<s;h++)i[h]=-1;for(let h=0;h<o;h++)i[n[h]]=h;let a=i,c=this.byteLength-n.byteLength,f=n.byteLength-1,u;for(let h=e;h<=c;h+=u){u=0;for(let l=f;l>=0;l--){let p=this.get(h+l);if(n[l]!==p){u=Math.max(1,l-a[p]);break}}if(u===0)return h}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=vt(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 o=te(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt16(0,e,n),this.write(o,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 o=te(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt32(0,e,n),this.write(o,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 o=te(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigInt64(0,e,n),this.write(o,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=vt(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 o=te(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint16(0,e,n),this.write(o,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 o=te(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint32(0,e,n),this.write(o,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 o=te(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigUint64(0,e,n),this.write(o,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 o=te(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat32(0,e,n),this.write(o,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 o=te(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat64(0,e,n),this.write(o,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(!gt(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((o,s)=>o+s.byteLength,0)),n.length=e,n}};var Js={};rt(Js,{base10:()=>ip});var ip=Le({prefix:"9",name:"base10",alphabet:"0123456789"});var ti={};rt(ti,{base16:()=>ap,base16upper:()=>cp});var ap=ht({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4,caseInsensitive:!0}),cp=ht({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4,caseInsensitive:!0});var ei={};rt(ei,{base2:()=>fp});var fp=ht({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var ri={};rt(ri,{base256emoji:()=>pp});var Pf=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}"),up=Pf.reduce((r,t,e)=>(r[e]=t,r),[]),hp=Pf.reduce((r,t,e)=>{let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);return r[n]=e,r},[]);function lp(r){return r.reduce((t,e)=>(t+=up[e],t),"")}function dp(r){let t=[];for(let e of r){let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);let o=hp[n];if(o==null)throw new Error(`Non-base256emoji character: ${e}`);t.push(o)}return new Uint8Array(t)}var pp=xr({prefix:"\u{1F680}",name:"base256emoji",encode:lp,decode:dp});var oi={};rt(oi,{base64:()=>mp,base64pad:()=>yp,base64url:()=>ni,base64urlpad:()=>gp});var mp=ht({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),yp=ht({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),ni=ht({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),gp=ht({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var si={};rt(si,{base8:()=>bp});var bp=ht({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var ii={};rt(ii,{identity:()=>wp});var wp=xr({prefix:"\0",name:"identity",encode:r=>wf(Ft(r)),decode:r=>Ft(bf(r))});var ow=new TextEncoder,sw=new TextDecoder;var fi={};rt(fi,{sha256:()=>an,sha512:()=>Ap});var Sp=20;function ci({name:r,code:t,encode:e,minDigestLength:n,maxDigestLength:o}){return new ai(r,t,e,n,o)}var ai=class{name;code;encode;minDigestLength;maxDigestLength;constructor(t,e,n,o,s){this.name=t,this.code=e,this.encode=n,this.minDigestLength=o??Sp,this.maxDigestLength=s}digest(t,e){if(e?.truncate!=null){if(e.truncate<this.minDigestLength)throw new Error(`Invalid truncate option, must be greater than or equal to ${this.minDigestLength}`);if(this.maxDigestLength!=null&&e.truncate>this.maxDigestLength)throw new Error(`Invalid truncate option, must be less than or equal to ${this.maxDigestLength}`)}if(t instanceof Uint8Array){let n=this.encode(t);return n instanceof Uint8Array?Uf(n,this.code,e?.truncate):n.then(o=>Uf(o,this.code,e?.truncate))}else throw Error("Unknown type, must be binary type")}};function Uf(r,t,e){if(e!=null&&e!==r.byteLength){if(e>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,e)}return jt(t,r)}function Mf(r){return async t=>new Uint8Array(await crypto.subtle.digest(r,t))}var an=ci({name:"sha2-256",code:18,encode:Mf("SHA-256")}),Ap=ci({name:"sha2-512",code:19,encode:Mf("SHA-512")});var Ye={...ii,...ei,...si,...Js,...ti,...js,...Ws,...$s,...oi,...ri},gw={...fi,...Xs};function Kf(r,t,e,n){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:n}}}var kf=Kf("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),ui=Kf("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=vt(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);return t}),vp={utf8:kf,"utf-8":kf,hex:Ye.base16,latin1:ui,ascii:ui,binary:ui,...Ye},lo=vp;function nt(r,t="utf8"){let e=lo[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.decoder.decode(`${e.prefix}${r}`)}function Y(r,t="utf8"){let e=lo[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.encoder.encode(r).substring(1)}var Bp=parseInt("11111",2),hi=parseInt("10000000",2),Lp=parseInt("01111111",2),Ff={0:cn,1:cn,2:Ip,3:_p,4:Dp,5:Tp,6:Cp,16:cn,22:cn,48:cn};function me(r,t={offset:0}){let e=r[t.offset]&Bp;if(t.offset++,Ff[e]!=null)return Ff[e](r,t);throw new Error("No decoder for tag "+e)}function fn(r,t){let e=0;if((r[t.offset]&hi)===hi){let n=r[t.offset]&Lp,o="0x";t.offset++;for(let s=0;s<n;s++,t.offset++){if(t.offset>=r.byteLength)throw new Error("invalid DER element length");o+=r[t.offset].toString(16).padStart(2,"0")}e=parseInt(o,16)}else e=r[t.offset],t.offset++;if(!Number.isInteger(e)||e<0||e>r.byteLength-t.offset)throw new Error("invalid DER element length");return e}function cn(r,t){fn(r,t);let e=[];for(;!(t.offset>=r.byteLength);){let n=me(r,t);if(n===null)break;e.push(n)}return e}function Ip(r,t){let e=fn(r,t),n=t.offset,o=t.offset+e,s=[];for(let i=n;i<o;i++)i===n&&r[i]===0||s.push(r[i]);return t.offset+=e,Uint8Array.from(s)}function Cp(r,t){let e=fn(r,t),n=t.offset+e,o=r[t.offset];t.offset++;let s=0,i=0;o<40?(s=0,i=o):o<80?(s=1,i=o-40):(s=2,i=o-80);let a=`${s}.${i}`,c=[];for(;t.offset<n;){let f=r[t.offset];if(t.offset++,c.push(f&127),f<128){c.reverse();let u=0;for(let h=0;h<c.length;h++)u+=c[h]<<h*7;a+=`.${u}`,c=[]}}return a}function Tp(r,t){return t.offset++,null}function _p(r,t){let e=fn(r,t),n=r[t.offset];t.offset++;let o=r.subarray(t.offset,t.offset+e-1);if(t.offset+=e,n!==0)throw new Error("Unused bits in bit string is unimplemented");return o}function Dp(r,t){let e=fn(r,t),n=r.subarray(t.offset,t.offset+e);return t.offset+=e,n}function Rp(r){let t=r.toString(16);t.length%2===1&&(t="0"+t);let e=new ft;for(let n=0;n<t.length;n+=2)e.append(Uint8Array.from([parseInt(`${t[n]}${t[n+1]}`,16)]));return e}function li(r){if(r.byteLength<128)return Uint8Array.from([r.byteLength]);let t=Rp(r.byteLength);return new ft(Uint8Array.from([t.byteLength|hi]),t)}function Pt(r){let t=new ft,e=128;return(r.subarray()[0]&e)===e&&t.append(Uint8Array.from([0])),t.append(r),new ft(Uint8Array.from([2]),li(t),t)}function po(r){let t=Uint8Array.from([0]),e=new ft(t,r);return new ft(Uint8Array.from([3]),li(e),e)}function Ce(r,t=48){let e=new ft;for(let n of r)e.append(n);return new ft(Uint8Array.from([t]),li(e),e)}var Op=Uint8Array.from([6,8,42,134,72,206,61,3,1,7]),Pp=Uint8Array.from([6,5,43,129,4,0,34]),Up=Uint8Array.from([6,5,43,129,4,0,35]),Np={ext:!0,kty:"EC",crv:"P-256"},Mp={ext:!0,kty:"EC",crv:"P-384"},kp={ext:!0,kty:"EC",crv:"P-521"},di=32,pi=48,mi=66;function yi(r){let t=me(r);return Hf(t)}function Hf(r){let t=r[1][1][0],e=1,n,o;if(t.byteLength===di*2+1)return n=Y(t.subarray(e,e+di),"base64url"),o=Y(t.subarray(e+di),"base64url"),new vr({...Np,key_ops:["verify"],x:n,y:o});if(t.byteLength===pi*2+1)return n=Y(t.subarray(e,e+pi),"base64url"),o=Y(t.subarray(e+pi),"base64url"),new vr({...Mp,key_ops:["verify"],x:n,y:o});if(t.byteLength===mi*2+1)return n=Y(t.subarray(e,e+mi),"base64url"),o=Y(t.subarray(e+mi),"base64url"),new vr({...kp,key_ops:["verify"],x:n,y:o});throw new tt(`coordinates were wrong length, got ${t.byteLength}, expected 65, 97 or 133`)}function zf(r){return Ce([Pt(Uint8Array.from([1])),Ce([Kp(r.crv)],160),Ce([po(new ft(Uint8Array.from([4]),nt(r.x??"","base64url"),nt(r.y??"","base64url")))],161)]).subarray()}function Kp(r){if(r==="P-256")return Op;if(r==="P-384")return Pp;if(r==="P-521")return Up;throw new tt(`Invalid curve ${r}`)}var vr=class{type="ECDSA";jwk;_raw;constructor(t){this.jwk=t}get raw(){return this._raw==null&&(this._raw=zf(this.jwk)),this._raw}toMultihash(){return Wt.digest(Te(this))}toCID(){return yt.createV1(114,this.toMultihash())}toString(){return lt.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:gt(this.raw,t.raw)}async verify(t,e,n){return Df(this.jwk,e,t,n)}};var mo=BigInt(4294967295),Vf=BigInt(32);function Fp(r,t=!1){return t?{h:Number(r&mo),l:Number(r>>Vf&mo)}:{h:Number(r>>Vf&mo)|0,l:Number(r&mo)|0}}function qf(r,t=!1){let e=r.length,n=new Uint32Array(e),o=new Uint32Array(e);for(let s=0;s<e;s++){let{h:i,l:a}=Fp(r[s],t);[n[s],o[s]]=[i,a]}return[n,o]}var Hp=r=>r/2**32|0,zp=r=>r>>>0;function $f(r,t,e,n){let o=Hp(e),s=zp(e);r.setUint32(t,n?s:o,n),r.setUint32(t+4,n?o:s,n)}var gi=(r,t,e)=>r>>>e,bi=(r,t,e)=>r<<32-e|t>>>e,Ze=(r,t,e)=>r>>>e|t<<32-e,Xe=(r,t,e)=>r<<32-e|t>>>e,un=(r,t,e)=>r<<64-e|t>>>e-32,hn=(r,t,e)=>r>>>e-32|t<<64-e;function re(r,t,e,n){let o=(t>>>0)+(n>>>0);return{h:r+e+(o/2**32|0)|0,l:o|0}}var jf=(r,t,e)=>(r>>>0)+(t>>>0)+(e>>>0),Wf=(r,t,e,n)=>t+e+n+(r/2**32|0)|0,Gf=(r,t,e,n)=>(r>>>0)+(t>>>0)+(e>>>0)+(n>>>0),Yf=(r,t,e,n,o)=>t+e+n+o+(r/2**32|0)|0,Zf=(r,t,e,n,o)=>(r>>>0)+(t>>>0)+(e>>>0)+(n>>>0)+(o>>>0),Xf=(r,t,e,n,o,s)=>t+e+n+o+s+(r/2**32|0)|0;function yo(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in r&&r.BYTES_PER_ELEMENT===1}var wi=r=>r?`"${r}" `:"";function Gt(r,t=""){if(typeof r!="number")throw new TypeError(wi(t)+"expected number, got "+typeof r);if(!Number.isSafeInteger(r)||r<0)throw new RangeError(wi(t)+"expected integer >= 0, got "+r);return r}function Rt(r,t,e=""){if(yo(r)&&(t===void 0||r.length===t))return r;t!==void 0&&Gt(t,"length");let n=yo(r),o=t!==void 0?` of length ${t}`:"",s=n?`length=${r.length}`:`type=${typeof r}`,i=wi(e)+"expected Uint8Array"+o+", got "+s;throw n?new RangeError(i):new TypeError(i)}function Qe(r){if(typeof r!="function"||typeof r.create!="function")throw new TypeError("expected hash wrapped by utils.createHasher");if(Gt(r.outputLen),Gt(r.blockLen),r.outputLen<1||r.blockLen<1)throw new Error("hash blockLen / outputLen must be >= 1")}var Qf=(r,t)=>{if(r===null||typeof r!="object"||Array.isArray(r))throw new TypeError((t==="object"?"":`"${t}" `)+"expected object, got type="+typeof r)};function Br(r,t=!0){if(r.destroyed)throw new Error("hash was destroyed");if(t&&r.finished)throw new Error("digest() was already called")}function go(r,t){Rt(r,void 0,"output");let e=t.outputLen;if(!(r.length>=e))throw new RangeError('"output" expected length >= '+e)}function Ht(...r){for(let t=0;t<r.length;t++)r[t].fill(0)}function bo(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}function Yt(r,t){return r<<32-t|r>>>t}var tu=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",qp=Array.from({length:256},(r,t)=>t.toString(16).padStart(2,"0"));function wo(r){if(Rt(r),tu)return r.toHex();let t="";for(let e=0;e<r.length;e++)t+=qp[r[e]];return t}function Jf(r){return r>=48&&r<=57?r-48:r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:void 0}function xo(r){if(typeof r!="string")throw new TypeError("hex string expected, got "+typeof r);if(tu)try{return Uint8Array.fromHex(r)}catch(o){throw o instanceof SyntaxError?new RangeError(o.message):o}let t=r.length,e=t/2;if(t%2)throw new RangeError("hex string expected, got unpadded hex of length "+t);let n=new Uint8Array(e);for(let o=0,s=0;o<e;o++,s+=2){let i=Jf(r.charCodeAt(s)),a=Jf(r.charCodeAt(s+1));if(i===void 0||a===void 0){let c=r[s]+r[s+1];throw new RangeError('hex string expected, got non-hex character "'+c+'" at index '+s)}n[o]=i*16+a}return n}function xi(...r){let t=0;for(let n=0;n<r.length;n++){let o=r[n];Rt(o),t+=o.length}let e=new Uint8Array(t);for(let n=0,o=0;n<r.length;n++){let s=r[n];e.set(s,o),o+=s.length}return e}function $p(r,t,e="opts"){return Qf(r,"defaults"),t!==void 0&&Qf(t,e),Object.assign(r,t)}function Ei(r,t={}){if(typeof r!="function")throw new TypeError('"hashCons" expected function, got type='+typeof r);t=$p({},t,"info");let e=(o,s)=>r(s).update(o).digest(),n=r(void 0);return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.canXOF=n.canXOF,e.create=o=>r(o),Object.assign(e,t),Object.freeze(e)}function eu(r=32){Gt(r,"bytesLength");let t=typeof globalThis=="object"?globalThis.crypto:null;if(typeof t?.getRandomValues!="function")throw new Error("crypto.getRandomValues must be defined");if(r>65536)throw new RangeError(`"bytesLength" expected <= 65536, got ${r}`);return t.getRandomValues(new Uint8Array(r))}var Si=r=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,r])});function ru(r,t,e){return r&t^~r&e}function nu(r,t,e){return r&t^r&e^t&e}var ln=class{blockLen;outputLen;canXOF=!1;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(t,e,n,o){this.blockLen=t,this.outputLen=e,this.padOffset=n,this.isLE=o,this.buffer=new Uint8Array(t),this.view=bo(this.buffer)}update(t){Br(this),Rt(t);let{view:e,buffer:n,blockLen:o}=this,s=t.length,i=!1;for(let a=0;a<s;){let c=Math.min(o-this.pos,s-a);if(c===o){let f=bo(t);for(;o<=s-a;a+=o)this.process(f,a);i=!0;continue}n.set(a===0&&c===s?t:t.subarray(a,a+c),this.pos),this.pos+=c,a+=c,this.pos===o&&(this.process(e,0),this.pos=0,i=!0)}return this.length+=t.length,i&&this.roundClean(),this}digestInto(t){Br(this),go(t,this),this.finished=!0;let{buffer:e,view:n,blockLen:o,isLE:s}=this,{pos:i}=this;e[i++]=128,e.fill(0,i),this.padOffset>o-i&&(this.process(n,0),e.fill(0)),$f(n,o-8,this.length*8,s),this.process(n,0),this.roundClean();let a=t===e?n:bo(t),c=this.outputLen,f=c/4,u=this.get();if(c%4||f>u.length)throw new Error("invalid outputLen");for(let h=0;h<f;h++)a.setUint32(4*h,u[h],s)}digest(){let{buffer:t,outputLen:e}=this;this.digestInto(t);let n=t.slice(0,e);return this.destroy(),n}_cloneIntoMeta(t){let{buffer:e,length:n,finished:o,destroyed:s,pos:i}=this;return t.destroyed=s,t.finished=o,t.length=n,t.pos=i,i&&t.buffer.set(e),t}clone(){return this._cloneInto()}},ou=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var su=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var jp=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),_e=new Uint32Array(64),Ai=class extends ln{A=0;B=0;C=0;D=0;E=0;F=0;G=0;H=0;constructor(t,e){super(64,t,8,!1),this.A=e[0]|0,this.B=e[1]|0,this.C=e[2]|0,this.D=e[3]|0,this.E=e[4]|0,this.F=e[5]|0,this.G=e[6]|0,this.H=e[7]|0}get(){let{A:t,B:e,C:n,D:o,E:s,F:i,G:a,H:c}=this;return[t,e,n,o,s,i,a,c]}set(t,e,n,o,s,i,a,c){this.A=t|0,this.B=e|0,this.C=n|0,this.D=o|0,this.E=s|0,this.F=i|0,this.G=a|0,this.H=c|0}_cloneInto(t){return(t||=new this.constructor).set(...this.get()),this._cloneIntoMeta(t)}process(t,e){for(let h=0;h<16;h++,e+=4)_e[h]=t.getUint32(e,!1);for(let h=16;h<64;h++){let l=_e[h-15],p=_e[h-2],m=Yt(l,7)^Yt(l,18)^l>>>3,b=Yt(p,17)^Yt(p,19)^p>>>10;_e[h]=b+_e[h-7]+m+_e[h-16]|0}let{A:n,B:o,C:s,D:i,E:a,F:c,G:f,H:u}=this;for(let h=0;h<64;h++){let l=Yt(a,6)^Yt(a,11)^Yt(a,25),p=u+l+ru(a,c,f)+jp[h]+_e[h]|0,b=(Yt(n,2)^Yt(n,13)^Yt(n,22))+nu(n,o,s)|0;u=f,f=c,c=a,a=i+p|0,i=s,s=o,o=n,n=p+b|0}n=n+this.A|0,o=o+this.B|0,s=s+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,f=f+this.G|0,u=u+this.H|0,this.set(n,o,s,i,a,c,f,u)}roundClean(){Ht(_e)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),Ht(this.buffer)}},vi=class extends Ai{constructor(){super(32,ou)}};var iu=qf(["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))),Wp=iu[0],Gp=iu[1],De=new Uint32Array(80),Re=new Uint32Array(80),Bi=class extends ln{Ah=0;Al=0;Bh=0;Bl=0;Ch=0;Cl=0;Dh=0;Dl=0;Eh=0;El=0;Fh=0;Fl=0;Gh=0;Gl=0;Hh=0;Hl=0;constructor(t,e){super(128,t,16,!1),this.Ah=e[0]|0,this.Al=e[1]|0,this.Bh=e[2]|0,this.Bl=e[3]|0,this.Ch=e[4]|0,this.Cl=e[5]|0,this.Dh=e[6]|0,this.Dl=e[7]|0,this.Eh=e[8]|0,this.El=e[9]|0,this.Fh=e[10]|0,this.Fl=e[11]|0,this.Gh=e[12]|0,this.Gl=e[13]|0,this.Hh=e[14]|0,this.Hl=e[15]|0}get(){let{Ah:t,Al:e,Bh:n,Bl:o,Ch:s,Cl:i,Dh:a,Dl:c,Eh:f,El:u,Fh:h,Fl:l,Gh:p,Gl:m,Hh:b,Hl:g}=this;return[t,e,n,o,s,i,a,c,f,u,h,l,p,m,b,g]}set(t,e,n,o,s,i,a,c,f,u,h,l,p,m,b,g){this.Ah=t|0,this.Al=e|0,this.Bh=n|0,this.Bl=o|0,this.Ch=s|0,this.Cl=i|0,this.Dh=a|0,this.Dl=c|0,this.Eh=f|0,this.El=u|0,this.Fh=h|0,this.Fl=l|0,this.Gh=p|0,this.Gl=m|0,this.Hh=b|0,this.Hl=g|0}_cloneInto(t){return(t||=new this.constructor).set(...this.get()),this._cloneIntoMeta(t)}process(t,e){for(let x=0;x<16;x++,e+=4)De[x]=t.getUint32(e),Re[x]=t.getUint32(e+=4);for(let x=16;x<80;x++){let I=De[x-15]|0,_=Re[x-15]|0,N=Ze(I,_,1)^Ze(I,_,8)^gi(I,_,7),M=Xe(I,_,1)^Xe(I,_,8)^bi(I,_,7),P=De[x-2]|0,R=Re[x-2]|0,U=Ze(P,R,19)^un(P,R,61)^gi(P,R,6),k=Xe(P,R,19)^hn(P,R,61)^bi(P,R,6),D=Gf(M,k,Re[x-7],Re[x-16]),H=Yf(D,N,U,De[x-7],De[x-16]);De[x]=H|0,Re[x]=D|0}let{Ah:n,Al:o,Bh:s,Bl:i,Ch:a,Cl:c,Dh:f,Dl:u,Eh:h,El:l,Fh:p,Fl:m,Gh:b,Gl:g,Hh:w,Hl:S}=this;for(let x=0;x<80;x++){let I=Ze(h,l,14)^Ze(h,l,18)^un(h,l,41),_=Xe(h,l,14)^Xe(h,l,18)^hn(h,l,41),N=h&p^~h&b,M=l&m^~l&g,P=Zf(S,_,M,Gp[x],Re[x]),R=Xf(P,w,I,N,Wp[x],De[x]),U=P|0,k=Ze(n,o,28)^un(n,o,34)^un(n,o,39),D=Xe(n,o,28)^hn(n,o,34)^hn(n,o,39),H=n&s^n&a^s&a,T=o&i^o&c^i&c;w=b|0,S=g|0,b=p|0,g=m|0,p=h|0,m=l|0,{h,l}=re(f|0,u|0,R|0,U|0),f=a|0,u=c|0,a=s|0,c=i|0,s=n|0,i=o|0;let C=jf(U,D,T);n=Wf(C,R,k,H),o=C|0}({h:n,l:o}=re(this.Ah|0,this.Al|0,n|0,o|0)),{h:s,l:i}=re(this.Bh|0,this.Bl|0,s|0,i|0),{h:a,l:c}=re(this.Ch|0,this.Cl|0,a|0,c|0),{h:f,l:u}=re(this.Dh|0,this.Dl|0,f|0,u|0),{h,l}=re(this.Eh|0,this.El|0,h|0,l|0),{h:p,l:m}=re(this.Fh|0,this.Fl|0,p|0,m|0),{h:b,l:g}=re(this.Gh|0,this.Gl|0,b|0,g|0),{h:w,l:S}=re(this.Hh|0,this.Hl|0,w|0,S|0),this.set(n,o,s,i,a,c,f,u,h,l,p,m,b,g,w,S)}roundClean(){Ht(De,Re)}destroy(){this.destroyed=!0,Ht(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Li=class extends Bi{constructor(){super(64,su)}};var ne=Ei(()=>new vi,Si(1));var Ii=Ei(()=>new Li,Si(3));function So(r,t,e=()=>{}){if(!Array.isArray(r))throw new TypeError(`"${t}" expected array, got type=${typeof r}`);for(let n=0;n<r.length;n++)e(r[n],`${t}[${n}]`);return r}var j=(r,t,e)=>Rt(r,t,e),Ci=Gt;function cu(r,t=""){if(typeof r!="string"){let e=t&&`"${t}" `;throw new TypeError(e+"expected string, got type="+typeof r)}return r}function Oe(r,t="object"){if(r===null||typeof r!="object"||Array.isArray(r))throw new TypeError(t==="object"?"expected valid options object":`"${t}" expected object, got type=${typeof r}`);return r}function Je(r,t){if(typeof r!="function")throw new TypeError(`"${t}" is invalid: expected function, got ${typeof r}`);return r}var dn=wo,zt=(...r)=>xi(...r),Lr=r=>xo(r),Ue=yo,ye=r=>eu(r),Eo=BigInt(0),au=BigInt(1),Yp=r=>r?`"${r}" `:"";function Ut(r,t=""){if(typeof r!="boolean")throw new TypeError(Yp(t)+"expected boolean, got type="+typeof r);return r}function Ao(r){if(typeof r=="bigint"){if(!Pe(r))throw new RangeError("positive bigint expected, got "+r)}else Ci(r);return r}function Ne(r,t=""){if(typeof r!="number"){let e=t&&`"${t}" `;throw new TypeError(e+"expected number, got type="+typeof r)}if(!Number.isSafeInteger(r)){let e=t&&`"${t}" `;throw new RangeError(e+"expected safe integer, got "+r)}}function pn(r){let t=Ao(r).toString(16);return t.length&1?"0"+t:t}function fu(r){if(typeof r!="string")throw new TypeError("hex string expected, got "+typeof r);return r===""?Eo:BigInt("0x"+r)}function oe(r){return fu(wo(r))}function se(r){return fu(wo(tr(Rt(r)).reverse()))}function vo(r,t){if(Gt(t),t===0)throw new Error("zero output length is invalid");r=Ao(r);let e=t*2,n=r.toString(16);if(n.length>e)throw new RangeError("number is too large");return xo(n.padStart(e,"0"))}function mn(r,t){return vo(r,t).reverse()}function tr(r){return Uint8Array.from(j(r))}function Pe(r){return typeof r=="bigint"&&Eo<=r}function Ti(r,t,e){return Pe(r)&&Pe(t)&&Pe(e)&&t<=r&&r<e}function ie(r,t,e,n){if(!Ti(t,e,n))throw new RangeError("expected valid "+r+": "+e+" <= n < "+n+", got "+t)}function Ir(r){if(r<Eo)throw new Error("expected non-negative bigint, got "+r);return r===Eo?0:r.toString(2).length}var yn=r=>(Ne(r,"n"),(au<<BigInt(r))-au);function uu(r,t,e){if(Gt(r,"hashLen"),Gt(t,"qByteLen"),typeof e!="function")throw new TypeError("hmacFn must be a function");let n=g=>new Uint8Array(g),o=Uint8Array.of(),s=Uint8Array.of(0),i=Uint8Array.of(1),a=1e3,c=n(r),f=n(r),u=0,h=()=>{c.fill(1),f.fill(0),u=0},l=(...g)=>e(f,zt(c,...g)),p=(g=o)=>{f=l(s,g),c=l(),g.length!==0&&(f=l(i,g),c=l())},m=()=>{if(u++>=a)throw new Error("drbg: tried max amount of iterations");let g=0,w=[];for(;g<t;){c=l();let S=c.slice();w.push(S),g+=c.length}return zt(...w)};return(g,w)=>{h(),p(g);let S;for(;(S=w(m()))===void 0;)p();return h(),S}}function Bt(r,t={},e={},n="object"){Oe(r,n),Oe(t,"fields"),Oe(e,"optFields");function o(i,a,c){let f=n==="object"?`param "${String(i)}"`:`"${n}.${String(i)}"`,u=r[i];if(!Object.hasOwn(r,i)&&(c?u!==void 0:a!=="function"))throw new TypeError(`${f} is invalid: expected own property`);if(c&&u===void 0)return;let h=typeof u;if(h!==a||u===null)throw new TypeError(`${f} is invalid: expected ${a}, got ${h}`)}let s=(i,a)=>Object.entries(i).forEach(([c,f])=>o(c,f,a));s(t,!1),s(e,!0)}var bt=BigInt(0),X=BigInt(1),Me=BigInt(2),du=BigInt(3),_i=BigInt(4),pu=BigInt(5),Zp=BigInt(7),mu=BigInt(8),Xp=BigInt(9),Qp=BigInt(15),yu=BigInt(16),Jp=BigInt("0x10000000000000000");function J(r,t){if(t<=bt)throw new Error("mod: expected positive modulus, got "+t);let e=r%t;return e>=bt?e:t+e}function gu(r,t,e){if(e<=X)throw new Error("pow: expected modulus > 1, got "+e);if(typeof t!="bigint")throw new TypeError("invalid exponent: expected bigint, got "+typeof t);if(t<bt)throw new Error("invalid exponent, negatives unsupported");if(t===bt)return X;if(t===X)return r;let n=r%e;if(n<bt&&(n+=e),t<Jp){let a=X;for(;t>bt;)t&X&&(a=a*n%e),n=n*n%e,t>>=X;return a}let o=[];for(;t>bt;)o.push(Number(t&Qp)),t>>=_i;let s=new Array(16);s[0]=X,s[1]=n;for(let a=2;a<16;a++)s[a]=s[a-1]*n%e;let i=s[o[o.length-1]];for(let a=o.length-2;a>=0;a--){i=i*i%e,i=i*i%e,i=i*i%e,i=i*i%e;let c=o[a];c!==0&&(i=i*s[c]%e)}return i}function it(r,t,e){if(e<=X)throw new Error("pow2: expected modulus > 1, got "+e);if(t<bt)throw new Error("pow2: expected non-negative exponent, got "+t);let n=r;for(;t-- >bt;)n*=n,n%=e;return n}function hu(r,t){if(r===bt)throw new Error("invert: expected non-zero number");if(t<=X)throw new Error("invert: expected modulus > 1, got "+t);let e=J(r,t),n=t,o=bt,s=X;for(;e!==bt;){let a=n/e,c=n-e*a,f=o-s*a;n=e,e=c,o=s,s=f}if(n!==X)throw new Error("invert: does not exist");return J(o,t)}function bu(r,t){if(t<=X)throw new Error("invertCt: expected prime modulus > 1, got "+t);let e=J(r,t);if(e===bt)throw new Error("invertCt: expected non-zero number");let n=gu(e,t-Me,t);if(J(e*n,t)!==X)throw new Error("invertCt: does not exist");return n}function Di(r,t,e){let n=r;if(!n.eql(n.sqr(t),e))throw new Error("Cannot find square root")}function Ri(r,t){if((r&X)===bt)throw new Error(t+": expected odd modulus, got "+r)}function wu(r,t){let e=r,n=(e.ORDER+X)/_i,o=e.pow(t,n);return Di(e,o,t),o}function tm(r,t){let e=r,n=(e.ORDER-pu)/mu,o=e.mul(t,Me),s=e.pow(o,n),i=e.mul(t,s),a=e.mul(e.mul(i,Me),s),c=e.mul(i,e.sub(a,e.ONE));return Di(e,c,t),c}function em(r){let t=Tr(r),e=xu(r),n=e(t,t.neg(t.ONE)),o=e(t,n),s=e(t,t.neg(n)),i=(r+Zp)/yu;return((a,c)=>{let f=a,u=f.pow(c,i),h=f.mul(u,n),l=f.mul(u,o),p=f.mul(u,s),m=f.eql(f.sqr(h),c),b=f.eql(f.sqr(l),c);u=f.cmov(u,h,m),h=f.cmov(p,l,b);let g=f.eql(f.sqr(h),c),w=f.cmov(u,h,g);return Di(f,w,c),w})}function xu(r){if(r<du)throw new Error("sqrt is not defined for small field");Ri(r,"tonelliShanks");let t=r-X,e=0;for(;t%Me===bt;)t/=Me,e++;let n=Me,o=Tr(r);for(;gn(o,n)===1;)if(n++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(e===1)return wu;let s=o.pow(n,t),i=(t+X)/Me;return function(c,f){let u=c;if(u.is0(f))return f;if(gn(u,f)!==1)throw new Error("Cannot find square root");let h=e,l=u.mul(u.ONE,s),p=u.pow(f,t),m=u.pow(f,i);for(;!u.eql(p,u.ONE);){if(u.is0(p))throw new Error("Cannot find square root: probably non-prime P");let b=1,g=u.sqr(p);for(;!u.eql(g,u.ONE);)if(b++,g=u.sqr(g),b===h)throw new Error("Cannot find square root");let w=X<<BigInt(h-b-1),S=u.pow(l,w);h=b,l=u.sqr(S),p=u.mul(p,l),m=u.mul(m,S)}return m}}function rm(r){return Ri(r,"Fp.sqrt"),r%_i===du?wu:r%mu===pu?tm:r%yu===Xp?em(r):xu(r)}var Eu=(r,t)=>(J(r,t)&X)===X,nm=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Cr(r){if(Oe(r,"field"),typeof r.ORDER!="bigint")throw new TypeError('param "ORDER" is invalid: expected bigint, got '+typeof r.ORDER);Ne(r.BYTES,"BYTES"),Ne(r.BITS,"BITS");for(let t of nm)Je(r[t],"field."+t);if(r.BYTES<1||r.BITS<1)throw new Error("invalid field: expected BYTES/BITS > 0");if(r.ORDER<=X)throw new Error("invalid field: expected ORDER > 1, got "+r.ORDER);return r}function Lo(r,t,e=!1){Cr(r),So(t,"nums"),Ut(e,"passZero");let n=r,o=new Array(t.length).fill(e?n.ZERO:void 0),s=t.reduce((a,c,f)=>n.is0(c)?a:(o[f]=a,n.mul(a,c)),n.ONE),i=n.inv(s);return t.reduceRight((a,c,f)=>n.is0(c)?a:(o[f]=n.mul(a,o[f]),n.mul(a,c)),i),o}function gn(r,t){Cr(r);let e=r;Ri(e.ORDER,"FpLegendre");let n=(e.ORDER-X)/Me,o=e.pow(t,n),s=e.eql(o,e.ONE),i=e.eql(o,e.ZERO),a=e.eql(o,e.neg(e.ONE));if(!s&&!i&&!a)throw new Error("invalid Legendre symbol result");return s?1:i?0:-1}function om(r,t){if(t!==void 0&&Ci(t),r<=bt)throw new Error("invalid n length: expected positive n, got "+r);if(t!==void 0&&t<1)throw new Error("invalid n length: expected positive bit length, got "+t);let e=Ir(r);if(t!==void 0&&t<e)throw new Error(`invalid n length: expected nBitLength (${t}) >= bitLen(n) (${e})`);let n=t!==void 0?t:e,o=Math.ceil(n/8);return{nBitLength:n,nByteLength:o}}var lu=new WeakMap,Bo=class{ORDER;BITS;BYTES;isLE;ZERO=bt;ONE=X;_lengths;_mod;constructor(t,e={}){if(t<=X)throw new Error("invalid field: expected ORDER > 1, got "+t);let n;this.isLE=!1,e!=null&&typeof e=="object"&&(typeof e.BITS=="number"&&(n=e.BITS),typeof e.sqrt=="function"&&Object.defineProperty(this,"sqrt",{value:e.sqrt,enumerable:!0}),typeof e.isLE=="boolean"&&(this.isLE=e.isLE),e.allowedLengths&&(this._lengths=Object.freeze(e.allowedLengths.slice())),typeof e.modFromBytes=="boolean"&&(this._mod=e.modFromBytes));let{nBitLength:o,nByteLength:s}=om(t,n);if(s>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");this.ORDER=t,this.BITS=o,this.BYTES=s,Object.freeze(this)}create(t){return J(t,this.ORDER)}isValid(t){if(typeof t!="bigint")throw new TypeError("invalid field element: expected bigint, got "+typeof t);return bt<=t&&t<this.ORDER}is0(t){return t===bt}isValidNot0(t){return!this.is0(t)&&this.isValid(t)}isOdd(t){return(t&X)===X}neg(t){return J(-t,this.ORDER)}eql(t,e){return t===e}sqr(t){return J(t*t,this.ORDER)}add(t,e){return J(t+e,this.ORDER)}sub(t,e){return J(t-e,this.ORDER)}mul(t,e){return J(t*e,this.ORDER)}pow(t,e){return gu(t,e,this.ORDER)}div(t,e){return J(t*hu(e,this.ORDER),this.ORDER)}sqrN(t){return t*t}addN(t,e){return t+e}subN(t,e){return t-e}mulN(t,e){return t*e}inv(t){return hu(t,this.ORDER)}sqrt(t){let e=lu.get(this);return e||lu.set(this,e=rm(this.ORDER)),e(this,t)}toBytes(t){return this.isLE?mn(t,this.BYTES):vo(t,this.BYTES)}fromBytes(t,e=!1){j(t);let{_lengths:n,BYTES:o,isLE:s,ORDER:i,_mod:a}=this;if(n){if(t.length<1||!n.includes(t.length)||t.length>o)throw new Error("Field.fromBytes: expected "+n+" bytes, got "+t.length);let f=new Uint8Array(o);f.set(t,s?0:f.length-t.length),t=f}if(t.length!==o)throw new Error("Field.fromBytes: expected "+o+" bytes, got "+t.length);let c=s?se(t):oe(t);if(a&&(c=J(c,i)),!e&&!this.isValid(c))throw new Error("invalid field element: outside of range 0..ORDER");return c}invertBatch(t){return Lo(this,t,!0)}cmov(t,e,n){return Ut(n,"condition"),n?e:t}};function Tr(r,t={}){return Object.freeze(Bo.prototype),new Bo(r,t)}function Su(r){if(typeof r!="bigint")throw new Error("field order must be bigint");if(r<=X)throw new Error("field order must be greater than 1");let t=Ir(r-X);return Math.ceil(t/8)}function Io(r){let t=Su(r);return t+Math.ceil(t/2)}function Co(r,t,e=!1){j(r);let n=r.length,o=Su(t),s=Math.max(Io(t),16);if(n<s||n>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+n);let i=e?se(r):oe(r),a=J(i,t-X)+X;return e?mn(a,o):vo(a,o)}var Ui=BigInt(0),bn=BigInt(1),sm=BigInt(4),Oi=16,Au=128,im=5,vu=2**31;function ke(r){let t=r;if(typeof t!="function")throw new TypeError('"Point" expected constructor, got type='+typeof r);Je(t.fromAffine,"Point.fromAffine"),Je(t.fromBytes,"Point.fromBytes"),Je(t.fromHex,"Point.fromHex"),Oe(t.BASE,"Point.BASE"),Oe(t.ZERO,"Point.ZERO"),Cr(t.Fp),Cr(t.Fn)}function To(r,t){ke(r),Lu(t,r);let e=Lo(r.Fp,t.map(n=>n.Z));return t.map((n,o)=>r.fromAffine(n.toAffine(e[o])))}function am(r,t,e=1){if(!Number.isSafeInteger(r)||r<e||r>t)throw new Error("invalid window size, expected ["+e+".."+t+"], got W="+r)}function cm(r,t){let e=r*(4*t+128);if(e>vu)throw new Error("invalid window size: table would need ~"+Math.ceil(e/2**20)+" MiB, max "+vu/2**20+" MiB")}function Ni(r,t){if(r!==void 0){Je(r,"randomBytes");try{let e=r(t);if(!Ue(e)||e.length!==t)return}catch{return}return r}}function Lu(r,t){So(r,"points"),r.forEach((e,n)=>{if(!(e instanceof t))throw new Error("invalid point at index "+n)})}function fm(r,t,e){if(!Array.isArray(r))throw new Error("array of scalars expected");r.forEach((n,o)=>{if(!(e===void 0?t.isValid(n):Pe(n)&&n<e))throw new Error("invalid scalar at index "+o)})}var Iu=new WeakMap;function Pi(r){return Iu.get(r)||1}function um(r,t){let e=r.double(),n=[r];for(let o=1;o<t;o++)n.push(n[o-1].add(e));return n}function hm(r,t){let e=2**t,n=e/2,o=BigInt(e-1),s=[];for(;r>Ui;){let i=0;r&bn&&(i=Number(r&o),i>=n&&(i-=e),r-=BigInt(i)),s.push(i),r>>=bn}return s}function lm(r,t,e){let n=2**t,o=n/2,s=BigInt(n-1),i=BigInt(t),a=[];for(let c=0;c<e;c++){let f=Number(r&s);r>>=i,f>o&&(f-=n,r+=bn),a.push(f)}if(r!==Ui)throw new Error("invalid wnaf");return a}function dm(r,t,e){let n=0;for(let s of e)n=Math.max(n,s.length);let o=r;for(let s=n-1;s>=0;s--){s!==n-1&&(o=o.double());for(let i=0;i<e.length;i++){let a=e[i][s];if(a){let c=t[i][Math.abs(a)-1>>1];o=o.add(a<0?c.negate():c)}}}return o}var _r=class{Point;BASE;ZERO;randomBytes;wnafPrecomputes=new WeakMap;baseCanBeBlinded;bits;constructor(t,e){ke(t),this.randomBytes=Ni(e,Oi),this.Point=t,this.BASE=t.BASE,this.ZERO=t.ZERO,this.bits=t.Fn.BITS}buildWnafTable(t,e,n){let o=Math.ceil(n/e)+1,s=2**(e-1),i=[],a=t;for(let c=0;c<o;c++){let f=a;for(let u=0;u<s;u++)i.push(f),f=f.add(a);a=i[i.length-1].double()}return{W:e,bits:n,windows:o,comp:i}}wnafCachedCT(t,e){let{W:n,windows:o,comp:s}=t,i=2**(n-1),a=lm(e,n,o),c=this.ZERO,f=this.BASE;for(let u=0;u<o;u++){let h=a[u],l=u*i,p=Math.abs(h)-1,m=s[l];for(let g=1;g<i;g++)m=g===p?s[l+g]:m;let b=m.negate();h===0?f=f.add(s[l]):c=c.add(h<0?b:m)}return{p:c,f}}getWnafPrecomputes(t,e,n,o){let s=this.wnafPrecomputes.get(e),i=s?.find(a=>a.W===t&&a.bits===n);return i||(i=this.buildWnafTable(e,t,n),typeof o=="function"&&(i={...i,comp:o(i.comp)}),s||(s=[],this.wnafPrecomputes.set(e,s)),s.push(i)),i}assertPoint(t){if(!(t instanceof this.Point))throw new TypeError('"point" expected Point instance, got type='+typeof t)}validateMulInput(t,e){if(this.assertPoint(t),!Ti(e,bn,this.Point.Fn.ORDER))throw new Error("invalid scalar")}runCT(t,e,n,o){let s=Pi(t);return s===1?this.fixedWindowCT(t,e,n):this.wnafCachedCT(this.getWnafPrecomputes(s,t,n,o),e)}mulCT(t,e,n){return this.validateMulInput(t,e),this.runCT(t,e,this.bits,n)}mulCTBlinded(t,e,n){if(this.validateMulInput(t,e),this.randomBytes===void 0)throw new Error("randomBytes is required for scalar blinding");let o=this.Point.Fn.BITS+Au,s=this.randomBytes(Oi);if(!Ue(s)||s.length!==Oi)throw new Error("randomBytes returned invalid byte array");s[0]=s[0]&63|128;let i=e+oe(s)*this.Point.Fn.ORDER;return this.runCT(t,i,o,n)}fixedWindowCT(t,e,n){let o=im,s=1<<o,i=yn(o),a=new Array(s);a[0]=this.ZERO;for(let u=1;u<s;u++)a[u]=a[u-1].add(t);let c=Math.ceil(n/o),f=this.ZERO;for(let u=c-1;u>=0;u--){if(u!==c-1)for(let p=0;p<o;p++)f=f.double();let h=Number(e>>BigInt(u*o)&i),l=a[0];for(let p=1;p<s;p++)l=p===h?a[p]:l;f=f.add(l)}return{p:f,f}}shouldBlind(t,e){return this.randomBytes===void 0?!1:e===bn?!0:t!==this.BASE?!1:(this.baseCanBeBlinded===void 0&&(this.baseCanBeBlinded=this.mulUnsafe(this.BASE,this.Point.Fn.ORDER).is0()),this.baseCanBeBlinded)}mulSecret(t,e,n,o){return this.shouldBlind(t,n)?this.mulCTBlinded(t,e,o):this.mulCT(t,e,o)}mulUnsafe(t,e,n){if(this.assertPoint(t),!Pe(e))throw new Error("invalid scalar");let o=Pi(t);if(o===1||e>=this.Point.Fn.ORDER)return _o(this.Point,[t],[e],!0);let s=this.getWnafPrecomputes(o,t,this.bits,n);return this.wnafCachedCT(s,e).p}setWindowSize(t,e){this.assertPoint(t),am(e,this.bits);let n=Math.ceil((this.bits+Au)/e)+1;cm(n*2**(e-1),this.Point.Fp.BYTES),Iu.set(t,e),this.wnafPrecomputes.delete(t)}hasWindowSize(t){return Pi(t)!==1}};function _o(r,t,e,n=!1){if(ke(r),Lu(t,r),Ut(n,"allowOversized"),fm(e,r.Fn,n?r.Fn.ORDER**sm:void 0),t.length!==e.length)throw new Error("arrays of points and scalars must have equal length");let o=t.map(i=>um(i,4)),s=e.map(i=>hm(i,4));return dm(r.ZERO,o,s)}function Bu(r,t,e){if(t){if(t.ORDER!==r)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return Cr(t),t}else return Tr(r,{isLE:e})}function Do(r,t,e={},n){if(r!=="weierstrass"&&r!=="edwards")throw new Error('expected curve type "weierstrass" or "edwards"');if(n===void 0&&(n=r==="edwards"),!t||typeof t!="object")throw new Error(`expected valid ${r} CURVE object`);Bt(e);for(let c of["p","n","h"]){let f=t[c];if(!(Pe(f)&&f!==Ui))throw new Error(`CURVE.${c} must be positive bigint`)}let o=Bu(t.p,e.Fp,n),s=Bu(t.n,e.Fn,n),a=["Gx","Gy","a",r==="weierstrass"?"b":"d"];for(let c of a)if(!o.isValid(t[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return t=Object.freeze(Object.assign({},t)),{CURVE:t,Fp:o,Fn:s}}function Dr(r,t){return function(n){let o=r(n);return{secretKey:o,publicKey:t(o)}}}var Ro=BigInt(0),Oo=BigInt(1),Po=BigInt(2),pm=BigInt(4),Cu=BigInt(8);function mm(r,t,e,n){let o=r.sqr(e),s=r.sqr(n),i=r.add(r.mul(t.a,o),s),a=r.add(r.ONE,r.mul(t.d,r.mul(o,s)));return r.eql(i,a)}function Tu(r,t={}){Bt(t,{},{},"extraOpts");let e=t,n=Do("edwards",r,e,e.FpFnLE),{Fp:o,Fn:s}=n,i=n.CURVE,{h:a}=i;if(gn(o,i.a)!==1)throw new Error("edwards: CURVE.a must be a square in Fp for complete addition formulas");if(gn(o,i.d)!==-1)throw new Error("edwards: CURVE.d must be a non-square in Fp for complete addition formulas");Bt(e,{},{uvRatio:"function",randomBytes:"function"});let c=e.randomBytes===void 0?ye:e.randomBytes,f=Po<<BigInt(o.BYTES*8)-Oo;function u(S){if(!o.isOdd)throw new Error("Field does not have .isOdd()");return o.isOdd(S)}let h=e.uvRatio===void 0?(S,x)=>{try{return{isValid:!0,value:o.sqrt(o.div(S,x))}}catch{return{isValid:!1,value:Ro}}}:e.uvRatio;if(!mm(o,i,i.Gx,i.Gy))throw new Error("bad curve params: generator point");let l=o.eql(i.a,o.neg(o.ONE))?S=>o.neg(S):o.eql(i.a,o.ONE)?S=>S:S=>o.mul(i.a,S);function p(S,x,I=!1){let _=I?Oo:Ro;return ie("coordinate "+S,x,_,f),x}function m(S){if(!(S instanceof b))throw new Error("EdwardsPoint expected")}class b{static BASE=new b(i.Gx,i.Gy,o.ONE,o.mul(i.Gx,i.Gy));static ZERO=new b(o.ZERO,o.ONE,o.ONE,o.ZERO);static Fp=o;static Fn=s;X;Y;Z;T;constructor(x,I,_,N){this.X=p("x",x),this.Y=p("y",I),this.Z=p("z",_,!0),this.T=p("t",N),Object.freeze(this)}static CURVE(){return i}static fromAffine(x){if(x instanceof b)throw new Error("extended point not allowed");let{x:I,y:_}=x||{};return p("x",I),p("y",_),new b(I,_,o.ONE,o.mul(I,_))}static fromBytes(x,I=!1){let _=o.BYTES,{a:N,d:M}=i;x=tr(j(x,_,"point")),Ut(I,"zip215");let P=tr(x),R=x[_-1];P[_-1]=R&-129;let U=se(P),k=I?f:o.ORDER;ie("point.y",U,Ro,k);let D=o.sqr(U),H=o.sub(D,o.ONE),T=o.sub(o.mulN(M,D),N),{isValid:C,value:d}=h(H,T);if(!C)throw new Error("bad point: invalid y coordinate");let E=u(d),B=(R&128)!==0;if(!I&&o.is0(d)&&B)throw new Error("bad point: x=0 and x_0=1");return B!==E&&(d=o.neg(d)),b.fromAffine({x:d,y:U})}static fromHex(x,I=!1){return b.fromBytes(Lr(x),I)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(x=6,I=!0){return w.setWindowSize(this,x),I||this.multiply(Po),this}assertValidity(){let x=this,{a:I,d:_}=i;if(x.is0())throw new Error("bad point: ZERO");let{X:N,Y:M,Z:P,T:R}=x,U=o.sqr(N),k=o.sqr(M),D=o.sqr(P),H=o.sqr(D),T=o.mul(U,I),C=o.mul(o.add(T,k),D),d=o.add(H,o.mul(_,o.mul(U,k)));if(!o.eql(C,d))throw new Error("bad point: equation left != right (1)");let E=o.mul(N,M),B=o.mul(P,R);if(!o.eql(E,B))throw new Error("bad point: equation left != right (2)")}equals(x){m(x);let{X:I,Y:_,Z:N}=this,{X:M,Y:P,Z:R}=x,U=o.mul(I,R),k=o.mul(M,N),D=o.mul(_,R),H=o.mul(P,N);return o.eql(U,k)&&o.eql(D,H)}is0(){return this.equals(b.ZERO)}negate(){return new b(o.neg(this.X),this.Y,this.Z,o.neg(this.T))}double(){let{X:x,Y:I,Z:_}=this,N=o.sqr(x),M=o.sqr(I),P=o.mul(o.sqr(_),Po),R=l(N),U=o.addN(x,I),k=o.sub(o.subN(o.sqr(U),N),M),D=o.addN(R,M),H=o.subN(D,P),T=o.subN(R,M),C=o.mul(k,H),d=o.mul(D,T),E=o.mul(k,T),B=o.mul(H,D);return new b(C,d,B,E)}add(x){m(x);let{d:I}=i,{X:_,Y:N,Z:M,T:P}=this,{X:R,Y:U,Z:k,T:D}=x,H=o.mul(_,R),T=o.mul(N,U),C=o.mul(o.mulN(P,I),D),d=o.mul(M,k),E=o.sub(o.subN(o.mulN(o.addN(_,N),o.addN(R,U)),H),T),B=o.subN(d,C),A=o.addN(d,C),v=o.sub(T,l(H)),y=o.mul(E,B),L=o.mul(A,v),O=o.mul(E,v),F=o.mul(B,A);return new b(y,L,F,O)}subtract(x){return m(x),this.add(x.negate())}multiply(x){if(!s.isValidNot0(x))throw new RangeError("invalid scalar: expected 1 <= sc < curve.n");let{p:I,f:_}=w.mulSecret(this,x,a,g);return g([I,_])[0]}multiplyUnsafe(x){if(!s.isValid(x))throw new RangeError("invalid scalar: expected 0 <= sc < curve.n");return x===Ro?b.ZERO:this.is0()||x===Oo?this:w.mulUnsafe(this,x,g)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){return w.mulUnsafe(this,i.n).is0()}toAffine(x){let I=this,_=x;if(_!=null&&typeof _!="bigint")throw new TypeError('"invertedZ" expected bigint, got type='+typeof _);let{X:N,Y:M,Z:P}=I,R=I.is0();_==null&&(_=R?o.create(Cu):o.inv(P));let U=o.mul(N,_),k=o.mul(M,_),D=o.mul(P,_);if(R)return{x:o.ZERO,y:o.ONE};if(!o.eql(D,o.ONE))throw new Error("invZ was invalid");return{x:U,y:k}}clearCofactor(){return a===Oo?this:a===Po?this.double():a===pm?this.double().double():a===Cu?this.double().double().double():this.multiplyUnsafe(a)}toBytes(){let{x,y:I}=this.toAffine(),_=o.toBytes(I);return _[_.length-1]|=u(x)?128:0,_}toHex(){return dn(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let g=S=>To(b,S),w=new _r(b,c);return w.bits>=6&&b.BASE.precompute(6),Object.freeze(b.prototype),Object.freeze(b),b}function _u(r,t,e={}){if(ke(r),typeof t!="function")throw new Error('"hash" function param is required');let n=t,o=e;Bt(o,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",zip215:"boolean",mapToCurve:"function",toMontgomery:"function",toMontgomerySecret:"function"});let{prehash:s}=o,{BASE:i,Fp:a,Fn:c}=r,f=n.outputLen,u=2*a.BYTES;if(f!==void 0&&(Ne(f,"hash.outputLen"),f!==u))throw new Error(`hash.outputLen must be ${u}, got ${f}`);let h=o.randomBytes===void 0?ye:o.randomBytes,l=o.toMontgomery,p=o.toMontgomerySecret,m=o.adjustScalarBytes===void 0?T=>T:o.adjustScalarBytes,b=o.domain===void 0?(T,C,d)=>{if(Ut(d,"phflag"),C.length||d)throw new Error("Contexts/pre-hash are not supported");return T}:o.domain;function g(T){return c.create(se(T))}function w(T){let C=R.secretKey;j(T,R.secretKey,"secretKey");let d=j(n(T),2*C,"hashedSecretKey"),E=m(d.slice(0,C)),B=d.slice(C,2*C),A=g(E);return{head:E,prefix:B,scalar:A}}function S(T){let{head:C,prefix:d,scalar:E}=w(T),B=i.multiply(E),A=B.toBytes();return{head:C,prefix:d,scalar:E,point:B,pointBytes:A}}function x(T){return S(T).pointBytes}function I(T=Uint8Array.of(),...C){let d=zt(...C);return g(n(b(d,j(T,void 0,"context"),!!s)))}function _(T,C,d={}){Bt(d,{},{},"options"),T=j(T,void 0,"message"),s&&(T=s(T));let{prefix:E,scalar:B,pointBytes:A}=S(C),v=I(d.context,E,T),y=i.multiply(v).toBytes(),L=I(d.context,y,A,T),O=c.create(v+L*B);if(!c.isValid(O))throw new Error("sign failed: invalid s");let F=zt(y,c.toBytes(O));return j(F,R.signature,"result")}let N={zip215:o.zip215};function M(T,C,d,E=N){Bt(E);let{context:B}=E,A=E.zip215===void 0?!!N.zip215:E.zip215,v=R.signature;T=j(T,v,"signature"),C=j(C,void 0,"message"),d=j(d,R.publicKey,"publicKey"),A!==void 0&&Ut(A,"zip215"),s&&(C=s(C));let y=v/2,L=T.subarray(0,y),O=se(T.subarray(y,v)),F,K,q;try{F=r.fromBytes(d,A),K=r.fromBytes(L,A),q=i.multiplyUnsafe(O)}catch{return!1}if(!A&&F.isSmallOrder())return!1;let V=I(B,L,d,C);return K.add(F.multiplyUnsafe(V)).subtract(q).clearCofactor().is0()}let P=a.BYTES,R={secretKey:P,publicKey:P,signature:2*P,seed:P};function U(T){return T=T===void 0?h(R.seed):T,j(T,R.seed,"seed")}function k(T){return Ue(T)&&T.length===R.secretKey}function D(T,C){try{return!!r.fromBytes(T,C===void 0?N.zip215:C)}catch{return!1}}let H={getExtendedPublicKey:S,randomSecretKey:U,isValidSecretKey:k,isValidPublicKey:D,toMontgomery(T){if(l===void 0)throw new Error("Montgomery conversion is not supported for this curve");return l(r.fromBytes(T))},toMontgomerySecret(T){if(p===void 0)throw new Error("Montgomery conversion is not supported for this curve");return p(T)}};return Object.freeze(R),Object.freeze(H),Object.freeze({keygen:Dr(U,x),getPublicKey:x,sign:_,verify:M,utils:H,Point:r,lengths:R})}var er=BigInt(0),Vt=BigInt(1),Uo=BigInt(2);function Du(r,t){return r+t-(t>>Vt<<Vt)}function ym(r){let t=BigInt(6)*r;return(e,n,o)=>{let s=n+o,a=((t+o-n)*e+n)%r;return{x_2:a,x_3:s-a}}}function gm(r){return Bt(r,{P:"bigint",type:"string",adjustScalarBytes:"function",powPminus2:"function"},{randomBytes:"function",scalarMultBase:"function"}),Object.freeze({...r})}function Ru(r){let t=gm(r),{P:e,type:n,adjustScalarBytes:o,powPminus2:s,randomBytes:i}=t,a=t.scalarMultBase,c=n==="x25519";if(!c&&n!=="x448")throw new Error("invalid type");let f=i===void 0?ye:i,u=c?255:448,h=ym(e),l=c?32:56,p=BigInt(c?9:5),m=BigInt(c?121665:39081),b=c?Uo**BigInt(254):Uo**BigInt(447),g=c?BigInt(8)*(Uo**BigInt(251)-Vt):BigInt(4)*(Uo**BigInt(445)-Vt),w=b+g+Vt,S=d=>J(d,e),x=I(p);function I(d){return mn(S(d),l)}function _(d){let E=tr(j(d,l,"uCoordinate"));return c&&(E[31]&=127),S(se(E))}function N(d){return se(o(tr(j(d,l,"scalar"))))}let M=new Set(c?[er,Vt,e-Vt,BigInt("325606250916557431795983626356110631294008115727848805560023387167927233504"),BigInt("39382357235489614581723060781553021112529911719440698176882885853963445705823")]:[er,Vt,e-Vt]);function P(d,E){let B=_(E);if(M.has(B))throw new Error("invalid private or public key received");let A=D(B,N(d));if(A===er)throw new Error("invalid private or public key received");return I(A)}function R(d){if(a===void 0)return P(d,x);let E=N(d);ie("scalar",E,b,w);let B=S(a(E));if(B===er)throw new Error("invalid private or public key received");return I(B)}let U=R,k=P;function D(d,E){ie("u",d,er,e),ie("scalar",E,b,w);let B=E,A=d,v=Vt,y=er,L=d,O=Vt,F=B^B>>Vt;for(let V=BigInt(u-1);V>=er;V--){let G=Du(e,F>>V);({x_2:v,x_3:L}=h(G,v,L)),{x_2:y,x_3:O}=h(G,y,O);let ot=v+y,st=S(ot*ot),mt=v-y,Nt=S(mt*mt),de=st-Nt,$e=L+O,Jt=L-O,Mt=S(Jt*ot),mr=S($e*mt),tn=Mt+mr,ve=Mt-mr;L=S(tn*tn),O=S(A*S(ve*ve)),v=S(st*Nt),y=S(de*(st+S(m*de)))}let K=Du(e,B);({x_2:v,x_3:L}=h(K,v,L)),{x_2:y,x_3:O}=h(K,y,O);let q=s(y);return S(v*q)}let H={secretKey:l,publicKey:l,seed:l},T=d=>(d=d===void 0?f(l):d,j(d,H.seed,"seed"),d),C={randomSecretKey:T};return Object.freeze(H),Object.freeze(C),Object.freeze({keygen:Dr(T,U),getSharedSecret:k,getPublicKey:U,scalarMult:P,scalarMultBase:R,utils:C,GuBytes:x.slice(),lengths:H})}var Ou=BigInt(0),Mi=BigInt(1),Pu=BigInt(2),bm=BigInt(3),wm=BigInt(5),xm=BigInt(8),No=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),Em={p:No,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:xm,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function Mu(r){let t=BigInt(10),e=BigInt(20),n=BigInt(40),o=BigInt(80),s=No,a=r*r%s*r%s,c=it(a,Pu,s)*a%s,f=it(c,Mi,s)*r%s,u=it(f,wm,s)*f%s,h=it(u,t,s)*u%s,l=it(h,e,s)*h%s,p=it(l,n,s)*l%s,m=it(p,o,s)*p%s,b=it(m,o,s)*p%s,g=it(b,t,s)*u%s;return{pow_p_5_8:it(g,Pu,s)*r%s,b2:a}}function ki(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}var Uu=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function Sm(r,t){let e=No,n=J(t*t*t,e),o=J(n*n*t,e),s=Mu(r*o).pow_p_5_8,i=J(r*n*s,e),a=J(t*i*i,e),c=i,f=J(i*Uu,e),u=a===r,h=a===J(-r,e),l=a===J(-r*Uu,e);return u&&(i=c),(h||l)&&(i=f),Eu(i,e)&&(i=J(-i,e)),{isValid:u||h,value:i}}var wn=Tu(Em,{uvRatio:Sm}),Nu=wn.Fp;function Am(r){let{y:t}=r;return Nu.toBytes(Nu.div(Mi+t,Mi-t))}function vm(r){let t=wn.Fp.BYTES;return Rt(r,t),ki(Ii(r.subarray(0,t))).subarray(0,t)}function Bm(r){return _u(wn,Ii,Object.assign({adjustScalarBytes:ki,toMontgomery:Am,toMontgomerySecret:vm,zip215:!0},r))}var ku=Bm({});var xn=(()=>{let r=No,t=e=>{let{pow_p_5_8:n,b2:o}=Mu(e);return J(it(n,bm,r)*o,r)};return Ru({P:r,type:"x25519",powPminus2:t,adjustScalarBytes:ki,scalarMultBase:e=>{let n=J(e,wn.Fn.ORDER);if(n===Ou)return Ou;let o=wn.BASE.multiply(n);return J((o.Z+o.Y)*t(J(o.Z-o.Y,r)),r)}})})();var En=class extends Error{constructor(t="An error occurred while verifying a message"){super(t),this.name="VerificationError"}},Mo=class extends Error{constructor(t="Missing Web Crypto API"){super(t),this.name="WebCryptoMissingError"}};var qt={get(r=globalThis){let t=r.crypto;if(t?.subtle==null)throw new Mo("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 ko=32;var Ki,Lm=(async()=>{try{return await qt.get().subtle.generateKey({name:"Ed25519"},!0,["sign","verify"]),!0}catch{return!1}})();async function Im(r,t,e){if(r.buffer instanceof ArrayBuffer){let n=await qt.get().subtle.importKey("raw",r.buffer,{name:"Ed25519"},!1,["verify"]);return await qt.get().subtle.verify({name:"Ed25519"},n,Et(t),Et(e instanceof Uint8Array?e:e.subarray()))}throw new TypeError("WebCrypto does not support SharedArrayBuffer for Ed25519 keys")}function Cm(r,t,e){return ku.verify(t,e instanceof Uint8Array?e:e.subarray(),r)}async function Ku(r,t,e){return Ki==null&&(Ki=await Lm),Ki?Im(r,t,e):Cm(r,t,e)}function Ko(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}var Fo=class{type="Ed25519";raw;constructor(t){this.raw=Fi(t,ko)}toMultihash(){return Wt.digest(Te(this))}toCID(){return yt.createV1(114,this.toMultihash())}toString(){return lt.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:gt(this.raw,t.raw)}verify(t,e,n){n?.signal?.throwIfAborted();let o=Ku(this.raw,e,t);return Ko(o)?o.then(s=>(n?.signal?.throwIfAborted(),s)):o}};function Hi(r){return r=Fi(r,ko),new Fo(r)}function Fi(r,t){if(r=Uint8Array.from(r??[]),r.length!==t)throw new tt(`Key must be a Uint8Array of length ${t}, got ${r.length}`);return r}var _m=Math.pow(2,7),Dm=Math.pow(2,14),Rm=Math.pow(2,21),zi=Math.pow(2,28),Vi=Math.pow(2,35),qi=Math.pow(2,42),$i=Math.pow(2,49),Q=128,Lt=127;function It(r){if(r<_m)return 1;if(r<Dm)return 2;if(r<Rm)return 3;if(r<zi)return 4;if(r<Vi)return 5;if(r<qi)return 6;if(r<$i)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Rr(r,t,e=0){switch(It(r)){case 8:t[e++]=r&255|Q,r/=128;case 7:t[e++]=r&255|Q,r/=128;case 6:t[e++]=r&255|Q,r/=128;case 5:t[e++]=r&255|Q,r/=128;case 4:t[e++]=r&255|Q,r>>>=7;case 3:t[e++]=r&255|Q,r>>>=7;case 2:t[e++]=r&255|Q,r>>>=7;case 1:{t[e++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return t}function Om(r,t,e=0){switch(It(r)){case 8:t.set(e++,r&255|Q),r/=128;case 7:t.set(e++,r&255|Q),r/=128;case 6:t.set(e++,r&255|Q),r/=128;case 5:t.set(e++,r&255|Q),r/=128;case 4:t.set(e++,r&255|Q),r>>>=7;case 3:t.set(e++,r&255|Q),r>>>=7;case 2:t.set(e++,r&255|Q),r>>>=7;case 1:{t.set(e++,r&255),r>>>=7;break}default:throw new Error("unreachable")}return t}function ji(r,t){let e=r[t],n=0;if(n+=e&Lt,e<Q||(e=r[t+1],n+=(e&Lt)<<7,e<Q)||(e=r[t+2],n+=(e&Lt)<<14,e<Q)||(e=r[t+3],n+=(e&Lt)<<21,e<Q)||(e=r[t+4],n+=(e&Lt)*zi,e<Q)||(e=r[t+5],n+=(e&Lt)*Vi,e<Q)||(e=r[t+6],n+=(e&Lt)*qi,e<Q)||(e=r[t+7],n+=(e&Lt)*$i,e<Q))return n;throw new RangeError("Could not decode varint")}function Pm(r,t){let e=r.get(t),n=0;if(n+=e&Lt,e<Q||(e=r.get(t+1),n+=(e&Lt)<<7,e<Q)||(e=r.get(t+2),n+=(e&Lt)<<14,e<Q)||(e=r.get(t+3),n+=(e&Lt)<<21,e<Q)||(e=r.get(t+4),n+=(e&Lt)*zi,e<Q)||(e=r.get(t+5),n+=(e&Lt)*Vi,e<Q)||(e=r.get(t+6),n+=(e&Lt)*qi,e<Q)||(e=r.get(t+7),n+=(e&Lt)*$i,e<Q))return n;throw new RangeError("Could not decode varint")}function Hu(r,t,e=0){return t==null&&(t=vt(It(r))),t instanceof Uint8Array?Rr(r,t,e):Om(r,t,e)}function rr(r,t=0){return r instanceof Uint8Array?ji(r,t):Pm(r,t)}var Gi=new Float32Array([-0]),Ke=new Uint8Array(Gi.buffer);function zu(r,t,e){Gi[0]=r,t[e]=Ke[0],t[e+1]=Ke[1],t[e+2]=Ke[2],t[e+3]=Ke[3]}function Vu(r,t){return Ke[0]=r[t],Ke[1]=r[t+1],Ke[2]=r[t+2],Ke[3]=r[t+3],Gi[0]}var Yi=new Float64Array([-0]),Ct=new Uint8Array(Yi.buffer);function qu(r,t,e){Yi[0]=r,t[e]=Ct[0],t[e+1]=Ct[1],t[e+2]=Ct[2],t[e+3]=Ct[3],t[e+4]=Ct[4],t[e+5]=Ct[5],t[e+6]=Ct[6],t[e+7]=Ct[7]}function $u(r,t){return Ct[0]=r[t],Ct[1]=r[t+1],Ct[2]=r[t+2],Ct[3]=r[t+3],Ct[4]=r[t+4],Ct[5]=r[t+5],Ct[6]=r[t+6],Ct[7]=r[t+7],Yi[0]}var Um=BigInt(Number.MAX_SAFE_INTEGER),Nm=BigInt(Number.MIN_SAFE_INTEGER),kt=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 nr;if(t<Um&&t>Nm)return this.fromNumber(Number(t));let e=t<0n;e&&(t=-t);let n=t>>32n,o=t-(n<<32n);return e&&(n=~n|0n,o=~o|0n,++o>ju&&(o=0n,++n>ju&&(n=0n))),new r(Number(o),Number(n))}static fromNumber(t){if(t===0)return nr;let e=t<0;e&&(t=-t);let n=t>>>0,o=(t-n)/4294967296>>>0;return e&&(o=~o>>>0,n=~n>>>0,++n>4294967295&&(n=0,++o>4294967295&&(o=0))),new r(n,o)}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):nr}},nr=new kt(0,0);nr.toBigInt=function(){return 0n};nr.zzEncode=nr.zzDecode=function(){return this};nr.length=function(){return 1};var ju=4294967296n;function Wu(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 Gu(r,t,e){if(e-t<1)return"";let o,s=[],i=0,a;for(;t<e;)a=r[t++],a<128?s[i++]=a:a>191&&a<224?s[i++]=(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,s[i++]=55296+(a>>10),s[i++]=56320+(a&1023)):s[i++]=(a&15)<<12|(r[t++]&63)<<6|r[t++]&63,i>8191&&((o??(o=[])).push(String.fromCharCode.apply(String,s)),i=0);return o!=null?(i>0&&o.push(String.fromCharCode.apply(String,s.slice(0,i))),o.join("")):String.fromCharCode.apply(String,s.slice(0,i))}function Zi(r,t,e){let n=e,o,s;for(let i=0;i<r.length;++i)o=r.charCodeAt(i),o<128?t[e++]=o:o<2048?(t[e++]=o>>6|192,t[e++]=o&63|128):(o&64512)===55296&&((s=r.charCodeAt(i+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++i,t[e++]=o>>18|240,t[e++]=o>>12&63|128,t[e++]=o>>6&63|128,t[e++]=o&63|128):(t[e++]=o>>12|224,t[e++]=o>>6&63|128,t[e++]=o&63|128);return e-n}function Zt(r,t){return RangeError(`index out of range: ${r.pos} + ${t??1} > ${r.len}`)}function Ho(r,t){return(r[t-4]|r[t-3]<<8|r[t-2]<<16|r[t-1]<<24)>>>0}var Xi=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(t){this.buf=Et(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,Zt(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 Zt(this,4);return Ho(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Zt(this,4);return Ho(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Zt(this,4);let t=Vu(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw Zt(this,4);let t=$u(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 Zt(this,t);return this.pos+=t,e===n?new Uint8Array(0):this.buf.subarray(e,n)}string(){let t=this.bytes();return Gu(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Zt(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Zt(this);while((this.buf[this.pos++]&128)!==0);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 kt(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 Zt(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 Zt(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 Zt(this,8);let t=Ho(this.buf,this.pos+=4),e=Ho(this.buf,this.pos+=4);return new kt(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=ji(this.buf,this.pos);return this.pos+=It(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 Sn(r){return new Xi(r instanceof Uint8Array?r:r.subarray())}function zo(r,t,e){let n=Sn(r);return t.decode(n,void 0,e)}function Qi(r){let t=r??8192,e=t>>>1,n,o=t;return function(i){if(i<1||i>e)return vt(i);o+i>t&&(n=vt(t),o=0);let a=n.subarray(o,o+=i);return(o&7)!==0&&(o=(o|7)+1),a}}var or=class{fn;len;next;val;constructor(t,e,n){this.fn=t,this.len=e,this.next=void 0,this.val=n}};function Ji(){}var ea=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},Mm=Qi();function km(r){return globalThis.Buffer!=null?vt(r):Mm(r)}var vn=class{len;head;tail;states;constructor(){this.len=0,this.head=new or(Ji,0,0),this.tail=this.head,this.states=null}_push(t,e,n){return this.tail=this.tail.next=new or(t,e,n),this.len+=e,this}uint32(t){return this.len+=(this.tail=this.tail.next=new ra((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(Vo,10,kt.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let e=kt.fromBigInt(t);return this._push(Vo,e.length(),e)}uint64Number(t){return this._push(Rr,It(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=kt.fromBigInt(t).zzEncode();return this._push(Vo,e.length(),e)}sint64Number(t){let e=kt.fromNumber(t).zzEncode();return this._push(Vo,e.length(),e)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(ta,1,t?1:0)}fixed32(t){return this._push(An,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let e=kt.fromBigInt(t);return this._push(An,4,e.lo)._push(An,4,e.hi)}fixed64Number(t){let e=kt.fromNumber(t);return this._push(An,4,e.lo)._push(An,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(zu,4,t)}double(t){return this._push(qu,8,t)}bytes(t){let e=t.length>>>0;return e===0?this._push(ta,1,0):this.uint32(e)._push(Fm,e,t)}string(t){let e=Wu(t);return e!==0?this.uint32(e)._push(Zi,e,t):this._push(ta,1,0)}fork(){return this.states=new ea(this),this.head=this.tail=new or(Ji,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 or(Ji,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=km(this.len),n=0;for(;t!=null;)t.fn(t.val,e,n),n+=t.len,t=t.next;return e}};function ta(r,t,e){t[e]=r&255}function Km(r,t,e){for(;r>127;)t[e++]=r&127|128,r>>>=7;t[e]=r}var ra=class extends or{next;constructor(t,e){super(Km,t,e),this.next=void 0}};function Vo(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 An(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 Fm(r,t,e){t.set(r,e)}globalThis.Buffer!=null&&(vn.prototype.bytes=function(r){let t=r.length>>>0;return this.uint32(t),t>0&&this._push(Hm,t,r),this},vn.prototype.string=function(r){let t=globalThis.Buffer.byteLength(r);return this.uint32(t),t>0&&this._push(zm,t,r),this});function Hm(r,t,e){t.set(r,e)}function zm(r,t,e){r.length<40?Zi(r,t,e):t.utf8Write!=null?t.utf8Write(r,e):t.set(nt(r),e)}function na(){return new vn}function qo(r,t){let e=na();return t.encode(r,e,{lengthDelimited:!1}),e.finish()}function*$o(r,t,e){let n=Sn(r);yield*t.stream(n,void 0,"$",e)}var jo={VARINT:0,BIT64:1,LENGTH_DELIMITED:2,START_GROUP:3,END_GROUP:4,BIT32:5};function Wo(r,t,e,n,o){return{name:r,type:t,encode:e,decode:n,stream:o}}function oa(r){function t(s){if(r[s.toString()]==null)throw new Error("Invalid enum value");return r[s]}let e=function(i,a){let c=t(i);a.int32(c)},n=function(i){let a=i.int32();return t(a)},o=function*(i){let a=i.int32();yield t(a)};return Wo("enum",jo.VARINT,e,n,o)}function Go(r,t,e){return Wo("message",jo.LENGTH_DELIMITED,r,t,e)}var ut;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.secp256k1="secp256k1",r.ECDSA="ECDSA"})(ut||(ut={}));var sa;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.secp256k1=2]="secp256k1",r[r.ECDSA=3]="ECDSA"})(sa||(sa={}));(function(r){r.codec=()=>oa(sa)})(ut||(ut={}));var ae;(function(r){let t;r.codec=()=>(t==null&&(t=Go((s,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),s.Type!=null&&(i.uint32(8),ut.codec().encode(s.Type,i)),s.Data!=null&&(i.uint32(18),i.bytes(s.Data)),a.lengthDelimited!==!1&&i.ldelim()},(s,i,a={})=>{let c={},f=i==null?s.len:s.pos+i;for(;s.pos<f;){let u=s.uint32();switch(u>>>3){case 1:{c.Type=ut.codec().decode(s);break}case 2:{c.Data=s.bytes();break}default:{s.skipType(u&7);break}}}return c},function*(s,i,a,c={}){let f=i==null?s.len:s.pos+i;for(;s.pos<f;){let u=s.uint32();switch(u>>>3){case 1:{yield{field:`${a}.Type`,value:ut.codec().decode(s)};break}case 2:{yield{field:`${a}.Data`,value:s.bytes()};break}default:{s.skipType(u&7);break}}}})),t);function e(s){return qo(s,r.codec())}r.encode=e;function n(s,i){return zo(s,r.codec(),i)}r.decode=n;function o(s,i){return $o(s,r.codec(),i)}r.stream=o})(ae||(ae={}));var ia;(function(r){let t;r.codec=()=>(t==null&&(t=Go((s,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),s.Type!=null&&(i.uint32(8),ut.codec().encode(s.Type,i)),s.Data!=null&&(i.uint32(18),i.bytes(s.Data)),a.lengthDelimited!==!1&&i.ldelim()},(s,i,a={})=>{let c={},f=i==null?s.len:s.pos+i;for(;s.pos<f;){let u=s.uint32();switch(u>>>3){case 1:{c.Type=ut.codec().decode(s);break}case 2:{c.Data=s.bytes();break}default:{s.skipType(u&7);break}}}return c},function*(s,i,a,c={}){let f=i==null?s.len:s.pos+i;for(;s.pos<f;){let u=s.uint32();switch(u>>>3){case 1:{yield{field:`${a}.Type`,value:ut.codec().decode(s)};break}case 2:{yield{field:`${a}.Data`,value:s.bytes()};break}default:{s.skipType(u&7);break}}}})),t);function e(s){return qo(s,r.codec())}r.encode=e;function n(s,i){return zo(s,r.codec(),i)}r.decode=n;function o(s,i){return $o(s,r.codec(),i)}r.stream=o})(ia||(ia={}));var Ln={};rt(Ln,{MAX_RSA_KEY_SIZE:()=>aa,generateRSAKeyPair:()=>th,jwkToJWKKeyPair:()=>eh,jwkToPkcs1:()=>jm,jwkToPkix:()=>ha,jwkToRSAPrivateKey:()=>ma,pkcs1MessageToJwk:()=>fa,pkcs1MessageToRSAPrivateKey:()=>la,pkcs1ToJwk:()=>$m,pkcs1ToRSAPrivateKey:()=>Ju,pkixMessageToJwk:()=>ua,pkixMessageToRSAPublicKey:()=>pa,pkixToJwk:()=>Wm,pkixToRSAPublicKey:()=>da});var Or=class{type="RSA";jwk;_raw;_multihash;constructor(t,e){this.jwk=t,this._multihash=e}get raw(){return this._raw==null&&(this._raw=Ln.jwkToPkix(this.jwk)),this._raw}toMultihash(){return this._multihash}toCID(){return yt.createV1(114,this._multihash)}toString(){return lt.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:gt(this.raw,t.raw)}verify(t,e,n){return Qu(this.jwk,e,t,n)}},Bn=class{type="RSA";jwk;_raw;publicKey;constructor(t,e){this.jwk=t,this.publicKey=e}get raw(){return this._raw==null&&(this._raw=Ln.jwkToPkcs1(this.jwk)),this._raw}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:gt(this.raw,t.raw)}sign(t,e){return Xu(this.jwk,t,e)}};var aa=8192,ca=18,Vm=1062,qm=Uint8Array.from([48,13,6,9,42,134,72,134,247,13,1,1,1,5,0]);function $m(r){let t=me(r);return fa(t)}function fa(r){return{n:Y(r[1],"base64url"),e:Y(r[2],"base64url"),d:Y(r[3],"base64url"),p:Y(r[4],"base64url"),q:Y(r[5],"base64url"),dp:Y(r[6],"base64url"),dq:Y(r[7],"base64url"),qi:Y(r[8],"base64url"),kty:"RSA"}}function jm(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 tt("JWK was missing components");return Ce([Pt(Uint8Array.from([0])),Pt(nt(r.n,"base64url")),Pt(nt(r.e,"base64url")),Pt(nt(r.d,"base64url")),Pt(nt(r.p,"base64url")),Pt(nt(r.q,"base64url")),Pt(nt(r.dp,"base64url")),Pt(nt(r.dq,"base64url")),Pt(nt(r.qi,"base64url"))]).subarray()}function Wm(r){let t=me(r,{offset:0});return ua(t)}function ua(r){let t=me(r[1],{offset:0});return{kty:"RSA",n:Y(t[0],"base64url"),e:Y(t[1],"base64url")}}function ha(r){if(r.n==null||r.e==null)throw new tt("JWK was missing components");return Ce([qm,po(Ce([Pt(nt(r.n,"base64url")),Pt(nt(r.e,"base64url"))]))]).subarray()}function Ju(r){let t=me(r);return la(t)}function la(r){let t=fa(r);return ma(t)}function da(r,t){if(r.byteLength>=Vm)throw new gr("Key size is too large");let e=me(r,{offset:0});return pa(e,r,t)}function pa(r,t,e){let n=ua(r);if(e==null){let o=ne(ae.encode({Type:ut.RSA,Data:t}));e=jt(ca,o)}return new Or(n,e)}function ma(r){if(nh(r)>aa)throw new tt("Key size is too large");let t=eh(r),e=ne(ae.encode({Type:ut.RSA,Data:ha(t.publicKey)})),n=jt(ca,e);return new Bn(t.privateKey,new Or(t.publicKey,n))}async function th(r){if(r>aa)throw new tt("Key size is too large");let t=await rh(r),e=ne(ae.encode({Type:ut.RSA,Data:ha(t.publicKey)})),n=jt(ca,e);return new Bn(t.privateKey,new Or(t.publicKey,n))}function eh(r){if(r==null)throw new tt("Missing key parameter");return{privateKey:r,publicKey:{kty:r.kty,n:r.n,e:r.e}}}async function rh(r,t){let e=await qt.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]);t?.signal?.throwIfAborted();let n=await Gm(e,t);return{privateKey:n[0],publicKey:n[1]}}async function Xu(r,t,e){let n=await qt.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]);e?.signal?.throwIfAborted();let o=await qt.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},n,Et(t instanceof Uint8Array?t:t.subarray()));return e?.signal?.throwIfAborted(),new Uint8Array(o,0,o.byteLength)}async function Qu(r,t,e,n){let o=await qt.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);n?.signal?.throwIfAborted();let s=await qt.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},o,Et(t),Et(e instanceof Uint8Array?e:e.subarray()));return n?.signal?.throwIfAborted(),s}async function Gm(r,t){if(r.privateKey==null||r.publicKey==null)throw new tt("Private and public key are required");let e=await Promise.all([qt.get().subtle.exportKey("jwk",r.privateKey),qt.get().subtle.exportKey("jwk",r.publicKey)]);return t?.signal?.throwIfAborted(),e}function nh(r){if(r.kty!=="RSA")throw new tt("invalid key type");if(r.n==null)throw new tt("invalid key modulus");return nt(r.n,"base64url").length*8}var Yo=class{oHash;iHash;blockLen;outputLen;canXOF=!1;finished=!1;destroyed=!1;constructor(t,e){if(Qe(t),Rt(e,void 0,"key"),this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("expected Hash instance");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let n=this.blockLen,o=new Uint8Array(n);o.set(e.length>n?t.create().update(e).digest():e);for(let s=0;s<o.length;s++)o[s]^=54;this.iHash.update(o),this.oHash=t.create();for(let s=0;s<o.length;s++)o[s]^=106;this.oHash.update(o),Ht(o)}update(t){return Br(this),this.iHash.update(t),this}digestInto(t){Br(this),go(t,this),this.finished=!0;let e=t.subarray(0,this.outputLen);this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||=Object.create(Object.getPrototypeOf(this),{});let{oHash:e,iHash:n,finished:o,destroyed:s,blockLen:i,outputLen:a,canXOF:c}=this;return t=t,t.finished=o,t.destroyed=s,t.blockLen=i,t.outputLen=a,t.canXOF=c,t.oHash=e._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},In=(()=>{let r=((t,e,n)=>new Yo(t,e).update(n).digest());return r.create=(t,e)=>new Yo(t,e),r})();var Ym=BigInt(0),ya=class extends Error{constructor(t=""){super(t)}},ge={Err:ya,_tlv:{encode:(r,t)=>{let{Err:e}=ge;if(Ne(r,"tag"),r<0||r>255)throw new e("tlv.encode: wrong tag");if(cu(t,"data"),t.length&1)throw new e("tlv.encode: unpadded data");let n=t.length/2,o=pn(n);if(o.length/2&128)throw new e("tlv.encode: long form length too big");let s=n>127?pn(o.length/2|128):"";return pn(r)+s+o+t},decode(r,t){let{Err:e}=ge;t=j(t,void 0,"DER data");let n=0;if(r<0||r>255)throw new e("tlv.decode: wrong tag");if(t.length<2||t[n++]!==r)throw new e("tlv.decode: wrong tlv");let o=t[n++],s=!!(o&128),i=0;if(!s)i=o;else{let c=o&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 f=t.subarray(n,n+c);if(f.length!==c)throw new e("tlv.decode: length bytes not complete");if(f[0]===0)throw new e("tlv.decode(long): zero leftmost byte");for(let u of f)i=i<<8|u;if(n+=c,i<128)throw new e("tlv.decode(long): not minimal encoding")}let a=t.subarray(n,n+i);if(a.length!==i)throw new e("tlv.decode: wrong value length");return{v:a,l:t.subarray(n+i)}}},_int:{encode(r){let{Err:t}=ge;if(Ao(r),r<Ym)throw new t("integer: negative integers are not allowed");let e=pn(r);if(Number.parseInt(e[0],16)&8&&(e="00"+e),e.length&1)throw new t("unexpected DER parsing assertion: unpadded hex");return e},decode(r){let{Err:t}=ge;if(r.length<1)throw new t("invalid signature integer: empty");if(r[0]&128)throw new t("invalid signature integer: negative");if(r.length>1&&r[0]===0&&!(r[1]&128))throw new t("invalid signature integer: unnecessary leading zero");return oe(r)}},toSig(r){let{Err:t,_int:e,_tlv:n}=ge,o=j(r,void 0,"signature"),{v:s,l:i}=n.decode(48,o);if(i.length)throw new t("invalid signature: left bytes after parsing");let{v:a,l:c}=n.decode(2,s),{v:f,l:u}=n.decode(2,c);if(u.length)throw new t("invalid signature: left bytes after parsing");return{r:e.decode(a),s:e.decode(f)}},hexFromSig(r){let{_tlv:t,_int:e}=ge;Bt(r,{r:"bigint",s:"bigint"},{},"sig");let n=t.encode(2,e.encode(r.r)),o=t.encode(2,e.encode(r.s)),s=n+o;return t.encode(48,s)}},ga=(Object.freeze(ge._tlv),Object.freeze(ge._int),Object.freeze(ge));var oh=(r,t)=>(r+(r>=0?t:-t)/sh)/t;function Zm(r,t,e){ie("scalar",r,be,e);let[[n,o],[s,i]]=t,a=oh(i*r,e),c=oh(-o*r,e),f=r-a*n-c*s,u=-a*o-c*i,h=f<be,l=u<be;h&&(f=-f),l&&(u=-u);let p=yn(Math.ceil(Ir(e)/2))+sr;if(f<be||f>=p||u<be||u>=p)throw new Error("splitScalar (endomorphism): failed for k");return{k1neg:h,k1:f,k2neg:l,k2:u}}function xa(r){if(!["compact","recovered","der"].includes(r))throw new Error('Signature format must be "compact", "recovered", or "der"');return r}function ba(r,t){Bt(r);let e={};for(let n of Object.keys(t))e[n]=r[n]===void 0?t[n]:r[n];return Ut(e.lowS,"lowS"),Ut(e.prehash,"prehash"),e.format!==void 0&&xa(e.format),e}var be=BigInt(0),sr=BigInt(1),sh=BigInt(2),wa=BigInt(3),Xm=BigInt(4);function ih(r,t={}){let e=Do("weierstrass",r,t),n=e.Fp,o=e.Fn,s=e.CURVE,{h:i,n:a}=s;Bt(t,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",randomBytes:"function"});let{endo:c,allowInfinityPoint:f}=t,u=t.randomBytes===void 0?ye:t.randomBytes;if(c&&(!n.is0(s.a)||typeof c.beta!="bigint"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');let h=ch(n,o);function l(){if(!n.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function p(C,d,E){if(f&&d.is0())return Uint8Array.of(0);let{x:B,y:A}=d.toAffine(),v=n.toBytes(B);if(Ut(E,"isCompressed"),E){l();let y=!n.isOdd(A);return zt(ah(y),v)}else return zt(Uint8Array.of(4),v,n.toBytes(A))}function m(C){j(C,void 0,"Point");let{publicKey:d,publicKeyUncompressed:E}=h,B=C.length,A=C[0],v=C.subarray(1);if(f&&B===1&&A===0)return{x:n.ZERO,y:n.ZERO};if(B===d&&(A===2||A===3)){let y=n.fromBytes(v);if(!n.isValid(y))throw new Error("bad point: is not on curve, wrong x");let L=x(y),O;try{O=n.sqrt(L)}catch(q){let V=q instanceof Error?": "+q.message:"";throw new Error("bad point: is not on curve, sqrt error"+V)}l();let F=n.isOdd(O);return(A&1)===1!==F&&(O=n.neg(O)),{x:y,y:O}}else if(B===E&&A===4){let y=n.BYTES,L=n.fromBytes(v.subarray(0,y)),O=n.fromBytes(v.subarray(y,y*2));if(!I(L,O))throw new Error("bad point: is not on curve");return{x:L,y:O}}else throw new Error(`bad point: got length ${B}, expected compressed=${d} or uncompressed=${E}`)}let b=t.toBytes===void 0?p:t.toBytes,g=t.fromBytes===void 0?m:t.fromBytes,w=n.mul(s.b,wa),S=n.is0(s.a)?C=>n.ZERO:C=>n.mul(s.a,C);function x(C){let d=n.sqr(C),E=n.mul(d,C);return n.add(n.add(E,n.mul(C,s.a)),s.b)}function I(C,d){let E=n.sqr(d),B=x(C);return n.eql(E,B)}if(!I(s.Gx,s.Gy))throw new Error("bad curve params: generator point");let _=n.mul(n.pow(s.a,wa),Xm),N=n.mul(n.sqr(s.b),BigInt(27));if(n.is0(n.add(_,N)))throw new Error("bad curve params: a or b");function M(C,d,E=!1){if(!n.isValid(d)||E&&n.is0(d))throw new Error(`bad point coordinate ${C}`);return d}function P(C){if(!(C instanceof D))throw new Error("Weierstrass Point expected")}function R(C){if(!c||!c.basises)throw new Error("no endo");return Zm(C,c.basises,o.ORDER)}function U(C,d,E,B){if(!o.isValid(B))throw new RangeError("invalid scalar: out of range");if(c){let{k1neg:A,k1:v,k2neg:y,k2:L}=R(B),O=new D(n.mul(E.X,c.beta),E.Y,E.Z);C.push(A?E.negate():E,y?O.negate():O),d.push(v,L)}else C.push(E),d.push(B)}let k=new WeakSet;class D{static BASE=new D(s.Gx,s.Gy,n.ONE);static ZERO=new D(n.ZERO,n.ONE,n.ZERO);static Fp=n;static Fn=o;X;Y;Z;constructor(d,E,B){this.X=M("x",d),this.Y=M("y",E,!0),this.Z=M("z",B),Object.freeze(this)}static CURVE(){return s}static fromAffine(d){let{x:E,y:B}=d||{};if(!d||!n.isValid(E)||!n.isValid(B))throw new Error("invalid affine point");if(d instanceof D)throw new Error("projective point not allowed");return n.is0(E)&&n.is0(B)?D.ZERO:new D(E,B,n.ONE)}static fromBytes(d){let E=D.fromAffine(g(j(d,void 0,"point")));return E.assertValidity(),E}static fromHex(d){return D.fromBytes(Lr(d))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(d=6,E=!0){return T.setWindowSize(this,d),E||this.multiply(wa),this}assertValidity(){let d=this;if(d.is0()){if(t.allowInfinityPoint&&n.is0(d.X)&&n.eql(d.Y,n.ONE)&&n.is0(d.Z))return;throw new Error("bad point: ZERO")}if(k.has(d))return;let{x:E,y:B}=d.toAffine();if(!n.isValid(E)||!n.isValid(B))throw new Error("bad point: x or y not field elements");if(!I(E,B))throw new Error("bad point: equation left != right");if(!d.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");k.add(d)}hasEvenY(){let{y:d}=this.toAffine();if(!n.isOdd)throw new Error("Field doesn't support isOdd");return!n.isOdd(d)}equals(d){P(d);let{X:E,Y:B,Z:A}=this,{X:v,Y:y,Z:L}=d,O=n.eql(n.mul(E,L),n.mul(v,A)),F=n.eql(n.mul(B,L),n.mul(y,A));return O&&F}negate(){return new D(this.X,n.neg(this.Y),this.Z)}double(){let{X:d,Y:E,Z:B}=this,A=n.ZERO,v=n.ZERO,y=n.ZERO,L=n.mul(d,d),O=n.mul(E,E),F=n.mul(B,B),K=n.mul(d,E);return K=n.add(K,K),y=n.mul(d,B),y=n.add(y,y),A=S(y),v=n.mul(w,F),v=n.add(A,v),A=n.sub(O,v),v=n.add(O,v),v=n.mul(A,v),A=n.mul(K,A),y=n.mul(w,y),F=S(F),K=n.sub(L,F),K=S(K),K=n.add(K,y),y=n.add(L,L),L=n.add(y,L),L=n.add(L,F),L=n.mul(L,K),v=n.add(v,L),F=n.mul(E,B),F=n.add(F,F),L=n.mul(F,K),A=n.sub(A,L),y=n.mul(F,O),y=n.add(y,y),y=n.add(y,y),new D(A,v,y)}add(d){P(d);let{X:E,Y:B,Z:A}=this,{X:v,Y:y,Z:L}=d,O=n.ZERO,F=n.ZERO,K=n.ZERO,q=n.mul(E,v),V=n.mul(B,y),G=n.mul(A,L),ot=n.add(E,B),st=n.add(v,y);ot=n.mul(ot,st),st=n.add(q,V),ot=n.sub(ot,st),st=n.add(E,A);let mt=n.add(v,L);return st=n.mul(st,mt),mt=n.add(q,G),st=n.sub(st,mt),mt=n.add(B,A),O=n.add(y,L),mt=n.mul(mt,O),O=n.add(V,G),mt=n.sub(mt,O),K=S(st),O=n.mul(w,G),K=n.add(O,K),O=n.sub(V,K),K=n.add(V,K),F=n.mul(O,K),V=n.add(q,q),V=n.add(V,q),G=S(G),st=n.mul(w,st),V=n.add(V,G),G=n.sub(q,G),G=S(G),st=n.add(st,G),q=n.mul(V,st),F=n.add(F,q),q=n.mul(mt,st),O=n.mul(ot,O),O=n.sub(O,q),q=n.mul(ot,V),K=n.mul(mt,K),K=n.add(K,q),new D(O,F,K)}subtract(d){return P(d),this.add(d.negate())}is0(){return this.equals(D.ZERO)}multiply(d){if(!o.isValidNot0(d))throw new RangeError("invalid scalar: out of range");let{p:E,f:B}=T.mulSecret(this,d,i,H);return H([E,B])[0]}multiplyUnsafe(d){let E=this,B=d;if(!o.isValid(B))throw new RangeError("invalid scalar: out of range");if(B===be||E.is0())return D.ZERO;if(B===sr)return E;if(T.hasWindowSize(this))return T.mulUnsafe(E,B,H);let A=[],v=[];return U(A,v,E,B),_o(D,A,v)}mulAddUnsafe(d,E,B){P(E);let A=[],v=[];return U(A,v,this,d),U(A,v,E,B),_o(D,A,v)}toAffine(d){let E=this,B=d;if(B!=null&&!n.isValid(B))throw new RangeError('"invertedZ" expected valid field element');let{X:A,Y:v,Z:y}=E;if(n.eql(y,n.ONE))return{x:A,y:v};let L=E.is0();B==null&&(B=L?n.ONE:n.inv(y));let O=n.mul(A,B),F=n.mul(v,B),K=n.mul(y,B);if(L)return{x:n.ZERO,y:n.ZERO};if(!n.eql(K,n.ONE))throw new Error("invZ was invalid");return{x:O,y:F}}isTorsionFree(){let{isTorsionFree:d}=t;return i===sr?!0:d?d(D,this):T.mulUnsafe(this,a).is0()}clearCofactor(){let{clearCofactor:d}=t;return i===sr?this:d?d(D,this):this.multiplyUnsafe(i)}isSmallOrder(){return i===sr?this.is0():this.clearCofactor().is0()}toBytes(d=!0){return Ut(d,"isCompressed"),this.assertValidity(),b(D,this,d)}toHex(d=!0){return dn(this.toBytes(d))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let H=C=>To(D,C),T=new _r(D,u);return T.bits>=6&&D.BASE.precompute(6),Object.freeze(D.prototype),Object.freeze(D),D}function ah(r){return Uint8Array.of(r?2:3)}function ch(r,t){return{secretKey:t.BYTES,publicKey:1+r.BYTES,publicKeyUncompressed:1+2*r.BYTES,publicKeyHasPrefix:!0,signature:2*t.BYTES}}function Qm(r,t={}){ke(r);let{Fn:e}=r,n=t.randomBytes===void 0?ye:t.randomBytes,o=Object.assign(ch(r.Fp,e),{seed:Math.max(Io(e.ORDER),16)});function s(p){try{let m=e.fromBytes(p);return e.isValidNot0(m)}catch{return!1}}function i(p,m){let{publicKey:b,publicKeyUncompressed:g}=o;try{let w=p.length;return m===!0&&w!==b||m===!1&&w!==g?!1:!!r.fromBytes(p)}catch{return!1}}function a(p){return p=p===void 0?n(o.seed):p,Co(j(p,o.seed,"seed"),e.ORDER)}function c(p,m=!0){return r.BASE.multiply(e.fromBytes(p)).toBytes(m)}function f(p){let{secretKey:m,publicKey:b,publicKeyUncompressed:g}=o,w=e._lengths;if(!Ue(p))return;let S=j(p,void 0,"key").length,x=S===b||S===g,I=S===m||!!w?.includes(S);if(!(x&&I))return x}function u(p,m,b=!0){if(f(p)===!0)throw new Error("first arg must be private key");if(f(m)===!1)throw new Error("second arg must be public key");let g=e.fromBytes(p);return r.fromBytes(m).multiply(g).toBytes(b)}let h={isValidSecretKey:s,isValidPublicKey:i,randomSecretKey:a},l=Dr(a,c);return Object.freeze(h),Object.freeze(o),Object.freeze({getPublicKey:c,getSharedSecret:u,keygen:l,Point:r,utils:h,lengths:o})}function fh(r,t,e={}){ke(r);let n=t;Qe(n),Bt(e,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let o=Object.assign({},e),s=o.randomBytes===void 0?ye:o.randomBytes,i=o.hmac===void 0?(v,y)=>In(n,v,y):o.hmac,{Fp:a,Fn:c}=r,{ORDER:f,BITS:u}=c,h=Io(f),l=Ni(s,h),{keygen:p,getPublicKey:m,getSharedSecret:b,utils:g,lengths:w}=Qm(r,o),S={prehash:!0,lowS:typeof o.lowS=="boolean"?o.lowS:!0,format:"compact",extraEntropy:!1},x=f*sh+sr<a.ORDER;function I(v){let y=f>>sr;return v>y}function _(v,y){if(!c.isValidNot0(y))throw new Error(`invalid signature ${v}: out of range 1..Point.Fn.ORDER`);return y}function N(){if(!a.isOdd)throw new Error("Field doesn't support isOdd")}function M(v,y,L){return N(),(v===L?0:2)|Number(a.isOdd(y))}function P(){if(x)throw new Error('"recovered" sig type is not supported for cofactor >2 curves')}function R(v,y){xa(y);let L=w.signature,O=y==="compact"?L:y==="recovered"?L+1:void 0;return j(v,O)}class U{r;s;recovery;constructor(y,L,O){if(this.r=_("r",y),this.s=_("s",L),O!=null){if(P(),![0,1,2,3].includes(O))throw new Error("invalid recovery id");this.recovery=O}Object.freeze(this)}static fromBytes(y,L=S.format){R(y,L);let O;if(L==="der"){let{r:V,s:G}=ga.toSig(j(y));return new U(V,G)}L==="recovered"&&(O=y[0],L="compact",y=y.subarray(1));let F=w.signature/2,K=y.subarray(0,F),q=y.subarray(F,F*2);return new U(c.fromBytes(K),c.fromBytes(q),O)}static fromHex(y,L){return this.fromBytes(Lr(y),L)}assertRecovery(){let{recovery:y}=this;if(y==null)throw new Error("invalid recovery id: must be present");return y}addRecoveryBit(y){return new U(this.r,this.s,y)}recoverPublicKey(y){let{r:L,s:O}=this,F=this.assertRecovery(),K=F===2||F===3?L+f:L;if(!a.isValid(K))throw new Error("invalid recovery id: sig.r+curve.n != R.x");let q=a.toBytes(K),V=r.fromBytes(zt(ah((F&1)===0),q)),G=c.inv(K),ot=D(j(y,void 0,"msgHash")),st=c.create(-ot*G),mt=c.create(O*G),Nt=r.BASE.mulAddUnsafe(st,V,mt);if(Nt.is0())throw new Error("invalid recovery: point at infinify");return Nt.assertValidity(),Nt}hasHighS(){return I(this.s)}toBytes(y=S.format){if(xa(y),y==="der")return Lr(ga.hexFromSig(this));let{r:L,s:O}=this,F=c.toBytes(L),K=c.toBytes(O);return y==="recovered"?(P(),zt(Uint8Array.of(this.assertRecovery()),F,K)):zt(F,K)}toHex(y){return dn(this.toBytes(y))}}Object.freeze(U.prototype),Object.freeze(U);let k=o.bits2int===void 0?function(y){if(y.length>8192)throw new Error("input is too large");let L=oe(y),O=y.length*8-u;return O>0?L>>BigInt(O):L}:o.bits2int,D=o.bits2int_modN===void 0?function(y){return c.create(k(y))}:o.bits2int_modN,H=yn(u);function T(v){return ie("num < 2^"+u,v,be,H),c.toBytes(v)}function C(v,y){return j(v,void 0,"message"),y?j(n(v),void 0,"prehashed message"):v}function d(v,y,L){let{lowS:O,prehash:F,extraEntropy:K}=ba(L,S);v=C(v,F);let q=D(v),V=c.fromBytes(y);if(!c.isValidNot0(V))throw new Error("invalid private key");let G=[T(V),T(q)];if(K!=null&&K!==!1){let Nt=K===!0?s(w.secretKey):K;G.push(j(Nt,void 0,"extraEntropy"))}let ot=zt(...G),st=q;function mt(Nt){let de=k(Nt);if(!c.isValidNot0(de))return;let $e=r.BASE.multiply(de).toAffine(),Jt=c.create($e.x);if(Jt===be)return;let Mt;if(l!==void 0){let ve=oe(Co(l(h),f)),od=c.inv(c.mul(ve,de)),sd=c.mul(ve,st),id=c.mul(ve,V);Mt=c.create(od*c.create(sd+id*Jt))}else{let ve=bu(de,f);Mt=c.create(ve*c.create(st+Jt*V))}if(Mt===be)return;let mr=M($e.x,$e.y,Jt),tn=Mt;return O&&I(Mt)&&(tn=c.neg(Mt),mr^=1),new U(Jt,tn,x?void 0:mr)}return{seed:ot,k2sig:mt}}function E(v,y,L={}){let{seed:O,k2sig:F}=d(v,y,L);return uu(n.outputLen,c.BYTES,i)(O,F).toBytes(L.format)}function B(v,y,L,O={}){let{lowS:F,prehash:K,format:q}=ba(O,S);if(L=j(L,void 0,"publicKey"),y=C(y,K),!Ue(v)){let V=v instanceof U?", use sig.toBytes()":"";throw new Error("verify expects Uint8Array signature"+V)}R(v,q);try{let V=U.fromBytes(v,q),G=r.fromBytes(L);if(F&&V.hasHighS())return!1;let{r:ot,s:st}=V,mt=D(y),Nt=c.inv(st),de=c.create(mt*Nt),$e=c.create(ot*Nt),Jt=r.BASE.mulAddUnsafe(de,G,$e);if(Jt.is0())return!1;let Mt=Jt.toAffine();return!(c.create(Mt.x)!==ot||q==="recovered"&&V.recovery!==M(Mt.x,Mt.y,ot))}catch{return!1}}function A(v,y,L={}){let{prehash:O}=ba(L,S);return y=C(y,O),U.fromBytes(v,"recovered").recoverPublicKey(y).toBytes()}return Object.freeze({keygen:p,getPublicKey:m,getSharedSecret:b,utils:g,lengths:w,Point:r,sign:E,verify:B,recoverPublicKey:A,Signature:U,hash:n})}var Sa={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},Jm={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]};var uh=BigInt(2);function t0(r){let t=Sa.p,e=BigInt(3),n=BigInt(6),o=BigInt(11),s=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),f=r*r*r%t,u=f*f*r%t,h=it(u,e,t)*u%t,l=it(h,e,t)*u%t,p=it(l,uh,t)*f%t,m=it(p,o,t)*p%t,b=it(m,s,t)*m%t,g=it(b,a,t)*b%t,w=it(g,c,t)*g%t,S=it(w,a,t)*b%t,x=it(S,e,t)*u%t,I=it(x,i,t)*m%t,_=it(I,n,t)*f%t,N=it(_,uh,t);if(!Ea.eql(Ea.sqr(N),r))throw new Error("Cannot find square root");return N}var Ea=Tr(Sa.p,{sqrt:t0}),e0=ih(Sa,{Fp:Ea,endo:Jm}),Pr=fh(e0,ne);function hh(r,t,e,n){let o=an.digest(e instanceof Uint8Array?e:e.subarray());if(Ko(o))return o.then(({digest:s})=>(n?.signal?.throwIfAborted(),Pr.verify(t,s,r,{prehash:!1,format:"der"}))).catch(s=>{throw s.name==="AbortError"?s:new En(String(s))});try{return n?.signal?.throwIfAborted(),Pr.verify(t,o.digest,r,{prehash:!1,format:"der"})}catch(s){throw new En(String(s))}}var Zo=class{type="secp256k1";raw;_key;constructor(t){this._key=dh(t),this.raw=lh(this._key)}toMultihash(){return Wt.digest(Te(this))}toCID(){return yt.createV1(114,this.toMultihash())}toString(){return lt.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:gt(this.raw,t.raw)}verify(t,e,n){return hh(this._key,e,t,n)}};function Aa(r){return new Zo(r)}function lh(r){return Pr.Point.fromBytes(r).toBytes()}function dh(r){try{return Pr.Point.fromBytes(r),r}catch(t){throw new gr(String(t))}}function Cn(r,t){let{Type:e,Data:n}=ae.decode(r),o=n??new Uint8Array;switch(e){case ut.RSA:return da(o,t);case ut.Ed25519:return Hi(o);case ut.secp256k1:return Aa(o);case ut.ECDSA:return yi(o);default:throw new je}}function ph(r){let{Type:t,Data:e}=ae.decode(r.digest),n=e??new Uint8Array;switch(t){case ut.Ed25519:return Hi(n);case ut.secp256k1:return Aa(n);case ut.ECDSA:return yi(n);default:throw new je}}function Te(r){return ae.encode({Type:ut[r.type],Data:r.raw})}var mh=Symbol.for("nodejs.util.inspect.custom"),r0=114,Tn=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()})`}[Ks]=!0;toString(){return this.string==null&&(this.string=lt.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return yt.createV1(r0,this.multihash)}toJSON(){return this.toString()}equals(t){if(t==null)return!1;if(t instanceof Uint8Array)return gt(this.multihash.bytes,t);if(typeof t=="string")return this.toString()===t;if(t?.toMultihash()?.bytes!=null)return gt(this.multihash.bytes,t.toMultihash().bytes);throw new Error("not valid Id")}[mh](){return`PeerId(${this.toString()})`}},_n=class extends Tn{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},Dn=class extends Tn{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.publicKey}},Rn=class extends Tn{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.publicKey}},n0=2336,On=class{type="url";multihash;publicKey;url;constructor(t){this.url=t.toString(),this.multihash=Wt.digest(nt(this.url))}[mh](){return`PeerId(${this.url})`}[Ks]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return yt.createV1(n0,this.toMultihash())}toJSON(){return this.toString()}equals(t){return t==null?!1:(t instanceof Uint8Array&&(t=Y(t)),t.toString()===this.toString())}};var o0=114,yh=2336;function gh(r,t){let e;if(r.charAt(0)==="1"||r.charAt(0)==="Q")e=Ar(lt.decode(`z${r}`));else{if(r.startsWith("k51qzi5uqu5")||r.startsWith("kzwfwjn5ji4")||r.startsWith("k2k4r8")||r.startsWith("bafz"))return s0(yt.parse(r));if(t==null)throw new tt('Please pass a multibase decoder for strings that do not start with "1" or "Q"');e=Ar(t.decode(r))}return bh(e)}function va(r){if(r.type==="Ed25519")return new Dn({multihash:r.toCID().multihash,publicKey:r});if(r.type==="secp256k1")return new Rn({multihash:r.toCID().multihash,publicKey:r});if(r.type==="RSA")return new _n({multihash:r.toCID().multihash,publicKey:r});throw new je}function bh(r){if(a0(r))return new _n({multihash:r});if(i0(r))try{let t=ph(r);if(t.type==="Ed25519")return new Dn({multihash:r,publicKey:t});if(t.type==="secp256k1")return new Rn({multihash:r,publicKey:t})}catch{let e=Y(r.digest);return new On(new URL(e))}throw new so("Supplied PeerID Multihash is invalid")}function s0(r){if(r?.multihash==null||r.version==null||r.version===1&&r.code!==o0&&r.code!==yh)throw new oo("Supplied PeerID CID is invalid");if(r.code===yh){let t=Y(r.multihash.digest);return new On(new URL(t))}return bh(r.multihash)}function i0(r){return r.code===Wt.code}function a0(r){return r.code===an.code}function c0(r){let t=r.getComponents(),e={},n=0;return t[n]?.name==="ip6zone"&&(e.zone=`${t[n].value}`,n++),t[n]?.name==="ip4"||t[n]?.name==="ip6"||t[n]?.name==="dns"||t[n]?.name==="dns4"||t[n]?.name==="dns6"?(e.type=t[n].name,e.host=t[n].value,n++):t[n]?.name==="dnsaddr"&&(e.type=t[n].name,e.host=`_dnsaddr.${t[n].value}`,n++),(t[n]?.name==="tcp"||t[n]?.name==="udp")&&(e.protocol=t[n].name==="tcp"?"tcp":"udp",e.port=parseInt(`${t[n].value}`),n++),t[n]?.name==="ipcidr"&&(e.type==="ip4"?e.cidr=parseInt(`${t[n].value}`):e.type==="ip6"&&(e.cidr=`${t[n].value}`),n++),e.type==null||e.host==null?null:(t[n]?.name==="tls"&&t[n+1]?.name==="sni"&&(e.sni=t[n+1].value,n+=2),e)}function wh(r){let t=c0(r);if(t==null)throw new tt(`Multiaddr ${r} was not an IPv4, IPv6, DNS, DNS4, DNS6 or DNSADDR address`);return t}var Xo=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,o){return this.readAtomically(()=>{let s=0,i=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",f=2**(8*o)-1;for(;;){let u=this.readAtomically(()=>{let h=this.readChar();if(h===void 0)return;let l=Number.parseInt(h,t);if(!Number.isNaN(l))return l});if(u===void 0)break;if(s*=t,s+=u,s>f||(i+=1,e!==void 0&&i>e))return}if(i!==0)return!n&&c&&i>1?void 0:s})}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 o=n*2;if(n<e.length-3){let i=this.readSeparator(":",n,()=>this.readIPv4Addr());if(i!==void 0)return e[o]=i[0],e[o+1]=i[1],e[o+2]=i[2],e[o+3]=i[3],[o+4,!0]}let s=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(s===void 0)return[o,!1];e[o]=s>>8,e[o+1]=s&255}return[e.length,!1]};return this.readAtomically(()=>{let e=new Uint8Array(16),[n,o]=t(e);if(n===16)return e;if(o||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let s=new Uint8Array(14),i=16-(n+2),[a]=t(s.subarray(0,i));return e.set(s.subarray(0,a),16-a),e})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var f0=45,u0=15,Qo=new Xo;function xh(r){if(!(r.length>u0))return Qo.new(r).parseWith(()=>Qo.readIPv4Addr())}function Eh(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>f0))return Qo.new(r).parseWith(()=>Qo.readIPv6Addr())}function Jo(r){return!!xh(r)}function Sh(r){return!!Eh(r)}var St=class extends Error{static name="InvalidMultiaddrError";name="InvalidMultiaddrError"},we=class extends Error{static name="ValidationError";name="ValidationError"},ts=class extends Error{static name="InvalidParametersError";name="InvalidParametersError"},es=class extends Error{static name="UnknownProtocolError";name="UnknownProtocolError"};function La(r){return t=>Y(t,r)}function Ia(r){return t=>nt(t,r)}function Ur(r){return new DataView(r.buffer).getUint16(r.byteOffset).toString()}function ir(r){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,typeof r=="string"?parseInt(r):r),new Uint8Array(t)}function Ah(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=nt(t[0],"base32"),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=ir(n);return ee([e,o],e.length+o.length)}function vh(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=Ie.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 o=ir(n);return ee([e,o],e.length+o.length)}function Ca(r){let t=r.subarray(0,r.length-2),e=r.subarray(r.length-2),n=Y(t,"base32"),o=Ur(e);return`${n}:${o}`}var Ta=function(r){r=r.toString().trim();let t=new Uint8Array(4);return r.split(/\./g).forEach((e,n)=>{let o=parseInt(e,10);if(isNaN(o)||o<0||o>255)throw new St("Invalid byte value in IP address");t[n]=o}),t},Bh=function(r){let t=0;r=r.toString().trim();let e=r.split(":",8),n;for(n=0;n<e.length;n++){let s=Jo(e[n]),i;s&&(i=Ta(e[n]),e[n]=Y(i.subarray(0,2),"base16")),i!=null&&++n<8&&e.splice(n,0,Y(i.subarray(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 s=[n,1];for(n=9-e.length;n>0;n--)s.push("0");e.splice.apply(e,s)}let o=new Uint8Array(t+16);for(n=0;n<e.length;n++){e[n]===""&&(e[n]="0");let s=parseInt(e[n],16);if(isNaN(s)||s<0||s>65535)throw new St("Invalid byte value in IP address");o[t++]=s>>8&255,o[t++]=s&255}return o},Lh=function(r){if(r.byteLength!==4)throw new St("IPv4 address was incorrect length");let t=[];for(let e=0;e<r.byteLength;e++)t.push(r[e]);return t.join(".")},Ih=function(r){if(r.byteLength!==16)throw new St("IPv6 address was incorrect length");let t=[];for(let n=0;n<r.byteLength;n+=2){let o=r[n],s=r[n+1],i=`${o.toString(16).padStart(2,"0")}${s.toString(16).padStart(2,"0")}`;t.push(i)}let e=t.join(":");try{let n=new URL(`http://[${e}]`);return n.hostname.substring(1,n.hostname.length-1)}catch{throw new St(`Invalid IPv6 address "${e}"`)}};function Ch(r){try{let t=new URL(`http://[${r}]`);return t.hostname.substring(1,t.hostname.length-1)}catch{throw new St(`Invalid IPv6 address "${r}"`)}}var Ba=Object.values(Ye).map(r=>r.decoder),h0=(function(){let r=Ba[0].or(Ba[1]);return Ba.slice(2).forEach(t=>r=r.or(t)),r})();function Th(r){return h0.decode(r)}function _h(r){return t=>r.encoder.encode(t)}function l0(r){if(parseInt(r).toString()!==r)throw new we("Value must be an integer")}function d0(r){if(r<0)throw new we("Value must be a positive integer, or zero")}function p0(r){return t=>{if(t>r)throw new we(`Value must be smaller than or equal to ${r}`)}}function m0(...r){return t=>{for(let e of r)e(t)}}var Pn=m0(l0,d0,p0(65535));var xt=-1,_a=class{protocolsByCode=new Map;protocolsByName=new Map;getProtocol(t){let e;if(typeof t=="string"?e=this.protocolsByName.get(t):e=this.protocolsByCode.get(t),e==null)throw new es(`Protocol ${t} was unknown`);return e}addProtocol(t){this.protocolsByCode.set(t.code,t),this.protocolsByName.set(t.name,t),t.aliases?.forEach(e=>{this.protocolsByName.set(e,t)})}removeProtocol(t){let e=this.protocolsByCode.get(t);e!=null&&(this.protocolsByCode.delete(e.code),this.protocolsByName.delete(e.name),e.aliases?.forEach(n=>{this.protocolsByName.delete(n)}))}},Ee=new _a,T0=[{code:4,name:"ip4",size:32,valueToBytes:Ta,bytesToValue:Lh,validate:r=>{if(!Jo(r))throw new we(`Invalid IPv4 address "${r}"`)}},{code:6,name:"tcp",size:16,valueToBytes:ir,bytesToValue:Ur,validate:Pn},{code:273,name:"udp",size:16,valueToBytes:ir,bytesToValue:Ur,validate:Pn},{code:33,name:"dccp",size:16,valueToBytes:ir,bytesToValue:Ur,validate:Pn},{code:41,name:"ip6",size:128,valueToBytes:Bh,bytesToValue:Ih,stringToValue:Ch,validate:r=>{if(!Sh(r))throw new we(`Invalid IPv6 address "${r}"`)}},{code:42,name:"ip6zone",size:xt},{code:43,name:"ipcidr",size:8,bytesToValue:La("base10"),valueToBytes:Ia("base10")},{code:53,name:"dns",size:xt},{code:54,name:"dns4",size:xt},{code:55,name:"dns6",size:xt},{code:56,name:"dnsaddr",size:xt},{code:132,name:"sctp",size:16,valueToBytes:ir,bytesToValue:Ur,validate:Pn},{code:301,name:"udt"},{code:302,name:"utp"},{code:400,name:"unix",size:xt,stringToValue:r=>decodeURIComponent(r),valueToString:r=>encodeURIComponent(r)},{code:421,name:"p2p",aliases:["ipfs"],size:xt,bytesToValue:La("base58btc"),valueToBytes:r=>r.startsWith("Q")||r.startsWith("1")?Ia("base58btc")(r):yt.parse(r).multihash.bytes},{code:444,name:"onion",size:96,bytesToValue:Ca,valueToBytes:Ah},{code:445,name:"onion3",size:296,bytesToValue:Ca,valueToBytes:vh},{code:446,name:"garlic64",size:xt},{code:447,name:"garlic32",size:xt},{code:448,name:"tls"},{code:449,name:"sni",size:xt},{code:454,name:"noise"},{code:460,name:"quic"},{code:461,name:"quic-v1"},{code:465,name:"webtransport"},{code:466,name:"certhash",size:xt,bytesToValue:_h(ni),valueToBytes:Th},{code:480,name:"http"},{code:481,name:"http-path",size:xt,stringToValue:r=>`/${decodeURIComponent(r)}`,valueToString:r=>encodeURIComponent(r.substring(1))},{code:443,name:"https"},{code:477,name:"ws"},{code:478,name:"wss"},{code:479,name:"p2p-websocket-star"},{code:277,name:"p2p-stardust"},{code:275,name:"p2p-webrtc-star"},{code:276,name:"p2p-webrtc-direct"},{code:280,name:"webrtc-direct"},{code:281,name:"webrtc"},{code:290,name:"p2p-circuit"},{code:777,name:"memory",size:xt}];T0.forEach(r=>{Ee.addProtocol(r)});function Dh(r){let t=[],e=0;for(;e<r.length;){let n=rr(r,e),o=Ee.getProtocol(n),s=It(n),i=_0(o,r,e+s),a=0;i>0&&o.size===xt&&(a=It(i));let c=s+a+i,f={code:n,name:o.name,bytes:Et(r.subarray(e,e+c))};if(i>0){let u=e+s+a,h=r.subarray(u,u+i);f.value=o.bytesToValue?.(h)??Y(h)}t.push(f),e+=c}return t}function Rh(r){let t=0,e=[];for(let n of r){if(n.bytes==null){let o=Ee.getProtocol(n.code),s=It(n.code),i,a=0,c=0;n.value!=null&&(i=o.valueToBytes?.(n.value)??nt(n.value),a=i.byteLength,o.size===xt&&(c=It(a)));let f=new Uint8Array(s+c+a),u=0;Rr(n.code,f,u),u+=s,i!=null&&(o.size===xt&&(Rr(a,f,u),u+=c),f.set(i,u)),n.bytes=f}e.push(n.bytes),t+=n.bytes.byteLength}return ee(e,t)}function Oh(r){if(r.charAt(0)!=="/")throw new St('String multiaddr must start with "/"');let t=[],e="protocol",n="",o="";for(let s=1;s<r.length;s++){let i=r.charAt(s);i!=="/"&&(e==="protocol"?o+=r.charAt(s):n+=r.charAt(s));let a=s===r.length-1;if(i==="/"||a){let c=Ee.getProtocol(o);if(e==="protocol"){if(c.size==null||c.size===0){t.push({code:c.code,name:c.name}),n="",o="",e="protocol";continue}else if(a)throw new St(`Component ${o} was missing value`);e="value"}else if(e==="value"){let f={code:c.code,name:c.name};if(c.size!=null&&c.size!==0){if(n==="")throw new St(`Component ${o} was missing value`);f.value=c.stringToValue?.(n)??n}t.push(f),n="",o="",e="protocol"}}}if(o!==""&&n!=="")throw new St("Incomplete multiaddr");return t}function Ph(r){return`/${r.flatMap(t=>{if(t.value==null)return t.name;let e=Ee.getProtocol(t.code);if(e==null)throw new St(`Unknown protocol code ${t.code}`);return[t.name,e.valueToString?.(t.value)??t.value]}).join("/")}`}function _0(r,t,e){return r.size==null||r.size===0?0:r.size>0?r.size/8:rr(t,e)}var D0=Symbol.for("nodejs.util.inspect.custom"),Ga=Symbol.for("@multiformats/multiaddr");function R0(r){if(r==null&&(r="/"),Uh(r))return r.getComponents();if(r instanceof Uint8Array)return Dh(r);if(typeof r=="string")return r=r.replace(/\/(\/)+/,"/").replace(/(\/)+$/,""),r===""&&(r="/"),Oh(r);if(Array.isArray(r))return r;throw new St("Must be a string, Uint8Array, Component[], or another Multiaddr")}var Wa=class r{[Ga]=!0;#t;#e;#r;constructor(t="/",e={}){this.#t=R0(t),e.validate!==!1&&O0(this)}get bytes(){return this.#r==null&&(this.#r=Rh(this.#t)),this.#r}toString(){return this.#e==null&&(this.#e=Ph(this.#t)),this.#e}toJSON(){return this.toString()}getComponents(){return[...this.#t.map(t=>({...t}))]}encapsulate(t){let e=new r(t);return new r([...this.#t,...e.getComponents()],{validate:!1})}decapsulate(t){let e=t.toString(),n=this.toString(),o=n.lastIndexOf(e);if(o<0)throw new ts(`Address ${this.toString()} does not contain subaddress: ${e}`);return new r(n.slice(0,o),{validate:!1})}decapsulateCode(t){let e;for(let n=this.#t.length-1;n>-1;n--)if(this.#t[n].code===t){e=n;break}return new r(this.#t.slice(0,e),{validate:!1})}equals(t){return gt(this.bytes,t.bytes)}[D0](){return`Multiaddr(${this.toString()})`}};function O0(r){r.getComponents().forEach(t=>{let e=Ee.getProtocol(t.code);t.value!=null&&e.validate?.(t.value)})}function Uh(r){return!!r?.[Ga]}var at=r=>({match:t=>{let e=t[0];return e==null||e.code!==r||e.value!=null?!1:t.slice(1)}}),z=(r,t)=>({match:e=>{let n=e[0];return n?.code!==r||n.value==null||t!=null&&n.value!==t?!1:e.slice(1)}}),Nh=r=>({match:t=>r.match(t)===!1?t:!1}),$=r=>({match:t=>{let e=r.match(t);return e===!1?t:e}}),Tt=(...r)=>({match:t=>{let e;for(let n of r){let o=n.match(t);o!==!1&&(e==null||o.length<e.length)&&(e=o)}return e??!1}}),Z=(...r)=>({match:t=>{for(let e of r){let n=e.match(t);if(n===!1)return!1;t=n}return t}});function ct(...r){function t(o){if(o==null)return!1;let s=o.getComponents();for(let i of r){let a=i.match(s);if(a===!1)return!1;s=a}return s}function e(o){return t(o)!==!1}function n(o){let s=t(o);return s===!1?!1:s.length===0}return{matchers:r,matches:e,exactMatch:n}}var P0=z(421),BS=ct(P0),cs=z(54),fs=z(55),us=z(56),Za=z(53),LS=ct(cs,$(z(421))),IS=ct(fs,$(z(421))),CS=ct(us,$(z(421))),TS=ct(Tt(Za,us,cs,fs),$(z(421))),Mh=Z(z(4),$(z(43))),kh=Z($(z(42)),z(41),$(z(43))),Xa=Tt(Mh,kh),Kr=Tt(Xa,Za,cs,fs,us),_S=ct(Tt(Xa,Z(Tt(Za,us,cs,fs),$(z(421))))),DS=ct(Mh),RS=ct(kh),OS=ct(Xa),Qa=Z(Kr,z(6)),Un=Z(Kr,z(273)),PS=ct(Z(Qa,$(z(421)))),US=ct(Un),Ja=Z(Un,at(460),$(z(421))),hs=Z(Un,at(461),$(z(421))),U0=Tt(Ja,hs),NS=ct(Ja),MS=ct(hs),Ya=Tt(Kr,Qa,Un,Ja,hs),Kh=Tt(Z(Ya,at(477),$(z(421)))),kS=ct(Kh),Fh=Tt(Z(Ya,at(478),$(z(421))),Z(Ya,at(448),$(z(449)),at(477),$(z(421)))),KS=ct(Fh),Hh=Z(Un,at(280),$(z(466)),$(z(466)),$(z(421))),FS=ct(Hh),zh=Z(hs,at(465),$(z(466)),$(z(466)),$(z(421))),ls=ct(zh),as=Tt(Kh,Fh,Z(Qa,$(z(421))),Z(U0,$(z(421))),Z(Kr,$(z(421))),Hh,zh,z(421)),HS=ct(as),N0=Z($(as),at(290),Nh(at(281)),$(z(421))),zS=ct(N0),M0=Tt(Z(as,at(290),at(281),$(z(421))),Z(as,at(281),$(z(421))),Z(at(281),$(z(421)))),VS=ct(M0),k0=Z(Kr,Tt(Z(z(6,"80")),Z(z(6),at(480)),at(480)),$(z(481)),$(z(421))),qS=ct(k0),K0=Z(Kr,Tt(Z(z(6,"443")),Z(z(6,"443"),at(480)),Z(z(6),at(443)),Z(z(6),at(448),at(480)),Z(at(448),at(480)),at(448),at(443)),$(z(481)),$(z(421))),$S=ct(K0),F0=Tt(Z(z(777),$(z(421)))),jS=ct(F0),H0=Tt(Z(z(400),$(z(421)))),WS=ct(H0);function ds(){let r={};return r.promise=new Promise((t,e)=>{r.resolve=t,r.reject=e}),r}var ps=class{buffer;mask;top;btm;next;constructor(t){if(!(t>0)||(t-1&t)!==0)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}},Fr=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new ps(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 ps(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 tc=class extends Error{type;code;constructor(t,e){super(t??"The operation was aborted"),this.type="aborted",this.code=e??"ABORT_ERR"}};function ms(r={}){return z0(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 z0(r,t){t=t??{};let e=t.onEnd,n=new Fr,o,s,i,a=ds(),c=async()=>{try{return n.isEmpty()?i?{done:!0}:await new Promise((g,w)=>{s=S=>{s=null,n.push(S);try{g(r(n))}catch(x){w(x)}return o}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=ds()})}},f=g=>s!=null?s(g):(n.push(g),o),u=g=>(n=new Fr,s!=null?s({error:g}):(n.push({error:g}),o)),h=g=>{if(i)return o;if(t?.objectMode!==!0&&g?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return f({done:!1,value:g})},l=g=>i?o:(i=!0,g!=null?u(g):f({done:!0})),p=()=>(n=new Fr,l(),{done:!0}),m=g=>(l(g),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:c,return:p,throw:m,push:h,end:l,get readableLength(){return n.size},onEmpty:async g=>{let w=g?.signal;if(w?.throwIfAborted(),n.isEmpty())return;let S,x;w!=null&&(S=new Promise((I,_)=>{x=()=>{_(new tc)},w.addEventListener("abort",x)}));try{await Promise.race([a.promise,S])}finally{x!=null&&w!=null&&w?.removeEventListener("abort",x)}}},e==null)return o;let b=o;return o={[Symbol.asyncIterator](){return this},next(){return b.next()},throw(g){return b.throw(g),e!=null&&(e(g),e=void 0),{done:!0}},return(){return b.return(),e!=null&&(e(),e=void 0),{done:!0}},push:h,end(g){return b.end(g),e!=null&&(e(g),e=void 0),o},get readableLength(){return b.readableLength},onEmpty:g=>b.onEmpty(g)},o}var ec=class r extends Error{name="TimeoutError";constructor(t,e){super(t,e),Error.captureStackTrace?.(this,r)}},Vh=r=>r.reason??new DOMException("This operation was aborted.","AbortError");function rc(r,t){let{milliseconds:e,fallback:n,message:o,customTimers:s={setTimeout,clearTimeout},signal:i}=t,a,c,u=new Promise((h,l)=>{if(typeof e!="number"||Math.sign(e)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${e}\``);if(i?.aborted){l(Vh(i));return}if(i&&(c=()=>{l(Vh(i))},i.addEventListener("abort",c,{once:!0})),r.then(h,l),e===Number.POSITIVE_INFINITY)return;let p=new ec;a=s.setTimeout.call(void 0,()=>{if(n){try{h(n())}catch(m){l(m)}return}typeof r.cancel=="function"&&r.cancel(),o===!1?h():o instanceof Error?l(o):(p.message=o??`Promise timed out after ${e} milliseconds`,l(p))},e)}).finally(()=>{u.clear(),c&&i&&i.removeEventListener("abort",c)});return u.clear=()=>{s.clearTimeout.call(void 0,a),a=void 0},u}var V0=r=>{let t=r.addEventListener||r.on||r.addListener,e=r.removeEventListener||r.off||r.removeListener;if(!t||!e)throw new TypeError("Emitter is not compatible");return{addListener:t.bind(r),removeListener:e.bind(r)}};function q0(r,t,e){let n,o=new Promise((s,i)=>{if(e={rejectionEvents:["error"],multiArgs:!1,rejectionMultiArgs:!1,resolveImmediately:!1,...e},!(e.count>=0&&(e.count===Number.POSITIVE_INFINITY||Number.isInteger(e.count))))throw new TypeError("The `count` option should be at least 0 or more");e.signal?.throwIfAborted();let a=[t].flat(),c=[],{addListener:f,removeListener:u}=V0(r),h=async(...p)=>{let m=e.multiArgs?p:p[0];if(e.filter)try{if(!await e.filter(m))return}catch(b){n(),i(b);return}c.push(m),e.count===c.length&&(n(),s(c))},l=(...p)=>{n(),i(e.rejectionMultiArgs?p:p[0])};n=()=>{for(let p of a)u(p,h);for(let p of e.rejectionEvents)a.includes(p)||u(p,l)};for(let p of a)f(p,h);for(let p of e.rejectionEvents)a.includes(p)||f(p,l);e.signal&&e.signal.addEventListener("abort",()=>{l(e.signal.reason)},{once:!0}),e.resolveImmediately&&s(c)});if(o.cancel=n,typeof e.timeout=="number"){let s=rc(o,{milliseconds:e.timeout});return s.cancel=()=>{n(),s.clear()},s}return o}function Fe(r,t,e){typeof e=="function"&&(e={filter:e}),e={...e,count:1,resolveImmediately:!1};let n=q0(r,t,e),o=n.then(s=>s[0]);return o.cancel=n.cancel,o}var cr=class extends Error{static name="UnexpectedEOFError";name="UnexpectedEOFError"},ys=class extends Error{static name="MaxEarlyStreamsError";name="MaxEarlyStreamsError"},gs=class extends Error{static name="StreamClosedError";name="StreamClosedError"};function $0(r){return r.reason}async function $t(r,t,e){if(t==null)return r;let n=e?.translateError??$0;if(t.aborted)return r.catch(()=>{}),Promise.reject(n(t));let o;try{return await Promise.race([r,new Promise((s,i)=>{o=()=>{i(n(t))},t.addEventListener("abort",o)})])}finally{o!=null&&t.removeEventListener("abort",o)}}var j0=Math.pow(2,20)*4,ce=class extends wr{status;timeline;inactivityTimeout;maxReadBufferLength;maxWriteBufferLength;log;direction;maxMessageSize;readStatus;writeStatus;remoteReadStatus;remoteWriteStatus;writableNeedsDrain;readBuffer;writeBuffer;sendingData;onDrainPromise;constructor(t){super(),this.status="open",this.log=t.log,this.direction=t.direction??"outbound",this.inactivityTimeout=t.inactivityTimeout??12e4,this.maxReadBufferLength=t.maxReadBufferLength??j0,this.maxWriteBufferLength=t.maxWriteBufferLength,this.maxMessageSize=t.maxMessageSize,this.readBuffer=new ft,this.writeBuffer=new ft,this.readStatus="readable",this.remoteReadStatus="readable",this.writeStatus="writable",this.remoteWriteStatus="writable",this.sendingData=!1,this.writableNeedsDrain=!1,this.timeline={open:Date.now()},this.processSendQueue=this.processSendQueue.bind(this);let e=()=>{this.writableNeedsDrain&&(this.log.trace("drain event received, continue sending data"),this.writableNeedsDrain=!1,queueMicrotask(()=>{try{this.processSendQueue()}catch(o){this.log.error("processSendQueue threw - %e",o)}})),this.onDrainPromise?.resolve()};this.addEventListener("drain",e);let n=o=>{this.onDrainPromise?.reject(o.error??new gs)};this.addEventListener("close",n)}get readBufferLength(){return this.readBuffer.byteLength}get writeBufferLength(){return this.writeBuffer.byteLength}async onDrain(t){return this.writableNeedsDrain!==!0?Promise.resolve():(this.onDrainPromise==null&&(this.onDrainPromise=Promise.withResolvers()),$t(this.onDrainPromise.promise,t?.signal))}async*[Symbol.asyncIterator](){if(this.readStatus!=="readable"&&this.readStatus!=="paused")return;let t=ms(),e=s=>{t.push(s.data)};this.addEventListener("message",e);let n=s=>{t.end(s.error)};this.addEventListener("close",n);let o=()=>{t.end()};this.addEventListener("remoteCloseWrite",o);try{yield*t}finally{this.removeEventListener("message",e),this.removeEventListener("close",n),this.removeEventListener("remoteCloseWrite",o)}}isReadable(){return this.status==="open"}send(t){if(this.writeStatus==="closed"||this.writeStatus==="closing")throw new Be(`Cannot write to a stream that is ${this.writeStatus}`);return this.log.trace("append %d bytes to write buffer",t.byteLength),this.writeBuffer.append(t),this.processSendQueue()}abort(t){if(!(this.status==="aborted"||this.status==="reset"||this.status==="closed")){this.log.error("abort with error - %e",t),this.status="aborted",this.readBuffer.byteLength>0&&this.readBuffer.consume(this.readBuffer.byteLength),this.writeBuffer.byteLength>0&&(this.writeBuffer.consume(this.writeBuffer.byteLength),this.safeDispatchEvent("idle")),this.writeStatus="closed",this.remoteWriteStatus="closed",this.readStatus="closed",this.remoteReadStatus="closed",this.timeline.close=Date.now();try{this.sendReset(t)}catch(e){this.log("failed to send reset to remote - %e",e)}this.dispatchEvent(new ao(t))}}pause(){if(this.readStatus==="closed"||this.readStatus==="closing")throw new Be("Cannot pause a stream that is closing/closed");this.readStatus!=="paused"&&(this.readStatus="paused",this.sendPause())}resume(){if(this.readStatus==="closed"||this.readStatus==="closing")throw new Be("Cannot resume a stream that is closing/closed");this.readStatus!=="readable"&&(this.readStatus="readable",this.dispatchReadBuffer(),this.sendResume())}push(t){if(this.readStatus==="closed"||this.readStatus==="closing")throw new Be(`Cannot push data onto a stream that is ${this.readStatus}`);if(t.byteLength!==0){if(this.readBuffer.append(t),this.readStatus==="paused"||this.listenerCount("message")===0){this.checkReadBufferLength();return}setTimeout(()=>{this.dispatchReadBuffer()},0)}}unshift(t){if(this.readStatus==="closed"||this.readStatus==="closing")throw new Be(`Cannot push data onto a stream that is ${this.readStatus}`);if(t.byteLength!==0){if(this.readBuffer.prepend(t),this.readStatus==="paused"||this.listenerCount("message")===0){this.checkReadBufferLength();return}setTimeout(()=>{this.dispatchReadBuffer()},0)}}onData(t){if(t.byteLength!==0){if(this.readStatus==="closing"||this.readStatus==="closed"){this.log("ignoring data - read status %s",this.readStatus);return}this.readBuffer.append(t),this.dispatchReadBuffer()}}addEventListener(...t){super.addEventListener.apply(this,t),t[0]==="message"&&this.readBuffer.byteLength>0&&queueMicrotask(()=>{this.dispatchReadBuffer()})}onRemoteReset(){this.log("remote reset"),this.status="reset",this.writeStatus="closed",this.remoteWriteStatus="closed",this.remoteReadStatus="closed",this.timeline.close=Date.now(),this.readBuffer.byteLength===0&&(this.readStatus="closed");let t=new ro;this.dispatchEvent(new co(t))}onTransportClosed(t){this.log("transport closed"),this.readStatus==="readable"&&this.readBuffer.byteLength===0&&(this.log("close readable end after transport closed and read buffer is empty"),this.readStatus="closed"),this.remoteReadStatus!=="closed"&&(this.remoteReadStatus="closed"),this.remoteWriteStatus!=="closed"&&(this.remoteWriteStatus="closed"),this.writeStatus!=="closed"&&(this.writeStatus="closed"),t!=null?this.abort(t):(this.status==="open"||this.status==="closing")&&(this.timeline.close=Date.now(),this.status="closed",this.writeStatus="closed",this.remoteWriteStatus="closed",this.remoteReadStatus="closed",this.dispatchEvent(new br))}onRemoteCloseWrite(){this.remoteWriteStatus!=="closed"&&(this.log.trace("on remote close write"),this.remoteWriteStatus="closed",this.safeDispatchEvent("remoteCloseWrite"),this.writeStatus==="closed"&&this.onTransportClosed())}onRemoteCloseRead(){this.log.trace("on remote close read"),this.remoteReadStatus="closed",this.writeBuffer.byteLength>0&&(this.writeBuffer.consume(this.writeBuffer.byteLength),this.safeDispatchEvent("idle"))}processSendQueue(){if(this.writableNeedsDrain)return this.log.trace("not processing send queue as drain is required"),this.checkWriteBufferLength(),!1;if(this.writeBuffer.byteLength===0)return this.log.trace("not processing send queue as no bytes to send"),!0;if(this.sendingData)return this.log.trace("not processing send queue as already sending data"),!0;if(this.writeStatus!=="writable"&&this.writeStatus!=="closing")return this.log.trace("not processing send queue as stream is %s",this.writeStatus),!1;this.sendingData=!0,this.log.trace("processing send queue with %d queued bytes",this.writeBuffer.byteLength);try{let t=!0,e=this.writeBuffer.byteLength,n=0;for(;this.writeBuffer.byteLength>0;){let o=Math.min(this.maxMessageSize??this.writeBuffer.byteLength,this.writeBuffer.byteLength);if(o===0){t=!1;break}let s=this.writeBuffer.sublist(0,o),i=new ft(s);this.writeBuffer.consume(s.byteLength);let a;try{a=this.sendData(s)}catch(c){throw this.writeBuffer.prepend(i),this.abort(c),c}if(t=a.canSendMore,n+=a.sentBytes,a.sentBytes!==i.byteLength&&(i.consume(a.sentBytes),this.writeBuffer.prepend(i)),!t)break}return t||(this.log.trace("sent %d/%d bytes, pausing sending because underlying stream is full, %d bytes left in the write buffer",n,e,this.writeBuffer.byteLength),this.writableNeedsDrain=!0,this.checkWriteBufferLength()),this.writeBuffer.byteLength===0&&this.safeDispatchEvent("idle"),t}finally{this.sendingData=!1}}dispatchReadBuffer(){try{if(this.listenerCount("message")===0){this.log.trace("not dispatching pause buffer as there are no listeners for the message event");return}if(this.readBuffer.byteLength===0){this.log.trace("not dispatching pause buffer as there is no data to dispatch");return}if(this.readStatus==="paused"){this.log.trace("not dispatching pause buffer we are paused");return}if(this.readStatus==="closing"||this.readStatus==="closed"){this.log("dropping %d bytes because the readable end is %s",this.readBuffer.byteLength,this.readStatus),this.readBuffer.consume(this.readBuffer.byteLength);return}let t=this.readBuffer.sublist();this.readBuffer.consume(t.byteLength),this.dispatchEvent(new io(t))}finally{this.readBuffer.byteLength===0&&this.remoteWriteStatus==="closed"&&(this.log("close readable end after dispatching read buffer and remote writable end is closed"),this.readStatus="closed"),this.checkReadBufferLength()}}checkReadBufferLength(){this.readBuffer.byteLength>this.maxReadBufferLength&&this.abort(new en(`Read buffer length of ${this.readBuffer.byteLength} exceeded limit of ${this.maxReadBufferLength}, read status is ${this.readStatus}`))}checkWriteBufferLength(){this.maxWriteBufferLength!=null&&this.writeBuffer.byteLength>this.maxWriteBufferLength&&this.abort(new en(`Write buffer length of ${this.writeBuffer.byteLength} exceeded limit of ${this.maxWriteBufferLength}, write status is ${this.writeStatus}`))}onMuxerNeedsDrain(){this.writableNeedsDrain=!0}onMuxerDrain(){this.safeDispatchEvent("drain")}};var bs=class extends ce{remoteAddr;metricPrefix;metrics;constructor(t){super(t),this.metricPrefix=t.metricPrefix??"",this.metrics=t.metrics,this.remoteAddr=t.remoteAddr,this.addEventListener("close",e=>{this.metrics?.increment({[`${this.metricPrefix}end`]:!0}),e.error!=null?e.local?this.metrics?.increment({[`${this.metricPrefix}abort`]:!0}):this.metrics?.increment({[`${this.metricPrefix}reset`]:!0}):e.local?this.metrics?.increment({[`${this.metricPrefix}_local_close`]:!0}):this.metrics?.increment({[`${this.metricPrefix}_remote_close`]:!0})})}async close(t){this.status==="open"&&(this.status="closing",this.writeStatus="closing",this.remoteWriteStatus="closing",this.remoteReadStatus="closing",(this.sendingData||this.writeBuffer.byteLength>0)&&(this.log("waiting for write queue to become idle before closing writable end of stream, %d unsent bytes",this.writeBuffer.byteLength),await Fe(this,"idle",{...t,rejectionEvents:["close"]})),this.writableNeedsDrain&&(this.log("waiting for write queue to drain before closing writable end of stream, %d unsent bytes",this.writeBuffer.byteLength),await Fe(this,"drain",{...t,rejectionEvents:["close"]})),await this.sendClose(t),this.onTransportClosed())}};function qh(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}var ws=class extends wr{streams;protocol;status;log;maConn;streamOptions;earlyStreams;maxEarlyStreams;metrics;constructor(t,e){super(),this.maConn=t,this.protocol=e.protocol,this.streams=[],this.earlyStreams=[],this.status="open",this.log=t.log.newScope(e.name),this.streamOptions=e.streamOptions,this.maxEarlyStreams=e.maxEarlyStreams??10,this.metrics=e.metrics;let n=i=>{try{this.onData(i.data)}catch(a){this.abort(a),this.maConn.abort(a)}};this.maConn.addEventListener("message",n);let o=()=>{this.log("underlying stream drained, signal %d streams to continue writing",this.streams.length),this.streams.forEach(i=>{i.onMuxerDrain()})};this.maConn.addEventListener("drain",o);let s=()=>{this.log("underlying stream closed with status %s and %d streams",this.status,this.streams.length),this.onTransportClosed()};this.maConn.addEventListener("close",s)}send(t){let e=this.maConn.send(t);return e===!1&&(this.log("underlying stream saturated, signal %d streams to pause writing",this.streams.length),this.streams.forEach(n=>{n.onMuxerNeedsDrain()})),e}async close(t){this.status==="closed"||this.status==="closing"||(this.status="closing",await $t(Promise.all([...this.streams].map(async e=>{await e.close(t)})),t?.signal),this.status="closed")}abort(t){this.status!=="closed"&&(this.status="closing",[...this.streams].forEach(e=>{e.abort(t)}),this.status="closed")}onTransportClosed(t){this.status="closing";try{[...this.streams].forEach(e=>{e.onTransportClosed(t)})}catch(e){this.abort(e)}this.status="closed"}async createStream(t){if(this.status!=="open")throw new eo;let e=this.onCreateStream({...this.streamOptions,...t});return qh(e)&&(e=await e),this.streams.push(e),this.cleanUpStream(e),e}onRemoteStream(t){if(this.streams.push(t),this.cleanUpStream(t),this.listenerCount("stream")===0){this.earlyStreams.push(t),this.earlyStreams.length>this.maxEarlyStreams&&this.abort(new ys(`Too many early streams were opened - ${this.earlyStreams.length}/${this.maxEarlyStreams}`));return}this.safeDispatchEvent("stream",{detail:t})}cleanUpStream(t){let e=n=>{let o=this.streams.findIndex(s=>s===t);o!==-1&&this.streams.splice(o,1),n.error!=null?n.local?this.metrics?.increment({[`${t.direction}_stream_reset`]:!0}):this.metrics?.increment({[`${t.direction}_stream_abort`]:!0}):this.metrics?.increment({[`${t.direction}_stream_end`]:!0})};t.addEventListener("close",e),this.metrics?.increment({[`${t.direction}_stream`]:!0})}addEventListener(...t){super.addEventListener.apply(this,t),t[0]==="stream"&&this.earlyStreams.length>0&&queueMicrotask(()=>{this.earlyStreams.forEach(e=>{this.safeDispatchEvent("stream",{detail:e})}),this.earlyStreams=[]})}};var xs=class extends ce{id;protocol;constructor(t){super(t),this.id=t.id,this.protocol=t.protocol??""}async close(t){this.writeStatus==="closing"||this.writeStatus==="closed"||(this.writeStatus="closing",(this.sendingData||this.writeBuffer.byteLength>0)&&(this.log("waiting for write queue to become idle before closing writable end of stream, %d unsent bytes",this.writeBuffer.byteLength),await Fe(this,"idle",{...t,rejectionEvents:["close"]})),this.writableNeedsDrain&&(this.log("waiting for write queue to drain before closing writable end of stream, %d unsent bytes, sending %s",this.writeBuffer.byteLength,this.sendingData),await Fe(this,"drain",{...t,rejectionEvents:["close"]}),this.log("write queue drained, closing writable end of stream, %d unsent bytes, sending %s",this.writeBuffer.byteLength,this.sendingData)),await this.sendCloseWrite(t),this.writeStatus="closed",this.log("closed writable end gracefully"),this.remoteWriteStatus==="closed"&&this.onTransportClosed())}async closeRead(t){this.readStatus==="closing"||this.readStatus==="closed"||(this.readBuffer.byteLength>0&&this.readBuffer.consume(this.readBuffer.byteLength),this.readStatus="closing",await this.sendCloseRead(t),this.readStatus="closed",this.log("closed readable end gracefully"))}};var W0=4194304,Es=class extends Error{static name="UnwrappedError";name="UnwrappedError"},Nn=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},oc=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},sc=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function G0(r){return typeof r?.closeRead=="function"}function Y0(r){return typeof r?.close=="function"}function nc(r){return G0(r)?r.remoteWriteStatus!=="writable"&&r.readBufferLength===0:Y0(r)?r.status!=="open":!1}function Z0(r){return r?.addEventListener!=null&&r?.removeEventListener!=null&&r?.send!=null&&r?.push!=null&&r?.log!=null}function X0(r,t){let e=t?.maxBufferSize??W0,n=new ft,o,s=!1;if(!Z0(r))throw new tt("Argument should be a Stream or a Multiaddr");let i=u=>{if(n.append(u.data),n.byteLength>e){let h=n.byteLength;n.consume(n.byteLength),o?.reject(new Error(`Read buffer overflow - ${h} > ${e}`))}o?.resolve()};r.addEventListener("message",i);let a=u=>{u.error!=null?o?.reject(u.error):o?.resolve()};r.addEventListener("close",a);let c=()=>{o?.resolve()};r.addEventListener("remoteCloseWrite",c);let f={readBuffer:n,async read(u){if(s===!0)throw new Es("Stream was unwrapped");if(nc(r)){if(n.byteLength===0&&u?.bytes==null)return null;if(u?.bytes!=null&&n.byteLength<u.bytes)throw r.log.error("closed after reading %d/%d bytes",n.byteLength,u.bytes),new cr(`Unexpected EOF - stream closed after reading ${n.byteLength}/${u.bytes} bytes`)}let h=u?.bytes??1;for(o=Promise.withResolvers();;){if(n.byteLength>=h){o.resolve();break}if(await $t(o.promise,u?.signal),nc(r)){if(n.byteLength===0&&u?.bytes==null)return null;break}o=Promise.withResolvers()}let l=u?.bytes??n.byteLength;if(n.byteLength<l){if(nc(r))throw r.log.error("closed while reading %d/%d bytes",n.byteLength,l),new cr(`Unexpected EOF - stream closed while reading ${n.byteLength}/${l} bytes`);return f.read(u)}let p=n.sublist(0,l);return n.consume(l),p},async write(u,h){if(s===!0)throw new Es("Stream was unwrapped");r.send(u)||await Fe(r,"drain",{signal:h?.signal,rejectionEvents:["close"]})},unwrap(){return s||(s=!0,r.removeEventListener("message",i),r.removeEventListener("close",a),r.removeEventListener("remoteCloseWrite",c),n.byteLength>0&&(r.log("stream unwrapped with %d unread bytes",n.byteLength),r.unshift(n))),r}};return f}function ic(r,t={}){let e=X0(r,t);t.maxDataLength!=null&&t.maxLengthLength==null&&(t.maxLengthLength=It(t.maxDataLength));let n=t?.lengthDecoder??rr,o=t?.lengthEncoder??Hu;return{async read(i){let a=-1,c=new ft;for(;;){let u=await e.read({...i,bytes:1});if(u==null)break;c.append(u);try{a=n(c)}catch(h){if(h instanceof RangeError)continue;throw h}if(a<0)throw new Nn("Invalid message length");if(t?.maxLengthLength!=null&&c.byteLength>t.maxLengthLength)throw new sc(`Message length length too long - ${c.byteLength} > ${t.maxLengthLength}`);if(a>-1)break}if(t?.maxDataLength!=null&&a>t.maxDataLength)throw new oc(`Message length too long - ${a} > ${t.maxDataLength}`);let f=await e.read({...i,bytes:a});if(f==null)throw r.log.error("tried to read %d bytes but the stream closed",a),new cr(`Unexpected EOF - tried to read ${a} bytes but the stream closed`);if(f.byteLength!==a)throw r.log.error("read %d/%d bytes before the stream closed",f.byteLength,a),new cr(`Unexpected EOF - read ${f.byteLength}/${a} bytes before the stream closed`);return f},async write(i,a){await e.write(new ft(o(i.byteLength),i),a)},async writeV(i,a){let c=new ft(...i.flatMap(f=>[o(f.byteLength),f]));await e.write(c,a)},unwrap(){return e.unwrap()}}}var Q0=1024*1024*4,J0=1024*1024*4,Ss=class{buffer;maxBufferSize;lengthDecoder;maxDataLength;encodingLength;constructor(t={}){this.buffer=new ft,this.maxBufferSize=t.maxBufferSize??Q0,this.maxDataLength=t.maxDataLength??J0,this.lengthDecoder=t.lengthDecoder??rr,this.encodingLength=t.encodingLength??It}*decode(t){if(this.buffer.append(t),this.buffer.byteLength>this.maxBufferSize)throw new tt(`Buffer length limit exceeded - ${this.buffer.byteLength}/${this.maxBufferSize}`);for(;;){let e;try{e=this.lengthDecoder(this.buffer)}catch(s){if(s instanceof RangeError)break;throw s}if(e<0||e>this.maxDataLength)throw new Nn("Invalid message length");let n=this.encodingLength(e),o=n+e;if(this.buffer.byteLength>=o){let s=this.buffer.sublist(n,o);this.buffer.consume(o),s.byteLength>0&&(yield s)}else break}}};function wt(r=0){return new Uint8Array(r)}function _t(r=0){return new Uint8Array(r)}var Hr=!!globalThis.process?.env?.DUMP_SESSION_KEYS,ac=16;function cc(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in r&&r.BYTES_PER_ELEMENT===1}var As=r=>r?`"${r}" `:"";function vs(r,t=""){if(typeof r!="boolean")throw new TypeError(As(t)+"expected boolean, got type="+typeof r);return r}function fr(r,t=""){if(typeof r!="number")throw new TypeError(As(t)+"expected number, got "+typeof r);if(!Number.isSafeInteger(r)||r<0)throw new RangeError(As(t)+"expected integer >= 0, got "+r);return r}function pt(r,t,e=""){if(cc(r)&&(t===void 0||r.length===t))return r;t!==void 0&&fr(t,"length");let n=cc(r),o=t!==void 0?` of length ${t}`:"",s=n?`length=${r.length}`:`type=${typeof r}`,i=As(e)+"expected Uint8Array"+o+", got "+s;throw n?new RangeError(i):new TypeError(i)}var $h=(r,t)=>{if(r===null||typeof r!="object"||Array.isArray(r))throw new TypeError(t==="object"?"expected valid options object":`"${t}" expected object, got type=${typeof r}`)};function fc(r,t=!0){if(r.destroyed)throw new Error("hash was destroyed");if(t&&r.finished)throw new Error("digest() was already called")}function jh(r,t){pt(r,void 0,"output");let e=t.outputLen;if(!(r.length>=e))throw new RangeError('"output" expected length >= '+e)}function fe(r){return new Uint32Array(r.buffer,r.byteOffset,Math.floor(r.byteLength/4))}function Xt(...r){for(let t=0;t<r.length;t++)r[t].fill(0)}function ty(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}var He=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function ey(r){return r<<24&4278190080|r<<8&16711680|r>>>8&65280|r>>>24&255}function ry(r){for(let t=0;t<r.length;t++)r[t]=ey(r[t]);return r}var Se=He?r=>r:ry;function Wh(r,t){return $h(r,"defaults"),$h(t,"opts"),Object.assign(r,t)}function Gh(r,t){if(r=pt(r),t=pt(t),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 Yh(r,t,e){let n=t,o=e||(()=>[]),s=(a,c)=>n(c,...o(a)).update(a).digest(),i=n(new Uint8Array(r),...o(new Uint8Array(0)));return s.outputLen=i.outputLen,s.blockLen=i.blockLen,s.create=(a,...c)=>n(a,...c),s}var Zh=(r,t)=>{function e(n,...o){if(pt(n,void 0,"key"),r.nonceLength!==void 0){let h=o[0];pt(h,r.varSizeNonce?void 0:r.nonceLength,"nonce")}let s=r.tagLength,i=r.nonceLength!==void 0?1:0;if(!r.withAAD){for(let h=i;h<o.length;h++)if(cc(o[h]))throw new Error("AAD not supported")}r.withAAD&&o[i]!==void 0&&pt(o[i],void 0,"AAD");let a=t(n,...o),c=(h,l)=>{if(l!==void 0){if(h!==2)throw new Error("cipher output not supported");pt(l,void 0,"output")}},f=!1;return{encrypt(h,l){if(f)throw new Error("cannot encrypt() twice with same key + nonce");return f=!0,pt(h,void 0,"data"),c(a.encrypt.length,l),a.encrypt(h,l)},decrypt(h,l){if(pt(h,void 0,"data"),s&&h.length<s)throw new Error('"ciphertext" expected length >= tagLength='+s);return c(a.decrypt.length,l),a.decrypt(h,l)}}}return Object.assign(e,r),e};function Mn(r,t,e=!0){if(t===void 0)return new Uint8Array(r);if(pt(t,r,"output"),e&&!kn(t))throw new Error("invalid output, must be aligned");return t}function Xh(r,t,e){fr(r),fr(t),vs(e);let n=new Uint8Array(16),o=ty(n);return o.setBigUint64(0,BigInt(t),e),o.setBigUint64(8,BigInt(r),e),n}function kn(r){return r.byteOffset%4===0}function zr(r){return Uint8Array.from(pt(r))}var Jh=r=>Uint8Array.from(r.split(""),t=>t.charCodeAt(0)),ny=Se(fe(Jh("expand 16-byte k"))),oy=Se(fe(Jh("expand 32-byte k")));function W(r,t){return r<<t|r>>>32-t}var Kn=64,sy=16,uc=2**32-1,Qh=Uint32Array.of();function iy(r,t,e,n,o,s,i,a){let c=o.length,f=new Uint8Array(Kn),u=fe(f),h=He&&kn(o)&&kn(s),l=h?fe(o):Qh,p=h?fe(s):Qh;if(!He){for(let m=0;m<c;i++){if(r(t,e,n,u,i,a),Se(u),i>=uc)throw new Error("arx: counter overflow");let b=Math.min(Kn,c-m);for(let g=0,w;g<b;g++)w=m+g,s[w]=o[w]^f[g];m+=b}return}for(let m=0;m<c;i++){if(r(t,e,n,u,i,a),i>=uc)throw new Error("arx: counter overflow");let b=Math.min(Kn,c-m);if(h&&b===Kn){let g=m/4;if(m%4!==0)throw new Error("arx: invalid block position");for(let w=0,S;w<sy;w++)S=g+w,p[S]=l[S]^u[w];m+=Kn;continue}for(let g=0,w;g<b;g++)w=m+g,s[w]=o[w]^f[g];m+=b}}function tl(r,t){let{allowShortKeys:e,extendNonceFn:n,counterLength:o,counterRight:s,rounds:i}=Wh({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},t);if(typeof r!="function")throw new Error("core must be a function");return fr(o),fr(i),vs(s),vs(e),(a,c,f,u,h=0)=>{pt(a,void 0,"key"),pt(c,void 0,"nonce"),pt(f,void 0,"data");let l=f.length;if(u=Mn(l,u,!1),fr(h),h<0||h>=uc)throw new Error("arx: counter overflow");let p=[],m=a.length,b,g;if(m===32)p.push(b=zr(a)),g=oy;else if(m===16&&e)b=new Uint8Array(32),b.set(a),b.set(a,16),g=ny,p.push(b);else throw pt(a,32,"arx key"),new Error("invalid key size");(!He||!kn(c))&&p.push(c=zr(c));let w=fe(b);if(n){if(c.length!==24)throw new Error("arx: extended nonce must be 24 bytes");let I=c.subarray(0,16);if(He)n(g,w,fe(I),w);else{let _=Se(Uint32Array.from(g));n(_,w,fe(I),w),Xt(_),Se(w)}c=c.subarray(16)}else He||Se(w);let S=16-o;if(S!==c.length)throw new Error(`arx: nonce must be ${S} or 16 bytes`);if(S!==12){let I=new Uint8Array(12);I.set(c,s?0:12-c.length),c=I,p.push(c)}let x=Se(fe(c));try{return iy(r,g,w,x,f,u,h,i),u}finally{Xt(...p)}}}function At(r,t){return r[t++]&255|(r[t++]&255)<<8}var hc=class{blockLen=16;outputLen=16;buffer=new Uint8Array(16);r=new Uint16Array(10);h=new Uint16Array(10);pad=new Uint16Array(8);pos=0;finished=!1;destroyed=!1;constructor(t){t=zr(pt(t,32,"key"));let e=At(t,0),n=At(t,2),o=At(t,4),s=At(t,6),i=At(t,8),a=At(t,10),c=At(t,12),f=At(t,14);this.r[0]=e&8191,this.r[1]=(e>>>13|n<<3)&8191,this.r[2]=(n>>>10|o<<6)&7939,this.r[3]=(o>>>7|s<<9)&8191,this.r[4]=(s>>>4|i<<12)&255,this.r[5]=i>>>1&8190,this.r[6]=(i>>>14|a<<2)&8191,this.r[7]=(a>>>11|c<<5)&8065,this.r[8]=(c>>>8|f<<8)&8191,this.r[9]=f>>>5&127;for(let u=0;u<8;u++)this.pad[u]=At(t,16+2*u)}process(t,e,n=!1){let o=n?0:2048,{h:s,r:i}=this,a=i[0],c=i[1],f=i[2],u=i[3],h=i[4],l=i[5],p=i[6],m=i[7],b=i[8],g=i[9],w=At(t,e+0),S=At(t,e+2),x=At(t,e+4),I=At(t,e+6),_=At(t,e+8),N=At(t,e+10),M=At(t,e+12),P=At(t,e+14),R=s[0]+(w&8191),U=s[1]+((w>>>13|S<<3)&8191),k=s[2]+((S>>>10|x<<6)&8191),D=s[3]+((x>>>7|I<<9)&8191),H=s[4]+((I>>>4|_<<12)&8191),T=s[5]+(_>>>1&8191),C=s[6]+((_>>>14|N<<2)&8191),d=s[7]+((N>>>11|M<<5)&8191),E=s[8]+((M>>>8|P<<8)&8191),B=s[9]+(P>>>5|o),A=0,v=A+R*a+U*(5*g)+k*(5*b)+D*(5*m)+H*(5*p);A=v>>>13,v&=8191,v+=T*(5*l)+C*(5*h)+d*(5*u)+E*(5*f)+B*(5*c),A+=v>>>13,v&=8191;let y=A+R*c+U*a+k*(5*g)+D*(5*b)+H*(5*m);A=y>>>13,y&=8191,y+=T*(5*p)+C*(5*l)+d*(5*h)+E*(5*u)+B*(5*f),A+=y>>>13,y&=8191;let L=A+R*f+U*c+k*a+D*(5*g)+H*(5*b);A=L>>>13,L&=8191,L+=T*(5*m)+C*(5*p)+d*(5*l)+E*(5*h)+B*(5*u),A+=L>>>13,L&=8191;let O=A+R*u+U*f+k*c+D*a+H*(5*g);A=O>>>13,O&=8191,O+=T*(5*b)+C*(5*m)+d*(5*p)+E*(5*l)+B*(5*h),A+=O>>>13,O&=8191;let F=A+R*h+U*u+k*f+D*c+H*a;A=F>>>13,F&=8191,F+=T*(5*g)+C*(5*b)+d*(5*m)+E*(5*p)+B*(5*l),A+=F>>>13,F&=8191;let K=A+R*l+U*h+k*u+D*f+H*c;A=K>>>13,K&=8191,K+=T*a+C*(5*g)+d*(5*b)+E*(5*m)+B*(5*p),A+=K>>>13,K&=8191;let q=A+R*p+U*l+k*h+D*u+H*f;A=q>>>13,q&=8191,q+=T*c+C*a+d*(5*g)+E*(5*b)+B*(5*m),A+=q>>>13,q&=8191;let V=A+R*m+U*p+k*l+D*h+H*u;A=V>>>13,V&=8191,V+=T*f+C*c+d*a+E*(5*g)+B*(5*b),A+=V>>>13,V&=8191;let G=A+R*b+U*m+k*p+D*l+H*h;A=G>>>13,G&=8191,G+=T*u+C*f+d*c+E*a+B*(5*g),A+=G>>>13,G&=8191;let ot=A+R*g+U*b+k*m+D*p+H*l;A=ot>>>13,ot&=8191,ot+=T*h+C*u+d*f+E*c+B*a,A+=ot>>>13,ot&=8191,A=(A<<2)+A|0,A=A+v|0,v=A&8191,A=A>>>13,y+=A,s[0]=v,s[1]=y,s[2]=L,s[3]=O,s[4]=F,s[5]=K,s[6]=q,s[7]=V,s[8]=G,s[9]=ot}finalize(){let{h:t,pad:e}=this,n=new Uint16Array(10),o=t[1]>>>13;t[1]&=8191;for(let a=2;a<10;a++)t[a]+=o,o=t[a]>>>13,t[a]&=8191;t[0]+=o*5,o=t[0]>>>13,t[0]&=8191,t[1]+=o,o=t[1]>>>13,t[1]&=8191,t[2]+=o,n[0]=t[0]+5,o=n[0]>>>13,n[0]&=8191;for(let a=1;a<10;a++)n[a]=t[a]+o,o=n[a]>>>13,n[a]&=8191;n[9]-=8192;let s=(o^1)-1;for(let a=0;a<10;a++)n[a]&=s;s=~s;for(let a=0;a<10;a++)t[a]=t[a]&s|n[a];t[0]=(t[0]|t[1]<<13)&65535,t[1]=(t[1]>>>3|t[2]<<10)&65535,t[2]=(t[2]>>>6|t[3]<<7)&65535,t[3]=(t[3]>>>9|t[4]<<4)&65535,t[4]=(t[4]>>>12|t[5]<<1|t[6]<<14)&65535,t[5]=(t[6]>>>2|t[7]<<11)&65535,t[6]=(t[7]>>>5|t[8]<<8)&65535,t[7]=(t[8]>>>8|t[9]<<5)&65535;let i=t[0]+e[0];t[0]=i&65535;for(let a=1;a<8;a++)i=(t[a]+e[a]|0)+(i>>>16)|0,t[a]=i&65535;Xt(n)}update(t){fc(this),pt(t),t=zr(t);let{buffer:e,blockLen:n}=this,o=t.length;for(let s=0;s<o;){let i=Math.min(n-this.pos,o-s);if(i===n){for(;n<=o-s;s+=n)this.process(t,s);continue}e.set(t.subarray(s,s+i),this.pos),this.pos+=i,s+=i,this.pos===n&&(this.process(e,0,!1),this.pos=0)}return this}destroy(){this.destroyed=!0,Xt(this.h,this.r,this.buffer,this.pad)}digestInto(t){fc(this),jh(t,this),this.finished=!0;let{buffer:e,h:n}=this,{pos:o}=this;if(o){for(e[o++]=1;o<16;o++)e[o]=0;this.process(e,0,!0)}this.finalize();let s=0;for(let i=0;i<8;i++)t[s++]=n[i]>>>0,t[s++]=n[i]>>>8}digest(){let{buffer:t,outputLen:e}=this;this.digestInto(t);let n=t.slice(0,e);return this.destroy(),n}},el=Yh(32,r=>new hc(r));function ay(r,t,e,n,o,s=20){let i=r[0],a=r[1],c=r[2],f=r[3],u=t[0],h=t[1],l=t[2],p=t[3],m=t[4],b=t[5],g=t[6],w=t[7],S=o,x=e[0],I=e[1],_=e[2],N=i,M=a,P=c,R=f,U=u,k=h,D=l,H=p,T=m,C=b,d=g,E=w,B=S,A=x,v=I,y=_;for(let O=0;O<s;O+=2)N=N+U|0,B=W(B^N,16),T=T+B|0,U=W(U^T,12),N=N+U|0,B=W(B^N,8),T=T+B|0,U=W(U^T,7),M=M+k|0,A=W(A^M,16),C=C+A|0,k=W(k^C,12),M=M+k|0,A=W(A^M,8),C=C+A|0,k=W(k^C,7),P=P+D|0,v=W(v^P,16),d=d+v|0,D=W(D^d,12),P=P+D|0,v=W(v^P,8),d=d+v|0,D=W(D^d,7),R=R+H|0,y=W(y^R,16),E=E+y|0,H=W(H^E,12),R=R+H|0,y=W(y^R,8),E=E+y|0,H=W(H^E,7),N=N+k|0,y=W(y^N,16),d=d+y|0,k=W(k^d,12),N=N+k|0,y=W(y^N,8),d=d+y|0,k=W(k^d,7),M=M+D|0,B=W(B^M,16),E=E+B|0,D=W(D^E,12),M=M+D|0,B=W(B^M,8),E=E+B|0,D=W(D^E,7),P=P+H|0,A=W(A^P,16),T=T+A|0,H=W(H^T,12),P=P+H|0,A=W(A^P,8),T=T+A|0,H=W(H^T,7),R=R+U|0,v=W(v^R,16),C=C+v|0,U=W(U^C,12),R=R+U|0,v=W(v^R,8),C=C+v|0,U=W(U^C,7);let L=0;n[L++]=i+N|0,n[L++]=a+M|0,n[L++]=c+P|0,n[L++]=f+R|0,n[L++]=u+U|0,n[L++]=h+k|0,n[L++]=l+D|0,n[L++]=p+H|0,n[L++]=m+T|0,n[L++]=b+C|0,n[L++]=g+d|0,n[L++]=w+E|0,n[L++]=S+B|0,n[L++]=x+A|0,n[L++]=I+v|0,n[L++]=_+y|0}var cy=tl(ay,{counterRight:!1,counterLength:4,allowShortKeys:!1});var fy=new Uint8Array(16),rl=(r,t)=>{r.update(t);let e=t.length%16;e&&r.update(fy.subarray(e))},uy=new Uint8Array(32);function nl(r,t,e,n,o){o!==void 0&&pt(o,void 0,"AAD");let s=r(t,e,uy),i=Xh(n.length,o?o.length:0,!0),a=el.create(s);o&&rl(a,o),rl(a,n),a.update(i);let c=a.digest();return Xt(s,i),c}var hy=r=>(t,e,n)=>({encrypt(s,i){let a=s.length;i=Mn(a+16,i,!1),i.set(s);let c=i.subarray(0,-16);r(t,e,c,c,1);let f=nl(r,t,e,c,n);return i.set(f,a),Xt(f),i},decrypt(s,i){i=Mn(s.length-16,i,!1);let a=s.subarray(0,-16),c=s.subarray(-16),f=nl(r,t,e,a,n);if(!Gh(c,f))throw Xt(f),new Error("invalid tag");return i.set(s.subarray(0,-16)),r(t,e,i,i,1),Xt(f),i}}),lc=Zh({blockSize:64,nonceLength:12,tagLength:16,withAAD:!0},hy(cy));function ol(r,t,e){return Qe(r),e===void 0&&(e=new Uint8Array(r.outputLen)),In(r,e,t)}var Fn=Uint8Array.of(0),ly=Uint8Array.of();function sl(r,t,e,n=32,o){Qe(r),Gt(n,"length"),Rt(t,void 0,"prk");let s=r.outputLen;if(t.length<s)throw new Error('"prk" must be at least HashLen octets');if(n>255*s)throw new Error("Length must be <= 255*HashLen");let i=Math.ceil(n/s);if(e===void 0?e=ly:Rt(e,void 0,"info"),!i)return o&&Ht(t),new Uint8Array;let a=o&&i===1?t:new Uint8Array(i*s),{iHash:c,oHash:f}=In.create(r,t),u=o?t:new Uint8Array(s),h=i>1?o?.iHash||r.create():void 0;for(let p=0;p<i-1;p++){Fn[0]=p+1;let m=c._cloneInto(h);p&&m.update(u),m.update(e).update(Fn).digestInto(u),f._cloneInto(h).update(u).digestInto(u),a.set(u,s*p)}if(Fn[0]=i,i>1&&c.update(u),c.update(e).update(Fn).digestInto(u),f.update(u).digestInto(u),a.set(u,s*(i-1)),c.destroy(),f.destroy(),h?.destroy(),u!==a&&Ht(u),Ht(Fn),n===a.length)return a;let l=a.slice(0,n);return Ht(a),l}var dc={hashSHA256(r){return ne(r.subarray())},getHKDF(r,t){let e=ol(ne,t,r),o=sl(ne,e,void 0,96),s=o.subarray(0,32),i=o.subarray(32,64),a=o.subarray(64,96);return[s,i,a]},generateX25519KeyPair(){let r=xn.utils.randomSecretKey();return{publicKey:xn.getPublicKey(r),privateKey:r}},generateX25519KeyPairFromSeed(r){return{publicKey:xn.getPublicKey(r),privateKey:r}},generateX25519SharedKey(r,t){return xn.getSharedSecret(r.subarray(),t.subarray())},chaCha20Poly1305Encrypt(r,t,e,n){return lc(n,t,e).encrypt(r.subarray())},chaCha20Poly1305Decrypt(r,t,e,n,o){return lc(n,t,e).decrypt(r.subarray(),o)}};var il=dc;function al(r){return{generateKeypair:r.generateX25519KeyPair,dh:(t,e)=>r.generateX25519SharedKey(t.privateKey,e).subarray(0,32),encrypt:r.chaCha20Poly1305Encrypt,decrypt:r.chaCha20Poly1305Decrypt,hash:r.hashSHA256,hkdf:r.getHKDF}}var Vr=r=>{let t=_t(2);return t[0]=r>>8,t[1]=r,t};Vr.bytes=2;var qr=r=>{if(r.length<2)throw RangeError("Could not decode int16BE");if(r instanceof Uint8Array){let t=0;return t+=r[0]<<8,t+=r[1],t}return r.getUint16(0)};qr.bytes=2;function cl(r){return{xxHandshakeSuccesses:r.registerCounter("libp2p_noise_xxhandshake_successes_total",{help:"Total count of noise xxHandshakes successes_"}),xxHandshakeErrors:r.registerCounter("libp2p_noise_xxhandshake_error_total",{help:"Total count of noise xxHandshakes errors"}),encryptedPackets:r.registerCounter("libp2p_noise_encrypted_packets_total",{help:"Total count of noise encrypted packets successfully"}),decryptedPackets:r.registerCounter("libp2p_noise_decrypted_packets_total",{help:"Total count of noise decrypted packets"}),decryptErrors:r.registerCounter("libp2p_noise_decrypt_errors_total",{help:"Total count of noise decrypt errors"})}}var bc={};rt(bc,{base10:()=>wy});var x8=new Uint8Array(0);function fl(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 Ae(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 ul(r){return new TextEncoder().encode(r)}function hl(r){return new TextDecoder().decode(r)}function dy(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 o=0;o<r.length;o++){var s=r.charAt(o),i=s.charCodeAt(0);if(e[i]!==255)throw new TypeError(s+" is ambiguous");e[i]=o}var a=r.length,c=r.charAt(0),f=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(m){if(m instanceof Uint8Array||(ArrayBuffer.isView(m)?m=new Uint8Array(m.buffer,m.byteOffset,m.byteLength):Array.isArray(m)&&(m=Uint8Array.from(m))),!(m instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(m.length===0)return"";for(var b=0,g=0,w=0,S=m.length;w!==S&&m[w]===0;)w++,b++;for(var x=(S-w)*u+1>>>0,I=new Uint8Array(x);w!==S;){for(var _=m[w],N=0,M=x-1;(_!==0||N<g)&&M!==-1;M--,N++)_+=256*I[M]>>>0,I[M]=_%a>>>0,_=_/a>>>0;if(_!==0)throw new Error("Non-zero carry");g=N,w++}for(var P=x-g;P!==x&&I[P]===0;)P++;for(var R=c.repeat(b);P<x;++P)R+=r.charAt(I[P]);return R}function l(m){if(typeof m!="string")throw new TypeError("Expected String");if(m.length===0)return new Uint8Array;var b=0;if(m[b]!==" "){for(var g=0,w=0;m[b]===c;)g++,b++;for(var S=(m.length-b)*f+1>>>0,x=new Uint8Array(S);m[b];){var I=e[m.charCodeAt(b)];if(I===255)return;for(var _=0,N=S-1;(I!==0||_<w)&&N!==-1;N--,_++)I+=a*x[N]>>>0,x[N]=I%256>>>0,I=I/256>>>0;if(I!==0)throw new Error("Non-zero carry");w=_,b++}if(m[b]!==" "){for(var M=S-w;M!==S&&x[M]===0;)M++;for(var P=new Uint8Array(g+(S-M)),R=g;M!==S;)P[R++]=x[M++];return P}}}function p(m){var b=l(m);if(b)return b;throw new Error(`Non-${t} character`)}return{encode:h,decodeUnsafe:l,decode:p}}var py=dy,my=py,dl=my;var pc=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")}},mc=class{name;prefix;baseDecode;prefixCodePoint;constructor(t,e,n){this.name=t,this.prefix=e;let o=e.codePointAt(0);if(o===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=o,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 pl(this,t)}},yc=class{decoders;constructor(t){this.decoders=t}or(t){return pl(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 pl(r,t){return new yc({...r.decoders??{[r.prefix]:r},...t.decoders??{[t.prefix]:t}})}var gc=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(t,e,n,o){this.name=t,this.prefix=e,this.baseEncode=n,this.baseDecode=o,this.encoder=new pc(t,e,n),this.decoder=new mc(t,e,o)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function $r({name:r,prefix:t,encode:e,decode:n}){return new gc(r,t,e,n)}function ze({name:r,prefix:t,alphabet:e}){let{encode:n,decode:o}=dl(e,r);return $r({prefix:t,name:r,encode:n,decode:s=>Ae(o(s))})}function yy(r,t,e,n){let o=r.length;for(;r[o-1]==="=";)--o;let s=new Uint8Array(o*e/8|0),i=0,a=0,c=0;for(let f=0;f<o;++f){let u=t[r[f]];if(u===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<e|u,i+=e,i>=8&&(i-=8,s[c++]=255&a>>i)}if(i>=e||(255&a<<8-i)!==0)throw new SyntaxError("Unexpected end of data");return s}function gy(r,t,e){let n=t[t.length-1]==="=",o=(1<<e)-1,s="",i=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],i+=8;i>e;)i-=e,s+=t[o&a>>i];if(i!==0&&(s+=t[o&a<<e-i]),n)for(;(s.length*e&7)!==0;)s+="=";return s}function by(r){let t={};for(let e=0;e<r.length;++e)t[r[e]]=e;return t}function dt({name:r,prefix:t,bitsPerChar:e,alphabet:n}){let o=by(n);return $r({prefix:t,name:r,encode(s){return gy(s,n,e)},decode(s){return yy(s,o,e,r)}})}var wy=ze({prefix:"9",name:"base10",alphabet:"0123456789"});var wc={};rt(wc,{base16:()=>xy,base16upper:()=>Ey});var xy=dt({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Ey=dt({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var xc={};rt(xc,{base2:()=>Sy});var Sy=dt({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ec={};rt(Ec,{base256emoji:()=>Iy});var ml=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}"),Ay=ml.reduce((r,t,e)=>(r[e]=t,r),[]),vy=ml.reduce((r,t,e)=>{let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);return r[n]=e,r},[]);function By(r){return r.reduce((t,e)=>(t+=Ay[e],t),"")}function Ly(r){let t=[];for(let e of r){let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);let o=vy[n];if(o==null)throw new Error(`Non-base256emoji character: ${e}`);t.push(o)}return new Uint8Array(t)}var Iy=$r({prefix:"\u{1F680}",name:"base256emoji",encode:By,decode:Ly});var Sc={};rt(Sc,{base32:()=>jr,base32hex:()=>Dy,base32hexpad:()=>Oy,base32hexpadupper:()=>Py,base32hexupper:()=>Ry,base32pad:()=>Ty,base32padupper:()=>_y,base32upper:()=>Cy,base32z:()=>Uy});var jr=dt({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Cy=dt({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Ty=dt({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),_y=dt({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Dy=dt({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Ry=dt({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Oy=dt({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Py=dt({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Uy=dt({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Ac={};rt(Ac,{base36:()=>Hn,base36upper:()=>Ny});var Hn=ze({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Ny=ze({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var vc={};rt(vc,{base58btc:()=>ue,base58flickr:()=>My});var ue=ze({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),My=ze({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Bc={};rt(Bc,{base64:()=>ky,base64pad:()=>Ky,base64url:()=>Fy,base64urlpad:()=>Hy});var ky=dt({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Ky=dt({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Fy=dt({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Hy=dt({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Lc={};rt(Lc,{base8:()=>zy});var zy=dt({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Ic={};rt(Ic,{identity:()=>Vy});var Vy=$r({prefix:"\0",name:"identity",encode:r=>hl(r),decode:r=>ul(r)});var N8=new TextEncoder,M8=new TextDecoder;var Tc={};rt(Tc,{identity:()=>lg});var jy=bl,yl=128,Wy=127,Gy=~Wy,Yy=Math.pow(2,31);function bl(r,t,e){t=t||[],e=e||0;for(var n=e;r>=Yy;)t[e++]=r&255|yl,r/=128;for(;r&Gy;)t[e++]=r&255|yl,r>>>=7;return t[e]=r|0,bl.bytes=e-n+1,t}var Zy=Cc,Xy=128,gl=127;function Cc(r,n){var e=0,n=n||0,o=0,s=n,i,a=r.length;do{if(s>=a)throw Cc.bytes=0,new RangeError("Could not decode varint");i=r[s++],e+=o<28?(i&gl)<<o:(i&gl)*Math.pow(2,o),o+=7}while(i>=Xy);return Cc.bytes=s-n,e}var Qy=Math.pow(2,7),Jy=Math.pow(2,14),tg=Math.pow(2,21),eg=Math.pow(2,28),rg=Math.pow(2,35),ng=Math.pow(2,42),og=Math.pow(2,49),sg=Math.pow(2,56),ig=Math.pow(2,63),ag=function(r){return r<Qy?1:r<Jy?2:r<tg?3:r<eg?4:r<rg?5:r<ng?6:r<og?7:r<sg?8:r<ig?9:10},cg={encode:jy,decode:Zy,encodingLength:ag},fg=cg,zn=fg;function Vn(r,t=0){return[zn.decode(r,t),zn.decode.bytes]}function Wr(r,t,e=0){return zn.encode(r,t,e),t}function Gr(r){return zn.encodingLength(r)}function Zr(r,t){let e=t.byteLength,n=Gr(r),o=n+Gr(e),s=new Uint8Array(o+e);return Wr(r,s,0),Wr(e,s,n),s.set(t,o),new Yr(r,e,t,s)}function wl(r){let t=Ae(r),[e,n]=Vn(t),[o,s]=Vn(t.subarray(n)),i=t.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new Yr(e,o,i,t)}function xl(r,t){if(r===t)return!0;{let e=t;return r.code===e.code&&r.size===e.size&&e.bytes instanceof Uint8Array&&fl(r.bytes,e.bytes)}}var Yr=class{code;size;digest;bytes;constructor(t,e,n,o){this.code=t,this.size=e,this.digest=n,this.bytes=o}};var El=0,ug="identity",Sl=Ae;function hg(r,t){if(t?.truncate!=null&&t.truncate!==r.byteLength){if(t.truncate<0||t.truncate>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,t.truncate)}return Zr(El,Sl(r))}var lg={code:El,name:ug,encode:Sl,digest:hg};var Rc={};rt(Rc,{sha256:()=>pg,sha512:()=>mg});var dg=20;function Dc({name:r,code:t,encode:e,minDigestLength:n,maxDigestLength:o}){return new _c(r,t,e,n,o)}var _c=class{name;code;encode;minDigestLength;maxDigestLength;constructor(t,e,n,o,s){this.name=t,this.code=e,this.encode=n,this.minDigestLength=o??dg,this.maxDigestLength=s}digest(t,e){if(e?.truncate!=null){if(e.truncate<this.minDigestLength)throw new Error(`Invalid truncate option, must be greater than or equal to ${this.minDigestLength}`);if(this.maxDigestLength!=null&&e.truncate>this.maxDigestLength)throw new Error(`Invalid truncate option, must be less than or equal to ${this.maxDigestLength}`)}if(t instanceof Uint8Array){let n=this.encode(t);return n instanceof Uint8Array?Al(n,this.code,e?.truncate):n.then(o=>Al(o,this.code,e?.truncate))}else throw Error("Unknown type, must be binary type")}};function Al(r,t,e){if(e!=null&&e!==r.byteLength){if(e>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,e)}return Zr(t,r)}function Bl(r){return async t=>new Uint8Array(await crypto.subtle.digest(r,t))}var pg=Dc({name:"sha2-256",code:18,encode:Bl("SHA-256")}),mg=Dc({name:"sha2-512",code:19,encode:Bl("SHA-512")});function Ll(r,t){let{bytes:e,version:n}=r;return n===0?gg(e,Oc(r),t??ue.encoder):bg(e,Oc(r),t??jr.encoder)}var Il=new WeakMap;function Oc(r){let t=Il.get(r);if(t==null){let e=new Map;return Il.set(r,e),e}return t}var Ls=class r{code;version;multihash;bytes;"/";constructor(t,e,n,o){this.code=e,this.version=t,this.multihash=n,this.bytes=o,this["/"]=o}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!==$n)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(e.code!==wg)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=Zr(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&&xl(t.multihash,n.multihash)}toString(t){return Ll(this,t)}toJSON(){return{"/":Ll(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:o,multihash:s,bytes:i}=e;return new r(n,o,s,i??Cl(n,o,s.bytes))}else if(e[xg]===!0){let{version:n,multihash:o,code:s}=e,i=wl(o);return r.create(n,s,i)}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!==$n)throw new Error(`Version 0 CID must use dag-pb (code: ${$n}) block encoding`);return new r(t,e,n,n.bytes)}case 1:{let o=Cl(t,e,n.bytes);return new r(t,e,n,o)}default:throw new Error("Invalid version")}}static createV0(t){return r.create(0,$n,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,o=Ae(t.subarray(n,n+e.multihashSize));if(o.byteLength!==e.multihashSize)throw new Error("Incorrect length");let s=o.subarray(e.multihashSize-e.digestSize),i=new Yr(e.multihashCode,e.digestSize,s,o);return[e.version===0?r.createV0(i):r.createV1(e.codec,i),t.subarray(e.size)]}static inspectBytes(t){let e=0,n=()=>{let[h,l]=Vn(t.subarray(e));return e+=l,h},o=n(),s=$n;if(o===18?(o=0,e=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=e,a=n(),c=n(),f=e+c,u=f-i;return{version:o,codec:s,multihashCode:a,digestSize:c,multihashSize:u,size:f}}static parse(t,e){let[n,o]=yg(t,e),s=r.decode(o);if(s.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Oc(s).set(n,t),s}};function yg(r,t){switch(r[0]){case"Q":{let e=t??ue;return[ue.prefix,e.decode(`${ue.prefix}${r}`)]}case ue.prefix:{let e=t??ue;return[ue.prefix,e.decode(r)]}case jr.prefix:{let e=t??jr;return[jr.prefix,e.decode(r)]}case Hn.prefix:{let e=t??Hn;return[Hn.prefix,e.decode(r)]}default:{if(t==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[r[0],t.decode(r)]}}}function gg(r,t,e){let{prefix:n}=e;if(n!==ue.prefix)throw Error(`Cannot string encode V0 in ${e.name} encoding`);let o=t.get(n);if(o==null){let s=e.encode(r).slice(1);return t.set(n,s),s}else return o}function bg(r,t,e){let{prefix:n}=e,o=t.get(n);if(o==null){let s=e.encode(r);return t.set(n,s),s}else return o}var $n=112,wg=18;function Cl(r,t,e){let n=Gr(r),o=n+Gr(t),s=new Uint8Array(o+e.byteLength);return Wr(r,s,0),Wr(t,s,n),s.set(e,o),s}var xg=Symbol.for("@ipld/js-cid/CID");var Pc={...Ic,...xc,...Lc,...bc,...wc,...Sc,...Ac,...vc,...Bc,...Ec},s4={...Rc,...Tc};function _l(r,t,e,n){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:n}}}var Tl=_l("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),Uc=_l("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=_t(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);return t}),Eg={utf8:Tl,"utf-8":Tl,hex:Pc.base16,latin1:Uc,ascii:Uc,binary:Uc,...Pc},Is=Eg;function he(r,t="utf8"){let e=Is[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.encoder.encode(r).substring(1)}function Nc(r,t){!t.enabled||!Hr||(r?(t(`LOCAL_STATIC_PUBLIC_KEY ${he(r.publicKey,"hex")}`),t(`LOCAL_STATIC_PRIVATE_KEY ${he(r.privateKey,"hex")}`)):t("Missing local static keys."))}function Mc(r,t){!t.enabled||!Hr||(r?(t(`LOCAL_PUBLIC_EPHEMERAL_KEY ${he(r.publicKey,"hex")}`),t(`LOCAL_PRIVATE_EPHEMERAL_KEY ${he(r.privateKey,"hex")}`)):t("Missing local ephemeral keys."))}function Dl(r,t){!t.enabled||!Hr||t(r?`REMOTE_STATIC_PUBLIC_KEY ${he(r.subarray(),"hex")}`:"Missing remote static public key.")}function kc(r,t){!t.enabled||!Hr||t(r?`REMOTE_EPHEMERAL_PUBLIC_KEY ${he(r.subarray(),"hex")}`:"Missing remote ephemeral keys.")}function Kc(r,t,e){!e.enabled||!Hr||(e(`CIPHER_STATE_1 ${r.n.getUint64()} ${r.k&&he(r.k,"hex")}`),e(`CIPHER_STATE_2 ${t.n.getUint64()} ${t.k&&he(t.k,"hex")}`))}function Xr(r,t){t==null&&(t=r.reduce((o,s)=>o+s.length,0));let e=_t(t),n=0;for(let o of r)e.set(o,n),n+=o.length;return e}function Fc(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}var Ol=Symbol.for("@achingbrain/uint8arraylist");function Rl(r,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let e=0;for(let n of r){let o=e+n.byteLength;if(t<o)return{buf:n,index:t-e};e=o}throw new RangeError("index is out of bounds")}function Cs(r){return!!r?.[Ol]}var le=class r{bufs;length;[Ol]=!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(Cs(n)){e+=n.byteLength;for(let o of n.bufs)this.bufs.push(o)}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(Cs(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=Rl(this.bufs,t);return e.buf[e.index]}set(t,e){let n=Rl(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(Cs(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:o}=this._subList(t,e);return Xr(n,o)}subarray(t,e){let{bufs:n,length:o}=this._subList(t,e);return n.length===1?n[0]:Xr(n,o)}sublist(t,e){let{bufs:n,length:o}=this._subList(t,e),s=new r;return s.length=o,s.bufs=n,s}_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=[],o=0;for(let s=0;s<this.bufs.length;s++){let i=this.bufs[s],a=o,c=a+i.byteLength;if(o=c,t>=c)continue;let f=t>=a&&t<c,u=e>a&&e<=c;if(f&&u){if(t===a&&e===c){n.push(i);break}let h=t-a;n.push(i.subarray(h,h+(e-t)));break}if(f){if(t===0){n.push(i);continue}n.push(i.subarray(t-a));continue}if(u){if(e===c){n.push(i);break}n.push(i.subarray(0,e-a));break}n.push(i)}return{bufs:n,length:e-t}}indexOf(t,e=0){if(!Cs(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 o=n.byteLength;if(o===0)throw new TypeError("search must be at least 1 byte long");let s=256,i=new Int32Array(s);for(let h=0;h<s;h++)i[h]=-1;for(let h=0;h<o;h++)i[n[h]]=h;let a=i,c=this.byteLength-n.byteLength,f=n.byteLength-1,u;for(let h=e;h<=c;h+=u){u=0;for(let l=f;l>=0;l--){let p=this.get(h+l);if(n[l]!==p){u=Math.max(1,l-a[p]);break}}if(u===0)return h}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=_t(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 o=wt(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt16(0,e,n),this.write(o,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 o=wt(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt32(0,e,n),this.write(o,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 o=wt(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigInt64(0,e,n),this.write(o,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=_t(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 o=wt(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint16(0,e,n),this.write(o,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 o=wt(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint32(0,e,n),this.write(o,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 o=wt(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigUint64(0,e,n),this.write(o,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 o=wt(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat32(0,e,n),this.write(o,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 o=wt(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat64(0,e,n),this.write(o,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(!Fc(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((o,s)=>o+s.byteLength,0)),n.length=e,n}};function ur(r,t="utf8"){let e=Is[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.decoder.decode(`${e.prefix}${r}`)}var Qr=class r extends Error{code;constructor(t="Invalid crypto exchange"){super(t),this.code=r.code}static code="ERR_INVALID_CRYPTO_EXCHANGE"};var Ag=0,vg=4294967295,Bg="Cipherstate has reached maximum n, a new handshake must be performed",Ts=class{n;bytes;view;constructor(t=Ag){this.n=t,this.bytes=wt(12),this.view=new DataView(this.bytes.buffer,this.bytes.byteOffset,this.bytes.byteLength),this.view.setUint32(4,t,!0)}increment(){this.n++,this.view.setUint32(4,this.n,!0)}getBytes(){return this.bytes}getUint64(){return this.n}assertValue(){if(this.n>vg)throw new Error(Bg)}};var hr=wt(0),Jr=class{k;n;crypto;constructor(t,e=void 0,n=0){this.crypto=t,this.k=e,this.n=new Ts(n)}hasKey(){return!!this.k}encryptWithAd(t,e){if(!this.hasKey())return e;this.n.assertValue();let n=this.crypto.encrypt(e,this.n.getBytes(),t,this.k);return this.n.increment(),n}decryptWithAd(t,e,n){if(!this.hasKey())return e;this.n.assertValue();let o=this.crypto.decrypt(e,this.n.getBytes(),t,this.k,n);return this.n.increment(),o}},Hc=class{cs;ck;h;crypto;constructor(t,e){this.crypto=t;let n=ur(e,"utf-8");this.h=Lg(t,n),this.ck=this.h,this.cs=new Jr(t)}mixKey(t){let[e,n]=this.crypto.hkdf(this.ck,t);this.ck=e,this.cs=new Jr(this.crypto,n)}mixHash(t){this.h=this.crypto.hash(new le(this.h,t))}encryptAndHash(t){let e=this.cs.encryptWithAd(this.h,t);return this.mixHash(e),e}decryptAndHash(t){let e=this.cs.decryptWithAd(this.h,t);return this.mixHash(t),e}split(){let[t,e]=this.crypto.hkdf(this.ck,hr);return[new Jr(this.crypto,t),new Jr(this.crypto,e)]}},zc=class{ss;s;e;rs;re;initiator;crypto;constructor(t){let{crypto:e,protocolName:n,prologue:o,initiator:s,s:i,e:a,rs:c,re:f}=t;this.crypto=e,this.ss=new Hc(e,n),this.ss.mixHash(o),this.initiator=s,this.s=i,this.e=a,this.rs=c,this.re=f}writeE(){if(this.e)throw new Error("ephemeral keypair is already set");let t=this.crypto.generateKeypair();return this.ss.mixHash(t.publicKey),this.e=t,t.publicKey}writeS(){if(!this.s)throw new Error("static keypair is not set");return this.ss.encryptAndHash(this.s.publicKey)}writeEE(){if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.re))}writeES(){if(this.initiator){if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.rs)throw new Error("remote static public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.rs))}else{if(!this.s)throw new Error("static keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.s,this.re))}}writeSE(){if(this.initiator){if(!this.s)throw new Error("static keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.s,this.re))}else{if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.rs)throw new Error("remote static public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.rs))}}readE(t,e=0){if(this.re)throw new Error("remote ephemeral public key is already set");if(t.byteLength<e+32)throw new Error("message is not long enough");this.re=t.sublist(e,e+32),this.ss.mixHash(this.re)}readS(t,e=0){if(this.rs)throw new Error("remote static public key is already set");let n=32+(this.ss.cs.hasKey()?16:0);if(t.byteLength<e+n)throw new Error("message is not long enough");let o=t.sublist(e,e+n);return this.rs=this.ss.decryptAndHash(o),n}readEE(){this.writeEE()}readES(){this.writeES()}readSE(){this.writeSE()}},jn=class extends zc{writeMessageA(t){return new le(this.writeE(),this.ss.encryptAndHash(t))}writeMessageB(t){let e=this.writeE();this.writeEE();let n=this.writeS();return this.writeES(),new le(e,n,this.ss.encryptAndHash(t))}writeMessageC(t){let e=this.writeS();return this.writeSE(),new le(e,this.ss.encryptAndHash(t))}readMessageA(t){try{return this.readE(t),this.ss.decryptAndHash(t.sublist(32))}catch(e){throw new Qr(`handshake stage 0 validation fail: ${e.message}`)}}readMessageB(t){try{this.readE(t),this.readEE();let e=this.readS(t,32);return this.readES(),this.ss.decryptAndHash(t.sublist(32+e))}catch(e){throw new Qr(`handshake stage 1 validation fail: ${e.message}`)}}readMessageC(t){try{let e=this.readS(t);return this.readSE(),this.ss.decryptAndHash(t.sublist(e))}catch(e){throw new Qr(`handshake stage 2 validation fail: ${e.message}`)}}};function Lg(r,t){if(t.length<=32){let e=wt(32);return e.set(t),e}else return r.hash(t)}var Ig=Math.pow(2,7),Cg=Math.pow(2,14),Tg=Math.pow(2,21),Pl=Math.pow(2,28),Ul=Math.pow(2,35),Nl=Math.pow(2,42),Ml=Math.pow(2,49),Ot=128,Ve=127;function Wn(r){if(r<Ig)return 1;if(r<Cg)return 2;if(r<Tg)return 3;if(r<Pl)return 4;if(r<Ul)return 5;if(r<Nl)return 6;if(r<Ml)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function kl(r,t,e=0){switch(Wn(r)){case 8:t[e++]=r&255|Ot,r/=128;case 7:t[e++]=r&255|Ot,r/=128;case 6:t[e++]=r&255|Ot,r/=128;case 5:t[e++]=r&255|Ot,r/=128;case 4:t[e++]=r&255|Ot,r>>>=7;case 3:t[e++]=r&255|Ot,r>>>=7;case 2:t[e++]=r&255|Ot,r>>>=7;case 1:{t[e++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return t}function Kl(r,t){let e=r[t],n=0;if(n+=e&Ve,e<Ot||(e=r[t+1],n+=(e&Ve)<<7,e<Ot)||(e=r[t+2],n+=(e&Ve)<<14,e<Ot)||(e=r[t+3],n+=(e&Ve)<<21,e<Ot)||(e=r[t+4],n+=(e&Ve)*Pl,e<Ot)||(e=r[t+5],n+=(e&Ve)*Ul,e<Ot)||(e=r[t+6],n+=(e&Ve)*Nl,e<Ot)||(e=r[t+7],n+=(e&Ve)*Ml,e<Ot))return n;throw new RangeError("Could not decode varint")}var Vc=new Float32Array([-0]),qe=new Uint8Array(Vc.buffer);function Fl(r,t,e){Vc[0]=r,t[e]=qe[0],t[e+1]=qe[1],t[e+2]=qe[2],t[e+3]=qe[3]}function Hl(r,t){return qe[0]=r[t],qe[1]=r[t+1],qe[2]=r[t+2],qe[3]=r[t+3],Vc[0]}var qc=new Float64Array([-0]),Dt=new Uint8Array(qc.buffer);function zl(r,t,e){qc[0]=r,t[e]=Dt[0],t[e+1]=Dt[1],t[e+2]=Dt[2],t[e+3]=Dt[3],t[e+4]=Dt[4],t[e+5]=Dt[5],t[e+6]=Dt[6],t[e+7]=Dt[7]}function Vl(r,t){return Dt[0]=r[t],Dt[1]=r[t+1],Dt[2]=r[t+2],Dt[3]=r[t+3],Dt[4]=r[t+4],Dt[5]=r[t+5],Dt[6]=r[t+6],Dt[7]=r[t+7],qc[0]}var _g=BigInt(Number.MAX_SAFE_INTEGER),Dg=BigInt(Number.MIN_SAFE_INTEGER),Kt=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 lr;if(t<_g&&t>Dg)return this.fromNumber(Number(t));let e=t<0n;e&&(t=-t);let n=t>>32n,o=t-(n<<32n);return e&&(n=~n|0n,o=~o|0n,++o>ql&&(o=0n,++n>ql&&(n=0n))),new r(Number(o),Number(n))}static fromNumber(t){if(t===0)return lr;let e=t<0;e&&(t=-t);let n=t>>>0,o=(t-n)/4294967296>>>0;return e&&(o=~o>>>0,n=~n>>>0,++n>4294967295&&(n=0,++o>4294967295&&(o=0))),new r(n,o)}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):lr}},lr=new Kt(0,0);lr.toBigInt=function(){return 0n};lr.zzEncode=lr.zzDecode=function(){return this};lr.length=function(){return 1};var ql=4294967296n;function $l(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 jl(r,t,e){if(e-t<1)return"";let o,s=[],i=0,a;for(;t<e;)a=r[t++],a<128?s[i++]=a:a>191&&a<224?s[i++]=(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,s[i++]=55296+(a>>10),s[i++]=56320+(a&1023)):s[i++]=(a&15)<<12|(r[t++]&63)<<6|r[t++]&63,i>8191&&((o??(o=[])).push(String.fromCharCode.apply(String,s)),i=0);return o!=null?(i>0&&o.push(String.fromCharCode.apply(String,s.slice(0,i))),o.join("")):String.fromCharCode.apply(String,s.slice(0,i))}function $c(r,t,e){let n=e,o,s;for(let i=0;i<r.length;++i)o=r.charCodeAt(i),o<128?t[e++]=o:o<2048?(t[e++]=o>>6|192,t[e++]=o&63|128):(o&64512)===55296&&((s=r.charCodeAt(i+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++i,t[e++]=o>>18|240,t[e++]=o>>12&63|128,t[e++]=o>>6&63|128,t[e++]=o&63|128):(t[e++]=o>>12|224,t[e++]=o>>6&63|128,t[e++]=o&63|128);return e-n}function Qt(r,t){return RangeError(`index out of range: ${r.pos} + ${t??1} > ${r.len}`)}function _s(r,t){return(r[t-4]|r[t-3]<<8|r[t-2]<<16|r[t-1]<<24)>>>0}var jc=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,Qt(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 Qt(this,4);return _s(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Qt(this,4);return _s(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Qt(this,4);let t=Hl(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw Qt(this,4);let t=Vl(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 Qt(this,t);return this.pos+=t,e===n?new Uint8Array(0):this.buf.subarray(e,n)}string(){let t=this.bytes();return jl(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Qt(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Qt(this);while((this.buf[this.pos++]&128)!==0);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 Kt(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 Qt(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 Qt(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 Qt(this,8);let t=_s(this.buf,this.pos+=4),e=_s(this.buf,this.pos+=4);return new Kt(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=Kl(this.buf,this.pos);return this.pos+=Wn(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 Wc(r){return new jc(r instanceof Uint8Array?r:r.subarray())}function Ds(r,t,e){let n=Wc(r);return t.decode(n,void 0,e)}function Gc(r){let t=r??8192,e=t>>>1,n,o=t;return function(i){if(i<1||i>e)return _t(i);o+i>t&&(n=_t(t),o=0);let a=n.subarray(o,o+=i);return(o&7)!==0&&(o=(o|7)+1),a}}var dr=class{fn;len;next;val;constructor(t,e,n){this.fn=t,this.len=e,this.next=void 0,this.val=n}};function Yc(){}var Xc=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},Rg=Gc();function Og(r){return globalThis.Buffer!=null?_t(r):Rg(r)}var Yn=class{len;head;tail;states;constructor(){this.len=0,this.head=new dr(Yc,0,0),this.tail=this.head,this.states=null}_push(t,e,n){return this.tail=this.tail.next=new dr(t,e,n),this.len+=e,this}uint32(t){return this.len+=(this.tail=this.tail.next=new Qc((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(Rs,10,Kt.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let e=Kt.fromBigInt(t);return this._push(Rs,e.length(),e)}uint64Number(t){return this._push(kl,Wn(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=Kt.fromBigInt(t).zzEncode();return this._push(Rs,e.length(),e)}sint64Number(t){let e=Kt.fromNumber(t).zzEncode();return this._push(Rs,e.length(),e)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(Zc,1,t?1:0)}fixed32(t){return this._push(Gn,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let e=Kt.fromBigInt(t);return this._push(Gn,4,e.lo)._push(Gn,4,e.hi)}fixed64Number(t){let e=Kt.fromNumber(t);return this._push(Gn,4,e.lo)._push(Gn,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(Fl,4,t)}double(t){return this._push(zl,8,t)}bytes(t){let e=t.length>>>0;return e===0?this._push(Zc,1,0):this.uint32(e)._push(Ug,e,t)}string(t){let e=$l(t);return e!==0?this.uint32(e)._push($c,e,t):this._push(Zc,1,0)}fork(){return this.states=new Xc(this),this.head=this.tail=new dr(Yc,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 dr(Yc,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=Og(this.len),n=0;for(;t!=null;)t.fn(t.val,e,n),n+=t.len,t=t.next;return e}};function Zc(r,t,e){t[e]=r&255}function Pg(r,t,e){for(;r>127;)t[e++]=r&127|128,r>>>=7;t[e]=r}var Qc=class extends dr{next;constructor(t,e){super(Pg,t,e),this.next=void 0}};function Rs(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 Gn(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 Ug(r,t,e){t.set(r,e)}globalThis.Buffer!=null&&(Yn.prototype.bytes=function(r){let t=r.length>>>0;return this.uint32(t),t>0&&this._push(Ng,t,r),this},Yn.prototype.string=function(r){let t=globalThis.Buffer.byteLength(r);return this.uint32(t),t>0&&this._push(Mg,t,r),this});function Ng(r,t,e){t.set(r,e)}function Mg(r,t,e){r.length<40?$c(r,t,e):t.utf8Write!=null?t.utf8Write(r,e):t.set(ur(r),e)}function Jc(){return new Yn}function Os(r,t){let e=Jc();return t.encode(r,e,{lengthDelimited:!1}),e.finish()}var Zn;(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"})(Zn||(Zn={}));function tf(r,t,e,n){return{name:r,type:t,encode:e,decode:n}}function Ps(r,t){return tf("message",Zn.LENGTH_DELIMITED,r,t)}var Xn=class extends Error{code="ERR_MAX_LENGTH";name="MaxLengthError"};var Us;(function(r){let t;r.codec=()=>(t==null&&(t=Ps((e,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),e.webtransportCerthashes!=null)for(let s of e.webtransportCerthashes)n.uint32(10),n.bytes(s);if(e.streamMuxers!=null)for(let s of e.streamMuxers)n.uint32(18),n.string(s);o.lengthDelimited!==!1&&n.ldelim()},(e,n,o={})=>{let s={webtransportCerthashes:[],streamMuxers:[]},i=n==null?e.len:e.pos+n;for(;e.pos<i;){let a=e.uint32();switch(a>>>3){case 1:{if(o.limits?.webtransportCerthashes!=null&&s.webtransportCerthashes.length===o.limits.webtransportCerthashes)throw new Xn('Decode error - map field "webtransportCerthashes" had too many elements');s.webtransportCerthashes.push(e.bytes());break}case 2:{if(o.limits?.streamMuxers!=null&&s.streamMuxers.length===o.limits.streamMuxers)throw new Xn('Decode error - map field "streamMuxers" had too many elements');s.streamMuxers.push(e.string());break}default:{e.skipType(a&7);break}}}return s})),t),r.encode=e=>Os(e,r.codec()),r.decode=(e,n)=>Ds(e,r.codec(),n)})(Us||(Us={}));var Qn;(function(r){let t;r.codec=()=>(t==null&&(t=Ps((e,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),e.identityKey!=null&&e.identityKey.byteLength>0&&(n.uint32(10),n.bytes(e.identityKey)),e.identitySig!=null&&e.identitySig.byteLength>0&&(n.uint32(18),n.bytes(e.identitySig)),e.extensions!=null&&(n.uint32(34),Us.codec().encode(e.extensions,n)),o.lengthDelimited!==!1&&n.ldelim()},(e,n,o={})=>{let s={identityKey:wt(0),identitySig:wt(0)},i=n==null?e.len:e.pos+n;for(;e.pos<i;){let a=e.uint32();switch(a>>>3){case 1:{s.identityKey=e.bytes();break}case 2:{s.identitySig=e.bytes();break}case 4:{s.extensions=Us.codec().decode(e,e.uint32(),{limits:o.limits?.extensions});break}default:{e.skipType(a&7);break}}}return s})),t),r.encode=e=>Os(e,r.codec()),r.decode=(e,n)=>Ds(e,r.codec(),n)})(Qn||(Qn={}));async function rf(r,t,e){let n=await r.sign(Yl(t));return Qn.encode({identityKey:Te(r.publicKey),identitySig:n,extensions:e})}async function nf(r,t,e){try{let n=Qn.decode(r),o=Cn(n.identityKey);if(e?.equals(o)===!1)throw new Error(`Payload identity key ${o} does not match expected remote identity key ${e}`);if(!t)throw new Error("Remote static does not exist");let s=Yl(t);if(!await o.verify(s,n.identitySig))throw new Error("Invalid payload signature");return n}catch(n){throw new to(n.message)}}function Yl(r){let t=ur("noise-libp2p-static-key:");return r instanceof Uint8Array?Xr([t,r],t.length+r.length):(r.prepend(t),r)}var ef=class extends ce{stream;handshake;metrics;decoder;constructor(t,e,n){super({log:t.log,inactivityTimeout:t.inactivityTimeout,maxReadBufferLength:t.maxReadBufferLength,direction:t.direction}),this.stream=t,this.handshake=e,this.metrics=n,this.decoder=new Ss({lengthDecoder:qr,maxBufferSize:16*1024*1024,encodingLength:()=>2});let o=c=>{try{for(let f of this.decoder.decode(c.data))this.onData(this.decrypt(f))}catch(f){this.abort(f)}};this.stream.addEventListener("message",o);let s=c=>{c.error!=null?c.local===!0?this.abort(c.error):this.onRemoteReset():this.onTransportClosed()};this.stream.addEventListener("close",s);let i=()=>{this.safeDispatchEvent("drain")};this.stream.addEventListener("drain",i);let a=()=>{this.onRemoteCloseWrite()};this.stream.addEventListener("remoteCloseWrite",a)}encrypt(t){let e=new le;for(let n=0;n<t.byteLength;n+=65519){let o=n+65519;o>t.byteLength&&(o=t.byteLength);let s;t instanceof Uint8Array?s=this.handshake.encrypt(t.subarray(n,o)):s=this.handshake.encrypt(t.sublist(n,o)),this.metrics?.encryptedPackets.increment(),e.append(Vr(s.byteLength)),e.append(s)}return e}decrypt(t){let e=new le;for(let n=0;n<t.byteLength;n+=65535){let o=n+65535;if(o>t.byteLength&&(o=t.byteLength),o-ac<n)throw new Error("Invalid chunk");let s;t instanceof Uint8Array?s=t.subarray(n,o):s=t.sublist(n,o);let i=t.subarray(n,o-ac);try{let a=this.handshake.decrypt(s,i);this.metrics?.decryptedPackets.increment(),e.append(a)}catch(a){throw this.metrics?.decryptErrors.increment(),a}}return e}close(t){return this.stream.close(t)}sendPause(){this.stream.pause()}sendResume(){this.stream.resume()}sendReset(t){this.stream.abort(t)}sendData(t){return{sentBytes:t.byteLength,canSendMore:this.stream.send(this.encrypt(t))}}};function of(r,t,e){return new ef(r,t,e)}async function Zl(r,t){let{log:e,connection:n,crypto:o,privateKey:s,prologue:i,s:a,remoteIdentityKey:c,extensions:f}=r,u=await rf(s,a.publicKey,f),h=new jn({crypto:o,protocolName:"Noise_XX_25519_ChaChaPoly_SHA256",initiator:!0,prologue:i,s:a});Nc(h.s,e),e.trace("Stage 0 - Initiator starting to send first message."),await n.write(h.writeMessageA(hr),t),e.trace("Stage 0 - Initiator finished sending first message."),Mc(h.e,e),e.trace("Stage 1 - Initiator waiting to receive first message from responder...");let l=h.readMessageB(await n.read(t));e.trace("Stage 1 - Initiator received the message."),kc(h.re,e),Dl(h.rs,e),e.trace("Initiator going to check remote's signature...");let p=await nf(l,h.rs,c);e.trace("All good with the signature!"),e.trace("Stage 2 - Initiator sending third handshake message."),await n.write(h.writeMessageC(u),t),e.trace("Stage 2 - Initiator sent message with signed payload.");let[m,b]=h.ss.split();return Kc(m,b,e),{payload:p,encrypt:g=>m.encryptWithAd(hr,g),decrypt:(g,w)=>b.decryptWithAd(hr,g,w)}}async function Xl(r,t){let{log:e,connection:n,crypto:o,privateKey:s,prologue:i,s:a,remoteIdentityKey:c,extensions:f}=r,u=await rf(s,a.publicKey,f),h=new jn({crypto:o,protocolName:"Noise_XX_25519_ChaChaPoly_SHA256",initiator:!1,prologue:i,s:a});Nc(h.s,e),e.trace("Stage 0 - Responder waiting to receive first message."),h.readMessageA(await n.read(t)),e.trace("Stage 0 - Responder received first message."),kc(h.re,e),e.trace("Stage 1 - Responder sending out first message with signed payload and static key."),await n.write(h.writeMessageB(u),t),e.trace("Stage 1 - Responder sent the second handshake message with signed payload."),Mc(h.e,e),e.trace("Stage 2 - Responder waiting for third handshake message...");let l=h.readMessageC(await n.read(t));e.trace("Stage 2 - Responder received the message, finished handshake.");let p=await nf(l,h.rs,c),[m,b]=h.ss.split();return Kc(m,b,e),{payload:p,encrypt:g=>b.encryptWithAd(hr,g),decrypt:(g,w)=>m.decryptWithAd(hr,g,w)}}var Ns=class{protocol="/noise";crypto;prologue;staticKey;extensions;metrics;components;log;constructor(t,e={}){let{staticNoiseKey:n,extensions:o,crypto:s,prologueBytes:i}=e,{metrics:a}=t;this.components=t,this.log=t.logger.forComponent("libp2p:noise");let c=s??il;this.crypto=al(c),this.extensions={webtransportCerthashes:[],...o},this.metrics=a?cl(a):void 0,n?this.staticKey=c.generateX25519KeyPairFromSeed(n):this.staticKey=c.generateX25519KeyPair(),this.prologue=i??wt(0)}[Symbol.toStringTag]="@chainsafe/libp2p-noise";[fo]=["@libp2p/connection-encryption","@chainsafe/libp2p-noise"];async secureOutbound(t,e){let n=t.log?.newScope("noise")??this.log,o=ic(t,{lengthEncoder:Vr,lengthDecoder:qr,maxDataLength:65535}),s=await this.performHandshakeInitiator(o,this.components.privateKey,n,e?.remotePeer?.publicKey,e),i=Cn(s.payload.identityKey);return{connection:of(o.unwrap(),s,this.metrics),remoteExtensions:s.payload.extensions,remotePeer:va(i),streamMuxer:e?.skipStreamMuxerNegotiation===!0?void 0:this.getStreamMuxer(s.payload.extensions?.streamMuxers)}}getStreamMuxer(t){if(t==null||t.length===0)return;let e=this.components.upgrader.getStreamMuxers();if(e!=null)for(let n of t){let o=e.get(n);if(o!=null)return o}if(t.length)throw new yr("Early muxer negotiation was requested but the initiator and responder had no common muxers")}async secureInbound(t,e){let n=t.log?.newScope("noise")??this.log,o=ic(t,{lengthEncoder:Vr,lengthDecoder:qr,maxDataLength:65535}),s=await this.performHandshakeResponder(o,this.components.privateKey,n,e?.remotePeer?.publicKey,e),i=Cn(s.payload.identityKey);return{connection:of(o.unwrap(),s,this.metrics),remoteExtensions:s.payload.extensions,remotePeer:va(i),streamMuxer:e?.skipStreamMuxerNegotiation===!0?void 0:this.getStreamMuxer(s.payload.extensions?.streamMuxers)}}async performHandshakeInitiator(t,e,n,o,s){let i,a=s?.skipStreamMuxerNegotiation===!0?[]:[...this.components.upgrader.getStreamMuxers().keys()];try{i=await Zl({connection:t,privateKey:e,remoteIdentityKey:o,log:n.newScope("xxhandshake"),crypto:this.crypto,prologue:this.prologue,s:this.staticKey,extensions:{streamMuxers:a,webtransportCerthashes:[],...this.extensions}},s),this.metrics?.xxHandshakeSuccesses.increment()}catch(c){throw this.metrics?.xxHandshakeErrors.increment(),c}return i}async performHandshakeResponder(t,e,n,o,s){let i,a=s?.skipStreamMuxerNegotiation===!0?[]:[...this.components.upgrader.getStreamMuxers().keys()];try{i=await Xl({connection:t,privateKey:e,remoteIdentityKey:o,log:n.newScope("xxhandshake"),crypto:this.crypto,prologue:this.prologue,s:this.staticKey,extensions:{streamMuxers:a,webtransportCerthashes:[],...this.extensions}},s),this.metrics?.xxHandshakeSuccesses.increment()}catch(c){throw this.metrics?.xxHandshakeErrors.increment(),c}return i}};function Ql(r={}){return t=>new Ns(t,r)}var pr=class extends Event{type;detail;constructor(t,e){super(t),this.type=t,this.detail=e}};function sf(r){throw new Error("Not implemented")}var af=class extends xs{writer;reader;constructor(t){super(t),this.writer=t.stream.writable.getWriter(),this.reader=t.stream.readable.getReader(),this.writer.closed.then(()=>{this.log("writer closed gracefully")}).catch(e=>{e.message.includes("STOP_SENDING")||e.message.includes("StopSending")?this.onRemoteCloseRead():e.message.includes("RESET_STREAM")||e.message.includes("Reset")?this.onRemoteReset():this.log("writer close promise rejected - %e",e)}),this.readData()}readData(){Promise.resolve().then(async()=>{for(;;){let t=await this.reader.read();if(t.value!=null&&this.onData(t.value),t.done){this.log("remote closed write"),this.onRemoteCloseWrite();return}if(this.readStatus==="paused")break}}).catch(t=>{this.abort(t)}).finally(()=>{this.reader.releaseLock()})}sendData(t){for(let n of t)this.writer.write(n).catch(o=>{this.abort(o)});if(this.log.trace("desired size after sending %d bytes is %d bytes",t.byteLength,this.writer.desiredSize),this.writer.desiredSize==null)return{sentBytes:t.byteLength,canSendMore:!1};let e=this.writer.desiredSize>0;return e||this.writer.ready.then(()=>{this.safeDispatchEvent("drain")},n=>{this.abort(n)}),{sentBytes:t.byteLength,canSendMore:e}}sendReset(t){this.writer.abort(t).catch(e=>{this.log.error("error aborting writer - %e",e)})}async sendCloseWrite(t){this.log("sendCloseWrite closing writer"),await $t(this.writer.close().catch(()=>{}),t?.signal),this.log("sendCloseWrite closed writer")}async sendCloseRead(t){this.log("sendCloseRead cancelling reader"),await $t(this.reader.cancel(),t?.signal),this.log("sendCloseRead cancelled reader")}sendPause(){}sendResume(){this.readData()}};function cf(r,t,e,n,o){return new af({...o,stream:r,id:t,direction:e,log:n.newScope(`${e}:${t}`),protocol:""})}var Jl="/webtransport",ff=class extends ws{webTransport;streamIDCounter;reader;constructor(t,e){super(e,{protocol:Jl,name:"muxer"}),this.webTransport=t,this.streamIDCounter=0,this.reader=this.webTransport.incomingBidirectionalStreams.getReader(),Promise.resolve().then(async()=>{for(;;){let{done:n,value:o}=await this.reader.read();if(n||o==null)break;this.onRemoteStream(cf(o,String(this.streamIDCounter++),"inbound",this.log,this.streamOptions))}}).catch(n=>{this.log.error("could not create a new stream - %e",n)})}async onCreateStream(t){let e=await this.webTransport.createBidirectionalStream();return t?.signal?.throwIfAborted(),cf(e,String(this.streamIDCounter++),"outbound",this.log,t)}onData(){}sendReset(){this.webTransport.close()}};function td(r){return{protocol:Jl,createStreamMuxer(t){return new ff(r,t)}}}var uf=class extends bs{cleanUpWTSession;constructor(t){super(t),this.cleanUpWTSession=t.cleanUpWTSession}sendData(t){return{sentBytes:t.byteLength,canSendMore:!0}}sendReset(){this.cleanUpWTSession("abort")}async sendClose(t){this.cleanUpWTSession("close"),t?.signal?.throwIfAborted()}sendPause(){}sendResume(){}},ed=r=>new uf(r);function rd(r,t){return t.filter(n=>!!r.find(o=>gt(n,o))).length===t.length}var kg=Object.values(Ye).map(r=>r.decoder).reduce((r,t)=>r.or(t));function Kg(r){return pe.decode(kg.decode(r))}function hf(r){if(!ls.matches(r))throw new no("Invalid multiaddr, was not a WebTransport address");let t=[],e;for(let s of r.getComponents())s.name==="certhash"&&t.push(Kg(s.value??"")),s.name==="p2p"&&e==null&&(e=gh(s.value??""));let n=wh(r),o=n.host;return n.type==="ip6"&&o.includes(":")&&(o=`[${o}]`),{url:`https://${o}:${n.port}`,certhashes:t,remotePeer:e}}var Ms=class extends ce{writer;reader;constructor(t){super(t),this.writer=t.stream.writable.getWriter(),this.reader=t.stream.readable.getReader(),Promise.resolve().then(async()=>{for(;;){let{done:e,value:n}=await this.reader.read();if(n!=null&&this.onData(n),e)break}}).catch(e=>{this.abort(e)})}async close(t){await $t(this.writer.close(),t?.signal)}sendData(t){return this.writer.write(t.subarray()).catch(e=>{this.abort(e)}),{sentBytes:t.byteLength,canSendMore:!0}}sendReset(t){this.writer.abort(t).catch(e=>{this.log.error("could not send reset - %e",e)})}sendPause(){}sendResume(){}};var nd=globalThis.WebTransport;var lf=class{log;components;config;metrics;constructor(t,e={}){this.log=t.logger.forComponent("libp2p:webtransport"),this.components=t,this.config={...e,certificates:e.certificates??[]},t.metrics!=null&&(this.metrics={dialerEvents:t.metrics.registerCounterGroup("libp2p_webtransport_dialer_events_total",{label:"event",help:"Total count of WebTransport dialer events by type"})})}[Symbol.toStringTag]="@libp2p/webtransport";[pf]=!0;[fo]=["@libp2p/transport"];async dial(t,e){e.signal.throwIfAborted(),this.log("dialing %s",t),e=e??{};let{url:n,certhashes:o,remotePeer:s}=hf(t),i,a,c=()=>{},f=!1,u=!1,h=!1;try{this.metrics?.dialerEvents.increment({pending:!0});let l=new nd(`${n}/.well-known/libp2p-webtransport?type=noise`,{serverCertificateHashes:o.map(m=>({algorithm:"sha-256",value:Et(m.digest)}))});c=m=>{if(!f)try{this.metrics?.dialerEvents.increment({[m]:!0}),l.close()}catch(b){this.log.error("error closing wt session - %e",b)}finally{a!=null&&(a.timeline.close=Date.now()),f=!0}},i=()=>{c(u?"noise_timeout":"ready_timeout")},e.signal.addEventListener("abort",i,{once:!0}),this.log("wait for session to be ready"),e.onProgress?.(new pr("webtransport:wait-for-session")),await Promise.race([l.closed,l.ready]),this.log("session became ready"),u=!0,this.metrics?.dialerEvents.increment({ready:!0}),l.closed.catch(m=>{this.log.error("error on remote wt session close - %e",m)}).finally(()=>{c("remote_close")}),this.metrics?.dialerEvents.increment({open:!0}),a=ed({remoteAddr:t,cleanUpWTSession:c,direction:"outbound",log:this.components.logger.forComponent("libp2p:webtransport:connection")});let p=await this.authenticateWebTransport({wt:l,maConn:a,remotePeer:s,certhashes:o,...e});if(h=!0,s!=null&&(h=s.equals(p)),!h)throw new yr("Failed to authenticate webtransport");return await e.upgrader.upgradeOutbound(a,{...e,skipEncryption:!0,remotePeer:p,muxerFactory:td(l),skipProtection:!0})}catch(l){throw this.log.error("caught wt session err - %e",l),c(h?"upgrade_error":u?"noise_error":"ready_error"),l}finally{i!=null&&e.signal?.removeEventListener("abort",i)}}async authenticateWebTransport({wt:t,maConn:e,remotePeer:n,certhashes:o,onProgress:s,signal:i}){s?.(new pr("webtransport:open-authentication-stream"));let a=await t.createBidirectionalStream();i?.throwIfAborted();let c=new Ms({stream:a,log:e.log.newScope("muxer")}),f=Ql()(this.components);s?.(new pr("webtransport:secure-outbound-connection"));let{remoteExtensions:u,remotePeer:h}=await f.secureOutbound(c,{signal:i,remotePeer:n,skipStreamMuxerNegotiation:!0});if(s?.(new pr("webtransport:close-authentication-stream")),await c.close({signal:i}),!rd(u?.webtransportCerthashes??[],o.map(l=>l.bytes)))throw new tt("Our certhashes are not a subset of the remote's reported certhashes");return h}createListener(t){return sf(this.components,{...t,certificates:this.config.certificates})}listenFilter(){return[]}dialFilter(t){return globalThis.WebTransport==null?[]:t.filter(e=>{if(!ls.exactMatch(e))return!1;let{url:n,certhashes:o}=hf(e);return n!=null&&o.length>0})}};function Fg(r={}){return t=>new lf(t,r)}return hd(Hg);})();
|
|
2
|
+
"use strict";var Libp2PWebtransport=(()=>{var Ms=Object.defineProperty;var ad=Object.getOwnPropertyDescriptor;var cd=Object.getOwnPropertyNames;var fd=Object.prototype.hasOwnProperty;var rt=(r,t)=>{for(var e in t)Ms(r,e,{get:t[e],enumerable:!0})},ud=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of cd(t))!fd.call(r,o)&&o!==e&&Ms(r,o,{get:()=>t[o],enumerable:!(n=ad(t,o))||n.enumerable});return r};var hd=r=>ud(Ms({},"__esModule",{value:!0}),r);var Hg={};rt(Hg,{webTransport:()=>Fg});var to=class extends Error{static name="UnexpectedPeerError";constructor(t="Unexpected Peer"){super(t),this.name="UnexpectedPeerError"}},yr=class extends Error{static name="InvalidCryptoExchangeError";constructor(t="Invalid crypto exchange"){super(t),this.name="InvalidCryptoExchangeError"}},tt=class extends Error{static name="InvalidParametersError";constructor(t="Invalid parameters"){super(t),this.name="InvalidParametersError"}},gr=class extends Error{static name="InvalidPublicKeyError";constructor(t="Invalid public key"){super(t),this.name="InvalidPublicKeyError"}};var eo=class extends Error{static name="MuxerClosedError";constructor(t="The muxer is closed"){super(t),this.name="MuxerClosedError"}},ro=class extends Error{static name="StreamResetError";constructor(t="The stream has been reset"){super(t),this.name="StreamResetError"}};var Be=class extends Error{static name="StreamStateError";constructor(t="The stream is in an invalid state"){super(t),this.name="StreamStateError"}},en=class extends Error{static name="StreamBufferError";constructor(t="The stream buffer was full"){super(t),this.name="StreamBufferError"}};var no=class extends Error{static name="InvalidMultiaddrError";constructor(t="Invalid multiaddr"){super(t),this.name="InvalidMultiaddrError"}},oo=class extends Error{static name="InvalidCIDError";constructor(t="Invalid CID"){super(t),this.name="InvalidCIDError"}},so=class extends Error{static name="InvalidMultihashError";constructor(t="Invalid Multihash"){super(t),this.name="InvalidMultihashError"}};var je=class extends Error{static name="UnsupportedKeyTypeError";constructor(t="Unsupported key type"){super(t),this.name="UnsupportedKeyTypeError"}};var io=class extends Event{data;constructor(t,e){super("message",e),this.data=t}},br=class extends Event{error;local;constructor(t,e,n){super("close",n),this.error=e,this.local=t}},ao=class extends br{constructor(t,e){super(!0,t,e)}},co=class extends br{constructor(t,e){super(!1,t,e)}};var Ks=Symbol.for("@libp2p/peer-id");var pf=Symbol.for("@libp2p/transport");var df;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(df||(df={}));function ld(r){return typeof r?.handleEvent=="function"}function dd(r){return r===!0||r===!1}function pd(r){return dd(r)?r:r?.capture??!1}function Fs(r){let t={capture:pd(r),once:!!r?.once};return r?.passive!=null&&(t.passive=r?.passive),r?.signal!=null&&(t.signal=r?.signal),t}function mf(r,t){return Fs(r).capture===Fs(t).capture}var wr=class extends EventTarget{#t=new Map;constructor(){super()}listenerCount(t){let e=this.#t.get(t);return e==null?0:e.length}addEventListener(t,e,n){let o=Fs(n);if(o?.signal?.aborted===!0)return;let s=f=>{o.once&&this.removeEventListener(t,e,o),ld(e)?e.handleEvent(f):e(f)},i=this.#t.get(t);if(i==null&&(i=[],this.#t.set(t,i)),i.some(f=>f.callback!==e?!1:mf(f.options,o)))return;super.addEventListener(t,s,o);let c=()=>{this.removeEventListener(t,e,o)};o.signal?.addEventListener("abort",c),i.push({callback:e,wrapper:s,options:o,onAbort:c})}removeEventListener(t,e,n){let o=this.#t.get(t);if(o==null){super.removeEventListener(t,e??null,n);return}this.#t.set(t,o.filter(s=>s.callback===e&&mf(s.options,n)?(super.removeEventListener(t,s.wrapper,n),s.options?.signal?.removeEventListener("abort",s.onAbort),!1):!0))}safeDispatchEvent(t,e={}){return this.dispatchEvent(new CustomEvent(t,e))}};var fo=Symbol.for("@libp2p/service-capabilities");var $s={};rt($s,{base58btc:()=>lt,base58flickr:()=>Sd});var wb=new Uint8Array(0);function gf(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 Ft(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return We(r);if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return We(new Uint8Array(r.buffer,r.byteOffset,r.byteLength));throw new Error("Unknown type, must be binary type")}function bf(r){let t=new Uint8Array(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);return t}var yf=4096;function wf(r){let t=r.length;if(t<=yf)return String.fromCharCode.apply(String,r);let e="",n=0;for(;n<t;)e+=String.fromCharCode.apply(String,r.subarray(n,n+=yf));return e}function md(r){return r?.buffer instanceof ArrayBuffer}function We(r){return md(r)?r:r.slice()}function yd(r,t,e){if(r.length>=255)throw new TypeError("Alphabet too long");for(var n=new Uint8Array(256),o=0;o<n.length;o++)n[o]=255;for(var s=0;s<r.length;s++){var i=r.charAt(s),a=i.charCodeAt(0);if(n[a]!==255)throw new TypeError(i+" is ambiguous");if(n[a]=s,e){var c=i.toLowerCase().charCodeAt(0),f=i.toUpperCase().charCodeAt(0);c!==a&&(n[c]=s),f!==a&&(n[f]=s)}}var u=r.length,h=r.charAt(0),l=Math.log(u)/Math.log(256),p=Math.log(256)/Math.log(u);function m(w){if(w instanceof Uint8Array||(ArrayBuffer.isView(w)?w=new Uint8Array(w.buffer,w.byteOffset,w.byteLength):Array.isArray(w)&&(w=Uint8Array.from(w))),!(w instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(w.length===0)return"";for(var S=0,x=0,I=0,_=w.length;I!==_&&w[I]===0;)I++,S++;for(var N=(_-I)*p+1>>>0,k=new Uint8Array(N);I!==_;){for(var P=w[I],R=0,U=N-1;(P!==0||R<x)&&U!==-1;U--,R++)P+=256*k[U]>>>0,k[U]=P%u>>>0,P=P/u>>>0;if(P!==0)throw new Error("Non-zero carry");x=R,I++}for(var M=N-x;M!==N&&k[M]===0;)M++;for(var D=h.repeat(S);M<N;++M)D+=r.charAt(k[M]);return D}function b(w){if(typeof w!="string")throw new TypeError("Expected String");if(w.length===0)return new Uint8Array;var S=0;if(w[S]!==" "){for(var x=0,I=0;w[S]===h;)x++,S++;for(var _=(w.length-S)*l+1>>>0,N=new Uint8Array(_);w[S];){var k=n[w.charCodeAt(S)];if(k===255)return;for(var P=0,R=_-1;(k!==0||P<I)&&R!==-1;R--,P++)k+=u*N[R]>>>0,N[R]=k%256>>>0,k=k/256>>>0;if(k!==0)throw new Error("Non-zero carry");I=P,S++}if(w[S]!==" "){for(var U=_-I;U!==_&&N[U]===0;)U++;for(var M=new Uint8Array(x+(_-U)),D=x;U!==_;)M[D++]=N[U++];return M}}}function g(w){var S=b(w);if(S)return S;throw new Error(`Non-${t} character`)}return{encode:m,decodeUnsafe:b,decode:g}}var gd=yd,bd=gd,Ef=bd;var Hs=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")}},zs=class{name;prefix;baseDecode;prefixCodePoint;constructor(t,e,n){this.name=t,this.prefix=e;let o=e.codePointAt(0);if(o===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=o,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 Sf(this,t)}},Vs=class{decoders;constructor(t){this.decoders=t}or(t){return Sf(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 Sf(r,t){return new Vs({...r.decoders??{[r.prefix]:r},...t.decoders??{[t.prefix]:t}})}var qs=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(t,e,n,o){this.name=t,this.prefix=e,this.baseEncode=n,this.baseDecode=o,this.encoder=new Hs(t,e,n),this.decoder=new zs(t,e,o)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function xr({name:r,prefix:t,encode:e,decode:n}){return new qs(r,t,e,n)}function Le({name:r,prefix:t,alphabet:e,caseInsensitive:n=!1}){let{encode:o,decode:s}=Ef(e,r,n);return xr({prefix:t,name:r,encode:o,decode:i=>Ft(s(i))})}function wd(r,t,e,n){let o=r.length;for(;r[o-1]==="=";)--o;let s=new Uint8Array(o*e/8|0),i=0,a=0,c=0;for(let f=0;f<o;++f){let u=t[r[f]];if(u===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<e|u,i+=e,i>=8&&(i-=8,s[c++]=255&a>>i)}if(i>=e||(255&a<<8-i)!==0)throw new SyntaxError("Unexpected end of data");return s}function xd(r,t,e){let n=t[t.length-1]==="=",o=(1<<e)-1,s="",i=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],i+=8;i>e;)i-=e,s+=t[o&a>>i];if(i!==0&&(s+=t[o&a<<e-i]),n)for(;(s.length*e&7)!==0;)s+="=";return s}function Ed(r,t){let e={};for(let n=0;n<r.length;++n)if(e[r[n]]=n,t){let o=r[n].toLowerCase(),s=r[n].toUpperCase();o!==r[n]&&(e[o]=n),s!==r[n]&&(e[s]=n)}return e}function ht({name:r,prefix:t,bitsPerChar:e,alphabet:n,caseInsensitive:o=!1}){let s=Ed(n,o);return xr({prefix:t,name:r,encode(i){return xd(i,n,e)},decode(i){return wd(i,s,e,r)}})}var lt=Le({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Sd=Le({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var js={};rt(js,{base32:()=>Ie,base32hex:()=>Ld,base32hexpad:()=>Cd,base32hexpadupper:()=>Td,base32hexupper:()=>Id,base32pad:()=>vd,base32padupper:()=>Bd,base32upper:()=>Ad,base32z:()=>_d});var Ie=ht({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5,caseInsensitive:!0}),Ad=ht({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5,caseInsensitive:!0}),vd=ht({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5,caseInsensitive:!0}),Bd=ht({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5,caseInsensitive:!0}),Ld=ht({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5,caseInsensitive:!0}),Id=ht({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5,caseInsensitive:!0}),Cd=ht({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5,caseInsensitive:!0}),Td=ht({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5,caseInsensitive:!0}),_d=ht({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Ws={};rt(Ws,{base36:()=>rn,base36upper:()=>Dd});var rn=Le({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz",caseInsensitive:!0}),Dd=Le({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",caseInsensitive:!0});var pe={};rt(pe,{Digest:()=>Ge,create:()=>jt,decode:()=>Ar,equals:()=>Ys,hasCode:()=>Zd});var Rd=Bf,Af=128,Od=127,Pd=~Od,Ud=Math.pow(2,31);function Bf(r,t,e){t=t||[],e=e||0;for(var n=e;r>=Ud;)t[e++]=r&255|Af,r/=128;for(;r&Pd;)t[e++]=r&255|Af,r>>>=7;return t[e]=r|0,Bf.bytes=e-n+1,t}var Nd=Gs,kd=128,vf=127;function Gs(r,n){var e=0,n=n||0,o=0,s=n,i,a=r.length;do{if(s>=a)throw Gs.bytes=0,new RangeError("Could not decode varint");i=r[s++],e+=o<28?(i&vf)<<o:(i&vf)*Math.pow(2,o),o+=7}while(i>=kd);return Gs.bytes=s-n,e}var Md=Math.pow(2,7),Kd=Math.pow(2,14),Fd=Math.pow(2,21),Hd=Math.pow(2,28),zd=Math.pow(2,35),Vd=Math.pow(2,42),qd=Math.pow(2,49),$d=Math.pow(2,56),jd=Math.pow(2,63),Wd=function(r){return r<Md?1:r<Kd?2:r<Fd?3:r<Hd?4:r<zd?5:r<Vd?6:r<qd?7:r<$d?8:r<jd?9:10},Gd={encode:Rd,decode:Nd,encodingLength:Wd},Yd=Gd,nn=Yd;function on(r,t=0){let e=nn.decode(r,t),n=nn.decode.bytes;if(n>9)throw new RangeError("Invalid varint: too long");if(n>1&&r[t+n-1]===0)throw new RangeError("Invalid varint: not minimally encoded");return[e,n]}function Er(r,t,e=0){return nn.encode(r,t,e),t}function Sr(r){return nn.encodingLength(r)}function jt(r,t){let e=t.byteLength,n=Sr(r),o=n+Sr(e),s=new Uint8Array(o+e);return Er(r,s,0),Er(e,s,n),s.set(t,o),new Ge(r,e,t,s)}function Ar(r){let t=Ft(r),[e,n]=on(t),[o,s]=on(t.subarray(n)),i=t.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new Ge(e,o,i,t)}function Ys(r,t){if(r===t)return!0;{let e=t;return r.code===e.code&&r.size===e.size&&e.bytes instanceof Uint8Array&&gf(r.bytes,e.bytes)}}var Ge=class{code;size;digest;bytes;constructor(t,e,n,o){this.code=t,this.size=e,this.digest=We(n),this.bytes=We(o)}};function Zd(r,t){return r.code===t}function Lf(r,t){let{bytes:e,version:n}=r;return n===0?Qd(e,Zs(r),t??lt.encoder):Jd(e,Zs(r),t??Ie.encoder)}var If=new WeakMap;function Zs(r){let t=If.get(r);if(t==null){let e=new Map;return If.set(r,e),e}return t}var yt=class r{code;version;multihash;bytes;"/";constructor(t,e,n,o){this.code=e,this.version=t,this.multihash=n,this.bytes=We(o),this["/"]=this.bytes}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!==sn)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(e.code!==tp)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=jt(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&&Ys(t.multihash,n.multihash)}toString(t){return Lf(this,t)}toJSON(){return{"/":Lf(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:o,multihash:s,bytes:i}=e;return new r(n,o,s,i??Cf(n,o,s.bytes))}else if(e[ep]===!0){let{version:n,multihash:o,code:s}=e,i=Ar(o);return r.create(n,s,i)}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!==sn)throw new Error(`Version 0 CID must use dag-pb (code: ${sn}) block encoding`);return new r(t,e,n,n.bytes)}case 1:{let o=Cf(t,e,n.bytes);return new r(t,e,n,o)}default:throw new Error("Invalid version")}}static createV0(t){return r.create(0,sn,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,o=Ft(t.subarray(n,n+e.multihashSize));if(o.byteLength!==e.multihashSize)throw new Error("Incorrect length");let s=o.subarray(e.multihashSize-e.digestSize),i=new Ge(e.multihashCode,e.digestSize,s,o);return[e.version===0?r.createV0(i):r.createV1(e.codec,i),t.subarray(e.size)]}static inspectBytes(t){let e=0,n=()=>{let[h,l]=on(t.subarray(e));return e+=l,h},o=n(),s=sn;if(o===18?(o=0,e=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=e,a=n(),c=n(),f=e+c,u=f-i;return{version:o,codec:s,multihashCode:a,digestSize:c,multihashSize:u,size:f}}static parse(t,e){let[n,o]=Xd(t,e),s=r.decode(o);if(s.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Zs(s).set(n,t),s}};function Xd(r,t){switch(r[0]){case"Q":{let e=t??lt;return[lt.prefix,e.decode(`${lt.prefix}${r}`)]}case lt.prefix:{let e=t??lt;return[lt.prefix,e.decode(r)]}case Ie.prefix:{let e=t??Ie;return[Ie.prefix,e.decode(r)]}case rn.prefix:{let e=t??rn;return[rn.prefix,e.decode(r)]}default:{if(t==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[r[0],t.decode(r)]}}}function Qd(r,t,e){let{prefix:n}=e;if(n!==lt.prefix)throw Error(`Cannot string encode V0 in ${e.name} encoding`);let o=t.get(n);if(o==null){let s=e.encode(r).slice(1);return t.set(n,s),s}else return o}function Jd(r,t,e){let{prefix:n}=e,o=t.get(n);if(o==null){let s=e.encode(r);return t.set(n,s),s}else return o}var sn=112,tp=18;function Cf(r,t,e){let n=Sr(r),o=n+Sr(t),s=new Uint8Array(o+e.byteLength);return Er(r,s,0),Er(t,s,n),s.set(e,o),s}var ep=Symbol.for("@ipld/js-cid/CID");var Xs={};rt(Xs,{identity:()=>Wt});var Tf=0,rp="identity",_f=Ft;function np(r,t){if(t?.truncate!=null&&t.truncate!==r.byteLength){if(t.truncate<0||t.truncate>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,t.truncate)}return jt(Tf,_f(r))}var Wt={code:Tf,name:rp,encode:_f,digest:np};function gt(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 op(r){return r.buffer instanceof ArrayBuffer}function Et(r){return op(r)?r:r.slice()}async function Df(r,t,e,n){let o=await crypto.subtle.importKey("jwk",r,{name:"ECDSA",namedCurve:r.crv??"P-256"},!1,["verify"]);n?.signal?.throwIfAborted();let s=await crypto.subtle.verify({name:"ECDSA",hash:{name:"SHA-256"}},o,Et(t),Et(e.subarray()));return n?.signal?.throwIfAborted(),s}function te(r=0){return new Uint8Array(r)}function vt(r=0){return new Uint8Array(r)}function sp(r){return r?.buffer instanceof ArrayBuffer}function Qs(r){if(sp(r))return r;let t=r.slice();return new Uint8Array(t.buffer,0,t.byteLength)}function ee(r,t){t==null&&(t=r.reduce((o,s)=>o+s.length,0));let e=vt(t),n=0;for(let o of r)e.set(o,n),n+=o.length;return Qs(e)}var Of=Symbol.for("@achingbrain/uint8arraylist");function Rf(r,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let e=0;for(let n of r){let o=e+n.byteLength;if(t<o)return{buf:n,index:t-e};e=o}throw new RangeError("index is out of bounds")}function ho(r){return!!r?.[Of]}var ft=class r{bufs;length;[Of]=!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(ho(n)){e+=n.byteLength;for(let o of n.bufs)this.bufs.push(o)}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(ho(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=Rf(this.bufs,t);return e.buf[e.index]}set(t,e){let n=Rf(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(ho(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:o}=this._subList(t,e);return ee(n,o)}subarray(t,e){let{bufs:n,length:o}=this._subList(t,e);return n.length===1?n[0]:ee(n,o)}sublist(t,e){let{bufs:n,length:o}=this._subList(t,e),s=new r;return s.length=o,s.bufs=n,s}_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=[],o=0;for(let s=0;s<this.bufs.length;s++){let i=this.bufs[s],a=o,c=a+i.byteLength;if(o=c,t>=c)continue;let f=t>=a&&t<c,u=e>a&&e<=c;if(f&&u){if(t===a&&e===c){n.push(i);break}let h=t-a;n.push(i.subarray(h,h+(e-t)));break}if(f){if(t===0){n.push(i);continue}n.push(i.subarray(t-a));continue}if(u){if(e===c){n.push(i);break}n.push(i.subarray(0,e-a));break}n.push(i)}return{bufs:n,length:e-t}}indexOf(t,e=0){if(!ho(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 o=n.byteLength;if(o===0)throw new TypeError("search must be at least 1 byte long");let s=256,i=new Int32Array(s);for(let h=0;h<s;h++)i[h]=-1;for(let h=0;h<o;h++)i[n[h]]=h;let a=i,c=this.byteLength-n.byteLength,f=n.byteLength-1,u;for(let h=e;h<=c;h+=u){u=0;for(let l=f;l>=0;l--){let p=this.get(h+l);if(n[l]!==p){u=Math.max(1,l-a[p]);break}}if(u===0)return h}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=vt(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 o=te(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt16(0,e,n),this.write(o,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 o=te(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt32(0,e,n),this.write(o,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 o=te(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigInt64(0,e,n),this.write(o,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=vt(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 o=te(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint16(0,e,n),this.write(o,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 o=te(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint32(0,e,n),this.write(o,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 o=te(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigUint64(0,e,n),this.write(o,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 o=te(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat32(0,e,n),this.write(o,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 o=te(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat64(0,e,n),this.write(o,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(!gt(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((o,s)=>o+s.byteLength,0)),n.length=e,n}};var Js={};rt(Js,{base10:()=>ip});var ip=Le({prefix:"9",name:"base10",alphabet:"0123456789"});var ti={};rt(ti,{base16:()=>ap,base16upper:()=>cp});var ap=ht({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4,caseInsensitive:!0}),cp=ht({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4,caseInsensitive:!0});var ei={};rt(ei,{base2:()=>fp});var fp=ht({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var ri={};rt(ri,{base256emoji:()=>pp});var Pf=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}"),up=Pf.reduce((r,t,e)=>(r[e]=t,r),[]),hp=Pf.reduce((r,t,e)=>{let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);return r[n]=e,r},[]);function lp(r){return r.reduce((t,e)=>(t+=up[e],t),"")}function dp(r){let t=[];for(let e of r){let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);let o=hp[n];if(o==null)throw new Error(`Non-base256emoji character: ${e}`);t.push(o)}return new Uint8Array(t)}var pp=xr({prefix:"\u{1F680}",name:"base256emoji",encode:lp,decode:dp});var oi={};rt(oi,{base64:()=>mp,base64pad:()=>yp,base64url:()=>ni,base64urlpad:()=>gp});var mp=ht({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),yp=ht({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),ni=ht({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),gp=ht({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var si={};rt(si,{base8:()=>bp});var bp=ht({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var ii={};rt(ii,{identity:()=>wp});var wp=xr({prefix:"\0",name:"identity",encode:r=>wf(Ft(r)),decode:r=>Ft(bf(r))});var ow=new TextEncoder,sw=new TextDecoder;var fi={};rt(fi,{sha256:()=>an,sha512:()=>Ap});var Sp=20;function ci({name:r,code:t,encode:e,minDigestLength:n,maxDigestLength:o}){return new ai(r,t,e,n,o)}var ai=class{name;code;encode;minDigestLength;maxDigestLength;constructor(t,e,n,o,s){this.name=t,this.code=e,this.encode=n,this.minDigestLength=o??Sp,this.maxDigestLength=s}digest(t,e){if(e?.truncate!=null){if(e.truncate<this.minDigestLength)throw new Error(`Invalid truncate option, must be greater than or equal to ${this.minDigestLength}`);if(this.maxDigestLength!=null&&e.truncate>this.maxDigestLength)throw new Error(`Invalid truncate option, must be less than or equal to ${this.maxDigestLength}`)}if(t instanceof Uint8Array){let n=this.encode(t);return n instanceof Uint8Array?Uf(n,this.code,e?.truncate):n.then(o=>Uf(o,this.code,e?.truncate))}else throw Error("Unknown type, must be binary type")}};function Uf(r,t,e){if(e!=null&&e!==r.byteLength){if(e>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,e)}return jt(t,r)}function kf(r){return async t=>new Uint8Array(await crypto.subtle.digest(r,t))}var an=ci({name:"sha2-256",code:18,encode:kf("SHA-256")}),Ap=ci({name:"sha2-512",code:19,encode:kf("SHA-512")});var Ye={...ii,...ei,...si,...Js,...ti,...js,...Ws,...$s,...oi,...ri},gw={...fi,...Xs};function Kf(r,t,e,n){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:n}}}var Mf=Kf("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),ui=Kf("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=vt(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);return t}),vp={utf8:Mf,"utf-8":Mf,hex:Ye.base16,latin1:ui,ascii:ui,binary:ui,...Ye},lo=vp;function nt(r,t="utf8"){let e=lo[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.decoder.decode(`${e.prefix}${r}`)}function Y(r,t="utf8"){let e=lo[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.encoder.encode(r).substring(1)}var Bp=parseInt("11111",2),hi=parseInt("10000000",2),Lp=parseInt("01111111",2),Ff={0:cn,1:cn,2:Ip,3:_p,4:Dp,5:Tp,6:Cp,16:cn,22:cn,48:cn};function me(r,t={offset:0}){let e=r[t.offset]&Bp;if(t.offset++,Ff[e]!=null)return Ff[e](r,t);throw new Error("No decoder for tag "+e)}function fn(r,t){let e=0;if((r[t.offset]&hi)===hi){let n=r[t.offset]&Lp,o="0x";t.offset++;for(let s=0;s<n;s++,t.offset++){if(t.offset>=r.byteLength)throw new Error("invalid DER element length");o+=r[t.offset].toString(16).padStart(2,"0")}e=parseInt(o,16)}else e=r[t.offset],t.offset++;if(!Number.isInteger(e)||e<0||e>r.byteLength-t.offset)throw new Error("invalid DER element length");return e}function cn(r,t){fn(r,t);let e=[];for(;!(t.offset>=r.byteLength);){let n=me(r,t);if(n===null)break;e.push(n)}return e}function Ip(r,t){let e=fn(r,t),n=t.offset,o=t.offset+e,s=[];for(let i=n;i<o;i++)i===n&&r[i]===0||s.push(r[i]);return t.offset+=e,Uint8Array.from(s)}function Cp(r,t){let e=fn(r,t),n=t.offset+e,o=r[t.offset];t.offset++;let s=0,i=0;o<40?(s=0,i=o):o<80?(s=1,i=o-40):(s=2,i=o-80);let a=`${s}.${i}`,c=[];for(;t.offset<n;){let f=r[t.offset];if(t.offset++,c.push(f&127),f<128){c.reverse();let u=0;for(let h=0;h<c.length;h++)u+=c[h]<<h*7;a+=`.${u}`,c=[]}}return a}function Tp(r,t){return t.offset++,null}function _p(r,t){let e=fn(r,t),n=r[t.offset];t.offset++;let o=r.subarray(t.offset,t.offset+e-1);if(t.offset+=e,n!==0)throw new Error("Unused bits in bit string is unimplemented");return o}function Dp(r,t){let e=fn(r,t),n=r.subarray(t.offset,t.offset+e);return t.offset+=e,n}function Rp(r){let t=r.toString(16);t.length%2===1&&(t="0"+t);let e=new ft;for(let n=0;n<t.length;n+=2)e.append(Uint8Array.from([parseInt(`${t[n]}${t[n+1]}`,16)]));return e}function li(r){if(r.byteLength<128)return Uint8Array.from([r.byteLength]);let t=Rp(r.byteLength);return new ft(Uint8Array.from([t.byteLength|hi]),t)}function Pt(r){let t=new ft,e=128;return(r.subarray()[0]&e)===e&&t.append(Uint8Array.from([0])),t.append(r),new ft(Uint8Array.from([2]),li(t),t)}function po(r){let t=Uint8Array.from([0]),e=new ft(t,r);return new ft(Uint8Array.from([3]),li(e),e)}function Ce(r,t=48){let e=new ft;for(let n of r)e.append(n);return new ft(Uint8Array.from([t]),li(e),e)}var Op=Uint8Array.from([6,8,42,134,72,206,61,3,1,7]),Pp=Uint8Array.from([6,5,43,129,4,0,34]),Up=Uint8Array.from([6,5,43,129,4,0,35]),Np={ext:!0,kty:"EC",crv:"P-256"},kp={ext:!0,kty:"EC",crv:"P-384"},Mp={ext:!0,kty:"EC",crv:"P-521"},di=32,pi=48,mi=66;function yi(r){let t=me(r);return Hf(t)}function Hf(r){let t=r[1][1][0],e=1,n,o;if(t.byteLength===di*2+1)return n=Y(t.subarray(e,e+di),"base64url"),o=Y(t.subarray(e+di),"base64url"),new vr({...Np,key_ops:["verify"],x:n,y:o});if(t.byteLength===pi*2+1)return n=Y(t.subarray(e,e+pi),"base64url"),o=Y(t.subarray(e+pi),"base64url"),new vr({...kp,key_ops:["verify"],x:n,y:o});if(t.byteLength===mi*2+1)return n=Y(t.subarray(e,e+mi),"base64url"),o=Y(t.subarray(e+mi),"base64url"),new vr({...Mp,key_ops:["verify"],x:n,y:o});throw new tt(`coordinates were wrong length, got ${t.byteLength}, expected 65, 97 or 133`)}function zf(r){return Ce([Pt(Uint8Array.from([1])),Ce([Kp(r.crv)],160),Ce([po(new ft(Uint8Array.from([4]),nt(r.x??"","base64url"),nt(r.y??"","base64url")))],161)]).subarray()}function Kp(r){if(r==="P-256")return Op;if(r==="P-384")return Pp;if(r==="P-521")return Up;throw new tt(`Invalid curve ${r}`)}var vr=class{type="ECDSA";jwk;_raw;constructor(t){this.jwk=t}get raw(){return this._raw==null&&(this._raw=zf(this.jwk)),this._raw}toMultihash(){return Wt.digest(Te(this))}toCID(){return yt.createV1(114,this.toMultihash())}toString(){return lt.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:gt(this.raw,t.raw)}async verify(t,e,n){return Df(this.jwk,e,t,n)}};var mo=BigInt(4294967295),Vf=BigInt(32);function Fp(r,t=!1){return t?{h:Number(r&mo),l:Number(r>>Vf&mo)}:{h:Number(r>>Vf&mo)|0,l:Number(r&mo)|0}}function qf(r,t=!1){let e=r.length,n=new Uint32Array(e),o=new Uint32Array(e);for(let s=0;s<e;s++){let{h:i,l:a}=Fp(r[s],t);[n[s],o[s]]=[i,a]}return[n,o]}var Hp=r=>r/2**32|0,zp=r=>r>>>0;function $f(r,t,e,n){let o=Hp(e),s=zp(e);r.setUint32(t,n?s:o,n),r.setUint32(t+4,n?o:s,n)}var gi=(r,t,e)=>r>>>e,bi=(r,t,e)=>r<<32-e|t>>>e,Ze=(r,t,e)=>r>>>e|t<<32-e,Xe=(r,t,e)=>r<<32-e|t>>>e,un=(r,t,e)=>r<<64-e|t>>>e-32,hn=(r,t,e)=>r>>>e-32|t<<64-e;function re(r,t,e,n){let o=(t>>>0)+(n>>>0);return{h:r+e+(o/2**32|0)|0,l:o|0}}var jf=(r,t,e)=>(r>>>0)+(t>>>0)+(e>>>0),Wf=(r,t,e,n)=>t+e+n+(r/2**32|0)|0,Gf=(r,t,e,n)=>(r>>>0)+(t>>>0)+(e>>>0)+(n>>>0),Yf=(r,t,e,n,o)=>t+e+n+o+(r/2**32|0)|0,Zf=(r,t,e,n,o)=>(r>>>0)+(t>>>0)+(e>>>0)+(n>>>0)+(o>>>0),Xf=(r,t,e,n,o,s)=>t+e+n+o+s+(r/2**32|0)|0;function yo(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in r&&r.BYTES_PER_ELEMENT===1}var wi=r=>r?`"${r}" `:"";function Gt(r,t=""){if(typeof r!="number")throw new TypeError(wi(t)+"expected number, got "+typeof r);if(!Number.isSafeInteger(r)||r<0)throw new RangeError(wi(t)+"expected integer >= 0, got "+r);return r}function Rt(r,t,e=""){if(yo(r)&&(t===void 0||r.length===t))return r;t!==void 0&&Gt(t,"length");let n=yo(r),o=t!==void 0?` of length ${t}`:"",s=n?`length=${r.length}`:`type=${typeof r}`,i=wi(e)+"expected Uint8Array"+o+", got "+s;throw n?new RangeError(i):new TypeError(i)}function Qe(r){if(typeof r!="function"||typeof r.create!="function")throw new TypeError("expected hash wrapped by utils.createHasher");if(Gt(r.outputLen),Gt(r.blockLen),r.outputLen<1||r.blockLen<1)throw new Error("hash blockLen / outputLen must be >= 1")}var Qf=(r,t)=>{if(r===null||typeof r!="object"||Array.isArray(r))throw new TypeError((t==="object"?"":`"${t}" `)+"expected object, got type="+typeof r)};function Br(r,t=!0){if(r.destroyed)throw new Error("hash was destroyed");if(t&&r.finished)throw new Error("digest() was already called")}function go(r,t){Rt(r,void 0,"output");let e=t.outputLen;if(!(r.length>=e))throw new RangeError('"output" expected length >= '+e)}function Ht(...r){for(let t=0;t<r.length;t++)r[t].fill(0)}function bo(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}function Yt(r,t){return r<<32-t|r>>>t}var tu=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",qp=Array.from({length:256},(r,t)=>t.toString(16).padStart(2,"0"));function wo(r){if(Rt(r),tu)return r.toHex();let t="";for(let e=0;e<r.length;e++)t+=qp[r[e]];return t}function Jf(r){return r>=48&&r<=57?r-48:r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:void 0}function xo(r){if(typeof r!="string")throw new TypeError("hex string expected, got "+typeof r);if(tu)try{return Uint8Array.fromHex(r)}catch(o){throw o instanceof SyntaxError?new RangeError(o.message):o}let t=r.length,e=t/2;if(t%2)throw new RangeError("hex string expected, got unpadded hex of length "+t);let n=new Uint8Array(e);for(let o=0,s=0;o<e;o++,s+=2){let i=Jf(r.charCodeAt(s)),a=Jf(r.charCodeAt(s+1));if(i===void 0||a===void 0){let c=r[s]+r[s+1];throw new RangeError('hex string expected, got non-hex character "'+c+'" at index '+s)}n[o]=i*16+a}return n}function xi(...r){let t=0;for(let n=0;n<r.length;n++){let o=r[n];Rt(o),t+=o.length}let e=new Uint8Array(t);for(let n=0,o=0;n<r.length;n++){let s=r[n];e.set(s,o),o+=s.length}return e}function $p(r,t,e="opts"){return Qf(r,"defaults"),t!==void 0&&Qf(t,e),Object.assign(r,t)}function Ei(r,t={}){if(typeof r!="function")throw new TypeError('"hashCons" expected function, got type='+typeof r);t=$p({},t,"info");let e=(o,s)=>r(s).update(o).digest(),n=r(void 0);return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.canXOF=n.canXOF,e.create=o=>r(o),Object.assign(e,t),Object.freeze(e)}function eu(r=32){Gt(r,"bytesLength");let t=typeof globalThis=="object"?globalThis.crypto:null;if(typeof t?.getRandomValues!="function")throw new Error("crypto.getRandomValues must be defined");if(r>65536)throw new RangeError(`"bytesLength" expected <= 65536, got ${r}`);return t.getRandomValues(new Uint8Array(r))}var Si=r=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,r])});function ru(r,t,e){return r&t^~r&e}function nu(r,t,e){return r&t^r&e^t&e}var ln=class{blockLen;outputLen;canXOF=!1;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(t,e,n,o){this.blockLen=t,this.outputLen=e,this.padOffset=n,this.isLE=o,this.buffer=new Uint8Array(t),this.view=bo(this.buffer)}update(t){Br(this),Rt(t);let{view:e,buffer:n,blockLen:o}=this,s=t.length,i=!1;for(let a=0;a<s;){let c=Math.min(o-this.pos,s-a);if(c===o){let f=bo(t);for(;o<=s-a;a+=o)this.process(f,a);i=!0;continue}n.set(a===0&&c===s?t:t.subarray(a,a+c),this.pos),this.pos+=c,a+=c,this.pos===o&&(this.process(e,0),this.pos=0,i=!0)}return this.length+=t.length,i&&this.roundClean(),this}digestInto(t){Br(this),go(t,this),this.finished=!0;let{buffer:e,view:n,blockLen:o,isLE:s}=this,{pos:i}=this;e[i++]=128,e.fill(0,i),this.padOffset>o-i&&(this.process(n,0),e.fill(0)),$f(n,o-8,this.length*8,s),this.process(n,0),this.roundClean();let a=t===e?n:bo(t),c=this.outputLen,f=c/4,u=this.get();if(c%4||f>u.length)throw new Error("invalid outputLen");for(let h=0;h<f;h++)a.setUint32(4*h,u[h],s)}digest(){let{buffer:t,outputLen:e}=this;this.digestInto(t);let n=t.slice(0,e);return this.destroy(),n}_cloneIntoMeta(t){let{buffer:e,length:n,finished:o,destroyed:s,pos:i}=this;return t.destroyed=s,t.finished=o,t.length=n,t.pos=i,i&&t.buffer.set(e),t}clone(){return this._cloneInto()}},ou=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var su=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var jp=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),_e=new Uint32Array(64),Ai=class extends ln{A=0;B=0;C=0;D=0;E=0;F=0;G=0;H=0;constructor(t,e){super(64,t,8,!1),this.A=e[0]|0,this.B=e[1]|0,this.C=e[2]|0,this.D=e[3]|0,this.E=e[4]|0,this.F=e[5]|0,this.G=e[6]|0,this.H=e[7]|0}get(){let{A:t,B:e,C:n,D:o,E:s,F:i,G:a,H:c}=this;return[t,e,n,o,s,i,a,c]}set(t,e,n,o,s,i,a,c){this.A=t|0,this.B=e|0,this.C=n|0,this.D=o|0,this.E=s|0,this.F=i|0,this.G=a|0,this.H=c|0}_cloneInto(t){return(t||=new this.constructor).set(...this.get()),this._cloneIntoMeta(t)}process(t,e){for(let h=0;h<16;h++,e+=4)_e[h]=t.getUint32(e,!1);for(let h=16;h<64;h++){let l=_e[h-15],p=_e[h-2],m=Yt(l,7)^Yt(l,18)^l>>>3,b=Yt(p,17)^Yt(p,19)^p>>>10;_e[h]=b+_e[h-7]+m+_e[h-16]|0}let{A:n,B:o,C:s,D:i,E:a,F:c,G:f,H:u}=this;for(let h=0;h<64;h++){let l=Yt(a,6)^Yt(a,11)^Yt(a,25),p=u+l+ru(a,c,f)+jp[h]+_e[h]|0,b=(Yt(n,2)^Yt(n,13)^Yt(n,22))+nu(n,o,s)|0;u=f,f=c,c=a,a=i+p|0,i=s,s=o,o=n,n=p+b|0}n=n+this.A|0,o=o+this.B|0,s=s+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,f=f+this.G|0,u=u+this.H|0,this.set(n,o,s,i,a,c,f,u)}roundClean(){Ht(_e)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),Ht(this.buffer)}},vi=class extends Ai{constructor(){super(32,ou)}};var iu=qf(["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))),Wp=iu[0],Gp=iu[1],De=new Uint32Array(80),Re=new Uint32Array(80),Bi=class extends ln{Ah=0;Al=0;Bh=0;Bl=0;Ch=0;Cl=0;Dh=0;Dl=0;Eh=0;El=0;Fh=0;Fl=0;Gh=0;Gl=0;Hh=0;Hl=0;constructor(t,e){super(128,t,16,!1),this.Ah=e[0]|0,this.Al=e[1]|0,this.Bh=e[2]|0,this.Bl=e[3]|0,this.Ch=e[4]|0,this.Cl=e[5]|0,this.Dh=e[6]|0,this.Dl=e[7]|0,this.Eh=e[8]|0,this.El=e[9]|0,this.Fh=e[10]|0,this.Fl=e[11]|0,this.Gh=e[12]|0,this.Gl=e[13]|0,this.Hh=e[14]|0,this.Hl=e[15]|0}get(){let{Ah:t,Al:e,Bh:n,Bl:o,Ch:s,Cl:i,Dh:a,Dl:c,Eh:f,El:u,Fh:h,Fl:l,Gh:p,Gl:m,Hh:b,Hl:g}=this;return[t,e,n,o,s,i,a,c,f,u,h,l,p,m,b,g]}set(t,e,n,o,s,i,a,c,f,u,h,l,p,m,b,g){this.Ah=t|0,this.Al=e|0,this.Bh=n|0,this.Bl=o|0,this.Ch=s|0,this.Cl=i|0,this.Dh=a|0,this.Dl=c|0,this.Eh=f|0,this.El=u|0,this.Fh=h|0,this.Fl=l|0,this.Gh=p|0,this.Gl=m|0,this.Hh=b|0,this.Hl=g|0}_cloneInto(t){return(t||=new this.constructor).set(...this.get()),this._cloneIntoMeta(t)}process(t,e){for(let x=0;x<16;x++,e+=4)De[x]=t.getUint32(e),Re[x]=t.getUint32(e+=4);for(let x=16;x<80;x++){let I=De[x-15]|0,_=Re[x-15]|0,N=Ze(I,_,1)^Ze(I,_,8)^gi(I,_,7),k=Xe(I,_,1)^Xe(I,_,8)^bi(I,_,7),P=De[x-2]|0,R=Re[x-2]|0,U=Ze(P,R,19)^un(P,R,61)^gi(P,R,6),M=Xe(P,R,19)^hn(P,R,61)^bi(P,R,6),D=Gf(k,M,Re[x-7],Re[x-16]),H=Yf(D,N,U,De[x-7],De[x-16]);De[x]=H|0,Re[x]=D|0}let{Ah:n,Al:o,Bh:s,Bl:i,Ch:a,Cl:c,Dh:f,Dl:u,Eh:h,El:l,Fh:p,Fl:m,Gh:b,Gl:g,Hh:w,Hl:S}=this;for(let x=0;x<80;x++){let I=Ze(h,l,14)^Ze(h,l,18)^un(h,l,41),_=Xe(h,l,14)^Xe(h,l,18)^hn(h,l,41),N=h&p^~h&b,k=l&m^~l&g,P=Zf(S,_,k,Gp[x],Re[x]),R=Xf(P,w,I,N,Wp[x],De[x]),U=P|0,M=Ze(n,o,28)^un(n,o,34)^un(n,o,39),D=Xe(n,o,28)^hn(n,o,34)^hn(n,o,39),H=n&s^n&a^s&a,T=o&i^o&c^i&c;w=b|0,S=g|0,b=p|0,g=m|0,p=h|0,m=l|0,{h,l}=re(f|0,u|0,R|0,U|0),f=a|0,u=c|0,a=s|0,c=i|0,s=n|0,i=o|0;let C=jf(U,D,T);n=Wf(C,R,M,H),o=C|0}({h:n,l:o}=re(this.Ah|0,this.Al|0,n|0,o|0)),{h:s,l:i}=re(this.Bh|0,this.Bl|0,s|0,i|0),{h:a,l:c}=re(this.Ch|0,this.Cl|0,a|0,c|0),{h:f,l:u}=re(this.Dh|0,this.Dl|0,f|0,u|0),{h,l}=re(this.Eh|0,this.El|0,h|0,l|0),{h:p,l:m}=re(this.Fh|0,this.Fl|0,p|0,m|0),{h:b,l:g}=re(this.Gh|0,this.Gl|0,b|0,g|0),{h:w,l:S}=re(this.Hh|0,this.Hl|0,w|0,S|0),this.set(n,o,s,i,a,c,f,u,h,l,p,m,b,g,w,S)}roundClean(){Ht(De,Re)}destroy(){this.destroyed=!0,Ht(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Li=class extends Bi{constructor(){super(64,su)}};var ne=Ei(()=>new vi,Si(1));var Ii=Ei(()=>new Li,Si(3));function So(r,t,e=()=>{}){if(!Array.isArray(r))throw new TypeError(`"${t}" expected array, got type=${typeof r}`);for(let n=0;n<r.length;n++)e(r[n],`${t}[${n}]`);return r}var j=(r,t,e)=>Rt(r,t,e),Ci=Gt;function cu(r,t=""){if(typeof r!="string"){let e=t&&`"${t}" `;throw new TypeError(e+"expected string, got type="+typeof r)}return r}function Oe(r,t="object"){if(r===null||typeof r!="object"||Array.isArray(r))throw new TypeError(t==="object"?"expected valid options object":`"${t}" expected object, got type=${typeof r}`);return r}function Je(r,t){if(typeof r!="function")throw new TypeError(`"${t}" is invalid: expected function, got ${typeof r}`);return r}var dn=wo,zt=(...r)=>xi(...r),Lr=r=>xo(r),Ue=yo,ye=r=>eu(r),Eo=BigInt(0),au=BigInt(1),Yp=r=>r?`"${r}" `:"";function Ut(r,t=""){if(typeof r!="boolean")throw new TypeError(Yp(t)+"expected boolean, got type="+typeof r);return r}function Ao(r){if(typeof r=="bigint"){if(!Pe(r))throw new RangeError("positive bigint expected, got "+r)}else Ci(r);return r}function Ne(r,t=""){if(typeof r!="number"){let e=t&&`"${t}" `;throw new TypeError(e+"expected number, got type="+typeof r)}if(!Number.isSafeInteger(r)){let e=t&&`"${t}" `;throw new RangeError(e+"expected safe integer, got "+r)}}function pn(r){let t=Ao(r).toString(16);return t.length&1?"0"+t:t}function fu(r){if(typeof r!="string")throw new TypeError("hex string expected, got "+typeof r);return r===""?Eo:BigInt("0x"+r)}function oe(r){return fu(wo(r))}function se(r){return fu(wo(tr(Rt(r)).reverse()))}function vo(r,t){if(Gt(t),t===0)throw new Error("zero output length is invalid");r=Ao(r);let e=t*2,n=r.toString(16);if(n.length>e)throw new RangeError("number is too large");return xo(n.padStart(e,"0"))}function mn(r,t){return vo(r,t).reverse()}function tr(r){return Uint8Array.from(j(r))}function Pe(r){return typeof r=="bigint"&&Eo<=r}function Ti(r,t,e){return Pe(r)&&Pe(t)&&Pe(e)&&t<=r&&r<e}function ie(r,t,e,n){if(!Ti(t,e,n))throw new RangeError("expected valid "+r+": "+e+" <= n < "+n+", got "+t)}function Ir(r){if(r<Eo)throw new Error("expected non-negative bigint, got "+r);return r===Eo?0:r.toString(2).length}var yn=r=>(Ne(r,"n"),(au<<BigInt(r))-au);function uu(r,t,e){if(Gt(r,"hashLen"),Gt(t,"qByteLen"),typeof e!="function")throw new TypeError("hmacFn must be a function");let n=g=>new Uint8Array(g),o=Uint8Array.of(),s=Uint8Array.of(0),i=Uint8Array.of(1),a=1e3,c=n(r),f=n(r),u=0,h=()=>{c.fill(1),f.fill(0),u=0},l=(...g)=>e(f,zt(c,...g)),p=(g=o)=>{f=l(s,g),c=l(),g.length!==0&&(f=l(i,g),c=l())},m=()=>{if(u++>=a)throw new Error("drbg: tried max amount of iterations");let g=0,w=[];for(;g<t;){c=l();let S=c.slice();w.push(S),g+=c.length}return zt(...w)};return(g,w)=>{h(),p(g);let S;for(;(S=w(m()))===void 0;)p();return h(),S}}function Bt(r,t={},e={},n="object"){Oe(r,n),Oe(t,"fields"),Oe(e,"optFields");function o(i,a,c){let f=n==="object"?`param "${String(i)}"`:`"${n}.${String(i)}"`,u=r[i];if(!Object.hasOwn(r,i)&&(c?u!==void 0:a!=="function"))throw new TypeError(`${f} is invalid: expected own property`);if(c&&u===void 0)return;let h=typeof u;if(h!==a||u===null)throw new TypeError(`${f} is invalid: expected ${a}, got ${h}`)}let s=(i,a)=>Object.entries(i).forEach(([c,f])=>o(c,f,a));s(t,!1),s(e,!0)}var bt=BigInt(0),X=BigInt(1),ke=BigInt(2),du=BigInt(3),_i=BigInt(4),pu=BigInt(5),Zp=BigInt(7),mu=BigInt(8),Xp=BigInt(9),Qp=BigInt(15),yu=BigInt(16),Jp=BigInt("0x10000000000000000");function J(r,t){if(t<=bt)throw new Error("mod: expected positive modulus, got "+t);let e=r%t;return e>=bt?e:t+e}function gu(r,t,e){if(e<=X)throw new Error("pow: expected modulus > 1, got "+e);if(typeof t!="bigint")throw new TypeError("invalid exponent: expected bigint, got "+typeof t);if(t<bt)throw new Error("invalid exponent, negatives unsupported");if(t===bt)return X;if(t===X)return r;let n=r%e;if(n<bt&&(n+=e),t<Jp){let a=X;for(;t>bt;)t&X&&(a=a*n%e),n=n*n%e,t>>=X;return a}let o=[];for(;t>bt;)o.push(Number(t&Qp)),t>>=_i;let s=new Array(16);s[0]=X,s[1]=n;for(let a=2;a<16;a++)s[a]=s[a-1]*n%e;let i=s[o[o.length-1]];for(let a=o.length-2;a>=0;a--){i=i*i%e,i=i*i%e,i=i*i%e,i=i*i%e;let c=o[a];c!==0&&(i=i*s[c]%e)}return i}function it(r,t,e){if(e<=X)throw new Error("pow2: expected modulus > 1, got "+e);if(t<bt)throw new Error("pow2: expected non-negative exponent, got "+t);let n=r;for(;t-- >bt;)n*=n,n%=e;return n}function hu(r,t){if(r===bt)throw new Error("invert: expected non-zero number");if(t<=X)throw new Error("invert: expected modulus > 1, got "+t);let e=J(r,t),n=t,o=bt,s=X;for(;e!==bt;){let a=n/e,c=n-e*a,f=o-s*a;n=e,e=c,o=s,s=f}if(n!==X)throw new Error("invert: does not exist");return J(o,t)}function bu(r,t){if(t<=X)throw new Error("invertCt: expected prime modulus > 1, got "+t);let e=J(r,t);if(e===bt)throw new Error("invertCt: expected non-zero number");let n=gu(e,t-ke,t);if(J(e*n,t)!==X)throw new Error("invertCt: does not exist");return n}function Di(r,t,e){let n=r;if(!n.eql(n.sqr(t),e))throw new Error("Cannot find square root")}function Ri(r,t){if((r&X)===bt)throw new Error(t+": expected odd modulus, got "+r)}function wu(r,t){let e=r,n=(e.ORDER+X)/_i,o=e.pow(t,n);return Di(e,o,t),o}function tm(r,t){let e=r,n=(e.ORDER-pu)/mu,o=e.mul(t,ke),s=e.pow(o,n),i=e.mul(t,s),a=e.mul(e.mul(i,ke),s),c=e.mul(i,e.sub(a,e.ONE));return Di(e,c,t),c}function em(r){let t=Tr(r),e=xu(r),n=e(t,t.neg(t.ONE)),o=e(t,n),s=e(t,t.neg(n)),i=(r+Zp)/yu;return((a,c)=>{let f=a,u=f.pow(c,i),h=f.mul(u,n),l=f.mul(u,o),p=f.mul(u,s),m=f.eql(f.sqr(h),c),b=f.eql(f.sqr(l),c);u=f.cmov(u,h,m),h=f.cmov(p,l,b);let g=f.eql(f.sqr(h),c),w=f.cmov(u,h,g);return Di(f,w,c),w})}function xu(r){if(r<du)throw new Error("sqrt is not defined for small field");Ri(r,"tonelliShanks");let t=r-X,e=0;for(;t%ke===bt;)t/=ke,e++;let n=ke,o=Tr(r);for(;gn(o,n)===1;)if(n++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(e===1)return wu;let s=o.pow(n,t),i=(t+X)/ke;return function(c,f){let u=c;if(u.is0(f))return f;if(gn(u,f)!==1)throw new Error("Cannot find square root");let h=e,l=u.mul(u.ONE,s),p=u.pow(f,t),m=u.pow(f,i);for(;!u.eql(p,u.ONE);){if(u.is0(p))throw new Error("Cannot find square root: probably non-prime P");let b=1,g=u.sqr(p);for(;!u.eql(g,u.ONE);)if(b++,g=u.sqr(g),b===h)throw new Error("Cannot find square root");let w=X<<BigInt(h-b-1),S=u.pow(l,w);h=b,l=u.sqr(S),p=u.mul(p,l),m=u.mul(m,S)}return m}}function rm(r){return Ri(r,"Fp.sqrt"),r%_i===du?wu:r%mu===pu?tm:r%yu===Xp?em(r):xu(r)}var Eu=(r,t)=>(J(r,t)&X)===X,nm=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Cr(r){if(Oe(r,"field"),typeof r.ORDER!="bigint")throw new TypeError('param "ORDER" is invalid: expected bigint, got '+typeof r.ORDER);Ne(r.BYTES,"BYTES"),Ne(r.BITS,"BITS");for(let t of nm)Je(r[t],"field."+t);if(r.BYTES<1||r.BITS<1)throw new Error("invalid field: expected BYTES/BITS > 0");if(r.ORDER<=X)throw new Error("invalid field: expected ORDER > 1, got "+r.ORDER);return r}function Lo(r,t,e=!1){Cr(r),So(t,"nums"),Ut(e,"passZero");let n=r,o=new Array(t.length).fill(e?n.ZERO:void 0),s=t.reduce((a,c,f)=>n.is0(c)?a:(o[f]=a,n.mul(a,c)),n.ONE),i=n.inv(s);return t.reduceRight((a,c,f)=>n.is0(c)?a:(o[f]=n.mul(a,o[f]),n.mul(a,c)),i),o}function gn(r,t){Cr(r);let e=r;Ri(e.ORDER,"FpLegendre");let n=(e.ORDER-X)/ke,o=e.pow(t,n),s=e.eql(o,e.ONE),i=e.eql(o,e.ZERO),a=e.eql(o,e.neg(e.ONE));if(!s&&!i&&!a)throw new Error("invalid Legendre symbol result");return s?1:i?0:-1}function om(r,t){if(t!==void 0&&Ci(t),r<=bt)throw new Error("invalid n length: expected positive n, got "+r);if(t!==void 0&&t<1)throw new Error("invalid n length: expected positive bit length, got "+t);let e=Ir(r);if(t!==void 0&&t<e)throw new Error(`invalid n length: expected nBitLength (${t}) >= bitLen(n) (${e})`);let n=t!==void 0?t:e,o=Math.ceil(n/8);return{nBitLength:n,nByteLength:o}}var lu=new WeakMap,Bo=class{ORDER;BITS;BYTES;isLE;ZERO=bt;ONE=X;_lengths;_mod;constructor(t,e={}){if(t<=X)throw new Error("invalid field: expected ORDER > 1, got "+t);let n;this.isLE=!1,e!=null&&typeof e=="object"&&(typeof e.BITS=="number"&&(n=e.BITS),typeof e.sqrt=="function"&&Object.defineProperty(this,"sqrt",{value:e.sqrt,enumerable:!0}),typeof e.isLE=="boolean"&&(this.isLE=e.isLE),e.allowedLengths&&(this._lengths=Object.freeze(e.allowedLengths.slice())),typeof e.modFromBytes=="boolean"&&(this._mod=e.modFromBytes));let{nBitLength:o,nByteLength:s}=om(t,n);if(s>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");this.ORDER=t,this.BITS=o,this.BYTES=s,Object.freeze(this)}create(t){return J(t,this.ORDER)}isValid(t){if(typeof t!="bigint")throw new TypeError("invalid field element: expected bigint, got "+typeof t);return bt<=t&&t<this.ORDER}is0(t){return t===bt}isValidNot0(t){return!this.is0(t)&&this.isValid(t)}isOdd(t){return(t&X)===X}neg(t){return J(-t,this.ORDER)}eql(t,e){return t===e}sqr(t){return J(t*t,this.ORDER)}add(t,e){return J(t+e,this.ORDER)}sub(t,e){return J(t-e,this.ORDER)}mul(t,e){return J(t*e,this.ORDER)}pow(t,e){return gu(t,e,this.ORDER)}div(t,e){return J(t*hu(e,this.ORDER),this.ORDER)}sqrN(t){return t*t}addN(t,e){return t+e}subN(t,e){return t-e}mulN(t,e){return t*e}inv(t){return hu(t,this.ORDER)}sqrt(t){let e=lu.get(this);return e||lu.set(this,e=rm(this.ORDER)),e(this,t)}toBytes(t){return this.isLE?mn(t,this.BYTES):vo(t,this.BYTES)}fromBytes(t,e=!1){j(t);let{_lengths:n,BYTES:o,isLE:s,ORDER:i,_mod:a}=this;if(n){if(t.length<1||!n.includes(t.length)||t.length>o)throw new Error("Field.fromBytes: expected "+n+" bytes, got "+t.length);let f=new Uint8Array(o);f.set(t,s?0:f.length-t.length),t=f}if(t.length!==o)throw new Error("Field.fromBytes: expected "+o+" bytes, got "+t.length);let c=s?se(t):oe(t);if(a&&(c=J(c,i)),!e&&!this.isValid(c))throw new Error("invalid field element: outside of range 0..ORDER");return c}invertBatch(t){return Lo(this,t,!0)}cmov(t,e,n){return Ut(n,"condition"),n?e:t}};function Tr(r,t={}){return Object.freeze(Bo.prototype),new Bo(r,t)}function Su(r){if(typeof r!="bigint")throw new Error("field order must be bigint");if(r<=X)throw new Error("field order must be greater than 1");let t=Ir(r-X);return Math.ceil(t/8)}function Io(r){let t=Su(r);return t+Math.ceil(t/2)}function Co(r,t,e=!1){j(r);let n=r.length,o=Su(t),s=Math.max(Io(t),16);if(n<s||n>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+n);let i=e?se(r):oe(r),a=J(i,t-X)+X;return e?mn(a,o):vo(a,o)}var Ui=BigInt(0),bn=BigInt(1),sm=BigInt(4),Oi=16,Au=128,im=5,vu=2**31;function Me(r){let t=r;if(typeof t!="function")throw new TypeError('"Point" expected constructor, got type='+typeof r);Je(t.fromAffine,"Point.fromAffine"),Je(t.fromBytes,"Point.fromBytes"),Je(t.fromHex,"Point.fromHex"),Oe(t.BASE,"Point.BASE"),Oe(t.ZERO,"Point.ZERO"),Cr(t.Fp),Cr(t.Fn)}function To(r,t){Me(r),Lu(t,r);let e=Lo(r.Fp,t.map(n=>n.Z));return t.map((n,o)=>r.fromAffine(n.toAffine(e[o])))}function am(r,t,e=1){if(!Number.isSafeInteger(r)||r<e||r>t)throw new Error("invalid window size, expected ["+e+".."+t+"], got W="+r)}function cm(r,t){let e=r*(4*t+128);if(e>vu)throw new Error("invalid window size: table would need ~"+Math.ceil(e/2**20)+" MiB, max "+vu/2**20+" MiB")}function Ni(r,t){if(r!==void 0){Je(r,"randomBytes");try{let e=r(t);if(!Ue(e)||e.length!==t)return}catch{return}return r}}function Lu(r,t){So(r,"points"),r.forEach((e,n)=>{if(!(e instanceof t))throw new Error("invalid point at index "+n)})}function fm(r,t,e){if(!Array.isArray(r))throw new Error("array of scalars expected");r.forEach((n,o)=>{if(!(e===void 0?t.isValid(n):Pe(n)&&n<e))throw new Error("invalid scalar at index "+o)})}var Iu=new WeakMap;function Pi(r){return Iu.get(r)||1}function um(r,t){let e=r.double(),n=[r];for(let o=1;o<t;o++)n.push(n[o-1].add(e));return n}function hm(r,t){let e=2**t,n=e/2,o=BigInt(e-1),s=[];for(;r>Ui;){let i=0;r&bn&&(i=Number(r&o),i>=n&&(i-=e),r-=BigInt(i)),s.push(i),r>>=bn}return s}function lm(r,t,e){let n=2**t,o=n/2,s=BigInt(n-1),i=BigInt(t),a=[];for(let c=0;c<e;c++){let f=Number(r&s);r>>=i,f>o&&(f-=n,r+=bn),a.push(f)}if(r!==Ui)throw new Error("invalid wnaf");return a}function dm(r,t,e){let n=0;for(let s of e)n=Math.max(n,s.length);let o=r;for(let s=n-1;s>=0;s--){s!==n-1&&(o=o.double());for(let i=0;i<e.length;i++){let a=e[i][s];if(a){let c=t[i][Math.abs(a)-1>>1];o=o.add(a<0?c.negate():c)}}}return o}var _r=class{Point;BASE;ZERO;randomBytes;wnafPrecomputes=new WeakMap;baseCanBeBlinded;bits;constructor(t,e){Me(t),this.randomBytes=Ni(e,Oi),this.Point=t,this.BASE=t.BASE,this.ZERO=t.ZERO,this.bits=t.Fn.BITS}buildWnafTable(t,e,n){let o=Math.ceil(n/e)+1,s=2**(e-1),i=[],a=t;for(let c=0;c<o;c++){let f=a;for(let u=0;u<s;u++)i.push(f),f=f.add(a);a=i[i.length-1].double()}return{W:e,bits:n,windows:o,comp:i}}wnafCachedCT(t,e){let{W:n,windows:o,comp:s}=t,i=2**(n-1),a=lm(e,n,o),c=this.ZERO,f=this.BASE;for(let u=0;u<o;u++){let h=a[u],l=u*i,p=Math.abs(h)-1,m=s[l];for(let g=1;g<i;g++)m=g===p?s[l+g]:m;let b=m.negate();h===0?f=f.add(s[l]):c=c.add(h<0?b:m)}return{p:c,f}}getWnafPrecomputes(t,e,n,o){let s=this.wnafPrecomputes.get(e),i=s?.find(a=>a.W===t&&a.bits===n);return i||(i=this.buildWnafTable(e,t,n),typeof o=="function"&&(i={...i,comp:o(i.comp)}),s||(s=[],this.wnafPrecomputes.set(e,s)),s.push(i)),i}assertPoint(t){if(!(t instanceof this.Point))throw new TypeError('"point" expected Point instance, got type='+typeof t)}validateMulInput(t,e){if(this.assertPoint(t),!Ti(e,bn,this.Point.Fn.ORDER))throw new Error("invalid scalar")}runCT(t,e,n,o){let s=Pi(t);return s===1?this.fixedWindowCT(t,e,n):this.wnafCachedCT(this.getWnafPrecomputes(s,t,n,o),e)}mulCT(t,e,n){return this.validateMulInput(t,e),this.runCT(t,e,this.bits,n)}mulCTBlinded(t,e,n){if(this.validateMulInput(t,e),this.randomBytes===void 0)throw new Error("randomBytes is required for scalar blinding");let o=this.Point.Fn.BITS+Au,s=this.randomBytes(Oi);if(!Ue(s)||s.length!==Oi)throw new Error("randomBytes returned invalid byte array");s[0]=s[0]&63|128;let i=e+oe(s)*this.Point.Fn.ORDER;return this.runCT(t,i,o,n)}fixedWindowCT(t,e,n){let o=im,s=1<<o,i=yn(o),a=new Array(s);a[0]=this.ZERO;for(let u=1;u<s;u++)a[u]=a[u-1].add(t);let c=Math.ceil(n/o),f=this.ZERO;for(let u=c-1;u>=0;u--){if(u!==c-1)for(let p=0;p<o;p++)f=f.double();let h=Number(e>>BigInt(u*o)&i),l=a[0];for(let p=1;p<s;p++)l=p===h?a[p]:l;f=f.add(l)}return{p:f,f}}shouldBlind(t,e){return this.randomBytes===void 0?!1:e===bn?!0:t!==this.BASE?!1:(this.baseCanBeBlinded===void 0&&(this.baseCanBeBlinded=this.mulUnsafe(this.BASE,this.Point.Fn.ORDER).is0()),this.baseCanBeBlinded)}mulSecret(t,e,n,o){return this.shouldBlind(t,n)?this.mulCTBlinded(t,e,o):this.mulCT(t,e,o)}mulUnsafe(t,e,n){if(this.assertPoint(t),!Pe(e))throw new Error("invalid scalar");let o=Pi(t);if(o===1||e>=this.Point.Fn.ORDER)return _o(this.Point,[t],[e],!0);let s=this.getWnafPrecomputes(o,t,this.bits,n);return this.wnafCachedCT(s,e).p}setWindowSize(t,e){this.assertPoint(t),am(e,this.bits);let n=Math.ceil((this.bits+Au)/e)+1;cm(n*2**(e-1),this.Point.Fp.BYTES),Iu.set(t,e),this.wnafPrecomputes.delete(t)}hasWindowSize(t){return Pi(t)!==1}};function _o(r,t,e,n=!1){if(Me(r),Lu(t,r),Ut(n,"allowOversized"),fm(e,r.Fn,n?r.Fn.ORDER**sm:void 0),t.length!==e.length)throw new Error("arrays of points and scalars must have equal length");let o=t.map(i=>um(i,4)),s=e.map(i=>hm(i,4));return dm(r.ZERO,o,s)}function Bu(r,t,e){if(t){if(t.ORDER!==r)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return Cr(t),t}else return Tr(r,{isLE:e})}function Do(r,t,e={},n){if(r!=="weierstrass"&&r!=="edwards")throw new Error('expected curve type "weierstrass" or "edwards"');if(n===void 0&&(n=r==="edwards"),!t||typeof t!="object")throw new Error(`expected valid ${r} CURVE object`);Bt(e);for(let c of["p","n","h"]){let f=t[c];if(!(Pe(f)&&f!==Ui))throw new Error(`CURVE.${c} must be positive bigint`)}let o=Bu(t.p,e.Fp,n),s=Bu(t.n,e.Fn,n),a=["Gx","Gy","a",r==="weierstrass"?"b":"d"];for(let c of a)if(!o.isValid(t[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return t=Object.freeze(Object.assign({},t)),{CURVE:t,Fp:o,Fn:s}}function Dr(r,t){return function(n){let o=r(n);return{secretKey:o,publicKey:t(o)}}}var Ro=BigInt(0),Oo=BigInt(1),Po=BigInt(2),pm=BigInt(4),Cu=BigInt(8);function mm(r,t,e,n){let o=r.sqr(e),s=r.sqr(n),i=r.add(r.mul(t.a,o),s),a=r.add(r.ONE,r.mul(t.d,r.mul(o,s)));return r.eql(i,a)}function Tu(r,t={}){Bt(t,{},{},"extraOpts");let e=t,n=Do("edwards",r,e,e.FpFnLE),{Fp:o,Fn:s}=n,i=n.CURVE,{h:a}=i;if(gn(o,i.a)!==1)throw new Error("edwards: CURVE.a must be a square in Fp for complete addition formulas");if(gn(o,i.d)!==-1)throw new Error("edwards: CURVE.d must be a non-square in Fp for complete addition formulas");Bt(e,{},{uvRatio:"function",randomBytes:"function"});let c=e.randomBytes===void 0?ye:e.randomBytes,f=Po<<BigInt(o.BYTES*8)-Oo;function u(S){if(!o.isOdd)throw new Error("Field does not have .isOdd()");return o.isOdd(S)}let h=e.uvRatio===void 0?(S,x)=>{try{return{isValid:!0,value:o.sqrt(o.div(S,x))}}catch{return{isValid:!1,value:Ro}}}:e.uvRatio;if(!mm(o,i,i.Gx,i.Gy))throw new Error("bad curve params: generator point");let l=o.eql(i.a,o.neg(o.ONE))?S=>o.neg(S):o.eql(i.a,o.ONE)?S=>S:S=>o.mul(i.a,S);function p(S,x,I=!1){let _=I?Oo:Ro;return ie("coordinate "+S,x,_,f),x}function m(S){if(!(S instanceof b))throw new Error("EdwardsPoint expected")}class b{static BASE=new b(i.Gx,i.Gy,o.ONE,o.mul(i.Gx,i.Gy));static ZERO=new b(o.ZERO,o.ONE,o.ONE,o.ZERO);static Fp=o;static Fn=s;X;Y;Z;T;constructor(x,I,_,N){this.X=p("x",x),this.Y=p("y",I),this.Z=p("z",_,!0),this.T=p("t",N),Object.freeze(this)}static CURVE(){return i}static fromAffine(x){if(x instanceof b)throw new Error("extended point not allowed");let{x:I,y:_}=x||{};return p("x",I),p("y",_),new b(I,_,o.ONE,o.mul(I,_))}static fromBytes(x,I=!1){let _=o.BYTES,{a:N,d:k}=i;x=tr(j(x,_,"point")),Ut(I,"zip215");let P=tr(x),R=x[_-1];P[_-1]=R&-129;let U=se(P),M=I?f:o.ORDER;ie("point.y",U,Ro,M);let D=o.sqr(U),H=o.sub(D,o.ONE),T=o.sub(o.mulN(k,D),N),{isValid:C,value:d}=h(H,T);if(!C)throw new Error("bad point: invalid y coordinate");let E=u(d),B=(R&128)!==0;if(!I&&o.is0(d)&&B)throw new Error("bad point: x=0 and x_0=1");return B!==E&&(d=o.neg(d)),b.fromAffine({x:d,y:U})}static fromHex(x,I=!1){return b.fromBytes(Lr(x),I)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(x=6,I=!0){return w.setWindowSize(this,x),I||this.multiply(Po),this}assertValidity(){let x=this,{a:I,d:_}=i;if(x.is0())throw new Error("bad point: ZERO");let{X:N,Y:k,Z:P,T:R}=x,U=o.sqr(N),M=o.sqr(k),D=o.sqr(P),H=o.sqr(D),T=o.mul(U,I),C=o.mul(o.add(T,M),D),d=o.add(H,o.mul(_,o.mul(U,M)));if(!o.eql(C,d))throw new Error("bad point: equation left != right (1)");let E=o.mul(N,k),B=o.mul(P,R);if(!o.eql(E,B))throw new Error("bad point: equation left != right (2)")}equals(x){m(x);let{X:I,Y:_,Z:N}=this,{X:k,Y:P,Z:R}=x,U=o.mul(I,R),M=o.mul(k,N),D=o.mul(_,R),H=o.mul(P,N);return o.eql(U,M)&&o.eql(D,H)}is0(){return this.equals(b.ZERO)}negate(){return new b(o.neg(this.X),this.Y,this.Z,o.neg(this.T))}double(){let{X:x,Y:I,Z:_}=this,N=o.sqr(x),k=o.sqr(I),P=o.mul(o.sqr(_),Po),R=l(N),U=o.addN(x,I),M=o.sub(o.subN(o.sqr(U),N),k),D=o.addN(R,k),H=o.subN(D,P),T=o.subN(R,k),C=o.mul(M,H),d=o.mul(D,T),E=o.mul(M,T),B=o.mul(H,D);return new b(C,d,B,E)}add(x){m(x);let{d:I}=i,{X:_,Y:N,Z:k,T:P}=this,{X:R,Y:U,Z:M,T:D}=x,H=o.mul(_,R),T=o.mul(N,U),C=o.mul(o.mulN(P,I),D),d=o.mul(k,M),E=o.sub(o.subN(o.mulN(o.addN(_,N),o.addN(R,U)),H),T),B=o.subN(d,C),A=o.addN(d,C),v=o.sub(T,l(H)),y=o.mul(E,B),L=o.mul(A,v),O=o.mul(E,v),F=o.mul(B,A);return new b(y,L,F,O)}subtract(x){return m(x),this.add(x.negate())}multiply(x){if(!s.isValidNot0(x))throw new RangeError("invalid scalar: expected 1 <= sc < curve.n");let{p:I,f:_}=w.mulSecret(this,x,a,g);return g([I,_])[0]}multiplyUnsafe(x){if(!s.isValid(x))throw new RangeError("invalid scalar: expected 0 <= sc < curve.n");return x===Ro?b.ZERO:this.is0()||x===Oo?this:w.mulUnsafe(this,x,g)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){return w.mulUnsafe(this,i.n).is0()}toAffine(x){let I=this,_=x;if(_!=null&&typeof _!="bigint")throw new TypeError('"invertedZ" expected bigint, got type='+typeof _);let{X:N,Y:k,Z:P}=I,R=I.is0();_==null&&(_=R?o.create(Cu):o.inv(P));let U=o.mul(N,_),M=o.mul(k,_),D=o.mul(P,_);if(R)return{x:o.ZERO,y:o.ONE};if(!o.eql(D,o.ONE))throw new Error("invZ was invalid");return{x:U,y:M}}clearCofactor(){return a===Oo?this:a===Po?this.double():a===pm?this.double().double():a===Cu?this.double().double().double():this.multiplyUnsafe(a)}toBytes(){let{x,y:I}=this.toAffine(),_=o.toBytes(I);return _[_.length-1]|=u(x)?128:0,_}toHex(){return dn(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let g=S=>To(b,S),w=new _r(b,c);return w.bits>=6&&b.BASE.precompute(6),Object.freeze(b.prototype),Object.freeze(b),b}function _u(r,t,e={}){if(Me(r),typeof t!="function")throw new Error('"hash" function param is required');let n=t,o=e;Bt(o,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",zip215:"boolean",mapToCurve:"function",toMontgomery:"function",toMontgomerySecret:"function"});let{prehash:s}=o,{BASE:i,Fp:a,Fn:c}=r,f=n.outputLen,u=2*a.BYTES;if(f!==void 0&&(Ne(f,"hash.outputLen"),f!==u))throw new Error(`hash.outputLen must be ${u}, got ${f}`);let h=o.randomBytes===void 0?ye:o.randomBytes,l=o.toMontgomery,p=o.toMontgomerySecret,m=o.adjustScalarBytes===void 0?T=>T:o.adjustScalarBytes,b=o.domain===void 0?(T,C,d)=>{if(Ut(d,"phflag"),C.length||d)throw new Error("Contexts/pre-hash are not supported");return T}:o.domain;function g(T){return c.create(se(T))}function w(T){let C=R.secretKey;j(T,R.secretKey,"secretKey");let d=j(n(T),2*C,"hashedSecretKey"),E=m(d.slice(0,C)),B=d.slice(C,2*C),A=g(E);return{head:E,prefix:B,scalar:A}}function S(T){let{head:C,prefix:d,scalar:E}=w(T),B=i.multiply(E),A=B.toBytes();return{head:C,prefix:d,scalar:E,point:B,pointBytes:A}}function x(T){return S(T).pointBytes}function I(T=Uint8Array.of(),...C){let d=zt(...C);return g(n(b(d,j(T,void 0,"context"),!!s)))}function _(T,C,d={}){Bt(d,{},{},"options"),T=j(T,void 0,"message"),s&&(T=s(T));let{prefix:E,scalar:B,pointBytes:A}=S(C),v=I(d.context,E,T),y=i.multiply(v).toBytes(),L=I(d.context,y,A,T),O=c.create(v+L*B);if(!c.isValid(O))throw new Error("sign failed: invalid s");let F=zt(y,c.toBytes(O));return j(F,R.signature,"result")}let N={zip215:o.zip215};function k(T,C,d,E=N){Bt(E);let{context:B}=E,A=E.zip215===void 0?!!N.zip215:E.zip215,v=R.signature;T=j(T,v,"signature"),C=j(C,void 0,"message"),d=j(d,R.publicKey,"publicKey"),A!==void 0&&Ut(A,"zip215"),s&&(C=s(C));let y=v/2,L=T.subarray(0,y),O=se(T.subarray(y,v)),F,K,q;try{F=r.fromBytes(d,A),K=r.fromBytes(L,A),q=i.multiplyUnsafe(O)}catch{return!1}if(!A&&F.isSmallOrder())return!1;let V=I(B,L,d,C);return K.add(F.multiplyUnsafe(V)).subtract(q).clearCofactor().is0()}let P=a.BYTES,R={secretKey:P,publicKey:P,signature:2*P,seed:P};function U(T){return T=T===void 0?h(R.seed):T,j(T,R.seed,"seed")}function M(T){return Ue(T)&&T.length===R.secretKey}function D(T,C){try{return!!r.fromBytes(T,C===void 0?N.zip215:C)}catch{return!1}}let H={getExtendedPublicKey:S,randomSecretKey:U,isValidSecretKey:M,isValidPublicKey:D,toMontgomery(T){if(l===void 0)throw new Error("Montgomery conversion is not supported for this curve");return l(r.fromBytes(T))},toMontgomerySecret(T){if(p===void 0)throw new Error("Montgomery conversion is not supported for this curve");return p(T)}};return Object.freeze(R),Object.freeze(H),Object.freeze({keygen:Dr(U,x),getPublicKey:x,sign:_,verify:k,utils:H,Point:r,lengths:R})}var er=BigInt(0),Vt=BigInt(1),Uo=BigInt(2);function Du(r,t){return r+t-(t>>Vt<<Vt)}function ym(r){let t=BigInt(6)*r;return(e,n,o)=>{let s=n+o,a=((t+o-n)*e+n)%r;return{x_2:a,x_3:s-a}}}function gm(r){return Bt(r,{P:"bigint",type:"string",adjustScalarBytes:"function",powPminus2:"function"},{randomBytes:"function",scalarMultBase:"function"}),Object.freeze({...r})}function Ru(r){let t=gm(r),{P:e,type:n,adjustScalarBytes:o,powPminus2:s,randomBytes:i}=t,a=t.scalarMultBase,c=n==="x25519";if(!c&&n!=="x448")throw new Error("invalid type");let f=i===void 0?ye:i,u=c?255:448,h=ym(e),l=c?32:56,p=BigInt(c?9:5),m=BigInt(c?121665:39081),b=c?Uo**BigInt(254):Uo**BigInt(447),g=c?BigInt(8)*(Uo**BigInt(251)-Vt):BigInt(4)*(Uo**BigInt(445)-Vt),w=b+g+Vt,S=d=>J(d,e),x=I(p);function I(d){return mn(S(d),l)}function _(d){let E=tr(j(d,l,"uCoordinate"));return c&&(E[31]&=127),S(se(E))}function N(d){return se(o(tr(j(d,l,"scalar"))))}let k=new Set(c?[er,Vt,e-Vt,BigInt("325606250916557431795983626356110631294008115727848805560023387167927233504"),BigInt("39382357235489614581723060781553021112529911719440698176882885853963445705823")]:[er,Vt,e-Vt]);function P(d,E){let B=_(E);if(k.has(B))throw new Error("invalid private or public key received");let A=D(B,N(d));if(A===er)throw new Error("invalid private or public key received");return I(A)}function R(d){if(a===void 0)return P(d,x);let E=N(d);ie("scalar",E,b,w);let B=S(a(E));if(B===er)throw new Error("invalid private or public key received");return I(B)}let U=R,M=P;function D(d,E){ie("u",d,er,e),ie("scalar",E,b,w);let B=E,A=d,v=Vt,y=er,L=d,O=Vt,F=B^B>>Vt;for(let V=BigInt(u-1);V>=er;V--){let G=Du(e,F>>V);({x_2:v,x_3:L}=h(G,v,L)),{x_2:y,x_3:O}=h(G,y,O);let ot=v+y,st=S(ot*ot),mt=v-y,Nt=S(mt*mt),de=st-Nt,$e=L+O,Jt=L-O,kt=S(Jt*ot),mr=S($e*mt),tn=kt+mr,ve=kt-mr;L=S(tn*tn),O=S(A*S(ve*ve)),v=S(st*Nt),y=S(de*(st+S(m*de)))}let K=Du(e,B);({x_2:v,x_3:L}=h(K,v,L)),{x_2:y,x_3:O}=h(K,y,O);let q=s(y);return S(v*q)}let H={secretKey:l,publicKey:l,seed:l},T=d=>(d=d===void 0?f(l):d,j(d,H.seed,"seed"),d),C={randomSecretKey:T};return Object.freeze(H),Object.freeze(C),Object.freeze({keygen:Dr(T,U),getSharedSecret:M,getPublicKey:U,scalarMult:P,scalarMultBase:R,utils:C,GuBytes:x.slice(),lengths:H})}var Ou=BigInt(0),ki=BigInt(1),Pu=BigInt(2),bm=BigInt(3),wm=BigInt(5),xm=BigInt(8),No=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),Em={p:No,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:xm,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function ku(r){let t=BigInt(10),e=BigInt(20),n=BigInt(40),o=BigInt(80),s=No,a=r*r%s*r%s,c=it(a,Pu,s)*a%s,f=it(c,ki,s)*r%s,u=it(f,wm,s)*f%s,h=it(u,t,s)*u%s,l=it(h,e,s)*h%s,p=it(l,n,s)*l%s,m=it(p,o,s)*p%s,b=it(m,o,s)*p%s,g=it(b,t,s)*u%s;return{pow_p_5_8:it(g,Pu,s)*r%s,b2:a}}function Mi(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}var Uu=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function Sm(r,t){let e=No,n=J(t*t*t,e),o=J(n*n*t,e),s=ku(r*o).pow_p_5_8,i=J(r*n*s,e),a=J(t*i*i,e),c=i,f=J(i*Uu,e),u=a===r,h=a===J(-r,e),l=a===J(-r*Uu,e);return u&&(i=c),(h||l)&&(i=f),Eu(i,e)&&(i=J(-i,e)),{isValid:u||h,value:i}}var wn=Tu(Em,{uvRatio:Sm}),Nu=wn.Fp;function Am(r){let{y:t}=r;return Nu.toBytes(Nu.div(ki+t,ki-t))}function vm(r){let t=wn.Fp.BYTES;return Rt(r,t),Mi(Ii(r.subarray(0,t))).subarray(0,t)}function Bm(r){return _u(wn,Ii,Object.assign({adjustScalarBytes:Mi,toMontgomery:Am,toMontgomerySecret:vm,zip215:!0},r))}var Mu=Bm({});var xn=(()=>{let r=No,t=e=>{let{pow_p_5_8:n,b2:o}=ku(e);return J(it(n,bm,r)*o,r)};return Ru({P:r,type:"x25519",powPminus2:t,adjustScalarBytes:Mi,scalarMultBase:e=>{let n=J(e,wn.Fn.ORDER);if(n===Ou)return Ou;let o=wn.BASE.multiply(n);return J((o.Z+o.Y)*t(J(o.Z-o.Y,r)),r)}})})();var En=class extends Error{constructor(t="An error occurred while verifying a message"){super(t),this.name="VerificationError"}},ko=class extends Error{constructor(t="Missing Web Crypto API"){super(t),this.name="WebCryptoMissingError"}};var qt={get(r=globalThis){let t=r.crypto;if(t?.subtle==null)throw new ko("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 Mo=32;var Ki,Lm=(async()=>{try{return await qt.get().subtle.generateKey({name:"Ed25519"},!0,["sign","verify"]),!0}catch{return!1}})();async function Im(r,t,e){if(r.buffer instanceof ArrayBuffer){let n=await qt.get().subtle.importKey("raw",r.buffer,{name:"Ed25519"},!1,["verify"]);return await qt.get().subtle.verify({name:"Ed25519"},n,Et(t),Et(e instanceof Uint8Array?e:e.subarray()))}throw new TypeError("WebCrypto does not support SharedArrayBuffer for Ed25519 keys")}function Cm(r,t,e){return Mu.verify(t,e instanceof Uint8Array?e:e.subarray(),r)}async function Ku(r,t,e){return Ki==null&&(Ki=await Lm),Ki?Im(r,t,e):Cm(r,t,e)}function Ko(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}var Fo=class{type="Ed25519";raw;constructor(t){this.raw=Fi(t,Mo)}toMultihash(){return Wt.digest(Te(this))}toCID(){return yt.createV1(114,this.toMultihash())}toString(){return lt.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:gt(this.raw,t.raw)}verify(t,e,n){n?.signal?.throwIfAborted();let o=Ku(this.raw,e,t);return Ko(o)?o.then(s=>(n?.signal?.throwIfAborted(),s)):o}};function Hi(r){return r=Fi(r,Mo),new Fo(r)}function Fi(r,t){if(r=Uint8Array.from(r??[]),r.length!==t)throw new tt(`Key must be a Uint8Array of length ${t}, got ${r.length}`);return r}var _m=Math.pow(2,7),Dm=Math.pow(2,14),Rm=Math.pow(2,21),zi=Math.pow(2,28),Vi=Math.pow(2,35),qi=Math.pow(2,42),$i=Math.pow(2,49),Q=128,Lt=127;function It(r){if(r<_m)return 1;if(r<Dm)return 2;if(r<Rm)return 3;if(r<zi)return 4;if(r<Vi)return 5;if(r<qi)return 6;if(r<$i)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Rr(r,t,e=0){switch(It(r)){case 8:t[e++]=r&255|Q,r/=128;case 7:t[e++]=r&255|Q,r/=128;case 6:t[e++]=r&255|Q,r/=128;case 5:t[e++]=r&255|Q,r/=128;case 4:t[e++]=r&255|Q,r>>>=7;case 3:t[e++]=r&255|Q,r>>>=7;case 2:t[e++]=r&255|Q,r>>>=7;case 1:{t[e++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return t}function Om(r,t,e=0){switch(It(r)){case 8:t.set(e++,r&255|Q),r/=128;case 7:t.set(e++,r&255|Q),r/=128;case 6:t.set(e++,r&255|Q),r/=128;case 5:t.set(e++,r&255|Q),r/=128;case 4:t.set(e++,r&255|Q),r>>>=7;case 3:t.set(e++,r&255|Q),r>>>=7;case 2:t.set(e++,r&255|Q),r>>>=7;case 1:{t.set(e++,r&255),r>>>=7;break}default:throw new Error("unreachable")}return t}function ji(r,t){let e=r[t],n=0;if(n+=e&Lt,e<Q||(e=r[t+1],n+=(e&Lt)<<7,e<Q)||(e=r[t+2],n+=(e&Lt)<<14,e<Q)||(e=r[t+3],n+=(e&Lt)<<21,e<Q)||(e=r[t+4],n+=(e&Lt)*zi,e<Q)||(e=r[t+5],n+=(e&Lt)*Vi,e<Q)||(e=r[t+6],n+=(e&Lt)*qi,e<Q)||(e=r[t+7],n+=(e&Lt)*$i,e<Q))return n;throw new RangeError("Could not decode varint")}function Pm(r,t){let e=r.get(t),n=0;if(n+=e&Lt,e<Q||(e=r.get(t+1),n+=(e&Lt)<<7,e<Q)||(e=r.get(t+2),n+=(e&Lt)<<14,e<Q)||(e=r.get(t+3),n+=(e&Lt)<<21,e<Q)||(e=r.get(t+4),n+=(e&Lt)*zi,e<Q)||(e=r.get(t+5),n+=(e&Lt)*Vi,e<Q)||(e=r.get(t+6),n+=(e&Lt)*qi,e<Q)||(e=r.get(t+7),n+=(e&Lt)*$i,e<Q))return n;throw new RangeError("Could not decode varint")}function Hu(r,t,e=0){return t==null&&(t=vt(It(r))),t instanceof Uint8Array?Rr(r,t,e):Om(r,t,e)}function rr(r,t=0){return r instanceof Uint8Array?ji(r,t):Pm(r,t)}var Gi=new Float32Array([-0]),Ke=new Uint8Array(Gi.buffer);function zu(r,t,e){Gi[0]=r,t[e]=Ke[0],t[e+1]=Ke[1],t[e+2]=Ke[2],t[e+3]=Ke[3]}function Vu(r,t){return Ke[0]=r[t],Ke[1]=r[t+1],Ke[2]=r[t+2],Ke[3]=r[t+3],Gi[0]}var Yi=new Float64Array([-0]),Ct=new Uint8Array(Yi.buffer);function qu(r,t,e){Yi[0]=r,t[e]=Ct[0],t[e+1]=Ct[1],t[e+2]=Ct[2],t[e+3]=Ct[3],t[e+4]=Ct[4],t[e+5]=Ct[5],t[e+6]=Ct[6],t[e+7]=Ct[7]}function $u(r,t){return Ct[0]=r[t],Ct[1]=r[t+1],Ct[2]=r[t+2],Ct[3]=r[t+3],Ct[4]=r[t+4],Ct[5]=r[t+5],Ct[6]=r[t+6],Ct[7]=r[t+7],Yi[0]}var Um=BigInt(Number.MAX_SAFE_INTEGER),Nm=BigInt(Number.MIN_SAFE_INTEGER),Mt=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 nr;if(t<Um&&t>Nm)return this.fromNumber(Number(t));let e=t<0n;e&&(t=-t);let n=t>>32n,o=t-(n<<32n);return e&&(n=~n|0n,o=~o|0n,++o>ju&&(o=0n,++n>ju&&(n=0n))),new r(Number(o),Number(n))}static fromNumber(t){if(t===0)return nr;let e=t<0;e&&(t=-t);let n=t>>>0,o=(t-n)/4294967296>>>0;return e&&(o=~o>>>0,n=~n>>>0,++n>4294967295&&(n=0,++o>4294967295&&(o=0))),new r(n,o)}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):nr}},nr=new Mt(0,0);nr.toBigInt=function(){return 0n};nr.zzEncode=nr.zzDecode=function(){return this};nr.length=function(){return 1};var ju=4294967296n;function Wu(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 Gu(r,t,e){if(e-t<1)return"";let o,s=[],i=0,a;for(;t<e;)a=r[t++],a<128?s[i++]=a:a>191&&a<224?s[i++]=(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,s[i++]=55296+(a>>10),s[i++]=56320+(a&1023)):s[i++]=(a&15)<<12|(r[t++]&63)<<6|r[t++]&63,i>8191&&((o??(o=[])).push(String.fromCharCode.apply(String,s)),i=0);return o!=null?(i>0&&o.push(String.fromCharCode.apply(String,s.slice(0,i))),o.join("")):String.fromCharCode.apply(String,s.slice(0,i))}function Zi(r,t,e){let n=e,o,s;for(let i=0;i<r.length;++i)o=r.charCodeAt(i),o<128?t[e++]=o:o<2048?(t[e++]=o>>6|192,t[e++]=o&63|128):(o&64512)===55296&&((s=r.charCodeAt(i+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++i,t[e++]=o>>18|240,t[e++]=o>>12&63|128,t[e++]=o>>6&63|128,t[e++]=o&63|128):(t[e++]=o>>12|224,t[e++]=o>>6&63|128,t[e++]=o&63|128);return e-n}function Zt(r,t){return RangeError(`index out of range: ${r.pos} + ${t??1} > ${r.len}`)}function Ho(r,t){return(r[t-4]|r[t-3]<<8|r[t-2]<<16|r[t-1]<<24)>>>0}var Xi=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(t){this.buf=Et(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,Zt(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 Zt(this,4);return Ho(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Zt(this,4);return Ho(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Zt(this,4);let t=Vu(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw Zt(this,4);let t=$u(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 Zt(this,t);return this.pos+=t,e===n?new Uint8Array(0):this.buf.subarray(e,n)}string(){let t=this.bytes();return Gu(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Zt(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Zt(this);while((this.buf[this.pos++]&128)!==0);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 Mt(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 Zt(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 Zt(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 Zt(this,8);let t=Ho(this.buf,this.pos+=4),e=Ho(this.buf,this.pos+=4);return new Mt(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=ji(this.buf,this.pos);return this.pos+=It(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 Sn(r){return new Xi(r instanceof Uint8Array?r:r.subarray())}function zo(r,t,e){let n=Sn(r);return t.decode(n,void 0,e)}function Qi(r){let t=r??8192,e=t>>>1,n,o=t;return function(i){if(i<1||i>e)return vt(i);o+i>t&&(n=vt(t),o=0);let a=n.subarray(o,o+=i);return(o&7)!==0&&(o=(o|7)+1),a}}var or=class{fn;len;next;val;constructor(t,e,n){this.fn=t,this.len=e,this.next=void 0,this.val=n}};function Ji(){}var ea=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},km=Qi();function Mm(r){return globalThis.Buffer!=null?vt(r):km(r)}var vn=class{len;head;tail;states;constructor(){this.len=0,this.head=new or(Ji,0,0),this.tail=this.head,this.states=null}_push(t,e,n){return this.tail=this.tail.next=new or(t,e,n),this.len+=e,this}uint32(t){return this.len+=(this.tail=this.tail.next=new ra((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(Vo,10,Mt.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let e=Mt.fromBigInt(t);return this._push(Vo,e.length(),e)}uint64Number(t){return this._push(Rr,It(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=Mt.fromBigInt(t).zzEncode();return this._push(Vo,e.length(),e)}sint64Number(t){let e=Mt.fromNumber(t).zzEncode();return this._push(Vo,e.length(),e)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(ta,1,t?1:0)}fixed32(t){return this._push(An,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let e=Mt.fromBigInt(t);return this._push(An,4,e.lo)._push(An,4,e.hi)}fixed64Number(t){let e=Mt.fromNumber(t);return this._push(An,4,e.lo)._push(An,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(zu,4,t)}double(t){return this._push(qu,8,t)}bytes(t){let e=t.length>>>0;return e===0?this._push(ta,1,0):this.uint32(e)._push(Fm,e,t)}string(t){let e=Wu(t);return e!==0?this.uint32(e)._push(Zi,e,t):this._push(ta,1,0)}fork(){return this.states=new ea(this),this.head=this.tail=new or(Ji,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 or(Ji,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=Mm(this.len),n=0;for(;t!=null;)t.fn(t.val,e,n),n+=t.len,t=t.next;return e}};function ta(r,t,e){t[e]=r&255}function Km(r,t,e){for(;r>127;)t[e++]=r&127|128,r>>>=7;t[e]=r}var ra=class extends or{next;constructor(t,e){super(Km,t,e),this.next=void 0}};function Vo(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 An(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 Fm(r,t,e){t.set(r,e)}globalThis.Buffer!=null&&(vn.prototype.bytes=function(r){let t=r.length>>>0;return this.uint32(t),t>0&&this._push(Hm,t,r),this},vn.prototype.string=function(r){let t=globalThis.Buffer.byteLength(r);return this.uint32(t),t>0&&this._push(zm,t,r),this});function Hm(r,t,e){t.set(r,e)}function zm(r,t,e){r.length<40?Zi(r,t,e):t.utf8Write!=null?t.utf8Write(r,e):t.set(nt(r),e)}function na(){return new vn}function qo(r,t){let e=na();return t.encode(r,e,{lengthDelimited:!1}),e.finish()}function*$o(r,t,e){let n=Sn(r);yield*t.stream(n,void 0,"$",e)}var jo={VARINT:0,BIT64:1,LENGTH_DELIMITED:2,START_GROUP:3,END_GROUP:4,BIT32:5};function Wo(r,t,e,n,o){return{name:r,type:t,encode:e,decode:n,stream:o}}function oa(r){function t(s){if(r[s.toString()]==null)throw new Error("Invalid enum value");return r[s]}let e=function(i,a){let c=t(i);a.int32(c)},n=function(i){let a=i.int32();return t(a)},o=function*(i){let a=i.int32();yield t(a)};return Wo("enum",jo.VARINT,e,n,o)}function Go(r,t,e){return Wo("message",jo.LENGTH_DELIMITED,r,t,e)}var ut;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.secp256k1="secp256k1",r.ECDSA="ECDSA"})(ut||(ut={}));var sa;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.secp256k1=2]="secp256k1",r[r.ECDSA=3]="ECDSA"})(sa||(sa={}));(function(r){r.codec=()=>oa(sa)})(ut||(ut={}));var ae;(function(r){let t;r.codec=()=>(t==null&&(t=Go((s,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),s.Type!=null&&(i.uint32(8),ut.codec().encode(s.Type,i)),s.Data!=null&&(i.uint32(18),i.bytes(s.Data)),a.lengthDelimited!==!1&&i.ldelim()},(s,i,a={})=>{let c={},f=i==null?s.len:s.pos+i;for(;s.pos<f;){let u=s.uint32();switch(u>>>3){case 1:{c.Type=ut.codec().decode(s);break}case 2:{c.Data=s.bytes();break}default:{s.skipType(u&7);break}}}return c},function*(s,i,a,c={}){let f=i==null?s.len:s.pos+i;for(;s.pos<f;){let u=s.uint32();switch(u>>>3){case 1:{yield{field:`${a}.Type`,value:ut.codec().decode(s)};break}case 2:{yield{field:`${a}.Data`,value:s.bytes()};break}default:{s.skipType(u&7);break}}}})),t);function e(s){return qo(s,r.codec())}r.encode=e;function n(s,i){return zo(s,r.codec(),i)}r.decode=n;function o(s,i){return $o(s,r.codec(),i)}r.stream=o})(ae||(ae={}));var ia;(function(r){let t;r.codec=()=>(t==null&&(t=Go((s,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),s.Type!=null&&(i.uint32(8),ut.codec().encode(s.Type,i)),s.Data!=null&&(i.uint32(18),i.bytes(s.Data)),a.lengthDelimited!==!1&&i.ldelim()},(s,i,a={})=>{let c={},f=i==null?s.len:s.pos+i;for(;s.pos<f;){let u=s.uint32();switch(u>>>3){case 1:{c.Type=ut.codec().decode(s);break}case 2:{c.Data=s.bytes();break}default:{s.skipType(u&7);break}}}return c},function*(s,i,a,c={}){let f=i==null?s.len:s.pos+i;for(;s.pos<f;){let u=s.uint32();switch(u>>>3){case 1:{yield{field:`${a}.Type`,value:ut.codec().decode(s)};break}case 2:{yield{field:`${a}.Data`,value:s.bytes()};break}default:{s.skipType(u&7);break}}}})),t);function e(s){return qo(s,r.codec())}r.encode=e;function n(s,i){return zo(s,r.codec(),i)}r.decode=n;function o(s,i){return $o(s,r.codec(),i)}r.stream=o})(ia||(ia={}));var Ln={};rt(Ln,{MAX_RSA_KEY_SIZE:()=>aa,generateRSAKeyPair:()=>th,jwkToJWKKeyPair:()=>eh,jwkToPkcs1:()=>jm,jwkToPkix:()=>ha,jwkToRSAPrivateKey:()=>ma,pkcs1MessageToJwk:()=>fa,pkcs1MessageToRSAPrivateKey:()=>la,pkcs1ToJwk:()=>$m,pkcs1ToRSAPrivateKey:()=>Ju,pkixMessageToJwk:()=>ua,pkixMessageToRSAPublicKey:()=>pa,pkixToJwk:()=>Wm,pkixToRSAPublicKey:()=>da});var Or=class{type="RSA";jwk;_raw;_multihash;constructor(t,e){this.jwk=t,this._multihash=e}get raw(){return this._raw==null&&(this._raw=Ln.jwkToPkix(this.jwk)),this._raw}toMultihash(){return this._multihash}toCID(){return yt.createV1(114,this._multihash)}toString(){return lt.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:gt(this.raw,t.raw)}verify(t,e,n){return Qu(this.jwk,e,t,n)}},Bn=class{type="RSA";jwk;_raw;publicKey;constructor(t,e){this.jwk=t,this.publicKey=e}get raw(){return this._raw==null&&(this._raw=Ln.jwkToPkcs1(this.jwk)),this._raw}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:gt(this.raw,t.raw)}sign(t,e){return Xu(this.jwk,t,e)}};var aa=8192,ca=18,Vm=1062,qm=Uint8Array.from([48,13,6,9,42,134,72,134,247,13,1,1,1,5,0]);function $m(r){let t=me(r);return fa(t)}function fa(r){return{n:Y(r[1],"base64url"),e:Y(r[2],"base64url"),d:Y(r[3],"base64url"),p:Y(r[4],"base64url"),q:Y(r[5],"base64url"),dp:Y(r[6],"base64url"),dq:Y(r[7],"base64url"),qi:Y(r[8],"base64url"),kty:"RSA"}}function jm(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 tt("JWK was missing components");return Ce([Pt(Uint8Array.from([0])),Pt(nt(r.n,"base64url")),Pt(nt(r.e,"base64url")),Pt(nt(r.d,"base64url")),Pt(nt(r.p,"base64url")),Pt(nt(r.q,"base64url")),Pt(nt(r.dp,"base64url")),Pt(nt(r.dq,"base64url")),Pt(nt(r.qi,"base64url"))]).subarray()}function Wm(r){let t=me(r,{offset:0});return ua(t)}function ua(r){let t=me(r[1],{offset:0});return{kty:"RSA",n:Y(t[0],"base64url"),e:Y(t[1],"base64url")}}function ha(r){if(r.n==null||r.e==null)throw new tt("JWK was missing components");return Ce([qm,po(Ce([Pt(nt(r.n,"base64url")),Pt(nt(r.e,"base64url"))]))]).subarray()}function Ju(r){let t=me(r);return la(t)}function la(r){let t=fa(r);return ma(t)}function da(r,t){if(r.byteLength>=Vm)throw new gr("Key size is too large");let e=me(r,{offset:0});return pa(e,r,t)}function pa(r,t,e){let n=ua(r);if(e==null){let o=ne(ae.encode({Type:ut.RSA,Data:t}));e=jt(ca,o)}return new Or(n,e)}function ma(r){if(nh(r)>aa)throw new tt("Key size is too large");let t=eh(r),e=ne(ae.encode({Type:ut.RSA,Data:ha(t.publicKey)})),n=jt(ca,e);return new Bn(t.privateKey,new Or(t.publicKey,n))}async function th(r){if(r>aa)throw new tt("Key size is too large");let t=await rh(r),e=ne(ae.encode({Type:ut.RSA,Data:ha(t.publicKey)})),n=jt(ca,e);return new Bn(t.privateKey,new Or(t.publicKey,n))}function eh(r){if(r==null)throw new tt("Missing key parameter");return{privateKey:r,publicKey:{kty:r.kty,n:r.n,e:r.e}}}async function rh(r,t){let e=await qt.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]);t?.signal?.throwIfAborted();let n=await Gm(e,t);return{privateKey:n[0],publicKey:n[1]}}async function Xu(r,t,e){let n=await qt.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]);e?.signal?.throwIfAborted();let o=await qt.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},n,Et(t instanceof Uint8Array?t:t.subarray()));return e?.signal?.throwIfAborted(),new Uint8Array(o,0,o.byteLength)}async function Qu(r,t,e,n){let o=await qt.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);n?.signal?.throwIfAborted();let s=await qt.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},o,Et(t),Et(e instanceof Uint8Array?e:e.subarray()));return n?.signal?.throwIfAborted(),s}async function Gm(r,t){if(r.privateKey==null||r.publicKey==null)throw new tt("Private and public key are required");let e=await Promise.all([qt.get().subtle.exportKey("jwk",r.privateKey),qt.get().subtle.exportKey("jwk",r.publicKey)]);return t?.signal?.throwIfAborted(),e}function nh(r){if(r.kty!=="RSA")throw new tt("invalid key type");if(r.n==null)throw new tt("invalid key modulus");return nt(r.n,"base64url").length*8}var Yo=class{oHash;iHash;blockLen;outputLen;canXOF=!1;finished=!1;destroyed=!1;constructor(t,e){if(Qe(t),Rt(e,void 0,"key"),this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("expected Hash instance");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let n=this.blockLen,o=new Uint8Array(n);o.set(e.length>n?t.create().update(e).digest():e);for(let s=0;s<o.length;s++)o[s]^=54;this.iHash.update(o),this.oHash=t.create();for(let s=0;s<o.length;s++)o[s]^=106;this.oHash.update(o),Ht(o)}update(t){return Br(this),this.iHash.update(t),this}digestInto(t){Br(this),go(t,this),this.finished=!0;let e=t.subarray(0,this.outputLen);this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||=Object.create(Object.getPrototypeOf(this),{});let{oHash:e,iHash:n,finished:o,destroyed:s,blockLen:i,outputLen:a,canXOF:c}=this;return t=t,t.finished=o,t.destroyed=s,t.blockLen=i,t.outputLen=a,t.canXOF=c,t.oHash=e._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},In=(()=>{let r=((t,e,n)=>new Yo(t,e).update(n).digest());return r.create=(t,e)=>new Yo(t,e),r})();var Ym=BigInt(0),ya=class extends Error{constructor(t=""){super(t)}},ge={Err:ya,_tlv:{encode:(r,t)=>{let{Err:e}=ge;if(Ne(r,"tag"),r<0||r>255)throw new e("tlv.encode: wrong tag");if(cu(t,"data"),t.length&1)throw new e("tlv.encode: unpadded data");let n=t.length/2,o=pn(n);if(o.length/2&128)throw new e("tlv.encode: long form length too big");let s=n>127?pn(o.length/2|128):"";return pn(r)+s+o+t},decode(r,t){let{Err:e}=ge;t=j(t,void 0,"DER data");let n=0;if(r<0||r>255)throw new e("tlv.decode: wrong tag");if(t.length<2||t[n++]!==r)throw new e("tlv.decode: wrong tlv");let o=t[n++],s=!!(o&128),i=0;if(!s)i=o;else{let c=o&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 f=t.subarray(n,n+c);if(f.length!==c)throw new e("tlv.decode: length bytes not complete");if(f[0]===0)throw new e("tlv.decode(long): zero leftmost byte");for(let u of f)i=i<<8|u;if(n+=c,i<128)throw new e("tlv.decode(long): not minimal encoding")}let a=t.subarray(n,n+i);if(a.length!==i)throw new e("tlv.decode: wrong value length");return{v:a,l:t.subarray(n+i)}}},_int:{encode(r){let{Err:t}=ge;if(Ao(r),r<Ym)throw new t("integer: negative integers are not allowed");let e=pn(r);if(Number.parseInt(e[0],16)&8&&(e="00"+e),e.length&1)throw new t("unexpected DER parsing assertion: unpadded hex");return e},decode(r){let{Err:t}=ge;if(r.length<1)throw new t("invalid signature integer: empty");if(r[0]&128)throw new t("invalid signature integer: negative");if(r.length>1&&r[0]===0&&!(r[1]&128))throw new t("invalid signature integer: unnecessary leading zero");return oe(r)}},toSig(r){let{Err:t,_int:e,_tlv:n}=ge,o=j(r,void 0,"signature"),{v:s,l:i}=n.decode(48,o);if(i.length)throw new t("invalid signature: left bytes after parsing");let{v:a,l:c}=n.decode(2,s),{v:f,l:u}=n.decode(2,c);if(u.length)throw new t("invalid signature: left bytes after parsing");return{r:e.decode(a),s:e.decode(f)}},hexFromSig(r){let{_tlv:t,_int:e}=ge;Bt(r,{r:"bigint",s:"bigint"},{},"sig");let n=t.encode(2,e.encode(r.r)),o=t.encode(2,e.encode(r.s)),s=n+o;return t.encode(48,s)}},ga=(Object.freeze(ge._tlv),Object.freeze(ge._int),Object.freeze(ge));var oh=(r,t)=>(r+(r>=0?t:-t)/sh)/t;function Zm(r,t,e){ie("scalar",r,be,e);let[[n,o],[s,i]]=t,a=oh(i*r,e),c=oh(-o*r,e),f=r-a*n-c*s,u=-a*o-c*i,h=f<be,l=u<be;h&&(f=-f),l&&(u=-u);let p=yn(Math.ceil(Ir(e)/2))+sr;if(f<be||f>=p||u<be||u>=p)throw new Error("splitScalar (endomorphism): failed for k");return{k1neg:h,k1:f,k2neg:l,k2:u}}function xa(r){if(!["compact","recovered","der"].includes(r))throw new Error('Signature format must be "compact", "recovered", or "der"');return r}function ba(r,t){Bt(r);let e={};for(let n of Object.keys(t))e[n]=r[n]===void 0?t[n]:r[n];return Ut(e.lowS,"lowS"),Ut(e.prehash,"prehash"),e.format!==void 0&&xa(e.format),e}var be=BigInt(0),sr=BigInt(1),sh=BigInt(2),wa=BigInt(3),Xm=BigInt(4);function ih(r,t={}){let e=Do("weierstrass",r,t),n=e.Fp,o=e.Fn,s=e.CURVE,{h:i,n:a}=s;Bt(t,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",randomBytes:"function"});let{endo:c,allowInfinityPoint:f}=t,u=t.randomBytes===void 0?ye:t.randomBytes;if(c&&(!n.is0(s.a)||typeof c.beta!="bigint"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');let h=ch(n,o);function l(){if(!n.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function p(C,d,E){if(f&&d.is0())return Uint8Array.of(0);let{x:B,y:A}=d.toAffine(),v=n.toBytes(B);if(Ut(E,"isCompressed"),E){l();let y=!n.isOdd(A);return zt(ah(y),v)}else return zt(Uint8Array.of(4),v,n.toBytes(A))}function m(C){j(C,void 0,"Point");let{publicKey:d,publicKeyUncompressed:E}=h,B=C.length,A=C[0],v=C.subarray(1);if(f&&B===1&&A===0)return{x:n.ZERO,y:n.ZERO};if(B===d&&(A===2||A===3)){let y=n.fromBytes(v);if(!n.isValid(y))throw new Error("bad point: is not on curve, wrong x");let L=x(y),O;try{O=n.sqrt(L)}catch(q){let V=q instanceof Error?": "+q.message:"";throw new Error("bad point: is not on curve, sqrt error"+V)}l();let F=n.isOdd(O);return(A&1)===1!==F&&(O=n.neg(O)),{x:y,y:O}}else if(B===E&&A===4){let y=n.BYTES,L=n.fromBytes(v.subarray(0,y)),O=n.fromBytes(v.subarray(y,y*2));if(!I(L,O))throw new Error("bad point: is not on curve");return{x:L,y:O}}else throw new Error(`bad point: got length ${B}, expected compressed=${d} or uncompressed=${E}`)}let b=t.toBytes===void 0?p:t.toBytes,g=t.fromBytes===void 0?m:t.fromBytes,w=n.mul(s.b,wa),S=n.is0(s.a)?C=>n.ZERO:C=>n.mul(s.a,C);function x(C){let d=n.sqr(C),E=n.mul(d,C);return n.add(n.add(E,n.mul(C,s.a)),s.b)}function I(C,d){let E=n.sqr(d),B=x(C);return n.eql(E,B)}if(!I(s.Gx,s.Gy))throw new Error("bad curve params: generator point");let _=n.mul(n.pow(s.a,wa),Xm),N=n.mul(n.sqr(s.b),BigInt(27));if(n.is0(n.add(_,N)))throw new Error("bad curve params: a or b");function k(C,d,E=!1){if(!n.isValid(d)||E&&n.is0(d))throw new Error(`bad point coordinate ${C}`);return d}function P(C){if(!(C instanceof D))throw new Error("Weierstrass Point expected")}function R(C){if(!c||!c.basises)throw new Error("no endo");return Zm(C,c.basises,o.ORDER)}function U(C,d,E,B){if(!o.isValid(B))throw new RangeError("invalid scalar: out of range");if(c){let{k1neg:A,k1:v,k2neg:y,k2:L}=R(B),O=new D(n.mul(E.X,c.beta),E.Y,E.Z);C.push(A?E.negate():E,y?O.negate():O),d.push(v,L)}else C.push(E),d.push(B)}let M=new WeakSet;class D{static BASE=new D(s.Gx,s.Gy,n.ONE);static ZERO=new D(n.ZERO,n.ONE,n.ZERO);static Fp=n;static Fn=o;X;Y;Z;constructor(d,E,B){this.X=k("x",d),this.Y=k("y",E,!0),this.Z=k("z",B),Object.freeze(this)}static CURVE(){return s}static fromAffine(d){let{x:E,y:B}=d||{};if(!d||!n.isValid(E)||!n.isValid(B))throw new Error("invalid affine point");if(d instanceof D)throw new Error("projective point not allowed");return n.is0(E)&&n.is0(B)?D.ZERO:new D(E,B,n.ONE)}static fromBytes(d){let E=D.fromAffine(g(j(d,void 0,"point")));return E.assertValidity(),E}static fromHex(d){return D.fromBytes(Lr(d))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(d=6,E=!0){return T.setWindowSize(this,d),E||this.multiply(wa),this}assertValidity(){let d=this;if(d.is0()){if(t.allowInfinityPoint&&n.is0(d.X)&&n.eql(d.Y,n.ONE)&&n.is0(d.Z))return;throw new Error("bad point: ZERO")}if(M.has(d))return;let{x:E,y:B}=d.toAffine();if(!n.isValid(E)||!n.isValid(B))throw new Error("bad point: x or y not field elements");if(!I(E,B))throw new Error("bad point: equation left != right");if(!d.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");M.add(d)}hasEvenY(){let{y:d}=this.toAffine();if(!n.isOdd)throw new Error("Field doesn't support isOdd");return!n.isOdd(d)}equals(d){P(d);let{X:E,Y:B,Z:A}=this,{X:v,Y:y,Z:L}=d,O=n.eql(n.mul(E,L),n.mul(v,A)),F=n.eql(n.mul(B,L),n.mul(y,A));return O&&F}negate(){return new D(this.X,n.neg(this.Y),this.Z)}double(){let{X:d,Y:E,Z:B}=this,A=n.ZERO,v=n.ZERO,y=n.ZERO,L=n.mul(d,d),O=n.mul(E,E),F=n.mul(B,B),K=n.mul(d,E);return K=n.add(K,K),y=n.mul(d,B),y=n.add(y,y),A=S(y),v=n.mul(w,F),v=n.add(A,v),A=n.sub(O,v),v=n.add(O,v),v=n.mul(A,v),A=n.mul(K,A),y=n.mul(w,y),F=S(F),K=n.sub(L,F),K=S(K),K=n.add(K,y),y=n.add(L,L),L=n.add(y,L),L=n.add(L,F),L=n.mul(L,K),v=n.add(v,L),F=n.mul(E,B),F=n.add(F,F),L=n.mul(F,K),A=n.sub(A,L),y=n.mul(F,O),y=n.add(y,y),y=n.add(y,y),new D(A,v,y)}add(d){P(d);let{X:E,Y:B,Z:A}=this,{X:v,Y:y,Z:L}=d,O=n.ZERO,F=n.ZERO,K=n.ZERO,q=n.mul(E,v),V=n.mul(B,y),G=n.mul(A,L),ot=n.add(E,B),st=n.add(v,y);ot=n.mul(ot,st),st=n.add(q,V),ot=n.sub(ot,st),st=n.add(E,A);let mt=n.add(v,L);return st=n.mul(st,mt),mt=n.add(q,G),st=n.sub(st,mt),mt=n.add(B,A),O=n.add(y,L),mt=n.mul(mt,O),O=n.add(V,G),mt=n.sub(mt,O),K=S(st),O=n.mul(w,G),K=n.add(O,K),O=n.sub(V,K),K=n.add(V,K),F=n.mul(O,K),V=n.add(q,q),V=n.add(V,q),G=S(G),st=n.mul(w,st),V=n.add(V,G),G=n.sub(q,G),G=S(G),st=n.add(st,G),q=n.mul(V,st),F=n.add(F,q),q=n.mul(mt,st),O=n.mul(ot,O),O=n.sub(O,q),q=n.mul(ot,V),K=n.mul(mt,K),K=n.add(K,q),new D(O,F,K)}subtract(d){return P(d),this.add(d.negate())}is0(){return this.equals(D.ZERO)}multiply(d){if(!o.isValidNot0(d))throw new RangeError("invalid scalar: out of range");let{p:E,f:B}=T.mulSecret(this,d,i,H);return H([E,B])[0]}multiplyUnsafe(d){let E=this,B=d;if(!o.isValid(B))throw new RangeError("invalid scalar: out of range");if(B===be||E.is0())return D.ZERO;if(B===sr)return E;if(T.hasWindowSize(this))return T.mulUnsafe(E,B,H);let A=[],v=[];return U(A,v,E,B),_o(D,A,v)}mulAddUnsafe(d,E,B){P(E);let A=[],v=[];return U(A,v,this,d),U(A,v,E,B),_o(D,A,v)}toAffine(d){let E=this,B=d;if(B!=null&&!n.isValid(B))throw new RangeError('"invertedZ" expected valid field element');let{X:A,Y:v,Z:y}=E;if(n.eql(y,n.ONE))return{x:A,y:v};let L=E.is0();B==null&&(B=L?n.ONE:n.inv(y));let O=n.mul(A,B),F=n.mul(v,B),K=n.mul(y,B);if(L)return{x:n.ZERO,y:n.ZERO};if(!n.eql(K,n.ONE))throw new Error("invZ was invalid");return{x:O,y:F}}isTorsionFree(){let{isTorsionFree:d}=t;return i===sr?!0:d?d(D,this):T.mulUnsafe(this,a).is0()}clearCofactor(){let{clearCofactor:d}=t;return i===sr?this:d?d(D,this):this.multiplyUnsafe(i)}isSmallOrder(){return i===sr?this.is0():this.clearCofactor().is0()}toBytes(d=!0){return Ut(d,"isCompressed"),this.assertValidity(),b(D,this,d)}toHex(d=!0){return dn(this.toBytes(d))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let H=C=>To(D,C),T=new _r(D,u);return T.bits>=6&&D.BASE.precompute(6),Object.freeze(D.prototype),Object.freeze(D),D}function ah(r){return Uint8Array.of(r?2:3)}function ch(r,t){return{secretKey:t.BYTES,publicKey:1+r.BYTES,publicKeyUncompressed:1+2*r.BYTES,publicKeyHasPrefix:!0,signature:2*t.BYTES}}function Qm(r,t={}){Me(r);let{Fn:e}=r,n=t.randomBytes===void 0?ye:t.randomBytes,o=Object.assign(ch(r.Fp,e),{seed:Math.max(Io(e.ORDER),16)});function s(p){try{let m=e.fromBytes(p);return e.isValidNot0(m)}catch{return!1}}function i(p,m){let{publicKey:b,publicKeyUncompressed:g}=o;try{let w=p.length;return m===!0&&w!==b||m===!1&&w!==g?!1:!!r.fromBytes(p)}catch{return!1}}function a(p){return p=p===void 0?n(o.seed):p,Co(j(p,o.seed,"seed"),e.ORDER)}function c(p,m=!0){return r.BASE.multiply(e.fromBytes(p)).toBytes(m)}function f(p){let{secretKey:m,publicKey:b,publicKeyUncompressed:g}=o,w=e._lengths;if(!Ue(p))return;let S=j(p,void 0,"key").length,x=S===b||S===g,I=S===m||!!w?.includes(S);if(!(x&&I))return x}function u(p,m,b=!0){if(f(p)===!0)throw new Error("first arg must be private key");if(f(m)===!1)throw new Error("second arg must be public key");let g=e.fromBytes(p);return r.fromBytes(m).multiply(g).toBytes(b)}let h={isValidSecretKey:s,isValidPublicKey:i,randomSecretKey:a},l=Dr(a,c);return Object.freeze(h),Object.freeze(o),Object.freeze({getPublicKey:c,getSharedSecret:u,keygen:l,Point:r,utils:h,lengths:o})}function fh(r,t,e={}){Me(r);let n=t;Qe(n),Bt(e,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let o=Object.assign({},e),s=o.randomBytes===void 0?ye:o.randomBytes,i=o.hmac===void 0?(v,y)=>In(n,v,y):o.hmac,{Fp:a,Fn:c}=r,{ORDER:f,BITS:u}=c,h=Io(f),l=Ni(s,h),{keygen:p,getPublicKey:m,getSharedSecret:b,utils:g,lengths:w}=Qm(r,o),S={prehash:!0,lowS:typeof o.lowS=="boolean"?o.lowS:!0,format:"compact",extraEntropy:!1},x=f*sh+sr<a.ORDER;function I(v){let y=f>>sr;return v>y}function _(v,y){if(!c.isValidNot0(y))throw new Error(`invalid signature ${v}: out of range 1..Point.Fn.ORDER`);return y}function N(){if(!a.isOdd)throw new Error("Field doesn't support isOdd")}function k(v,y,L){return N(),(v===L?0:2)|Number(a.isOdd(y))}function P(){if(x)throw new Error('"recovered" sig type is not supported for cofactor >2 curves')}function R(v,y){xa(y);let L=w.signature,O=y==="compact"?L:y==="recovered"?L+1:void 0;return j(v,O)}class U{r;s;recovery;constructor(y,L,O){if(this.r=_("r",y),this.s=_("s",L),O!=null){if(P(),![0,1,2,3].includes(O))throw new Error("invalid recovery id");this.recovery=O}Object.freeze(this)}static fromBytes(y,L=S.format){R(y,L);let O;if(L==="der"){let{r:V,s:G}=ga.toSig(j(y));return new U(V,G)}L==="recovered"&&(O=y[0],L="compact",y=y.subarray(1));let F=w.signature/2,K=y.subarray(0,F),q=y.subarray(F,F*2);return new U(c.fromBytes(K),c.fromBytes(q),O)}static fromHex(y,L){return this.fromBytes(Lr(y),L)}assertRecovery(){let{recovery:y}=this;if(y==null)throw new Error("invalid recovery id: must be present");return y}addRecoveryBit(y){return new U(this.r,this.s,y)}recoverPublicKey(y){let{r:L,s:O}=this,F=this.assertRecovery(),K=F===2||F===3?L+f:L;if(!a.isValid(K))throw new Error("invalid recovery id: sig.r+curve.n != R.x");let q=a.toBytes(K),V=r.fromBytes(zt(ah((F&1)===0),q)),G=c.inv(K),ot=D(j(y,void 0,"msgHash")),st=c.create(-ot*G),mt=c.create(O*G),Nt=r.BASE.mulAddUnsafe(st,V,mt);if(Nt.is0())throw new Error("invalid recovery: point at infinify");return Nt.assertValidity(),Nt}hasHighS(){return I(this.s)}toBytes(y=S.format){if(xa(y),y==="der")return Lr(ga.hexFromSig(this));let{r:L,s:O}=this,F=c.toBytes(L),K=c.toBytes(O);return y==="recovered"?(P(),zt(Uint8Array.of(this.assertRecovery()),F,K)):zt(F,K)}toHex(y){return dn(this.toBytes(y))}}Object.freeze(U.prototype),Object.freeze(U);let M=o.bits2int===void 0?function(y){if(y.length>8192)throw new Error("input is too large");let L=oe(y),O=y.length*8-u;return O>0?L>>BigInt(O):L}:o.bits2int,D=o.bits2int_modN===void 0?function(y){return c.create(M(y))}:o.bits2int_modN,H=yn(u);function T(v){return ie("num < 2^"+u,v,be,H),c.toBytes(v)}function C(v,y){return j(v,void 0,"message"),y?j(n(v),void 0,"prehashed message"):v}function d(v,y,L){let{lowS:O,prehash:F,extraEntropy:K}=ba(L,S);v=C(v,F);let q=D(v),V=c.fromBytes(y);if(!c.isValidNot0(V))throw new Error("invalid private key");let G=[T(V),T(q)];if(K!=null&&K!==!1){let Nt=K===!0?s(w.secretKey):K;G.push(j(Nt,void 0,"extraEntropy"))}let ot=zt(...G),st=q;function mt(Nt){let de=M(Nt);if(!c.isValidNot0(de))return;let $e=r.BASE.multiply(de).toAffine(),Jt=c.create($e.x);if(Jt===be)return;let kt;if(l!==void 0){let ve=oe(Co(l(h),f)),od=c.inv(c.mul(ve,de)),sd=c.mul(ve,st),id=c.mul(ve,V);kt=c.create(od*c.create(sd+id*Jt))}else{let ve=bu(de,f);kt=c.create(ve*c.create(st+Jt*V))}if(kt===be)return;let mr=k($e.x,$e.y,Jt),tn=kt;return O&&I(kt)&&(tn=c.neg(kt),mr^=1),new U(Jt,tn,x?void 0:mr)}return{seed:ot,k2sig:mt}}function E(v,y,L={}){let{seed:O,k2sig:F}=d(v,y,L);return uu(n.outputLen,c.BYTES,i)(O,F).toBytes(L.format)}function B(v,y,L,O={}){let{lowS:F,prehash:K,format:q}=ba(O,S);if(L=j(L,void 0,"publicKey"),y=C(y,K),!Ue(v)){let V=v instanceof U?", use sig.toBytes()":"";throw new Error("verify expects Uint8Array signature"+V)}R(v,q);try{let V=U.fromBytes(v,q),G=r.fromBytes(L);if(F&&V.hasHighS())return!1;let{r:ot,s:st}=V,mt=D(y),Nt=c.inv(st),de=c.create(mt*Nt),$e=c.create(ot*Nt),Jt=r.BASE.mulAddUnsafe(de,G,$e);if(Jt.is0())return!1;let kt=Jt.toAffine();return!(c.create(kt.x)!==ot||q==="recovered"&&V.recovery!==k(kt.x,kt.y,ot))}catch{return!1}}function A(v,y,L={}){let{prehash:O}=ba(L,S);return y=C(y,O),U.fromBytes(v,"recovered").recoverPublicKey(y).toBytes()}return Object.freeze({keygen:p,getPublicKey:m,getSharedSecret:b,utils:g,lengths:w,Point:r,sign:E,verify:B,recoverPublicKey:A,Signature:U,hash:n})}var Sa={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},Jm={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]};var uh=BigInt(2);function t0(r){let t=Sa.p,e=BigInt(3),n=BigInt(6),o=BigInt(11),s=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),f=r*r*r%t,u=f*f*r%t,h=it(u,e,t)*u%t,l=it(h,e,t)*u%t,p=it(l,uh,t)*f%t,m=it(p,o,t)*p%t,b=it(m,s,t)*m%t,g=it(b,a,t)*b%t,w=it(g,c,t)*g%t,S=it(w,a,t)*b%t,x=it(S,e,t)*u%t,I=it(x,i,t)*m%t,_=it(I,n,t)*f%t,N=it(_,uh,t);if(!Ea.eql(Ea.sqr(N),r))throw new Error("Cannot find square root");return N}var Ea=Tr(Sa.p,{sqrt:t0}),e0=ih(Sa,{Fp:Ea,endo:Jm}),Pr=fh(e0,ne);function hh(r,t,e,n){let o=an.digest(e instanceof Uint8Array?e:e.subarray());if(Ko(o))return o.then(({digest:s})=>(n?.signal?.throwIfAborted(),Pr.verify(t,s,r,{prehash:!1,format:"der"}))).catch(s=>{throw s.name==="AbortError"?s:new En(String(s))});try{return n?.signal?.throwIfAborted(),Pr.verify(t,o.digest,r,{prehash:!1,format:"der"})}catch(s){throw new En(String(s))}}var Zo=class{type="secp256k1";raw;_key;constructor(t){this._key=dh(t),this.raw=lh(this._key)}toMultihash(){return Wt.digest(Te(this))}toCID(){return yt.createV1(114,this.toMultihash())}toString(){return lt.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:gt(this.raw,t.raw)}verify(t,e,n){return hh(this._key,e,t,n)}};function Aa(r){return new Zo(r)}function lh(r){return Pr.Point.fromBytes(r).toBytes()}function dh(r){try{return Pr.Point.fromBytes(r),r}catch(t){throw new gr(String(t))}}function Cn(r,t){let{Type:e,Data:n}=ae.decode(r),o=n??new Uint8Array;switch(e){case ut.RSA:return da(o,t);case ut.Ed25519:return Hi(o);case ut.secp256k1:return Aa(o);case ut.ECDSA:return yi(o);default:throw new je}}function ph(r){let{Type:t,Data:e}=ae.decode(r.digest),n=e??new Uint8Array;switch(t){case ut.Ed25519:return Hi(n);case ut.secp256k1:return Aa(n);case ut.ECDSA:return yi(n);default:throw new je}}function Te(r){return ae.encode({Type:ut[r.type],Data:r.raw})}var mh=Symbol.for("nodejs.util.inspect.custom"),r0=114,Tn=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()})`}[Ks]=!0;toString(){return this.string==null&&(this.string=lt.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return yt.createV1(r0,this.multihash)}toJSON(){return this.toString()}equals(t){if(t==null)return!1;if(t instanceof Uint8Array)return gt(this.multihash.bytes,t);if(typeof t=="string")return this.toString()===t;if(t?.toMultihash()?.bytes!=null)return gt(this.multihash.bytes,t.toMultihash().bytes);throw new Error("not valid Id")}[mh](){return`PeerId(${this.toString()})`}},_n=class extends Tn{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},Dn=class extends Tn{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.publicKey}},Rn=class extends Tn{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.publicKey}},n0=2336,On=class{type="url";multihash;publicKey;url;constructor(t){this.url=t.toString(),this.multihash=Wt.digest(nt(this.url))}[mh](){return`PeerId(${this.url})`}[Ks]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return yt.createV1(n0,this.toMultihash())}toJSON(){return this.toString()}equals(t){return t==null?!1:(t instanceof Uint8Array&&(t=Y(t)),t.toString()===this.toString())}};var o0=114,yh=2336;function gh(r,t){let e;if(r.charAt(0)==="1"||r.charAt(0)==="Q")e=Ar(lt.decode(`z${r}`));else{if(r.startsWith("k51qzi5uqu5")||r.startsWith("kzwfwjn5ji4")||r.startsWith("k2k4r8")||r.startsWith("bafz"))return s0(yt.parse(r));if(t==null)throw new tt('Please pass a multibase decoder for strings that do not start with "1" or "Q"');e=Ar(t.decode(r))}return bh(e)}function va(r){if(r.type==="Ed25519")return new Dn({multihash:r.toCID().multihash,publicKey:r});if(r.type==="secp256k1")return new Rn({multihash:r.toCID().multihash,publicKey:r});if(r.type==="RSA")return new _n({multihash:r.toCID().multihash,publicKey:r});throw new je}function bh(r){if(a0(r))return new _n({multihash:r});if(i0(r))try{let t=ph(r);if(t.type==="Ed25519")return new Dn({multihash:r,publicKey:t});if(t.type==="secp256k1")return new Rn({multihash:r,publicKey:t})}catch{let e=Y(r.digest);return new On(new URL(e))}throw new so("Supplied PeerID Multihash is invalid")}function s0(r){if(r?.multihash==null||r.version==null||r.version===1&&r.code!==o0&&r.code!==yh)throw new oo("Supplied PeerID CID is invalid");if(r.code===yh){let t=Y(r.multihash.digest);return new On(new URL(t))}return bh(r.multihash)}function i0(r){return r.code===Wt.code}function a0(r){return r.code===an.code}function c0(r){let t=r.getComponents(),e={},n=0;return t[n]?.name==="ip6zone"&&(e.zone=`${t[n].value}`,n++),t[n]?.name==="ip4"||t[n]?.name==="ip6"||t[n]?.name==="dns"||t[n]?.name==="dns4"||t[n]?.name==="dns6"?(e.type=t[n].name,e.host=t[n].value,n++):t[n]?.name==="dnsaddr"&&(e.type=t[n].name,e.host=`_dnsaddr.${t[n].value}`,n++),(t[n]?.name==="tcp"||t[n]?.name==="udp")&&(e.protocol=t[n].name==="tcp"?"tcp":"udp",e.port=parseInt(`${t[n].value}`),n++),t[n]?.name==="ipcidr"&&(e.type==="ip4"?e.cidr=parseInt(`${t[n].value}`):e.type==="ip6"&&(e.cidr=`${t[n].value}`),n++),e.type==null||e.host==null?null:(t[n]?.name==="tls"&&t[n+1]?.name==="sni"&&(e.sni=t[n+1].value,n+=2),e)}function wh(r){let t=c0(r);if(t==null)throw new tt(`Multiaddr ${r} was not an IPv4, IPv6, DNS, DNS4, DNS6 or DNSADDR address`);return t}var Xo=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,o){return this.readAtomically(()=>{let s=0,i=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",f=2**(8*o)-1;for(;;){let u=this.readAtomically(()=>{let h=this.readChar();if(h===void 0)return;let l=Number.parseInt(h,t);if(!Number.isNaN(l))return l});if(u===void 0)break;if(s*=t,s+=u,s>f||(i+=1,e!==void 0&&i>e))return}if(i!==0)return!n&&c&&i>1?void 0:s})}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 o=n*2;if(n<e.length-3){let i=this.readSeparator(":",n,()=>this.readIPv4Addr());if(i!==void 0)return e[o]=i[0],e[o+1]=i[1],e[o+2]=i[2],e[o+3]=i[3],[o+4,!0]}let s=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(s===void 0)return[o,!1];e[o]=s>>8,e[o+1]=s&255}return[e.length,!1]};return this.readAtomically(()=>{let e=new Uint8Array(16),[n,o]=t(e);if(n===16)return e;if(o||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let s=new Uint8Array(14),i=16-(n+2),[a]=t(s.subarray(0,i));return e.set(s.subarray(0,a),16-a),e})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var f0=45,u0=15,Qo=new Xo;function xh(r){if(!(r.length>u0))return Qo.new(r).parseWith(()=>Qo.readIPv4Addr())}function Eh(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>f0))return Qo.new(r).parseWith(()=>Qo.readIPv6Addr())}function Jo(r){return!!xh(r)}function Sh(r){return!!Eh(r)}var St=class extends Error{static name="InvalidMultiaddrError";name="InvalidMultiaddrError"},we=class extends Error{static name="ValidationError";name="ValidationError"},ts=class extends Error{static name="InvalidParametersError";name="InvalidParametersError"},es=class extends Error{static name="UnknownProtocolError";name="UnknownProtocolError"};function La(r){return t=>Y(t,r)}function Ia(r){return t=>nt(t,r)}function Ur(r){return new DataView(r.buffer).getUint16(r.byteOffset).toString()}function ir(r){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,typeof r=="string"?parseInt(r):r),new Uint8Array(t)}function Ah(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=nt(t[0],"base32"),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=ir(n);return ee([e,o],e.length+o.length)}function vh(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=Ie.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 o=ir(n);return ee([e,o],e.length+o.length)}function Ca(r){let t=r.subarray(0,r.length-2),e=r.subarray(r.length-2),n=Y(t,"base32"),o=Ur(e);return`${n}:${o}`}var Ta=function(r){r=r.toString().trim();let t=new Uint8Array(4);return r.split(/\./g).forEach((e,n)=>{let o=parseInt(e,10);if(isNaN(o)||o<0||o>255)throw new St("Invalid byte value in IP address");t[n]=o}),t},Bh=function(r){let t=0;r=r.toString().trim();let e=r.split(":",8),n;for(n=0;n<e.length;n++){let s=Jo(e[n]),i;s&&(i=Ta(e[n]),e[n]=Y(i.subarray(0,2),"base16")),i!=null&&++n<8&&e.splice(n,0,Y(i.subarray(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 s=[n,1];for(n=9-e.length;n>0;n--)s.push("0");e.splice.apply(e,s)}let o=new Uint8Array(t+16);for(n=0;n<e.length;n++){e[n]===""&&(e[n]="0");let s=parseInt(e[n],16);if(isNaN(s)||s<0||s>65535)throw new St("Invalid byte value in IP address");o[t++]=s>>8&255,o[t++]=s&255}return o},Lh=function(r){if(r.byteLength!==4)throw new St("IPv4 address was incorrect length");let t=[];for(let e=0;e<r.byteLength;e++)t.push(r[e]);return t.join(".")},Ih=function(r){if(r.byteLength!==16)throw new St("IPv6 address was incorrect length");let t=[];for(let n=0;n<r.byteLength;n+=2){let o=r[n],s=r[n+1],i=`${o.toString(16).padStart(2,"0")}${s.toString(16).padStart(2,"0")}`;t.push(i)}let e=t.join(":");try{let n=new URL(`http://[${e}]`);return n.hostname.substring(1,n.hostname.length-1)}catch{throw new St(`Invalid IPv6 address "${e}"`)}};function Ch(r){try{let t=new URL(`http://[${r}]`);return t.hostname.substring(1,t.hostname.length-1)}catch{throw new St(`Invalid IPv6 address "${r}"`)}}var Ba=Object.values(Ye).map(r=>r.decoder),h0=(function(){let r=Ba[0].or(Ba[1]);return Ba.slice(2).forEach(t=>r=r.or(t)),r})();function Th(r){return h0.decode(r)}function _h(r){return t=>r.encoder.encode(t)}function l0(r){if(parseInt(r).toString()!==r)throw new we("Value must be an integer")}function d0(r){if(r<0)throw new we("Value must be a positive integer, or zero")}function p0(r){return t=>{if(t>r)throw new we(`Value must be smaller than or equal to ${r}`)}}function m0(...r){return t=>{for(let e of r)e(t)}}var Pn=m0(l0,d0,p0(65535));var xt=-1,_a=class{protocolsByCode=new Map;protocolsByName=new Map;getProtocol(t){let e;if(typeof t=="string"?e=this.protocolsByName.get(t):e=this.protocolsByCode.get(t),e==null)throw new es(`Protocol ${t} was unknown`);return e}addProtocol(t){this.protocolsByCode.set(t.code,t),this.protocolsByName.set(t.name,t),t.aliases?.forEach(e=>{this.protocolsByName.set(e,t)})}removeProtocol(t){let e=this.protocolsByCode.get(t);e!=null&&(this.protocolsByCode.delete(e.code),this.protocolsByName.delete(e.name),e.aliases?.forEach(n=>{this.protocolsByName.delete(n)}))}},Ee=new _a,T0=[{code:4,name:"ip4",size:32,valueToBytes:Ta,bytesToValue:Lh,validate:r=>{if(!Jo(r))throw new we(`Invalid IPv4 address "${r}"`)}},{code:6,name:"tcp",size:16,valueToBytes:ir,bytesToValue:Ur,validate:Pn},{code:273,name:"udp",size:16,valueToBytes:ir,bytesToValue:Ur,validate:Pn},{code:33,name:"dccp",size:16,valueToBytes:ir,bytesToValue:Ur,validate:Pn},{code:41,name:"ip6",size:128,valueToBytes:Bh,bytesToValue:Ih,stringToValue:Ch,validate:r=>{if(!Sh(r))throw new we(`Invalid IPv6 address "${r}"`)}},{code:42,name:"ip6zone",size:xt},{code:43,name:"ipcidr",size:8,bytesToValue:La("base10"),valueToBytes:Ia("base10")},{code:53,name:"dns",size:xt},{code:54,name:"dns4",size:xt},{code:55,name:"dns6",size:xt},{code:56,name:"dnsaddr",size:xt},{code:132,name:"sctp",size:16,valueToBytes:ir,bytesToValue:Ur,validate:Pn},{code:301,name:"udt"},{code:302,name:"utp"},{code:400,name:"unix",size:xt,stringToValue:r=>decodeURIComponent(r),valueToString:r=>encodeURIComponent(r)},{code:421,name:"p2p",aliases:["ipfs"],size:xt,bytesToValue:La("base58btc"),valueToBytes:r=>r.startsWith("Q")||r.startsWith("1")?Ia("base58btc")(r):yt.parse(r).multihash.bytes},{code:444,name:"onion",size:96,bytesToValue:Ca,valueToBytes:Ah},{code:445,name:"onion3",size:296,bytesToValue:Ca,valueToBytes:vh},{code:446,name:"garlic64",size:xt},{code:447,name:"garlic32",size:xt},{code:448,name:"tls"},{code:449,name:"sni",size:xt},{code:454,name:"noise"},{code:460,name:"quic"},{code:461,name:"quic-v1"},{code:465,name:"webtransport"},{code:466,name:"certhash",size:xt,bytesToValue:_h(ni),valueToBytes:Th},{code:480,name:"http"},{code:481,name:"http-path",size:xt,stringToValue:r=>`/${decodeURIComponent(r)}`,valueToString:r=>encodeURIComponent(r.substring(1))},{code:443,name:"https"},{code:477,name:"ws"},{code:478,name:"wss"},{code:479,name:"p2p-websocket-star"},{code:277,name:"p2p-stardust"},{code:275,name:"p2p-webrtc-star"},{code:276,name:"p2p-webrtc-direct"},{code:280,name:"webrtc-direct"},{code:281,name:"webrtc"},{code:290,name:"p2p-circuit"},{code:777,name:"memory",size:xt}];T0.forEach(r=>{Ee.addProtocol(r)});function Dh(r){let t=[],e=0;for(;e<r.length;){let n=rr(r,e),o=Ee.getProtocol(n),s=It(n),i=_0(o,r,e+s),a=0;i>0&&o.size===xt&&(a=It(i));let c=s+a+i,f={code:n,name:o.name,bytes:Et(r.subarray(e,e+c))};if(i>0){let u=e+s+a,h=r.subarray(u,u+i);f.value=o.bytesToValue?.(h)??Y(h)}t.push(f),e+=c}return t}function Rh(r){let t=0,e=[];for(let n of r){if(n.bytes==null){let o=Ee.getProtocol(n.code),s=It(n.code),i,a=0,c=0;n.value!=null&&(i=o.valueToBytes?.(n.value)??nt(n.value),a=i.byteLength,o.size===xt&&(c=It(a)));let f=new Uint8Array(s+c+a),u=0;Rr(n.code,f,u),u+=s,i!=null&&(o.size===xt&&(Rr(a,f,u),u+=c),f.set(i,u)),n.bytes=f}e.push(n.bytes),t+=n.bytes.byteLength}return ee(e,t)}function Oh(r){if(r.charAt(0)!=="/")throw new St('String multiaddr must start with "/"');let t=[],e="protocol",n="",o="";for(let s=1;s<r.length;s++){let i=r.charAt(s);i!=="/"&&(e==="protocol"?o+=r.charAt(s):n+=r.charAt(s));let a=s===r.length-1;if(i==="/"||a){let c=Ee.getProtocol(o);if(e==="protocol"){if(c.size==null||c.size===0){t.push({code:c.code,name:c.name}),n="",o="",e="protocol";continue}else if(a)throw new St(`Component ${o} was missing value`);e="value"}else if(e==="value"){let f={code:c.code,name:c.name};if(c.size!=null&&c.size!==0){if(n==="")throw new St(`Component ${o} was missing value`);f.value=c.stringToValue?.(n)??n}t.push(f),n="",o="",e="protocol"}}}if(o!==""&&n!=="")throw new St("Incomplete multiaddr");return t}function Ph(r){return`/${r.flatMap(t=>{if(t.value==null)return t.name;let e=Ee.getProtocol(t.code);if(e==null)throw new St(`Unknown protocol code ${t.code}`);return[t.name,e.valueToString?.(t.value)??t.value]}).join("/")}`}function _0(r,t,e){return r.size==null||r.size===0?0:r.size>0?r.size/8:rr(t,e)}var D0=Symbol.for("nodejs.util.inspect.custom"),Ga=Symbol.for("@multiformats/multiaddr");function R0(r){if(r==null&&(r="/"),Uh(r))return r.getComponents();if(r instanceof Uint8Array)return Dh(r);if(typeof r=="string")return r=r.replace(/\/(\/)+/,"/").replace(/(\/)+$/,""),r===""&&(r="/"),Oh(r);if(Array.isArray(r))return r;throw new St("Must be a string, Uint8Array, Component[], or another Multiaddr")}var Wa=class r{[Ga]=!0;#t;#e;#r;constructor(t="/",e={}){this.#t=R0(t),e.validate!==!1&&O0(this)}get bytes(){return this.#r==null&&(this.#r=Rh(this.#t)),this.#r}toString(){return this.#e==null&&(this.#e=Ph(this.#t)),this.#e}toJSON(){return this.toString()}getComponents(){return[...this.#t.map(t=>({...t}))]}encapsulate(t){let e=new r(t);return new r([...this.#t,...e.getComponents()],{validate:!1})}decapsulate(t){let e=t.toString(),n=this.toString(),o=n.lastIndexOf(e);if(o<0)throw new ts(`Address ${this.toString()} does not contain subaddress: ${e}`);return new r(n.slice(0,o),{validate:!1})}decapsulateCode(t){let e;for(let n=this.#t.length-1;n>-1;n--)if(this.#t[n].code===t){e=n;break}return new r(this.#t.slice(0,e),{validate:!1})}equals(t){return gt(this.bytes,t.bytes)}[D0](){return`Multiaddr(${this.toString()})`}};function O0(r){r.getComponents().forEach(t=>{let e=Ee.getProtocol(t.code);t.value!=null&&e.validate?.(t.value)})}function Uh(r){return!!r?.[Ga]}var at=r=>({match:t=>{let e=t[0];return e==null||e.code!==r||e.value!=null?!1:t.slice(1)}}),z=(r,t)=>({match:e=>{let n=e[0];return n?.code!==r||n.value==null||t!=null&&n.value!==t?!1:e.slice(1)}}),Nh=r=>({match:t=>r.match(t)===!1?t:!1}),$=r=>({match:t=>{let e=r.match(t);return e===!1?t:e}}),Tt=(...r)=>({match:t=>{let e;for(let n of r){let o=n.match(t);o!==!1&&(e==null||o.length<e.length)&&(e=o)}return e??!1}}),Z=(...r)=>({match:t=>{for(let e of r){let n=e.match(t);if(n===!1)return!1;t=n}return t}});function ct(...r){function t(o){if(o==null)return!1;let s=o.getComponents();for(let i of r){let a=i.match(s);if(a===!1)return!1;s=a}return s}function e(o){return t(o)!==!1}function n(o){let s=t(o);return s===!1?!1:s.length===0}return{matchers:r,matches:e,exactMatch:n}}var P0=z(421),BS=ct(P0),cs=z(54),fs=z(55),us=z(56),Za=z(53),LS=ct(cs,$(z(421))),IS=ct(fs,$(z(421))),CS=ct(us,$(z(421))),TS=ct(Tt(Za,us,cs,fs),$(z(421))),kh=Z(z(4),$(z(43))),Mh=Z($(z(42)),z(41),$(z(43))),Xa=Tt(kh,Mh),Kr=Tt(Xa,Za,cs,fs,us),_S=ct(Tt(Xa,Z(Tt(Za,us,cs,fs),$(z(421))))),DS=ct(kh),RS=ct(Mh),OS=ct(Xa),Qa=Z(Kr,z(6)),Un=Z(Kr,z(273)),PS=ct(Z(Qa,$(z(421)))),US=ct(Un),Ja=Z(Un,at(460),$(z(421))),hs=Z(Un,at(461),$(z(421))),U0=Tt(Ja,hs),NS=ct(Ja),kS=ct(hs),Ya=Tt(Kr,Qa,Un,Ja,hs),Kh=Tt(Z(Ya,at(477),$(z(421)))),MS=ct(Kh),Fh=Tt(Z(Ya,at(478),$(z(421))),Z(Ya,at(448),$(z(449)),at(477),$(z(421)))),KS=ct(Fh),Hh=Z(Un,at(280),$(z(466)),$(z(466)),$(z(421))),FS=ct(Hh),zh=Z(hs,at(465),$(z(466)),$(z(466)),$(z(421))),ls=ct(zh),as=Tt(Kh,Fh,Z(Qa,$(z(421))),Z(U0,$(z(421))),Z(Kr,$(z(421))),Hh,zh,z(421)),HS=ct(as),N0=Z($(as),at(290),Nh(at(281)),$(z(421))),zS=ct(N0),k0=Tt(Z(as,at(290),at(281),$(z(421))),Z(as,at(281),$(z(421))),Z(at(281),$(z(421)))),VS=ct(k0),M0=Z(Kr,Tt(Z(z(6,"80")),Z(z(6),at(480)),at(480)),$(z(481)),$(z(421))),qS=ct(M0),K0=Z(Kr,Tt(Z(z(6,"443")),Z(z(6,"443"),at(480)),Z(z(6),at(443)),Z(z(6),at(448),at(480)),Z(at(448),at(480)),at(448),at(443)),$(z(481)),$(z(421))),$S=ct(K0),F0=Tt(Z(z(777),$(z(421)))),jS=ct(F0),H0=Tt(Z(z(400),$(z(421)))),WS=ct(H0);function ds(){let r={};return r.promise=new Promise((t,e)=>{r.resolve=t,r.reject=e}),r}var ps=class{buffer;mask;top;btm;next;constructor(t){if(!(t>0)||(t-1&t)!==0)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}},Fr=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new ps(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 ps(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 tc=class extends Error{type;code;constructor(t,e){super(t??"The operation was aborted"),this.type="aborted",this.code=e??"ABORT_ERR"}};function ms(r={}){return z0(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 z0(r,t){t=t??{};let e=t.onEnd,n=new Fr,o,s,i,a=ds(),c=async()=>{try{return n.isEmpty()?i?{done:!0}:await new Promise((g,w)=>{s=S=>{s=null,n.push(S);try{g(r(n))}catch(x){w(x)}return o}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=ds()})}},f=g=>s!=null?s(g):(n.push(g),o),u=g=>(n=new Fr,s!=null?s({error:g}):(n.push({error:g}),o)),h=g=>{if(i)return o;if(t?.objectMode!==!0&&g?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return f({done:!1,value:g})},l=g=>i?o:(i=!0,g!=null?u(g):f({done:!0})),p=()=>(n=new Fr,l(),{done:!0}),m=g=>(l(g),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:c,return:p,throw:m,push:h,end:l,get readableLength(){return n.size},onEmpty:async g=>{let w=g?.signal;if(w?.throwIfAborted(),n.isEmpty())return;let S,x;w!=null&&(S=new Promise((I,_)=>{x=()=>{_(new tc)},w.addEventListener("abort",x)}));try{await Promise.race([a.promise,S])}finally{x!=null&&w!=null&&w?.removeEventListener("abort",x)}}},e==null)return o;let b=o;return o={[Symbol.asyncIterator](){return this},next(){return b.next()},throw(g){return b.throw(g),e!=null&&(e(g),e=void 0),{done:!0}},return(){return b.return(),e!=null&&(e(),e=void 0),{done:!0}},push:h,end(g){return b.end(g),e!=null&&(e(g),e=void 0),o},get readableLength(){return b.readableLength},onEmpty:g=>b.onEmpty(g)},o}var ec=class r extends Error{name="TimeoutError";constructor(t,e){super(t,e),Error.captureStackTrace?.(this,r)}},Vh=r=>r.reason??new DOMException("This operation was aborted.","AbortError");function rc(r,t){let{milliseconds:e,fallback:n,message:o,customTimers:s={setTimeout,clearTimeout},signal:i}=t,a,c,u=new Promise((h,l)=>{if(typeof e!="number"||Math.sign(e)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${e}\``);if(i?.aborted){l(Vh(i));return}if(i&&(c=()=>{l(Vh(i))},i.addEventListener("abort",c,{once:!0})),r.then(h,l),e===Number.POSITIVE_INFINITY)return;let p=new ec;a=s.setTimeout.call(void 0,()=>{if(n){try{h(n())}catch(m){l(m)}return}typeof r.cancel=="function"&&r.cancel(),o===!1?h():o instanceof Error?l(o):(p.message=o??`Promise timed out after ${e} milliseconds`,l(p))},e)}).finally(()=>{u.clear(),c&&i&&i.removeEventListener("abort",c)});return u.clear=()=>{s.clearTimeout.call(void 0,a),a=void 0},u}var V0=r=>{let t=r.addEventListener||r.on||r.addListener,e=r.removeEventListener||r.off||r.removeListener;if(!t||!e)throw new TypeError("Emitter is not compatible");return{addListener:t.bind(r),removeListener:e.bind(r)}};function q0(r,t,e){let n,o=new Promise((s,i)=>{if(e={rejectionEvents:["error"],multiArgs:!1,rejectionMultiArgs:!1,resolveImmediately:!1,...e},!(e.count>=0&&(e.count===Number.POSITIVE_INFINITY||Number.isInteger(e.count))))throw new TypeError("The `count` option should be at least 0 or more");e.signal?.throwIfAborted();let a=[t].flat(),c=[],{addListener:f,removeListener:u}=V0(r),h=async(...p)=>{let m=e.multiArgs?p:p[0];if(e.filter)try{if(!await e.filter(m))return}catch(b){n(),i(b);return}c.push(m),e.count===c.length&&(n(),s(c))},l=(...p)=>{n(),i(e.rejectionMultiArgs?p:p[0])};n=()=>{for(let p of a)u(p,h);for(let p of e.rejectionEvents)a.includes(p)||u(p,l)};for(let p of a)f(p,h);for(let p of e.rejectionEvents)a.includes(p)||f(p,l);e.signal&&e.signal.addEventListener("abort",()=>{l(e.signal.reason)},{once:!0}),e.resolveImmediately&&s(c)});if(o.cancel=n,typeof e.timeout=="number"){let s=rc(o,{milliseconds:e.timeout});return s.cancel=()=>{n(),s.clear()},s}return o}function Fe(r,t,e){typeof e=="function"&&(e={filter:e}),e={...e,count:1,resolveImmediately:!1};let n=q0(r,t,e),o=n.then(s=>s[0]);return o.cancel=n.cancel,o}var cr=class extends Error{static name="UnexpectedEOFError";name="UnexpectedEOFError"},ys=class extends Error{static name="MaxEarlyStreamsError";name="MaxEarlyStreamsError"},gs=class extends Error{static name="StreamClosedError";name="StreamClosedError"};function $0(r){return r.reason}function $t(r,t,e){if(t==null||r==null)return r;let n=e?.translateError??$0;if(t.aborted)return r.catch(()=>{}),Promise.reject(n(t));let o;return Promise.race([r,new Promise((s,i)=>{o=()=>{i(n(t))},t.addEventListener("abort",o)})]).finally(()=>{o!=null&&t.removeEventListener("abort",o)})}var j0=Math.pow(2,20)*4,ce=class extends wr{status;timeline;inactivityTimeout;maxReadBufferLength;maxWriteBufferLength;log;direction;maxMessageSize;readStatus;writeStatus;remoteReadStatus;remoteWriteStatus;writableNeedsDrain;readBuffer;writeBuffer;sendingData;#t=!1;onDrainPromise;constructor(t){super(),this.status="open",this.log=t.log,this.direction=t.direction??"outbound",this.inactivityTimeout=t.inactivityTimeout??12e4,this.maxReadBufferLength=t.maxReadBufferLength??j0,this.maxWriteBufferLength=t.maxWriteBufferLength,this.maxMessageSize=t.maxMessageSize,this.readBuffer=new ft,this.writeBuffer=new ft,this.readStatus="readable",this.remoteReadStatus="readable",this.writeStatus="writable",this.remoteWriteStatus="writable",this.sendingData=!1,this.writableNeedsDrain=!1,this.timeline={open:Date.now()},this.processSendQueue=this.processSendQueue.bind(this);let e=()=>{this.writableNeedsDrain&&(this.log.trace("drain event received, continue sending data"),this.writableNeedsDrain=!1,queueMicrotask(()=>{try{this.processSendQueue()}catch(o){this.log.error("processSendQueue threw - %e",o)}})),this.onDrainPromise?.resolve()};this.addEventListener("drain",e);let n=o=>{this.onDrainPromise?.reject(o.error??new gs)};this.addEventListener("close",n)}get readBufferLength(){return this.readBuffer.byteLength}get readableEnded(){return this.#t}get writeBufferLength(){return this.writeBuffer.byteLength}async onDrain(t){return this.writableNeedsDrain!==!0?Promise.resolve():(this.onDrainPromise==null&&(this.onDrainPromise=Promise.withResolvers()),$t(this.onDrainPromise.promise,t?.signal))}async*[Symbol.asyncIterator](){if(this.readStatus!=="readable"&&this.readStatus!=="paused")return;let t=ms(),e=s=>{t.push(s.data)};this.addEventListener("message",e);let n=s=>{t.end(s.error)};this.addEventListener("close",n);let o=()=>{t.end()};this.addEventListener("remoteCloseWrite",o);try{yield*t}finally{this.removeEventListener("message",e),this.removeEventListener("close",n),this.removeEventListener("remoteCloseWrite",o)}}isReadable(){return this.status==="open"}send(t){if(this.writeStatus==="closed"||this.writeStatus==="closing")throw new Be(`Cannot write to a stream that is ${this.writeStatus}`);return this.log.trace("append %d bytes to write buffer",t.byteLength),this.writeBuffer.append(t),this.processSendQueue()}abort(t){if(!(this.status==="aborted"||this.status==="reset"||this.status==="closed")){this.log.error("abort with error - %e",t),this.status="aborted",this.readBuffer.byteLength>0&&this.readBuffer.consume(this.readBuffer.byteLength),this.writeBuffer.byteLength>0&&(this.writeBuffer.consume(this.writeBuffer.byteLength),this.safeDispatchEvent("idle")),this.writeStatus="closed",this.remoteWriteStatus="closed",this.readStatus="closed",this.remoteReadStatus="closed",this.timeline.close=Date.now(),this.maybeDispatchEnd();try{this.sendReset(t)}catch(e){this.log.error("failed to send reset to remote - %e",e)}this.dispatchEvent(new ao(t))}}pause(){if(this.readStatus==="closed"||this.readStatus==="closing")throw new Be("Cannot pause a stream that is closing/closed");this.readStatus!=="paused"&&(this.readStatus="paused",this.sendPause())}resume(){if(this.readStatus==="closed"||this.readStatus==="closing")throw new Be("Cannot resume a stream that is closing/closed");this.readStatus!=="readable"&&(this.readStatus="readable",this.dispatchReadBuffer(),this.sendResume())}push(t){if(this.readStatus==="closed"||this.readStatus==="closing")throw new Be(`Cannot push data onto a stream that is ${this.readStatus}`);if(t.byteLength!==0){if(this.readBuffer.append(t),this.readStatus==="paused"||this.listenerCount("message")===0){this.checkReadBufferLength();return}setTimeout(()=>{this.dispatchReadBuffer()},0)}}unshift(t){if(this.readStatus==="closed"||this.readStatus==="closing")throw new Be(`Cannot push data onto a stream that is ${this.readStatus}`);if(t.byteLength!==0){if(this.readBuffer.prepend(t),this.readStatus==="paused"||this.listenerCount("message")===0){this.checkReadBufferLength();return}setTimeout(()=>{this.dispatchReadBuffer()},0)}}onData(t){if(t.byteLength!==0){if(this.readStatus==="closing"||this.readStatus==="closed"){this.log("ignoring data - read status %s",this.readStatus);return}this.readBuffer.append(t),this.dispatchReadBuffer()}}addEventListener(...t){super.addEventListener.apply(this,t),t[0]==="message"&&this.readBuffer.byteLength>0&&queueMicrotask(()=>{this.dispatchReadBuffer()})}onRemoteReset(){this.log("remote reset"),this.status="reset",this.writeStatus="closed",this.remoteWriteStatus="closed",this.remoteReadStatus="closed",this.timeline.close=Date.now(),this.readBuffer.byteLength===0&&(this.readStatus="closed",this.maybeDispatchEnd()),this.dispatchEvent(new co(new ro))}onTransportClosed(t){this.log("transport closed"),this.readStatus==="readable"&&this.readBuffer.byteLength===0&&(this.log("close readable end after transport closed and read buffer is empty"),this.readStatus="closed"),this.remoteReadStatus!=="closed"&&(this.remoteReadStatus="closed"),this.remoteWriteStatus!=="closed"&&(this.remoteWriteStatus="closed"),this.writeStatus!=="closed"&&(this.writeStatus="closed"),t!=null?this.abort(t):(this.status==="open"||this.status==="closing")&&(this.timeline.close=Date.now(),this.status="closed",this.maybeDispatchEnd(),this.dispatchEvent(new br))}onRemoteCloseWrite(){this.remoteWriteStatus!=="closed"&&(this.log.trace("on remote close write"),this.remoteWriteStatus="closed",this.safeDispatchEvent("remoteCloseWrite"),this.maybeDispatchEnd(),this.writeStatus==="closed"&&this.onTransportClosed())}onRemoteCloseRead(){this.log.trace("on remote close read"),this.remoteReadStatus="closed",this.writeBuffer.byteLength>0&&(this.writeBuffer.consume(this.writeBuffer.byteLength),this.safeDispatchEvent("idle"))}processSendQueue(){if(this.writableNeedsDrain)return this.log.trace("not processing send queue as drain is required"),this.checkWriteBufferLength(),!1;if(this.writeBuffer.byteLength===0)return this.log.trace("not processing send queue as no bytes to send"),!0;if(this.sendingData)return this.log.trace("not processing send queue as already sending data"),!0;if(this.writeStatus!=="writable"&&this.writeStatus!=="closing")return this.log.trace("not processing send queue as stream is %s",this.writeStatus),!1;this.sendingData=!0,this.log.trace("processing send queue with %d queued bytes",this.writeBuffer.byteLength);try{let t=!0,e=this.writeBuffer.byteLength,n=0;for(;this.writeBuffer.byteLength>0;){let o=Math.min(this.maxMessageSize??this.writeBuffer.byteLength,this.writeBuffer.byteLength);if(o===0){t=!1;break}let s=this.writeBuffer.sublist(0,o),i=new ft(s);this.writeBuffer.consume(s.byteLength);let a;try{a=this.sendData(s)}catch(c){throw this.writeBuffer.prepend(i),this.abort(c),c}if(t=a.canSendMore,n+=a.sentBytes,a.sentBytes!==i.byteLength&&(i.consume(a.sentBytes),this.writeBuffer.prepend(i)),!t)break}return t||(this.log.trace("sent %d/%d bytes, pausing sending because underlying stream is full, %d bytes left in the write buffer",n,e,this.writeBuffer.byteLength),this.writableNeedsDrain=!0,this.checkWriteBufferLength()),this.writeBuffer.byteLength===0&&this.safeDispatchEvent("idle"),t}finally{this.sendingData=!1}}maybeDispatchEnd(){this.#t||this.readBuffer.byteLength>0||this.remoteWriteStatus!=="closed"&&this.readStatus!=="closed"||(this.#t=!0,this.safeDispatchEvent("end"))}dispatchReadBuffer(){try{if(this.listenerCount("message")===0){this.log.trace("not dispatching pause buffer as there are no listeners for the message event");return}if(this.readBuffer.byteLength===0){this.log.trace("not dispatching pause buffer as there is no data to dispatch");return}if(this.readStatus==="paused"){this.log.trace("not dispatching pause buffer we are paused");return}if(this.readStatus==="closing"||this.readStatus==="closed"){this.log("dropping %d bytes because the readable end is %s",this.readBuffer.byteLength,this.readStatus),this.readBuffer.consume(this.readBuffer.byteLength);return}let t=this.readBuffer.sublist();this.readBuffer.consume(t.byteLength),this.dispatchEvent(new io(t))}finally{this.readBuffer.byteLength===0&&this.remoteWriteStatus==="closed"&&(this.log("close readable end after dispatching read buffer and remote writable end is closed"),this.readStatus="closed",this.maybeDispatchEnd()),this.checkReadBufferLength()}}checkReadBufferLength(){this.readBuffer.byteLength>this.maxReadBufferLength&&this.abort(new en(`Read buffer length of ${this.readBuffer.byteLength} exceeded limit of ${this.maxReadBufferLength}, read status is ${this.readStatus}`))}checkWriteBufferLength(){this.maxWriteBufferLength!=null&&this.writeBuffer.byteLength>this.maxWriteBufferLength&&this.abort(new en(`Write buffer length of ${this.writeBuffer.byteLength} exceeded limit of ${this.maxWriteBufferLength}, write status is ${this.writeStatus}`))}onMuxerNeedsDrain(){this.writableNeedsDrain=!0}onMuxerDrain(){this.safeDispatchEvent("drain")}};var bs=class extends ce{remoteAddr;metricPrefix;metrics;constructor(t){super(t),this.metricPrefix=t.metricPrefix??"",this.metrics=t.metrics,this.remoteAddr=t.remoteAddr,this.addEventListener("close",e=>{this.metrics?.increment({[`${this.metricPrefix}end`]:!0}),e.error!=null?e.local?this.metrics?.increment({[`${this.metricPrefix}abort`]:!0}):this.metrics?.increment({[`${this.metricPrefix}reset`]:!0}):e.local?this.metrics?.increment({[`${this.metricPrefix}_local_close`]:!0}):this.metrics?.increment({[`${this.metricPrefix}_remote_close`]:!0})})}async close(t){this.status==="open"&&(this.status="closing",this.writeStatus="closing",this.remoteWriteStatus="closing",this.remoteReadStatus="closing",(this.sendingData||this.writeBuffer.byteLength>0)&&(this.log("waiting for write queue to become idle before closing writable end of stream, %d unsent bytes",this.writeBuffer.byteLength),await Fe(this,"idle",{...t,rejectionEvents:["close"]})),this.writableNeedsDrain&&(this.log("waiting for write queue to drain before closing writable end of stream, %d unsent bytes",this.writeBuffer.byteLength),await Fe(this,"drain",{...t,rejectionEvents:["close"]})),await this.sendClose(t),this.onTransportClosed())}};function qh(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}var ws=class extends wr{streams;protocol;status;log;maConn;streamOptions;earlyStreams;maxEarlyStreams;metrics;constructor(t,e){super(),this.maConn=t,this.protocol=e.protocol,this.streams=[],this.earlyStreams=[],this.status="open",this.log=t.log.newScope(e.name),this.streamOptions=e.streamOptions,this.maxEarlyStreams=e.maxEarlyStreams??10,this.metrics=e.metrics;let n=i=>{try{this.onData(i.data)}catch(a){this.abort(a),this.maConn.abort(a)}};this.maConn.addEventListener("message",n);let o=()=>{this.log("underlying stream drained, signal %d streams to continue writing",this.streams.length),this.streams.forEach(i=>{i.onMuxerDrain()})};this.maConn.addEventListener("drain",o);let s=()=>{this.log("underlying stream closed with status %s and %d streams",this.status,this.streams.length),this.onTransportClosed()};this.maConn.addEventListener("close",s)}send(t){let e=this.maConn.send(t);return e===!1&&(this.log("underlying stream saturated, signal %d streams to pause writing",this.streams.length),this.streams.forEach(n=>{n.onMuxerNeedsDrain()})),e}async close(t){this.status==="closed"||this.status==="closing"||(this.status="closing",await $t(Promise.all([...this.streams].map(async e=>{await e.close(t)})),t?.signal),this.status="closed")}abort(t){this.status!=="closed"&&(this.status="closing",[...this.streams].forEach(e=>{e.abort(t)}),this.status="closed")}onTransportClosed(t){this.status="closing";try{[...this.streams].forEach(e=>{e.onTransportClosed(t)})}catch(e){this.abort(e)}this.status="closed"}async createStream(t){if(this.status!=="open")throw new eo;let e=this.onCreateStream({...this.streamOptions,...t});return qh(e)&&(e=await e),this.streams.push(e),this.cleanUpStream(e),e}onRemoteStream(t){if(this.streams.push(t),this.cleanUpStream(t),this.listenerCount("stream")===0){this.earlyStreams.push(t),this.earlyStreams.length>this.maxEarlyStreams&&this.abort(new ys(`Too many early streams were opened - ${this.earlyStreams.length}/${this.maxEarlyStreams}`));return}this.safeDispatchEvent("stream",{detail:t})}cleanUpStream(t){let e=n=>{let o=this.streams.findIndex(s=>s===t);o!==-1&&this.streams.splice(o,1),n.error!=null?n.local?this.metrics?.increment({[`${t.direction}_stream_reset`]:!0}):this.metrics?.increment({[`${t.direction}_stream_abort`]:!0}):this.metrics?.increment({[`${t.direction}_stream_end`]:!0})};t.addEventListener("close",e),this.metrics?.increment({[`${t.direction}_stream`]:!0})}addEventListener(...t){super.addEventListener.apply(this,t),t[0]==="stream"&&this.earlyStreams.length>0&&queueMicrotask(()=>{this.earlyStreams.forEach(e=>{this.safeDispatchEvent("stream",{detail:e})}),this.earlyStreams=[]})}};var xs=class extends ce{id;protocol;constructor(t){super(t),this.id=t.id,this.protocol=t.protocol??""}async close(t){this.writeStatus==="closing"||this.writeStatus==="closed"||(this.writeStatus="closing",(this.sendingData||this.writeBuffer.byteLength>0)&&(this.log("waiting for write queue to become idle before closing writable end of stream, %d unsent bytes",this.writeBuffer.byteLength),await Fe(this,"idle",{...t,rejectionEvents:["close"]})),this.writableNeedsDrain&&(this.log("waiting for write queue to drain before closing writable end of stream, %d unsent bytes, sending %s",this.writeBuffer.byteLength,this.sendingData),await Fe(this,"drain",{...t,rejectionEvents:["close"]}),this.log("write queue drained, closing writable end of stream, %d unsent bytes, sending %s",this.writeBuffer.byteLength,this.sendingData)),await this.sendCloseWrite(t),this.writeStatus="closed",this.log("closed writable end gracefully"),this.remoteWriteStatus==="closed"&&this.onTransportClosed())}async closeRead(t){this.readStatus==="closing"||this.readStatus==="closed"||(this.readBuffer.byteLength>0&&this.readBuffer.consume(this.readBuffer.byteLength),this.readStatus="closing",await this.sendCloseRead(t),this.readStatus="closed",this.maybeDispatchEnd(),this.log("closed readable end gracefully"))}};var W0=4194304,Es=class extends Error{static name="UnwrappedError";name="UnwrappedError"},Nn=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},oc=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},sc=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function G0(r){return typeof r?.closeRead=="function"}function Y0(r){return typeof r?.close=="function"}function nc(r){return G0(r)?r.remoteWriteStatus!=="writable"&&r.readBufferLength===0:Y0(r)?r.status!=="open":!1}function Z0(r){return r?.addEventListener!=null&&r?.removeEventListener!=null&&r?.send!=null&&r?.push!=null&&r?.log!=null}function X0(r,t){let e=t?.maxBufferSize??W0,n=new ft,o,s=!1;if(!Z0(r))throw new tt("Argument should be a Stream or a Multiaddr");let i=u=>{if(n.append(u.data),n.byteLength>e){let h=n.byteLength;n.consume(n.byteLength),o?.reject(new Error(`Read buffer overflow - ${h} > ${e}`))}o?.resolve()};r.addEventListener("message",i);let a=u=>{u.error!=null?o?.reject(u.error):o?.resolve()};r.addEventListener("close",a);let c=()=>{o?.resolve()};r.addEventListener("remoteCloseWrite",c);let f={readBuffer:n,async read(u){if(s===!0)throw new Es("Stream was unwrapped");if(nc(r)){if(n.byteLength===0&&u?.bytes==null)return null;if(u?.bytes!=null&&n.byteLength<u.bytes)throw r.log.error("closed after reading %d/%d bytes",n.byteLength,u.bytes),new cr(`Unexpected EOF - stream closed after reading ${n.byteLength}/${u.bytes} bytes`)}let h=u?.bytes??1;for(o=Promise.withResolvers();;){if(n.byteLength>=h){o.resolve();break}if(await $t(o.promise,u?.signal),nc(r)){if(n.byteLength===0&&u?.bytes==null)return null;break}o=Promise.withResolvers()}let l=u?.bytes??n.byteLength;if(n.byteLength<l){if(nc(r))throw r.log.error("closed while reading %d/%d bytes",n.byteLength,l),new cr(`Unexpected EOF - stream closed while reading ${n.byteLength}/${l} bytes`);return f.read(u)}let p=n.sublist(0,l);return n.consume(l),p},async write(u,h){if(s===!0)throw new Es("Stream was unwrapped");r.send(u)||await Fe(r,"drain",{signal:h?.signal,rejectionEvents:["close"]})},unwrap(){return s||(s=!0,r.removeEventListener("message",i),r.removeEventListener("close",a),r.removeEventListener("remoteCloseWrite",c),n.byteLength>0&&(r.log("stream unwrapped with %d unread bytes",n.byteLength),r.unshift(n))),r}};return f}function ic(r,t={}){let e=X0(r,t);t.maxDataLength!=null&&t.maxLengthLength==null&&(t.maxLengthLength=It(t.maxDataLength));let n=t?.lengthDecoder??rr,o=t?.lengthEncoder??Hu;return{async read(i){let a=-1,c=new ft;for(;;){let u=await e.read({...i,bytes:1});if(u==null)break;c.append(u);try{a=n(c)}catch(h){if(h instanceof RangeError)continue;throw h}if(a<0)throw new Nn("Invalid message length");if(t?.maxLengthLength!=null&&c.byteLength>t.maxLengthLength)throw new sc(`Message length length too long - ${c.byteLength} > ${t.maxLengthLength}`);if(a>-1)break}if(t?.maxDataLength!=null&&a>t.maxDataLength)throw new oc(`Message length too long - ${a} > ${t.maxDataLength}`);let f=await e.read({...i,bytes:a});if(f==null)throw r.log.error("tried to read %d bytes but the stream closed",a),new cr(`Unexpected EOF - tried to read ${a} bytes but the stream closed`);if(f.byteLength!==a)throw r.log.error("read %d/%d bytes before the stream closed",f.byteLength,a),new cr(`Unexpected EOF - read ${f.byteLength}/${a} bytes before the stream closed`);return f},async write(i,a){await e.write(new ft(o(i.byteLength),i),a)},async writeV(i,a){let c=new ft(...i.flatMap(f=>[o(f.byteLength),f]));await e.write(c,a)},unwrap(){return e.unwrap()}}}var Q0=1024*1024*4,J0=1024*1024*4,Ss=class{buffer;maxBufferSize;lengthDecoder;maxDataLength;encodingLength;constructor(t={}){this.buffer=new ft,this.maxBufferSize=t.maxBufferSize??Q0,this.maxDataLength=t.maxDataLength??J0,this.lengthDecoder=t.lengthDecoder??rr,this.encodingLength=t.encodingLength??It}*decode(t){if(this.buffer.append(t),this.buffer.byteLength>this.maxBufferSize)throw new tt(`Buffer length limit exceeded - ${this.buffer.byteLength}/${this.maxBufferSize}`);for(;;){let e;try{e=this.lengthDecoder(this.buffer)}catch(s){if(s instanceof RangeError)break;throw s}if(e<0||e>this.maxDataLength)throw new Nn("Invalid message length");let n=this.encodingLength(e),o=n+e;if(this.buffer.byteLength>=o){let s=this.buffer.sublist(n,o);this.buffer.consume(o),s.byteLength>0&&(yield s)}else break}}};function wt(r=0){return new Uint8Array(r)}function _t(r=0){return new Uint8Array(r)}var Hr=!!globalThis.process?.env?.DUMP_SESSION_KEYS,ac=16;function cc(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in r&&r.BYTES_PER_ELEMENT===1}var As=r=>r?`"${r}" `:"";function vs(r,t=""){if(typeof r!="boolean")throw new TypeError(As(t)+"expected boolean, got type="+typeof r);return r}function fr(r,t=""){if(typeof r!="number")throw new TypeError(As(t)+"expected number, got "+typeof r);if(!Number.isSafeInteger(r)||r<0)throw new RangeError(As(t)+"expected integer >= 0, got "+r);return r}function pt(r,t,e=""){if(cc(r)&&(t===void 0||r.length===t))return r;t!==void 0&&fr(t,"length");let n=cc(r),o=t!==void 0?` of length ${t}`:"",s=n?`length=${r.length}`:`type=${typeof r}`,i=As(e)+"expected Uint8Array"+o+", got "+s;throw n?new RangeError(i):new TypeError(i)}var $h=(r,t)=>{if(r===null||typeof r!="object"||Array.isArray(r))throw new TypeError(t==="object"?"expected valid options object":`"${t}" expected object, got type=${typeof r}`)};function fc(r,t=!0){if(r.destroyed)throw new Error("hash was destroyed");if(t&&r.finished)throw new Error("digest() was already called")}function jh(r,t){pt(r,void 0,"output");let e=t.outputLen;if(!(r.length>=e))throw new RangeError('"output" expected length >= '+e)}function fe(r){return new Uint32Array(r.buffer,r.byteOffset,Math.floor(r.byteLength/4))}function Xt(...r){for(let t=0;t<r.length;t++)r[t].fill(0)}function ty(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}var He=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function ey(r){return r<<24&4278190080|r<<8&16711680|r>>>8&65280|r>>>24&255}function ry(r){for(let t=0;t<r.length;t++)r[t]=ey(r[t]);return r}var Se=He?r=>r:ry;function Wh(r,t){return $h(r,"defaults"),$h(t,"opts"),Object.assign(r,t)}function Gh(r,t){if(r=pt(r),t=pt(t),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 Yh(r,t,e){let n=t,o=e||(()=>[]),s=(a,c)=>n(c,...o(a)).update(a).digest(),i=n(new Uint8Array(r),...o(new Uint8Array(0)));return s.outputLen=i.outputLen,s.blockLen=i.blockLen,s.create=(a,...c)=>n(a,...c),s}var Zh=(r,t)=>{function e(n,...o){if(pt(n,void 0,"key"),r.nonceLength!==void 0){let h=o[0];pt(h,r.varSizeNonce?void 0:r.nonceLength,"nonce")}let s=r.tagLength,i=r.nonceLength!==void 0?1:0;if(!r.withAAD){for(let h=i;h<o.length;h++)if(cc(o[h]))throw new Error("AAD not supported")}r.withAAD&&o[i]!==void 0&&pt(o[i],void 0,"AAD");let a=t(n,...o),c=(h,l)=>{if(l!==void 0){if(h!==2)throw new Error("cipher output not supported");pt(l,void 0,"output")}},f=!1;return{encrypt(h,l){if(f)throw new Error("cannot encrypt() twice with same key + nonce");return f=!0,pt(h,void 0,"data"),c(a.encrypt.length,l),a.encrypt(h,l)},decrypt(h,l){if(pt(h,void 0,"data"),s&&h.length<s)throw new Error('"ciphertext" expected length >= tagLength='+s);return c(a.decrypt.length,l),a.decrypt(h,l)}}}return Object.assign(e,r),e};function kn(r,t,e=!0){if(t===void 0)return new Uint8Array(r);if(pt(t,r,"output"),e&&!Mn(t))throw new Error("invalid output, must be aligned");return t}function Xh(r,t,e){fr(r),fr(t),vs(e);let n=new Uint8Array(16),o=ty(n);return o.setBigUint64(0,BigInt(t),e),o.setBigUint64(8,BigInt(r),e),n}function Mn(r){return r.byteOffset%4===0}function zr(r){return Uint8Array.from(pt(r))}var Jh=r=>Uint8Array.from(r.split(""),t=>t.charCodeAt(0)),ny=Se(fe(Jh("expand 16-byte k"))),oy=Se(fe(Jh("expand 32-byte k")));function W(r,t){return r<<t|r>>>32-t}var Kn=64,sy=16,uc=2**32-1,Qh=Uint32Array.of();function iy(r,t,e,n,o,s,i,a){let c=o.length,f=new Uint8Array(Kn),u=fe(f),h=He&&Mn(o)&&Mn(s),l=h?fe(o):Qh,p=h?fe(s):Qh;if(!He){for(let m=0;m<c;i++){if(r(t,e,n,u,i,a),Se(u),i>=uc)throw new Error("arx: counter overflow");let b=Math.min(Kn,c-m);for(let g=0,w;g<b;g++)w=m+g,s[w]=o[w]^f[g];m+=b}return}for(let m=0;m<c;i++){if(r(t,e,n,u,i,a),i>=uc)throw new Error("arx: counter overflow");let b=Math.min(Kn,c-m);if(h&&b===Kn){let g=m/4;if(m%4!==0)throw new Error("arx: invalid block position");for(let w=0,S;w<sy;w++)S=g+w,p[S]=l[S]^u[w];m+=Kn;continue}for(let g=0,w;g<b;g++)w=m+g,s[w]=o[w]^f[g];m+=b}}function tl(r,t){let{allowShortKeys:e,extendNonceFn:n,counterLength:o,counterRight:s,rounds:i}=Wh({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},t);if(typeof r!="function")throw new Error("core must be a function");return fr(o),fr(i),vs(s),vs(e),(a,c,f,u,h=0)=>{pt(a,void 0,"key"),pt(c,void 0,"nonce"),pt(f,void 0,"data");let l=f.length;if(u=kn(l,u,!1),fr(h),h<0||h>=uc)throw new Error("arx: counter overflow");let p=[],m=a.length,b,g;if(m===32)p.push(b=zr(a)),g=oy;else if(m===16&&e)b=new Uint8Array(32),b.set(a),b.set(a,16),g=ny,p.push(b);else throw pt(a,32,"arx key"),new Error("invalid key size");(!He||!Mn(c))&&p.push(c=zr(c));let w=fe(b);if(n){if(c.length!==24)throw new Error("arx: extended nonce must be 24 bytes");let I=c.subarray(0,16);if(He)n(g,w,fe(I),w);else{let _=Se(Uint32Array.from(g));n(_,w,fe(I),w),Xt(_),Se(w)}c=c.subarray(16)}else He||Se(w);let S=16-o;if(S!==c.length)throw new Error(`arx: nonce must be ${S} or 16 bytes`);if(S!==12){let I=new Uint8Array(12);I.set(c,s?0:12-c.length),c=I,p.push(c)}let x=Se(fe(c));try{return iy(r,g,w,x,f,u,h,i),u}finally{Xt(...p)}}}function At(r,t){return r[t++]&255|(r[t++]&255)<<8}var hc=class{blockLen=16;outputLen=16;buffer=new Uint8Array(16);r=new Uint16Array(10);h=new Uint16Array(10);pad=new Uint16Array(8);pos=0;finished=!1;destroyed=!1;constructor(t){t=zr(pt(t,32,"key"));let e=At(t,0),n=At(t,2),o=At(t,4),s=At(t,6),i=At(t,8),a=At(t,10),c=At(t,12),f=At(t,14);this.r[0]=e&8191,this.r[1]=(e>>>13|n<<3)&8191,this.r[2]=(n>>>10|o<<6)&7939,this.r[3]=(o>>>7|s<<9)&8191,this.r[4]=(s>>>4|i<<12)&255,this.r[5]=i>>>1&8190,this.r[6]=(i>>>14|a<<2)&8191,this.r[7]=(a>>>11|c<<5)&8065,this.r[8]=(c>>>8|f<<8)&8191,this.r[9]=f>>>5&127;for(let u=0;u<8;u++)this.pad[u]=At(t,16+2*u)}process(t,e,n=!1){let o=n?0:2048,{h:s,r:i}=this,a=i[0],c=i[1],f=i[2],u=i[3],h=i[4],l=i[5],p=i[6],m=i[7],b=i[8],g=i[9],w=At(t,e+0),S=At(t,e+2),x=At(t,e+4),I=At(t,e+6),_=At(t,e+8),N=At(t,e+10),k=At(t,e+12),P=At(t,e+14),R=s[0]+(w&8191),U=s[1]+((w>>>13|S<<3)&8191),M=s[2]+((S>>>10|x<<6)&8191),D=s[3]+((x>>>7|I<<9)&8191),H=s[4]+((I>>>4|_<<12)&8191),T=s[5]+(_>>>1&8191),C=s[6]+((_>>>14|N<<2)&8191),d=s[7]+((N>>>11|k<<5)&8191),E=s[8]+((k>>>8|P<<8)&8191),B=s[9]+(P>>>5|o),A=0,v=A+R*a+U*(5*g)+M*(5*b)+D*(5*m)+H*(5*p);A=v>>>13,v&=8191,v+=T*(5*l)+C*(5*h)+d*(5*u)+E*(5*f)+B*(5*c),A+=v>>>13,v&=8191;let y=A+R*c+U*a+M*(5*g)+D*(5*b)+H*(5*m);A=y>>>13,y&=8191,y+=T*(5*p)+C*(5*l)+d*(5*h)+E*(5*u)+B*(5*f),A+=y>>>13,y&=8191;let L=A+R*f+U*c+M*a+D*(5*g)+H*(5*b);A=L>>>13,L&=8191,L+=T*(5*m)+C*(5*p)+d*(5*l)+E*(5*h)+B*(5*u),A+=L>>>13,L&=8191;let O=A+R*u+U*f+M*c+D*a+H*(5*g);A=O>>>13,O&=8191,O+=T*(5*b)+C*(5*m)+d*(5*p)+E*(5*l)+B*(5*h),A+=O>>>13,O&=8191;let F=A+R*h+U*u+M*f+D*c+H*a;A=F>>>13,F&=8191,F+=T*(5*g)+C*(5*b)+d*(5*m)+E*(5*p)+B*(5*l),A+=F>>>13,F&=8191;let K=A+R*l+U*h+M*u+D*f+H*c;A=K>>>13,K&=8191,K+=T*a+C*(5*g)+d*(5*b)+E*(5*m)+B*(5*p),A+=K>>>13,K&=8191;let q=A+R*p+U*l+M*h+D*u+H*f;A=q>>>13,q&=8191,q+=T*c+C*a+d*(5*g)+E*(5*b)+B*(5*m),A+=q>>>13,q&=8191;let V=A+R*m+U*p+M*l+D*h+H*u;A=V>>>13,V&=8191,V+=T*f+C*c+d*a+E*(5*g)+B*(5*b),A+=V>>>13,V&=8191;let G=A+R*b+U*m+M*p+D*l+H*h;A=G>>>13,G&=8191,G+=T*u+C*f+d*c+E*a+B*(5*g),A+=G>>>13,G&=8191;let ot=A+R*g+U*b+M*m+D*p+H*l;A=ot>>>13,ot&=8191,ot+=T*h+C*u+d*f+E*c+B*a,A+=ot>>>13,ot&=8191,A=(A<<2)+A|0,A=A+v|0,v=A&8191,A=A>>>13,y+=A,s[0]=v,s[1]=y,s[2]=L,s[3]=O,s[4]=F,s[5]=K,s[6]=q,s[7]=V,s[8]=G,s[9]=ot}finalize(){let{h:t,pad:e}=this,n=new Uint16Array(10),o=t[1]>>>13;t[1]&=8191;for(let a=2;a<10;a++)t[a]+=o,o=t[a]>>>13,t[a]&=8191;t[0]+=o*5,o=t[0]>>>13,t[0]&=8191,t[1]+=o,o=t[1]>>>13,t[1]&=8191,t[2]+=o,n[0]=t[0]+5,o=n[0]>>>13,n[0]&=8191;for(let a=1;a<10;a++)n[a]=t[a]+o,o=n[a]>>>13,n[a]&=8191;n[9]-=8192;let s=(o^1)-1;for(let a=0;a<10;a++)n[a]&=s;s=~s;for(let a=0;a<10;a++)t[a]=t[a]&s|n[a];t[0]=(t[0]|t[1]<<13)&65535,t[1]=(t[1]>>>3|t[2]<<10)&65535,t[2]=(t[2]>>>6|t[3]<<7)&65535,t[3]=(t[3]>>>9|t[4]<<4)&65535,t[4]=(t[4]>>>12|t[5]<<1|t[6]<<14)&65535,t[5]=(t[6]>>>2|t[7]<<11)&65535,t[6]=(t[7]>>>5|t[8]<<8)&65535,t[7]=(t[8]>>>8|t[9]<<5)&65535;let i=t[0]+e[0];t[0]=i&65535;for(let a=1;a<8;a++)i=(t[a]+e[a]|0)+(i>>>16)|0,t[a]=i&65535;Xt(n)}update(t){fc(this),pt(t),t=zr(t);let{buffer:e,blockLen:n}=this,o=t.length;for(let s=0;s<o;){let i=Math.min(n-this.pos,o-s);if(i===n){for(;n<=o-s;s+=n)this.process(t,s);continue}e.set(t.subarray(s,s+i),this.pos),this.pos+=i,s+=i,this.pos===n&&(this.process(e,0,!1),this.pos=0)}return this}destroy(){this.destroyed=!0,Xt(this.h,this.r,this.buffer,this.pad)}digestInto(t){fc(this),jh(t,this),this.finished=!0;let{buffer:e,h:n}=this,{pos:o}=this;if(o){for(e[o++]=1;o<16;o++)e[o]=0;this.process(e,0,!0)}this.finalize();let s=0;for(let i=0;i<8;i++)t[s++]=n[i]>>>0,t[s++]=n[i]>>>8}digest(){let{buffer:t,outputLen:e}=this;this.digestInto(t);let n=t.slice(0,e);return this.destroy(),n}},el=Yh(32,r=>new hc(r));function ay(r,t,e,n,o,s=20){let i=r[0],a=r[1],c=r[2],f=r[3],u=t[0],h=t[1],l=t[2],p=t[3],m=t[4],b=t[5],g=t[6],w=t[7],S=o,x=e[0],I=e[1],_=e[2],N=i,k=a,P=c,R=f,U=u,M=h,D=l,H=p,T=m,C=b,d=g,E=w,B=S,A=x,v=I,y=_;for(let O=0;O<s;O+=2)N=N+U|0,B=W(B^N,16),T=T+B|0,U=W(U^T,12),N=N+U|0,B=W(B^N,8),T=T+B|0,U=W(U^T,7),k=k+M|0,A=W(A^k,16),C=C+A|0,M=W(M^C,12),k=k+M|0,A=W(A^k,8),C=C+A|0,M=W(M^C,7),P=P+D|0,v=W(v^P,16),d=d+v|0,D=W(D^d,12),P=P+D|0,v=W(v^P,8),d=d+v|0,D=W(D^d,7),R=R+H|0,y=W(y^R,16),E=E+y|0,H=W(H^E,12),R=R+H|0,y=W(y^R,8),E=E+y|0,H=W(H^E,7),N=N+M|0,y=W(y^N,16),d=d+y|0,M=W(M^d,12),N=N+M|0,y=W(y^N,8),d=d+y|0,M=W(M^d,7),k=k+D|0,B=W(B^k,16),E=E+B|0,D=W(D^E,12),k=k+D|0,B=W(B^k,8),E=E+B|0,D=W(D^E,7),P=P+H|0,A=W(A^P,16),T=T+A|0,H=W(H^T,12),P=P+H|0,A=W(A^P,8),T=T+A|0,H=W(H^T,7),R=R+U|0,v=W(v^R,16),C=C+v|0,U=W(U^C,12),R=R+U|0,v=W(v^R,8),C=C+v|0,U=W(U^C,7);let L=0;n[L++]=i+N|0,n[L++]=a+k|0,n[L++]=c+P|0,n[L++]=f+R|0,n[L++]=u+U|0,n[L++]=h+M|0,n[L++]=l+D|0,n[L++]=p+H|0,n[L++]=m+T|0,n[L++]=b+C|0,n[L++]=g+d|0,n[L++]=w+E|0,n[L++]=S+B|0,n[L++]=x+A|0,n[L++]=I+v|0,n[L++]=_+y|0}var cy=tl(ay,{counterRight:!1,counterLength:4,allowShortKeys:!1});var fy=new Uint8Array(16),rl=(r,t)=>{r.update(t);let e=t.length%16;e&&r.update(fy.subarray(e))},uy=new Uint8Array(32);function nl(r,t,e,n,o){o!==void 0&&pt(o,void 0,"AAD");let s=r(t,e,uy),i=Xh(n.length,o?o.length:0,!0),a=el.create(s);o&&rl(a,o),rl(a,n),a.update(i);let c=a.digest();return Xt(s,i),c}var hy=r=>(t,e,n)=>({encrypt(s,i){let a=s.length;i=kn(a+16,i,!1),i.set(s);let c=i.subarray(0,-16);r(t,e,c,c,1);let f=nl(r,t,e,c,n);return i.set(f,a),Xt(f),i},decrypt(s,i){i=kn(s.length-16,i,!1);let a=s.subarray(0,-16),c=s.subarray(-16),f=nl(r,t,e,a,n);if(!Gh(c,f))throw Xt(f),new Error("invalid tag");return i.set(s.subarray(0,-16)),r(t,e,i,i,1),Xt(f),i}}),lc=Zh({blockSize:64,nonceLength:12,tagLength:16,withAAD:!0},hy(cy));function ol(r,t,e){return Qe(r),e===void 0&&(e=new Uint8Array(r.outputLen)),In(r,e,t)}var Fn=Uint8Array.of(0),ly=Uint8Array.of();function sl(r,t,e,n=32,o){Qe(r),Gt(n,"length"),Rt(t,void 0,"prk");let s=r.outputLen;if(t.length<s)throw new Error('"prk" must be at least HashLen octets');if(n>255*s)throw new Error("Length must be <= 255*HashLen");let i=Math.ceil(n/s);if(e===void 0?e=ly:Rt(e,void 0,"info"),!i)return o&&Ht(t),new Uint8Array;let a=o&&i===1?t:new Uint8Array(i*s),{iHash:c,oHash:f}=In.create(r,t),u=o?t:new Uint8Array(s),h=i>1?o?.iHash||r.create():void 0;for(let p=0;p<i-1;p++){Fn[0]=p+1;let m=c._cloneInto(h);p&&m.update(u),m.update(e).update(Fn).digestInto(u),f._cloneInto(h).update(u).digestInto(u),a.set(u,s*p)}if(Fn[0]=i,i>1&&c.update(u),c.update(e).update(Fn).digestInto(u),f.update(u).digestInto(u),a.set(u,s*(i-1)),c.destroy(),f.destroy(),h?.destroy(),u!==a&&Ht(u),Ht(Fn),n===a.length)return a;let l=a.slice(0,n);return Ht(a),l}var dc={hashSHA256(r){return ne(r.subarray())},getHKDF(r,t){let e=ol(ne,t,r),o=sl(ne,e,void 0,96),s=o.subarray(0,32),i=o.subarray(32,64),a=o.subarray(64,96);return[s,i,a]},generateX25519KeyPair(){let r=xn.utils.randomSecretKey();return{publicKey:xn.getPublicKey(r),privateKey:r}},generateX25519KeyPairFromSeed(r){return{publicKey:xn.getPublicKey(r),privateKey:r}},generateX25519SharedKey(r,t){return xn.getSharedSecret(r.subarray(),t.subarray())},chaCha20Poly1305Encrypt(r,t,e,n){return lc(n,t,e).encrypt(r.subarray())},chaCha20Poly1305Decrypt(r,t,e,n,o){return lc(n,t,e).decrypt(r.subarray(),o)}};var il=dc;function al(r){return{generateKeypair:r.generateX25519KeyPair,dh:(t,e)=>r.generateX25519SharedKey(t.privateKey,e).subarray(0,32),encrypt:r.chaCha20Poly1305Encrypt,decrypt:r.chaCha20Poly1305Decrypt,hash:r.hashSHA256,hkdf:r.getHKDF}}var Vr=r=>{let t=_t(2);return t[0]=r>>8,t[1]=r,t};Vr.bytes=2;var qr=r=>{if(r.length<2)throw RangeError("Could not decode int16BE");if(r instanceof Uint8Array){let t=0;return t+=r[0]<<8,t+=r[1],t}return r.getUint16(0)};qr.bytes=2;function cl(r){return{xxHandshakeSuccesses:r.registerCounter("libp2p_noise_xxhandshake_successes_total",{help:"Total count of noise xxHandshakes successes_"}),xxHandshakeErrors:r.registerCounter("libp2p_noise_xxhandshake_error_total",{help:"Total count of noise xxHandshakes errors"}),encryptedPackets:r.registerCounter("libp2p_noise_encrypted_packets_total",{help:"Total count of noise encrypted packets successfully"}),decryptedPackets:r.registerCounter("libp2p_noise_decrypted_packets_total",{help:"Total count of noise decrypted packets"}),decryptErrors:r.registerCounter("libp2p_noise_decrypt_errors_total",{help:"Total count of noise decrypt errors"})}}var bc={};rt(bc,{base10:()=>wy});var x8=new Uint8Array(0);function fl(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 Ae(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 ul(r){return new TextEncoder().encode(r)}function hl(r){return new TextDecoder().decode(r)}function dy(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 o=0;o<r.length;o++){var s=r.charAt(o),i=s.charCodeAt(0);if(e[i]!==255)throw new TypeError(s+" is ambiguous");e[i]=o}var a=r.length,c=r.charAt(0),f=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(m){if(m instanceof Uint8Array||(ArrayBuffer.isView(m)?m=new Uint8Array(m.buffer,m.byteOffset,m.byteLength):Array.isArray(m)&&(m=Uint8Array.from(m))),!(m instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(m.length===0)return"";for(var b=0,g=0,w=0,S=m.length;w!==S&&m[w]===0;)w++,b++;for(var x=(S-w)*u+1>>>0,I=new Uint8Array(x);w!==S;){for(var _=m[w],N=0,k=x-1;(_!==0||N<g)&&k!==-1;k--,N++)_+=256*I[k]>>>0,I[k]=_%a>>>0,_=_/a>>>0;if(_!==0)throw new Error("Non-zero carry");g=N,w++}for(var P=x-g;P!==x&&I[P]===0;)P++;for(var R=c.repeat(b);P<x;++P)R+=r.charAt(I[P]);return R}function l(m){if(typeof m!="string")throw new TypeError("Expected String");if(m.length===0)return new Uint8Array;var b=0;if(m[b]!==" "){for(var g=0,w=0;m[b]===c;)g++,b++;for(var S=(m.length-b)*f+1>>>0,x=new Uint8Array(S);m[b];){var I=e[m.charCodeAt(b)];if(I===255)return;for(var _=0,N=S-1;(I!==0||_<w)&&N!==-1;N--,_++)I+=a*x[N]>>>0,x[N]=I%256>>>0,I=I/256>>>0;if(I!==0)throw new Error("Non-zero carry");w=_,b++}if(m[b]!==" "){for(var k=S-w;k!==S&&x[k]===0;)k++;for(var P=new Uint8Array(g+(S-k)),R=g;k!==S;)P[R++]=x[k++];return P}}}function p(m){var b=l(m);if(b)return b;throw new Error(`Non-${t} character`)}return{encode:h,decodeUnsafe:l,decode:p}}var py=dy,my=py,dl=my;var pc=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")}},mc=class{name;prefix;baseDecode;prefixCodePoint;constructor(t,e,n){this.name=t,this.prefix=e;let o=e.codePointAt(0);if(o===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=o,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 pl(this,t)}},yc=class{decoders;constructor(t){this.decoders=t}or(t){return pl(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 pl(r,t){return new yc({...r.decoders??{[r.prefix]:r},...t.decoders??{[t.prefix]:t}})}var gc=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(t,e,n,o){this.name=t,this.prefix=e,this.baseEncode=n,this.baseDecode=o,this.encoder=new pc(t,e,n),this.decoder=new mc(t,e,o)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function $r({name:r,prefix:t,encode:e,decode:n}){return new gc(r,t,e,n)}function ze({name:r,prefix:t,alphabet:e}){let{encode:n,decode:o}=dl(e,r);return $r({prefix:t,name:r,encode:n,decode:s=>Ae(o(s))})}function yy(r,t,e,n){let o=r.length;for(;r[o-1]==="=";)--o;let s=new Uint8Array(o*e/8|0),i=0,a=0,c=0;for(let f=0;f<o;++f){let u=t[r[f]];if(u===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<e|u,i+=e,i>=8&&(i-=8,s[c++]=255&a>>i)}if(i>=e||(255&a<<8-i)!==0)throw new SyntaxError("Unexpected end of data");return s}function gy(r,t,e){let n=t[t.length-1]==="=",o=(1<<e)-1,s="",i=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],i+=8;i>e;)i-=e,s+=t[o&a>>i];if(i!==0&&(s+=t[o&a<<e-i]),n)for(;(s.length*e&7)!==0;)s+="=";return s}function by(r){let t={};for(let e=0;e<r.length;++e)t[r[e]]=e;return t}function dt({name:r,prefix:t,bitsPerChar:e,alphabet:n}){let o=by(n);return $r({prefix:t,name:r,encode(s){return gy(s,n,e)},decode(s){return yy(s,o,e,r)}})}var wy=ze({prefix:"9",name:"base10",alphabet:"0123456789"});var wc={};rt(wc,{base16:()=>xy,base16upper:()=>Ey});var xy=dt({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Ey=dt({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var xc={};rt(xc,{base2:()=>Sy});var Sy=dt({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ec={};rt(Ec,{base256emoji:()=>Iy});var ml=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}"),Ay=ml.reduce((r,t,e)=>(r[e]=t,r),[]),vy=ml.reduce((r,t,e)=>{let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);return r[n]=e,r},[]);function By(r){return r.reduce((t,e)=>(t+=Ay[e],t),"")}function Ly(r){let t=[];for(let e of r){let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);let o=vy[n];if(o==null)throw new Error(`Non-base256emoji character: ${e}`);t.push(o)}return new Uint8Array(t)}var Iy=$r({prefix:"\u{1F680}",name:"base256emoji",encode:By,decode:Ly});var Sc={};rt(Sc,{base32:()=>jr,base32hex:()=>Dy,base32hexpad:()=>Oy,base32hexpadupper:()=>Py,base32hexupper:()=>Ry,base32pad:()=>Ty,base32padupper:()=>_y,base32upper:()=>Cy,base32z:()=>Uy});var jr=dt({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Cy=dt({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Ty=dt({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),_y=dt({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Dy=dt({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Ry=dt({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Oy=dt({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Py=dt({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Uy=dt({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Ac={};rt(Ac,{base36:()=>Hn,base36upper:()=>Ny});var Hn=ze({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Ny=ze({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var vc={};rt(vc,{base58btc:()=>ue,base58flickr:()=>ky});var ue=ze({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),ky=ze({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Bc={};rt(Bc,{base64:()=>My,base64pad:()=>Ky,base64url:()=>Fy,base64urlpad:()=>Hy});var My=dt({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Ky=dt({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Fy=dt({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Hy=dt({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Lc={};rt(Lc,{base8:()=>zy});var zy=dt({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Ic={};rt(Ic,{identity:()=>Vy});var Vy=$r({prefix:"\0",name:"identity",encode:r=>hl(r),decode:r=>ul(r)});var N8=new TextEncoder,k8=new TextDecoder;var Tc={};rt(Tc,{identity:()=>lg});var jy=bl,yl=128,Wy=127,Gy=~Wy,Yy=Math.pow(2,31);function bl(r,t,e){t=t||[],e=e||0;for(var n=e;r>=Yy;)t[e++]=r&255|yl,r/=128;for(;r&Gy;)t[e++]=r&255|yl,r>>>=7;return t[e]=r|0,bl.bytes=e-n+1,t}var Zy=Cc,Xy=128,gl=127;function Cc(r,n){var e=0,n=n||0,o=0,s=n,i,a=r.length;do{if(s>=a)throw Cc.bytes=0,new RangeError("Could not decode varint");i=r[s++],e+=o<28?(i&gl)<<o:(i&gl)*Math.pow(2,o),o+=7}while(i>=Xy);return Cc.bytes=s-n,e}var Qy=Math.pow(2,7),Jy=Math.pow(2,14),tg=Math.pow(2,21),eg=Math.pow(2,28),rg=Math.pow(2,35),ng=Math.pow(2,42),og=Math.pow(2,49),sg=Math.pow(2,56),ig=Math.pow(2,63),ag=function(r){return r<Qy?1:r<Jy?2:r<tg?3:r<eg?4:r<rg?5:r<ng?6:r<og?7:r<sg?8:r<ig?9:10},cg={encode:jy,decode:Zy,encodingLength:ag},fg=cg,zn=fg;function Vn(r,t=0){return[zn.decode(r,t),zn.decode.bytes]}function Wr(r,t,e=0){return zn.encode(r,t,e),t}function Gr(r){return zn.encodingLength(r)}function Zr(r,t){let e=t.byteLength,n=Gr(r),o=n+Gr(e),s=new Uint8Array(o+e);return Wr(r,s,0),Wr(e,s,n),s.set(t,o),new Yr(r,e,t,s)}function wl(r){let t=Ae(r),[e,n]=Vn(t),[o,s]=Vn(t.subarray(n)),i=t.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new Yr(e,o,i,t)}function xl(r,t){if(r===t)return!0;{let e=t;return r.code===e.code&&r.size===e.size&&e.bytes instanceof Uint8Array&&fl(r.bytes,e.bytes)}}var Yr=class{code;size;digest;bytes;constructor(t,e,n,o){this.code=t,this.size=e,this.digest=n,this.bytes=o}};var El=0,ug="identity",Sl=Ae;function hg(r,t){if(t?.truncate!=null&&t.truncate!==r.byteLength){if(t.truncate<0||t.truncate>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,t.truncate)}return Zr(El,Sl(r))}var lg={code:El,name:ug,encode:Sl,digest:hg};var Rc={};rt(Rc,{sha256:()=>pg,sha512:()=>mg});var dg=20;function Dc({name:r,code:t,encode:e,minDigestLength:n,maxDigestLength:o}){return new _c(r,t,e,n,o)}var _c=class{name;code;encode;minDigestLength;maxDigestLength;constructor(t,e,n,o,s){this.name=t,this.code=e,this.encode=n,this.minDigestLength=o??dg,this.maxDigestLength=s}digest(t,e){if(e?.truncate!=null){if(e.truncate<this.minDigestLength)throw new Error(`Invalid truncate option, must be greater than or equal to ${this.minDigestLength}`);if(this.maxDigestLength!=null&&e.truncate>this.maxDigestLength)throw new Error(`Invalid truncate option, must be less than or equal to ${this.maxDigestLength}`)}if(t instanceof Uint8Array){let n=this.encode(t);return n instanceof Uint8Array?Al(n,this.code,e?.truncate):n.then(o=>Al(o,this.code,e?.truncate))}else throw Error("Unknown type, must be binary type")}};function Al(r,t,e){if(e!=null&&e!==r.byteLength){if(e>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,e)}return Zr(t,r)}function Bl(r){return async t=>new Uint8Array(await crypto.subtle.digest(r,t))}var pg=Dc({name:"sha2-256",code:18,encode:Bl("SHA-256")}),mg=Dc({name:"sha2-512",code:19,encode:Bl("SHA-512")});function Ll(r,t){let{bytes:e,version:n}=r;return n===0?gg(e,Oc(r),t??ue.encoder):bg(e,Oc(r),t??jr.encoder)}var Il=new WeakMap;function Oc(r){let t=Il.get(r);if(t==null){let e=new Map;return Il.set(r,e),e}return t}var Ls=class r{code;version;multihash;bytes;"/";constructor(t,e,n,o){this.code=e,this.version=t,this.multihash=n,this.bytes=o,this["/"]=o}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!==$n)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(e.code!==wg)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=Zr(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&&xl(t.multihash,n.multihash)}toString(t){return Ll(this,t)}toJSON(){return{"/":Ll(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:o,multihash:s,bytes:i}=e;return new r(n,o,s,i??Cl(n,o,s.bytes))}else if(e[xg]===!0){let{version:n,multihash:o,code:s}=e,i=wl(o);return r.create(n,s,i)}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!==$n)throw new Error(`Version 0 CID must use dag-pb (code: ${$n}) block encoding`);return new r(t,e,n,n.bytes)}case 1:{let o=Cl(t,e,n.bytes);return new r(t,e,n,o)}default:throw new Error("Invalid version")}}static createV0(t){return r.create(0,$n,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,o=Ae(t.subarray(n,n+e.multihashSize));if(o.byteLength!==e.multihashSize)throw new Error("Incorrect length");let s=o.subarray(e.multihashSize-e.digestSize),i=new Yr(e.multihashCode,e.digestSize,s,o);return[e.version===0?r.createV0(i):r.createV1(e.codec,i),t.subarray(e.size)]}static inspectBytes(t){let e=0,n=()=>{let[h,l]=Vn(t.subarray(e));return e+=l,h},o=n(),s=$n;if(o===18?(o=0,e=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=e,a=n(),c=n(),f=e+c,u=f-i;return{version:o,codec:s,multihashCode:a,digestSize:c,multihashSize:u,size:f}}static parse(t,e){let[n,o]=yg(t,e),s=r.decode(o);if(s.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Oc(s).set(n,t),s}};function yg(r,t){switch(r[0]){case"Q":{let e=t??ue;return[ue.prefix,e.decode(`${ue.prefix}${r}`)]}case ue.prefix:{let e=t??ue;return[ue.prefix,e.decode(r)]}case jr.prefix:{let e=t??jr;return[jr.prefix,e.decode(r)]}case Hn.prefix:{let e=t??Hn;return[Hn.prefix,e.decode(r)]}default:{if(t==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[r[0],t.decode(r)]}}}function gg(r,t,e){let{prefix:n}=e;if(n!==ue.prefix)throw Error(`Cannot string encode V0 in ${e.name} encoding`);let o=t.get(n);if(o==null){let s=e.encode(r).slice(1);return t.set(n,s),s}else return o}function bg(r,t,e){let{prefix:n}=e,o=t.get(n);if(o==null){let s=e.encode(r);return t.set(n,s),s}else return o}var $n=112,wg=18;function Cl(r,t,e){let n=Gr(r),o=n+Gr(t),s=new Uint8Array(o+e.byteLength);return Wr(r,s,0),Wr(t,s,n),s.set(e,o),s}var xg=Symbol.for("@ipld/js-cid/CID");var Pc={...Ic,...xc,...Lc,...bc,...wc,...Sc,...Ac,...vc,...Bc,...Ec},s4={...Rc,...Tc};function _l(r,t,e,n){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:n}}}var Tl=_l("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),Uc=_l("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=_t(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);return t}),Eg={utf8:Tl,"utf-8":Tl,hex:Pc.base16,latin1:Uc,ascii:Uc,binary:Uc,...Pc},Is=Eg;function he(r,t="utf8"){let e=Is[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.encoder.encode(r).substring(1)}function Nc(r,t){!t.enabled||!Hr||(r?(t(`LOCAL_STATIC_PUBLIC_KEY ${he(r.publicKey,"hex")}`),t(`LOCAL_STATIC_PRIVATE_KEY ${he(r.privateKey,"hex")}`)):t("Missing local static keys."))}function kc(r,t){!t.enabled||!Hr||(r?(t(`LOCAL_PUBLIC_EPHEMERAL_KEY ${he(r.publicKey,"hex")}`),t(`LOCAL_PRIVATE_EPHEMERAL_KEY ${he(r.privateKey,"hex")}`)):t("Missing local ephemeral keys."))}function Dl(r,t){!t.enabled||!Hr||t(r?`REMOTE_STATIC_PUBLIC_KEY ${he(r.subarray(),"hex")}`:"Missing remote static public key.")}function Mc(r,t){!t.enabled||!Hr||t(r?`REMOTE_EPHEMERAL_PUBLIC_KEY ${he(r.subarray(),"hex")}`:"Missing remote ephemeral keys.")}function Kc(r,t,e){!e.enabled||!Hr||(e(`CIPHER_STATE_1 ${r.n.getUint64()} ${r.k&&he(r.k,"hex")}`),e(`CIPHER_STATE_2 ${t.n.getUint64()} ${t.k&&he(t.k,"hex")}`))}function Xr(r,t){t==null&&(t=r.reduce((o,s)=>o+s.length,0));let e=_t(t),n=0;for(let o of r)e.set(o,n),n+=o.length;return e}function Fc(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}var Ol=Symbol.for("@achingbrain/uint8arraylist");function Rl(r,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let e=0;for(let n of r){let o=e+n.byteLength;if(t<o)return{buf:n,index:t-e};e=o}throw new RangeError("index is out of bounds")}function Cs(r){return!!r?.[Ol]}var le=class r{bufs;length;[Ol]=!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(Cs(n)){e+=n.byteLength;for(let o of n.bufs)this.bufs.push(o)}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(Cs(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=Rl(this.bufs,t);return e.buf[e.index]}set(t,e){let n=Rl(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(Cs(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:o}=this._subList(t,e);return Xr(n,o)}subarray(t,e){let{bufs:n,length:o}=this._subList(t,e);return n.length===1?n[0]:Xr(n,o)}sublist(t,e){let{bufs:n,length:o}=this._subList(t,e),s=new r;return s.length=o,s.bufs=n,s}_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=[],o=0;for(let s=0;s<this.bufs.length;s++){let i=this.bufs[s],a=o,c=a+i.byteLength;if(o=c,t>=c)continue;let f=t>=a&&t<c,u=e>a&&e<=c;if(f&&u){if(t===a&&e===c){n.push(i);break}let h=t-a;n.push(i.subarray(h,h+(e-t)));break}if(f){if(t===0){n.push(i);continue}n.push(i.subarray(t-a));continue}if(u){if(e===c){n.push(i);break}n.push(i.subarray(0,e-a));break}n.push(i)}return{bufs:n,length:e-t}}indexOf(t,e=0){if(!Cs(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 o=n.byteLength;if(o===0)throw new TypeError("search must be at least 1 byte long");let s=256,i=new Int32Array(s);for(let h=0;h<s;h++)i[h]=-1;for(let h=0;h<o;h++)i[n[h]]=h;let a=i,c=this.byteLength-n.byteLength,f=n.byteLength-1,u;for(let h=e;h<=c;h+=u){u=0;for(let l=f;l>=0;l--){let p=this.get(h+l);if(n[l]!==p){u=Math.max(1,l-a[p]);break}}if(u===0)return h}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=_t(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 o=wt(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt16(0,e,n),this.write(o,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 o=wt(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt32(0,e,n),this.write(o,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 o=wt(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigInt64(0,e,n),this.write(o,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=_t(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 o=wt(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint16(0,e,n),this.write(o,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 o=wt(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint32(0,e,n),this.write(o,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 o=wt(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigUint64(0,e,n),this.write(o,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 o=wt(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat32(0,e,n),this.write(o,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 o=wt(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat64(0,e,n),this.write(o,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(!Fc(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((o,s)=>o+s.byteLength,0)),n.length=e,n}};function ur(r,t="utf8"){let e=Is[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.decoder.decode(`${e.prefix}${r}`)}var Qr=class r extends Error{code;constructor(t="Invalid crypto exchange"){super(t),this.code=r.code}static code="ERR_INVALID_CRYPTO_EXCHANGE"};var Ag=0,vg=4294967295,Bg="Cipherstate has reached maximum n, a new handshake must be performed",Ts=class{n;bytes;view;constructor(t=Ag){this.n=t,this.bytes=wt(12),this.view=new DataView(this.bytes.buffer,this.bytes.byteOffset,this.bytes.byteLength),this.view.setUint32(4,t,!0)}increment(){this.n++,this.view.setUint32(4,this.n,!0)}getBytes(){return this.bytes}getUint64(){return this.n}assertValue(){if(this.n>vg)throw new Error(Bg)}};var hr=wt(0),Jr=class{k;n;crypto;constructor(t,e=void 0,n=0){this.crypto=t,this.k=e,this.n=new Ts(n)}hasKey(){return!!this.k}encryptWithAd(t,e){if(!this.hasKey())return e;this.n.assertValue();let n=this.crypto.encrypt(e,this.n.getBytes(),t,this.k);return this.n.increment(),n}decryptWithAd(t,e,n){if(!this.hasKey())return e;this.n.assertValue();let o=this.crypto.decrypt(e,this.n.getBytes(),t,this.k,n);return this.n.increment(),o}},Hc=class{cs;ck;h;crypto;constructor(t,e){this.crypto=t;let n=ur(e,"utf-8");this.h=Lg(t,n),this.ck=this.h,this.cs=new Jr(t)}mixKey(t){let[e,n]=this.crypto.hkdf(this.ck,t);this.ck=e,this.cs=new Jr(this.crypto,n)}mixHash(t){this.h=this.crypto.hash(new le(this.h,t))}encryptAndHash(t){let e=this.cs.encryptWithAd(this.h,t);return this.mixHash(e),e}decryptAndHash(t){let e=this.cs.decryptWithAd(this.h,t);return this.mixHash(t),e}split(){let[t,e]=this.crypto.hkdf(this.ck,hr);return[new Jr(this.crypto,t),new Jr(this.crypto,e)]}},zc=class{ss;s;e;rs;re;initiator;crypto;constructor(t){let{crypto:e,protocolName:n,prologue:o,initiator:s,s:i,e:a,rs:c,re:f}=t;this.crypto=e,this.ss=new Hc(e,n),this.ss.mixHash(o),this.initiator=s,this.s=i,this.e=a,this.rs=c,this.re=f}writeE(){if(this.e)throw new Error("ephemeral keypair is already set");let t=this.crypto.generateKeypair();return this.ss.mixHash(t.publicKey),this.e=t,t.publicKey}writeS(){if(!this.s)throw new Error("static keypair is not set");return this.ss.encryptAndHash(this.s.publicKey)}writeEE(){if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.re))}writeES(){if(this.initiator){if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.rs)throw new Error("remote static public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.rs))}else{if(!this.s)throw new Error("static keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.s,this.re))}}writeSE(){if(this.initiator){if(!this.s)throw new Error("static keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.s,this.re))}else{if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.rs)throw new Error("remote static public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.rs))}}readE(t,e=0){if(this.re)throw new Error("remote ephemeral public key is already set");if(t.byteLength<e+32)throw new Error("message is not long enough");this.re=t.sublist(e,e+32),this.ss.mixHash(this.re)}readS(t,e=0){if(this.rs)throw new Error("remote static public key is already set");let n=32+(this.ss.cs.hasKey()?16:0);if(t.byteLength<e+n)throw new Error("message is not long enough");let o=t.sublist(e,e+n);return this.rs=this.ss.decryptAndHash(o),n}readEE(){this.writeEE()}readES(){this.writeES()}readSE(){this.writeSE()}},jn=class extends zc{writeMessageA(t){return new le(this.writeE(),this.ss.encryptAndHash(t))}writeMessageB(t){let e=this.writeE();this.writeEE();let n=this.writeS();return this.writeES(),new le(e,n,this.ss.encryptAndHash(t))}writeMessageC(t){let e=this.writeS();return this.writeSE(),new le(e,this.ss.encryptAndHash(t))}readMessageA(t){try{return this.readE(t),this.ss.decryptAndHash(t.sublist(32))}catch(e){throw new Qr(`handshake stage 0 validation fail: ${e.message}`)}}readMessageB(t){try{this.readE(t),this.readEE();let e=this.readS(t,32);return this.readES(),this.ss.decryptAndHash(t.sublist(32+e))}catch(e){throw new Qr(`handshake stage 1 validation fail: ${e.message}`)}}readMessageC(t){try{let e=this.readS(t);return this.readSE(),this.ss.decryptAndHash(t.sublist(e))}catch(e){throw new Qr(`handshake stage 2 validation fail: ${e.message}`)}}};function Lg(r,t){if(t.length<=32){let e=wt(32);return e.set(t),e}else return r.hash(t)}var Ig=Math.pow(2,7),Cg=Math.pow(2,14),Tg=Math.pow(2,21),Pl=Math.pow(2,28),Ul=Math.pow(2,35),Nl=Math.pow(2,42),kl=Math.pow(2,49),Ot=128,Ve=127;function Wn(r){if(r<Ig)return 1;if(r<Cg)return 2;if(r<Tg)return 3;if(r<Pl)return 4;if(r<Ul)return 5;if(r<Nl)return 6;if(r<kl)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Ml(r,t,e=0){switch(Wn(r)){case 8:t[e++]=r&255|Ot,r/=128;case 7:t[e++]=r&255|Ot,r/=128;case 6:t[e++]=r&255|Ot,r/=128;case 5:t[e++]=r&255|Ot,r/=128;case 4:t[e++]=r&255|Ot,r>>>=7;case 3:t[e++]=r&255|Ot,r>>>=7;case 2:t[e++]=r&255|Ot,r>>>=7;case 1:{t[e++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return t}function Kl(r,t){let e=r[t],n=0;if(n+=e&Ve,e<Ot||(e=r[t+1],n+=(e&Ve)<<7,e<Ot)||(e=r[t+2],n+=(e&Ve)<<14,e<Ot)||(e=r[t+3],n+=(e&Ve)<<21,e<Ot)||(e=r[t+4],n+=(e&Ve)*Pl,e<Ot)||(e=r[t+5],n+=(e&Ve)*Ul,e<Ot)||(e=r[t+6],n+=(e&Ve)*Nl,e<Ot)||(e=r[t+7],n+=(e&Ve)*kl,e<Ot))return n;throw new RangeError("Could not decode varint")}var Vc=new Float32Array([-0]),qe=new Uint8Array(Vc.buffer);function Fl(r,t,e){Vc[0]=r,t[e]=qe[0],t[e+1]=qe[1],t[e+2]=qe[2],t[e+3]=qe[3]}function Hl(r,t){return qe[0]=r[t],qe[1]=r[t+1],qe[2]=r[t+2],qe[3]=r[t+3],Vc[0]}var qc=new Float64Array([-0]),Dt=new Uint8Array(qc.buffer);function zl(r,t,e){qc[0]=r,t[e]=Dt[0],t[e+1]=Dt[1],t[e+2]=Dt[2],t[e+3]=Dt[3],t[e+4]=Dt[4],t[e+5]=Dt[5],t[e+6]=Dt[6],t[e+7]=Dt[7]}function Vl(r,t){return Dt[0]=r[t],Dt[1]=r[t+1],Dt[2]=r[t+2],Dt[3]=r[t+3],Dt[4]=r[t+4],Dt[5]=r[t+5],Dt[6]=r[t+6],Dt[7]=r[t+7],qc[0]}var _g=BigInt(Number.MAX_SAFE_INTEGER),Dg=BigInt(Number.MIN_SAFE_INTEGER),Kt=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 lr;if(t<_g&&t>Dg)return this.fromNumber(Number(t));let e=t<0n;e&&(t=-t);let n=t>>32n,o=t-(n<<32n);return e&&(n=~n|0n,o=~o|0n,++o>ql&&(o=0n,++n>ql&&(n=0n))),new r(Number(o),Number(n))}static fromNumber(t){if(t===0)return lr;let e=t<0;e&&(t=-t);let n=t>>>0,o=(t-n)/4294967296>>>0;return e&&(o=~o>>>0,n=~n>>>0,++n>4294967295&&(n=0,++o>4294967295&&(o=0))),new r(n,o)}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):lr}},lr=new Kt(0,0);lr.toBigInt=function(){return 0n};lr.zzEncode=lr.zzDecode=function(){return this};lr.length=function(){return 1};var ql=4294967296n;function $l(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 jl(r,t,e){if(e-t<1)return"";let o,s=[],i=0,a;for(;t<e;)a=r[t++],a<128?s[i++]=a:a>191&&a<224?s[i++]=(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,s[i++]=55296+(a>>10),s[i++]=56320+(a&1023)):s[i++]=(a&15)<<12|(r[t++]&63)<<6|r[t++]&63,i>8191&&((o??(o=[])).push(String.fromCharCode.apply(String,s)),i=0);return o!=null?(i>0&&o.push(String.fromCharCode.apply(String,s.slice(0,i))),o.join("")):String.fromCharCode.apply(String,s.slice(0,i))}function $c(r,t,e){let n=e,o,s;for(let i=0;i<r.length;++i)o=r.charCodeAt(i),o<128?t[e++]=o:o<2048?(t[e++]=o>>6|192,t[e++]=o&63|128):(o&64512)===55296&&((s=r.charCodeAt(i+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++i,t[e++]=o>>18|240,t[e++]=o>>12&63|128,t[e++]=o>>6&63|128,t[e++]=o&63|128):(t[e++]=o>>12|224,t[e++]=o>>6&63|128,t[e++]=o&63|128);return e-n}function Qt(r,t){return RangeError(`index out of range: ${r.pos} + ${t??1} > ${r.len}`)}function _s(r,t){return(r[t-4]|r[t-3]<<8|r[t-2]<<16|r[t-1]<<24)>>>0}var jc=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,Qt(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 Qt(this,4);return _s(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Qt(this,4);return _s(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Qt(this,4);let t=Hl(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw Qt(this,4);let t=Vl(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 Qt(this,t);return this.pos+=t,e===n?new Uint8Array(0):this.buf.subarray(e,n)}string(){let t=this.bytes();return jl(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Qt(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Qt(this);while((this.buf[this.pos++]&128)!==0);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 Kt(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 Qt(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 Qt(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 Qt(this,8);let t=_s(this.buf,this.pos+=4),e=_s(this.buf,this.pos+=4);return new Kt(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=Kl(this.buf,this.pos);return this.pos+=Wn(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 Wc(r){return new jc(r instanceof Uint8Array?r:r.subarray())}function Ds(r,t,e){let n=Wc(r);return t.decode(n,void 0,e)}function Gc(r){let t=r??8192,e=t>>>1,n,o=t;return function(i){if(i<1||i>e)return _t(i);o+i>t&&(n=_t(t),o=0);let a=n.subarray(o,o+=i);return(o&7)!==0&&(o=(o|7)+1),a}}var dr=class{fn;len;next;val;constructor(t,e,n){this.fn=t,this.len=e,this.next=void 0,this.val=n}};function Yc(){}var Xc=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},Rg=Gc();function Og(r){return globalThis.Buffer!=null?_t(r):Rg(r)}var Yn=class{len;head;tail;states;constructor(){this.len=0,this.head=new dr(Yc,0,0),this.tail=this.head,this.states=null}_push(t,e,n){return this.tail=this.tail.next=new dr(t,e,n),this.len+=e,this}uint32(t){return this.len+=(this.tail=this.tail.next=new Qc((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(Rs,10,Kt.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let e=Kt.fromBigInt(t);return this._push(Rs,e.length(),e)}uint64Number(t){return this._push(Ml,Wn(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=Kt.fromBigInt(t).zzEncode();return this._push(Rs,e.length(),e)}sint64Number(t){let e=Kt.fromNumber(t).zzEncode();return this._push(Rs,e.length(),e)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(Zc,1,t?1:0)}fixed32(t){return this._push(Gn,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let e=Kt.fromBigInt(t);return this._push(Gn,4,e.lo)._push(Gn,4,e.hi)}fixed64Number(t){let e=Kt.fromNumber(t);return this._push(Gn,4,e.lo)._push(Gn,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(Fl,4,t)}double(t){return this._push(zl,8,t)}bytes(t){let e=t.length>>>0;return e===0?this._push(Zc,1,0):this.uint32(e)._push(Ug,e,t)}string(t){let e=$l(t);return e!==0?this.uint32(e)._push($c,e,t):this._push(Zc,1,0)}fork(){return this.states=new Xc(this),this.head=this.tail=new dr(Yc,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 dr(Yc,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=Og(this.len),n=0;for(;t!=null;)t.fn(t.val,e,n),n+=t.len,t=t.next;return e}};function Zc(r,t,e){t[e]=r&255}function Pg(r,t,e){for(;r>127;)t[e++]=r&127|128,r>>>=7;t[e]=r}var Qc=class extends dr{next;constructor(t,e){super(Pg,t,e),this.next=void 0}};function Rs(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 Gn(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 Ug(r,t,e){t.set(r,e)}globalThis.Buffer!=null&&(Yn.prototype.bytes=function(r){let t=r.length>>>0;return this.uint32(t),t>0&&this._push(Ng,t,r),this},Yn.prototype.string=function(r){let t=globalThis.Buffer.byteLength(r);return this.uint32(t),t>0&&this._push(kg,t,r),this});function Ng(r,t,e){t.set(r,e)}function kg(r,t,e){r.length<40?$c(r,t,e):t.utf8Write!=null?t.utf8Write(r,e):t.set(ur(r),e)}function Jc(){return new Yn}function Os(r,t){let e=Jc();return t.encode(r,e,{lengthDelimited:!1}),e.finish()}var Zn;(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"})(Zn||(Zn={}));function tf(r,t,e,n){return{name:r,type:t,encode:e,decode:n}}function Ps(r,t){return tf("message",Zn.LENGTH_DELIMITED,r,t)}var Xn=class extends Error{code="ERR_MAX_LENGTH";name="MaxLengthError"};var Us;(function(r){let t;r.codec=()=>(t==null&&(t=Ps((e,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),e.webtransportCerthashes!=null)for(let s of e.webtransportCerthashes)n.uint32(10),n.bytes(s);if(e.streamMuxers!=null)for(let s of e.streamMuxers)n.uint32(18),n.string(s);o.lengthDelimited!==!1&&n.ldelim()},(e,n,o={})=>{let s={webtransportCerthashes:[],streamMuxers:[]},i=n==null?e.len:e.pos+n;for(;e.pos<i;){let a=e.uint32();switch(a>>>3){case 1:{if(o.limits?.webtransportCerthashes!=null&&s.webtransportCerthashes.length===o.limits.webtransportCerthashes)throw new Xn('Decode error - map field "webtransportCerthashes" had too many elements');s.webtransportCerthashes.push(e.bytes());break}case 2:{if(o.limits?.streamMuxers!=null&&s.streamMuxers.length===o.limits.streamMuxers)throw new Xn('Decode error - map field "streamMuxers" had too many elements');s.streamMuxers.push(e.string());break}default:{e.skipType(a&7);break}}}return s})),t),r.encode=e=>Os(e,r.codec()),r.decode=(e,n)=>Ds(e,r.codec(),n)})(Us||(Us={}));var Qn;(function(r){let t;r.codec=()=>(t==null&&(t=Ps((e,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),e.identityKey!=null&&e.identityKey.byteLength>0&&(n.uint32(10),n.bytes(e.identityKey)),e.identitySig!=null&&e.identitySig.byteLength>0&&(n.uint32(18),n.bytes(e.identitySig)),e.extensions!=null&&(n.uint32(34),Us.codec().encode(e.extensions,n)),o.lengthDelimited!==!1&&n.ldelim()},(e,n,o={})=>{let s={identityKey:wt(0),identitySig:wt(0)},i=n==null?e.len:e.pos+n;for(;e.pos<i;){let a=e.uint32();switch(a>>>3){case 1:{s.identityKey=e.bytes();break}case 2:{s.identitySig=e.bytes();break}case 4:{s.extensions=Us.codec().decode(e,e.uint32(),{limits:o.limits?.extensions});break}default:{e.skipType(a&7);break}}}return s})),t),r.encode=e=>Os(e,r.codec()),r.decode=(e,n)=>Ds(e,r.codec(),n)})(Qn||(Qn={}));async function rf(r,t,e){let n=await r.sign(Yl(t));return Qn.encode({identityKey:Te(r.publicKey),identitySig:n,extensions:e})}async function nf(r,t,e){try{let n=Qn.decode(r),o=Cn(n.identityKey);if(e?.equals(o)===!1)throw new Error(`Payload identity key ${o} does not match expected remote identity key ${e}`);if(!t)throw new Error("Remote static does not exist");let s=Yl(t);if(!await o.verify(s,n.identitySig))throw new Error("Invalid payload signature");return n}catch(n){throw new to(n.message)}}function Yl(r){let t=ur("noise-libp2p-static-key:");return r instanceof Uint8Array?Xr([t,r],t.length+r.length):(r.prepend(t),r)}var ef=class extends ce{stream;handshake;metrics;decoder;constructor(t,e,n){super({log:t.log,inactivityTimeout:t.inactivityTimeout,maxReadBufferLength:t.maxReadBufferLength,direction:t.direction}),this.stream=t,this.handshake=e,this.metrics=n,this.decoder=new Ss({lengthDecoder:qr,maxBufferSize:16*1024*1024,encodingLength:()=>2});let o=c=>{try{for(let f of this.decoder.decode(c.data))this.onData(this.decrypt(f))}catch(f){this.abort(f)}};this.stream.addEventListener("message",o);let s=c=>{c.error!=null?c.local===!0?this.abort(c.error):this.onRemoteReset():this.onTransportClosed()};this.stream.addEventListener("close",s);let i=()=>{this.safeDispatchEvent("drain")};this.stream.addEventListener("drain",i);let a=()=>{this.onRemoteCloseWrite()};this.stream.addEventListener("remoteCloseWrite",a)}encrypt(t){let e=new le;for(let n=0;n<t.byteLength;n+=65519){let o=n+65519;o>t.byteLength&&(o=t.byteLength);let s;t instanceof Uint8Array?s=this.handshake.encrypt(t.subarray(n,o)):s=this.handshake.encrypt(t.sublist(n,o)),this.metrics?.encryptedPackets.increment(),e.append(Vr(s.byteLength)),e.append(s)}return e}decrypt(t){let e=new le;for(let n=0;n<t.byteLength;n+=65535){let o=n+65535;if(o>t.byteLength&&(o=t.byteLength),o-ac<n)throw new Error("Invalid chunk");let s;t instanceof Uint8Array?s=t.subarray(n,o):s=t.sublist(n,o);let i=t.subarray(n,o-ac);try{let a=this.handshake.decrypt(s,i);this.metrics?.decryptedPackets.increment(),e.append(a)}catch(a){throw this.metrics?.decryptErrors.increment(),a}}return e}close(t){return this.stream.close(t)}sendPause(){this.stream.pause()}sendResume(){this.stream.resume()}sendReset(t){this.stream.abort(t)}sendData(t){return{sentBytes:t.byteLength,canSendMore:this.stream.send(this.encrypt(t))}}};function of(r,t,e){return new ef(r,t,e)}async function Zl(r,t){let{log:e,connection:n,crypto:o,privateKey:s,prologue:i,s:a,remoteIdentityKey:c,extensions:f}=r,u=await rf(s,a.publicKey,f),h=new jn({crypto:o,protocolName:"Noise_XX_25519_ChaChaPoly_SHA256",initiator:!0,prologue:i,s:a});Nc(h.s,e),e.trace("Stage 0 - Initiator starting to send first message."),await n.write(h.writeMessageA(hr),t),e.trace("Stage 0 - Initiator finished sending first message."),kc(h.e,e),e.trace("Stage 1 - Initiator waiting to receive first message from responder...");let l=h.readMessageB(await n.read(t));e.trace("Stage 1 - Initiator received the message."),Mc(h.re,e),Dl(h.rs,e),e.trace("Initiator going to check remote's signature...");let p=await nf(l,h.rs,c);e.trace("All good with the signature!"),e.trace("Stage 2 - Initiator sending third handshake message."),await n.write(h.writeMessageC(u),t),e.trace("Stage 2 - Initiator sent message with signed payload.");let[m,b]=h.ss.split();return Kc(m,b,e),{payload:p,encrypt:g=>m.encryptWithAd(hr,g),decrypt:(g,w)=>b.decryptWithAd(hr,g,w)}}async function Xl(r,t){let{log:e,connection:n,crypto:o,privateKey:s,prologue:i,s:a,remoteIdentityKey:c,extensions:f}=r,u=await rf(s,a.publicKey,f),h=new jn({crypto:o,protocolName:"Noise_XX_25519_ChaChaPoly_SHA256",initiator:!1,prologue:i,s:a});Nc(h.s,e),e.trace("Stage 0 - Responder waiting to receive first message."),h.readMessageA(await n.read(t)),e.trace("Stage 0 - Responder received first message."),Mc(h.re,e),e.trace("Stage 1 - Responder sending out first message with signed payload and static key."),await n.write(h.writeMessageB(u),t),e.trace("Stage 1 - Responder sent the second handshake message with signed payload."),kc(h.e,e),e.trace("Stage 2 - Responder waiting for third handshake message...");let l=h.readMessageC(await n.read(t));e.trace("Stage 2 - Responder received the message, finished handshake.");let p=await nf(l,h.rs,c),[m,b]=h.ss.split();return Kc(m,b,e),{payload:p,encrypt:g=>b.encryptWithAd(hr,g),decrypt:(g,w)=>m.decryptWithAd(hr,g,w)}}var Ns=class{protocol="/noise";crypto;prologue;staticKey;extensions;metrics;components;log;constructor(t,e={}){let{staticNoiseKey:n,extensions:o,crypto:s,prologueBytes:i}=e,{metrics:a}=t;this.components=t,this.log=t.logger.forComponent("libp2p:noise");let c=s??il;this.crypto=al(c),this.extensions={webtransportCerthashes:[],...o},this.metrics=a?cl(a):void 0,n?this.staticKey=c.generateX25519KeyPairFromSeed(n):this.staticKey=c.generateX25519KeyPair(),this.prologue=i??wt(0)}[Symbol.toStringTag]="@chainsafe/libp2p-noise";[fo]=["@libp2p/connection-encryption","@chainsafe/libp2p-noise"];async secureOutbound(t,e){let n=t.log?.newScope("noise")??this.log,o=ic(t,{lengthEncoder:Vr,lengthDecoder:qr,maxDataLength:65535}),s=await this.performHandshakeInitiator(o,this.components.privateKey,n,e?.remotePeer?.publicKey,e),i=Cn(s.payload.identityKey);return{connection:of(o.unwrap(),s,this.metrics),remoteExtensions:s.payload.extensions,remotePeer:va(i),streamMuxer:e?.skipStreamMuxerNegotiation===!0?void 0:this.getStreamMuxer(s.payload.extensions?.streamMuxers)}}getStreamMuxer(t){if(t==null||t.length===0)return;let e=this.components.upgrader.getStreamMuxers();if(e!=null)for(let n of t){let o=e.get(n);if(o!=null)return o}if(t.length)throw new yr("Early muxer negotiation was requested but the initiator and responder had no common muxers")}async secureInbound(t,e){let n=t.log?.newScope("noise")??this.log,o=ic(t,{lengthEncoder:Vr,lengthDecoder:qr,maxDataLength:65535}),s=await this.performHandshakeResponder(o,this.components.privateKey,n,e?.remotePeer?.publicKey,e),i=Cn(s.payload.identityKey);return{connection:of(o.unwrap(),s,this.metrics),remoteExtensions:s.payload.extensions,remotePeer:va(i),streamMuxer:e?.skipStreamMuxerNegotiation===!0?void 0:this.getStreamMuxer(s.payload.extensions?.streamMuxers)}}async performHandshakeInitiator(t,e,n,o,s){let i,a=s?.skipStreamMuxerNegotiation===!0?[]:[...this.components.upgrader.getStreamMuxers().keys()];try{i=await Zl({connection:t,privateKey:e,remoteIdentityKey:o,log:n.newScope("xxhandshake"),crypto:this.crypto,prologue:this.prologue,s:this.staticKey,extensions:{streamMuxers:a,webtransportCerthashes:[],...this.extensions}},s),this.metrics?.xxHandshakeSuccesses.increment()}catch(c){throw this.metrics?.xxHandshakeErrors.increment(),c}return i}async performHandshakeResponder(t,e,n,o,s){let i,a=s?.skipStreamMuxerNegotiation===!0?[]:[...this.components.upgrader.getStreamMuxers().keys()];try{i=await Xl({connection:t,privateKey:e,remoteIdentityKey:o,log:n.newScope("xxhandshake"),crypto:this.crypto,prologue:this.prologue,s:this.staticKey,extensions:{streamMuxers:a,webtransportCerthashes:[],...this.extensions}},s),this.metrics?.xxHandshakeSuccesses.increment()}catch(c){throw this.metrics?.xxHandshakeErrors.increment(),c}return i}};function Ql(r={}){return t=>new Ns(t,r)}var pr=class extends Event{type;detail;constructor(t,e){super(t),this.type=t,this.detail=e}};function sf(r){throw new Error("Not implemented")}var af=class extends xs{writer;reader;constructor(t){super(t),this.writer=t.stream.writable.getWriter(),this.reader=t.stream.readable.getReader(),this.writer.closed.then(()=>{this.log("writer closed gracefully")}).catch(e=>{e.message.includes("STOP_SENDING")||e.message.includes("StopSending")?this.onRemoteCloseRead():e.message.includes("RESET_STREAM")||e.message.includes("Reset")?this.onRemoteReset():this.log("writer close promise rejected - %e",e)}),this.readData()}readData(){Promise.resolve().then(async()=>{for(;;){let t=await this.reader.read();if(t.value!=null&&this.onData(t.value),t.done){this.log("remote closed write"),this.onRemoteCloseWrite();return}if(this.readStatus==="paused")break}}).catch(t=>{this.abort(t)}).finally(()=>{this.reader.releaseLock()})}sendData(t){for(let n of t)this.writer.write(n).catch(o=>{this.abort(o)});if(this.log.trace("desired size after sending %d bytes is %d bytes",t.byteLength,this.writer.desiredSize),this.writer.desiredSize==null)return{sentBytes:t.byteLength,canSendMore:!1};let e=this.writer.desiredSize>0;return e||this.writer.ready.then(()=>{this.safeDispatchEvent("drain")},n=>{this.abort(n)}),{sentBytes:t.byteLength,canSendMore:e}}sendReset(t){this.writer.abort(t).catch(e=>{this.log.error("error aborting writer - %e",e)})}async sendCloseWrite(t){this.log("sendCloseWrite closing writer"),await $t(this.writer.close().catch(()=>{}),t?.signal),this.log("sendCloseWrite closed writer")}async sendCloseRead(t){this.log("sendCloseRead cancelling reader"),await $t(this.reader.cancel(),t?.signal),this.log("sendCloseRead cancelled reader")}sendPause(){}sendResume(){this.readData()}};function cf(r,t,e,n,o){return new af({...o,stream:r,id:t,direction:e,log:n.newScope(`${e}:${t}`),protocol:""})}var Jl="/webtransport",ff=class extends ws{webTransport;streamIDCounter;reader;constructor(t,e){super(e,{protocol:Jl,name:"muxer"}),this.webTransport=t,this.streamIDCounter=0,this.reader=this.webTransport.incomingBidirectionalStreams.getReader(),Promise.resolve().then(async()=>{for(;;){let{done:n,value:o}=await this.reader.read();if(n||o==null)break;this.onRemoteStream(cf(o,String(this.streamIDCounter++),"inbound",this.log,this.streamOptions))}}).catch(n=>{this.log.error("could not create a new stream - %e",n)})}async onCreateStream(t){let e=await this.webTransport.createBidirectionalStream();return t?.signal?.throwIfAborted(),cf(e,String(this.streamIDCounter++),"outbound",this.log,t)}onData(){}sendReset(){this.webTransport.close()}};function td(r){return{protocol:Jl,createStreamMuxer(t){return new ff(r,t)}}}var uf=class extends bs{cleanUpWTSession;constructor(t){super(t),this.cleanUpWTSession=t.cleanUpWTSession}sendData(t){return{sentBytes:t.byteLength,canSendMore:!0}}sendReset(){this.cleanUpWTSession("abort")}async sendClose(t){this.cleanUpWTSession("close"),t?.signal?.throwIfAborted()}sendPause(){}sendResume(){}},ed=r=>new uf(r);function rd(r,t){return t.filter(n=>!!r.find(o=>gt(n,o))).length===t.length}var Mg=Object.values(Ye).map(r=>r.decoder).reduce((r,t)=>r.or(t));function Kg(r){return pe.decode(Mg.decode(r))}function hf(r){if(!ls.matches(r))throw new no("Invalid multiaddr, was not a WebTransport address");let t=[],e;for(let s of r.getComponents())s.name==="certhash"&&t.push(Kg(s.value??"")),s.name==="p2p"&&e==null&&(e=gh(s.value??""));let n=wh(r),o=n.host;return n.type==="ip6"&&o.includes(":")&&(o=`[${o}]`),{url:`https://${o}:${n.port}`,certhashes:t,remotePeer:e}}var ks=class extends ce{writer;reader;constructor(t){super(t),this.writer=t.stream.writable.getWriter(),this.reader=t.stream.readable.getReader(),Promise.resolve().then(async()=>{for(;;){let{done:e,value:n}=await this.reader.read();if(n!=null&&this.onData(n),e)break}}).catch(e=>{this.abort(e)})}async close(t){await $t(this.writer.close(),t?.signal)}sendData(t){return this.writer.write(t.subarray()).catch(e=>{this.abort(e)}),{sentBytes:t.byteLength,canSendMore:!0}}sendReset(t){this.writer.abort(t).catch(e=>{this.log.error("could not send reset - %e",e)})}sendPause(){}sendResume(){}};var nd=globalThis.WebTransport;var lf=class{log;components;config;metrics;constructor(t,e={}){this.log=t.logger.forComponent("libp2p:webtransport"),this.components=t,this.config={...e,certificates:e.certificates??[]},t.metrics!=null&&(this.metrics={dialerEvents:t.metrics.registerCounterGroup("libp2p_webtransport_dialer_events_total",{label:"event",help:"Total count of WebTransport dialer events by type"})})}[Symbol.toStringTag]="@libp2p/webtransport";[pf]=!0;[fo]=["@libp2p/transport"];async dial(t,e){e.signal.throwIfAborted(),this.log("dialing %s",t),e=e??{};let{url:n,certhashes:o,remotePeer:s}=hf(t),i,a,c=()=>{},f=!1,u=!1,h=!1;try{this.metrics?.dialerEvents.increment({pending:!0});let l=new nd(`${n}/.well-known/libp2p-webtransport?type=noise`,{serverCertificateHashes:o.map(m=>({algorithm:"sha-256",value:Et(m.digest)}))});c=m=>{if(!f)try{this.metrics?.dialerEvents.increment({[m]:!0}),l.close()}catch(b){this.log.error("error closing wt session - %e",b)}finally{a!=null&&(a.timeline.close=Date.now()),f=!0}},i=()=>{c(u?"noise_timeout":"ready_timeout")},e.signal.addEventListener("abort",i,{once:!0}),this.log("wait for session to be ready"),e.onProgress?.(new pr("webtransport:wait-for-session")),await Promise.race([l.closed,l.ready]),this.log("session became ready"),u=!0,this.metrics?.dialerEvents.increment({ready:!0}),l.closed.catch(m=>{this.log.error("error on remote wt session close - %e",m)}).finally(()=>{c("remote_close")}),this.metrics?.dialerEvents.increment({open:!0}),a=ed({remoteAddr:t,cleanUpWTSession:c,direction:"outbound",log:this.components.logger.forComponent("libp2p:webtransport:connection")});let p=await this.authenticateWebTransport({wt:l,maConn:a,remotePeer:s,certhashes:o,...e});if(h=!0,s!=null&&(h=s.equals(p)),!h)throw new yr("Failed to authenticate webtransport");return await e.upgrader.upgradeOutbound(a,{...e,skipEncryption:!0,remotePeer:p,muxerFactory:td(l),skipProtection:!0})}catch(l){throw this.log.error("caught wt session err - %e",l),c(h?"upgrade_error":u?"noise_error":"ready_error"),l}finally{i!=null&&e.signal?.removeEventListener("abort",i)}}async authenticateWebTransport({wt:t,maConn:e,remotePeer:n,certhashes:o,onProgress:s,signal:i}){s?.(new pr("webtransport:open-authentication-stream"));let a=await t.createBidirectionalStream();i?.throwIfAborted();let c=new ks({stream:a,log:e.log.newScope("muxer")}),f=Ql()(this.components);s?.(new pr("webtransport:secure-outbound-connection"));let{remoteExtensions:u,remotePeer:h}=await f.secureOutbound(c,{signal:i,remotePeer:n,skipStreamMuxerNegotiation:!0});if(s?.(new pr("webtransport:close-authentication-stream")),await c.close({signal:i}),!rd(u?.webtransportCerthashes??[],o.map(l=>l.bytes)))throw new tt("Our certhashes are not a subset of the remote's reported certhashes");return h}createListener(t){return sf(this.components,{...t,certificates:this.config.certificates})}listenFilter(){return[]}dialFilter(t){return globalThis.WebTransport==null?[]:t.filter(e=>{if(!ls.exactMatch(e))return!1;let{url:n,certhashes:o}=hf(e);return n!=null&&o.length>0})}};function Fg(r={}){return t=>new lf(t,r)}return hd(Hg);})();
|
|
3
3
|
//! TODO unclear how to add backpressure here?
|
|
4
4
|
/*! Bundled license information:
|
|
5
5
|
|